From d00c7c3a503031689f135cd632c8cb990bd2b0cc Mon Sep 17 00:00:00 2001 From: Fabian Kromer Date: Wed, 27 Mar 2024 15:59:26 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fixed=20previous=20button=20in?= =?UTF-8?q?=20the=20week=20view=20skipping=20one=20week=20=F0=9F=90=9B=20f?= =?UTF-8?q?ixed=20null=20values=20stored=20incorrectly=20in=20the=20week?= =?UTF-8?q?=20view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- imports/api/timecards/server/methods.js | 34 ++++++++++--------- imports/api/users/server/publications.js | 5 +-- .../ui/pages/track/components/weektable.js | 4 +-- package.json | 2 +- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/imports/api/timecards/server/methods.js b/imports/api/timecards/server/methods.js index 782a5bc..d115d50 100644 --- a/imports/api/timecards/server/methods.js +++ b/imports/api/timecards/server/methods.js @@ -150,23 +150,25 @@ async function upsertTimecard(projectId, task, date, hours, userId) { task: await emojify(task), }) } - await Timecards.updateAsync( - { - userId, - projectId, - date, - task: await emojify(task), - }, - { - userId, - projectId, - date, - hours, - task: await emojify(task), - }, + if (hours !== 0) { + await Timecards.updateAsync( + { + userId, + projectId, + date, + task: await emojify(task), + }, + { + userId, + projectId, + date, + hours, + task: await emojify(task), + }, - { upsert: true }, - ) + { upsert: true }, + ) + } return 'notifications.success' } async function checkProjectAdministratorAndUser(projectId, administratorId, userId) { diff --git a/imports/api/users/server/publications.js b/imports/api/users/server/publications.js index 58b482a..5113ad3 100644 --- a/imports/api/users/server/publications.js +++ b/imports/api/users/server/publications.js @@ -105,19 +105,20 @@ Meteor.publish('adminUserList', async function adminUserList({ limit, search }) options.fields = { profile: 1, emails: 1, isAdmin: 1, createdAt: 1, inactive: 1, } + let query = {} options.sort = { createdAt: -1 } if (limit) { options.limit = limit } if (search) { - options.filter = { + query = { $or: [ { 'profile.name': { $regex: `.*${search.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g, '\\$&')}.*`, $options: 'i' } }, { 'emails.address': { $regex: `.*${search.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g, '\\$&')}.*`, $options: 'i' } }, ], } } - return Meteor.users.find({}, options) + return Meteor.users.find(query, options) }) Meteor.publish('projectResources', async function projectResources({ projectId }) { diff --git a/imports/ui/pages/track/components/weektable.js b/imports/ui/pages/track/components/weektable.js index 5b65f35..3aee853 100644 --- a/imports/ui/pages/track/components/weektable.js +++ b/imports/ui/pages/track/components/weektable.js @@ -96,11 +96,11 @@ Template.weektable.helpers({ Template.weektable.events({ 'click .js-previous-week': (event, templateInstance) => { event.preventDefault() - FlowRouter.setQueryParams({ date: dayjs.utc(templateInstance.startDate.get()).subtract(1, 'week').format('YYYY-MM-DD') }) + FlowRouter.setQueryParams({ date: templateInstance.startDate.get().subtract(1, 'week').format('YYYY-MM-DD') }) }, 'click .js-next-week': (event, templateInstance) => { event.preventDefault() - FlowRouter.setQueryParams({ date: dayjs.utc(templateInstance.startDate.get()).add(1, 'week').format('YYYY-MM-DD') }) + FlowRouter.setQueryParams({ date: templateInstance.startDate.get().add(1, 'week').format('YYYY-MM-DD') }) }, 'click .js-today': (event, templateInstance) => { event.preventDefault() diff --git a/package.json b/package.json index 4c8e1bd..530d692 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "titra", - "version": "0.97.1", + "version": "0.97.2", "private": true, "scripts": { "start": "meteor run"