diff --git a/package.json b/package.json index 6196f96bf..519b7589c 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ "dependencies": { "bulma": "^0.8.0", "copy-to-clipboard": "^3.2.0", + "date-fns": "^2.10.0", "lodash": "^4.17.15", - "moment": "^2.24.0", "register-service-worker": "^1.6.2", "v-tooltip": "^2.0.2", "verte": "^0.0.12", diff --git a/src/main.js b/src/main.js index 102401217..b6d4c9f23 100644 --- a/src/main.js +++ b/src/main.js @@ -132,12 +132,12 @@ Vue.directive('focus', { auth.checkAuth() // Mixins -import moment from 'moment' import message from './message' +import {format, formatDistance} from 'date-fns' Vue.mixin({ methods: { - formatDateSince: date => moment(date).fromNow(), - formatDate: date => moment(date).format('LLL'), + formatDateSince: date => formatDistance(date, new Date()), + formatDate: date => format(date, 'PPPPpppp'), error: (e, context, actions = []) => message.error(e, context, actions), success: (s, context, actions = []) => message.success(s, context, actions), } diff --git a/src/services/attachment.js b/src/services/attachment.js index 36815d7cc..530d83b7c 100644 --- a/src/services/attachment.js +++ b/src/services/attachment.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import AttachmentModel from '../models/attachment' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class AttachmentService extends AbstractService { constructor() { @@ -12,7 +12,7 @@ export default class AttachmentService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() + model.created = formatISO(model.created) return model } diff --git a/src/services/label.js b/src/services/label.js index 741ec3eb8..7b050d4ba 100644 --- a/src/services/label.js +++ b/src/services/label.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import LabelModel from '../models/label' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class LabelService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class LabelService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/linkShare.js b/src/services/linkShare.js index 57416e3c0..aa411defd 100644 --- a/src/services/linkShare.js +++ b/src/services/linkShare.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import LinkShareModel from '../models/linkShare' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class ListService extends AbstractService { constructor() { @@ -13,8 +13,8 @@ export default class ListService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/list.js b/src/services/list.js index d6ffcdca0..dff27c2a5 100644 --- a/src/services/list.js +++ b/src/services/list.js @@ -1,7 +1,7 @@ import AbstractService from './abstractService' import ListModel from '../models/list' import TaskService from './task' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class ListService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class ListService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/listUsers.js b/src/services/listUsers.js index a76999839..6c4742b8d 100644 --- a/src/services/listUsers.js +++ b/src/services/listUsers.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import UserModel from '../models/user' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class ListUserService extends AbstractService { constructor() { @@ -10,8 +10,8 @@ export default class ListUserService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/namespace.js b/src/services/namespace.js index 86ecebdce..36d1f1ab8 100644 --- a/src/services/namespace.js +++ b/src/services/namespace.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import NamespaceModel from '../models/namespace' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class NamespaceService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class NamespaceService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/task.js b/src/services/task.js index 96a4d2e23..6e69c7d08 100644 --- a/src/services/task.js +++ b/src/services/task.js @@ -1,7 +1,7 @@ import AbstractService from './abstractService' import TaskModel from '../models/task' import AttachmentService from './attachment' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TaskService extends AbstractService { constructor() { @@ -31,11 +31,11 @@ export default class TaskService extends AbstractService { model.listID = Number(model.listID) // Convert dates into an iso string - model.dueDate = moment(model.dueDate).toISOString() - model.startDate = moment(model.startDate).toISOString() - model.endDate = moment(model.endDate).toISOString() - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.dueDate = model.dueDate === null ? null : formatISO(model.dueDate) + model.startDate = model.startDate === null ? null : formatISO(model.startDate) + model.endDate = model.endDate === null ? null : formatISO(model.endDate) + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) // remove all nulls, these would create empty reminders for (const index in model.reminderDates) { @@ -47,7 +47,7 @@ export default class TaskService extends AbstractService { // Make normal timestamps from js dates if(model.reminderDates.length > 0) { model.reminderDates = model.reminderDates.map(r => { - return moment(r).toISOString() + return formatISO(r) }) } diff --git a/src/services/taskAssignee.js b/src/services/taskAssignee.js index e788bee1c..28263b5eb 100644 --- a/src/services/taskAssignee.js +++ b/src/services/taskAssignee.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import TaskAssigneeModel from '../models/taskAssignee' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TaskAssigneeService extends AbstractService { constructor() { @@ -11,7 +11,7 @@ export default class TaskAssigneeService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() + model.created = formatISO(model.created) return model } diff --git a/src/services/taskCollection.js b/src/services/taskCollection.js index dc7f499eb..75c2215a4 100644 --- a/src/services/taskCollection.js +++ b/src/services/taskCollection.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import TaskModel from '../models/task' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TaskCollectionService extends AbstractService { constructor() { @@ -10,8 +10,8 @@ export default class TaskCollectionService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/taskComment.js b/src/services/taskComment.js index bcd74ed25..f2db85fc5 100644 --- a/src/services/taskComment.js +++ b/src/services/taskComment.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import TaskCommentModel from '../models/taskComment' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TaskCommentService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class TaskCommentService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/taskRelation.js b/src/services/taskRelation.js index 3f36fb931..394648e71 100644 --- a/src/services/taskRelation.js +++ b/src/services/taskRelation.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import TaskRelationModel from '../models/taskRelation' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TaskRelationService extends AbstractService { constructor() { @@ -11,7 +11,7 @@ export default class TaskRelationService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() + model.created = formatISO(model.created) return model } diff --git a/src/services/team.js b/src/services/team.js index f9b937dad..685460d95 100644 --- a/src/services/team.js +++ b/src/services/team.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import TeamModel from '../models/team' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TeamService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class TeamService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/teamList.js b/src/services/teamList.js index 85724fb20..8e889da8c 100644 --- a/src/services/teamList.js +++ b/src/services/teamList.js @@ -1,7 +1,7 @@ import AbstractService from './abstractService' import TeamListModel from '../models/teamList' import TeamModel from '../models/team' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TeamListService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class TeamListService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/teamMember.js b/src/services/teamMember.js index b19855480..d1edf39f9 100644 --- a/src/services/teamMember.js +++ b/src/services/teamMember.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import TeamMemberModel from '../models/teamMember' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TeamMemberService extends AbstractService { constructor() { @@ -11,8 +11,8 @@ export default class TeamMemberService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/teamNamespace.js b/src/services/teamNamespace.js index a469eec6b..f8fc16387 100644 --- a/src/services/teamNamespace.js +++ b/src/services/teamNamespace.js @@ -1,7 +1,7 @@ import AbstractService from './abstractService' import TeamNamespaceModel from '../models/teamNamespace' import TeamModel from '../models/team' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class TeamNamespaceService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class TeamNamespaceService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/user.js b/src/services/user.js index 8beef8923..e65b547cf 100644 --- a/src/services/user.js +++ b/src/services/user.js @@ -1,6 +1,6 @@ import AbstractService from './abstractService' import UserModel from '../models/user' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class UserService extends AbstractService { constructor() { @@ -10,8 +10,8 @@ export default class UserService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/userList.js b/src/services/userList.js index 3670c939d..44b155037 100644 --- a/src/services/userList.js +++ b/src/services/userList.js @@ -1,7 +1,7 @@ import AbstractService from './abstractService' import UserListModel from '../models/userList' import UserModel from '../models/user' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class UserListService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class UserListService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/src/services/userNamespace.js b/src/services/userNamespace.js index 5904fb0d2..2a98cc070 100644 --- a/src/services/userNamespace.js +++ b/src/services/userNamespace.js @@ -1,7 +1,7 @@ import AbstractService from './abstractService' import UserNamespaceModel from '../models/userNamespace' import UserModel from '../models/user' -import moment from 'moment' +import {formatISO} from 'date-fns' export default class UserNamespaceService extends AbstractService { constructor() { @@ -14,8 +14,8 @@ export default class UserNamespaceService extends AbstractService { } processModel(model) { - model.created = moment(model.created).toISOString() - model.updated = moment(model.updated).toISOString() + model.created = formatISO(model.created) + model.updated = formatISO(model.updated) return model } diff --git a/yarn.lock b/yarn.lock index c419e70c3..e6d074c5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4851,6 +4851,11 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-fns@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.10.0.tgz#abd10604d8bafb0bcbd2ba2e9b0563b922ae4b6b" + integrity sha512-EhfEKevYGWhWlZbNeplfhIU/+N+x0iCIx7VzKlXma2EdQyznVlZhCptXUY+BegNpPW2kjdx15Rvq503YcXXrcA== + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"