From df71378e5fbb11105e1b8d006da5aad2d3d4d0e2 Mon Sep 17 00:00:00 2001 From: bach Date: Thu, 11 Mar 2021 19:00:09 +0100 Subject: [PATCH] added folder deletion confirmation --- .../custom/materiotheme/assets/dist/main.js | 8 ++-- .../materiotheme/assets/scripts/main.js | 2 +- .../vuejs/components/Content/ModalCard.vue | 2 +- .../vuejs/components/User/UserFlags.vue | 39 ++++++++++++++++--- 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/web/themes/custom/materiotheme/assets/dist/main.js b/web/themes/custom/materiotheme/assets/dist/main.js index 6e2d7de..647fc4c 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.js +++ b/web/themes/custom/materiotheme/assets/dist/main.js @@ -1471,7 +1471,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n name: \"userFlags\",\n data: function data() {\n return {\n new_folder_name: \"\",\n is_creating_folder: false,\n is_deleting_folder: false\n };\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)({\n flagcolls: function flagcolls(state) {\n return state.User.flagcolls;\n }\n })), {}, {\n collsLength: function collsLength() {\n return Object.keys(this.flagcolls).length;\n },\n addFlagBtnClassObj: function addFlagBtnClassObj() {\n return {\n 'mdi-plus-circle-outline': !this.is_creating_folder,\n 'mdi-loading': this.is_creating_folder,\n active: this.new_folder_name.length > 4 && !this.is_creating_folder,\n loading: this.is_creating_folder\n };\n },\n flagDeletingClassObj: function flagDeletingClassObj() {\n return {\n 'mdi-trash-can-outline': !this.is_deleting_folder,\n 'mdi-loading': this.is_deleting_folder,\n 'loading': this.is_deleting_folder\n };\n }\n }),\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)({\n createFlagColl: 'User/createFlagColl',\n deleteFlagColl: 'User/deleteFlagColl',\n openFlagColl: 'User/openFlagColl'\n })), {}, {\n onCreateFlagColl: function onCreateFlagColl() {\n var _this = this;\n\n console.log(\"UserFlags onCreateFlagColl\", this.new_folder_name);\n this.is_creating_folder = true;\n this.createFlagColl(this.new_folder_name).then(function (data) {\n console.log(\"onCreateFlagColl then\", data);\n _this.new_folder_name = \"\";\n _this.is_creating_folder = false;\n });\n },\n onDeleteFlagColl: function onDeleteFlagColl(e) {\n var _this2 = this;\n\n var flagcollid = e.target.getAttribute('flagcollid');\n console.log(\"UserFlags onDeleteFlagColl\", flagcollid);\n this.is_deleting_folder = flagcollid;\n this.deleteFlagColl(flagcollid).then(function () {\n // console.log(\"onDeleteFlagColl then\", data);\n _this2.is_deleting_folder = false;\n });\n },\n onOpenFlagColl: function onOpenFlagColl(e) {\n var flagcollid = e.target.getAttribute('flagcollid');\n console.log(\"UserFlags onOpenFlagColl\", flagcollid);\n this.openFlagColl(flagcollid).then(function () {// console.log(\"onDeleteFlagColl then\", data);\n });\n }\n })\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n name: \"userFlags\",\n data: function data() {\n return {\n new_folder_name: \"\",\n is_creating_folder: false,\n is_deleting_folder: false\n };\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)({\n flagcolls: function flagcolls(state) {\n return state.User.flagcolls;\n }\n })), {}, {\n collsLength: function collsLength() {\n return Object.keys(this.flagcolls).length;\n },\n addFlagBtnClassObj: function addFlagBtnClassObj() {\n return {\n 'mdi-plus-circle-outline': !this.is_creating_folder,\n 'mdi-loading': this.is_creating_folder,\n active: this.new_folder_name.length > 4 && !this.is_creating_folder,\n loading: this.is_creating_folder\n };\n },\n flagDeletingClassObj: function flagDeletingClassObj() {\n return {\n 'mdi-trash-can-outline': !this.is_deleting_folder,\n 'mdi-loading': this.is_deleting_folder,\n 'loading': this.is_deleting_folder\n };\n }\n }),\n methods: _objectSpread(_objectSpread({}, (0, _vuex.mapActions)({\n createFlagColl: 'User/createFlagColl',\n deleteFlagColl: 'User/deleteFlagColl',\n openFlagColl: 'User/openFlagColl'\n })), {}, {\n onCreateFlagColl: function onCreateFlagColl() {\n var _this = this;\n\n console.log(\"UserFlags onCreateFlagColl\", this.new_folder_name);\n this.is_creating_folder = true;\n this.createFlagColl(this.new_folder_name).then(function (data) {\n console.log(\"onCreateFlagColl then\", data);\n _this.new_folder_name = \"\";\n _this.is_creating_folder = false;\n });\n },\n onDeleteFlagColl: function onDeleteFlagColl(e) {\n var flagcollid = e.target.getAttribute('flagcollid');\n console.log(\"UserFlags onDeleteFlagColl\", flagcollid);\n this.is_deleting_folder = flagcollid; // TODO: confirm suppression\n\n this.confirmDeleteFlagColl(flagcollid);\n },\n confirmDeleteFlagColl: function confirmDeleteFlagColl(flagcollid) {\n var _this2 = this;\n\n console.log('confirmDeleteFlagCOll', flagcollid, this.flagcolls); // const index = this.flagcolls.findIndex(i => i.id === flagcollid)\n\n var coll = this.flagcolls[flagcollid]; // console.log(\"coll to delete\", coll);\n\n this.$modal.show('dialog', {\n title: \"Folder delete\",\n text: \"Please confirm the definitive deletion of \".concat(coll.name, \" ?\"),\n buttons: [{\n title: 'Cancel',\n default: true,\n handler: function handler() {\n _this2.$modal.hide('dialog');\n }\n }, {\n title: 'Delete',\n handler: function handler() {\n console.log('deletion confirmed', flagcollid);\n\n _this2.deleteFlagColl(flagcollid).then(function () {\n // console.log(\"onDeleteFlagColl then\", data);\n _this2.is_deleting_folder = false;\n\n _this2.$modal.hide('dialog');\n });\n }\n }]\n });\n },\n onOpenFlagColl: function onOpenFlagColl(e) {\n var flagcollid = e.target.getAttribute('flagcollid');\n console.log(\"UserFlags onOpenFlagColl\", flagcollid);\n this.openFlagColl(flagcollid).then(function () {// console.log(\"onDeleteFlagColl then\", data);\n });\n }\n })\n};\nexports.default = _default;\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -3548,7 +3548,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.material || _vm.loading\n ? _c(\"div\", { staticClass: \"loading\" }, [\n _c(\"span\", [_vm._v(\"Loading ...\")])\n ])\n : _c(\n \"article\",\n { staticClass: \"card modal-card\" },\n [\n _c(\n \"section\",\n { staticClass: \"col col-right\" },\n [\n _c(\"header\", [\n _c(\"h1\", [_vm._v(_vm._s(_vm.material.title))]),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(_vm._s(_vm.material.short_description))]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"ref\" }, [\n _vm._v(_vm._s(_vm.material.reference))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"nav\", { staticClass: \"tools\" }, [\n _c(\"section\", { staticClass: \"tool close\" }, [\n _c(\"span\", {\n staticClass: \"btn mdi mdi-close\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onCloseModalCard($event)\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"tool flags\" }, [\n _c(\"span\", { staticClass: \"btn mdi mdi-folder-outline\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"tool-content\" }, [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.My folders\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _vm._l(_vm.flagcolls, function(coll) {\n return _vm.flagcolls\n ? _c(\"li\", { key: coll.id }, [\n _c(\n \"span\",\n {\n staticClass: \"flag mdi\",\n class: [\n _vm.flagIsLoading(coll.id)\n ? \"mdi-loading mdi-spin\"\n : _vm.flagIsActive(coll.id)\n ? \"mdi-close-circle isActive\"\n : \"mdi-plus\"\n ],\n attrs: { collid: coll.id },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onFlagActionCard($event)\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(coll.name) +\n \"\\n \"\n )\n ]\n )\n ])\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm.collsLength < 15\n ? _c(\"li\", { staticClass: \"create-flag\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.new_folder_name,\n expression: \"new_folder_name\"\n }\n ],\n attrs: { placeholder: \"new folder\" },\n domProps: { value: _vm.new_folder_name },\n on: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n },\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.new_folder_name = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", {\n staticClass: \"add-btn mdi\",\n class: _vm.addFlagBtnClassObj,\n on: {\n click: function($event) {\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n }\n }\n })\n ])\n : _vm._e()\n ],\n 2\n )\n ])\n ]),\n _vm._v(\" \"),\n _vm.item.samples && _vm.item.samples.length\n ? _c(\"section\", { staticClass: \"tool samples\" }, [\n _c(\"span\", { staticClass: \"btn mdi mdi-beaker-outline\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"tool-content\" }, [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Samples\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.item.samples, function(sample) {\n return _c(\"li\", { key: sample.showroom.id }, [\n _c(\"span\", { staticClass: \"showroom\" }, [\n _vm._v(_vm._s(sample.showroom.name))\n ]),\n _vm._v(\n \": \" +\n _vm._s(sample.location) +\n \"\\n \"\n )\n ])\n }),\n 0\n )\n ])\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"tool note\" }, [\n _vm.note_nid\n ? _c(\"span\", { staticClass: \"btn mdi mdi-note\" })\n : _c(\"span\", { staticClass: \"btn mdi mdi-note-outline\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"tool-content\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.note,\n expression: \"note\"\n }\n ],\n attrs: { spellcheck: \"false\", name: \"note\" },\n domProps: { value: _vm.note },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.note = $event.target.value\n }\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"tool print\" }, [\n _c(\n \"a\",\n {\n attrs: {\n href: _vm.material.path + \"/printable/print\",\n target: \"_blank\"\n }\n },\n [_c(\"span\", { staticClass: \"btn mdi mdi-printer\" })]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"vsa-list\",\n [\n _c(\n \"vsa-item\",\n { attrs: { initActive: true } },\n [\n _c(\"vsa-heading\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(\"Description\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"vsa-content\", [\n _c(\"section\", {\n staticClass: \"body\",\n domProps: { innerHTML: _vm._s(_vm.material.body) }\n }),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"attachments\" }, [\n _c(\n \"ul\",\n _vm._l(_vm.material.attachments, function(\n attachmt\n ) {\n return _c(\"li\", { key: attachmt.file.fid }, [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: attachmt.file.url\n }\n },\n [\n _vm._v(\n _vm._s(attachmt.file.filename) + \" \"\n ),\n _c(\"span\", [\n _vm._v(\n \"(\" +\n _vm._s(\n _vm.prettyFileSize(\n attachmt.file.filesize\n )\n ) +\n \")\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n attachmt.description\n ? _c(\"p\", {\n staticClass: \"description\",\n domProps: {\n innerHTML: _vm._s(attachmt.description)\n }\n })\n : _vm._e()\n ])\n }),\n 0\n )\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"industriels\" }, [\n _vm.material.manufacturer\n ? _c(\"section\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Manufacturer\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.material.manufacturer, function(\n manu\n ) {\n return _c(\"li\", { key: manu.id }, [\n _c(\"h2\", [_vm._v(_vm._s(manu.name))]),\n _vm._v(\" \"),\n manu.website\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: manu.website.url\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.shortUrl(\n manu.website.url\n )\n )\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n manu.email\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"mailto:\" + manu.email\n }\n },\n [_vm._v(_vm._s(manu.email))]\n )\n ])\n : _vm._e()\n ])\n }),\n 0\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.material.distributor\n ? _c(\"section\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Distributor\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.material.distributor, function(\n distrib\n ) {\n return _c(\"li\", { key: distrib.id }, [\n _c(\"h2\", [_vm._v(_vm._s(distrib.name))]),\n _vm._v(\" \"),\n distrib.website\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: distrib.website.url\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.shortUrl(\n distrib.website.url\n )\n )\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n distrib.email\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href:\n \"mailto:\" + distrib.email\n }\n },\n [_vm._v(_vm._s(distrib.email))]\n )\n ])\n : _vm._e()\n ])\n }),\n 0\n )\n ])\n : _vm._e()\n ])\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.material.linked_materials\n ? _c(\n \"vsa-item\",\n [\n _c(\"vsa-heading\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Linked materials\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"vsa-content\", [\n _c(\"section\", { staticClass: \"linked-materials\" }, [\n _c(\n \"ul\",\n _vm._l(_vm.material.linked_materials, function(\n m\n ) {\n return _c(\n \"li\",\n { key: m.id },\n [\n _c(\"LinkedMaterialCard\", {\n attrs: { item: m }\n })\n ],\n 1\n )\n }),\n 0\n )\n ])\n ])\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"section\",\n {\n directives: [{ name: \"switcher\", rawName: \"v-switcher\" }],\n staticClass: \"col col-left images\"\n },\n _vm._l(_vm.material.images, function(img, index) {\n return _c(\"figure\", { key: img.url }, [\n _c(\"img\", {\n directives: [\n {\n name: \"lazy\",\n rawName: \"v-lazy\",\n value: index,\n expression: \"index\"\n }\n ],\n staticClass: \"lazy\",\n attrs: {\n \"data-src\": img.style_cardfull.url,\n title: img.title\n }\n }),\n _vm._v(\" \"),\n _c(\"img\", {\n staticClass: \"blank\",\n attrs: { src: _vm.blanksrc },\n on: {\n click: function($event) {\n _vm.lightbox_index = index\n }\n }\n })\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"CoolLightBox\", {\n attrs: {\n items: _vm.material.images,\n index: _vm.lightbox_index,\n srcName: \"url\",\n loop: true\n },\n on: {\n close: function($event) {\n _vm.lightbox_index = null\n }\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.material || _vm.loading\n ? _c(\"div\", { staticClass: \"loading\" }, [\n _c(\"span\", [_vm._v(\"Loading ...\")])\n ])\n : _c(\n \"article\",\n { staticClass: \"card modal-card\" },\n [\n _c(\n \"section\",\n { staticClass: \"col col-right\" },\n [\n _c(\"header\", [\n _c(\"h1\", [_vm._v(_vm._s(_vm.material.title))]),\n _vm._v(\" \"),\n _c(\"h4\", [_vm._v(_vm._s(_vm.material.short_description))]),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"ref\" }, [\n _vm._v(_vm._s(_vm.material.reference))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"nav\", { staticClass: \"tools\" }, [\n _c(\"section\", { staticClass: \"tool close\" }, [\n _c(\"span\", {\n staticClass: \"btn mdi mdi-close\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onCloseModalCard($event)\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"tool flags\" }, [\n _c(\"span\", { staticClass: \"btn mdi mdi-folder-outline\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"tool-content\" }, [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.My folders\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _vm._l(_vm.flagcolls, function(coll) {\n return _vm.flagcolls\n ? _c(\"li\", { key: coll.id }, [\n _c(\n \"span\",\n {\n staticClass: \"flag mdi\",\n class: [\n _vm.flagIsLoading(coll.id)\n ? \"mdi-loading mdi-spin\"\n : _vm.flagIsActive(coll.id)\n ? \"mdi-close-circle isActive\"\n : \"mdi-plus\"\n ],\n attrs: { collid: coll.id },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onFlagActionCard($event)\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(coll.name) +\n \"\\n \"\n )\n ]\n )\n ])\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm.collsLength < 15\n ? _c(\"li\", { staticClass: \"create-flag\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.new_folder_name,\n expression: \"new_folder_name\"\n }\n ],\n attrs: { placeholder: \"new folder\" },\n domProps: { value: _vm.new_folder_name },\n on: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n },\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.new_folder_name = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", {\n staticClass: \"add-btn mdi\",\n class: _vm.addFlagBtnClassObj,\n on: {\n click: function($event) {\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n }\n }\n })\n ])\n : _vm._e()\n ],\n 2\n )\n ])\n ]),\n _vm._v(\" \"),\n _vm.item.samples && _vm.item.samples.length\n ? _c(\"section\", { staticClass: \"tool samples\" }, [\n _c(\"span\", { staticClass: \"btn mdi mdi-beaker-outline\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"tool-content\" }, [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Samples\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.item.samples, function(sample) {\n return _c(\"li\", { key: sample.showroom.id }, [\n _c(\"span\", { staticClass: \"showroom\" }, [\n _vm._v(_vm._s(sample.showroom.name))\n ]),\n _vm._v(\n \": \" +\n _vm._s(sample.location) +\n \"\\n \"\n )\n ])\n }),\n 0\n )\n ])\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"tool note\" }, [\n _vm.note_nid\n ? _c(\"span\", { staticClass: \"btn mdi mdi-note\" })\n : _c(\"span\", { staticClass: \"btn mdi mdi-note-outline\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"tool-content\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.note,\n expression: \"note\"\n }\n ],\n attrs: { spellcheck: \"false\", name: \"note\" },\n domProps: { value: _vm.note },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.note = $event.target.value\n }\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"tool print\" }, [\n _c(\n \"a\",\n {\n attrs: {\n href: _vm.material.path + \"/printable/print\",\n target: \"_blank\"\n }\n },\n [_c(\"span\", { staticClass: \"btn mdi mdi-printer\" })]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"vsa-list\",\n [\n _c(\n \"vsa-item\",\n { attrs: { initActive: true } },\n [\n _c(\"vsa-heading\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(\"Description\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"vsa-content\", [\n _c(\"section\", {\n staticClass: \"body\",\n domProps: { innerHTML: _vm._s(_vm.material.body) }\n }),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"attachments\" }, [\n _c(\n \"ul\",\n _vm._l(_vm.material.attachments, function(\n attachmt\n ) {\n return _c(\"li\", { key: attachmt.file.fid }, [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: attachmt.file.url\n }\n },\n [\n _vm._v(\n _vm._s(attachmt.file.filename) + \" \"\n ),\n _c(\"span\", [\n _vm._v(\n \"(\" +\n _vm._s(\n _vm.prettyFileSize(\n attachmt.file.filesize\n )\n ) +\n \")\"\n )\n ])\n ]\n ),\n _vm._v(\" \"),\n attachmt.description\n ? _c(\"p\", {\n staticClass: \"description\",\n domProps: {\n innerHTML: _vm._s(attachmt.description)\n }\n })\n : _vm._e()\n ])\n }),\n 0\n )\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"industriels\" }, [\n _vm.material.manufacturer\n ? _c(\"section\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Manufacturer\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.material.manufacturer, function(\n manu\n ) {\n return _c(\"li\", { key: manu.id }, [\n _c(\"h2\", [_vm._v(_vm._s(manu.name))]),\n _vm._v(\" \"),\n manu.website\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: manu.website.url\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.shortUrl(\n manu.website.url\n )\n )\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n manu.email\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href: \"mailto:\" + manu.email\n }\n },\n [_vm._v(_vm._s(manu.email))]\n )\n ])\n : _vm._e()\n ])\n }),\n 0\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.material.distributor\n ? _c(\"section\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Distributor\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n _vm._l(_vm.material.distributor, function(\n distrib\n ) {\n return _c(\"li\", { key: distrib.id }, [\n _c(\"h2\", [_vm._v(_vm._s(distrib.name))]),\n _vm._v(\" \"),\n distrib.website\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: distrib.website.url\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.shortUrl(\n distrib.website.url\n )\n )\n )\n ]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n distrib.email\n ? _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href:\n \"mailto:\" + distrib.email\n }\n },\n [_vm._v(_vm._s(distrib.email))]\n )\n ])\n : _vm._e()\n ])\n }),\n 0\n )\n ])\n : _vm._e()\n ])\n ])\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.material.linked_materials.length\n ? _c(\n \"vsa-item\",\n [\n _c(\"vsa-heading\", [\n _c(\"span\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.$t(\"materio.Linked materials\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"vsa-content\", [\n _c(\"section\", { staticClass: \"linked-materials\" }, [\n _c(\n \"ul\",\n _vm._l(_vm.material.linked_materials, function(\n m\n ) {\n return _c(\n \"li\",\n { key: m.id },\n [\n _c(\"LinkedMaterialCard\", {\n attrs: { item: m }\n })\n ],\n 1\n )\n }),\n 0\n )\n ])\n ])\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"section\",\n {\n directives: [{ name: \"switcher\", rawName: \"v-switcher\" }],\n staticClass: \"col col-left images\"\n },\n _vm._l(_vm.material.images, function(img, index) {\n return _c(\"figure\", { key: img.url }, [\n _c(\"img\", {\n directives: [\n {\n name: \"lazy\",\n rawName: \"v-lazy\",\n value: index,\n expression: \"index\"\n }\n ],\n staticClass: \"lazy\",\n attrs: {\n \"data-src\": img.style_cardfull.url,\n title: img.title\n }\n }),\n _vm._v(\" \"),\n _c(\"img\", {\n staticClass: \"blank\",\n attrs: { src: _vm.blanksrc },\n on: {\n click: function($event) {\n _vm.lightbox_index = index\n }\n }\n })\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"CoolLightBox\", {\n attrs: {\n items: _vm.material.images,\n index: _vm.lightbox_index,\n srcName: \"url\",\n loop: true\n },\n on: {\n close: function($event) {\n _vm.lightbox_index = null\n }\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -3740,7 +3740,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"user-flags\" } }, [\n _c(\"h2\", { staticClass: \"mdi mdi-folder-outline\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"materio.My folders\")) +\n \" (\" +\n _vm._s(_vm.collsLength) +\n \")\"\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _vm._l(_vm.flagcolls, function(coll) {\n return _vm.flagcolls\n ? _c(\"li\", { key: coll.id }, [\n _c(\n \"h5\",\n {\n attrs: { flagcollid: coll.id },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onOpenFlagColl($event)\n }\n }\n },\n [\n _vm._v(\n _vm._s(coll.name) + \" (\" + _vm._s(coll.items.length) + \")\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"actions\" }, [\n _c(\"span\", {\n staticClass: \"delete-btn mdi\",\n class: _vm.flagDeletingClassObj,\n attrs: { flagcollid: coll.id },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onDeleteFlagColl($event)\n }\n }\n })\n ])\n ])\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm.collsLength < 15\n ? _c(\"li\", { staticClass: \"create-flag\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.new_folder_name,\n expression: \"new_folder_name\"\n }\n ],\n attrs: { placeholder: \"new folder\" },\n domProps: { value: _vm.new_folder_name },\n on: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n },\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.new_folder_name = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", {\n staticClass: \"add-btn mdi\",\n class: _vm.addFlagBtnClassObj,\n on: {\n click: function($event) {\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n }\n }\n })\n ])\n : _vm._e()\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"render\": () => /* binding */ render,\n/* harmony export */ \"staticRenderFns\": () => /* binding */ staticRenderFns\n/* harmony export */ });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"user-flags\" } },\n [\n _c(\"h2\", { staticClass: \"mdi mdi-folder-outline\" }, [\n _vm._v(\n _vm._s(_vm.$t(\"materio.My folders\")) +\n \" (\" +\n _vm._s(_vm.collsLength) +\n \")\"\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _vm._l(_vm.flagcolls, function(coll) {\n return _vm.flagcolls\n ? _c(\"li\", { key: coll.id }, [\n _c(\n \"h5\",\n {\n attrs: { flagcollid: coll.id },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onOpenFlagColl($event)\n }\n }\n },\n [\n _vm._v(\n _vm._s(coll.name) +\n \" (\" +\n _vm._s(coll.items.length) +\n \")\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"actions\" }, [\n _c(\"span\", {\n staticClass: \"delete-btn mdi\",\n class: _vm.flagDeletingClassObj,\n attrs: { flagcollid: coll.id },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onDeleteFlagColl($event)\n }\n }\n })\n ])\n ])\n : _vm._e()\n }),\n _vm._v(\" \"),\n _vm.collsLength < 15\n ? _c(\"li\", { staticClass: \"create-flag\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.new_folder_name,\n expression: \"new_folder_name\"\n }\n ],\n attrs: { placeholder: \"new folder\" },\n domProps: { value: _vm.new_folder_name },\n on: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n },\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.new_folder_name = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", {\n staticClass: \"add-btn mdi\",\n class: _vm.addFlagBtnClassObj,\n on: {\n click: function($event) {\n $event.preventDefault()\n $event.stopPropagation()\n return _vm.onCreateFlagColl($event)\n }\n }\n })\n ])\n : _vm._e()\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"v-dialog\")\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -17470,7 +17470,7 @@ eval("module.exports = JSON.parse(\"{\\\"default\\\":{\\\"Closing in !seconds se \***************************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: __webpack_require__ */ -eval("\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.js\"));\n\nvar _vueInfiniteLoading = _interopRequireDefault(__webpack_require__(/*! vue-infinite-loading */ \"./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js\"));\n\nvar _vueCoolLightbox = _interopRequireDefault(__webpack_require__(/*! vue-cool-lightbox */ \"./node_modules/vue-cool-lightbox/dist/vue-cool-lightbox.esm.js\"));\n\nvar _vueJsModal = _interopRequireDefault(__webpack_require__(/*! vue-js-modal */ \"./node_modules/vue-js-modal/dist/index.js\"));\n\nvar _store = _interopRequireDefault(__webpack_require__(/*! vuejs/store */ \"./web/themes/custom/materiotheme/vuejs/store/index.js\"));\n\nvar _route = _interopRequireDefault(__webpack_require__(/*! vuejs/route */ \"./web/themes/custom/materiotheme/vuejs/route/index.js\"));\n\nvar _i18n = __webpack_require__(/*! vuejs/i18n */ \"./web/themes/custom/materiotheme/vuejs/i18n/index.js\");\n\nvar _vueMeta = _interopRequireDefault(__webpack_require__(/*! vue-meta */ \"./node_modules/vue-meta/dist/vue-meta.esm.js\"));\n\nvar _UserBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/UserBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/UserBlock.vue\"));\n\nvar _MainContent = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/MainContent */ \"./web/themes/custom/materiotheme/vuejs/components/Content/MainContent.vue\"));\n\nvar _SearchBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/SearchBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/SearchBlock.vue\"));\n\nvar _LeftContent = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/LeftContent */ \"./web/themes/custom/materiotheme/vuejs/components/Content/LeftContent.vue\"));\n\nvar _HeaderMenu = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/HeaderMenu */ \"./web/themes/custom/materiotheme/vuejs/components/Content/HeaderMenu.vue\"));\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\n__webpack_require__(/*! vue-cool-lightbox/dist/vue-cool-lightbox.min.css */ \"./node_modules/vue-cool-lightbox/dist/vue-cool-lightbox.min.css\");\n\n__webpack_require__(/*! theme/assets/styles/main.scss */ \"./web/themes/custom/materiotheme/assets/styles/main.scss\");\n\n__webpack_require__(/*! theme/assets/styles/print.scss */ \"./web/themes/custom/materiotheme/assets/styles/print.scss\");\n\nvar _vueSimpleAccordion = _interopRequireDefault(__webpack_require__(/*! vue-simple-accordion */ \"./node_modules/vue-simple-accordion/dist/vue-simple-accordion.common.js\"));\n\n__webpack_require__(/*! vue-simple-accordion/dist/vue-simple-accordion.css */ \"./node_modules/vue-simple-accordion/dist/vue-simple-accordion.css\");\n\nvar _maAxios = __webpack_require__(/*! vuejs/api/ma-axios */ \"./web/themes/custom/materiotheme/vuejs/api/ma-axios.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n_vue.default.use(_vueInfiniteLoading.default, {\n props: {\n spinner: 'spiral' // slots.noMore: ''\n\n } // system: {\n // throttleLimit: 50,\n // /* other settings need to configure */\n // }\n\n}); // import vueVimeoPlayer from 'vue-vimeo-player'\n// Vue.use(vueVimeoPlayer)\n// import VueYouTubeEmbed from 'vue-youtube-embed'\n// Vue.use(VueYouTubeEmbed)\n\n\n_vue.default.use(_vueCoolLightbox.default);\n\n_vue.default.use(_vueJsModal.default);\n\n_vue.default.use(_vueMeta.default);\n\n_vue.default.use(_vueSimpleAccordion.default, {// ... Options go here\n});\n\n(function (Drupal, drupalSettings, drupalDecoupled) {\n var MaterioTheme = function MaterioTheme() {\n var _v_sitebranding_block, _v_user_block, _v_header_menu, _v_pagetitle_block, _v_search_block, _v_main_content, _v_left_content;\n\n var _is_front = drupalSettings.path.isFront;\n console.log('drupalSettings', drupalSettings); // let _I18n\n // ___ _ _\n // |_ _|_ _ (_) |_\n // | || ' \\| | _|\n // |___|_||_|_|\\__|\n\n function init() {\n console.log('MaterioTheme init()');\n initVues();\n }\n\n function checkNoVuePages() {\n // return drupalDecoupled.sys_path != '/cart'\n // && drupalDecoupled.sys_path.indexOf('checkout') != 1;\n if (drupalDecoupled.route_name.indexOf('commerce') == -1 && drupalDecoupled.route_name.indexOf('flagging_collection') == -1 && drupalDecoupled.route_name.indexOf('user') == -1) {\n return false;\n } else {\n return true;\n }\n }\n\n function initVues() {\n // only launch views if we are not in commerce pages\n if (!checkNoVuePages()) {\n initVi18n();\n initVStore();\n initVRouter();\n initVSiteBrandingBlock();\n initVPagetitleBlock();\n initVHeaderMenu();\n initVMainContent();\n initVSearchBlock();\n initVLeftContent();\n }\n\n initVUserBlock();\n }\n\n function initVi18n() {\n // i18n.locale = drupalDecoupled.lang_code\n // console.log('i18n.messages', i18n.messages)\n (0, _i18n.loadLanguageAsync)(drupalDecoupled.lang_code).then(function () {\n console.log('main.js language loaded');\n });\n }\n\n function initVStore() {\n _store.default.dispatch('Showrooms/getItems');\n }\n\n function initVRouter() {\n // we need this to update the title and body classes while using history nav\n _route.default.beforeEach(function (to, from, next) {\n var _document$querySelect, _document$querySelect2;\n\n // console.log('router beforeEach to ', to);\n // commit new title to store\n var title = null;\n\n switch (to.name) {\n case 'home':\n title = null;\n break;\n\n case 'article':\n title = false;\n break;\n\n default:\n title = to.name;\n }\n\n if (title !== false) {\n _store.default.commit('Common/setPagetitle', title);\n } // remove all path related body classes\n\n\n var body_classes = document.querySelector('body').classList;\n var classes_to_rm = [];\n\n for (var i = 0; i < body_classes.length; i++) {\n if (body_classes[i].startsWith('path-')) {\n classes_to_rm.push(body_classes[i]);\n }\n }\n\n (_document$querySelect = document.querySelector('body').classList).remove.apply(_document$querySelect, classes_to_rm); // add new path classes to body\n\n\n var classes = [];\n\n if (to.path == '/') {\n classes.push('path-home');\n } else {\n var path_parts = to.path.replace(/^\\//, '') // remove language relative prefix from path classes (fr, en, etc)\n .replace(/^\\D{2,3}\\//, '').split('/');\n\n for (var i = 0; i < path_parts.length; i++) {\n if (i == 0) {\n var c = 'path-' + path_parts[i];\n } else if (path_parts[i] !== '') {\n var c = classes[i - 1] + '-' + path_parts[i];\n }\n\n classes.push(c);\n }\n }\n\n (_document$querySelect2 = document.querySelector('body').classList).add.apply(_document$querySelect2, classes);\n\n updateLanguageLinksBlock(to.path); // trigger router\n\n next();\n });\n }\n\n function updateLanguageLinksBlock(path) {\n // update block language selection\n console.log(\"updateLanguageLinksBlock, path:\", path);\n var links = document.querySelectorAll('#block-languageswitcher a.language-link');\n var params = {\n path: path // XDEBUG_SESSION_START: true\n\n };\n\n _maAxios.MA.post(\"materio_decoupled/path_translation_links?\", params).then(function (_ref) {\n var data = _ref.data;\n console.log('Path translations links', data);\n\n if (data.error) {\n console.warn(\"error getting translation paths\", data.error);\n }\n\n links.forEach(function (link, i) {\n console.log(\"language link\", path, link);\n var hreflang = link.getAttribute('hreflang');\n link.setAttribute('href', data.links[hreflang].url);\n link.setAttribute('data-drupal-link-system-path', data.links[hreflang].sys_path);\n link.innerHTML = data.links[hreflang].title;\n });\n }).catch(function (error) {\n console.warn('Path translations links', error);\n });\n }\n\n function initVSiteBrandingBlock() {\n _v_sitebranding_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n router: _route.default,\n el: '#block-sitebranding',\n methods: {\n onclick: function onclick(event) {\n // console.log(\"Clicked on logo event\", event);\n var href = event.target.getAttribute('href'); // console.log(\"Clicked on logo href\", href);\n\n this.$router.push(href); // replaced by router.beforeEach\n // this.$store.commit('Common/setPagetitle', null)\n }\n }\n });\n }\n\n function initVPagetitleBlock() {\n var $blk = document.querySelector('#block-pagetitle');\n var $h2 = $blk.querySelector('h2'); // get the loaded pagetitle\n\n var title = $h2.innerText; // if not front recorde the loaded pagetitle in store\n\n if (!_is_front) {\n _store.default.commit('Common/setPagetitle', title);\n } // replace in template the pagetitle by vue binding\n\n\n $h2.innerText = '{{ pagetitle }}'; // create the vue\n\n _v_pagetitle_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n router: _route.default,\n el: $blk,\n computed: _objectSpread({}, (0, _vuex.mapState)({\n pagetitle: function pagetitle(state) {\n return state.Common.pagetitle;\n }\n }))\n });\n }\n\n function initVUserBlock() {\n var mount_point = drupalSettings.user.uid !== 0 ? 'block-userblock' : 'block-userlogin';\n var props = {\n title: '',\n loginblock: ''\n };\n var $block;\n\n switch (mount_point) {\n case 'block-userlogin':\n $block = document.getElementById(mount_point);\n console.log('initVUserBlock login form html', $block);\n props.loginblock = $block.outerHTML.trim();\n break;\n\n case 'block-userblock':\n default:\n break;\n }\n\n _v_user_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n // computed: {\n // ...mapState({\n // isloggedin: state => state.User.isloggedin\n // })\n // },\n created: function created() {\n // if already loggedin, call store.user to get the user infos\n if (drupalSettings.user.uid !== 0) {\n this.$store.commit('User/setUid', drupalSettings.user.uid);\n this.$store.dispatch('User/getUser');\n }\n },\n render: function render(h) {\n return h(_UserBlock.default, {\n props: props\n });\n }\n }).$mount('#' + mount_point); // console.log('initVUserBlock', _v_user_block);\n }\n\n function initVHeaderMenu() {\n // console.log('initVHeaderMenu');\n var id = 'block-header';\n var $html_obj = document.querySelector('#' + id); // console.log('main-content', $main_content);\n\n var html = $html_obj.outerHTML;\n _v_header_menu = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n router: _route.default,\n render: function render(h) {\n return h(_HeaderMenu.default, {\n props: {\n id: id,\n dom_html: html\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVMainContent() {\n var id = 'main-content';\n var $main_content = document.querySelector('#' + id); // console.log('main-content', $main_content);\n\n var main_html = $main_content.innerHTML;\n _v_main_content = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n metaInfo: {\n // if no subcomponents specify a metaInfo.title, this title will be used\n title: \"materiO'\",\n // all titles will be injected into this template\n titleTemplate: \"%s | materiO'\"\n },\n render: function render(h) {\n return h(_MainContent.default, {\n props: {\n id: id,\n html: main_html,\n isfront: drupalSettings.path.isFront\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVSearchBlock() {\n // console.log('initVSearchBlock');\n var id = 'block-materiosapisearchblock';\n var $search_block = document.getElementById(id);\n var formhtml = null;\n\n if ($search_block) {\n // get the search form html to pass it as template to the vue\n // we gain display speed vs async downloaded data\n formhtml = $search_block.innerHTML;\n } else {\n // else create the empty block to fill it later with async data\n $search_block = document.createElement('div');\n $search_block.setAttribute('id', id); // TODO: get region by REST\n\n var $region = document.getElementById('header-bottom');\n $region.appendChild($search_block);\n } // in any case create the vue\n\n\n _v_search_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n render: function render(h) {\n return h(_SearchBlock.default, {\n props: {\n blockid: id,\n formhtml: formhtml\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVLeftContent() {\n var id = 'content-left';\n var $leftContent = document.getElementById(id); // in any case create the vue\n\n _v_left_content = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n render: function render(h) {\n return h(_LeftContent.default, {\n props: {\n id: id\n }\n });\n }\n }).$mount('#' + id);\n }\n\n init();\n }; // end MaterioTheme()\n\n\n var materiotheme = new MaterioTheme();\n})(Drupal, drupalSettings, drupalDecoupled);\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/assets/scripts/main.js?"); +eval("\n\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.js\"));\n\nvar _vueInfiniteLoading = _interopRequireDefault(__webpack_require__(/*! vue-infinite-loading */ \"./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js\"));\n\nvar _vueCoolLightbox = _interopRequireDefault(__webpack_require__(/*! vue-cool-lightbox */ \"./node_modules/vue-cool-lightbox/dist/vue-cool-lightbox.esm.js\"));\n\nvar _vueJsModal = _interopRequireDefault(__webpack_require__(/*! vue-js-modal */ \"./node_modules/vue-js-modal/dist/index.js\"));\n\nvar _store = _interopRequireDefault(__webpack_require__(/*! vuejs/store */ \"./web/themes/custom/materiotheme/vuejs/store/index.js\"));\n\nvar _route = _interopRequireDefault(__webpack_require__(/*! vuejs/route */ \"./web/themes/custom/materiotheme/vuejs/route/index.js\"));\n\nvar _i18n = __webpack_require__(/*! vuejs/i18n */ \"./web/themes/custom/materiotheme/vuejs/i18n/index.js\");\n\nvar _vueMeta = _interopRequireDefault(__webpack_require__(/*! vue-meta */ \"./node_modules/vue-meta/dist/vue-meta.esm.js\"));\n\nvar _UserBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/UserBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/UserBlock.vue\"));\n\nvar _MainContent = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/MainContent */ \"./web/themes/custom/materiotheme/vuejs/components/Content/MainContent.vue\"));\n\nvar _SearchBlock = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Block/SearchBlock */ \"./web/themes/custom/materiotheme/vuejs/components/Block/SearchBlock.vue\"));\n\nvar _LeftContent = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/LeftContent */ \"./web/themes/custom/materiotheme/vuejs/components/Content/LeftContent.vue\"));\n\nvar _HeaderMenu = _interopRequireDefault(__webpack_require__(/*! vuejs/components/Content/HeaderMenu */ \"./web/themes/custom/materiotheme/vuejs/components/Content/HeaderMenu.vue\"));\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.common.js\");\n\n__webpack_require__(/*! vue-cool-lightbox/dist/vue-cool-lightbox.min.css */ \"./node_modules/vue-cool-lightbox/dist/vue-cool-lightbox.min.css\");\n\n__webpack_require__(/*! theme/assets/styles/main.scss */ \"./web/themes/custom/materiotheme/assets/styles/main.scss\");\n\n__webpack_require__(/*! theme/assets/styles/print.scss */ \"./web/themes/custom/materiotheme/assets/styles/print.scss\");\n\nvar _vueSimpleAccordion = _interopRequireDefault(__webpack_require__(/*! vue-simple-accordion */ \"./node_modules/vue-simple-accordion/dist/vue-simple-accordion.common.js\"));\n\n__webpack_require__(/*! vue-simple-accordion/dist/vue-simple-accordion.css */ \"./node_modules/vue-simple-accordion/dist/vue-simple-accordion.css\");\n\nvar _maAxios = __webpack_require__(/*! vuejs/api/ma-axios */ \"./web/themes/custom/materiotheme/vuejs/api/ma-axios.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n_vue.default.use(_vueInfiniteLoading.default, {\n props: {\n spinner: 'spiral' // slots.noMore: ''\n\n } // system: {\n // throttleLimit: 50,\n // /* other settings need to configure */\n // }\n\n}); // import vueVimeoPlayer from 'vue-vimeo-player'\n// Vue.use(vueVimeoPlayer)\n// import VueYouTubeEmbed from 'vue-youtube-embed'\n// Vue.use(VueYouTubeEmbed)\n\n\n_vue.default.use(_vueCoolLightbox.default);\n\n_vue.default.use(_vueJsModal.default, {\n dialog: true\n});\n\n_vue.default.use(_vueMeta.default);\n\n_vue.default.use(_vueSimpleAccordion.default, {// ... Options go here\n});\n\n(function (Drupal, drupalSettings, drupalDecoupled) {\n var MaterioTheme = function MaterioTheme() {\n var _v_sitebranding_block, _v_user_block, _v_header_menu, _v_pagetitle_block, _v_search_block, _v_main_content, _v_left_content;\n\n var _is_front = drupalSettings.path.isFront;\n console.log('drupalSettings', drupalSettings); // let _I18n\n // ___ _ _\n // |_ _|_ _ (_) |_\n // | || ' \\| | _|\n // |___|_||_|_|\\__|\n\n function init() {\n console.log('MaterioTheme init()');\n initVues();\n }\n\n function checkNoVuePages() {\n // return drupalDecoupled.sys_path != '/cart'\n // && drupalDecoupled.sys_path.indexOf('checkout') != 1;\n if (drupalDecoupled.route_name.indexOf('commerce') == -1 && drupalDecoupled.route_name.indexOf('flagging_collection') == -1 && drupalDecoupled.route_name.indexOf('user') == -1) {\n return false;\n } else {\n return true;\n }\n }\n\n function initVues() {\n // only launch views if we are not in commerce pages\n if (!checkNoVuePages()) {\n initVi18n();\n initVStore();\n initVRouter();\n initVSiteBrandingBlock();\n initVPagetitleBlock();\n initVHeaderMenu();\n initVMainContent();\n initVSearchBlock();\n initVLeftContent();\n }\n\n initVUserBlock();\n }\n\n function initVi18n() {\n // i18n.locale = drupalDecoupled.lang_code\n // console.log('i18n.messages', i18n.messages)\n (0, _i18n.loadLanguageAsync)(drupalDecoupled.lang_code).then(function () {\n console.log('main.js language loaded');\n });\n }\n\n function initVStore() {\n _store.default.dispatch('Showrooms/getItems');\n }\n\n function initVRouter() {\n // we need this to update the title and body classes while using history nav\n _route.default.beforeEach(function (to, from, next) {\n var _document$querySelect, _document$querySelect2;\n\n // console.log('router beforeEach to ', to);\n // commit new title to store\n var title = null;\n\n switch (to.name) {\n case 'home':\n title = null;\n break;\n\n case 'article':\n title = false;\n break;\n\n default:\n title = to.name;\n }\n\n if (title !== false) {\n _store.default.commit('Common/setPagetitle', title);\n } // remove all path related body classes\n\n\n var body_classes = document.querySelector('body').classList;\n var classes_to_rm = [];\n\n for (var i = 0; i < body_classes.length; i++) {\n if (body_classes[i].startsWith('path-')) {\n classes_to_rm.push(body_classes[i]);\n }\n }\n\n (_document$querySelect = document.querySelector('body').classList).remove.apply(_document$querySelect, classes_to_rm); // add new path classes to body\n\n\n var classes = [];\n\n if (to.path == '/') {\n classes.push('path-home');\n } else {\n var path_parts = to.path.replace(/^\\//, '') // remove language relative prefix from path classes (fr, en, etc)\n .replace(/^\\D{2,3}\\//, '').split('/');\n\n for (var i = 0; i < path_parts.length; i++) {\n if (i == 0) {\n var c = 'path-' + path_parts[i];\n } else if (path_parts[i] !== '') {\n var c = classes[i - 1] + '-' + path_parts[i];\n }\n\n classes.push(c);\n }\n }\n\n (_document$querySelect2 = document.querySelector('body').classList).add.apply(_document$querySelect2, classes);\n\n updateLanguageLinksBlock(to.path); // trigger router\n\n next();\n });\n }\n\n function updateLanguageLinksBlock(path) {\n // update block language selection\n console.log(\"updateLanguageLinksBlock, path:\", path);\n var links = document.querySelectorAll('#block-languageswitcher a.language-link');\n var params = {\n path: path // XDEBUG_SESSION_START: true\n\n };\n\n _maAxios.MA.post(\"materio_decoupled/path_translation_links?\", params).then(function (_ref) {\n var data = _ref.data;\n console.log('Path translations links', data);\n\n if (data.error) {\n console.warn(\"error getting translation paths\", data.error);\n }\n\n links.forEach(function (link, i) {\n console.log(\"language link\", path, link);\n var hreflang = link.getAttribute('hreflang');\n link.setAttribute('href', data.links[hreflang].url);\n link.setAttribute('data-drupal-link-system-path', data.links[hreflang].sys_path);\n link.innerHTML = data.links[hreflang].title;\n });\n }).catch(function (error) {\n console.warn('Path translations links', error);\n });\n }\n\n function initVSiteBrandingBlock() {\n _v_sitebranding_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n router: _route.default,\n el: '#block-sitebranding',\n methods: {\n onclick: function onclick(event) {\n // console.log(\"Clicked on logo event\", event);\n var href = event.target.getAttribute('href'); // console.log(\"Clicked on logo href\", href);\n\n this.$router.push(href); // replaced by router.beforeEach\n // this.$store.commit('Common/setPagetitle', null)\n }\n }\n });\n }\n\n function initVPagetitleBlock() {\n var $blk = document.querySelector('#block-pagetitle');\n var $h2 = $blk.querySelector('h2'); // get the loaded pagetitle\n\n var title = $h2.innerText; // if not front recorde the loaded pagetitle in store\n\n if (!_is_front) {\n _store.default.commit('Common/setPagetitle', title);\n } // replace in template the pagetitle by vue binding\n\n\n $h2.innerText = '{{ pagetitle }}'; // create the vue\n\n _v_pagetitle_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n router: _route.default,\n el: $blk,\n computed: _objectSpread({}, (0, _vuex.mapState)({\n pagetitle: function pagetitle(state) {\n return state.Common.pagetitle;\n }\n }))\n });\n }\n\n function initVUserBlock() {\n var mount_point = drupalSettings.user.uid !== 0 ? 'block-userblock' : 'block-userlogin';\n var props = {\n title: '',\n loginblock: ''\n };\n var $block;\n\n switch (mount_point) {\n case 'block-userlogin':\n $block = document.getElementById(mount_point);\n console.log('initVUserBlock login form html', $block);\n props.loginblock = $block.outerHTML.trim();\n break;\n\n case 'block-userblock':\n default:\n break;\n }\n\n _v_user_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n // computed: {\n // ...mapState({\n // isloggedin: state => state.User.isloggedin\n // })\n // },\n created: function created() {\n // if already loggedin, call store.user to get the user infos\n if (drupalSettings.user.uid !== 0) {\n this.$store.commit('User/setUid', drupalSettings.user.uid);\n this.$store.dispatch('User/getUser');\n }\n },\n render: function render(h) {\n return h(_UserBlock.default, {\n props: props\n });\n }\n }).$mount('#' + mount_point); // console.log('initVUserBlock', _v_user_block);\n }\n\n function initVHeaderMenu() {\n // console.log('initVHeaderMenu');\n var id = 'block-header';\n var $html_obj = document.querySelector('#' + id); // console.log('main-content', $main_content);\n\n var html = $html_obj.outerHTML;\n _v_header_menu = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n router: _route.default,\n render: function render(h) {\n return h(_HeaderMenu.default, {\n props: {\n id: id,\n dom_html: html\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVMainContent() {\n var id = 'main-content';\n var $main_content = document.querySelector('#' + id); // console.log('main-content', $main_content);\n\n var main_html = $main_content.innerHTML;\n _v_main_content = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n metaInfo: {\n // if no subcomponents specify a metaInfo.title, this title will be used\n title: \"materiO'\",\n // all titles will be injected into this template\n titleTemplate: \"%s | materiO'\"\n },\n render: function render(h) {\n return h(_MainContent.default, {\n props: {\n id: id,\n html: main_html,\n isfront: drupalSettings.path.isFront\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVSearchBlock() {\n // console.log('initVSearchBlock');\n var id = 'block-materiosapisearchblock';\n var $search_block = document.getElementById(id);\n var formhtml = null;\n\n if ($search_block) {\n // get the search form html to pass it as template to the vue\n // we gain display speed vs async downloaded data\n formhtml = $search_block.innerHTML;\n } else {\n // else create the empty block to fill it later with async data\n $search_block = document.createElement('div');\n $search_block.setAttribute('id', id); // TODO: get region by REST\n\n var $region = document.getElementById('header-bottom');\n $region.appendChild($search_block);\n } // in any case create the vue\n\n\n _v_search_block = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n render: function render(h) {\n return h(_SearchBlock.default, {\n props: {\n blockid: id,\n formhtml: formhtml\n }\n });\n }\n }).$mount('#' + id);\n }\n\n function initVLeftContent() {\n var id = 'content-left';\n var $leftContent = document.getElementById(id); // in any case create the vue\n\n _v_left_content = new _vue.default({\n store: _store.default,\n i18n: _i18n.i18n,\n render: function render(h) {\n return h(_LeftContent.default, {\n props: {\n id: id\n }\n });\n }\n }).$mount('#' + id);\n }\n\n init();\n }; // end MaterioTheme()\n\n\n var materiotheme = new MaterioTheme();\n})(Drupal, drupalSettings, drupalDecoupled);\n\n//# sourceURL=webpack://materio.com/./web/themes/custom/materiotheme/assets/scripts/main.js?"); })(); /******/ })() diff --git a/web/themes/custom/materiotheme/assets/scripts/main.js b/web/themes/custom/materiotheme/assets/scripts/main.js index 1a03f85..9de86f2 100644 --- a/web/themes/custom/materiotheme/assets/scripts/main.js +++ b/web/themes/custom/materiotheme/assets/scripts/main.js @@ -21,7 +21,7 @@ import CoolLightBox from 'vue-cool-lightbox' Vue.use(CoolLightBox) import VModal from 'vue-js-modal' -Vue.use(VModal) +Vue.use(VModal, { dialog: true }) import store from 'vuejs/store' import router from 'vuejs/route' diff --git a/web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue b/web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue index 5f7fcfd..eee8b18 100644 --- a/web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue +++ b/web/themes/custom/materiotheme/vuejs/components/Content/ModalCard.vue @@ -170,7 +170,7 @@ --> - + {{ $t("materio.Linked materials") }} diff --git a/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue b/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue index 8fc6584..57d4efb 100644 --- a/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue +++ b/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue @@ -31,6 +31,7 @@ /> + @@ -88,11 +89,39 @@ export default { const flagcollid = e.target.getAttribute('flagcollid'); console.log("UserFlags onDeleteFlagColl", flagcollid); this.is_deleting_folder = flagcollid; - this.deleteFlagColl(flagcollid) - .then(() => { - // console.log("onDeleteFlagColl then", data); - this.is_deleting_folder = false; - }) + // TODO: confirm suppression + this.confirmDeleteFlagColl(flagcollid) + }, + confirmDeleteFlagColl (flagcollid){ + console.log('confirmDeleteFlagCOll', flagcollid, this.flagcolls); + // const index = this.flagcolls.findIndex(i => i.id === flagcollid) + let coll = this.flagcolls[flagcollid] + // console.log("coll to delete", coll); + this.$modal.show('dialog', { + title: "Folder delete", + text: `Please confirm the definitive deletion of ${coll.name} ?`, + buttons: [ + { + title: 'Cancel', + default: true, + handler: () => { + this.$modal.hide('dialog') + } + }, + { + title: 'Delete', + handler: () => { + console.log('deletion confirmed', flagcollid); + this.deleteFlagColl(flagcollid) + .then(() => { + // console.log("onDeleteFlagColl then", data); + this.is_deleting_folder = false; + this.$modal.hide('dialog') + }) + } + } + ] + }) }, onOpenFlagColl (e) { const flagcollid = e.target.getAttribute('flagcollid');