From 71a3f54cc1c3e208354c57f2ec0c676c5aad59c8 Mon Sep 17 00:00:00 2001 From: doishub Date: Fri, 13 Oct 2023 15:03:01 +0200 Subject: [PATCH] Product Installer ------------------------------------ - Fix dropzone when unmount the upload step - Jump to dashboard instead of product registration after successful product registration --- public/build/main.js | 8 ++++---- .../scripts/Installer/Steps/DashboardStep.ts | 2 +- public/scripts/Installer/Steps/ProcessStep.ts | 18 +++++++++--------- public/scripts/Installer/Steps/UploadStep.ts | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/public/build/main.js b/public/build/main.js index b86fdd6..ffd1e91 100644 --- a/public/build/main.js +++ b/public/build/main.js @@ -1266,7 +1266,7 @@ eval("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst ProductComponent_1 = __importDefault(__webpack_require__(/*! ../Components/ProductComponent */ \"./public/scripts/Installer/Components/ProductComponent.ts\"));\r\nconst DropMenuComponent_1 = __importDefault(__webpack_require__(/*! ../Components/DropMenuComponent */ \"./public/scripts/Installer/Components/DropMenuComponent.ts\"));\r\nconst PopupComponent_1 = __importStar(__webpack_require__(/*! ../Components/PopupComponent */ \"./public/scripts/Installer/Components/PopupComponent.ts\"));\r\nconst Language_1 = __webpack_require__(/*! ../Language */ \"./public/scripts/Installer/Language/index.js\");\r\nconst network_1 = __webpack_require__(/*! ../../Utils/network */ \"./public/scripts/Utils/network.js\");\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\nconst SetupStep_1 = __importDefault(__webpack_require__(/*! ./SetupStep */ \"./public/scripts/Installer/Steps/SetupStep.ts\"));\r\nconst Installer_1 = __importDefault(__webpack_require__(/*! ../Installer */ \"./public/scripts/Installer/Installer.ts\"));\r\n/**\r\n * An overview of registered products.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass DashboardStep extends StepComponent_1.default {\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n
\r\n

${(0, Language_1.i18n)('dashboard.headline')}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n `;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n mount() {\r\n // Lock step and protect for deletion\r\n this.locked = true;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n // Reset / remove steps from modal\r\n this.modal.removeSteps();\r\n // Skip dashboard when we have active redirects\r\n if (State_1.default.get('isRedirect')) {\r\n this.modal.next();\r\n return;\r\n }\r\n // Show loader\r\n this.modal.loader(true, (0, Language_1.i18n)('dashboard.loading'));\r\n // Create settings menu\r\n const settings = new DropMenuComponent_1.default([\r\n {\r\n label: (0, Language_1.i18n)('dashboard.toggle.fullscreen'),\r\n value: () => {\r\n Installer_1.default.modal.template.classList.toggle('pi--fs');\r\n }\r\n },\r\n {\r\n separator: true,\r\n label: (0, Language_1.i18n)('dashboard.toggle.darkLight'),\r\n value: () => {\r\n Installer_1.default.setColorScheme(Installer_1.default.modal.template.dataset.colorScheme === 'dark' ? 'light' : 'dark');\r\n }\r\n },\r\n ]);\r\n settings.appendTo(this.element('.head-actions'));\r\n settings.addClass('gear');\r\n // Check license\r\n (0, network_1.call)('/contao/api/license_connector/products').then((response) => {\r\n // Hide loader\r\n this.modal.loader(false);\r\n // Check errors\r\n if (response.error) {\r\n super.error(response);\r\n return;\r\n }\r\n this.createProductList(response);\r\n }).catch((e) => super.error(e));\r\n }\r\n /**\r\n * Create product list or empty message\r\n *\r\n * @param response\r\n * @protected\r\n */\r\n createProductList(response) {\r\n const container = this.element('.products');\r\n let hasProducts = false;\r\n for (const connector of response) {\r\n if (connector === null || connector === void 0 ? void 0 : connector.error) {\r\n super.error(connector);\r\n continue;\r\n }\r\n if (!(connector === null || connector === void 0 ? void 0 : connector.products.length)) {\r\n continue;\r\n }\r\n hasProducts = true;\r\n // Collect products to sort them by removed flag\r\n const products = [];\r\n for (const productConfig of connector.products) {\r\n // Create product\r\n const product = new ProductComponent_1.default(productConfig);\r\n // Create menu options\r\n const menuOptions = [];\r\n // Option: Setup product\r\n if (!product.isRemoved()) {\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.setup'),\r\n value: () => {\r\n // Create setup step\r\n const setupStep = new SetupStep_1.default(productConfig.hash);\r\n // Add setup step\r\n this.modal.addSteps(setupStep);\r\n // Goto setup\r\n this.modal.open(this.modal.getStepIndex(setupStep));\r\n },\r\n highlight: !product.get('setup')\r\n });\r\n }\r\n // Option: Product update option\r\n if (product.hasNewVersion() && !product.isRemoved()) {\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.update'),\r\n value: () => console.log('TEST 1'),\r\n highlight: true\r\n });\r\n }\r\n // Option: Product info\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.info'),\r\n value: () => {\r\n var _a;\r\n const popup = new PopupComponent_1.default({\r\n type: PopupComponent_1.PopupType.TABLE,\r\n appendTo: this.modal.insideContainer,\r\n title: (0, Language_1.i18n)('product.info'),\r\n content: {\r\n [(0, Language_1.i18n)('product.label.shop')]: connector.connector.title,\r\n [(0, Language_1.i18n)('product.label.title')]: productConfig.title,\r\n [(0, Language_1.i18n)('product.label.description')]: productConfig.description,\r\n [(0, Language_1.i18n)('product.label.version')]: productConfig.version,\r\n [(0, Language_1.i18n)('product.label.latestVersion')]: productConfig.latestVersion ? productConfig.latestVersion : '-',\r\n [(0, Language_1.i18n)('product.label.registered')]: productConfig.registered && !productConfig.remove ? (0, Language_1.i18n)('global.yes') : (0, Language_1.i18n)('global.no'),\r\n [(0, Language_1.i18n)('product.label.registeredDate')]: ((_a = productConfig === null || productConfig === void 0 ? void 0 : productConfig.license) === null || _a === void 0 ? void 0 : _a.registered) ? (new Date(productConfig.license.registered * 1000).toLocaleDateString()) : '-'\r\n },\r\n closeable: true\r\n });\r\n popup.show();\r\n }\r\n });\r\n // Option: Remove products from list\r\n if (product.isRemoved()) {\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.remove'),\r\n value: () => {\r\n // Show loader\r\n this.modal.loader(true, (0, Language_1.i18n)('product.loading.remove'));\r\n // Check license\r\n (0, network_1.call)('/contao/api/license_connector/lock/remove', {\r\n hash: product.get('hash')\r\n }).then(() => {\r\n // Hide loader\r\n this.modal.loader(false);\r\n // Remove product from list\r\n product.template.remove();\r\n }).catch((e) => super.error(e));\r\n }\r\n });\r\n }\r\n // Set product menu\r\n product.setMenu(new DropMenuComponent_1.default(menuOptions));\r\n // Push product to sort by removed-flag\r\n products.push({\r\n remove: product.get('remove'),\r\n product\r\n });\r\n }\r\n // Sort products\r\n products.sort((a, b) => b.remove - a.remove);\r\n // Render products\r\n for (const product of products) {\r\n product.product.appendTo(container);\r\n }\r\n }\r\n if (!hasProducts) {\r\n container.innerHTML = `
${(0, Language_1.i18n)('dashboard.noProducts')}
`;\r\n return;\r\n }\r\n }\r\n}\r\nexports[\"default\"] = DashboardStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/DashboardStep.ts?"); +eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst ProductComponent_1 = __importDefault(__webpack_require__(/*! ../Components/ProductComponent */ \"./public/scripts/Installer/Components/ProductComponent.ts\"));\r\nconst DropMenuComponent_1 = __importDefault(__webpack_require__(/*! ../Components/DropMenuComponent */ \"./public/scripts/Installer/Components/DropMenuComponent.ts\"));\r\nconst PopupComponent_1 = __importStar(__webpack_require__(/*! ../Components/PopupComponent */ \"./public/scripts/Installer/Components/PopupComponent.ts\"));\r\nconst Language_1 = __webpack_require__(/*! ../Language */ \"./public/scripts/Installer/Language/index.js\");\r\nconst network_1 = __webpack_require__(/*! ../../Utils/network */ \"./public/scripts/Utils/network.js\");\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\nconst SetupStep_1 = __importDefault(__webpack_require__(/*! ./SetupStep */ \"./public/scripts/Installer/Steps/SetupStep.ts\"));\r\nconst Installer_1 = __importDefault(__webpack_require__(/*! ../Installer */ \"./public/scripts/Installer/Installer.ts\"));\r\n/**\r\n * An overview of registered products.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass DashboardStep extends StepComponent_1.default {\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n
\r\n

${(0, Language_1.i18n)('dashboard.headline')}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n `;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n mount() {\r\n // Lock step and protect for deletion\r\n this.locked = true;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n // Reset / remove steps from modal\r\n this.modal.removeSteps();\r\n // Skip dashboard when we have active redirects\r\n if (State_1.default.get('isRedirect')) {\r\n this.modal.next();\r\n return;\r\n }\r\n // Show loader\r\n this.modal.loader(true, (0, Language_1.i18n)('dashboard.loading'));\r\n // Create settings menu\r\n const settings = new DropMenuComponent_1.default([\r\n {\r\n label: (0, Language_1.i18n)('dashboard.toggle.fullscreen'),\r\n value: () => {\r\n Installer_1.default.modal.template.classList.toggle('pi--fs');\r\n }\r\n },\r\n {\r\n separator: true,\r\n label: (0, Language_1.i18n)('dashboard.toggle.darkLight'),\r\n value: () => {\r\n Installer_1.default.setColorScheme(Installer_1.default.modal.template.dataset.colorScheme === 'dark' ? 'light' : 'dark');\r\n }\r\n },\r\n ]);\r\n settings.appendTo(this.element('.head-actions'));\r\n settings.addClass('gear');\r\n // Check license\r\n (0, network_1.call)('/contao/api/license_connector/products').then((response) => {\r\n // Hide loader\r\n this.modal.loader(false);\r\n // Check errors\r\n if (response.error) {\r\n super.error(response);\r\n return;\r\n }\r\n this.createProductList(response);\r\n }).catch((e) => super.error(e));\r\n }\r\n /**\r\n * Create product list or empty message\r\n *\r\n * @param response\r\n * @protected\r\n */\r\n createProductList(response) {\r\n const container = this.element('.products');\r\n let hasProducts = false;\r\n for (const connector of response) {\r\n if (connector === null || connector === void 0 ? void 0 : connector.error) {\r\n super.error(connector);\r\n continue;\r\n }\r\n if (!(connector === null || connector === void 0 ? void 0 : connector.products.length)) {\r\n continue;\r\n }\r\n hasProducts = true;\r\n // Collect products to sort them by removed flag\r\n const products = [];\r\n for (const productConfig of connector.products) {\r\n // Create product\r\n const product = new ProductComponent_1.default(productConfig);\r\n // Create menu options\r\n const menuOptions = [];\r\n // Option: Setup product\r\n if (!product.isRemoved()) {\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.setup'),\r\n value: () => {\r\n // Create setup step\r\n const setupStep = new SetupStep_1.default(productConfig.hash);\r\n // Add setup step\r\n this.modal.addSteps(setupStep);\r\n // Goto setup\r\n this.modal.open(this.modal.getStepIndex(setupStep));\r\n },\r\n highlight: !product.get('setup')\r\n });\r\n }\r\n // Option: Product update option\r\n if (product.hasNewVersion() && !product.isRemoved()) {\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.update'),\r\n value: () => console.log('Product updates are currently not supported, for an update you can do the product registration again.'),\r\n highlight: true\r\n });\r\n }\r\n // Option: Product info\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.info'),\r\n value: () => {\r\n var _a;\r\n const popup = new PopupComponent_1.default({\r\n type: PopupComponent_1.PopupType.TABLE,\r\n appendTo: this.modal.insideContainer,\r\n title: (0, Language_1.i18n)('product.info'),\r\n content: {\r\n [(0, Language_1.i18n)('product.label.shop')]: connector.connector.title,\r\n [(0, Language_1.i18n)('product.label.title')]: productConfig.title,\r\n [(0, Language_1.i18n)('product.label.description')]: productConfig.description,\r\n [(0, Language_1.i18n)('product.label.version')]: productConfig.version,\r\n [(0, Language_1.i18n)('product.label.latestVersion')]: productConfig.latestVersion ? productConfig.latestVersion : '-',\r\n [(0, Language_1.i18n)('product.label.registered')]: productConfig.registered && !productConfig.remove ? (0, Language_1.i18n)('global.yes') : (0, Language_1.i18n)('global.no'),\r\n [(0, Language_1.i18n)('product.label.registeredDate')]: ((_a = productConfig === null || productConfig === void 0 ? void 0 : productConfig.license) === null || _a === void 0 ? void 0 : _a.registered) ? (new Date(productConfig.license.registered * 1000).toLocaleDateString()) : '-'\r\n },\r\n closeable: true\r\n });\r\n popup.show();\r\n }\r\n });\r\n // Option: Remove products from list\r\n if (product.isRemoved()) {\r\n menuOptions.push({\r\n label: (0, Language_1.i18n)('product.remove'),\r\n value: () => {\r\n // Show loader\r\n this.modal.loader(true, (0, Language_1.i18n)('product.loading.remove'));\r\n // Check license\r\n (0, network_1.call)('/contao/api/license_connector/lock/remove', {\r\n hash: product.get('hash')\r\n }).then(() => {\r\n // Hide loader\r\n this.modal.loader(false);\r\n // Remove product from list\r\n product.template.remove();\r\n }).catch((e) => super.error(e));\r\n }\r\n });\r\n }\r\n // Set product menu\r\n product.setMenu(new DropMenuComponent_1.default(menuOptions));\r\n // Push product to sort by removed-flag\r\n products.push({\r\n remove: product.get('remove'),\r\n product\r\n });\r\n }\r\n // Sort products\r\n products.sort((a, b) => b.remove - a.remove);\r\n // Render products\r\n for (const product of products) {\r\n product.product.appendTo(container);\r\n }\r\n }\r\n if (!hasProducts) {\r\n container.innerHTML = `
${(0, Language_1.i18n)('dashboard.noProducts')}
`;\r\n return;\r\n }\r\n }\r\n}\r\nexports[\"default\"] = DashboardStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/DashboardStep.ts?"); /***/ }), @@ -1299,7 +1299,7 @@ eval("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -eval("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst Language_1 = __webpack_require__(/*! ../Language/ */ \"./public/scripts/Installer/Language/index.js\");\r\nconst StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst ProcessManager_1 = __importDefault(__webpack_require__(/*! ../Process/ProcessManager */ \"./public/scripts/Installer/Process/ProcessManager.ts\"));\r\nconst InstanceUtils_1 = __webpack_require__(/*! ../Utils/InstanceUtils */ \"./public/scripts/Installer/Utils/InstanceUtils.ts\");\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\n/**\r\n * Process step class.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass ProcessStep extends StepComponent_1.default {\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n

${(0, Language_1.i18n)('install.headline')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n `;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n // Get the container in which the processes should be appended\r\n const container = this.element('.process');\r\n const backButton = this.element('button.back');\r\n const startButton = this.element('button.start');\r\n const addButton = this.element('button.add');\r\n const closeButton = this.element('[data-close]');\r\n // Method for reset the step\r\n const resetProcess = () => {\r\n backButton.hidden = false;\r\n backButton.disabled = false;\r\n startButton.hidden = false;\r\n startButton.disabled = false;\r\n addButton.disabled = true;\r\n addButton.hidden = false;\r\n closeButton.disabled = true;\r\n closeButton.hidden = false;\r\n // Clear the entire state\r\n State_1.default.clear();\r\n this.manager.reset();\r\n };\r\n const finishProcess = () => {\r\n addButton.disabled = false;\r\n closeButton.disabled = false;\r\n closeButton.addEventListener('click', () => {\r\n // Reset all\r\n resetProcess();\r\n this.modal.hide();\r\n });\r\n addButton.addEventListener('click', () => {\r\n // Reset all\r\n resetProcess();\r\n this.modal.open(1);\r\n });\r\n };\r\n // Create process manager\r\n this.manager = new ProcessManager_1.default();\r\n for (const process of this.config.attributes.processes) {\r\n // Create instance\r\n const instance = (0, InstanceUtils_1.createInstance)(process.name, container, process);\r\n // Add processes\r\n this.manager.addProcess(instance);\r\n }\r\n // Register on finish method\r\n this.manager.onFinish(() => finishProcess());\r\n this.manager.onReject(() => finishProcess());\r\n // Start process manager\r\n startButton.addEventListener('click', () => {\r\n backButton.hidden = true;\r\n backButton.disabled = true;\r\n startButton.hidden = true;\r\n startButton.disabled = true;\r\n addButton.disabled = true;\r\n addButton.hidden = false;\r\n closeButton.disabled = true;\r\n closeButton.hidden = false;\r\n this.manager.start();\r\n });\r\n }\r\n}\r\nexports[\"default\"] = ProcessStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/ProcessStep.ts?"); +eval("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst Language_1 = __webpack_require__(/*! ../Language/ */ \"./public/scripts/Installer/Language/index.js\");\r\nconst StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst ProcessManager_1 = __importDefault(__webpack_require__(/*! ../Process/ProcessManager */ \"./public/scripts/Installer/Process/ProcessManager.ts\"));\r\nconst InstanceUtils_1 = __webpack_require__(/*! ../Utils/InstanceUtils */ \"./public/scripts/Installer/Utils/InstanceUtils.ts\");\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\n/**\r\n * Process step class.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass ProcessStep extends StepComponent_1.default {\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n

${(0, Language_1.i18n)('install.headline')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n `;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n // Get the container in which the processes should be appended\r\n const container = this.element('.process');\r\n const backButton = this.element('button.back');\r\n const startButton = this.element('button.start');\r\n const dashboardButton = this.element('button.dashboard');\r\n const closeButton = this.element('[data-close]');\r\n // Method for reset the step\r\n const resetProcess = () => {\r\n backButton.hidden = false;\r\n backButton.disabled = false;\r\n startButton.hidden = false;\r\n startButton.disabled = false;\r\n dashboardButton.disabled = true;\r\n dashboardButton.hidden = false;\r\n closeButton.disabled = true;\r\n closeButton.hidden = false;\r\n // Clear the entire state\r\n State_1.default.clear();\r\n this.manager.reset();\r\n };\r\n const finishProcess = () => {\r\n dashboardButton.disabled = false;\r\n closeButton.disabled = false;\r\n closeButton.addEventListener('click', () => {\r\n // Reset all\r\n resetProcess();\r\n this.modal.hide();\r\n });\r\n dashboardButton.addEventListener('click', () => {\r\n // Reset all\r\n resetProcess();\r\n this.modal.open(this.modal.getStepIndex('DashboardStep'));\r\n });\r\n };\r\n // Create process manager\r\n this.manager = new ProcessManager_1.default();\r\n for (const process of this.config.attributes.processes) {\r\n // Create instance\r\n const instance = (0, InstanceUtils_1.createInstance)(process.name, container, process);\r\n // Add processes\r\n this.manager.addProcess(instance);\r\n }\r\n // Register on finish method\r\n this.manager.onFinish(() => finishProcess());\r\n this.manager.onReject(() => finishProcess());\r\n // Start process manager\r\n startButton.addEventListener('click', () => {\r\n backButton.hidden = true;\r\n backButton.disabled = true;\r\n startButton.hidden = true;\r\n startButton.disabled = true;\r\n dashboardButton.disabled = true;\r\n dashboardButton.hidden = false;\r\n closeButton.disabled = true;\r\n closeButton.hidden = false;\r\n this.manager.start();\r\n });\r\n }\r\n}\r\nexports[\"default\"] = ProcessStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/ProcessStep.ts?"); /***/ }), @@ -1343,7 +1343,7 @@ eval("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; -eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\nconst Language_1 = __webpack_require__(/*! ../Language */ \"./public/scripts/Installer/Language/index.js\");\r\nconst StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst dropzone_1 = __webpack_require__(/*! dropzone */ \"./node_modules/dropzone/dist/dropzone.mjs\");\r\nconst NotificationComponent_1 = __importStar(__webpack_require__(/*! ../Components/NotificationComponent */ \"./public/scripts/Installer/Components/NotificationComponent.ts\"));\r\n/**\r\n * Upload step class.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass UploadStep extends StepComponent_1.default {\r\n constructor() {\r\n super(...arguments);\r\n /**\r\n * Dropzone.\r\n *\r\n * @private\r\n */\r\n this.dropzone = null;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n

${this.getAttribute('title', (0, Language_1.i18n)('upload.headline'))}

\r\n

${this.getAttribute('description', (0, Language_1.i18n)('upload.description'))}

\r\n
\r\n
\r\n \r\n
\r\n `;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n const backButton = this.element('[data-prev]');\r\n this.dropzone = new dropzone_1.Dropzone(\".file-upload\", {\r\n url: \"/api/upload/product/upload\",\r\n maxFiles: 1,\r\n disablePreviews: true,\r\n acceptedFiles: '.content',\r\n addedfile: () => {\r\n backButton.disabled = true;\r\n this.modal.loader(true, (0, Language_1.i18n)('upload.loading'));\r\n },\r\n success: (file, response) => {\r\n var _a;\r\n // Check errors\r\n if (response.error) {\r\n super.error(response);\r\n return;\r\n }\r\n // Get config\r\n let config = (_a = State_1.default.get('config')) !== null && _a !== void 0 ? _a : {};\r\n // Overwrite products\r\n config['products'] = response.products;\r\n config['installable'] = response.installable;\r\n // Save config\r\n State_1.default.set('config', config);\r\n // Hide loader and show next step\r\n this.modal.loader(false);\r\n this.modal.next();\r\n },\r\n error: (file, message) => {\r\n (new NotificationComponent_1.default((0, Language_1.i18n)('error.default'), message, NotificationComponent_1.NotificationTypes.ERROR, true))\r\n .appendTo(this.modal.notificationContainer);\r\n backButton.disabled = false;\r\n this.modal.loader(false);\r\n }\r\n });\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n unmount() {\r\n this.dropzone.destroy();\r\n }\r\n}\r\nexports[\"default\"] = UploadStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/UploadStep.ts?"); +eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\nconst Language_1 = __webpack_require__(/*! ../Language */ \"./public/scripts/Installer/Language/index.js\");\r\nconst StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst dropzone_1 = __webpack_require__(/*! dropzone */ \"./node_modules/dropzone/dist/dropzone.mjs\");\r\nconst NotificationComponent_1 = __importStar(__webpack_require__(/*! ../Components/NotificationComponent */ \"./public/scripts/Installer/Components/NotificationComponent.ts\"));\r\n/**\r\n * Upload step class.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass UploadStep extends StepComponent_1.default {\r\n constructor() {\r\n super(...arguments);\r\n /**\r\n * Dropzone.\r\n *\r\n * @private\r\n */\r\n this.dropzone = null;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n

${this.getAttribute('title', (0, Language_1.i18n)('upload.headline'))}

\r\n

${this.getAttribute('description', (0, Language_1.i18n)('upload.description'))}

\r\n
\r\n
\r\n \r\n
\r\n `;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n const backButton = this.element('[data-prev]');\r\n this.dropzone = new dropzone_1.Dropzone(\".file-upload\", {\r\n url: \"/api/upload/product/upload\",\r\n maxFiles: 1,\r\n disablePreviews: true,\r\n acceptedFiles: '.content',\r\n addedfile: () => {\r\n backButton.disabled = true;\r\n this.modal.loader(true, (0, Language_1.i18n)('upload.loading'));\r\n },\r\n success: (file, response) => {\r\n var _a;\r\n // Check errors\r\n if (response.error) {\r\n super.error(response);\r\n return;\r\n }\r\n // Get config\r\n let config = (_a = State_1.default.get('config')) !== null && _a !== void 0 ? _a : {};\r\n // Overwrite products\r\n config['products'] = response.products;\r\n config['installable'] = response.installable;\r\n // Save config\r\n State_1.default.set('config', config);\r\n // Hide loader and show next step\r\n this.modal.loader(false);\r\n this.modal.next();\r\n },\r\n error: (file, message) => {\r\n (new NotificationComponent_1.default((0, Language_1.i18n)('error.default'), message, NotificationComponent_1.NotificationTypes.ERROR, true))\r\n .appendTo(this.modal.notificationContainer);\r\n backButton.disabled = false;\r\n this.modal.loader(false);\r\n }\r\n });\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n unmount() {\r\n var _a;\r\n (_a = this.dropzone) === null || _a === void 0 ? void 0 : _a.destroy();\r\n }\r\n}\r\nexports[\"default\"] = UploadStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/UploadStep.ts?"); /***/ }), @@ -1375,7 +1375,7 @@ eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create \*************************************************/ /***/ ((module) => { -eval("module.exports = {\r\n // Error\r\n \"error.unknown\": \"Oops, die Abfrage konnte nicht durchgeführt werden. Bitte versuchen Sie es erneut!\",\r\n \"error.default\": \"Ein Fehler ist aufgetreten!\",\r\n \"error.session.lost\": \"Ihre Sitzung ist abgelaufen, bitte loggen Sie sich erneut ein!\",\r\n\r\n // Warnings\r\n \"warning.cancel.setup\": \"Sie sind dabei, die Einrichtung abzubrechen, wollen Sie die Seite wirklich verlassen?\",\r\n\r\n // Global\r\n \"actions.close\": \"Schließen\",\r\n \"actions.back\": \"Zurück\",\r\n \"actions.next\": \"Weiter\",\r\n \"actions.start\": \"Starten\",\r\n \"actions.products\": \"Produktübersicht\",\r\n \"actions.setup\": \"Schnelle Einrichtung starten\",\r\n \"actions.setup.expert\": 'Im Expertenmodus starten BETA',\r\n\r\n \"actions.console.toggle\": 'Konsole öffnen',\r\n \"actions.database.skip\": 'Überspringen und fortfahren',\r\n \"actions.database.migrate\": 'Datenbank migrieren',\r\n\r\n \"type.product\": \"Produkt\",\r\n \"type.package\": \"Produktpaket\",\r\n\r\n \"global.yes\": \"Ja\",\r\n \"global.no\": \"Nein\",\r\n\r\n // Product\r\n \"product.badge.registered\": \"Registriert\",\r\n \"product.badge.removed\": \"Entfernt\",\r\n \"product.setup\": \"Produkt einrichten\",\r\n \"product.update\": \"Produkt aktualisieren\",\r\n \"product.info\": \"Produktinformation\",\r\n \"product.remove\": \"Aus der Liste entfernen\",\r\n \"product.no_version\": \"Das Produkt steht leider nicht für Ihre Contao-Version zur Verfügung. Bitte aktualisieren Sie Contao.\",\r\n\r\n \"product.loading.remove\": \"Das Produkt wird entfernt\",\r\n\r\n \"product.label.title\": \"Titel\",\r\n \"product.label.description\": \"Beschreibung\",\r\n \"product.label.version\": \"Aktuelle Version\",\r\n \"product.label.latestVersion\": \"Neuste Version\",\r\n \"product.label.registered\": \"Produkt ist registriert\",\r\n \"product.label.registeredDate\": \"Registriert am\",\r\n \"product.label.shop\": \"Erworben bei\",\r\n\r\n // Dashboard step\r\n \"dashboard.headline\": \"Produktübersicht\",\r\n \"dashboard.noProducts\": \"Sie haben noch keine Produkte für dieses Projekt registriert.\",\r\n \"dashboard.actions.register\": \"Produkt registrieren\",\r\n \"dashboard.loading\": \"Produkte werden abgerufen\",\r\n \"dashboard.toggle.darkLight\": \"Hell / Dunkel Modus\",\r\n \"dashboard.toggle.fullscreen\": \"Vollbild\",\r\n\r\n // Upload step\r\n \"upload.headline\": \"Produkt hochladen\",\r\n \"upload.description\": \"Bitte laden Sie ein Produkt hoch. Entweder Sie ziehen die Produktdatei (.content) in den gestrichelten Bereich oder klicken auf diesen um den Dateimanager aufzurufen.\",\r\n \"upload.loading\": \"Produkt wird hochgeladen\",\r\n\r\n // License Connector step\r\n \"license_connector.headline\": \"Schittstelle wählen\",\r\n \"license_connector.load.connector\": \"Schnittstellen werden abgerufen\",\r\n \"license_connector.load.steps\": \"Masken werden geladen\",\r\n \"license_connector.load.redirect\": \"Einen kleinen Moment noch, Sie werden gleich weitergeleitet\",\r\n\r\n // Contao Manager\r\n \"contao_manager.headline\": \"Contao Manager\",\r\n \"contao_manager.description\": \"Damit der Product Installer die erforderlichen Abhängigkeiten installieren kann, wird der Zugriff auf den Contao Manager benötigt. Bitte klicken Sie auf \\\"Autorisieren\\\" und folgen Sie den weiteren Schritten im Contao Manager. Sobald die Autorisierung abgeschlossen ist, werden Sie zum Installationsprozess zurückgeleitet.\",\r\n \"contao_manager.description.notInstalled\": \"Damit der Product Installer die erforderlichen Abhängigkeiten installieren kann, benötigt dieser Zugriff auf den Contao Manager. Um fortzufahren installieren Sie bitte den Contao Manager und starten Sie den Installationsprozess erneut.\",\r\n \"contao_manager.description.success\": \"Der Zugriff auf den Contao Manager wurde erfolgreich autorisiert. Sie können nun mit dem Registrierungsprozess fortfahren.\",\r\n \"contao_manager.authorize\": \"Autorisieren\",\r\n \"contao_manager.open_manager\": \"Contao Manager öffnen\",\r\n \"contao_manager.install.label\": \"Abhängigkeiten manuell installieren\",\r\n \"contao_manager.install.button\": \"Manuelle Installation\",\r\n \"contao_manager.install.description\": \"Ihre composer.json Datei wurde für die manuelle Installation vorbereitet. Bitte stellen Sie sicher, dass Sie vor dem nächsten Schritt folgende Abhängigkeiten installiert haben.\",\r\n \"contao_manager.dependencies.headline\": \"Abhängigkeiten\",\r\n \"contao_manager.dependencies.installed\": \"Ja, ich habe alle Abhängigkeiten installiert\",\r\n \"contao_manager.connection.active\": \"Verbindung wurde erfolreich hergestellt\",\r\n \"contao_manager.connection.inactive\": \"Verbindung konnt nicht hergestellt werden\",\r\n \"contao_manager.connection.notInstalled\": \"Contao Manager muss installiert werden\",\r\n \"contao_manager.loading\": \"Verbindung zum Contao Manager wird hergestellt\",\r\n \"contao_manager.loading.composer\": \"Die composer.json Datei wird für die manuelle Installation vorbereitet\",\r\n \"contao_manager.process.title\": \"Systemvorbereitung\",\r\n \"contao_manager.process.description\": \"Die für das Produkt notwendigen Abhängigkeiten werden geprüft und wenn nötig installiert.\",\r\n\r\n // Setup step\r\n \"setup.headline\": \"Produkteinrichtung\",\r\n \"setup.prompt.headline\": \"Produkteinrichtung\",\r\n \"setup.available_imports.headline\": \"Verfügbare Datenpakete in diesem Produkt\",\r\n \"setup.loading\": \"Produkteinrichtung wird vorbereitet\",\r\n \"setup.loading.step\": \"Produkteinrichtung wird durchgeführt\",\r\n \"setup.complete\": \"Produkteinrichtung erfolgreich abgeschlossen\",\r\n\r\n // License step\r\n \"license.headline\": \"Lizenzüberprüfung\",\r\n \"license.description\": \"Geben Sie hier Ihren Lizenzschlüssel für das zu installierende Produkt an. Im nächsten Schritt können Sie die zugehörigen Produkte sichten sowie installieren oder updaten.\",\r\n \"license.form.label.license\": \"Produktlizenz\",\r\n \"license.form.desc.license\": \"Bitte geben Sie hier Ihre Produktlizenz ein.\",\r\n \"license.actions.next\": \"Produktlizenz überprüfen\",\r\n \"license.loading\": \"Produkte werden abgerufen\",\r\n\r\n // Product step\r\n \"product.headline\": \"Zu registrierende Produkte\",\r\n\r\n // Install step\r\n \"install.headline\": \"Installation\",\r\n \"install.actions.add\": \"Weiteres Produkt registrieren\",\r\n\r\n // Advertising step\r\n \"advertising.doNotShowAgain\": \"Nicht erneut anzeigen\",\r\n\r\n // Manager process\r\n \"process.contao_manager.title\": \"Contao Manager\",\r\n \"process.contao_manager.download.title\": \"Pakete herunterladen\",\r\n \"process.contao_manager.download.description\": \"Abhängige Pakete werden heruntergeladen und zur Verfügung gestellt.\",\r\n\r\n \"process.contao_manager.package.title\": \"Pakete integrieren\",\r\n \"process.contao_manager.package.description\": \"Pakete werden dem Projekt hinterlegt.\",\r\n\r\n \"process.contao_manager.composer.title\": \"Abhängigkeiten installieren\",\r\n \"process.contao_manager.composer.description\": \"Die Abhängigkeiten werden über composer installiert.\",\r\n\r\n \"process.contao_manager.database.title\": \"Datenbank & Migrationen\",\r\n \"process.contao_manager.database.description\": \"Überprüfe die Datenbank auf Änderungen.\",\r\n\r\n // Download process\r\n \"process.download.title\": \"Produkte abrufen\",\r\n \"process.download.description\": \"Die Produkte werden abgerufen und heruntergeladen.\",\r\n\r\n // Register product process\r\n \"process.register.title\": \"Produktregistrierung\",\r\n \"process.register.description\": \"Die installierten Produkte werden registriert.\",\r\n\r\n // Composer process\r\n \"process.composer.console.title\": \"Abhängigkeiten installieren\",\r\n \"process.composer.running.try.title\": \"Der Contao Manager führt derzeit eine andere Aufgabe durch.\",\r\n \"process.composer.running.try.timer\": \"Versuche erneut in #seconds# Sekunden.\",\r\n \"process.composer.running.stop.title\": \"Nicht beendete Aufgaben werden beendet.\",\r\n\r\n // Database process\r\n \"process.database.console.title\": \"Datenbank aktualisieren\",\r\n \"process.database.deletionHint\": \"Bitte beachten Sie, dass der Product Installer keine Löschungen durchführt. Öffnen Sie bitte den Contao Manager um Löschungen manuell durchzuführen.\",\r\n\r\n // Tasks\r\n \"task.label.setup\": \"Einrichten\",\r\n \"task.content_package.title\": \"Inhaltspaket\",\r\n \"task.content_package.description\": \"Inhaltspakete befüllen Ihre Contao-Instanz mit Leben. Dabei kann es sich um Seiten, Artikel, Module, Content-Elemente usw. handeln. Nutzen Sie den Expertenmodus, um einzelne Inhalte vom Import auszuschließen.\",\r\n \"task.package_valid.true\": \"Bereit\",\r\n \"task.package_valid.false\": \"Fehlende Abhängigkeiten\",\r\n\r\n // Form\r\n \"form.field.tables.label\": \"Zu importierenden Inhalte\",\r\n \"form.field.tables.desc\": \"Bitte wählen Sie hier die zu importierenden Tabellen.\",\r\n\r\n \"form.field.rootPage.label\": \"Seitenstartpunkt\",\r\n \"form.field.rootPage.desc\": \"Bitte definieren Sie, wo die neue Seitenstruktur eingebettet werden soll.\",\r\n\r\n \"form.field.files.browse\": \"Dateien durchsuchen\",\r\n \"form.field.popup.title\": \"Feldinformationen\",\r\n}\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Language/de.js?"); +eval("module.exports = {\r\n // Error\r\n \"error.unknown\": \"Oops, die Abfrage konnte nicht durchgeführt werden. Bitte versuchen Sie es erneut!\",\r\n \"error.default\": \"Ein Fehler ist aufgetreten!\",\r\n \"error.session.lost\": \"Ihre Sitzung ist abgelaufen, bitte loggen Sie sich erneut ein!\",\r\n\r\n // Warnings\r\n \"warning.cancel.setup\": \"Sie sind dabei, die Einrichtung abzubrechen, wollen Sie die Seite wirklich verlassen?\",\r\n\r\n // Global\r\n \"actions.close\": \"Schließen\",\r\n \"actions.back\": \"Zurück\",\r\n \"actions.next\": \"Weiter\",\r\n \"actions.start\": \"Starten\",\r\n \"actions.products\": \"Produktübersicht\",\r\n \"actions.setup\": \"Schnelle Einrichtung starten\",\r\n \"actions.setup.expert\": 'Im Expertenmodus starten BETA',\r\n\r\n \"actions.console.toggle\": 'Konsole öffnen',\r\n \"actions.database.skip\": 'Überspringen und fortfahren',\r\n \"actions.database.migrate\": 'Datenbank migrieren',\r\n\r\n \"type.product\": \"Produkt\",\r\n \"type.package\": \"Produktpaket\",\r\n\r\n \"global.yes\": \"Ja\",\r\n \"global.no\": \"Nein\",\r\n\r\n // Product\r\n \"product.badge.registered\": \"Registriert\",\r\n \"product.badge.removed\": \"Entfernt\",\r\n \"product.setup\": \"Produkt einrichten\",\r\n \"product.update\": \"Produkt aktualisieren\",\r\n \"product.info\": \"Produktinformation\",\r\n \"product.remove\": \"Aus der Liste entfernen\",\r\n \"product.no_version\": \"Das Produkt steht leider nicht für Ihre Contao-Version zur Verfügung. Bitte aktualisieren Sie Contao.\",\r\n\r\n \"product.loading.remove\": \"Das Produkt wird entfernt\",\r\n\r\n \"product.label.title\": \"Titel\",\r\n \"product.label.description\": \"Beschreibung\",\r\n \"product.label.version\": \"Aktuelle Version\",\r\n \"product.label.latestVersion\": \"Neuste Version\",\r\n \"product.label.registered\": \"Produkt ist registriert\",\r\n \"product.label.registeredDate\": \"Registriert am\",\r\n \"product.label.shop\": \"Erworben bei\",\r\n\r\n // Dashboard step\r\n \"dashboard.headline\": \"Produktübersicht\",\r\n \"dashboard.noProducts\": \"Sie haben noch keine Produkte für dieses Projekt registriert.\",\r\n \"dashboard.actions.register\": \"Produkt registrieren\",\r\n \"dashboard.loading\": \"Produkte werden abgerufen\",\r\n \"dashboard.toggle.darkLight\": \"Hell / Dunkel Modus\",\r\n \"dashboard.toggle.fullscreen\": \"Vollbild\",\r\n\r\n // Upload step\r\n \"upload.headline\": \"Produkt hochladen\",\r\n \"upload.description\": \"Bitte laden Sie ein Produkt hoch. Entweder Sie ziehen die Produktdatei (.content) in den gestrichelten Bereich oder klicken auf diesen um den Dateimanager aufzurufen.\",\r\n \"upload.loading\": \"Produkt wird hochgeladen\",\r\n\r\n // License Connector step\r\n \"license_connector.headline\": \"Schittstelle wählen\",\r\n \"license_connector.load.connector\": \"Schnittstellen werden abgerufen\",\r\n \"license_connector.load.steps\": \"Masken werden geladen\",\r\n \"license_connector.load.redirect\": \"Einen kleinen Moment noch, Sie werden gleich weitergeleitet\",\r\n\r\n // Contao Manager\r\n \"contao_manager.headline\": \"Contao Manager\",\r\n \"contao_manager.description\": \"Damit der Product Installer die erforderlichen Abhängigkeiten installieren kann, wird der Zugriff auf den Contao Manager benötigt. Bitte klicken Sie auf \\\"Autorisieren\\\" und folgen Sie den weiteren Schritten im Contao Manager. Sobald die Autorisierung abgeschlossen ist, werden Sie zum Installationsprozess zurückgeleitet.\",\r\n \"contao_manager.description.notInstalled\": \"Damit der Product Installer die erforderlichen Abhängigkeiten installieren kann, benötigt dieser Zugriff auf den Contao Manager. Um fortzufahren installieren Sie bitte den Contao Manager und starten Sie den Installationsprozess erneut.\",\r\n \"contao_manager.description.success\": \"Der Zugriff auf den Contao Manager wurde erfolgreich autorisiert. Sie können nun mit dem Registrierungsprozess fortfahren.\",\r\n \"contao_manager.authorize\": \"Autorisieren\",\r\n \"contao_manager.open_manager\": \"Contao Manager öffnen\",\r\n \"contao_manager.install.label\": \"Abhängigkeiten manuell installieren\",\r\n \"contao_manager.install.button\": \"Manuelle Installation\",\r\n \"contao_manager.install.description\": \"Ihre composer.json Datei wurde für die manuelle Installation vorbereitet. Bitte stellen Sie sicher, dass Sie vor dem nächsten Schritt folgende Abhängigkeiten installiert haben.\",\r\n \"contao_manager.dependencies.headline\": \"Abhängigkeiten\",\r\n \"contao_manager.dependencies.installed\": \"Ja, ich habe alle Abhängigkeiten installiert\",\r\n \"contao_manager.connection.active\": \"Verbindung wurde erfolreich hergestellt\",\r\n \"contao_manager.connection.inactive\": \"Verbindung konnte nicht hergestellt werden\",\r\n \"contao_manager.connection.notInstalled\": \"Contao Manager muss installiert werden\",\r\n \"contao_manager.loading\": \"Verbindung zum Contao Manager wird hergestellt\",\r\n \"contao_manager.loading.composer\": \"Die composer.json Datei wird für die manuelle Installation vorbereitet\",\r\n \"contao_manager.process.title\": \"Systemvorbereitung\",\r\n \"contao_manager.process.description\": \"Die für das Produkt notwendigen Abhängigkeiten werden geprüft und wenn nötig installiert.\",\r\n\r\n // Setup step\r\n \"setup.headline\": \"Produkteinrichtung\",\r\n \"setup.prompt.headline\": \"Produkteinrichtung\",\r\n \"setup.available_imports.headline\": \"Verfügbare Datenpakete in diesem Produkt\",\r\n \"setup.loading\": \"Produkteinrichtung wird vorbereitet\",\r\n \"setup.loading.step\": \"Produkteinrichtung wird durchgeführt\",\r\n \"setup.complete\": \"Produkteinrichtung erfolgreich abgeschlossen\",\r\n\r\n // License step\r\n \"license.headline\": \"Lizenzüberprüfung\",\r\n \"license.description\": \"Geben Sie hier Ihren Lizenzschlüssel für das zu installierende Produkt an. Im nächsten Schritt können Sie die zugehörigen Produkte sichten sowie installieren oder updaten.\",\r\n \"license.form.label.license\": \"Produktlizenz\",\r\n \"license.form.desc.license\": \"Bitte geben Sie hier Ihre Produktlizenz ein.\",\r\n \"license.actions.next\": \"Produktlizenz überprüfen\",\r\n \"license.loading\": \"Produkte werden abgerufen\",\r\n\r\n // Product step\r\n \"product.headline\": \"Zu registrierende Produkte\",\r\n\r\n // Install step\r\n \"install.headline\": \"Installation\",\r\n \"install.actions.add\": \"Weiteres Produkt registrieren\",\r\n\r\n // Advertising step\r\n \"advertising.doNotShowAgain\": \"Nicht erneut anzeigen\",\r\n\r\n // Manager process\r\n \"process.contao_manager.title\": \"Contao Manager\",\r\n \"process.contao_manager.download.title\": \"Pakete herunterladen\",\r\n \"process.contao_manager.download.description\": \"Abhängige Pakete werden heruntergeladen und zur Verfügung gestellt.\",\r\n\r\n \"process.contao_manager.package.title\": \"Pakete integrieren\",\r\n \"process.contao_manager.package.description\": \"Pakete werden dem Projekt hinterlegt.\",\r\n\r\n \"process.contao_manager.composer.title\": \"Abhängigkeiten installieren\",\r\n \"process.contao_manager.composer.description\": \"Die Abhängigkeiten werden über composer installiert.\",\r\n\r\n \"process.contao_manager.database.title\": \"Datenbank & Migrationen\",\r\n \"process.contao_manager.database.description\": \"Überprüfe die Datenbank auf Änderungen.\",\r\n\r\n // Download process\r\n \"process.download.title\": \"Produkte abrufen\",\r\n \"process.download.description\": \"Die Produkte werden abgerufen und heruntergeladen.\",\r\n\r\n // Register product process\r\n \"process.register.title\": \"Produktregistrierung\",\r\n \"process.register.description\": \"Die installierten Produkte werden registriert.\",\r\n\r\n // Composer process\r\n \"process.composer.console.title\": \"Abhängigkeiten installieren\",\r\n \"process.composer.running.try.title\": \"Der Contao Manager führt derzeit eine andere Aufgabe durch.\",\r\n \"process.composer.running.try.timer\": \"Versuche erneut in #seconds# Sekunden.\",\r\n \"process.composer.running.stop.title\": \"Nicht beendete Aufgaben werden beendet.\",\r\n\r\n // Database process\r\n \"process.database.console.title\": \"Datenbank aktualisieren\",\r\n \"process.database.deletionHint\": \"Bitte beachten Sie, dass der Product Installer keine Löschungen durchführt. Öffnen Sie bitte den Contao Manager um Löschungen manuell durchzuführen.\",\r\n\r\n // Tasks\r\n \"task.label.setup\": \"Einrichten\",\r\n \"task.content_package.title\": \"Inhaltspaket\",\r\n \"task.content_package.description\": \"Inhaltspakete befüllen Ihre Contao-Instanz mit Leben. Dabei kann es sich um Seiten, Artikel, Module, Content-Elemente usw. handeln. Nutzen Sie den Expertenmodus, um einzelne Inhalte vom Import auszuschließen.\",\r\n \"task.package_valid.true\": \"Bereit\",\r\n \"task.package_valid.false\": \"Fehlende Abhängigkeiten\",\r\n\r\n // Form\r\n \"form.field.tables.label\": \"Zu importierenden Inhalte\",\r\n \"form.field.tables.desc\": \"Bitte wählen Sie hier die zu importierenden Tabellen.\",\r\n\r\n \"form.field.rootPage.label\": \"Seitenstartpunkt\",\r\n \"form.field.rootPage.desc\": \"Bitte definieren Sie, wo die neue Seitenstruktur eingebettet werden soll.\",\r\n\r\n \"form.field.files.browse\": \"Dateien durchsuchen\",\r\n \"form.field.popup.title\": \"Feldinformationen\",\r\n}\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Language/de.js?"); /***/ }), diff --git a/public/scripts/Installer/Steps/DashboardStep.ts b/public/scripts/Installer/Steps/DashboardStep.ts index 9b5e8da..3297d46 100644 --- a/public/scripts/Installer/Steps/DashboardStep.ts +++ b/public/scripts/Installer/Steps/DashboardStep.ts @@ -158,7 +158,7 @@ export default class DashboardStep extends StepComponent { menuOptions.push({ label: i18n('product.update'), - value: () => console.log('TEST 1'), + value: () => console.log('Product updates are currently not supported, for an update you can do the product registration again.'), highlight: true }) } diff --git a/public/scripts/Installer/Steps/ProcessStep.ts b/public/scripts/Installer/Steps/ProcessStep.ts index 426965b..aeb2da4 100644 --- a/public/scripts/Installer/Steps/ProcessStep.ts +++ b/public/scripts/Installer/Steps/ProcessStep.ts @@ -30,7 +30,7 @@ export default class ProcessStep extends StepComponent - + ` } @@ -45,7 +45,7 @@ export default class ProcessStep extends StepComponent const backButton = this.element('button.back') const startButton = this.element('button.start') - const addButton = this.element('button.add') + const dashboardButton = this.element('button.dashboard') const closeButton = this.element('[data-close]') // Method for reset the step @@ -55,8 +55,8 @@ export default class ProcessStep extends StepComponent startButton.hidden = false startButton.disabled = false - addButton.disabled = true - addButton.hidden = false + dashboardButton.disabled = true + dashboardButton.hidden = false closeButton.disabled = true closeButton.hidden = false @@ -67,7 +67,7 @@ export default class ProcessStep extends StepComponent } const finishProcess = () => { - addButton.disabled = false + dashboardButton.disabled = false closeButton.disabled = false closeButton.addEventListener('click', () => { @@ -77,11 +77,11 @@ export default class ProcessStep extends StepComponent this.modal.hide() }) - addButton.addEventListener('click', () => { + dashboardButton.addEventListener('click', () => { // Reset all resetProcess() - this.modal.open(1) + this.modal.open(this.modal.getStepIndex('DashboardStep')) }) } @@ -108,8 +108,8 @@ export default class ProcessStep extends StepComponent startButton.hidden = true startButton.disabled = true - addButton.disabled = true - addButton.hidden = false + dashboardButton.disabled = true + dashboardButton.hidden = false closeButton.disabled = true closeButton.hidden = false diff --git a/public/scripts/Installer/Steps/UploadStep.ts b/public/scripts/Installer/Steps/UploadStep.ts index b4b10d7..c65a07f 100644 --- a/public/scripts/Installer/Steps/UploadStep.ts +++ b/public/scripts/Installer/Steps/UploadStep.ts @@ -86,6 +86,6 @@ export default class UploadStep extends StepComponent * @inheritDoc */ protected unmount() { - this.dropzone.destroy() + this.dropzone?.destroy() } }