mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-21 14:29:34 +00:00
refactor(task-modal): fixed calendar position in timeblock modal
This commit is contained in:
1 parent
2a2ba6db51
commit
1e97ec472c
2 files changed
+19
-19
No files matched your search
Vendored
+17
-17
@@ -158,7 +158,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n enrichEmployees(employees) {\n return employees.map(employee => ({\n ...employee,\n _fullName: `${employee.name} ${employee.surname}`,\n _initials: employee.name.charAt(0) + employee.surname.charAt(0)\n }));\n },\n formatDateTime(date) {\n moment__WEBPACK_IMPORTED_MODULE_0___default()(date);\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).format('DD.MM.yyyy, HH:mm');\n },\n formatDateTimeForBackend(date) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).format('YYYY-MM-DD HH:mm:ss');\n },\n formatDate(date) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).format('DD.MM.yyyy');\n },\n isBefore(date, compareTo = null) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).isBefore(moment__WEBPACK_IMPORTED_MODULE_0___default()(compareTo));\n },\n isAfter(date, compareTo = moment__WEBPACK_IMPORTED_MODULE_0___default()()) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).isAfter(moment__WEBPACK_IMPORTED_MODULE_0___default()(compareTo));\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@_utils/tm.utils.ts?");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n enrichEmployees(employees) {\n return employees.map(employee => ({\n ...employee,\n _fullName: `${employee.name} ${employee.surname}`,\n _initials: employee.name.charAt(0) + employee.surname.charAt(0)\n }));\n },\n formatDateTime(date) {\n moment__WEBPACK_IMPORTED_MODULE_0___default()(date);\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).format('DD.MM.yyyy, HH:mm');\n },\n formatTimeblockDateTime(timeblock) {\n // Handle new format with separate date and time fields\n if (timeblock.date && timeblock.starts_at_time) {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_0___default()(timeblock.date).format('DD.MM.yyyy');\n return `${dateStr}, ${timeblock.starts_at_time}`;\n }\n // Fallback to old format\n if (timeblock.start) {\n return this.formatDateTime(timeblock.start);\n }\n return '';\n },\n formatDateTimeForBackend(date) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).format('YYYY-MM-DD HH:mm:ss');\n },\n formatDate(date) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).format('DD.MM.yyyy');\n },\n isBefore(date, compareTo = null) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).isBefore(moment__WEBPACK_IMPORTED_MODULE_0___default()(compareTo));\n },\n isAfter(date, compareTo = moment__WEBPACK_IMPORTED_MODULE_0___default()()) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(date).isAfter(moment__WEBPACK_IMPORTED_MODULE_0___default()(compareTo));\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@_utils/tm.utils.ts?");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Mixin to fix autofocus on v-input in modals where date selects are used\n data() {\n return {\n preventInputFocus: false\n };\n },\n methods: {\n setFocusEvent() {\n document.querySelectorAll('.v-autocomplete input').forEach(input => {\n input.addEventListener('focus', this.onInputFocus);\n });\n },\n onDateFocus($event) {\n if ($event == undefined) {\n this.preventInputFocus = true;\n }\n },\n onDateOpen($event) {\n if ($event == undefined) {\n this.preventInputFocus = true;\n }\n },\n onInputFocus($event) {\n setTimeout(() => {\n if (this.preventInputFocus) {\n $event.target.blur();\n this.preventInputFocus = false;\n }\n }, 100);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/_mixins/vuetify-fix-focus.ts?");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // Mixin to fix autofocus on v-input in modals where date selects are used\n data() {\n return {\n preventInputFocus: false,\n savedScrollPosition: null\n };\n },\n methods: {\n setFocusEvent() {\n document.querySelectorAll('.v-autocomplete input').forEach(input => {\n input.addEventListener('focus', this.onInputFocus);\n });\n },\n onDateFocus($event) {\n if ($event == undefined) {\n this.preventInputFocus = true;\n }\n },\n onDateOpen($event) {\n // $event should be the element reference (or any truthy value to trigger saving)\n if ($event) {\n // Find the scrollable modal container\n const modalContent = document.querySelector('.v-dialog .modal-content');\n if (modalContent) {\n this.savedScrollPosition = modalContent.scrollTop;\n }\n this.preventInputFocus = true;\n // Reset after datepicker is opened\n setTimeout(() => {\n this.preventInputFocus = false;\n this.savedScrollPosition = null;\n }, 500);\n }\n },\n onInputFocus($event) {\n // If we have a saved scroll position and an unwanted focus happened\n if (this.preventInputFocus && this.savedScrollPosition !== null) {\n const target = $event.target;\n // Only intercept text input focus (autocomplete fields)\n if (target.tagName === 'INPUT' && target.type === 'text') {\n // Blur the focused element\n setTimeout(() => {\n target.blur();\n const modalContent = document.querySelector('.v-dialog .modal-content');\n if (modalContent && this.savedScrollPosition !== null) {\n modalContent.scrollTop = this.savedScrollPosition;\n }\n }, 0);\n }\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/_mixins/vuetify-fix-focus.ts?");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -686,7 +686,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plu
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/vuetify-fix-focus */ \"./src/plugins/tm@modal/_mixins/vuetify-fix-focus.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_components/a-tasks-table.vue */ \"./src/plugins/tm@modal/master-task/_components/a-tasks-table.vue\");\n/* harmony import */ var _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_components/a-mastertask-description.vue */ \"./src/plugins/tm@modal/master-task/_components/a-mastertask-description.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n// import ZAutocomplete from '@/plugins/tm@_components/z-autocomplete.vue'\n\n\n\n// import tmUtils from '@/plugins/tm@_utils/tm.utils'\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // MIXINS\n // computed: employeesOptions, projectsOptions\n // methods: onProjectSelected, onEmployeeSelected, onEmployeeDurationChanged\n // watch: mastertask.team_id\n\n emits: ['master-task-edited', 'close'],\n mixins: [_plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_10__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_13__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_8__[\"default\"]],\n components: {\n AMastertaskDescription: _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n ATasksTable: _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n Datepicker: _Line truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/vuetify-fix-focus */ \"./src/plugins/tm@modal/_mixins/vuetify-fix-focus.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_components/a-tasks-table.vue */ \"./src/plugins/tm@modal/master-task/_components/a-tasks-table.vue\");\n/* harmony import */ var _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_components/a-mastertask-description.vue */ \"./src/plugins/tm@modal/master-task/_components/a-mastertask-description.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n// import ZAutocomplete from '@/plugins/tm@_components/z-autocomplete.vue'\n\n\n\n// import tmUtils from '@/plugins/tm@_utils/tm.utils'\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // MIXINS\n // computed: employeesOptions, projectsOptions\n // methods: onProjectSelected, onEmployeeSelected, onEmployeeDurationChanged\n // watch: mastertask.team_id\n\n emits: ['master-task-edited', 'close'],\n mixins: [_plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_10__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_13__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_8__[\"default\"]],\n components: {\n AMastertaskDescription: _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n ATasksTable: _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n Datepicker: _Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -785,7 +785,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__[\"default\"]],\n props: {\n hours: {\n type: Number,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n moment: (moment__WEBPACK_IMPORTED_MODULE_1___default()),\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n showModal: false,\n form: {\n hours: null\n }\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.minValue)(0.1)\n }\n }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_7__.mapGetters)('auth', ['user'])\n },\n methods: {\n async submit() {\n if (!(await this.v$.$validate())) return;\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets.push({\n id: null,\n employee_id: this.user.id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n async deleteTimesheet({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets = subtask.timesheets.filter(timesheet => timesheet.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n closeModal() {\n this.form = {\n hours: null\n };\n this.showModal = false;\n this.$nextTick(() => this.v$.$reset());\n },\n async _update(data) {\n try {\n data.timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, data);\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[a-task-spent-time.vue] Error: ', error);\n }\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.subtask.deadline);\n console.log('a-task-spent-time', this.subtask);\n const timeParts = this.subtask._deadline_time.splLine truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__[\"default\"]],\n props: {\n hours: {\n type: Number,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n moment: (moment__WEBPACK_IMPORTED_MODULE_1___default()),\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n showModal: false,\n form: {\n hours: null\n }\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.minValue)(0.1)\n }\n }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_7__.mapGetters)('auth', ['user'])\n },\n methods: {\n async submit() {\n if (!(await this.v$.$validate())) return;\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets.push({\n id: null,\n employee_id: this.user.id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n async deleteTimesheet({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets = subtask.timesheets.filter(timesheet => timesheet.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n closeModal() {\n this.form = {\n hours: null\n };\n this.showModal = false;\n this.$nextTick(() => this.v$.$reset());\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end:
Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -796,7 +796,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_6__[\"default\"]],\n emits: ['update-subtask'],\n components: {\n Datepicker: _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n props: {\n timeblocks: {\n type: Array,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n showModal: false,\n visible: false,\n form: {\n date: null,\n starts_at_time: '09:00',\n ends_at_time: '16:00'\n }\n };\n },\n validations() {\n return {\n form: {\n date: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__.required\n },\n starts_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__.required\n },\n ends_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__.required\n }\n }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_8__.mapGetters)('tm', ['mastertasks']),\n isOffice365Task() {\n return this.subtask.type == 'office365';\n }\n },\n methods: {\n async submit() {\n if (!(await this.v$.$validate())) return;\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n const splittedStartsAtTime = this.form.starts_at_time.split(':');\n const splittedEndsAtTime = this.form.ends_at_time.split(':');\n const start = moment__WEBPACK_IMPORTED_MODULE_5___default()(this.form.date).hours(parseInt(splittedStartsAtTime[0])).minutes(parseInt(splittedStartsAtTime[1])).toISOString();\n const end = moment__WEBPACK_IMPORTED_MODULE_5___default()(this.form.date).hours(parseInt(splittedEndsAtTime[0])).minutes(parseInt(splittedEndsAtTime[1])).toISOString();\n if (!subtask?.timeblocks) {\n subtask.timeblocks = [];\n }\n if (!subtask?.timesheets) {\n subtask.timesheets = [];\n }\n if (!subtask?.is_finished) {\n subtask.is_finished = 0;\n }\n subtask.timeblocks.push({\n end: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatDateTimeForBackend(end),\n id: null,\n is_finished: 0,\n start: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatDateTimeForBackend(start)\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utilLine truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_6__[\"default\"]],\n emits: ['update-subtask'],\n components: {\n Datepicker: _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n props: {\n timeblocks: {\n type: Array,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n showModal: false,\n visible: false,\n form: {\n date: null,\n starts_at_time: '09:00',\n ends_at_time: '16:00'\n }\n };\n },\n validations() {\n return {\n form: {\n date: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__.required\n },\n starts_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__.required\n },\n ends_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_7__.required\n }\n }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_8__.mapGetters)('tm', ['mastertasks']),\n isOffice365Task() {\n return this.subtask.type == 'office365';\n }\n },\n methods: {\n formatTimeblockStart(timeblock) {\n // Handle internal format with date and time fields\n if (timeblock.date && timeblock.starts_at_time) {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_5___default()(timeblock.date).format('DD.MM.yyyy');\n return `${dateStr}, ${timeblock.starts_at_time}`;\n }\n // Fallback to backend format\n if (timeblock.start) {\n return _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatDateTime(timeblock.start);\n }\n return '';\n },\n formatTimeblockEnd(timeblock) {\n // Handle internal format with date and time fields\n if (timeblock.date && timeblock.ends_at_time) {\n return timeblock.ends_at_time;\n }\n // Fallback to backend format\n if (timeblock.end) {\n return _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatDateTime(timeblock.end);\n }\n return '';\n },\n async submit() {\n if (!(await this.v$.$validate())) return;\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n if (!subtask?.timeblocks) {\n subtask.timeblocks = [];\n }\n if (!subtask?.timesheets) {\n subtask.timesheets = [];\n }\n
Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -807,7 +807,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n Datepicker: _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n props: {\n timeblock: {\n type: Object,\n required: true\n },\n deletable: {\n type: Boolean,\n default: false\n },\n editable: {\n type: Boolean,\n default: false\n },\n preventInputFocus: {\n type: Boolean,\n default: false\n },\n onInputFocus: {\n type: Function,\n default: () => ({})\n },\n onDateOpen: {\n type: Function,\n default: () => ({})\n }\n },\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_0__[\"default\"])()\n };\n },\n validations() {\n return {\n timeblock: {\n starts_at_time: {\n required: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_2__.requiredIf)(this.timeblock.date)\n },\n ends_at_time: {\n required: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_2__.requiredIf)(this.timeblock.date)\n }\n }\n };\n },\n methods: {\n async openDatepicker(ref) {\n this.$refs[ref].openMenu();\n },\n updateDate(date) {\n const timeblock = {\n ...this.timeblock\n };\n if (date) timeblock.date = date;\n this.$emit('updateTimeblock', timeblock);\n },\n updateStartTime(event) {\n const timeblock = {\n ...this.timeblock\n };\n timeblock.starts_at_time = event.target.value;\n this.$emit('updateTimeblock', timeblock);\n },\n updateEndTime(event) {\n const timeblock = {\n ...this.timeblock\n };\n timeblock.ends_at_time = event.target.value;\n this.$emit('updateTimeblock', timeblock);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/a-timeblock.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n Datepicker: _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n props: {\n timeblock: {\n type: Object,\n required: true\n },\n deletable: {\n type: Boolean,\n default: false\n },\n editable: {\n type: Boolean,\n default: false\n },\n preventInputFocus: {\n type: Boolean,\n default: false\n },\n onInputFocus: {\n type: Function,\n default: () => ({})\n },\n onDateOpen: {\n type: Function,\n default: () => ({})\n },\n index: {\n type: Number\n }\n },\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_0__[\"default\"])()\n };\n },\n validations() {\n return {\n timeblock: {\n starts_at_time: {\n required: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_2__.requiredIf)(this.timeblock.date)\n },\n ends_at_time: {\n required: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_2__.requiredIf)(this.timeblock.date)\n }\n }\n };\n },\n methods: {\n handleDatepickerClick() {\n // Pass the datepicker wrapper element reference to the mixin\n const scrollTarget = this.$refs[`timeblock-datepicker-wrapper-${this.index}`];\n this.onDateOpen(scrollTarget);\n // Open the datepicker\n this.openDatepicker(`timeblock-datepicker-${this.index}`);\n setTimeout(() => {\n const calendar = document.querySelector('.dp__menu.dp__menu_index.dp__theme_light');\n if (!calendar) return;\n\n // Get the datepicker wrapper element\n const datepickerWrapper = this.$refs[`timeblock-datepicker-wrapper-${this.index}`];\n\n // Get the modal container\n const modalContainer = document.querySelector('.v-overlay__content');\n if (!datepickerWrapper || !modalContainer) return;\n\n // Get bounding rectangles\n const wrapperRect = datepickerWrapper.getBoundingClientRect();\n const modalRect = modalContainer.getBoundingClientRect();\n\n // Calculate position relative to modal\n const topPosition = wrapperRect.top - modalRect.top + wrapperRect.height;\n const leftPosition = wrapperRect.left - modalRect.left;\n\n // Apply positioning\n // calendar.style.position = 'absolute';\n calendar.style.top = `${topPosition + 210}px`;\n // calendar.style.left = `${leftPosition}px`;\n }, 100);\n },\n async openDatepicker(ref) {\n this.$refs[ref].openMenu();\n },\n updateDate(date) {\n const updated = {\n ...this.timeblock,\n date\n };\n this.$emit('updateTimeblock', updated);\n },\n updateStartTime(event) {\n const updated = {\n ...this.timeblock,\n starts_at_time: event.target.value\n };\n this.$emit('updateTimeblock', updated);\n },\n updateEndTime(event) {\n const updated = {\n ...this.timeblock,\n ends_at_time: event.target.value\n };\n this.$emit('updateTimeblock', updated);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/a-timeblock.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -829,7 +829,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _com
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {\n try {\n const tempSubtask = {\n ...this.subtask,\n is_finished: this.subtask.is_finished ? 0 : 1,\n timesheets: this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n })\n };\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n this.visible = false;\n this.$emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n if (true) console.log('[z-complete-task-modal.vue] Error: ', error);\n }\n },\n closeModal() {\n this.visible = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {\n try {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_1___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...this.subtask,\n is_finished: this.subtask.is_finished ? 0 : 1,\n timesheets,\n timeblocks\n };\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n this.visible = false;\n this.$emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n if (true) console.log('[z-complete-task-modal.vue] Error: ', error);\n }\n },\n closeModal() {\n this.visible = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -851,7 +851,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plu
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n isDeleting: false,\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTimeblock({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatDateTimeForBackend(subtask.deadline);\n this._update(subtask);\n },\n deleteTimeblockWithoutId(i) {\n this.$emit('delete-timeblock');\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[z-delete-timeblock-modal.vue] Error: ', error);\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-timeblock-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_2__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n isDeleting: false,\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTimeblock({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].formatDateTimeForBackend(subtask.deadline);\n this._update(subtask);\n },\n deleteTimeblockWithoutId(i) {\n this.$emit('delete-timeblock');\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_2___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[z-delete-timeblock-modal.vue] Error: ', error);\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-timeblock-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -862,7 +862,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plu
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n visible: false,\n subtask: null,\n form: {\n hours: null\n }\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_5__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_5__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_5__.minValue)(0.1)\n }\n }\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n this.form.hours = null;\n this.$nextTick(() => this.v$.$reset());\n },\n async submit() {\n if (!(await this.v$.$validate())) return;\n if (this.subtask.deadline) this.subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].formatDateTimeForBackend(this.subtask.deadline);\n this.subtask.timesheets.push({\n id: null,\n employee_id: this.subtask.employee_id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n const payload = {\n ...this.subtask,\n timesheets: this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n })\n };\n try {\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${this.subtask.id}`, payload);\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[z-task-add-time-modal.vue] Error: ', error);\n }\n },\n closeModal() {\n this.visible = false;\n this.v$.$reset();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-add-time-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_5__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n visible: false,\n subtask: null,\n form: {\n hours: null\n }\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.minValue)(0.1)\n }\n }\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n this.form.hours = null;\n this.$nextTick(() => this.v$.$reset());\n },\n async submit() {\n if (!(await this.v$.$validate())) return;\n if (this.subtask.deadline) this.subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].formatDateTimeForBackend(this.subtask.deadline);\n this.subtask.timesheets.push({\n id: null,\n employee_id: this.subtask.employee_id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_5___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const payload = {\n ...this.subtask,\n timesheets,\n timeblocks\n };\n try {\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${this.subtask.id}`, payload);\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n
Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -873,7 +873,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _plugins_tm_modal_task_components_components_a_task_timeblocks_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue */ \"./src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/vuetify-fix-focus */ \"./src/plugins/tm@modal/_mixins/vuetify-fix-focus.ts\");\n/* harmony import */ var _master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../master-task/_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! file-saver */ \"./node_modules/file-saver/dist/FileSaver.min.js\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _components_z_task_readonly_info_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./_components/z-task-readonly-info.vue */ \"./src/plugins/tm@modal/task/_components/z-task-readonly-info.vue\");\n/* harmony import */ var _components_a_timeblock_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./_components/a-timeblock.vue */ \"./src/plugins/tm@modal/task/_components/a-timeblock.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n emits: ['close', 'refresh'],\n mixins: [_plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_7__[\Line truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vuepic_vue_datepicker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @vuepic/vue-datepicker */ \"./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/vuetify-fix-focus */ \"./src/plugins/tm@modal/_mixins/vuetify-fix-focus.ts\");\n/* harmony import */ var _master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../master-task/_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! file-saver */ \"./node_modules/file-saver/dist/FileSaver.min.js\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _components_z_task_readonly_info_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_components/z-task-readonly-info.vue */ \"./src/plugins/tm@modal/task/_components/z-task-readonly-info.vue\");\n/* harmony import */ var _components_a_timeblock_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./_components/a-timeblock.vue */ \"./src/plugins/tm@modal/task/_components/a-timeblock.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n emits: ['close', 'refresh'],\n mixins: [_plugins_tm_modal_mixins_vuetify_fix_focus__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_12__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_15__[\"default\"]],\n components: {\n ZTaskReadonlyInfo: _componenLine truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -884,7 +884,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n props: {\n mode: {\n type: String,\n default: 'edit' // edit or delete\n }\n },\n\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n visible: false,\n subtask: null,\n loadingTimeblocks: {},\n loadingCloseAll: false\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {\n console.log('complete');\n },\n closeModal() {\n this.visible = false;\n },\n async handleFinishTimeblock(timeblock) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n try {\n this.loadingTimeblocks[timeblock.id] = true;\n await this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n timeblock.is_finished = 1;\n const areAllTimeblocksFinished = subtask.timeblocks.every(timeblock => timeblock.is_finished);\n if (areAllTimeblocksFinished) {\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n }\n this.$events.emit('on-subtask-edited', subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[a-task-timeblocks.vue] Error: ', error);\n } finally {\n this.loadingTimeblocks[timeblock.id] = false;\n }\n },\n async handleFinishAllTimeblocks() {\n this.loadingCloseAll = true;\n try {\n const promises = this.subtask.timeblocks.map(timeblock => {\n return this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n });\n await Promise.all(promises);\n this.subtask.timeblocks = this.subtask.timeblocks.map(timeblock => {\n timeblock.is_finished = 1;\n return timeblock;\n });\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n this.$events.emit('on-subtask-edited', this.subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n } finally {\n this.loadingCloseAll = false;\n }\n },\n async _finishSubtask() {\n const tempSubtask = {\n ...this.subtask,\n is_finished: 1,\n timesheets: this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n })\n };\n return this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_2__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n props: {\n mode: {\n type: String,\n default: 'edit' // edit or delete\n }\n },\n\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n visible: false,\n subtask: null,\n loadingTimeblocks: {},\n loadingCloseAll: false\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {\n console.log('complete');\n },\n closeModal() {\n this.visible = false;\n },\n async handleFinishTimeblock(timeblock) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n try {\n this.loadingTimeblocks[timeblock.id] = true;\n await this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n timeblock.is_finished = 1;\n const areAllTimeblocksFinished = subtask.timeblocks.every(timeblock => timeblock.is_finished);\n if (areAllTimeblocksFinished) {\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n }\n this.$events.emit('on-subtask-edited', subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[a-task-timeblocks.vue] Error: ', error);\n } finally {\n this.loadingTimeblocks[timeblock.id] = false;\n }\n },\n async handleFinishAllTimeblocks() {\n this.loadingCloseAll = true;\n try {\n const promises = this.subtask.timeblocks.map(timeblock => {\n return this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n });\n await Promise.all(promises);\n this.subtask.timeblocks = this.subtask.timeblocks.map(timeblock => {\n timeblock.is_finished = 1;\n return timeblock;\n });\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n this.$events.emit('on-subtask-edited', this.subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n } finally {\n this.loadingCloseAll = false;\n }\n },\n async _finishSubtask() {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_2___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...this.subtask,\n is_finished: 1,\n timesheets,\n timeblocks\n };\n return this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plu
Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -1082,7 +1082,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
|
|||||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".date-wrap[data-v-327591c6] {\\n display: flex;\\n flex-flow: row;\\n width: 100%;\\n gap: 20px;\\n}\\n.date-wrap .dp__main[data-v-327591c6] {\\n width: calc(50% - 10px) !important;\\n}\\n.employee-select-avatar[data-v-327591c6] {\\n background: #6200EE;\\n color: #fff;\\n border-radius: 50%;\\n font-size: 11.5px;\\n height: 22px;\\n width: 22px;\\n position: absolute;\\n top: 50%;\\n right: 12px;\\n transform: translate(0, -50%);\\n}\\n.remove-input[data-v-327591c6] {\\n position: absolute;\\n top: 50%;\\n right: 0px;\\n transform: translate(-15px, -50%);\\n color: rgb(102, 102, 102) !important;\\n z-index: 10;\\n cursor: pointer;\\n}\\n.scrolling[data-v-327591c6] {\\n overflow: hidden !important;\\n}\\n.border-bottom[data-v-327591c6] {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n.subtask-btn[data-v-327591c6] {\\n border: thin solid rgba(var(--v-border-color), var(--v-border-opacity)) !important;\\n color: #7f39fb !important;\\n height: 53px;\\n text-align: center;\\n}\\n[data-v-327591c6] .v-field__clearable {\\n opacity: 1 !important;\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-master-task-modal.vue?./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use%5B1%5D!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use%5B2%5D!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".date-wrap[data-v-327591c6] {\\n display: flex;\\n flex-flow: row;\\n width: 100%;\\n gap: 20px;\\n}\\n.date-wrap .dp__main[data-v-327591c6] {\\n width: calc(50% - 10px) !important;\\n}\\n.employee-select-avatar[data-v-327591c6] {\\n background: #6200EE;\\n color: #fff;\\n border-radius: 50%;\\n font-size: 11.5px;\\n height: 22px;\\n width: 22px;\\n position: absolute;\\n top: 50%;\\n right: 12px;\\n transform: translate(0, -50%);\\n}\\n.remove-input[data-v-327591c6] {\\n position: absolute;\\n top: 50%;\\n right: 0px;\\n transform: translate(-15px, -50%);\\n color: rgb(102, 102, 102) !important;\\n z-index: 10;\\n cursor: pointer;\\n}\\n.scrolling[data-v-327591c6] {\\n overflow: hidden !important;\\n}\\n.border-bottom[data-v-327591c6] {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n}\\n.subtask-btn[data-v-327591c6] {\\n border: thin solid rgba(var(--v-border-color), var(--v-border-opacity)) !important;\\n color: #7f39fb !important;\\n height: 53px;\\n text-align: center;\\n}\\n[data-v-327591c6] .v-field__clearable {\\n opacity: 1 !important;\\n}\\n.datepicker-wrapper[data-v-327591c6] {\\n width: 100%;\\n}\\n.datepicker-wrapper .datepicker-input[data-v-327591c6] {\\n width: 100% !important;\\n height: 100%;\\n pointer-events: none;\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-master-task-modal.vue?./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use%5B1%5D!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use%5B2%5D!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -2856,7 +2856,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSelect_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VSelect/index.mjs */ \"./node_modules/vuetify/lib/components/VSelect/VSelect.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-327591c6\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"splitted-inputs\"\n};\nconst _hoisted_3 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_4 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_5 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_6 = {\n class: \"d-flex justify-space-between align-center modal-header border-bottom pb-4\"\n};\nconst _hoisted_7 = {\n class: \"d-flex justify-start\"\n};\nconst _hoisted_8 = [\"src\"];\nconst _hoisted_9 = [\"src\"];\nconst _hoisted_10 = {\n class: \"w-100\"\n};\nconst _hoisted_11 = {\n class: \"d-flex justify-start align-center mt-8\"\n};\nconst _hoisted_12 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n \n \n const _component_QuillEditor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"QuillEditor\");\n const _component_Z_files_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-files-upload\");\n \n \n const _component_A_mastertask_description = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-mastertask-description\");\n const _component_A_tasks_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-tasks-table\");\n const _component_W_loadable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"W-loadable\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n \"max-height\": \"90%\",\n height: \"700px\",\n persistent: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPLine truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSelect_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VSelect/index.mjs */ \"./node_modules/vuetify/lib/components/VSelect/VSelect.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-327591c6\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"splitted-inputs\"\n};\nconst _hoisted_3 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_4 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_5 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_6 = {\n class: \"d-flex justify-space-between align-center modal-header border-bottom pb-4\"\n};\nconst _hoisted_7 = {\n class: \"d-flex justify-start\"\n};\nconst _hoisted_8 = [\"src\"];\nconst _hoisted_9 = [\"src\"];\nconst _hoisted_10 = {\n class: \"w-100\"\n};\nconst _hoisted_11 = {\n class: \"d-flex justify-start align-center mt-8\"\n};\nconst _hoisted_12 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n \n \n const _component_QuillEditor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"QuillEditor\");\n const _component_Z_files_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-files-upload\");\n \n \n const _component_A_mastertask_description = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-mastertask-description\");\n const _component_A_tasks_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-tasks-table\");\n const _component_W_loadable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"W-loadable\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[18] || (_cache[18] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n \"max-height\": \"90%\",\n height: \"700px\",\n persistent: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPLine truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -2966,7 +2966,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VRow.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VCol.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VSheet/index.mjs */ \"./node_modules/vuetify/lib/components/VSheet/VSheet.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"mx-3\"\n}, \"Trvanie\", -1 /* HOISTED */);\nconst _hoisted_3 = {\n key: 0,\n class: \"d-flex align-center mb-3\"\n};\nconst _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"task-badge rounded-pill\"\n}, \"Pridať záznam\", -1 /* HOISTED */);\nconst _hoisted_5 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať dátum\", -1 /* HOISTED */);\nconst _hoisted_7 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_8 = {\n class: \"text-red\"\n};\nconst _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"br\", null, null, -1 /* HOISTED */);\nconst _hoisted_10 = {\n class: \"text-black\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n \n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VRow, {\n \"no-gutters\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCol, {\n cols: \"5\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTLine truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VRow.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VCol.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VSheet/index.mjs */ \"./node_modules/vuetify/lib/components/VSheet/VSheet.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"mx-3\"\n}, \"Trvanie\", -1 /* HOISTED */);\nconst _hoisted_3 = {\n key: 0,\n class: \"d-flex align-center mb-3\"\n};\nconst _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"task-badge rounded-pill\"\n}, \"Pridať záznam\", -1 /* HOISTED */);\nconst _hoisted_5 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať dátum\", -1 /* HOISTED */);\nconst _hoisted_7 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_8 = {\n class: \"text-red\"\n};\nconst _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"br\", null, null, -1 /* HOISTED */);\nconst _hoisted_10 = {\n class: \"text-black\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n \n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VRow, {\n \"no-gutters\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCol, {\n cols: \"5\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTLine truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -2977,7 +2977,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-da2562be\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"timeblock w-100\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"x-button\"\n};\nconst _hoisted_3 = {\n class: \"splitted-time-inputs\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [$props.deletable && $props.editable ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[0] || (_cache[0] = $event => _ctx.$emit('removeTimeblock')),\n class: \"x-button\"\n }, \"x\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n onClick: _cache[1] || (_cache[1] = $event => $options.openDatepicker('datepicker')),\n class: \"datepicker-wrapper\",\n ref: \"datepicker-wrapper\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Datepicker, {\n \"model-value\": $props.timeblock.date,\n ref: \"datepicker\",\n onOpen: $props.onDateOpen,\n \"onUpdate:modelValue\": $options.updateDate,\n format: \"dd.MM.yyyy\",\n locale: \"sk\",\n \"select-text\": \"Vybrať\",\n \"cancel-text\": \"Zrušiť\",\n placeholder: \"Dátum\",\n \"auto-apply\": true,\n \"enable-time-picker\": false,\n class: \"mb-5 modal-input datepicker-input\"\n }, null, 8 /* PROPS */, [\"model-value\", \"onOpen\", \"onUpdate:modelValue\"])], 512 /* NEED_PATCH */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VTextField, {\n value: $props.timeblock.starts_at_time,\n onInput: $options.updateStartTime,\n onFocus: $props.onInputFocus,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n error: $data.v$?.timeblock.starts_at_time.$errors.length\n }),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n label: \"Začiatok\"\n }, null, 8 /* PROPS */, [\"value\", \"onInput\", \"onFocus\", \"class\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VTextField, {\n value: $props.timeblock.ends_at_time,\n onInput: $options.updateEndTime,\n onFocus: $props.onInputFocus,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n error: $data.v$?.timeblock.ends_at_time.$errors.length\n }),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n label: \"Koniec\"\n }, null, 8 /* PROPS */, [\"value\", \"onInput\", \"onFocus\", \"class\"])])]);\n}\n\n/* Vuetify */\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/a-timeblock.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-da2562be\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"timeblock w-100\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"x-button\"\n};\nconst _hoisted_3 = {\n class: \"splitted-time-inputs\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [$props.deletable && $props.editable ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n onClick: _cache[0] || (_cache[0] = $event => _ctx.$emit('removeTimeblock')),\n class: \"x-button\"\n }, \"x\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n onClick: _cache[1] || (_cache[1] = (...args) => $options.handleDatepickerClick && $options.handleDatepickerClick(...args)),\n class: \"datepicker-wrapper\",\n ref: `timeblock-datepicker-wrapper-${$props.index}`\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Datepicker, {\n \"model-value\": $props.timeblock.date,\n ref: `timeblock-datepicker-${$props.index}`,\n \"onUpdate:modelValue\": $options.updateDate,\n format: \"dd.MM.yyyy\",\n locale: \"sk\",\n \"select-text\": \"Vybrať\",\n \"cancel-text\": \"Zrušiť\",\n placeholder: \"Dátum\",\n \"auto-apply\": true,\n \"enable-time-picker\": false,\n class: \"mb-5 modal-input datepicker-input\"\n }, null, 8 /* PROPS */, [\"model-value\", \"onUpdate:modelValue\"])], 512 /* NEED_PATCH */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VTextField, {\n value: $props.timeblock.starts_at_time,\n onInput: $options.updateStartTime,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n error: $data.v$?.timeblock.starts_at_time.$errors.length\n }),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n label: \"Začiatok\"\n }, null, 8 /* PROPS */, [\"value\", \"onInput\", \"class\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VTextField, {\n value: $props.timeblock.ends_at_time,\n onInput: $options.updateEndTime,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({\n error: $data.v$?.timeblock.ends_at_time.$errors.length\n }),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n label: \"Koniec\"\n }, null, 8 /* PROPS */, [\"value\", \"onInput\", \"class\"])])]);\n}\n\n/* Vuetify */\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/a-timeblock.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -3043,7 +3043,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_1__.pushScopeId)(\"data-v-1c35a9a1\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_1__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"splitted-inputs\"\n};\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_5 = [_hoisted_3, _hoisted_4];\nconst _hoisted_6 = [\"onClick\"];\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_8 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_1__.createElementVNode)(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_9 = [_hoisted_7, _hoisted_8];\nconst _hoisted_10 = {\n key: 2,\n class: \"timeblocks w-100\"\n};\nconst _hoisted_11 = {\n class: \"end-button w-100\"\n};\nconst _hoisted_12 = {\n class: \"splitted-time-inputs w-100\"\n};\nconst _hoisted_13 = {\n class: \"w-100 modal-input\"\n};\nconst _hoisted_14 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_15 = {\n class: \"d-flex justify-space-between align-center modal-header border-bottom pb-4\"\n};\nconst _hoisted_16 = {\n class: \"d-flex justify-start\"\n};\nconst _hoisted_17 = [\"src\"];\nconst _hoisted_18 = [\"src\"];\nconst _hoisted_19 = {\n class: \"w-100\"\n};\nconst _hoisted_20 = {\n class: \"d-flex justify-start align-center mt-8\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n
Line truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-1c35a9a1\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"splitted-inputs\"\n};\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_5 = [_hoisted_3, _hoisted_4];\nconst _hoisted_6 = [\"onClick\"];\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_8 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n}, null, -1 /* HOISTED */));\nconst _hoisted_9 = [_hoisted_7, _hoisted_8];\nconst _hoisted_10 = {\n class: \"timeblocks w-100\"\n};\nconst _hoisted_11 = {\n key: 0,\n class: \"end-button w-100\"\n};\nconst _hoisted_12 = {\n class: \"w-100 modal-input\"\n};\nconst _hoisted_13 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_14 = {\n class: \"d-flex justify-space-between align-center modal-header border-bottom pb-4\"\n};\nconst _hoisted_15 = {\n class: \"d-flex justify-start\"\n};\nconst _hoisted_16 = [\"src\"];\nconst _hoisted_17 = [\"src\"];\nconst _hoisted_18 = {\n class: \"w-100\"\n};\nconst _hoisted_19 = {\n class: \"d-flex justify-start align-center mt-8\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n const _component_Datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Datepicker\");\n const _component_A_timeblock = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-timeblock\");\n const _component_QuillEditor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"QuillEditor\");\n const _component_Z_files_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-files-upload\");\n
Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -3054,7 +3054,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-24e90535\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Sub Task má nedokončené úlohy\", -1 /* HOISTED */));\nconst _hoisted_3 = {\n class: \"card-content\"\n};\nconst _hoisted_4 = {\n class: \"card-actions\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VIcon, {\n onClick: _cache[0] || (_cache[0] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"])),\n icon: \"mdi-close\",\n size: \"large\"\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.subtask?.timeblocks, timeblock => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id,\n class: \"d-flex align-center mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.start)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.end)), 3 /* TEXT, CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VIcon, {\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.handleFinishTimeblock(timeblock), [\"stop\"]),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"finish-icon circle-border cursor-pointer ml-2\", {\n 'disabled': $data.loadingTimeblocks[timeblock.id] || $data.loadingCloseAll,\n 'finished': timeblock.is_finished\n }]),\n icon: \"mdi-check\",\n size: \"medium\"\n }, null, 8 /* PROPS */, [\"onClick\", \"class\"])]);\n }), 128 /* KEYED_FRAGMENT */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPALine truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-24e90535\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Sub Task má nedokončené úlohy\", -1 /* HOISTED */));\nconst _hoisted_3 = {\n class: \"card-content\"\n};\nconst _hoisted_4 = {\n class: \"card-actions\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_hoisted_2, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VIcon, {\n onClick: _cache[0] || (_cache[0] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"])),\n icon: \"mdi-close\",\n size: \"large\"\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.subtask?.timeblocks, timeblock => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id,\n class: \"d-flex align-center mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.start)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.end)), 3 /* TEXT, CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VIcon, {\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.handleFinishTimeblock(timeblock), [\"stop\"]),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"finish-icon circle-border cursor-pointer ml-2\", {\n disabled: $data.loadingTimeblocks[timeblock.id] || $data.loadingCloseAll,\n finished: timeblock.is_finished\n }]),\n icon: \"mdi-check\",\n size: \"medium\"\n }, null, 8 /* PROPS */, [\"onClick\", \"class\"])]);\n }), 128 /* KEYED_FRAGMENT */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_ILine truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/app/_img */ \"./src/plugins/app/_img/index.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n props: {\n subtasks: {\n type: Array,\n required: true\n }\n },\n data() {\n return {\n eye: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.eye,\n bin: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.bin,\n office365: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.office365,\n checkmarkDouble: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.checkmarkDouble,\n loadingSubtask: {}\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapGetters)('tm', ['mastertasks'])\n },\n methods: {\n editTask(subtask, editMode = false) {\n this.$events.emit('show-subtask-modal', {\n subtask,\n editMode\n });\n },\n async handleCompleteTask(subtask) {\n const areAllTimeBlocksFinished = subtask.timeblocks.every(tb => tb.is_finished);\n if (!areAllTimeBlocksFinished) {\n this.$events.emit('show-unable-to-complete-task-modal', {\n subtask\n });\n } else {\n await this._finishSubtask(subtask);\n }\n },\n deleteTask(subtask) {\n if (subtask.type == 'office365') return this.$events.emit('show-unable-to-edit-office-task-modal', {\n mode: 'delete'\n });\n this.$events.emit('show-delete-task-modal', {\n subtask\n });\n },\n getDeadline(subtask) {\n if (subtask?.deadline) return moment__WEBPACK_IMPORTED_MODULE_1___default()(subtask.deadline).format('DD.MM.yyyy');\n return moment__WEBPACK_IMPORTED_MODULE_1___default()(subtask.master_task_deadline).format('DD.MM.yyyy');\n },\n getSelectedTimeblockDeadline(timeblocks) {\n const currentDate = moment__WEBPACK_IMPORTED_MODULE_1___default()();\n const unfinishedTimeblocks = timeblocks.filter(tb => tb.is_finished === 0);\n if (unfinishedTimeblocks.length > 0) return moment__WEBPACK_IMPORTED_MODULE_1___default()(unfinishedTimeblocks[0].end).format('DD.MM.yyyy, HH:mm');\n const upcomingTimeblocks = timeblocks.filter(tb => moment__WEBPACK_IMPORTED_MODULE_1___default()(tb.end).isAfter(currentDate)).sort((a, b) => moment__WEBPACK_IMPORTED_MODULE_1___default()(a.end).diff(moment__WEBPACK_IMPORTED_MODULE_1___default()(b.end)));\n if (upcomingTimeblocks.length > 0 && upcomingTimeblocks.is_finished === 0) return moment__WEBPACK_IMPORTED_MODULE_1___default()(upcomingTimeblocks[0].end).format('DD.MM.yyyy, HH:mm');\n return '';\n },\n displayTimeblock(subtask) {\n const timeblockDeadline = this.getSelectedTimeblockDeadline(subtask.timeblocks);\n return timeblockDeadline !== '' ? timeblockDeadline : 'Žiadny termín';\n },\n async _finishSubtask(subtask) {\n const tempSubtask = {\n ...subtask,\n is_finished: 1,\n timesheets: subtask?.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n }) || []\n };\n try {\n this.loadingSubtask[subtask.id] = true;\n await this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n this.$store.dispatch('tm/removeOngoingSubtask', subtask.id);\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n if (true) console.log('[a-ongoing-table.vue] Error: ', error);\n } finally {\n this.loadingSubtask[subtask.id] = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@overview/tasks-ongoing/_components/a-ongoing-table.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D");
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/app/_img */ \"./src/plugins/app/_img/index.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_1__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n props: {\n subtasks: {\n type: Array,\n required: true\n }\n },\n data() {\n return {\n eye: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.eye,\n bin: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.bin,\n office365: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.office365,\n checkmarkDouble: _plugins_app_img__WEBPACK_IMPORTED_MODULE_0__.checkmarkDouble,\n loadingSubtask: {}\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_2__.mapGetters)('tm', ['mastertasks'])\n },\n methods: {\n editTask(subtask, editMode = false) {\n this.$events.emit('show-subtask-modal', {\n subtask,\n editMode\n });\n },\n async handleCompleteTask(subtask) {\n const areAllTimeBlocksFinished = subtask.timeblocks.every(tb => tb.is_finished);\n if (!areAllTimeBlocksFinished) {\n this.$events.emit('show-unable-to-complete-task-modal', {\n subtask\n });\n } else {\n await this._finishSubtask(subtask);\n }\n },\n deleteTask(subtask) {\n if (subtask.type == 'office365') return this.$events.emit('show-unable-to-edit-office-task-modal', {\n mode: 'delete'\n });\n this.$events.emit('show-delete-task-modal', {\n subtask\n });\n },\n getDeadline(subtask) {\n if (subtask?.deadline) return moment__WEBPACK_IMPORTED_MODULE_1___default()(subtask.deadline).format('DD.MM.yyyy');\n return moment__WEBPACK_IMPORTED_MODULE_1___default()(subtask.master_task_deadline).format('DD.MM.yyyy');\n },\n getSelectedTimeblockDeadline(timeblocks) {\n const currentDate = moment__WEBPACK_IMPORTED_MODULE_1___default()();\n const unfinishedTimeblocks = timeblocks.filter(tb => tb.is_finished === 0);\n if (unfinishedTimeblocks.length > 0) return moment__WEBPACK_IMPORTED_MODULE_1___default()(unfinishedTimeblocks[0].end).format('DD.MM.yyyy, HH:mm');\n const upcomingTimeblocks = timeblocks.filter(tb => moment__WEBPACK_IMPORTED_MODULE_1___default()(tb.end).isAfter(currentDate)).sort((a, b) => moment__WEBPACK_IMPORTED_MODULE_1___default()(a.end).diff(moment__WEBPACK_IMPORTED_MODULE_1___default()(b.end)));\n if (upcomingTimeblocks.length > 0 && upcomingTimeblocks.is_finished === 0) return moment__WEBPACK_IMPORTED_MODULE_1___default()(upcomingTimeblocks[0].end).format('DD.MM.yyyy, HH:mm');\n return '';\n },\n displayTimeblock(subtask) {\n const timeblockDeadline = this.getSelectedTimeblockDeadline(subtask.timeblocks);\n return timeblockDeadline !== '' ? timeblockDeadline : 'Žiadny termín';\n },\n async _finishSubtask(subtask) {\n const timesheets = subtask?.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n }) || [];\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_1___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...subtask,\n is_finished: 1,\n timesheets,\n timeblocks\n };\n try {\n this.loadingSubtask[subtask.id] = true;\n await this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask
Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VTable_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VTable/index.mjs */ \"./node_modules/vuetify/lib/components/VTable/VTable.mjs\");\n/* harmony import */ var vuetify_lib_components_VTooltip_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VTooltip/index.mjs */ \"./node_modules/vuetify/lib/components/VTooltip/VTooltip.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-1bc7f53c\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Názov\", -1 /* HOISTED */));\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Deadline\", -1 /* HOISTED */));\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Najbližší neuzavretý\", -1 /* HOISTED */));\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Naplánované\", -1 /* HOISTED */));\nconst _hoisted_5 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Zostávajúce\", -1 /* HOISTED */));\nconst _hoisted_6 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Akcia\", -1 /* HOISTED */));\nconst _hoisted_7 = [\"onClick\"];\nconst _hoisted_8 = {\n key: 0\n};\nconst _hoisted_9 = {\n class: \"task-action\"\n};\nconst _hoisted_10 = {\n class: \"d-flex justify-start align-center\"\n};\nconst _hoisted_11 = [\"src\", \"onClick\"];\nconst _hoisted_12 = [\"src\", \"onClick\"];\nconst _hoisted_13 = [\"src\"];\nconst _hoisted_14 = [\"src\", \"onClick\"];\nconst _hoisted_15 = [\"src\", \"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VTable_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VTable, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"thead\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tr\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.getSelectedTimeblockDeadline && $options.getSelectedTimeblockDeadline(...args)),\n class: \"text-left\"\n }, \"Kód projektu\"), _hoisted_1, _hoisted_2, _hoisted_3, _hoisted_4, _hoisted_5, _hoisted_6])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tbody\", null, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.subtasks, subtask => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"tr\", {\n class: \"cursor-pointer\",\n key: subtask.id,\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.editTask(subtask, false), [\"stop\"])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"td\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subtask.project_code), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"td\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subtask.title ?? subtask.master_task), 1 /* TEXT */), subtask.deadline ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"td\", _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($options.getDeadline(subtask)), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTooltip_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VTooltip, {\n text: \"Deadline z Mastertasku\",\Line truncated
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VTable_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VTable/index.mjs */ \"./node_modules/vuetify/lib/components/VTable/VTable.mjs\");\n/* harmony import */ var vuetify_lib_components_VTooltip_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VTooltip/index.mjs */ \"./node_modules/vuetify/lib/components/VTooltip/VTooltip.mjs\");\n\nconst _withScopeId = n => ((0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)(\"data-v-1bc7f53c\"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n);\nconst _hoisted_1 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Názov\", -1 /* HOISTED */));\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Deadline\", -1 /* HOISTED */));\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Najbližší neuzavretý\", -1 /* HOISTED */));\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Naplánované\", -1 /* HOISTED */));\nconst _hoisted_5 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Zostávajúce\", -1 /* HOISTED */));\nconst _hoisted_6 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n class: \"text-left\"\n}, \"Akcia\", -1 /* HOISTED */));\nconst _hoisted_7 = [\"onClick\"];\nconst _hoisted_8 = {\n key: 0\n};\nconst _hoisted_9 = {\n class: \"task-action\"\n};\nconst _hoisted_10 = {\n class: \"d-flex justify-start align-center\"\n};\nconst _hoisted_11 = [\"src\", \"onClick\"];\nconst _hoisted_12 = [\"src\", \"onClick\"];\nconst _hoisted_13 = [\"src\"];\nconst _hoisted_14 = [\"src\", \"onClick\"];\nconst _hoisted_15 = [\"src\", \"onClick\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VTable_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VTable, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"thead\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tr\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"th\", {\n onClick: _cache[0] || (_cache[0] = (...args) => $options.getSelectedTimeblockDeadline && $options.getSelectedTimeblockDeadline(...args)),\n class: \"text-left\"\n }, \" Kód projektu \"), _hoisted_1, _hoisted_2, _hoisted_3, _hoisted_4, _hoisted_5, _hoisted_6])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"tbody\", null, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.subtasks, subtask => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"tr\", {\n class: \"cursor-pointer\",\n key: subtask.id,\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.editTask(subtask, false), [\"stop\"])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"td\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subtask.project_code), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"td\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(subtask.title ?? subtask.master_task), 1 /* TEXT */), subtask.deadline ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"td\", _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($options.getDeadline(subtask)), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTooltip_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VTooltip, {\n text: \"Deadline z Mastertasku\"Line truncated
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user