From c77ce597bd83c4967f52c70773d368a680150fec Mon Sep 17 00:00:00 2001 From: doishub Date: Thu, 5 Oct 2023 15:23:54 +0200 Subject: [PATCH] Prepare installer ------------------- - Fixed skipping the AdvertisingStep - Fixed a bug in the console component - Customize the translations --- public/build/main.js | 6 +++--- public/scripts/Installer/Components/ConsoleComponent.ts | 2 +- public/scripts/Installer/Language/de.js | 8 ++++---- public/scripts/Installer/Steps/AdvertisingStep.ts | 1 + src/Controller/API/Download/DownloadController.php | 3 ++- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/public/build/main.js b/public/build/main.js index ab25cf6..322e45e 100644 --- a/public/build/main.js +++ b/public/build/main.js @@ -892,7 +892,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 ContainerComponent_1 = __importDefault(__webpack_require__(/*! ./ContainerComponent */ \"./public/scripts/Installer/Components/ContainerComponent.ts\"));\r\nconst ConsoleOperationComponent_1 = __importDefault(__webpack_require__(/*! ./ConsoleOperationComponent */ \"./public/scripts/Installer/Components/ConsoleOperationComponent.ts\"));\r\n/**\r\n * Console class.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass ConsoleComponent extends ContainerComponent_1.default {\r\n /**\r\n * Creates a console instance.\r\n */\r\n constructor() {\r\n ConsoleComponent.consoleId++;\r\n // Create container\r\n super('console' + ConsoleComponent.consoleId);\r\n /**\r\n * The container for the text.\r\n *\r\n * @private\r\n */\r\n this.operations = [];\r\n this.addClass('console');\r\n }\r\n /**\r\n * Set operations configurations to handle.\r\n *\r\n * @param operations\r\n */\r\n set(operations) {\r\n for (const operation of operations) {\r\n const op = new ConsoleOperationComponent_1.default(operation);\r\n op.appendTo(this.template);\r\n this.operations.push(op);\r\n }\r\n }\r\n setDescription(desc, cssClass) {\r\n var _a;\r\n if (!((_a = this.template) === null || _a === void 0 ? void 0 : _a.querySelector('.description'))) {\r\n const descContainer = document.createElement('div');\r\n descContainer.classList.add('description');\r\n this.template.append(descContainer);\r\n }\r\n const descElement = this.element('.description');\r\n descElement.innerHTML = desc;\r\n if (cssClass)\r\n descElement.classList.add(cssClass);\r\n }\r\n /**\r\n * Update operations configurations.\r\n *\r\n * @param operations\r\n */\r\n update(operations) {\r\n operations.forEach((operation, key) => {\r\n this.operations[key].update(operation);\r\n });\r\n }\r\n}\r\nexports[\"default\"] = ConsoleComponent;\r\n/**\r\n * Dynamic auto-increment id.\r\n */\r\nConsoleComponent.consoleId = 0;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Components/ConsoleComponent.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 ContainerComponent_1 = __importDefault(__webpack_require__(/*! ./ContainerComponent */ \"./public/scripts/Installer/Components/ContainerComponent.ts\"));\r\nconst ConsoleOperationComponent_1 = __importDefault(__webpack_require__(/*! ./ConsoleOperationComponent */ \"./public/scripts/Installer/Components/ConsoleOperationComponent.ts\"));\r\n/**\r\n * Console class.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass ConsoleComponent extends ContainerComponent_1.default {\r\n /**\r\n * Creates a console instance.\r\n */\r\n constructor() {\r\n ConsoleComponent.consoleId++;\r\n // Create container\r\n super('console' + ConsoleComponent.consoleId);\r\n /**\r\n * The container for the text.\r\n *\r\n * @private\r\n */\r\n this.operations = [];\r\n this.addClass('console');\r\n }\r\n /**\r\n * Set operations configurations to handle.\r\n *\r\n * @param operations\r\n */\r\n set(operations) {\r\n for (const operation of operations) {\r\n const op = new ConsoleOperationComponent_1.default(operation);\r\n op.appendTo(this.template);\r\n this.operations.push(op);\r\n }\r\n }\r\n setDescription(desc, cssClass) {\r\n var _a;\r\n if (!((_a = this.template) === null || _a === void 0 ? void 0 : _a.querySelector('.description'))) {\r\n const descContainer = document.createElement('div');\r\n descContainer.classList.add('description');\r\n this.template.append(descContainer);\r\n }\r\n const descElement = this.element('.description');\r\n descElement.innerHTML = desc;\r\n if (cssClass)\r\n descElement.classList.add(cssClass);\r\n }\r\n /**\r\n * Update operations configurations.\r\n *\r\n * @param operations\r\n */\r\n update(operations) {\r\n operations.forEach((operation, key) => {\r\n var _a;\r\n (_a = this.operations[key]) === null || _a === void 0 ? void 0 : _a.update(operation);\r\n });\r\n }\r\n}\r\nexports[\"default\"] = ConsoleComponent;\r\n/**\r\n * Dynamic auto-increment id.\r\n */\r\nConsoleComponent.consoleId = 0;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Components/ConsoleComponent.ts?"); /***/ }), @@ -1244,7 +1244,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n /***/ (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 StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst network_1 = __webpack_require__(/*! ../../Utils/network */ \"./public/scripts/Utils/network.js\");\r\nconst Language_1 = __webpack_require__(/*! ../Language */ \"./public/scripts/Installer/Language/index.js\");\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\nconst ImageBanner_1 = __importDefault(__webpack_require__(/*! ../Advertising/ImageBanner */ \"./public/scripts/Installer/Advertising/ImageBanner.ts\"));\r\n/**\r\n * A step to display advertisements, which can be created by the License Connector.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass AdvertisingStep extends StepComponent_1.default {\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n
\r\n
\r\n
\r\n \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 submit(form, data) {\r\n const doNotShowAgain = !!data.get('skipAd');\r\n // Set state\r\n State_1.default.set('skipAdvertising', doNotShowAgain, true);\r\n this.modal.next();\r\n // Unlock the form when advertising is allowed to be displayed again\r\n if (!doNotShowAgain) {\r\n this.lockedForm = false;\r\n }\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n if (State_1.default.get('skipAdvertising')) {\r\n this.modal.next();\r\n }\r\n // Show loader\r\n this.modal.loader(true);\r\n // Get advertising or skip if no one exists\r\n (0, network_1.call)(\"/contao/api/license_connector/advertising\", {\r\n connector: State_1.default.get('connector')\r\n }, true).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 // Skip step when going back\r\n this.skip = true;\r\n switch (response.type) {\r\n case 'image_banner':\r\n (new ImageBanner_1.default(response))\r\n .appendTo(this.element('.advertising'));\r\n break;\r\n case 'skip':\r\n default:\r\n // Show next step if no type is valid\r\n this.modal.next();\r\n }\r\n }).catch((e) => super.error(e));\r\n }\r\n}\r\nexports[\"default\"] = AdvertisingStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/AdvertisingStep.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 StepComponent_1 = __importDefault(__webpack_require__(/*! ../Components/StepComponent */ \"./public/scripts/Installer/Components/StepComponent.ts\"));\r\nconst network_1 = __webpack_require__(/*! ../../Utils/network */ \"./public/scripts/Utils/network.js\");\r\nconst Language_1 = __webpack_require__(/*! ../Language */ \"./public/scripts/Installer/Language/index.js\");\r\nconst State_1 = __importDefault(__webpack_require__(/*! ../State */ \"./public/scripts/Installer/State.ts\"));\r\nconst ImageBanner_1 = __importDefault(__webpack_require__(/*! ../Advertising/ImageBanner */ \"./public/scripts/Installer/Advertising/ImageBanner.ts\"));\r\n/**\r\n * A step to display advertisements, which can be created by the License Connector.\r\n *\r\n * @author Daniele Sciannimanica \r\n */\r\nclass AdvertisingStep extends StepComponent_1.default {\r\n /**\r\n * @inheritDoc\r\n */\r\n getTemplate() {\r\n return `\r\n
\r\n
\r\n
\r\n \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 submit(form, data) {\r\n const doNotShowAgain = !!data.get('skipAd');\r\n // Set state\r\n State_1.default.set('skipAdvertising', doNotShowAgain, true);\r\n this.modal.next();\r\n // Unlock the form when advertising is allowed to be displayed again\r\n if (!doNotShowAgain) {\r\n this.lockedForm = false;\r\n }\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n events() {\r\n if (State_1.default.get('skipAdvertising')) {\r\n this.modal.next();\r\n return;\r\n }\r\n // Show loader\r\n this.modal.loader(true);\r\n // Get advertising or skip if no one exists\r\n (0, network_1.call)(\"/contao/api/license_connector/advertising\", {\r\n connector: State_1.default.get('connector')\r\n }, true).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 // Skip step when going back\r\n this.skip = true;\r\n switch (response.type) {\r\n case 'image_banner':\r\n (new ImageBanner_1.default(response))\r\n .appendTo(this.element('.advertising'));\r\n break;\r\n case 'skip':\r\n default:\r\n // Show next step if no type is valid\r\n this.modal.next();\r\n }\r\n }).catch((e) => super.error(e));\r\n }\r\n}\r\nexports[\"default\"] = AdvertisingStep;\r\n\n\n//# sourceURL=webpack://@oveleon/product-installer/./public/scripts/Installer/Steps/AdvertisingStep.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 Produkt-Installer die erforderlichen Abhängigkeiten installieren können, benötigen er Zugriff auf den Contao Manager. Wenn Sie damit einverstanden sind, klicken Sie bitte auf \\\"Autorisieren\\\" und folgen Sie den weiteren Schritten im Contao Manager. Sobald Sie dies abgeschlossen haben, werden Sie zum Installationsprozess zurückgeleitet.\",\r\n \"contao_manager.description.notInstalled\": \"Damit wir die erforderlichen Abhängigkeiten installieren können, benötigen wir 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. Falls Sie jedoch lieber eine manuelle Installation durchführen möchten, können Sie auf die Schaltfläche \\\"Manuelle Installation\\\" klicken.\",\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 Produkt-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 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?"); /***/ }), diff --git a/public/scripts/Installer/Components/ConsoleComponent.ts b/public/scripts/Installer/Components/ConsoleComponent.ts index 0df55e7..c2ddb84 100644 --- a/public/scripts/Installer/Components/ConsoleComponent.ts +++ b/public/scripts/Installer/Components/ConsoleComponent.ts @@ -74,7 +74,7 @@ export default class ConsoleComponent extends ContainerComponent public update(operations: OperationConfig[]): void { operations.forEach((operation, key) => { - this.operations[key].update(operation) + this.operations[key]?.update(operation) }) } } diff --git a/public/scripts/Installer/Language/de.js b/public/scripts/Installer/Language/de.js index e33a93f..e3ca1f4 100644 --- a/public/scripts/Installer/Language/de.js +++ b/public/scripts/Installer/Language/de.js @@ -66,9 +66,9 @@ module.exports = { // Contao Manager "contao_manager.headline": "Contao Manager", - "contao_manager.description": "Damit der Produkt-Installer die erforderlichen Abhängigkeiten installieren können, benötigen er Zugriff auf den Contao Manager. Wenn Sie damit einverstanden sind, klicken Sie bitte auf \"Autorisieren\" und folgen Sie den weiteren Schritten im Contao Manager. Sobald Sie dies abgeschlossen haben, werden Sie zum Installationsprozess zurückgeleitet.", - "contao_manager.description.notInstalled": "Damit wir die erforderlichen Abhängigkeiten installieren können, benötigen wir Zugriff auf den Contao Manager. Um fortzufahren installieren Sie bitte den Contao Manager und starten Sie den Installationsprozess erneut.", - "contao_manager.description.success": "Der Zugriff auf den Contao Manager wurde erfolgreich autorisiert. Falls Sie jedoch lieber eine manuelle Installation durchführen möchten, können Sie auf die Schaltfläche \"Manuelle Installation\" klicken.", + "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.", + "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.", + "contao_manager.description.success": "Der Zugriff auf den Contao Manager wurde erfolgreich autorisiert. Sie können nun mit dem Registrierungsprozess fortfahren.", "contao_manager.authorize": "Autorisieren", "contao_manager.open_manager": "Contao Manager öffnen", "contao_manager.install.label": "Abhängigkeiten manuell installieren", @@ -140,7 +140,7 @@ module.exports = { // Database process "process.database.console.title": "Datenbank aktualisieren", - "process.database.deletionHint": "Bitte beachten Sie, dass der Produkt-Installer keine Löschungen durchführt. Öffnen Sie bitte den Contao Manager um Löschungen manuell durchzuführen.", + "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.", // Tasks "task.label.setup": "Einrichten", diff --git a/public/scripts/Installer/Steps/AdvertisingStep.ts b/public/scripts/Installer/Steps/AdvertisingStep.ts index 1cdddeb..7693656 100644 --- a/public/scripts/Installer/Steps/AdvertisingStep.ts +++ b/public/scripts/Installer/Steps/AdvertisingStep.ts @@ -58,6 +58,7 @@ export default class AdvertisingStep extends StepComponent if(State.get('skipAdvertising')) { this.modal.next(); + return } // Show loader diff --git a/src/Controller/API/Download/DownloadController.php b/src/Controller/API/Download/DownloadController.php index 1278667..f7ca283 100644 --- a/src/Controller/API/Download/DownloadController.php +++ b/src/Controller/API/Download/DownloadController.php @@ -45,7 +45,8 @@ public function __construct( * [ * 'provider': 'shop', * 'product': '18nd238923r83hrrn23r239720eh2e' // (Product hash) - * ],[ + * ], + * [ * 'provider': 'github', * 'source': 'namespace/package', * 'token': 'x-y-z'