Make sure all popups & dropdowns are animated
This commit is contained in:
parent
a4fb3e19be
commit
0d64506d73
10 changed files with 276 additions and 252 deletions
|
@ -97,6 +97,7 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="remove()"
|
@submit="remove()"
|
||||||
|
@ -110,6 +111,7 @@
|
||||||
<b>This CANNOT BE UNDONE!</b>
|
<b>This CANNOT BE UNDONE!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</card>
|
</card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
/>
|
/>
|
||||||
</p>
|
</p>
|
||||||
<p class="control">
|
<p class="control">
|
||||||
<x-button @click="add()"> Share </x-button>
|
<x-button @click="add()"> Share</x-button>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -46,19 +46,19 @@
|
||||||
<td class="type">
|
<td class="type">
|
||||||
<template v-if="s.right === rights.ADMIN">
|
<template v-if="s.right === rights.ADMIN">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<icon icon="lock" />
|
<icon icon="lock"/>
|
||||||
</span>
|
</span>
|
||||||
Admin
|
Admin
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="s.right === rights.READ_WRITE">
|
<template v-else-if="s.right === rights.READ_WRITE">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<icon icon="pen" />
|
<icon icon="pen"/>
|
||||||
</span>
|
</span>
|
||||||
Write
|
Write
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<icon icon="users" />
|
<icon icon="users"/>
|
||||||
</span>
|
</span>
|
||||||
Read-only
|
Read-only
|
||||||
</template>
|
</template>
|
||||||
|
@ -105,6 +105,7 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="deleteSharable()"
|
@submit="deleteSharable()"
|
||||||
|
@ -115,15 +116,16 @@
|
||||||
>
|
>
|
||||||
<p slot="text">
|
<p slot="text">
|
||||||
Are you sure you want to remove this {{ shareType }} from the
|
Are you sure you want to remove this {{ shareType }} from the
|
||||||
{{ typeString }}?<br />
|
{{ typeString }}?<br/>
|
||||||
<b>This CANNOT BE UNDONE!</b>
|
<b>This CANNOT BE UNDONE!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</card>
|
</card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapState } from 'vuex'
|
import {mapState} from 'vuex'
|
||||||
|
|
||||||
import UserNamespaceService from '../../services/userNamespace'
|
import UserNamespaceService from '../../services/userNamespace'
|
||||||
import UserNamespaceModel from '../../models/userNamespace'
|
import UserNamespaceModel from '../../models/userNamespace'
|
||||||
|
@ -194,7 +196,7 @@ export default {
|
||||||
if (this.type === 'list') {
|
if (this.type === 'list') {
|
||||||
this.typeString = `list`
|
this.typeString = `list`
|
||||||
this.stuffService = new UserListService()
|
this.stuffService = new UserListService()
|
||||||
this.stuffModel = new UserListModel({ listId: this.id })
|
this.stuffModel = new UserListModel({listId: this.id})
|
||||||
} else if (this.type === 'namespace') {
|
} else if (this.type === 'namespace') {
|
||||||
this.typeString = `namespace`
|
this.typeString = `namespace`
|
||||||
this.stuffService = new UserNamespaceService()
|
this.stuffService = new UserNamespaceService()
|
||||||
|
@ -212,7 +214,7 @@ export default {
|
||||||
if (this.type === 'list') {
|
if (this.type === 'list') {
|
||||||
this.typeString = `list`
|
this.typeString = `list`
|
||||||
this.stuffService = new TeamListService()
|
this.stuffService = new TeamListService()
|
||||||
this.stuffModel = new TeamListModel({ listId: this.id })
|
this.stuffModel = new TeamListModel({listId: this.id})
|
||||||
} else if (this.type === 'namespace') {
|
} else if (this.type === 'namespace') {
|
||||||
this.typeString = `namespace`
|
this.typeString = `namespace`
|
||||||
this.stuffService = new TeamNamespaceService()
|
this.stuffService = new TeamNamespaceService()
|
||||||
|
@ -362,7 +364,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.searchService
|
this.searchService
|
||||||
.getAll({}, { s: query })
|
.getAll({}, {s: query})
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.$set(this, 'found', response)
|
this.$set(this, 'found', response)
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="attachments">
|
<div class="attachments">
|
||||||
<h3>
|
<h3>
|
||||||
<span class="icon is-grey">
|
<span class="icon is-grey">
|
||||||
<icon icon="paperclip" />
|
<icon icon="paperclip"/>
|
||||||
</span>
|
</span>
|
||||||
Attachments
|
Attachments
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -93,13 +93,14 @@
|
||||||
>
|
>
|
||||||
<div class="drop-hint">
|
<div class="drop-hint">
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<icon icon="cloud-upload-alt" />
|
<icon icon="cloud-upload-alt"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="hint">Drop files here to upload</div>
|
<div class="hint">Drop files here to upload</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Delete modal -->
|
<!-- Delete modal -->
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
v-if="showDeleteModal"
|
v-if="showDeleteModal"
|
||||||
|
@ -108,10 +109,11 @@
|
||||||
<span slot="header">Delete attachment</span>
|
<span slot="header">Delete attachment</span>
|
||||||
<p slot="text">
|
<p slot="text">
|
||||||
Are you sure you want to delete the attachment
|
Are you sure you want to delete the attachment
|
||||||
{{ attachmentToDelete.file.name }}?<br />
|
{{ attachmentToDelete.file.name }}?<br/>
|
||||||
<b>This CANNOT BE UNDONE!</b>
|
<b>This CANNOT BE UNDONE!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
|
|
||||||
<transition name="modal">
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
|
@ -123,7 +125,7 @@
|
||||||
"
|
"
|
||||||
v-if="showImageModal"
|
v-if="showImageModal"
|
||||||
>
|
>
|
||||||
<img :src="attachmentImageBlobUrl" alt="" />
|
<img :src="attachmentImageBlobUrl" alt=""/>
|
||||||
</modal>
|
</modal>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
|
@ -134,7 +136,7 @@ import AttachmentService from '../../../services/attachment'
|
||||||
import AttachmentModel from '../../../models/attachment'
|
import AttachmentModel from '../../../models/attachment'
|
||||||
import User from '../../misc/user'
|
import User from '../../misc/user'
|
||||||
import attachmentUpload from '@/components/tasks/mixins/attachmentUpload'
|
import attachmentUpload from '@/components/tasks/mixins/attachmentUpload'
|
||||||
import { mapState } from 'vuex'
|
import {mapState} from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'attachments',
|
name: 'attachments',
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="content details">
|
<div class="content details">
|
||||||
<h3 v-if="canWrite || comments.length > 0">
|
<h3 v-if="canWrite || comments.length > 0">
|
||||||
<span class="icon is-grey">
|
<span class="icon is-grey">
|
||||||
<icon :icon="['far', 'comments']" />
|
<icon :icon="['far', 'comments']"/>
|
||||||
</span>
|
</span>
|
||||||
Comments
|
Comments
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -140,6 +140,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="deleteComment()"
|
@submit="deleteComment()"
|
||||||
|
@ -147,10 +149,11 @@
|
||||||
>
|
>
|
||||||
<span slot="header">Delete this comment</span>
|
<span slot="header">Delete this comment</span>
|
||||||
<p slot="text">
|
<p slot="text">
|
||||||
Are you sure you want to delete this comment? <br />This
|
Are you sure you want to delete this comment? <br/>This
|
||||||
<b>CANNOT BE UNDONE!</b>
|
<b>CANNOT BE UNDONE!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -205,9 +208,9 @@ export default {
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.taskCommentService = new TaskCommentService()
|
this.taskCommentService = new TaskCommentService()
|
||||||
this.newComment = new TaskCommentModel({ taskId: this.taskId })
|
this.newComment = new TaskCommentModel({taskId: this.taskId})
|
||||||
this.commentEdit = new TaskCommentModel({ taskId: this.taskId })
|
this.commentEdit = new TaskCommentModel({taskId: this.taskId})
|
||||||
this.commentToDelete = new TaskCommentModel({ taskId: this.taskId })
|
this.commentToDelete = new TaskCommentModel({taskId: this.taskId})
|
||||||
this.comments = []
|
this.comments = []
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -229,7 +232,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
loadComments() {
|
loadComments() {
|
||||||
this.taskCommentService
|
this.taskCommentService
|
||||||
.getAll({ taskId: this.taskId })
|
.getAll({taskId: this.taskId})
|
||||||
.then((r) => {
|
.then((r) => {
|
||||||
this.$set(this, 'comments', r)
|
this.$set(this, 'comments', r)
|
||||||
this.makeActions()
|
this.makeActions()
|
||||||
|
@ -258,7 +261,7 @@ export default {
|
||||||
this.comments.push(r)
|
this.comments.push(r)
|
||||||
this.newComment.comment = ''
|
this.newComment.comment = ''
|
||||||
this.success(
|
this.success(
|
||||||
{ message: 'The comment was added successfully.' },
|
{message: 'The comment was added successfully.'},
|
||||||
this
|
this
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
@ -88,6 +88,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- Delete modal -->
|
<!-- Delete modal -->
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="removeTaskRelation()"
|
@submit="removeTaskRelation()"
|
||||||
|
@ -96,6 +97,7 @@
|
||||||
<p slot="text">Are you sure you want to delete this task relation?<br/>
|
<p slot="text">Are you sure you want to delete this task relation?<br/>
|
||||||
<b>This CANNOT BE UNDONE!</b></p>
|
<b>This CANNOT BE UNDONE!</b></p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -128,6 +128,7 @@
|
||||||
|
|
||||||
<link-sharing :list-id="$route.params.id" v-if="linkSharingEnabled"/>
|
<link-sharing :list-id="$route.params.id" v-if="linkSharingEnabled"/>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="deleteList()"
|
@submit="deleteList()"
|
||||||
|
@ -136,6 +137,7 @@
|
||||||
<p slot="text">Are you sure you want to delete this list and all of its contents?
|
<p slot="text">Are you sure you want to delete this list and all of its contents?
|
||||||
<br/>This includes all tasks and <b>CANNOT BE UNDONE!</b></p>
|
<br/>This includes all tasks and <b>CANNOT BE UNDONE!</b></p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,7 @@
|
||||||
{{ bucket.tasks.length }}/{{ bucket.limit }}
|
{{ bucket.tasks.length }}/{{ bucket.limit }}
|
||||||
</span>
|
</span>
|
||||||
<div
|
<div
|
||||||
:class="{ 'is-active': bucketOptionsDropDownActive[bucket.id] }"
|
class="dropdown is-right is-active options"
|
||||||
class="dropdown is-right options"
|
|
||||||
v-if="canWrite"
|
v-if="canWrite"
|
||||||
>
|
>
|
||||||
<div @click.stop="toggleBucketDropdown(bucket.id)" class="dropdown-trigger">
|
<div @click.stop="toggleBucketDropdown(bucket.id)" class="dropdown-trigger">
|
||||||
|
@ -42,7 +41,8 @@
|
||||||
<icon icon="ellipsis-v"/>
|
<icon icon="ellipsis-v"/>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-menu" role="menu">
|
<transition name="fade">
|
||||||
|
<div class="dropdown-menu" role="menu" v-if="bucketOptionsDropDownActive[bucket.id]">
|
||||||
<div class="dropdown-content">
|
<div class="dropdown-content">
|
||||||
<a
|
<a
|
||||||
@click.stop="showSetLimitInput = true"
|
@click.stop="showSetLimitInput = true"
|
||||||
|
@ -81,6 +81,7 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div :ref="`tasks-container${bucket.id}`" class="tasks">
|
<div :ref="`tasks-container${bucket.id}`" class="tasks">
|
||||||
|
@ -241,6 +242,7 @@
|
||||||
<router-view/>
|
<router-view/>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showBucketDeleteModal = false"
|
@close="showBucketDeleteModal = false"
|
||||||
@submit="deleteBucket()"
|
@submit="deleteBucket()"
|
||||||
|
@ -251,7 +253,7 @@
|
||||||
This will not delete any tasks but move them into the default bucket.
|
This will not delete any tasks but move them into the default bucket.
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -448,8 +450,9 @@ export default {
|
||||||
this.$set(this.showNewTaskInput, bucket, !this.showNewTaskInput[bucket])
|
this.$set(this.showNewTaskInput, bucket, !this.showNewTaskInput[bucket])
|
||||||
},
|
},
|
||||||
toggleBucketDropdown(bucketId) {
|
toggleBucketDropdown(bucketId) {
|
||||||
|
const oldState = this.bucketOptionsDropDownActive[bucketId]
|
||||||
this.closeBucketDropdowns() // Close all eventually open dropdowns
|
this.closeBucketDropdowns() // Close all eventually open dropdowns
|
||||||
this.$set(this.bucketOptionsDropDownActive, bucketId, !this.bucketOptionsDropDownActive[bucketId])
|
this.$set(this.bucketOptionsDropDownActive, bucketId, !oldState)
|
||||||
},
|
},
|
||||||
closeBucketDropdowns() {
|
closeBucketDropdowns() {
|
||||||
this.showSetLimitInput = false
|
this.showSetLimitInput = false
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
shareType="team"
|
shareType="team"
|
||||||
type="namespace"/>
|
type="namespace"/>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
v-if="showDeleteModal"
|
v-if="showDeleteModal"
|
||||||
|
@ -94,6 +95,7 @@
|
||||||
<p slot="text">Are you sure you want to delete this namespace and all of its contents?
|
<p slot="text">Are you sure you want to delete this namespace and all of its contents?
|
||||||
<br/>This includes lists & tasks and <b>CANNOT BE UNDONE!</b></p>
|
<br/>This includes lists & tasks and <b>CANNOT BE UNDONE!</b></p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -382,6 +382,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="deleteTask()"
|
@submit="deleteTask()"
|
||||||
|
@ -393,6 +394,7 @@
|
||||||
<b>cannot be undone!</b>
|
<b>cannot be undone!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -134,6 +134,7 @@
|
||||||
</card>
|
</card>
|
||||||
|
|
||||||
<!-- Team delete modal -->
|
<!-- Team delete modal -->
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showDeleteModal = false"
|
@close="showDeleteModal = false"
|
||||||
@submit="deleteTeam()"
|
@submit="deleteTeam()"
|
||||||
|
@ -148,7 +149,9 @@
|
||||||
<b>This CANNOT BE UNDONE!</b>
|
<b>This CANNOT BE UNDONE!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
<!-- User delete modal -->
|
<!-- User delete modal -->
|
||||||
|
<transition name="modal">
|
||||||
<modal
|
<modal
|
||||||
@close="showUserDeleteModal = false"
|
@close="showUserDeleteModal = false"
|
||||||
@submit="deleteUser()"
|
@submit="deleteUser()"
|
||||||
|
@ -162,6 +165,7 @@
|
||||||
<b>This CANNOT BE UNDONE!</b>
|
<b>This CANNOT BE UNDONE!</b>
|
||||||
</p>
|
</p>
|
||||||
</modal>
|
</modal>
|
||||||
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue