diff --git a/babel.config.js b/babel.config.js index ba179669a..d39e57b42 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,5 +1,5 @@ module.exports = { presets: [ - '@vue/app' - ] + '@vue/app', + ], } diff --git a/package.json b/package.json index a66210fa0..82631d3ac 100644 --- a/package.json +++ b/package.json @@ -76,6 +76,10 @@ "quotes": [ "error", "single" + ], + "comma-dangle": [ + "error", + "always-multiline" ] }, "parserOptions": { diff --git a/src/components/input/button.vue b/src/components/input/button.vue index c0f1f75ac..0957fe295 100644 --- a/src/components/input/button.vue +++ b/src/components/input/button.vue @@ -55,7 +55,7 @@ export default { computed: { showIconOnly() { return this.icon !== '' && typeof this.$slots.default === 'undefined' - } + }, }, methods: { click(e) { diff --git a/src/components/input/datepicker.vue b/src/components/input/datepicker.vue index ec395cd3a..b5fe5ff52 100644 --- a/src/components/input/datepicker.vue +++ b/src/components/input/datepicker.vue @@ -145,16 +145,16 @@ export default { }, props: { value: { - validator: prop => prop instanceof Date || prop === null || typeof prop === 'string' + validator: prop => prop instanceof Date || prop === null || typeof prop === 'string', }, chooseDateLabel: { type: String, - default: 'Choose a date' + default: 'Choose a date', }, disabled: { type: Boolean, default: false, - } + }, }, mounted() { this.setDateValue(this.value) diff --git a/src/components/input/multiselect.vue b/src/components/input/multiselect.vue index 2bb520518..2708db558 100644 --- a/src/components/input/multiselect.vue +++ b/src/components/input/multiselect.vue @@ -108,21 +108,21 @@ export default { type: Boolean, default() { return false - } + }, }, // The placeholder of the search input placeholder: { type: String, default() { return '' - } + }, }, // The search results where the @search listener needs to put the results into searchResults: { type: Array, default() { return [] - } + }, }, // The name of the property of the searched object to show the user. // If empty the component will show all raw data of an entry. @@ -130,13 +130,13 @@ export default { type: String, default() { return '' - } + }, }, // The object with the value, updated every time an entry is selected. value: { default() { return null - } + }, }, // If true, will provide an "add this as a new value" entry which fires an @create event when clicking on it. creatable: { diff --git a/src/components/misc/dropdown-item.vue b/src/components/misc/dropdown-item.vue index 861b08936..6a2055b9f 100644 --- a/src/components/misc/dropdown-item.vue +++ b/src/components/misc/dropdown-item.vue @@ -22,7 +22,7 @@ export default { type: String, required: false, default: '', - } + }, }, } diff --git a/src/components/misc/nothing.vue b/src/components/misc/nothing.vue index 923d924b8..1f301353a 100644 --- a/src/components/misc/nothing.vue +++ b/src/components/misc/nothing.vue @@ -6,6 +6,6 @@ diff --git a/src/components/misc/shortcut.vue b/src/components/misc/shortcut.vue index b1294db56..8ec894f27 100644 --- a/src/components/misc/shortcut.vue +++ b/src/components/misc/shortcut.vue @@ -14,7 +14,7 @@ export default { keys: { type: Array, required: true, - } + }, }, } diff --git a/src/components/misc/subscription.vue b/src/components/misc/subscription.vue index d59a491c6..5375bc04b 100644 --- a/src/components/misc/subscription.vue +++ b/src/components/misc/subscription.vue @@ -115,7 +115,7 @@ export default { .catch(e => { this.error(e, this) }) - } + }, }, } diff --git a/src/components/quick-actions/quick-actions.vue b/src/components/quick-actions/quick-actions.vue index 9742fb354..e90267f7b 100644 --- a/src/components/quick-actions/quick-actions.vue +++ b/src/components/quick-actions/quick-actions.vue @@ -382,7 +382,7 @@ export default { reset() { this.query = '' this.selectedCmd = null - } + }, }, } diff --git a/src/components/sharing/linkSharing.vue b/src/components/sharing/linkSharing.vue index 8094649a1..df489ecee 100644 --- a/src/components/sharing/linkSharing.vue +++ b/src/components/sharing/linkSharing.vue @@ -250,7 +250,7 @@ export default { this.showNewForm = false this.success( {message: 'The link share was successfully created'}, - this + this, ) this.load() }) @@ -268,7 +268,7 @@ export default { .then(() => { this.success( {message: 'The link share was successfully deleted'}, - this + this, ) this.load() }) diff --git a/src/components/sharing/userTeam.vue b/src/components/sharing/userTeam.vue index ececeb454..5dbadf89c 100644 --- a/src/components/sharing/userTeam.vue +++ b/src/components/sharing/userTeam.vue @@ -245,7 +245,7 @@ export default { .then((r) => { this.$set(this, 'sharables', r) r.forEach((s) => - this.$set(this.selectedRight, s.id, s.right) + this.$set(this.selectedRight, s.id, s.right), ) }) .catch((e) => { @@ -302,7 +302,7 @@ export default { this.shareType + ' was successfully added.', }, - this + this, ) this.load() }) @@ -347,7 +347,7 @@ export default { this.shareType + ' right was successfully updated.', }, - this + this, ) }) .catch((e) => { diff --git a/src/components/tasks/add-task.vue b/src/components/tasks/add-task.vue index 9bfaa5782..f9d9d32b8 100644 --- a/src/components/tasks/add-task.vue +++ b/src/components/tasks/add-task.vue @@ -51,15 +51,15 @@ export default { listService: ListService, taskService: TaskService, labelService: LabelService, - labelTaskService: LabelTaskService + labelTaskService: LabelTaskService, }; }, components: {}, props: { listId: { type: Number, - required: false - } + required: false, + }, }, created() { this.listService = new ListService(); @@ -75,9 +75,9 @@ export default { } this.showError = false; - let task = new TaskModel({ + const task = new TaskModel({ title: this.newTaskText, - listId: this.listId + listId: this.listId, }); if (this.listId === undefined) { @@ -107,7 +107,7 @@ export default { labelAddsToWaitFor.push( new Promise((resolve, reject) => { labelAddings.push({ resolve: resolve, reject: reject }); - }) + }), ); }); @@ -133,7 +133,7 @@ export default { if (res.length > 0 && res[0].title === labelTitle) { const labelTask = new LabelTask({ taskId: task.id, - labelId: res[0].id + labelId: res[0].id, }); this.labelTaskService .create(labelTask) @@ -157,7 +157,7 @@ export default { .then(res => { const labelTask = new LabelTask({ taskId: task.id, - labelId: res.id + labelId: res.id, }); this.labelTaskService .create(labelTask) @@ -167,7 +167,7 @@ export default { // Remove the label text from the task title task.title = task.title.replace( ` ~${labelTitle}`, - '' + '', ); // Make the promise done (the one with the index 0 does not exist) @@ -209,7 +209,7 @@ export default { .catch(e => { this.error(e, this); }); - } - } + }, + }, }; diff --git a/src/components/tasks/gantt-component.vue b/src/components/tasks/gantt-component.vue index d27bd37fa..a360876f7 100644 --- a/src/components/tasks/gantt-component.vue +++ b/src/components/tasks/gantt-component.vue @@ -387,7 +387,7 @@ export default { let startDate = new Date(this.startDate) startDate.setDate( - startDate.getDate() + newRect.left / this.dayWidth + startDate.getDate() + newRect.left / this.dayWidth, ) startDate.setUTCHours(0) startDate.setUTCMinutes(0) @@ -396,7 +396,7 @@ export default { this.taskDragged.startDate = startDate let endDate = new Date(startDate) endDate.setDate( - startDate.getDate() + newRect.width / this.dayWidth + startDate.getDate() + newRect.width / this.dayWidth, ) this.taskDragged.startDate = startDate this.taskDragged.endDate = endDate @@ -439,7 +439,7 @@ export default { this.$set( this.theTasks, tt, - this.addGantAttributes(r) + this.addGantAttributes(r), ) break } diff --git a/src/components/tasks/partials/attachments.vue b/src/components/tasks/partials/attachments.vue index 3e20b36b6..e5bdacbe8 100644 --- a/src/components/tasks/partials/attachments.vue +++ b/src/components/tasks/partials/attachments.vue @@ -224,7 +224,7 @@ export default { .then((r) => { this.$store.commit( 'attachments/removeById', - this.attachmentToDelete.id + this.attachmentToDelete.id, ) this.success(r, this) }) diff --git a/src/components/tasks/partials/comments.vue b/src/components/tasks/partials/comments.vue index 848731b56..437d30cfe 100644 --- a/src/components/tasks/partials/comments.vue +++ b/src/components/tasks/partials/comments.vue @@ -260,7 +260,7 @@ export default { this.newComment.comment = '' this.success( {message: 'The comment was added successfully.'}, - this + this, ) }) .catch((e) => { diff --git a/src/components/tasks/partials/description.vue b/src/components/tasks/partials/description.vue index 738973f72..33d6eedfa 100644 --- a/src/components/tasks/partials/description.vue +++ b/src/components/tasks/partials/description.vue @@ -91,7 +91,7 @@ export default { .finally(() => { this.saving = false }) - } + }, }, } diff --git a/src/components/tasks/partials/heading.vue b/src/components/tasks/partials/heading.vue index 35dc55c9d..274e87d73 100644 --- a/src/components/tasks/partials/heading.vue +++ b/src/components/tasks/partials/heading.vue @@ -95,7 +95,7 @@ export default { .finally(() => { this.saving = false }) - } + }, }, } diff --git a/src/components/tasks/partials/singleTaskInList.vue b/src/components/tasks/partials/singleTaskInList.vue index 7031e7c14..bff04de9f 100644 --- a/src/components/tasks/partials/singleTaskInList.vue +++ b/src/components/tasks/partials/singleTaskInList.vue @@ -135,7 +135,7 @@ export default { showListColor: { type: Boolean, default: true, - } + }, }, watch: { theTask(newVal) { @@ -183,7 +183,7 @@ export default { callback: () => { this.task.done = !this.task.done this.markAsDone(!checked) - } + }, }], ) }) diff --git a/src/router/index.js b/src/router/index.js index d79ab68ba..d170314b7 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -170,7 +170,7 @@ export default new Router({ name: 'list.create', components: { popup: NewListComponent, - } + }, }, { path: '/namespaces/:id/settings/edit', diff --git a/src/store/modules/lists.js b/src/store/modules/lists.js index 0db79750a..8882252ed 100644 --- a/src/store/modules/lists.js +++ b/src/store/modules/lists.js @@ -69,6 +69,6 @@ export default { ctx.commit('setList', list) return Promise.reject(e) }) - } + }, }, } \ No newline at end of file diff --git a/src/views/Home.vue b/src/views/Home.vue index d57c0c2a5..2bc77797f 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -44,7 +44,7 @@ export default { name: 'Home', components: { ShowTasks, - AddTask + AddTask, }, data() { return { @@ -54,7 +54,7 @@ export default { defaultList: ListModel, updateWelcomeInterval: 1000, welcomePrefix: 'Hi', - showTasksKey: 0 + showTasksKey: 0, }; }, created() { @@ -64,7 +64,7 @@ export default { mounted() { const timer = window.setTimeout( this.updateWelcome, - this.updateWelcomeInterval + this.updateWelcomeInterval, ); this.$on('hook:destroyed', () => window.clearTimeout(timer)); }, @@ -88,7 +88,7 @@ export default { } return state.namespaces.namespaces[0].lists.length > 0; - } + }, }), methods: { updateTaskList() { @@ -105,9 +105,9 @@ export default { } this.$options.timer = window.setTimeout( this.updateDateTime, - this.updateWelcomeInterval + this.updateWelcomeInterval, ); - } - } + }, + }, }; diff --git a/src/views/labels/NewLabel.vue b/src/views/labels/NewLabel.vue index 84009183e..615421f92 100644 --- a/src/views/labels/NewLabel.vue +++ b/src/views/labels/NewLabel.vue @@ -79,7 +79,7 @@ export default { }) this.success( { message: 'The label was successfully created.' }, - this + this, ) }) .catch((e) => { diff --git a/src/views/list/NewList.vue b/src/views/list/NewList.vue index 2aa6bd03e..cf2a5a1e2 100644 --- a/src/views/list/NewList.vue +++ b/src/views/list/NewList.vue @@ -71,7 +71,7 @@ export default { .then((r) => { this.success( { message: 'The list was successfully created.' }, - this + this, ) this.$router.push({ name: 'list.index', diff --git a/src/views/list/views/List.vue b/src/views/list/views/List.vue index edc71674a..07c4b8f00 100644 --- a/src/views/list/views/List.vue +++ b/src/views/list/views/List.vue @@ -194,7 +194,7 @@ export default { labelTaskService: LabelTaskService, labelService: LabelService, - ctaVisible: false + ctaVisible: false, }; }, mixins: [taskList], @@ -203,7 +203,7 @@ export default { FilterPopup, SingleTaskInList, EditTask, - AddTask + AddTask, }, created() { this.taskService = new TaskService(); @@ -216,7 +216,7 @@ export default { }, computed: mapState({ canWrite: state => state.currentList.maxRight > Rights.READ, - list: state => state.currentList + list: state => state.currentList, }), mounted() { this.$nextTick(() => (this.ctaVisible = true)); @@ -255,7 +255,7 @@ export default { } } this.sortTasks(); - } - } + }, + }, }; diff --git a/src/views/namespaces/NewNamespace.vue b/src/views/namespaces/NewNamespace.vue index 4d041d741..d0b73562c 100644 --- a/src/views/namespaces/NewNamespace.vue +++ b/src/views/namespaces/NewNamespace.vue @@ -82,7 +82,7 @@ export default { this.$store.commit('namespaces/addNamespace', r) this.success( { message: 'The namespace was successfully created.' }, - this + this, ) this.$router.back() }) diff --git a/src/views/tasks/TaskDetailView.vue b/src/views/tasks/TaskDetailView.vue index b77e96287..70887b6b5 100644 --- a/src/views/tasks/TaskDetailView.vue +++ b/src/views/tasks/TaskDetailView.vue @@ -637,7 +637,7 @@ export default { this.$refs[fieldName].$el.scrollIntoView({ behavior: 'smooth', block: 'center', - inline: 'nearest' + inline: 'nearest', }) } }) diff --git a/src/views/teams/EditTeam.vue b/src/views/teams/EditTeam.vue index 72fdad59b..3cc60eae0 100644 --- a/src/views/teams/EditTeam.vue +++ b/src/views/teams/EditTeam.vue @@ -265,7 +265,7 @@ export default { this.team = response this.success( {message: 'The team was successfully updated.'}, - this + this, ) }) .catch((e) => { @@ -278,7 +278,7 @@ export default { .then(() => { this.success( {message: 'The team was successfully deleted.'}, - this + this, ) router.push({name: 'teams.index'}) }) @@ -295,7 +295,7 @@ export default { message: 'The user was successfully deleted from the team.', }, - this + this, ) this.loadTeam() }) @@ -317,7 +317,7 @@ export default { this.loadTeam() this.success( {message: 'The team member was successfully added.'}, - this + this, ) }) .catch((e) => { @@ -343,7 +343,7 @@ export default { (member.admin ? 'admin' : 'member') + '.', }, - this + this, ) }) .catch((e) => { diff --git a/src/views/teams/NewTeam.vue b/src/views/teams/NewTeam.vue index 22708923a..90b8c495c 100644 --- a/src/views/teams/NewTeam.vue +++ b/src/views/teams/NewTeam.vue @@ -69,7 +69,7 @@ export default { }) this.success( { message: 'The team was successfully created.' }, - this + this, ) }) .catch((e) => { diff --git a/src/views/user/Settings.vue b/src/views/user/Settings.vue index 38d0e82d3..b6fcd5622 100644 --- a/src/views/user/Settings.vue +++ b/src/views/user/Settings.vue @@ -320,7 +320,7 @@ export default { migratorsEnabled: state => state.config.availableMigrators !== null && state.config.availableMigrators.length > 0, caldavEnabled: state => state.config.caldavEnabled, userInfo: state => state.auth.info, - }) + }), }, methods: { updatePassword() { diff --git a/vue.config.js b/vue.config.js index e56fead92..4fd49fc92 100644 --- a/vue.config.js +++ b/vue.config.js @@ -24,18 +24,18 @@ module.exports = { { 'src': './images/icons/android-chrome-192x192.png', 'sizes': '192x192', - 'type': 'image/png' + 'type': 'image/png', }, { 'src': './images/icons/android-chrome-512x512.png', 'sizes': '512x512', - 'type': 'image/png' + 'type': 'image/png', }, { 'src': './images/icons/icon-maskable.png', 'sizes': '1024x1024', 'type': 'image/png', - 'purpose': 'maskable' + 'purpose': 'maskable', }, ], shortcuts: [ @@ -62,8 +62,8 @@ module.exports = { name: 'Teams Overview', short_name: 'Teams', url: '/teams', - } - ] + }, + ], }, - } + }, } \ No newline at end of file