From 1a11b43ca8d51bf998019fbc741e845b07d70157 Mon Sep 17 00:00:00 2001 From: Dominik Pschenitschni Date: Tue, 6 Sep 2022 11:36:01 +0200 Subject: [PATCH] feat: improve models --- src/components/home/navigation.vue | 4 ++-- .../list/list-settings-dropdown.vue | 4 ++-- src/components/list/partials/list-card.vue | 2 +- src/components/misc/subscription.vue | 3 ++- .../namespace/namespace-settings-dropdown.vue | 5 +++-- src/components/sharing/linkSharing.vue | 6 ++++-- src/components/sharing/userTeam.vue | 19 +++++++++++++------ src/components/tasks/edit-task.vue | 3 ++- src/components/tasks/partials/attachments.vue | 7 ++++--- .../tasks/partials/checklist-summary.vue | 2 +- src/components/tasks/partials/comments.vue | 7 +++++-- .../tasks/partials/createdUpdated.vue | 2 +- src/components/tasks/partials/defer-task.vue | 2 +- src/components/tasks/partials/description.vue | 2 +- src/components/tasks/partials/heading.vue | 8 +++++--- src/components/tasks/partials/kanban-card.vue | 3 ++- src/components/tasks/partials/labels.vue | 4 ++-- src/components/tasks/partials/listSearch.vue | 3 ++- .../tasks/partials/singleTaskInList.vue | 3 ++- src/helpers/attachments.ts | 5 +++-- src/helpers/getListTitle.ts | 2 +- src/helpers/getNamespaceTitle.ts | 2 +- src/helpers/labels.ts | 2 +- src/helpers/saveCollapsedBucketState.ts | 2 +- src/helpers/savedFilter.ts | 2 +- src/models/attachment.ts | 2 +- src/models/avatar.ts | 2 +- src/models/backgroundImage.ts | 2 +- src/models/bucket.ts | 6 +++--- src/models/caldavToken.ts | 2 +- src/models/emailUpdate.ts | 2 +- src/models/file.ts | 2 +- src/models/label.ts | 2 +- src/models/labelTask.ts | 2 +- src/models/linkShare.ts | 2 +- src/models/list.ts | 4 ++-- src/models/listDuplicateModel.ts | 2 +- src/models/namespace.ts | 4 ++-- src/models/notification.ts | 2 +- src/models/passwordReset.ts | 2 +- src/models/passwordUpdate.ts | 2 +- src/models/savedFilter.ts | 2 +- src/models/subscription.ts | 2 +- src/models/task.ts | 2 +- src/models/taskAssignee.ts | 2 +- src/models/taskComment.ts | 2 +- src/models/taskRelation.ts | 2 +- src/models/team.ts | 2 +- src/models/teamShareBase.ts | 2 +- src/models/totp.ts | 2 +- src/models/user.ts | 2 +- src/models/userSettings.ts | 2 +- src/models/userShareBase.ts | 2 +- src/modules/parseTaskText.test.ts | 10 +++++----- src/services/abstractService.ts | 2 +- src/services/attachment.ts | 12 ++++++++---- src/services/avatar.ts | 5 +++-- src/services/backgroundUnsplash.ts | 5 +++-- src/services/backgroundUpload.ts | 10 +++++----- src/services/bucket.ts | 5 +++-- src/services/caldavToken.ts | 3 ++- src/services/label.ts | 3 ++- src/services/labelTask.ts | 3 ++- src/services/linkShare.ts | 3 ++- src/services/list.ts | 3 ++- src/services/listDuplicateService.ts | 3 ++- .../migrator/abstractMigrationFile.ts | 5 +++-- src/services/namespace.ts | 3 ++- src/services/notification.ts | 3 ++- src/services/passwordReset.ts | 3 ++- src/services/passwordUpdateService.ts | 2 +- src/services/savedFilter.ts | 3 ++- src/services/subscription.ts | 3 ++- src/services/task.ts | 3 ++- src/services/taskAssignee.ts | 3 ++- src/services/taskComment.ts | 3 ++- src/services/taskRelation.ts | 3 ++- src/services/team.ts | 3 ++- src/services/teamList.ts | 5 +++-- src/services/teamMember.ts | 3 ++- src/services/teamNamespace.ts | 5 +++-- src/services/totp.ts | 3 ++- src/services/user.ts | 3 ++- src/services/userList.ts | 8 +++++--- src/services/userNamespace.ts | 8 +++++--- src/services/userSettings.ts | 3 +-- src/views/filters/FilterEdit.vue | 2 +- src/views/labels/ListLabels.vue | 3 ++- src/views/list/ListList.vue | 2 +- src/views/list/ListTable.vue | 2 +- src/views/tasks/ShowTasks.vue | 2 +- src/views/tasks/TaskDetailView.vue | 5 +++-- src/views/teams/EditTeam.vue | 6 +++--- src/views/user/settings/Caldav.vue | 2 +- tsconfig.app.json | 3 +++ 95 files changed, 198 insertions(+), 139 deletions(-) diff --git a/src/components/home/navigation.vue b/src/components/home/navigation.vue index 33cbf62f8..dc09c5d72 100644 --- a/src/components/home/navigation.vue +++ b/src/components/home/navigation.vue @@ -156,8 +156,8 @@ import {calculateItemPosition} from '@/helpers/calculateItemPosition' import {getNamespaceTitle} from '@/helpers/getNamespaceTitle' import {getListTitle} from '@/helpers/getListTitle' import {useEventListener} from '@vueuse/core' -import type { IList } from '@/models/list' -import type { INamespace } from '@/models/namespace' +import type {IList} from '@/modelTypes/IList' +import type {INamespace} from '@/modelTypes/INamespace' const drag = ref(false) const dragOptions = { diff --git a/src/components/list/list-settings-dropdown.vue b/src/components/list/list-settings-dropdown.vue index 611bf8708..8e6cbe3a9 100644 --- a/src/components/list/list-settings-dropdown.vue +++ b/src/components/list/list-settings-dropdown.vue @@ -83,8 +83,8 @@ import {getSavedFilterIdFromListId} from '@/helpers/savedFilter' import Dropdown from '@/components/misc/dropdown.vue' import DropdownItem from '@/components/misc/dropdown-item.vue' import TaskSubscription from '@/components/misc/subscription.vue' -import type {IList} from '@/models/list' -import type { ISubscription } from '@/models/subscription' +import type {IList} from '@/modelTypes/IList' +import type {ISubscription} from '@/modelTypes/ISubscription' const props = defineProps({ list: { diff --git a/src/components/list/partials/list-card.vue b/src/components/list/partials/list-card.vue index 0597639d2..f2a8b4eb4 100644 --- a/src/components/list/partials/list-card.vue +++ b/src/components/list/partials/list-card.vue @@ -45,7 +45,7 @@ import {getBlobFromBlurHash} from '@/helpers/getBlobFromBlurHash' import {colorIsDark} from '@/helpers/color/colorIsDark' import BaseButton from '@/components/base/BaseButton.vue' -import type { IList } from '@/models/list' +import type {IList} from '@/modelTypes/IList' const background = ref(null) const backgroundLoading = ref(false) diff --git a/src/components/misc/subscription.vue b/src/components/misc/subscription.vue index 070476888..6987e6858 100644 --- a/src/components/misc/subscription.vue +++ b/src/components/misc/subscription.vue @@ -39,7 +39,8 @@ import BaseButton from '@/components/base/BaseButton.vue' import DropdownItem from '@/components/misc/dropdown-item.vue' import SubscriptionService from '@/services/subscription' -import SubscriptionModel, { type ISubscription } from '@/models/subscription' +import SubscriptionModel from '@/models/subscription' +import type {ISubscription} from '@/modelTypes/ISubscription' import {success} from '@/message' diff --git a/src/components/namespace/namespace-settings-dropdown.vue b/src/components/namespace/namespace-settings-dropdown.vue index d80d563d6..a94d1eeb3 100644 --- a/src/components/namespace/namespace-settings-dropdown.vue +++ b/src/components/namespace/namespace-settings-dropdown.vue @@ -59,7 +59,8 @@ import {ref, onMounted, type PropType} from 'vue' import Dropdown from '@/components/misc/dropdown.vue' import DropdownItem from '@/components/misc/dropdown-item.vue' import TaskSubscription from '@/components/misc/subscription.vue' -import type { INamespace } from '@/models/namespace' +import type {INamespace} from '@/modelTypes/INamespace' +import type {ISubscription} from '@/modelTypes/ISubscription' const props = defineProps({ namespace: { @@ -68,7 +69,7 @@ const props = defineProps({ }, }) -const subscription = ref(null) +const subscription = ref(null) onMounted(() => { subscription.value = props.namespace.subscription }) diff --git a/src/components/sharing/linkSharing.vue b/src/components/sharing/linkSharing.vue index c36b3ddcf..51f3b34f6 100644 --- a/src/components/sharing/linkSharing.vue +++ b/src/components/sharing/linkSharing.vue @@ -181,13 +181,15 @@ import {useStore} from '@/store' import {useI18n} from 'vue-i18n' import {RIGHTS} from '@/constants/rights' -import LinkShareModel, { type ILinkShare } from '@/models/linkShare' +import LinkShareModel from '@/models/linkShare' + +import type {ILinkShare} from '@/modelTypes/ILinkShare' +import type {IList} from '@/modelTypes/IList' import LinkShareService from '@/services/linkShare' import {useCopyToClipboard} from '@/composables/useCopyToClipboard' import {success} from '@/message' -import type { IList } from '@/models/list' const props = defineProps({ listId: { diff --git a/src/components/sharing/userTeam.vue b/src/components/sharing/userTeam.vue index 84a212cc2..d961d382c 100644 --- a/src/components/sharing/userTeam.vue +++ b/src/components/sharing/userTeam.vue @@ -143,22 +143,29 @@ import {useStore} from '@/store' import {useI18n} from 'vue-i18n' import UserNamespaceService from '@/services/userNamespace' -import UserNamespaceModel, { type IUserNamespace } from '@/models/userNamespace' +import UserNamespaceModel from '@/models/userNamespace' +import type {IUserNamespace} from '@/modelTypes/IUserNamespace' import UserListService from '@/services/userList' -import UserListModel, { type IUserList } from '@/models/userList' +import UserListModel from '@/models/userList' +import type {IUserList} from '@/modelTypes/IUserList' import UserService from '@/services/user' -import UserModel, { type IUser } from '@/models/user' +import UserModel from '@/models/user' +import type {IUser} from '@/modelTypes/IUser' import TeamNamespaceService from '@/services/teamNamespace' -import TeamNamespaceModel, { type ITeamNamespace } from '@/models/teamNamespace' +import TeamNamespaceModel from '@/models/teamNamespace' +import type { ITeamNamespace } from '@/modelTypes/ITeamNamespace' import TeamListService from '@/services/teamList' -import TeamListModel, { type ITeamList } from '@/models/teamList' +import TeamListModel from '@/models/teamList' +import type { ITeamList } from '@/modelTypes/ITeamList' import TeamService from '@/services/team' -import TeamModel, { type ITeam } from '@/models/team' +import TeamModel from '@/models/team' +import type {ITeam} from '@/modelTypes/ITeam' + import {RIGHTS} from '@/constants/rights' import Multiselect from '@/components/input/multiselect.vue' diff --git a/src/components/tasks/edit-task.vue b/src/components/tasks/edit-task.vue index a067f4036..5c5115f09 100644 --- a/src/components/tasks/edit-task.vue +++ b/src/components/tasks/edit-task.vue @@ -83,7 +83,8 @@ import {useI18n} from 'vue-i18n' import Editor from '@/components/input/AsyncEditor' import TaskService from '@/services/task' -import TaskModel, { type ITask } from '@/models/task' +import TaskModel from '@/models/task' +import type {ITask} from '@/modelTypes/ITask' import EditLabels from './partials/editLabels.vue' import Reminders from './partials/reminders.vue' import ColorPicker from '../input/colorPicker.vue' diff --git a/src/components/tasks/partials/attachments.vue b/src/components/tasks/partials/attachments.vue index 70d6e5b1e..d8676d319 100644 --- a/src/components/tasks/partials/attachments.vue +++ b/src/components/tasks/partials/attachments.vue @@ -147,7 +147,8 @@ import {defineComponent} from 'vue' import AttachmentService from '../../../services/attachment' -import AttachmentModel, { type IAttachment } from '@/models/attachment' +import AttachmentModel from '@/models/attachment' +import type {IAttachment} from '@/modelTypes/IAttachment' import User from '@/components/misc/user.vue' import {mapState} from 'vuex' @@ -155,8 +156,8 @@ import { useCopyToClipboard } from '@/composables/useCopyToClipboard' import { uploadFiles, generateAttachmentUrl } from '@/helpers/attachments' import {formatDate, formatDateSince, formatDateLong} from '@/helpers/time/formatDate' -import BaseButton from '@/components/base/BaseButton' -import type { IFile } from '@/models/file' +import BaseButton from '@/components/base/BaseButton.vue' +import type { IFile } from '@/modelTypes/IFile' import { getHumanSize } from '@/helpers/getHumanSize' export default defineComponent({ diff --git a/src/components/tasks/partials/checklist-summary.vue b/src/components/tasks/partials/checklist-summary.vue index 6e17d140a..69f1dd2e9 100644 --- a/src/components/tasks/partials/checklist-summary.vue +++ b/src/components/tasks/partials/checklist-summary.vue @@ -14,7 +14,7 @@ import {computed, type PropType} from 'vue' import { useI18n } from 'vue-i18n' import {getChecklistStatistics} from '@/helpers/checklistFromText' -import type {ITask} from '@/models/task' +import type {ITask} from '@/modelTypes/ITask' const props = defineProps({ task: { diff --git a/src/components/tasks/partials/comments.vue b/src/components/tasks/partials/comments.vue index 653c60b90..e0f8b9795 100644 --- a/src/components/tasks/partials/comments.vue +++ b/src/components/tasks/partials/comments.vue @@ -159,12 +159,15 @@ import {useI18n} from 'vue-i18n' import Editor from '@/components/input/AsyncEditor' import TaskCommentService from '@/services/taskComment' -import TaskCommentModel, { type ITaskComment } from '@/models/taskComment' +import TaskCommentModel from '@/models/taskComment' + +import type {ITaskComment} from '@/modelTypes/ITaskComment' +import type {ITask} from '@/modelTypes/ITask' + import {uploadFile} from '@/helpers/attachments' import {success} from '@/message' import {formatDateLong, formatDateSince} from '@/helpers/time/formatDate' -import type { ITask } from '@/models/task' const props = defineProps({ taskId: { type: Number, diff --git a/src/components/tasks/partials/createdUpdated.vue b/src/components/tasks/partials/createdUpdated.vue index 3d839e5fe..d615fdfb6 100644 --- a/src/components/tasks/partials/createdUpdated.vue +++ b/src/components/tasks/partials/createdUpdated.vue @@ -28,7 +28,7 @@