summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/migrations/20150504155329-create-users.js24
-rw-r--r--lib/migrations/20150508114741-create-notes.js21
-rw-r--r--lib/migrations/20150515125813-create-temp.js18
-rw-r--r--lib/migrations/20150702001020-update-to-0_3_1.js38
-rw-r--r--lib/migrations/20150915153700-change-notes-title-to-text.js25
-rw-r--r--lib/migrations/20160112220142-note-add-lastchange.js19
-rw-r--r--lib/migrations/20160420180355-note-add-alias.js18
-rw-r--r--lib/utils.js5
-rw-r--r--package.json5
-rw-r--r--public/views/hackmd/body.ejs6
-rw-r--r--yarn.lock6
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 &amp; 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>
diff --git a/yarn.lock b/yarn.lock
index 1098586a..360c5752 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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"