diff --git a/package-lock.json b/package-lock.json index d1f16be23c..a2f6701509 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "3.111.5", + "version": "3.113.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -68,6 +68,15 @@ "@types/mime": "1.3.1" } }, + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, "abbrev": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", @@ -2325,9 +2334,9 @@ "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", "requires": { + "JSONStream": "1.3.1", "combine-source-map": "0.7.2", "defined": "1.0.0", - "JSONStream": "1.3.1", "through2": "2.0.3", "umd": "3.0.1" } @@ -2357,6 +2366,7 @@ "resolved": "https://registry.npmjs.org/browserify/-/browserify-12.0.2.tgz", "integrity": "sha1-V/IeXm4wj/WYfE2v1EhAsrmPehk=", "requires": { + "JSONStream": "1.3.1", "assert": "1.3.0", "browser-pack": "6.0.2", "browser-resolve": "1.11.2", @@ -2378,7 +2388,6 @@ "inherits": "2.0.3", "insert-module-globals": "7.0.1", "isarray": "0.0.1", - "JSONStream": "1.3.1", "labeled-stream-splicer": "2.0.0", "module-deps": "4.1.1", "os-browserify": "0.1.2", @@ -7389,13 +7398,6 @@ } } }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -7405,6 +7407,13 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, "stringstream": { "version": "0.0.5", "bundled": true, @@ -10353,10 +10362,10 @@ "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", "requires": { + "JSONStream": "1.3.1", "combine-source-map": "0.7.2", "concat-stream": "1.5.2", "is-buffer": "1.1.5", - "JSONStream": "1.3.1", "lexical-scope": "1.2.0", "process": "0.11.10", "through2": "2.0.3", @@ -11349,15 +11358,6 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" }, - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -13257,6 +13257,7 @@ "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", "requires": { + "JSONStream": "1.3.1", "browser-resolve": "1.11.2", "cached-path-relative": "1.0.1", "concat-stream": "1.5.2", @@ -13264,7 +13265,6 @@ "detective": "4.5.0", "duplexer2": "0.1.4", "inherits": "2.0.3", - "JSONStream": "1.3.1", "parents": "1.0.1", "readable-stream": "2.0.6", "resolve": "1.4.0", @@ -17234,22 +17234,6 @@ } } }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "requires": { - "resolve-from": "2.0.0", - "semver": "5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - } - } - }, "require-again": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-again/-/require-again-2.0.0.tgz", @@ -17289,6 +17273,22 @@ } } }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + } + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -18223,6 +18223,11 @@ "is-plain-obj": "1.1.0" } }, + "sortablejs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.6.1.tgz", + "integrity": "sha1-0SDRA/u59gx9sngUoThAcubG4IM=" + }, "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", @@ -18650,11 +18655,6 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "string-length": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-0.1.2.tgz", @@ -18688,6 +18688,11 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "stringify-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-1.0.1.tgz", diff --git a/package.json b/package.json index 94af1288f8..f1875902ab 100644 --- a/package.json +++ b/package.json @@ -113,6 +113,7 @@ "sass-loader": "^6.0.2", "serve-favicon": "^2.3.0", "shelljs": "^0.7.6", + "sortablejs": "^1.6.1", "stripe": "^4.2.0", "superagent": "^3.4.3", "svg-inline-loader": "^0.7.1", diff --git a/website/client/components/appMenu.vue b/website/client/components/appMenu.vue index 22cb752eca..19e9d10e65 100644 --- a/website/client/components/appMenu.vue +++ b/website/client/components/appMenu.vue @@ -68,7 +68,9 @@ div a.dropdown-item.edit-avatar.dropdown-separated(@click='showAvatar()') h3 {{ user.profile.name }} span.small-text {{ $t('editAvatar') }} - a.nav-link.dropdown-item(@click.prevent='showInbox()') {{ $t('messages') }} + a.nav-link.dropdown-item(@click.prevent='showInbox()') + | {{ $t('messages') }} + span.message-count(v-if='user.inbox.newMessages > 0') {{user.inbox.newMessages}} a.dropdown-item(@click='showAvatar("backgrounds", "2017")') {{ $t('backgrounds') }} a.dropdown-item(@click='showProfile("stats")') {{ $t('stats') }} a.dropdown-item(@click='showProfile("achievements")') {{ $t('achievements') }} @@ -261,9 +263,22 @@ div .gem:hover { cursor: pointer; } + + .message-count { + background-color: #46a7d9; + border-radius: 50%; + height: 20px; + width: 20px; + float: right; + color: #fff; + text-align: center; + font-weight: bold; + font-size: 12px; + }