From 12aef475c8b06f605238cdfd13af76ffdc953e55 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 2 Nov 2018 12:10:49 +0100 Subject: [PATCH 1/5] update package-lock.json --- package-lock.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe5d59d0ae..5165ad0489 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4699,7 +4699,7 @@ }, "bin-wrapper": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", + "resolved": "http://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", "optional": true, "requires": { @@ -4733,7 +4733,7 @@ }, "blob": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "resolved": "http://registry.npmjs.org/blob/-/blob-0.0.4.tgz", "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", "dev": true }, @@ -9667,7 +9667,7 @@ }, "espree": { "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { @@ -10434,7 +10434,7 @@ }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-json-stable-stringify": { @@ -11754,7 +11754,7 @@ }, "gifsicle": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", + "resolved": "http://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=", "optional": true, "requires": { @@ -13288,7 +13288,7 @@ }, "imagemin-optipng": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", + "resolved": "http://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", "integrity": "sha1-0i2kEsCfX/AKQzmWC5ioix2+hpU=", "optional": true, "requires": { @@ -18775,9 +18775,9 @@ } }, "ora": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", - "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.0.0.tgz", + "integrity": "sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==", "requires": { "chalk": "^2.3.1", "cli-cursor": "^2.1.0", @@ -22588,7 +22588,7 @@ }, "regjsgen": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { @@ -23146,7 +23146,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -24514,7 +24514,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { From a48a6a292d4f0af7d93ebeb2c38a6aaaaeb44401 Mon Sep 17 00:00:00 2001 From: Nathanael Farley Date: Fri, 2 Nov 2018 15:58:01 +0000 Subject: [PATCH 2/5] If user's cron will happen later today, start the task yesterday. (#10783) * If user's cron will happen later today, start the task yesterday. * Added default dayStart to taskDefaults. * Removed the need to call shouldDo twice to calculate nextDue. * Revert "Removed the need to call shouldDo twice to calculate nextDue." This reverts commit e1467f2fc33cfb11e6a4fc667460df6a48b69d45. * Removed defaults from taskDefault arguments. * Got user from $store in copyAsTodoModal.vue. * Fixed tests for taskDefaults to include mock user. * Fix shouldDo tests when run in GMT timezone. * Added test to taskDefault; added utcOffset to taskDefault. * Replaced utcOffset with zone. * Removed erroneous import. --- test/common/libs/taskDefaults.test.js | 25 ++++++++++++++++--- test/common/shouldDo.test.js | 12 ++++----- .../components/challenges/challengeDetail.vue | 2 +- .../components/chat/copyAsTodoModal.vue | 2 +- .../group-plans/taskInformation.vue | 2 +- website/client/components/tasks/column.vue | 2 +- website/client/components/tasks/user.vue | 2 +- website/common/script/libs/taskDefaults.js | 15 +++++++++-- website/common/script/ops/addTask.js | 2 +- 9 files changed, 46 insertions(+), 18 deletions(-) diff --git a/test/common/libs/taskDefaults.test.js b/test/common/libs/taskDefaults.test.js index 756447a8df..1ec59b562c 100644 --- a/test/common/libs/taskDefaults.test.js +++ b/test/common/libs/taskDefaults.test.js @@ -1,8 +1,11 @@ +import moment from 'moment'; + import taskDefaults from '../../../website/common/script/libs/taskDefaults'; +import { generateUser } from '../../helpers/common.helper'; describe('taskDefaults', () => { it('applies defaults to undefined type or habit', () => { - let task = taskDefaults(); + let task = taskDefaults({}, generateUser()); expect(task.type).to.eql('habit'); expect(task._id).to.exist; expect(task.text).to.eql(task._id); @@ -18,7 +21,7 @@ describe('taskDefaults', () => { }); it('applies defaults to a daily', () => { - let task = taskDefaults({ type: 'daily' }); + let task = taskDefaults({ type: 'daily' }, generateUser()); expect(task.type).to.eql('daily'); expect(task._id).to.exist; expect(task.text).to.eql(task._id); @@ -42,7 +45,7 @@ describe('taskDefaults', () => { }); it('applies defaults a reward', () => { - let task = taskDefaults({ type: 'reward' }); + let task = taskDefaults({ type: 'reward' }, generateUser()); expect(task.type).to.eql('reward'); expect(task._id).to.exist; expect(task.text).to.eql(task._id); @@ -52,7 +55,7 @@ describe('taskDefaults', () => { }); it('applies defaults a todo', () => { - let task = taskDefaults({ type: 'todo' }); + let task = taskDefaults({ type: 'todo' }, generateUser()); expect(task.type).to.eql('todo'); expect(task._id).to.exist; expect(task.text).to.eql(task._id); @@ -61,4 +64,18 @@ describe('taskDefaults', () => { expect(task.priority).to.eql(1); expect(task.completed).to.eql(false); }); + + it('starts a task yesterday if user cron is later today', () => { + // Configure to have a day start that's *always* tomorrow. + let user = generateUser({'preferences.dayStart': 25}); + let task = taskDefaults({ type: 'daily' }, user); + + expect(task.startDate).to.eql( + moment() + .zone(user.preferences.timezoneOffset, 'hour') + .startOf('day') + .subtract(1, 'day') + .toDate() + ); + }); }); diff --git a/test/common/shouldDo.test.js b/test/common/shouldDo.test.js index b4b2feaae1..dedcaa4951 100644 --- a/test/common/shouldDo.test.js +++ b/test/common/shouldDo.test.js @@ -228,7 +228,7 @@ describe('shouldDo', () => { options.timezoneOffset = 0; options.nextDue = true; - day = moment('2017-05-01').toDate(); + day = moment.utc('2017-05-01').toDate(); dailyTask.frequency = 'daily'; dailyTask.everyX = 2; dailyTask.startDate = day; @@ -391,7 +391,7 @@ describe('shouldDo', () => { options.timezoneOffset = 0; options.nextDue = true; - day = moment('2017-05-01').toDate(); + day = moment.utc('2017-05-01').toDate(); dailyTask.frequency = 'weekly'; dailyTask.everyX = 1; dailyTask.repeat = { @@ -780,7 +780,7 @@ describe('shouldDo', () => { options.timezoneOffset = 0; options.nextDue = true; - day = moment('2017-05-01').toDate(); + day = moment.utc('2017-05-01').toDate(); dailyTask.frequency = 'monthly'; dailyTask.everyX = 3; @@ -817,7 +817,7 @@ describe('shouldDo', () => { expect(moment(nextDue[4]).toDate()).to.eql(moment.utc('2017-10-02').toDate()); expect(moment(nextDue[5]).toDate()).to.eql(moment.utc('2017-11-06').toDate()); - day = moment('2017-05-08').toDate(); + day = moment.utc('2017-05-08').toDate(); dailyTask.daysOfMonth = []; dailyTask.weeksOfMonth = [1]; @@ -841,7 +841,7 @@ describe('shouldDo', () => { expect(moment(nextDue[4]).toDate()).to.eql(moment.utc('2017-10-09').toDate()); expect(moment(nextDue[5]).toDate()).to.eql(moment.utc('2017-11-13').toDate()); - day = moment('2017-05-29').toDate(); + day = moment.utc('2017-05-29').toDate(); dailyTask.daysOfMonth = []; dailyTask.weeksOfMonth = [4]; @@ -1143,7 +1143,7 @@ describe('shouldDo', () => { options.timezoneOffset = 0; options.nextDue = true; - day = moment('2017-05-01').toDate(); + day = moment.utc('2017-05-01').toDate(); dailyTask.frequency = 'yearly'; dailyTask.everyX = 5; diff --git a/website/client/components/challenges/challengeDetail.vue b/website/client/components/challenges/challengeDetail.vue index e164475aa0..b3a7b1230f 100644 --- a/website/client/components/challenges/challengeDetail.vue +++ b/website/client/components/challenges/challengeDetail.vue @@ -317,7 +317,7 @@ export default { }, createTask (type) { this.taskFormPurpose = 'create'; - this.creatingTask = taskDefaults({type, text: ''}); + this.creatingTask = taskDefaults({type, text: ''}, this.user); this.workingTask = this.creatingTask; // Necessary otherwise the first time the modal is not rendered Vue.nextTick(() => { diff --git a/website/client/components/chat/copyAsTodoModal.vue b/website/client/components/chat/copyAsTodoModal.vue index daea542136..cd29534ee6 100644 --- a/website/client/components/chat/copyAsTodoModal.vue +++ b/website/client/components/chat/copyAsTodoModal.vue @@ -45,7 +45,7 @@ export default { type: 'todo', notes, }; - this.task = taskDefaults(newTask); + this.task = taskDefaults(newTask, this.$store.state.user.data); this.$root.$emit('bv::show::modal', 'copyAsTodo'); }); }, diff --git a/website/client/components/group-plans/taskInformation.vue b/website/client/components/group-plans/taskInformation.vue index 01aeb6c3e8..b65b216a11 100644 --- a/website/client/components/group-plans/taskInformation.vue +++ b/website/client/components/group-plans/taskInformation.vue @@ -401,7 +401,7 @@ export default { }, createTask (type) { this.taskFormPurpose = 'create'; - this.creatingTask = taskDefaults({type, text: ''}); + this.creatingTask = taskDefaults({type, text: ''}, this.user); this.workingTask = this.creatingTask; // Necessary otherwise the first time the modal is not rendered Vue.nextTick(() => { diff --git a/website/client/components/tasks/column.vue b/website/client/components/tasks/column.vue index 58c2ff139f..4ea4ea606e 100644 --- a/website/client/components/tasks/column.vue +++ b/website/client/components/tasks/column.vue @@ -540,7 +540,7 @@ export default { const tasks = text.split('\n').reverse().filter(taskText => { return taskText ? true : false; }).map(taskText => { - const task = taskDefaults({type: this.type, text: taskText}); + const task = taskDefaults({type: this.type, text: taskText}, this.user); task.tags = this.selectedTags; return task; }); diff --git a/website/client/components/tasks/user.vue b/website/client/components/tasks/user.vue index bf5dd16585..18fd696b3a 100644 --- a/website/client/components/tasks/user.vue +++ b/website/client/components/tasks/user.vue @@ -445,7 +445,7 @@ export default { }, createTask (type) { this.openCreateBtn = false; - this.creatingTask = taskDefaults({type, text: ''}); + this.creatingTask = taskDefaults({type, text: ''}, this.user); this.creatingTask.tags = this.selectedTags; // Necessary otherwise the first time the modal is not rendered diff --git a/website/common/script/libs/taskDefaults.js b/website/common/script/libs/taskDefaults.js index 52c8f2f54a..8408119585 100644 --- a/website/common/script/libs/taskDefaults.js +++ b/website/common/script/libs/taskDefaults.js @@ -9,7 +9,7 @@ import moment from 'moment'; const tasksTypes = ['habit', 'daily', 'todo', 'reward']; -module.exports = function taskDefaults (task = {}) { +module.exports = function taskDefaults (task, user) { if (!task.type || tasksTypes.indexOf(task.type) === -1) { task.type = 'habit'; } @@ -65,6 +65,14 @@ module.exports = function taskDefaults (task = {}) { } if (task.type === 'daily') { + let now = moment().zone(user.preferences.timezoneOffset); + let startOfDay = now.clone().startOf('day'); + let startOfDayWithCDSTime = startOfDay + .clone() + .add({ + hours: user.preferences.dayStart, + }); + defaults(task, { streak: 0, repeat: { @@ -76,7 +84,10 @@ module.exports = function taskDefaults (task = {}) { s: true, su: true, }, - startDate: moment().startOf('day').toDate(), + // If cron will happen today, start the daily yesterday + startDate: startOfDayWithCDSTime.isAfter(now) ? + startOfDay.clone().subtract(1, 'day').toDate() : + startOfDay.toDate(), everyX: 1, frequency: 'weekly', daysOfMonth: [], diff --git a/website/common/script/ops/addTask.js b/website/common/script/ops/addTask.js index 506bde22b8..92badf72fc 100644 --- a/website/common/script/ops/addTask.js +++ b/website/common/script/ops/addTask.js @@ -4,7 +4,7 @@ import clone from 'lodash/clone'; // TODO move to client since it's only used there? module.exports = function addTask (user, req = {body: {}}) { - let task = taskDefaults(req.body); + let task = taskDefaults(req.body, user); user.tasksOrder[`${task.type}s`].unshift(task._id); user[`${task.type}s`].unshift(task); From e9eddec0c4b445fd6e05d4d064ff7a082ce06d21 Mon Sep 17 00:00:00 2001 From: Kirsty Date: Fri, 2 Nov 2018 16:16:11 +0000 Subject: [PATCH 3/5] check pet is hatchable before highlighting (#10797) --- website/client/components/inventory/items/index.vue | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/website/client/components/inventory/items/index.vue b/website/client/components/inventory/items/index.vue index 2bcaa1579d..8e30db56e1 100644 --- a/website/client/components/inventory/items/index.vue +++ b/website/client/components/inventory/items/index.vue @@ -373,9 +373,12 @@ export default { if (potion === null || egg === null) return false; - let petKey = `${egg.key}-${potion.key}`; + const petKey = `${egg.key}-${potion.key}`; - if (!this.content.petInfo[petKey]) + const petInfo = this.content.petInfo[petKey]; + + // Check pet exists and is hatchable + if (!petInfo || !petInfo.potion) return false; return !this.userHasPet(potion.key, egg.key); From e4a347a3cb2881fc8f059659afd19e79efef368c Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Sat, 3 Nov 2018 14:08:46 +0100 Subject: [PATCH 4/5] update gulp-nodemon --- package-lock.json | 344 ++-------------------------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 330 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5165ad0489..0553ff0208 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8243,11 +8243,6 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=" - }, "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", @@ -10746,11 +10741,6 @@ } } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" - }, "find-pkg": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", @@ -11587,14 +11577,6 @@ } } }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "requires": { - "globule": "~0.1.0" - } - }, "generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", @@ -11886,14 +11868,6 @@ "object.defaults": "^1.1.0" } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "requires": { - "find-index": "^0.1.1" - } - }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -11948,57 +11922,6 @@ } } }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" - }, - "lodash": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } - } - }, "glogg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", @@ -12305,196 +12228,20 @@ } }, "gulp-nodemon": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gulp-nodemon/-/gulp-nodemon-2.2.1.tgz", - "integrity": "sha1-2b8Zn1WFRYFZ09KZFT5gtGhotvQ=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gulp-nodemon/-/gulp-nodemon-2.4.1.tgz", + "integrity": "sha512-IZMEfUZggvXvYDCCbb4jq8xMSsS24OltlgL0KhumhDAbZJUHMm3tHEolHbNLLL9704Wm/DgZ5bdFqCb2hXG0bQ==", "requires": { - "colors": "^1.0.3", - "event-stream": "^3.2.1", - "gulp": "^3.9.1", - "nodemon": "^1.10.2" + "colors": "^1.2.1", + "event-stream": "^3.3.4", + "gulp": "^4.0.0", + "nodemon": "^1.17.5" }, "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - } - }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "requires": { - "gaze": "^0.5.1" - } - }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "requires": { - "natives": "^1.1.0" - } - }, - "gulp": { - "version": "3.9.1", - "resolved": "http://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "semver": { - "version": "4.3.6", - "resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - } - }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" - } + "colors": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", + "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==" } } }, @@ -17421,11 +17168,6 @@ "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=", "dev": true }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==" - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -18130,11 +17872,11 @@ "integrity": "sha512-A3s7EM/426OBIZbLHXq2KkgvmKbn2Xga4m4G+ZUA4IaZvG8PcZXrFh+2E4VaS2o+emhuUVRnzKN2YmpkXQ9qwA==" }, "nodemon": { - "version": "1.18.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.4.tgz", - "integrity": "sha512-hyK6vl65IPnky/ee+D3IWvVGgJa/m3No2/Xc/3wanS6Ce1MWjCzH6NnhPJ/vZM+6JFym16jtHx51lmCMB9HDtg==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.5.tgz", + "integrity": "sha512-8806dC8dfBlbxQmqNOSEeay/qlbddKvFzxIGNxnPtxUlTtH77xsrC66RnA3M47HCSgMgE5bj+U586o50RowXBg==", "requires": { - "chokidar": "^2.0.2", + "chokidar": "^2.0.4", "debug": "^3.1.0", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", @@ -18802,34 +18544,6 @@ } } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" - }, - "dependencies": { - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "requires": { - "once": "~1.3.0" - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1" - } - } - } - }, "ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -23373,11 +23087,6 @@ } } }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=" - }, "serve-static": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", @@ -23501,11 +23210,6 @@ "uuid": "^3.2.1" } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -24320,11 +24024,6 @@ "readable-stream": "^2.0.2" } }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" - }, "stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", @@ -25188,14 +24887,6 @@ "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", "dev": true }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "requires": { - "os-homedir": "^1.0.0" - } - }, "time-diff": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/time-diff/-/time-diff-0.3.1.tgz", @@ -26316,11 +26007,6 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, "useragent": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", diff --git a/package.json b/package.json index 739ffde1d1..a0d879435f 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "gulp": "^4.0.0", "gulp-babel": "^7.0.1", "gulp-imagemin": "^4.1.0", - "gulp-nodemon": "^2.2.1", + "gulp-nodemon": "^2.4.1", "gulp.spritesmith": "^6.9.0", "habitica-markdown": "^1.3.0", "hellojs": "^1.15.1", From 7195ac15b99b0dd969c4f2545ac097f08fc4a516 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Mon, 5 Nov 2018 15:04:45 +0100 Subject: [PATCH 5/5] fix(group-plan-tasks): show checkmark when task completed --- website/client/components/tasks/task.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/client/components/tasks/task.vue b/website/client/components/tasks/task.vue index 459fd97cc3..5f743a0d44 100644 --- a/website/client/components/tasks/task.vue +++ b/website/client/components/tasks/task.vue @@ -435,7 +435,7 @@ cursor: default !important; } - .svg-icon.check { + .svg-icon.check:not(.display-check-icon) { display: none !important; } }