diff options
-rw-r--r-- | lib/migrations/20150504155329-create-users.js | 24 | ||||
-rw-r--r-- | lib/migrations/20150508114741-create-notes.js | 21 | ||||
-rw-r--r-- | lib/migrations/20150515125813-create-temp.js | 18 | ||||
-rw-r--r-- | lib/migrations/20150702001020-update-to-0_3_1.js | 38 | ||||
-rw-r--r-- | lib/migrations/20150915153700-change-notes-title-to-text.js | 25 | ||||
-rw-r--r-- | lib/migrations/20160112220142-note-add-lastchange.js | 19 | ||||
-rw-r--r-- | lib/migrations/20160420180355-note-add-alias.js | 18 | ||||
-rw-r--r-- | lib/utils.js | 5 | ||||
-rw-r--r-- | package.json | 5 | ||||
-rw-r--r-- | public/views/hackmd/body.ejs | 6 | ||||
-rw-r--r-- | yarn.lock | 6 |
11 files changed, 177 insertions, 8 deletions
diff --git a/lib/migrations/20150504155329-create-users.js b/lib/migrations/20150504155329-create-users.js new file mode 100644 index 00000000..51e6b29c --- /dev/null +++ b/lib/migrations/20150504155329-create-users.js @@ -0,0 +1,24 @@ +'use strict' +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.createTable('Users', { + id: { + type: Sequelize.UUID, + primaryKey: true, + defaultValue: Sequelize.UUIDV4 + }, + profileid: { + type: Sequelize.STRING, + unique: true + }, + profile: Sequelize.TEXT, + history: Sequelize.TEXT, + createdAt: Sequelize.DATE, + updatedAt: Sequelize.DATE + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.dropTable('Users') + } +} diff --git a/lib/migrations/20150508114741-create-notes.js b/lib/migrations/20150508114741-create-notes.js new file mode 100644 index 00000000..660d40a6 --- /dev/null +++ b/lib/migrations/20150508114741-create-notes.js @@ -0,0 +1,21 @@ +'use strict' +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.createTable('Notes', { + id: { + type: Sequelize.UUID, + primaryKey: true, + defaultValue: Sequelize.UUIDV4 + }, + ownerId: Sequelize.UUID, + content: Sequelize.TEXT, + title: Sequelize.STRING, + createdAt: Sequelize.DATE, + updatedAt: Sequelize.DATE + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.dropTable('Notes') + } +} diff --git a/lib/migrations/20150515125813-create-temp.js b/lib/migrations/20150515125813-create-temp.js new file mode 100644 index 00000000..ee7b9789 --- /dev/null +++ b/lib/migrations/20150515125813-create-temp.js @@ -0,0 +1,18 @@ +'use strict' +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.createTable('Temp', { + id: { + type: Sequelize.STRING, + primaryKey: true + }, + date: Sequelize.TEXT, + createdAt: Sequelize.DATE, + updatedAt: Sequelize.DATE + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.dropTable('Temp') + } +} diff --git a/lib/migrations/20150702001020-update-to-0_3_1.js b/lib/migrations/20150702001020-update-to-0_3_1.js new file mode 100644 index 00000000..40d9c97a --- /dev/null +++ b/lib/migrations/20150702001020-update-to-0_3_1.js @@ -0,0 +1,38 @@ +'use strict' +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.addColumn('Notes', 'shortid', { + type: Sequelize.STRING, + defaultValue: '0000000000', + allowNull: false + }).then(function () { + return queryInterface.addIndex('Notes', ['shortid'], { + indicesType: 'UNIQUE' + }) + }).then(function () { + return queryInterface.addColumn('Notes', 'permission', { + type: Sequelize.STRING, + defaultValue: 'private', + allowNull: false + }) + }).then(function () { + return queryInterface.addColumn('Notes', 'viewcount', { + type: Sequelize.INTEGER, + defaultValue: 0 + }) + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.removeColumn('Notes', 'viewcount') + .then(function () { + return queryInterface.removeColumn('Notes', 'permission') + }) + .then(function () { + return queryInterface.removeIndex('Notes', ['shortid']) + }) + .then(function () { + return queryInterface.removeColumn('Notes', 'shortid') + }) + } +} diff --git a/lib/migrations/20150915153700-change-notes-title-to-text.js b/lib/migrations/20150915153700-change-notes-title-to-text.js new file mode 100644 index 00000000..9d00f15f --- /dev/null +++ b/lib/migrations/20150915153700-change-notes-title-to-text.js @@ -0,0 +1,25 @@ +'use strict' +const isSQLite = require('../utils').isSQLite +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.changeColumn('Notes', 'title', { + type: Sequelize.TEXT + }).then(function () { + if (isSQLite(queryInterface.sequelize)) { + // manual added index will be removed in sqlite + return queryInterface.addIndex('Notes', ['shortid']) + } + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.changeColumn('Notes', 'title', { + type: Sequelize.STRING + }).then(function () { + if (isSQLite(queryInterface.sequelize)) { + // manual added index will be removed in sqlite + return queryInterface.addIndex('Notes', ['shortid']) + } + }) + } +} diff --git a/lib/migrations/20160112220142-note-add-lastchange.js b/lib/migrations/20160112220142-note-add-lastchange.js new file mode 100644 index 00000000..b4e111b3 --- /dev/null +++ b/lib/migrations/20160112220142-note-add-lastchange.js @@ -0,0 +1,19 @@ +'use strict' +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.addColumn('Notes', 'lastchangeuserId', { + type: Sequelize.UUID + }).then(function () { + return queryInterface.addColumn('Notes', 'lastchangeAt', { + type: Sequelize.DATE + }) + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.removeColumn('Notes', 'lastchangeAt') + .then(function () { + return queryInterface.removeColumn('Notes', 'lastchangeuserId') + }) + } +} diff --git a/lib/migrations/20160420180355-note-add-alias.js b/lib/migrations/20160420180355-note-add-alias.js new file mode 100644 index 00000000..a043cd5c --- /dev/null +++ b/lib/migrations/20160420180355-note-add-alias.js @@ -0,0 +1,18 @@ +'use strict' +module.exports = { + up: function (queryInterface, Sequelize) { + return queryInterface.addColumn('Notes', 'alias', { + type: Sequelize.STRING + }).then(function () { + return queryInterface.addIndex('Notes', ['alias'], { + indicesType: 'UNIQUE' + }) + }) + }, + + down: function (queryInterface, Sequelize) { + return queryInterface.removeColumn('Notes', 'alias').then(function () { + return queryInterface.removeIndex('Notes', ['alias']) + }) + } +} diff --git a/lib/utils.js b/lib/utils.js new file mode 100644 index 00000000..6c36549b --- /dev/null +++ b/lib/utils.js @@ -0,0 +1,5 @@ +'use strict' + +exports.isSQLite = function isSQLite (sequelize) { + return sequelize.options.dialect === 'sqlite' +} diff --git a/package.json b/package.json index 583d68b5..29c5c95d 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,7 @@ "tedious": "^1.14.0", "to-markdown": "^3.0.3", "toobusy-js": "^0.5.1", - "uws": "^0.12.0", + "uws": "~0.14.1", "validator": "^6.2.0", "velocity-animate": "^1.4.0", "visibilityjs": "^1.2.4", @@ -173,7 +173,8 @@ "$", "CodeMirror", "Cookies", - "moment", "editor", + "moment", + "editor", "ui", "Spinner", "modeType", diff --git a/public/views/hackmd/body.ejs b/public/views/hackmd/body.ejs index d8a3f108..90c5d81e 100644 --- a/public/views/hackmd/body.ejs +++ b/public/views/hackmd/body.ejs @@ -16,10 +16,10 @@ </a> <ul class="dropdown-menu" aria-labelledby="permissionLabel"> <li class="ui-permission-freely"<% if(!allowAnonymous) { %> style="display: none;"<% } %>><a><i class="fa fa-leaf fa-fw"></i> Freely - Anyone can edit</a></li> - <li class="ui-permission-editable"><a><i class="fa fa-shield fa-fw"></i> Editable - Signed people can edit</a></li> - <li class="ui-permission-limited"><a><i class="fa fa-id-card fa-fw"></i> Limited - Signed people can edit (forbid guest)</a></li> + <li class="ui-permission-editable"><a><i class="fa fa-shield fa-fw"></i> Editable - Signed-in people can edit</a></li> + <li class="ui-permission-limited"><a><i class="fa fa-id-card fa-fw"></i> Limited - Signed-in people can edit (forbid guests)</a></li> <li class="ui-permission-locked"><a><i class="fa fa-lock fa-fw"></i> Locked - Only owner can edit</a></li> - <li class="ui-permission-protected"><a><i class="fa fa-umbrella fa-fw"></i> Protected - Only owner can edit (forbid guest)</a></li> + <li class="ui-permission-protected"><a><i class="fa fa-umbrella fa-fw"></i> Protected - Only owner can edit (forbid guests)</a></li> <li class="ui-permission-private"><a><i class="fa fa-hand-stop-o fa-fw"></i> Private - Only owner can view & edit</a></li> <li class="divider"></li> <li class="ui-delete-note"><a><i class="fa fa-trash-o fa-fw"></i> Delete this note</a></li> @@ -7046,9 +7046,9 @@ uuid@3.0.0, uuid@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" -uws@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/uws/-/uws-0.12.0.tgz#07163ea6e687d9731e66821107b5fdf1ee644cbd" +uws@~0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/uws/-/uws-0.14.1.tgz#89b8eb7bced272c65621472e878c57f4e0e00640" v8flags@^2.0.10, v8flags@^2.0.2: version "2.0.11" |