Merge branch 'main' into feature/feat-pagination-component
continuous-integration/drone/pr Build is passing
Details
continuous-integration/drone/pr Build is passing
Details
This commit is contained in:
commit
c2a1df989e
16
package.json
16
package.json
|
@ -19,11 +19,11 @@
|
|||
"camel-case": "4.1.2",
|
||||
"copy-to-clipboard": "3.3.1",
|
||||
"date-fns": "2.23.0",
|
||||
"dompurify": "2.3.1",
|
||||
"dompurify": "2.3.3",
|
||||
"highlight.js": "11.2.0",
|
||||
"is-touch-device": "1.0.1",
|
||||
"lodash": "4.17.21",
|
||||
"marked": "3.0.3",
|
||||
"marked": "3.0.4",
|
||||
"register-service-worker": "1.7.2",
|
||||
"snake-case": "3.0.4",
|
||||
"verte": "0.0.12",
|
||||
|
@ -31,7 +31,7 @@
|
|||
"vue-advanced-cropper": "1.8.2",
|
||||
"vue-drag-resize": "1.5.4",
|
||||
"vue-easymde": "1.4.0",
|
||||
"vue-i18n": "8.25.0",
|
||||
"vue-i18n": "8.25.1",
|
||||
"vue-shortkey": "3.1.7",
|
||||
"vuedraggable": "2.24.3",
|
||||
"vuex": "3.6.2",
|
||||
|
@ -44,8 +44,8 @@
|
|||
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
||||
"@fortawesome/vue-fontawesome": "2.0.2",
|
||||
"@types/jest": "27.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "4.31.0",
|
||||
"@typescript-eslint/parser": "4.31.0",
|
||||
"@typescript-eslint/eslint-plugin": "4.31.2",
|
||||
"@typescript-eslint/parser": "4.31.2",
|
||||
"@vue/babel-preset-app": "4.5.13",
|
||||
"@vue/eslint-config-typescript": "7.0.0",
|
||||
"autoprefixer": "10.3.4",
|
||||
|
@ -53,17 +53,17 @@
|
|||
"babel-eslint": "10.1.0",
|
||||
"cypress": "8.3.1",
|
||||
"cypress-file-upload": "5.0.8",
|
||||
"esbuild": "0.12.26",
|
||||
"esbuild": "0.12.28",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-plugin-vue": "7.17.0",
|
||||
"express": "4.17.1",
|
||||
"faker": "5.5.3",
|
||||
"jest": "27.1.1",
|
||||
"jest": "27.2.1",
|
||||
"rollup-plugin-terser": "7.0.2",
|
||||
"rollup-plugin-visualizer": "5.5.2",
|
||||
"sass": "1.39.2",
|
||||
"ts-jest": "27.0.5",
|
||||
"typescript": "4.4.2",
|
||||
"typescript": "4.4.3",
|
||||
"vite": "2.5.6",
|
||||
"vite-plugin-pwa": "0.11.2",
|
||||
"vite-plugin-vue2": "1.8.2",
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
<template>
|
||||
<transition name="modal">
|
||||
<div class="modal-mask has-overflow" :class="{'has-overflow': overflow}">
|
||||
<div class="modal-container" @mousedown.self.prevent.stop="$emit('close')" :class="{'has-overflow': overflow}">
|
||||
<div class="modal-container"
|
||||
@mousedown.self.prevent.stop="$emit('close')"
|
||||
:class="{'has-overflow': overflow}"
|
||||
@shortkey="$emit('close')"
|
||||
v-shortkey="['esc']"
|
||||
>
|
||||
<div class="modal-content" :class="{'has-overflow': overflow, 'is-wide': wide}">
|
||||
<slot>
|
||||
<div class="header">
|
||||
|
@ -36,14 +41,6 @@
|
|||
<script>
|
||||
export default {
|
||||
name: 'modal',
|
||||
mounted: function () {
|
||||
document.addEventListener('keydown', (e) => {
|
||||
// Close the model when escape is pressed
|
||||
if (e.keyCode === 27) {
|
||||
this.$emit('close')
|
||||
}
|
||||
})
|
||||
},
|
||||
props: {
|
||||
overflow: {
|
||||
type: Boolean,
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
import {library} from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faAlignLeft,
|
||||
faAngleRight,
|
||||
faArchive,
|
||||
faBars,
|
||||
faBell,
|
||||
faCalendar,
|
||||
faCalendarWeek,
|
||||
faCheck,
|
||||
faCheckDouble,
|
||||
faChessKnight,
|
||||
faChevronDown,
|
||||
faCloudDownloadAlt,
|
||||
faCloudUploadAlt,
|
||||
faCocktail,
|
||||
faCoffee,
|
||||
faCog,
|
||||
faEllipsisH,
|
||||
faEllipsisV,
|
||||
faExclamation,
|
||||
faFillDrip,
|
||||
faFilter,
|
||||
faForward,
|
||||
faGripLines,
|
||||
faHistory,
|
||||
faImage,
|
||||
faKeyboard,
|
||||
faLayerGroup,
|
||||
faList,
|
||||
faListOl,
|
||||
faLock,
|
||||
faPaperclip,
|
||||
faPaste,
|
||||
faPen,
|
||||
faPencilAlt,
|
||||
faPercent,
|
||||
faPlus,
|
||||
faPowerOff,
|
||||
faSearch,
|
||||
faShareAlt,
|
||||
faSignOutAlt,
|
||||
faSort,
|
||||
faSortUp,
|
||||
faStar as faStarSolid,
|
||||
faTachometerAlt,
|
||||
faTags,
|
||||
faTasks,
|
||||
faTh,
|
||||
faTimes,
|
||||
faTrashAlt,
|
||||
faUser,
|
||||
faUsers,
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
import {
|
||||
faBellSlash,
|
||||
faCalendarAlt,
|
||||
faClock,
|
||||
faComments,
|
||||
faSave,
|
||||
faStar,
|
||||
faSun,
|
||||
faTimesCircle,
|
||||
} from '@fortawesome/free-regular-svg-icons'
|
||||
import {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'
|
||||
|
||||
library.add(faAlignLeft)
|
||||
library.add(faAngleRight)
|
||||
library.add(faArchive)
|
||||
library.add(faBars)
|
||||
library.add(faBell)
|
||||
library.add(faBellSlash)
|
||||
library.add(faCalendar)
|
||||
library.add(faCalendarAlt)
|
||||
library.add(faCalendarWeek)
|
||||
library.add(faCheck)
|
||||
library.add(faCheckDouble)
|
||||
library.add(faChessKnight)
|
||||
library.add(faChevronDown)
|
||||
library.add(faClock)
|
||||
library.add(faCloudDownloadAlt)
|
||||
library.add(faCloudUploadAlt)
|
||||
library.add(faCocktail)
|
||||
library.add(faCoffee)
|
||||
library.add(faCog)
|
||||
library.add(faComments)
|
||||
library.add(faEllipsisH)
|
||||
library.add(faEllipsisV)
|
||||
library.add(faExclamation)
|
||||
library.add(faFillDrip)
|
||||
library.add(faFilter)
|
||||
library.add(faForward)
|
||||
library.add(faGripLines)
|
||||
library.add(faHistory)
|
||||
library.add(faImage)
|
||||
library.add(faKeyboard)
|
||||
library.add(faLayerGroup)
|
||||
library.add(faList)
|
||||
library.add(faListOl)
|
||||
library.add(faLock)
|
||||
library.add(faPaperclip)
|
||||
library.add(faPaste)
|
||||
library.add(faPen)
|
||||
library.add(faPencilAlt)
|
||||
library.add(faPercent)
|
||||
library.add(faPlus)
|
||||
library.add(faPowerOff)
|
||||
library.add(faSave)
|
||||
library.add(faSearch)
|
||||
library.add(faShareAlt)
|
||||
library.add(faSignOutAlt)
|
||||
library.add(faSort)
|
||||
library.add(faSortUp)
|
||||
library.add(faStar)
|
||||
library.add(faStarSolid)
|
||||
library.add(faSun)
|
||||
library.add(faTachometerAlt)
|
||||
library.add(faTags)
|
||||
library.add(faTasks)
|
||||
library.add(faTh)
|
||||
library.add(faTimes)
|
||||
library.add(faTimesCircle)
|
||||
library.add(faTrashAlt)
|
||||
library.add(faUser)
|
||||
library.add(faUsers)
|
||||
|
||||
export default FontAwesomeIcon
|
127
src/main.ts
127
src/main.ts
|
@ -19,72 +19,6 @@ import Modal from './components/modal/modal'
|
|||
import './styles/vikunja.scss'
|
||||
// Notifications
|
||||
import Notifications from 'vue-notification'
|
||||
// Icons
|
||||
import {library} from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faAlignLeft,
|
||||
faAngleRight,
|
||||
faBars,
|
||||
faCalendar,
|
||||
faCalendarWeek,
|
||||
faCheck,
|
||||
faCheckDouble,
|
||||
faChevronDown,
|
||||
faCloudDownloadAlt,
|
||||
faCloudUploadAlt,
|
||||
faCog,
|
||||
faEllipsisV,
|
||||
faExclamation,
|
||||
faFillDrip,
|
||||
faFilter,
|
||||
faHistory,
|
||||
faKeyboard,
|
||||
faLayerGroup,
|
||||
faList,
|
||||
faListOl,
|
||||
faLock,
|
||||
faPaperclip,
|
||||
faPaste,
|
||||
faPen,
|
||||
faPencilAlt,
|
||||
faPercent,
|
||||
faPlus,
|
||||
faPowerOff,
|
||||
faSearch,
|
||||
faSignOutAlt,
|
||||
faSort,
|
||||
faSortUp,
|
||||
faStar as faStarSolid,
|
||||
faTachometerAlt,
|
||||
faTags,
|
||||
faTasks,
|
||||
faTh,
|
||||
faTimes,
|
||||
faTrashAlt,
|
||||
faUser,
|
||||
faUsers,
|
||||
faForward,
|
||||
faChessKnight,
|
||||
faCoffee,
|
||||
faCocktail,
|
||||
faEllipsisH,
|
||||
faArchive,
|
||||
faShareAlt,
|
||||
faImage,
|
||||
faBell,
|
||||
faGripLines,
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
import {
|
||||
faCalendarAlt,
|
||||
faClock,
|
||||
faComments,
|
||||
faSave,
|
||||
faStar,
|
||||
faTimesCircle,
|
||||
faSun,
|
||||
faBellSlash,
|
||||
} from '@fortawesome/free-regular-svg-icons'
|
||||
import {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'
|
||||
// PWA
|
||||
import './registerServiceWorker'
|
||||
|
||||
|
@ -122,66 +56,7 @@ Vue.config.productionTip = false
|
|||
|
||||
Vue.use(Notifications)
|
||||
|
||||
library.add(faSignOutAlt)
|
||||
library.add(faPlus)
|
||||
library.add(faListOl)
|
||||
library.add(faTasks)
|
||||
library.add(faCog)
|
||||
library.add(faAngleRight)
|
||||
library.add(faLayerGroup)
|
||||
library.add(faTrashAlt)
|
||||
library.add(faUsers)
|
||||
library.add(faUser)
|
||||
library.add(faLock)
|
||||
library.add(faPen)
|
||||
library.add(faTimes)
|
||||
library.add(faTachometerAlt)
|
||||
library.add(faCalendar)
|
||||
library.add(faTimesCircle)
|
||||
library.add(faBars)
|
||||
library.add(faPowerOff)
|
||||
library.add(faCalendarWeek)
|
||||
library.add(faCalendarAlt)
|
||||
library.add(faExclamation)
|
||||
library.add(faTags)
|
||||
library.add(faChevronDown)
|
||||
library.add(faCheck)
|
||||
library.add(faPaste)
|
||||
library.add(faPencilAlt)
|
||||
library.add(faCloudDownloadAlt)
|
||||
library.add(faCloudUploadAlt)
|
||||
library.add(faPercent)
|
||||
library.add(faStar)
|
||||
library.add(faAlignLeft)
|
||||
library.add(faPaperclip)
|
||||
library.add(faClock)
|
||||
library.add(faHistory)
|
||||
library.add(faSearch)
|
||||
library.add(faCheckDouble)
|
||||
library.add(faComments)
|
||||
library.add(faTh)
|
||||
library.add(faSort)
|
||||
library.add(faSortUp)
|
||||
library.add(faList)
|
||||
library.add(faEllipsisV)
|
||||
library.add(faFilter)
|
||||
library.add(faFillDrip)
|
||||
library.add(faKeyboard)
|
||||
library.add(faSave)
|
||||
library.add(faStarSolid)
|
||||
library.add(faForward)
|
||||
library.add(faSun)
|
||||
library.add(faChessKnight)
|
||||
library.add(faCoffee)
|
||||
library.add(faCocktail)
|
||||
library.add(faEllipsisH)
|
||||
library.add(faArchive)
|
||||
library.add(faShareAlt)
|
||||
library.add(faImage)
|
||||
library.add(faBell)
|
||||
library.add(faBellSlash)
|
||||
library.add(faGripLines)
|
||||
|
||||
import FontAwesomeIcon from './icons'
|
||||
Vue.component('icon', FontAwesomeIcon)
|
||||
|
||||
Vue.use(vueShortkey, {prevent: ['input', 'textarea', '.input']})
|
||||
|
|
|
@ -74,12 +74,7 @@ $gantt-vertical-border-color: $grey-100;
|
|||
position: relative;
|
||||
height: 31px !important;
|
||||
|
||||
-webkit-touch-callout: none; // iOS Safari
|
||||
-webkit-user-select: none; // Safari
|
||||
-khtml-user-select: none; // Konqueror HTML
|
||||
-moz-user-select: none; // Firefox
|
||||
-ms-user-select: none; // Internet Explorer/Edge
|
||||
user-select: none; // Non-prefixed version, currently supported by Chrome and Opera
|
||||
user-select: none;
|
||||
|
||||
&.is-current-edit {
|
||||
border-color: $orange !important;
|
||||
|
|
|
@ -62,12 +62,7 @@ $filter-container-height: '1rem - #{$switch-view-height}';
|
|||
}
|
||||
|
||||
.task {
|
||||
-webkit-touch-callout: none; // iOS Safari
|
||||
-webkit-user-select: none; // Safari
|
||||
-khtml-user-select: none; // Konqueror HTML
|
||||
-moz-user-select: none; // Old versions of Firefox
|
||||
-ms-user-select: none; // Internet Explorer/Edge
|
||||
user-select: none; // Non-prefixed version, currently supported by Chrome, Opera and Firefox
|
||||
user-select: none;
|
||||
|
||||
//transition: $ease-out;
|
||||
cursor: pointer;
|
||||
|
|
|
@ -79,6 +79,5 @@
|
|||
|
||||
.modal-enter .modal-container,
|
||||
.modal-leave-active .modal-container {
|
||||
-webkit-transform: scale(0.9);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
|
|
@ -13,10 +13,6 @@
|
|||
display: block;
|
||||
border-radius: $radius;
|
||||
|
||||
-webkit-transition: all 100ms;
|
||||
-moz-transition: all 100ms;
|
||||
-ms-transition: all 100ms;
|
||||
-o-transition: all 100ms;
|
||||
transition: all 100ms;
|
||||
|
||||
&:not(:last-child) {
|
||||
|
|
|
@ -268,8 +268,6 @@
|
|||
padding: 0.75rem .5rem 0.75rem ($navbar-padding * 1.5 - 1.75rem);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -380,8 +378,6 @@
|
|||
}
|
||||
|
||||
.avatar {
|
||||
-webkit-border-radius: 100%;
|
||||
-moz-border-radius: 100%;
|
||||
border-radius: 100%;
|
||||
vertical-align: middle;
|
||||
height: 40px;
|
||||
|
@ -400,8 +396,6 @@
|
|||
|
||||
&:focus:not(:active), &:active {
|
||||
outline: none !important;
|
||||
-webkit-box-shadow: none !important;
|
||||
-moz-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
bottom: 1rem !important;
|
||||
|
||||
.notification-wrapper .notification {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
border-top-width: 0;
|
||||
border-right-width: 0;
|
||||
|
|
|
@ -1,65 +1,25 @@
|
|||
@-webkit-keyframes bounce {
|
||||
from,
|
||||
20%,
|
||||
53%,
|
||||
80%,
|
||||
to {
|
||||
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
40%,
|
||||
43% {
|
||||
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
-webkit-transform: translate3d(0, -4px, 0);
|
||||
transform: translate3d(0, -4px, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounce {
|
||||
from,
|
||||
20%,
|
||||
53%,
|
||||
80%,
|
||||
to {
|
||||
-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
40%,
|
||||
43% {
|
||||
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
-webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
-webkit-transform: translate3d(0, -4px, 0);
|
||||
transform: translate3d(0, -4px, 0);
|
||||
}
|
||||
}
|
|
@ -1,7 +1,12 @@
|
|||
<template>
|
||||
<transition name="fade">
|
||||
<div class="modal-mask hint-modal">
|
||||
<div @click.self="$router.back()" class="modal-container">
|
||||
<div
|
||||
class="modal-container"
|
||||
@click.self="$router.back()"
|
||||
@shortkey="$router.back()"
|
||||
v-shortkey="['esc']"
|
||||
>
|
||||
<div class="modal-content">
|
||||
<card
|
||||
class="has-background-white has-no-shadow"
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
<template>
|
||||
<div class="modal-mask hint-modal">
|
||||
<div @click.self="$router.back()" class="modal-container">
|
||||
<div
|
||||
class="modal-container"
|
||||
@click.self="$router.back()"
|
||||
@shortkey="$router.back()"
|
||||
v-shortkey="['esc']"
|
||||
>
|
||||
<div class="modal-content">
|
||||
<card class="has-background-white has-no-shadow" :title="$t('filters.create.title')">
|
||||
<p>
|
||||
|
|
|
@ -232,7 +232,6 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import isTouchDevice from 'is-touch-device'
|
||||
import draggable from 'vuedraggable'
|
||||
|
||||
import BucketModel from '../../../models/bucket'
|
||||
|
@ -315,10 +314,8 @@ export default {
|
|||
animation: 150,
|
||||
ghostClass: 'ghost',
|
||||
dragClass: 'task-dragging',
|
||||
}
|
||||
|
||||
if (isTouchDevice()) {
|
||||
options.delay = 150
|
||||
delay: 150,
|
||||
delayOnTouchOnly: true,
|
||||
}
|
||||
|
||||
return options
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
<template>
|
||||
<div class="modal-mask">
|
||||
<div @mousedown.self="close()" class="modal-container">
|
||||
<div
|
||||
class="modal-container"
|
||||
@mousedown.self="close()"
|
||||
v-shortkey="['esc']"
|
||||
@shortkey="close()"
|
||||
>
|
||||
<div class="scrolling-content">
|
||||
<a @click="close()" class="close">
|
||||
<icon icon="times"/>
|
||||
|
|
Reference in New Issue