diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index d8709d77c1d0..fe0a57605685 100755 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -32,12 +32,12 @@ jobs: with: node-version: ${{ matrix.nodejs }} - - name: Install Composer packages - run: composer install --no-interaction --no-progress - - name: Install Node.js packages run: cp public/package.json .; cp public/package-lock.json .; npm clean-install + - name: Install Composer packages + run: composer install --no-interaction --no-progress + - name: PHP Unit Test run: scripts/PHPUnit/run_tests.sh env: diff --git a/components/ILIAS/AccessControl/AccessControl.php b/components/ILIAS/AccessControl/AccessControl.php index 3ba82681611c..43a56be746b8 100644 --- a/components/ILIAS/AccessControl/AccessControl.php +++ b/components/ILIAS/AccessControl/AccessControl.php @@ -40,5 +40,7 @@ public function init( new \ilAccessRBACSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilPermSelect.js"); } } diff --git a/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php b/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php index f8ed78cbe822..82576a5b0362 100755 --- a/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php +++ b/components/ILIAS/AccessControl/classes/class.ilObjectRolePermissionTableGUI.php @@ -57,7 +57,7 @@ public function __construct(ilPermissionGUI $a_parent_obj, string $a_parent_cmd, $this->tree_path_ids = $this->tree->getPathId($this->ref_id); $tpl = $DIC->ui()->mainTemplate(); - $tpl->addJavaScript('./components/ILIAS/AccessControl/js/ilPermSelect.js'); + $tpl->addJavaScript('assets/js/ilPermSelect.js'); $this->setTitle($this->lng->txt('permission_settings')); $this->setEnableHeader(true); diff --git a/components/ILIAS/AccessControl/js/ilPermSelect.js b/components/ILIAS/AccessControl/resources/ilPermSelect.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/AccessControl/js/ilPermSelect.js rename to components/ILIAS/AccessControl/resources/ilPermSelect.js diff --git a/components/ILIAS/Accordion/Accordion.php b/components/ILIAS/Accordion/Accordion.php index 54277102201d..9f0c1c98ab20 100644 --- a/components/ILIAS/Accordion/Accordion.php +++ b/components/ILIAS/Accordion/Accordion.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "accordion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("owl.carousel/dist/owl.carousel.js"); } } diff --git a/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php b/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php index 2f5d7c644181..c55d5c670c00 100755 --- a/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php +++ b/components/ILIAS/Accordion/classes/class.ilAccordionGUI.php @@ -254,8 +254,8 @@ public static function addCss(): void public static function getLocalJavascriptFiles(): array { return array( - "./components/ILIAS/Accordion/js/accordion.js", - self::$owl_path . self::$owl_js_path + "assets/js/accordion.js", + "assets/js" . self::$owl_js_path ); } diff --git a/public/components/ILIAS/Accordion/js/accordion.js b/components/ILIAS/Accordion/resources/accordion.js similarity index 100% rename from public/components/ILIAS/Accordion/js/accordion.js rename to components/ILIAS/Accordion/resources/accordion.js diff --git a/components/ILIAS/App/tests/RootFolderTest.php b/components/ILIAS/App/tests/RootFolderTest.php index 3e86f236fbac..001994123ca5 100755 --- a/components/ILIAS/App/tests/RootFolderTest.php +++ b/components/ILIAS/App/tests/RootFolderTest.php @@ -44,7 +44,6 @@ final class RootFolderTest extends TestCase 'composer.json', 'composer_new.json', 'composer.lock', - 'dependency_resolution.php', 'ilias.ini.php', 'ilias_version.php', 'LICENSE', diff --git a/components/ILIAS/AuthShibboleth/AuthShibboleth.php b/components/ILIAS/AuthShibboleth/AuthShibboleth.php index 57190e61e70a..7556f42c7976 100644 --- a/components/ILIAS/AuthShibboleth/AuthShibboleth.php +++ b/components/ILIAS/AuthShibboleth/AuthShibboleth.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "shib_login.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "shib_logout.php"); } } diff --git a/public/shib_login.php b/components/ILIAS/AuthShibboleth/resources/shib_login.php old mode 100755 new mode 100644 similarity index 99% rename from public/shib_login.php rename to components/ILIAS/AuthShibboleth/resources/shib_login.php index 54685fe4bfc2..0611d1e039ed --- a/public/shib_login.php +++ b/components/ILIAS/AuthShibboleth/resources/shib_login.php @@ -37,4 +37,4 @@ // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $DIC->ctrl()->setCmd('doShibbolethAuthentication'); $DIC->ctrl()->callBaseClass(ilStartUpGUI::class); -} +} \ No newline at end of file diff --git a/public/shib_logout.php b/components/ILIAS/AuthShibboleth/resources/shib_logout.php old mode 100755 new mode 100644 similarity index 99% rename from public/shib_logout.php rename to components/ILIAS/AuthShibboleth/resources/shib_logout.php index e8d32abea558..ca4e08403df2 --- a/public/shib_logout.php +++ b/components/ILIAS/AuthShibboleth/resources/shib_logout.php @@ -167,4 +167,4 @@ function unserializesession($serialized_string) } return ($variables); -} +} \ No newline at end of file diff --git a/components/ILIAS/Authentication/Authentication.php b/components/ILIAS/Authentication/Authentication.php index 1a7f58cf8f18..8fd17277e5dd 100644 --- a/components/ILIAS/Authentication/Authentication.php +++ b/components/ILIAS/Authentication/Authentication.php @@ -36,5 +36,10 @@ public function init( new \ilAuthenticationSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "sessioncheck.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "session_reminder.js"); } } diff --git a/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php b/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php index e76e330b8c63..4983223949d0 100755 --- a/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php +++ b/components/ILIAS/Authentication/classes/class.ilSessionReminderGUI.php @@ -42,7 +42,7 @@ public function populatePage(): void iljQueryUtil::initjQuery($this->page); - $this->page->addJavaScript('./components/ILIAS/Authentication/js/session_reminder.js'); + $this->page->addJavaScript('assets/js/session_reminder.js'); $url = './sessioncheck.php?client_id=' . CLIENT_ID . '&lang=' . $this->lng->getLangKey(); $devMode = defined('DEVMODE') && DEVMODE ? 1 : 0; diff --git a/components/ILIAS/Authentication/js/session_reminder.js b/components/ILIAS/Authentication/resources/session_reminder.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Authentication/js/session_reminder.js rename to components/ILIAS/Authentication/resources/session_reminder.js diff --git a/public/sessioncheck.php b/components/ILIAS/Authentication/resources/sessioncheck.php old mode 100755 new mode 100644 similarity index 73% rename from public/sessioncheck.php rename to components/ILIAS/Authentication/resources/sessioncheck.php index 43c8208331cd..d49d7a95ce47 --- a/public/sessioncheck.php +++ b/components/ILIAS/Authentication/resources/sessioncheck.php @@ -31,16 +31,16 @@ /** @var ILIAS\DI\Container $DIC */ $DIC->http()->saveResponse( ( - new ilSessionReminderCheck( - $DIC->http(), - $DIC->refinery(), - $DIC->language(), - $DIC->database(), - $DIC['ilClientIniFile'], - $DIC->logger()->auth(), - (new DataFactory())->clock()->utc() - ) + new ilSessionReminderCheck( + $DIC->http(), + $DIC->refinery(), + $DIC->language(), + $DIC->database(), + $DIC['ilClientIniFile'], + $DIC->logger()->auth(), + (new DataFactory())->clock()->utc() + ) )->handle() ); $DIC->http()->sendResponse(); -$DIC->http()->close(); +$DIC->http()->close(); \ No newline at end of file diff --git a/components/ILIAS/Awareness/Awareness.php b/components/ILIAS/Awareness/Awareness.php index b0d3798aa996..e5bc96737335 100644 --- a/components/ILIAS/Awareness/Awareness.php +++ b/components/ILIAS/Awareness/Awareness.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Awareness.js"); } } diff --git a/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php b/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php index 17e0bc16df82..e5076206c3e0 100755 --- a/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php +++ b/components/ILIAS/Awareness/classes/class.ilAwarenessGUI.php @@ -93,7 +93,7 @@ public function initJS(): void { $ilUser = $this->user; // init js - $this->main_tpl->addJavaScript("./components/ILIAS/Awareness/js/Awareness.js"); + $this->main_tpl->addJavaScript("./assets/js/Awareness.js"); $this->ctrl->setParameter($this, "ref_id", $this->ref_id); $this->main_tpl->addOnLoadCode("il.Awareness.setBaseUrl('" . $this->ctrl->getLinkTarget( $this, diff --git a/public/components/ILIAS/Awareness/js/Awareness.js b/components/ILIAS/Awareness/resources/Awareness.js similarity index 100% rename from public/components/ILIAS/Awareness/js/Awareness.js rename to components/ILIAS/Awareness/resources/Awareness.js diff --git a/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php b/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php index 9846f3784d6d..30f7ba592d82 100644 --- a/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php +++ b/components/ILIAS/BackgroundTasks_/BackgroundTasks_.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "background_task_refresh.js"); } } diff --git a/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php b/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php index 8ca9ba52011d..7afddc8c8414 100755 --- a/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php +++ b/components/ILIAS/BackgroundTasks_/classes/Provider/BTNotificationProvider.php @@ -39,7 +39,7 @@ public function getNotifications(): array return []; } - $this->dic->ui()->mainTemplate()->addJavaScript("./components/ILIAS/BackgroundTasks_/js/background_task_refresh.js"); + $this->dic->ui()->mainTemplate()->addJavaScript("assets/js/background_task_refresh.js"); $this->dic->language()->loadLanguageModule('background_tasks'); $id = fn (string $id): IdentificationInterface => $this->if->identifier($id); diff --git a/components/ILIAS/BackgroundTasks_/js/background_task_refresh.js b/components/ILIAS/BackgroundTasks_/resources/background_task_refresh.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/BackgroundTasks_/js/background_task_refresh.js rename to components/ILIAS/BackgroundTasks_/resources/background_task_refresh.js diff --git a/components/ILIAS/Block/Block.php b/components/ILIAS/Block/Block.php index 62673485af23..19ea49e12a65 100644 --- a/components/ILIAS/Block/Block.php +++ b/components/ILIAS/Block/Block.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilblockcallback.js"); } } diff --git a/components/ILIAS/Block/classes/class.ilBlockGUI.php b/components/ILIAS/Block/classes/class.ilBlockGUI.php index 6d397bb37817..d4e3f470024f 100755 --- a/components/ILIAS/Block/classes/class.ilBlockGUI.php +++ b/components/ILIAS/Block/classes/class.ilBlockGUI.php @@ -122,7 +122,7 @@ public function __construct() $this->ui = $DIC->ui(); ilYuiUtil::initConnection(); - $this->main_tpl->addJavaScript("./components/ILIAS/Block/js/ilblockcallback.js"); + $this->main_tpl->addJavaScript("./assets/js/ilblockcallback.js"); $this->setLimit((int) $this->user->getPref("hits_per_page")); diff --git a/public/components/ILIAS/Block/js/ilblockcallback.js b/components/ILIAS/Block/resources/ilblockcallback.js similarity index 100% rename from public/components/ILIAS/Block/js/ilblockcallback.js rename to components/ILIAS/Block/resources/ilblockcallback.js diff --git a/components/ILIAS/BookingManager/BookingManager.php b/components/ILIAS/BookingManager/BookingManager.php index 84a338c2947f..75a3252a24f1 100644 --- a/components/ILIAS/BookingManager/BookingManager.php +++ b/components/ILIAS/BookingManager/BookingManager.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\BookingManager\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ScheduleInput.js"); } } diff --git a/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php b/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php index 194b5b2b2f6a..c9d72e714f2c 100755 --- a/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php +++ b/components/ILIAS/BookingManager/classes/class.ilScheduleInputGUI.php @@ -241,7 +241,7 @@ public function insert(ilTemplate $a_tpl): void { $tpl = $this->tpl; - $tpl->addJavascript("components/ILIAS/BookingManager/js/ScheduleInput.js"); + $tpl->addJavascript("assets/js/ScheduleInput.js"); $html = $this->render(); diff --git a/components/ILIAS/BookingManager/js/ScheduleInput.js b/components/ILIAS/BookingManager/resources/ScheduleInput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/BookingManager/js/ScheduleInput.js rename to components/ILIAS/BookingManager/resources/ScheduleInput.js diff --git a/components/ILIAS/COPage/COPage.php b/components/ILIAS/COPage/COPage.php index a65fd3ea83f5..a3d974ce4533 100644 --- a/components/ILIAS/COPage/COPage.php +++ b/components/ILIAS/COPage/COPage.php @@ -36,5 +36,49 @@ public function init( new \ILIAS\COPage\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + // This is included via anonymous classes as a testament to the fact, that + // the js and css of the COPage should be restructured according to the target + // structure in the component directory and the public directory. + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/PC/InteractiveImage/js"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/PC/InteractiveImage/js"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/Editor/js"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/Editor/js"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/js"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/js"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "components/ILIAS/COPage/css"; + } + public function getTarget(): string + { + return "components/ILIAS/COPage/css"; + } + }; } } diff --git a/components/ILIAS/COPage/Editor/UI/Init.php b/components/ILIAS/COPage/Editor/UI/Init.php index 889af1daded0..b4d35d5b655d 100755 --- a/components/ILIAS/COPage/Editor/UI/Init.php +++ b/components/ILIAS/COPage/Editor/UI/Init.php @@ -56,13 +56,13 @@ public function initUI( } if (DEVMODE == 1) { - $main_tpl->addJavaScript("./node_modules/tinymce/tinymce.js"); + $main_tpl->addJavaScript("node_modules/tinymce/tinymce.js"); } else { - $main_tpl->addJavaScript("./node_modules/tinymce/tinymce.min.js"); + $main_tpl->addJavaScript("node_modules/tinymce/tinymce.min.js"); } \ilYuiUtil::initConnection(); - $main_tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $main_tpl->addJavaScript("assets/js/ilExplorer.js"); // ensure that form.js is loaded which is needed for file input (js that shows file names) $dummy = new \ilPropertyFormGUI(); diff --git a/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php b/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php index 6120daeb26ab..32ca25828dc9 100755 --- a/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php +++ b/components/ILIAS/COPage/PC/InteractiveImage/class.ilPCIIMTriggerEditorGUI.php @@ -34,8 +34,8 @@ public function __construct( iljQueryUtil::initjQueryUI(); parent::__construct($a_content_obj, $a_page, $request); - $this->main_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); - $this->main_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js"); + $this->main_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); + $this->main_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js"); ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); diff --git a/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php b/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php index b8d749e2aa8f..97a8580de561 100755 --- a/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php +++ b/components/ILIAS/COPage/PC/Table/class.ilPCTableGUI.php @@ -1033,7 +1033,7 @@ public function editData(): void $this->displayValidationError(); $this->initEditor(); - $this->tpl->addJavaScript("./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js"); + $this->tpl->addJavaScript("assets/js/AdvancedSelectionList.js"); $this->tpl->addCss(ilObjStyleSheet::getBaseContentStylePath()); $this->tpl->setContent($this->getEditDataTable(true)); } diff --git a/components/ILIAS/COPage/Resources/ResourcesCollector.php b/components/ILIAS/COPage/Resources/ResourcesCollector.php index 2e5a35001401..6f5a008de0f1 100755 --- a/components/ILIAS/COPage/Resources/ResourcesCollector.php +++ b/components/ILIAS/COPage/Resources/ResourcesCollector.php @@ -66,10 +66,10 @@ protected function init(\ilPageObject $pg): void if ($this->output_mode == \ilPageObjectGUI::OFFLINE) { $this->js_files[] = \iljQueryUtil::getLocaljQueryPath(); $this->js_files[] = \iljQueryUtil::getLocaljQueryUIPath(); - $this->js_files[] = './components/ILIAS/JavaScript/js/Basic.js'; + $this->js_files[] = 'assets/js/Basic.js'; } - $this->js_files[] = "./components/ILIAS/COPage/js/ilCOPagePres.js"; + $this->js_files[] = "components/ILIAS/COPage/js/ilCOPagePres.js"; // for all page components... $defs = $this->pc_definition->getPCDefinitions(); diff --git a/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php b/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php index bd5f378d2afd..a944efb9f9de 100755 --- a/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php +++ b/components/ILIAS/COPage/classes/class.ilCOPageHTMLExport.php @@ -132,7 +132,7 @@ public function exportStyles(): void $this->exp_dir . "/" . ilObjStyleSheet::getBasicImageDir() ); ilFileUtils::makeDirParents($this->exp_dir . "/components/ILIAS/COPage/css"); - copy("components/ILIAS/COPage/css/content.css", $this->exp_dir . "/components/ILIAS/COPage/css/content.css"); + copy("components/ILIAS/COPage/resources/content.css", $this->exp_dir . "/components/ILIAS/COPage/css/content.css"); } else { $style = new ilObjStyleSheet($this->getContentStyleId()); $style->copyImagesToDir($this->exp_dir . "/" . $style->getImagesDirectory()); diff --git a/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php b/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php index b617e64a1c2f..b8dc5439f867 100755 --- a/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php +++ b/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php @@ -1077,7 +1077,7 @@ public function showPage(): string // $this->initSelfAssessmentRendering(); ilObjMediaObjectGUI::includePresentationJS($main_tpl); - $main_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); + $main_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); // needed for overlays in iim ilOverlayGUI::initJavascript(); @@ -2428,7 +2428,7 @@ protected function initEditing(): void $this->lng->toJS("copg_par_format_selection"); // workaroun: we need this js for the new editor version, e.g. for new section form to work // @todo: solve this in a smarter way - $this->tpl->addJavaScript("./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js"); + $this->tpl->addJavaScript("assets/js/AdvancedSelectionList.js"); \ilCalendarUtil::initDateTimePicker(); ilModalGUI::initJS(); } @@ -2599,7 +2599,7 @@ public function history(): string $this->setBackToEditTabs(); - $this->tpl->addJavaScript("./components/ILIAS/COPage/js/page_history.js"); + $this->tpl->addJavaScript("assets/js/page_history.js"); $table_gui = new ilPageHistoryTableGUI($this, "history"); $table_gui->setId("hist_table"); diff --git a/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js b/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js old mode 100755 new mode 100644 index 6dc08106ef6a..220d5bc670d6 --- a/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js +++ b/components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js @@ -1,4 +1,3 @@ - /** * This file is part of ILIAS, a powerful learning management system * published by ILIAS open source e-Learning e.V. @@ -13,43 +12,38 @@ * https://www.ilias.de * https://github.com/ILIAS-eLearning * - *********************************************************************/ + ******************************************************************** */ -ilCOPagePCInteractiveImage = -{ - /** +ilCOPagePCInteractiveImage = { + /** * Basic init function */ - init: function () - { - $("a.mark_cmd").click(this.markerCommand); - $("a.ov_cmd").click(this.overlayCommand); - $("a.pop_cmd").click(this.popupCommand); - }, - - /** + init() { + $('a.mark_cmd').click(this.markerCommand); + $('a.ov_cmd').click(this.overlayCommand); + $('a.pop_cmd').click(this.popupCommand); + }, + + /** * Marker command */ - markerCommand: function (e) - { - il.COPagePres.startDraggingMarker(e.target.id.substr(5)); - }, - - /** + markerCommand(e) { + il.COPagePres.startDraggingMarker(e.target.id.substr(5)); + }, + + /** * Overlay command */ - overlayCommand: function (e) - { - il.COPagePres.startDraggingOverlay(e.target.id.substr(3)); - }, - - /** + overlayCommand(e) { + il.COPagePres.startDraggingOverlay(e.target.id.substr(3)); + }, + + /** * Popup command */ - popupCommand: function (e) - { - il.COPagePres.startDraggingPopup(e.target.id.substr(4)); - } + popupCommand(e) { + il.COPagePres.startDraggingPopup(e.target.id.substr(4)); + }, -} -il.Util.addOnLoad(function() {ilCOPagePCInteractiveImage.init();}); +}; +il.Util.addOnLoad(() => { ilCOPagePCInteractiveImage.init(); }); diff --git a/components/ILIAS/COPage/js/ilCOPagePres.js b/components/ILIAS/COPage/js/ilCOPagePres.js old mode 100755 new mode 100644 index a7712466c1a6..3a0ad22be840 --- a/components/ILIAS/COPage/js/ilCOPagePres.js +++ b/components/ILIAS/COPage/js/ilCOPagePres.js @@ -1,4 +1,3 @@ - /** * This file is part of ILIAS, a powerful learning management system * published by ILIAS open source e-Learning e.V. @@ -13,451 +12,453 @@ * https://www.ilias.de * https://github.com/ILIAS-eLearning * - *********************************************************************/ + ******************************************************************** */ -il.COPagePres = -{ - /** +il.COPagePres = { + /** * Basic init function */ - init: function () { - this.initToc(); - this.initInteractiveImages(); - this.updateQuestionOverviews(); - this.initMapAreas(); - this.initAdvancedContent(); - this.initAudioVideo(); - this.initAccordions(); - }, - - // - // Toc (as used in Wikis) - // - - /** + init() { + this.initToc(); + this.initInteractiveImages(); + this.updateQuestionOverviews(); + this.initMapAreas(); + this.initAdvancedContent(); + this.initAudioVideo(); + this.initAccordions(); + }, + + // + // Toc (as used in Wikis) + // + + /** * Init the table of content */ - initToc: function () { - // init toc - var cookiePos = document.cookie.indexOf("pg_hidetoc="); - if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) - { - this.toggleToc(); - } - }, - - initAccordions: function () { - if (typeof ilAccordionsInits !== "undefined") { - for (var i = 0; i < ilAccordionsInits.length; i++) { - il.Accordion.add(ilAccordionsInits[i]); - } - } - }, - - /** + initToc() { + // init toc + const cookiePos = document.cookie.indexOf('pg_hidetoc='); + if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) { + this.toggleToc(); + } + }, + + initAccordions() { + if (typeof ilAccordionsInits !== 'undefined') { + for (let i = 0; i < ilAccordionsInits.length; i++) { + il.Accordion.add(ilAccordionsInits[i]); + } + } + }, + + /** * Toggle the table of content */ - toggleToc: function() { - var toc_on, toc_off, toc = document.getElementById('ilPageTocContent'); - - if (!toc) { - return; - } - - toc_on = document.getElementById('ilPageTocOn'); - toc_off = document.getElementById('ilPageTocOff'); - - if (toc && toc.style.display == 'none') { - toc.style.display = 'block'; - toc_on.style.display = 'none'; - toc_off.style.display = ''; - document.cookie = "pg_hidetoc=0"; - } else { - toc_on.style.display = ''; - toc_off.style.display = 'none'; - toc.style.display = 'none'; - document.cookie = "pg_hidetoc=1"; - } - }, - - // - // Interactive Images - // - - iim_trigger: {}, - iim_area: {}, - iim_popup: {}, - iim_marker: {}, - dragging: false, - - /** + toggleToc() { + let toc_on; let toc_off; const + toc = document.getElementById('ilPageTocContent'); + + if (!toc) { + return; + } + + toc_on = document.getElementById('ilPageTocOn'); + toc_off = document.getElementById('ilPageTocOff'); + + if (toc && toc.style.display == 'none') { + toc.style.display = 'block'; + toc_on.style.display = 'none'; + toc_off.style.display = ''; + document.cookie = 'pg_hidetoc=0'; + } else { + toc_on.style.display = ''; + toc_off.style.display = 'none'; + toc.style.display = 'none'; + document.cookie = 'pg_hidetoc=1'; + } + }, + + // + // Interactive Images + // + + iim_trigger: {}, + iim_area: {}, + iim_popup: {}, + iim_marker: {}, + dragging: false, + + /** * Init interactive images */ - initInteractiveImages: function () { - - // preload overlay images (necessary?) - // add onmouseover event to all map areas - //$("map.iim > area").mouseover(this.overBaseArea); - //$("map.iim > area").mouseout(this.outBaseArea); - //$("map.iim > area").click(this.clickBaseArea); - - //$("a.ilc_marker_Marker").mouseover(this.overMarker); - //$("a.ilc_marker_Marker").mouseout(this.outMarker); - //$("a.ilc_marker_Marker").click(this.clickMarker); - - // add areas - document.querySelectorAll("[data-copg-iim-data-type='area']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMArea({ - area_id: d.copgIimAreaId, - iim_id: d.copgIimId, - tr_nr: d.copgIimTrNr, - title: d.copgIimTitle - }); - }); - - // add trigger for overlays/popups - document.querySelectorAll("[data-copg-iim-data-type='trigger']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMTrigger({ - iim_id: d.copgIimId, - type: d.copgIimType, - title: d.copgIimTitle, - ovx: d.copgIimOvx, - ovy: d.copgIimOvy, - markx: d.copgIimMarkx, - marky: d.copgIimMarky, - popup_nr: d.copgIimPopupNr, - nr: d.copgIimNr, - popx: d.copgIimPopx, - popy: d.copgIimPopy, - popwidth: d.copgIimPopwidth, - popheight: d.copgIimPopheight, - tr_id: d.copgIimTrId - }); - }); - - // add markers - document.querySelectorAll("[data-copg-iim-data-type='marker']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMMarker({ - iim_id: d.copgIimId, - m_id: d.copgIimMId, - markx: d.copgIimMarkx, - marky: d.copgIimMarky, - tr_nr: d.copgIimTrNr, - tr_id: d.copgIimTrId, - edit_mode: d.copgIimEditMode - }); - }); - - // add popups - document.querySelectorAll("[data-copg-iim-data-type='popup']").forEach(el => { - const d = el.dataset; - il.COPagePres.addIIMPopup({ - iim_id: d.copgIimId, - pop_id: d.copgIimPopId, - div_id: d.copgIimDivId, - nr: d.copgIimNr, - title: d.copgIimTitle - }); - }); - - $(document).on("il.accordion.start-opening", function (ev, el) { - il.COPagePres.fixMarkerPositions(); - }); - }, - - /** + initInteractiveImages() { + // preload overlay images (necessary?) + // add onmouseover event to all map areas + // $("map.iim > area").mouseover(this.overBaseArea); + // $("map.iim > area").mouseout(this.outBaseArea); + // $("map.iim > area").click(this.clickBaseArea); + + // $("a.ilc_marker_Marker").mouseover(this.overMarker); + // $("a.ilc_marker_Marker").mouseout(this.outMarker); + // $("a.ilc_marker_Marker").click(this.clickMarker); + + // add areas + document.querySelectorAll("[data-copg-iim-data-type='area']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMArea({ + area_id: d.copgIimAreaId, + iim_id: d.copgIimId, + tr_nr: d.copgIimTrNr, + title: d.copgIimTitle, + }); + }); + + // add trigger for overlays/popups + document.querySelectorAll("[data-copg-iim-data-type='trigger']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMTrigger({ + iim_id: d.copgIimId, + type: d.copgIimType, + title: d.copgIimTitle, + ovx: d.copgIimOvx, + ovy: d.copgIimOvy, + markx: d.copgIimMarkx, + marky: d.copgIimMarky, + popup_nr: d.copgIimPopupNr, + nr: d.copgIimNr, + popx: d.copgIimPopx, + popy: d.copgIimPopy, + popwidth: d.copgIimPopwidth, + popheight: d.copgIimPopheight, + tr_id: d.copgIimTrId, + }); + }); + + // add markers + document.querySelectorAll("[data-copg-iim-data-type='marker']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMMarker({ + iim_id: d.copgIimId, + m_id: d.copgIimMId, + markx: d.copgIimMarkx, + marky: d.copgIimMarky, + tr_nr: d.copgIimTrNr, + tr_id: d.copgIimTrId, + edit_mode: d.copgIimEditMode, + }); + }); + + // add popups + document.querySelectorAll("[data-copg-iim-data-type='popup']").forEach((el) => { + const d = el.dataset; + il.COPagePres.addIIMPopup({ + iim_id: d.copgIimId, + pop_id: d.copgIimPopId, + div_id: d.copgIimDivId, + nr: d.copgIimNr, + title: d.copgIimTitle, + }); + }); + + $(document).on('il.accordion.start-opening', (ev, el) => { + il.COPagePres.fixMarkerPositions(); + }); + }, + + /** * Mouse over marker -> show the overlay image */ - overMarker: function (e) { - var marker_tr_nr, iim_id; - - if (this.dragging) { - return; - } - - marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; - iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; - il.COPagePres.handleOverEvent(iim_id, marker_tr_nr, true); - }, - - /** - * Mouse leaves marker -> hide the overlay image + overMarker(e) { + let marker_tr_nr; let + iim_id; + + if (this.dragging) { + return; + } + + marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; + iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; + il.COPagePres.handleOverEvent(iim_id, marker_tr_nr, true); + }, + + /** + * Mouse leaves marker -> hide the overlay image */ - outMarker: function (e) { - var marker_tr_nr, iim_id; - if (this.dragging) { - return; - } - - marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; - iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; - il.COPagePres.handleOutEvent(iim_id, marker_tr_nr); - }, - - /** + outMarker(e) { + let marker_tr_nr; let + iim_id; + if (this.dragging) { + return; + } + + marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; + iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; + il.COPagePres.handleOutEvent(iim_id, marker_tr_nr); + }, + + /** * Mouse over base image map area -> show the overlay image * and (on first time) init the image map of the overlay image */ - overBaseArea: function (e) { - var area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_area[e.target.id].iim_id; - - il.COPagePres.handleOverEvent(iim_id, area_tr_nr, false); - }, - - /** + overBaseArea(e) { + const area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_area[e.target.id]; + + il.COPagePres.handleOverEvent(iim_id, area_tr_nr, false); + }, + + /** * Mouse over base image map area or marker -> show the overlay image * and (on first time) init the image map of the overlay image */ - handleOverEvent: function (iim_id, area_tr_nr, is_marker) - { - var k, j, tr, coords, ovx, ovy, base, ov, base_map_name, c, k2, i2, tr2; - - if (this.dragging) { - return; - } - - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - - if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { - base = $("img#base_img_" + tr.iim_id); - ov = $("img#iim_ov_" + tr.tr_id); - // no overlay image? -> skip - if (ov.length == 0) { - continue; - } - - // no usamap (e.g. edit mode) -> skip) - if (typeof(base.attr('usemap')) === "undefined") { - continue; - } - - base_map_name = base.attr('usemap').substr(1); - - // display the overlay at the correct position - ov.css('position', 'absolute'); - ovx = parseInt(tr.ovx, 10); - ovy = parseInt(tr.ovy, 10); - ov.css('display', ''); - - // this fixes the position in case of the toc2win - // view, if the fixed div has been scrolled - $(ov).position({ - my: "left top", - at: "left+" + ovx + " top+" + ovy, - of: "img#base_img_" + tr.iim_id, - collision: "none" - }); - - // on first time we need to initialize the - // image map of the overlay image - if (tr.map_initialized == null && !is_marker) - { - tr.map_initialized = true; - $("map[name='" + base_map_name + "'] > area").each( - function (i,el) { - // if title is the same, add area to overlay map - if (il.COPagePres.iim_area[el.id].tr_nr == area_tr_nr) { - coords = $(el).attr("coords"); - // fix coords - switch($(el).attr("shape").toLowerCase()) { - - case "rect": - c = coords.split(","); - coords = String((parseInt(c[0], 10) - ovx) + "," + - (parseInt(c[1], 10) - ovy) + "," + - (parseInt(c[2], 10) - ovx) + "," + - (parseInt(c[3], 10) - ovy)); - break; - - case "poly": - c = coords.split(","); - coords = ""; - var sep = ""; - for (j in c) { - if (j % 2 == 0) { - coords = coords + sep + parseInt(c[j] - ovx, 10); - } else { - coords = coords + sep + parseInt(c[j] - ovy, 10); - } - sep = ","; - } - break; - - case "circle": - c = coords.split(","); - coords = String((parseInt(c[0], 10) - ovx) + "," + - (parseInt(c[1], 10) - ovy) + "," + - (parseInt(c[2], 10))); - break; - } - - // set shape and coords - $("area#iim_ov_area_" + tr.tr_id).attr("coords", coords); - $("area#iim_ov_area_" + tr.tr_id).attr("shape", $(el).attr("shape")); - - // add mouse event listeners - k2 = k; - i2 = "iim_ov_" + tr.tr_id; - tr2 = tr.tr_id; - $("area#iim_ov_area_" + tr.tr_id).mouseover( - function() {il.COPagePres.overOvArea(k2, true, i2);}); - $("area#iim_ov_area_" + tr.tr_id).mouseout( - function() {il.COPagePres.overOvArea(k2, false, i2);}); - $("area#iim_ov_area_" + tr.tr_id).click( - function(e) {il.COPagePres.clickOvArea(e, tr2);}); - } - }); - } - } - } - }, - - /** + handleOverEvent(iim_id, area_tr_nr, is_marker) { + let k; let j; let tr; let coords; let ovx; let ovy; let base; let ov; let base_map_name; let c; let k2; let i2; let + tr2; + + if (this.dragging) { + return; + } + + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + + if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { + base = $(`img#base_img_${tr.iim_id}`); + ov = $(`img#iim_ov_${tr.tr_id}`); + // no overlay image? -> skip + if (ov.length == 0) { + continue; + } + + // no usamap (e.g. edit mode) -> skip) + if (typeof (base.attr('usemap')) === 'undefined') { + continue; + } + + base_map_name = base.attr('usemap').substr(1); + + // display the overlay at the correct position + ov.css('position', 'absolute'); + ovx = parseInt(tr.ovx, 10); + ovy = parseInt(tr.ovy, 10); + ov.css('display', ''); + + // this fixes the position in case of the toc2win + // view, if the fixed div has been scrolled + $(ov).position({ + my: 'left top', + at: `left+${ovx} top+${ovy}`, + of: `img#base_img_${tr.iim_id}`, + collision: 'none', + }); + + // on first time we need to initialize the + // image map of the overlay image + if (tr.map_initialized == null && !is_marker) { + tr.map_initialized = true; + $(`map[name='${base_map_name}'] > area`).each( + (i, el) => { + // if title is the same, add area to overlay map + if (il.COPagePres.iim_area[el.id].tr_nr == area_tr_nr) { + coords = $(el).attr('coords'); + // fix coords + switch ($(el).attr('shape').toLowerCase()) { + case 'rect': + c = coords.split(','); + coords = String(`${parseInt(c[0], 10) - ovx},${ + parseInt(c[1], 10) - ovy},${ + parseInt(c[2], 10) - ovx},${ + parseInt(c[3], 10) - ovy}`); + break; + + case 'poly': + c = coords.split(','); + coords = ''; + var sep = ''; + for (j in c) { + if (j % 2 == 0) { + coords = coords + sep + parseInt(c[j] - ovx, 10); + } else { + coords = coords + sep + parseInt(c[j] - ovy, 10); + } + sep = ','; + } + break; + + case 'circle': + c = coords.split(','); + coords = String(`${parseInt(c[0], 10) - ovx},${ + parseInt(c[1], 10) - ovy},${ + parseInt(c[2], 10)}`); + break; + } + + // set shape and coords + $(`area#iim_ov_area_${tr.tr_id}`).attr('coords', coords); + $(`area#iim_ov_area_${tr.tr_id}`).attr('shape', $(el).attr('shape')); + + // add mouse event listeners + k2 = k; + i2 = `iim_ov_${tr.tr_id}`; + tr2 = tr.tr_id; + $(`area#iim_ov_area_${tr.tr_id}`).mouseover( + () => { il.COPagePres.overOvArea(k2, true, i2); }, + ); + $(`area#iim_ov_area_${tr.tr_id}`).mouseout( + () => { il.COPagePres.overOvArea(k2, false, i2); }, + ); + $(`area#iim_ov_area_${tr.tr_id}`).click( + (e) => { il.COPagePres.clickOvArea(e, tr2); }, + ); + } + }, + ); + } + } + } + }, + + /** * Leave a base image map area: hide corresponding images */ - outBaseArea: function (e) { - var area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_area[e.target.id].iim_id; - il.COPagePres.handleOutEvent(iim_id, area_tr_nr); - }, - - /** + outBaseArea(e) { + const area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_area[e.target.id]; + il.COPagePres.handleOutEvent(iim_id, area_tr_nr); + }, + + /** * Leave a base image map area: hide corresponding images */ - handleOutEvent: function (iim_id, area_tr_nr) - { - var k, tr; - - if (this.dragging) { - return; - } - - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - if (tr.nr == area_tr_nr && tr.iim_id == iim_id && - (il.COPagePres.iim_trigger[k].over_ov_area == null || - !il.COPagePres.iim_trigger[k].over_ov_area + handleOutEvent(iim_id, area_tr_nr) { + let k; let + tr; + + if (this.dragging) { + return; + } + + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + if (tr.nr == area_tr_nr && tr.iim_id == iim_id + && (il.COPagePres.iim_trigger[k].over_ov_area == null + || !il.COPagePres.iim_trigger[k].over_ov_area )) { - $("img#iim_ov_" + tr.tr_id).css('display', 'none'); - } - } - }, + $(`img#iim_ov_${tr.tr_id}`).css('display', 'none'); + } + } + }, - - /** + /** * Triggered by mouseover/out on imagemap of overlay image */ - overOvArea: function (k, value, ov_id) { - if (this.dragging) { - return; - } - - il.COPagePres.iim_trigger[k].over_ov_area = value; - if (value) { - $("img#" + ov_id).css('display', ''); - } else { - $("img#" + ov_id).css('display', 'none'); - } - }, - - /** + overOvArea(k, value, ov_id) { + if (this.dragging) { + return; + } + + il.COPagePres.iim_trigger[k].over_ov_area = value; + if (value) { + $(`img#${ov_id}`).css('display', ''); + } else { + $(`img#${ov_id}`).css('display', 'none'); + } + }, + + /** * A marker is clicked */ - clickMarker: function (e) - { - var k, tr, - marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_marker[e.target.id].iim_id; - - if (il.COPagePres.iim_marker[e.target.id].edit_mode == "1") { - return; - } - - if (this.dragging) { - return; - } - - // iterate through the triggers and search the correct one - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - if (tr.nr == marker_tr_nr && tr.iim_id == iim_id) { - il.COPagePres.handleAreaClick(e, tr.tr_id); - } - } - }, - - /** + clickMarker(e) { + let k; let tr; + const marker_tr_nr = il.COPagePres.iim_marker[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_marker[e.target.id]; + + if (il.COPagePres.iim_marker[e.target.id].edit_mode == '1') { + return; + } + + if (this.dragging) { + return; + } + + // iterate through the triggers and search the correct one + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + if (tr.nr == marker_tr_nr && tr.iim_id == iim_id) { + il.COPagePres.handleAreaClick(e, tr.tr_id); + } + } + }, + + /** * A base image map area is clicked */ - clickBaseArea: function (e) { - var k, tr, - area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr, - iim_id = il.COPagePres.iim_area[e.target.id].iim_id; - - if (this.dragging) { - return; - } - - // iterate through the triggers and search the correct one - for (k in il.COPagePres.iim_trigger) { - tr = il.COPagePres.iim_trigger[k]; - if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { - il.COPagePres.handleAreaClick(e, tr.tr_id); - } - } - }, - - /** + clickBaseArea(e) { + let k; let tr; + const area_tr_nr = il.COPagePres.iim_area[e.target.id].tr_nr; + const { iim_id } = il.COPagePres.iim_area[e.target.id]; + + if (this.dragging) { + return; + } + + // iterate through the triggers and search the correct one + for (k in il.COPagePres.iim_trigger) { + tr = il.COPagePres.iim_trigger[k]; + if (tr.nr == area_tr_nr && tr.iim_id == iim_id) { + il.COPagePres.handleAreaClick(e, tr.tr_id); + } + } + }, + + /** * Handle area click (triggered by base or overlay image map area) */ - handleAreaClick: function (e, tr_id) { - const areaEl = e.target; - console.log(areaEl); - console.log(tr_id); - console.log(il.COPagePres.iim_trigger); - - var tr = il.COPagePres.iim_trigger[tr_id]; - var el = document.getElementById("iim_popup_" + tr.iim_id + "_" + tr.popup_nr), - base, pos, x, y; - - if (el == null || this.dragging) { - e.preventDefault(); - return; - } - - const nr = tr.popup_nr; - const popupEl = document.querySelector("[data-copg-cont-type='iim-popup'][data-copg-popup-nr='" + nr + "']"); - - const button = e.target; - const tooltip = popupEl; - - if (popupEl) { - if (popupEl.style.display == "none") { - popupEl.style.display = ''; - } else { - popupEl.style.display = 'none'; - } - e.preventDefault(); - return; - - - const signalId = popupEl.dataset.signalId; - console.log("TRIGGER"); - $(document).trigger(signalId, - { - 'id' : signalId, 'event' : 'click', - 'triggerer' : $(areaEl), - 'options' : JSON.parse('[]') - } - ); - if (tr.popup_initialized == null) { - tr.popup_initialized = true; - /* + handleAreaClick(e, tr_id) { + const areaEl = e.target; + console.log(areaEl); + console.log(tr_id); + console.log(il.COPagePres.iim_trigger); + + const tr = il.COPagePres.iim_trigger[tr_id]; + const el = document.getElementById(`iim_popup_${tr.iim_id}_${tr.popup_nr}`); + let base; let pos; let x; let + y; + + if (el == null || this.dragging) { + e.preventDefault(); + return; + } + + const nr = tr.popup_nr; + const popupEl = document.querySelector(`[data-copg-cont-type='iim-popup'][data-copg-popup-nr='${nr}']`); + + const button = e.target; + const tooltip = popupEl; + + if (popupEl) { + if (popupEl.style.display == 'none') { + popupEl.style.display = ''; + } else { + popupEl.style.display = 'none'; + } + e.preventDefault(); + return; + + const { signalId } = popupEl.dataset; + console.log('TRIGGER'); + $(document).trigger( + signalId, + { + id: signalId, + event: 'click', + triggerer: $(areaEl), + options: JSON.parse('[]'), + }, + ); + if (tr.popup_initialized == null) { + tr.popup_initialized = true; + /* console.log("TRIGGER"); $(document).trigger(signalId, { @@ -465,15 +466,15 @@ il.COPagePres = 'triggerer' : $(areaEl), 'options' : JSON.parse('[]') } - );*/ - } - } + ); */ + } + } - // on first time we need to initialize content overlay + // on first time we need to initialize content overlay - if (tr.popup_initialized == null) { - tr.popup_initialized = true; - /* + if (tr.popup_initialized == null) { + tr.popup_initialized = true; + /* if (popupEl) { $(document).trigger(signalId, { @@ -482,15 +483,14 @@ il.COPagePres = 'options': JSON.parse('[]') } ); - }*/ - /*il.Overlay.add("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, + } */ + /* il.Overlay.add("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, {"yuicfg":{"visible":false,"fixedcenter":false}, - "auto_hide":false});*/ - } - + "auto_hide":false}); */ + } - // show the overlay - /* + // show the overlay + /* base = $("img#base_img_" + il.COPagePres.iim_trigger[tr_id].iim_id); pos = base.offset(); x = pos.left + parseInt(il.COPagePres.iim_trigger[tr_id].popx, 10); @@ -499,461 +499,462 @@ il.COPagePres = il.Overlay.setHeight("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, il.COPagePres.iim_trigger[tr_id].popheight); il.Overlay.toggle(e, "iim_popup_" + tr.iim_id + "_" + tr.popup_nr, null, false, null, null, "click"); il.Overlay.setX("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, x); - il.Overlay.setY("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, y);*/ + il.Overlay.setY("iim_popup_" + tr.iim_id + "_" + tr.popup_nr, y); */ + + e.preventDefault(); + }, - e.preventDefault(); - }, - - /** + /** * A overlay image map area is clicked */ - clickOvArea: function (e, tr_id){ - il.COPagePres.handleAreaClick(e, tr_id); - }, - - addIIMTrigger: function(tr) { - this.iim_trigger[tr.tr_id] = tr; - }, - - addIIMArea: function(a) { - this.iim_area[a.area_id] = a; - }, - - addIIMPopup: function(p) { - this.iim_popup[p.pop_id] = p; - }, - - addIIMMarker: function(m) { - var base, pos, mark, mx, my; - - this.iim_marker[m.m_id] = m; - const p = this.fixMarkerPosition; - p(m); - window.setTimeout(function() { - p(m); - }, 500); - - }, - - fixMarkerPosition: function(m) { - var base, pos, mark, mx, my; - base = $("img#base_img_" + m.iim_id); - pos = base.offset(); - mark = $("a#" + m.m_id); - // display the marker at the correct position - mark.css('position', 'absolute'); - mx = pos.left + parseInt(m.markx, 10); - my = pos.top + parseInt(m.marky, 10); - mark.css('display', ''); - il.Overlay.setX(m.m_id, mx); - il.Overlay.setY(m.m_id, my); - - }, - - fixMarkerPositions: function () { - var m, k, base, pos, mark, mx, my; - - for (k in il.COPagePres.iim_marker) { - m = il.COPagePres.iim_marker[k]; - this.fixMarkerPosition(m); - } - }, - - /** + clickOvArea(e, tr_id) { + il.COPagePres.handleAreaClick(e, tr_id); + }, + + addIIMTrigger(tr) { + this.iim_trigger[tr.tr_id] = tr; + }, + + addIIMArea(a) { + this.iim_area[a.area_id] = a; + }, + + addIIMPopup(p) { + this.iim_popup[p.pop_id] = p; + }, + + addIIMMarker(m) { + let base; let pos; let mark; let mx; let + my; + + this.iim_marker[m.m_id] = m; + const p = this.fixMarkerPosition; + p(m); + window.setTimeout(() => { + p(m); + }, 500); + }, + + fixMarkerPosition(m) { + let base; let pos; let mark; let mx; let + my; + base = $(`img#base_img_${m.iim_id}`); + pos = base.offset(); + mark = $(`a#${m.m_id}`); + // display the marker at the correct position + mark.css('position', 'absolute'); + mx = pos.left + parseInt(m.markx, 10); + my = pos.top + parseInt(m.marky, 10); + mark.css('display', ''); + il.Overlay.setX(m.m_id, mx); + il.Overlay.setY(m.m_id, my); + }, + + fixMarkerPositions() { + let m; let k; let base; let pos; let mark; let mx; let + my; + + for (k in il.COPagePres.iim_marker) { + m = il.COPagePres.iim_marker[k]; + this.fixMarkerPosition(m); + } + }, + + /** * Make marker draggable */ - startDraggingMarker: function(tr_nr) { - var k, mark; - - this.dragging = true; - for (k in il.COPagePres.iim_marker) { - if (il.COPagePres.iim_marker[k].tr_nr == tr_nr) { - mark = il.COPagePres.iim_marker[k]; - $("a#" + il.COPagePres.iim_marker[k].m_id).css("display", ""); - il.COPagePres.fixMarkerPositions(); - $("a#" + il.COPagePres.iim_marker[k].m_id).draggable({ - drag: function(event, ui) { - var base, bpos, marker, mpos, position; - - base = $("img#base_img_" + mark.iim_id); - bpos = base.position(); - marker = $("a#" + mark.m_id); - mpos = marker.position(); - //position = (Math.round(mpos.left) - Math.round(bpos.left)) + "," + - // (Math.round(mpos.top) - Math.round(bpos.top)); - position = (Math.round(marker.offset().left) - Math.round(base.offset().left)) + "," + - (Math.round(marker.offset().top) - Math.round(base.offset().top)); - - $("input#markpos_" + mark.tr_nr).attr("value", position); - } - }); - - il.COPagePres.initDragToolbar(); - } - else - { - $("a#" + il.COPagePres.iim_marker[k].m_id).css("display", "none"); - } - } - }, - - stopDraggingMarker: function() { - this.dragging = false; - }, - - /** + startDraggingMarker(tr_nr) { + let k; let + mark; + + this.dragging = true; + for (k in il.COPagePres.iim_marker) { + if (il.COPagePres.iim_marker[k].tr_nr == tr_nr) { + mark = il.COPagePres.iim_marker[k]; + $(`a#${il.COPagePres.iim_marker[k].m_id}`).css('display', ''); + il.COPagePres.fixMarkerPositions(); + $(`a#${il.COPagePres.iim_marker[k].m_id}`).draggable({ + drag(event, ui) { + let base; let bpos; let marker; let mpos; let + position; + + base = $(`img#base_img_${mark.iim_id}`); + bpos = base.position(); + marker = $(`a#${mark.m_id}`); + mpos = marker.position(); + // position = (Math.round(mpos.left) - Math.round(bpos.left)) + "," + + // (Math.round(mpos.top) - Math.round(bpos.top)); + position = `${Math.round(marker.offset().left) - Math.round(base.offset().left)},${ + Math.round(marker.offset().top) - Math.round(base.offset().top)}`; + + $(`input#markpos_${mark.tr_nr}`).attr('value', position); + }, + }); + + il.COPagePres.initDragToolbar(); + } else { + $(`a#${il.COPagePres.iim_marker[k].m_id}`).css('display', 'none'); + } + } + }, + + stopDraggingMarker() { + this.dragging = false; + }, + + /** * Make overlay draggable */ - startDraggingOverlay: function(tr_nr) { - var k, trigger, dtr, ov, base, bpos, ovx, ovy; - - this.dragging = true; - - for (k in il.COPagePres.iim_trigger) { - trigger = il.COPagePres.iim_trigger[k]; - - if (trigger.nr == tr_nr) { - dtr = trigger; - ov = $("img#iim_ov_" + dtr.tr_id); - - // remove map for dragging - ov.attr('usemap',''); - - il.COPagePres.initDragToolbar(); - - base = $("img#base_img_" + dtr.iim_id); - bpos = base.offset(); - ovx = bpos.left + parseInt(dtr.ovx, 10); - ovy = bpos.top + parseInt(dtr.ovy, 10); - ov.css('display', ''); - ov.css("position", "absolute"); - il.Overlay.setX("iim_ov_" + dtr.tr_id, ovx); - il.Overlay.setY("iim_ov_" + dtr.tr_id, ovy); - - dtr = trigger; - ov.draggable({ - stop: function(event, ui) { - var ovpos, position; - - ovpos = ov.position(); - position = (Math.round(ov.offset().left) - Math.round(base.offset().left)) + "," + - (Math.round(ov.offset().top) - Math.round(base.offset().top)); - - $("input#ovpos_" + dtr.nr).attr("value", position); - } - }); - } - } - }, - - /** + startDraggingOverlay(tr_nr) { + let k; let trigger; let dtr; let ov; let base; let bpos; let ovx; let + ovy; + + this.dragging = true; + + for (k in il.COPagePres.iim_trigger) { + trigger = il.COPagePres.iim_trigger[k]; + + if (trigger.nr == tr_nr) { + dtr = trigger; + ov = $(`img#iim_ov_${dtr.tr_id}`); + + // remove map for dragging + ov.attr('usemap', ''); + + il.COPagePres.initDragToolbar(); + + base = $(`img#base_img_${dtr.iim_id}`); + bpos = base.offset(); + ovx = bpos.left + parseInt(dtr.ovx, 10); + ovy = bpos.top + parseInt(dtr.ovy, 10); + ov.css('display', ''); + ov.css('position', 'absolute'); + il.Overlay.setX(`iim_ov_${dtr.tr_id}`, ovx); + il.Overlay.setY(`iim_ov_${dtr.tr_id}`, ovy); + + dtr = trigger; + ov.draggable({ + stop(event, ui) { + let ovpos; let + position; + + ovpos = ov.position(); + position = `${Math.round(ov.offset().left) - Math.round(base.offset().left)},${ + Math.round(ov.offset().top) - Math.round(base.offset().top)}`; + + $(`input#ovpos_${dtr.nr}`).attr('value', position); + }, + }); + } + } + }, + + /** * Make popup draggable */ - startDraggingPopup: function(tr_nr) { - var i, k, dtr, cpop, pdummy, base, bpos, popx, popy; - - this.dragging = true; - - // get correct trigger - for (k in il.COPagePres.iim_trigger) { - if (il.COPagePres.iim_trigger[k].nr == tr_nr) { - dtr = il.COPagePres.iim_trigger[k]; - - // get correct popup - for (i in il.COPagePres.iim_popup) { - if (il.COPagePres.iim_popup[i].nr == - il.COPagePres.iim_trigger[k].popup_nr) { - - cpop = il.COPagePres.iim_popup[i]; - pdummy = document.getElementById("popupdummy"); - if (pdummy == null) { - $('div#il_center_col').append('
'); - pdummy = $("div#popupdummy"); - } else { - pdummy = $("div#popupdummy"); - } - - il.COPagePres.initDragToolbar(); - - base = $("img#base_img_" + cpop.iim_id); - bpos = base.offset(); - popx = bpos.left + parseInt(dtr.popx, 10); - popy = bpos.top + parseInt(dtr.popy, 10); - pdummy.css("position", "absolute"); - pdummy.css('width', dtr.popwidth); - pdummy.css('height', dtr.popheight); - pdummy.css('display', ''); - il.Overlay.setX("popupdummy", popx); - il.Overlay.setY("popupdummy", popy); - - - pdummy.draggable({ - stop: function(event, ui) { - var pdpos, position; - - pdpos = pdummy.position(); - position = (Math.round(pdummy.offset().left) - Math.round(base.offset().left)) + "," + - (Math.round(pdummy.offset().top) - Math.round(base.offset().top)); - $("input#poppos_" + dtr.nr).attr("value", position); - } - }); - } - } - } - } - }, - - /** + startDraggingPopup(tr_nr) { + let i; let k; let dtr; let cpop; let pdummy; let base; let bpos; let popx; let + popy; + + this.dragging = true; + + // get correct trigger + for (k in il.COPagePres.iim_trigger) { + if (il.COPagePres.iim_trigger[k].nr == tr_nr) { + dtr = il.COPagePres.iim_trigger[k]; + + // get correct popup + for (i in il.COPagePres.iim_popup) { + if (il.COPagePres.iim_popup[i].nr + == il.COPagePres.iim_trigger[k].popup_nr) { + cpop = il.COPagePres.iim_popup[i]; + pdummy = document.getElementById('popupdummy'); + if (pdummy == null) { + $('div#il_center_col').append('
'); + pdummy = $('div#popupdummy'); + } else { + pdummy = $('div#popupdummy'); + } + + il.COPagePres.initDragToolbar(); + + base = $(`img#base_img_${cpop.iim_id}`); + bpos = base.offset(); + popx = bpos.left + parseInt(dtr.popx, 10); + popy = bpos.top + parseInt(dtr.popy, 10); + pdummy.css('position', 'absolute'); + pdummy.css('width', dtr.popwidth); + pdummy.css('height', dtr.popheight); + pdummy.css('display', ''); + il.Overlay.setX('popupdummy', popx); + il.Overlay.setY('popupdummy', popy); + + pdummy.draggable({ + stop(event, ui) { + let pdpos; let + position; + + pdpos = pdummy.position(); + position = `${Math.round(pdummy.offset().left) - Math.round(base.offset().left)},${ + Math.round(pdummy.offset().top) - Math.round(base.offset().top)}`; + $(`input#poppos_${dtr.nr}`).attr('value', position); + }, + }); + } + } + } + } + }, + + /** * Init drag toolbar */ - initDragToolbar: function() { - // show the toolbar - $("#drag_toolbar").removeClass("ilNoDisplay"); - this.fixMarkerPositions(); - $("#save_pos_button").click(function () { - $("input#update_tr_button").trigger("click"); - }); - }, - - - // - // Question Overviews - // - - qover: {}, - ganswer_data: {}, - - addQuestionOverview: function(conf) { - this.qover[conf.id] = conf; - }, - - updateQuestionOverviews: function() { - var correct = {}, - incorrect = {}, - correct_cnt = 0, - incorrect_cnt = 0, - answered_correctly, index, k, i, ov_el,ul, j, qtext; - - if (typeof questions === 'undefined') { - - // #17532 - question overview does not work in copage editor / preview - for (i in this.qover) { - ov_el = $('div#' + this.qover[i].div_id); - $(ov_el).addClass('ilBox'); - $(ov_el).css('margin', '5px'); - ov_el.empty(); - ov_el.append('
' + ilias.questions.txt.ov_preview + '
'); - } - - return; - } - - for (k in questions) { - answered_correctly = true; - index=parseInt(k, 10); - if (!isNaN(index)) { - if (!answers[index]) { - answered_correctly = false; - } else { - if (answers[index].passed!=true) { - answered_correctly = false; - } - } - if (!answered_correctly) { - incorrect[k] = k; - incorrect_cnt++; - } else { - correct[k] = k; - correct_cnt++; - } - } - } - - // iterate all question overview elements - for (i in this.qover) { - ov_el = $('div#' + this.qover[i].div_id); - - // remove all children - ov_el.empty(); - - // show success message, if all questions have been answered - if (incorrect_cnt == 0) { - ov_el.attr("class", 'ilc_qover_Correct'); - ov_el.append( - ilias.questions.txt.ov_all_correct); - } else { - ov_el.attr("class", 'ilc_qover_Incorrect'); - // show message including of number of not - // correctly answered questions - if (this.qover[i].short_message == "y") { - ov_el.append('
' + - ilias.questions.txt.ov_some_correct.split("[x]").join(String(correct_cnt)) - .split("[y]").join(String(incorrect_cnt + correct_cnt)) + - "
" - ); - } - - if (this.qover[i].list_wrong_questions == "y") { - ov_el.append( - '
' + - ilias.questions.txt.ov_wrong_answered + ":" + '
' - ); - - // list all incorrect answered questions - ov_el.append(''); - ul = $('div#' + this.qover[i].div_id + " > ul"); - for (j in incorrect) { - qtext = questions[j].question; - - if (questions[j].type == "assClozeTest") { - qtext = questions[j].title; - } - - ul.append( - '
  • ' + - '' + qtext + '' - + '
  • '); - } - } - } - } - }, - - // jump to a question - jumpToQuestion: function(qid) { - if (typeof pager !== "undefined") { - pager.jumpToElement("container" + qid); - } - return false; - }, - - setGivenAnswerData: function (data) { - ilCOPagePres.ganswer_data = data; - }, - - // - // Map area functions - // - - // init map areas - initMapAreas: function() { - - $('img[usemap^="#map_il_"][class!="ilIim"]').maphilight({"neverOn":true}); - }, - - //// - //// Handle advanced content - //// - showadvcont: true, - initAdvancedContent: function() { - var c = $("div.ilc_section_AdvancedKnowledge"), - b = $("#ilPageShowAdvContent"), cookiePos; - if (c.length > 0 && b.length > 0) { - cookiePos = document.cookie.indexOf("pg_hideadv="); - if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) { - this.showadvcont = false; - } - - $("#ilPageShowAdvContent").css("display", "block"); - if (il.COPagePres.showadvcont) { - $("div.ilc_section_AdvancedKnowledge").css("display", ""); - $("#ilPageShowAdvContent > span:nth-child(1)").css("display", "none"); - } else { - $("div.ilc_section_AdvancedKnowledge").css("display", "none"); - $("#ilPageShowAdvContent > span:nth-child(2)").css("display", "none"); - } - $("#ilPageShowAdvContent").click(function () { - if (il.COPagePres.showadvcont) { - $("div.ilc_section_AdvancedKnowledge").css("display", "none"); - $("#ilPageShowAdvContent > span:nth-child(1)").css("display", ""); - $("#ilPageShowAdvContent > span:nth-child(2)").css("display", "none"); - il.COPagePres.showadvcont = false; - document.cookie = "pg_hideadv=1"; - } else { - $("div.ilc_section_AdvancedKnowledge").css("display", ""); - $("#ilPageShowAdvContent > span:nth-child(1)").css("display", "none"); - $("#ilPageShowAdvContent > span:nth-child(2)").css("display", ""); - il.COPagePres.showadvcont = true; - document.cookie = "pg_hideadv=0"; - } - return false; - }); - } - }, - - //// - //// Audio/Video - //// - - initAudioVideo: function (acc_el) { - var $elements; - if (acc_el) { - $elements = $(acc_el).find('video.ilPageVideo,audio.ilPageAudio'); - } else { - $elements = $('video.ilPageVideo,audio.ilPageAudio'); - } - - if ($elements.mediaelementplayer) { - $elements.each(function(i, el) { - var def, cfg; - - def = $(el).find("track[default='default']").first().attr("srclang"); - cfg = {}; - if (def != ""){ - cfg.startLanguage = def; - } - $(el).mediaelementplayer(cfg); - }); - } - }, - - accordionRerender: function (acc_el) { - $(acc_el).find('video.ilPageVideo,audio.ilPageAudio').each(function(i, el) { - if (el.player) el.player.remove(); - }); - - il.COPagePres.initAudioVideo(acc_el); - }, - - setFullscreenModalShowSignal: function (signal, suffix) { - il.COPagePres.fullscreen_signal = signal; - il.COPagePres.fullscreen_suffix = suffix - $('#il-copg-mob-fullscreen' + suffix).closest(".modal").on('shown.bs.modal', function () { - il.COPagePres.resizeFullScreenModal(suffix); - }).on('hidden.bs.modal', function () { - $("#il-copg-mob-fullscreen" + suffix).attr("src", ""); - }); - }, - - inIframe: function () { - try { - return window.self !== window.top; - } catch (e) { - return true; - } - }, - - openFullScreenModal: function (target) { - // see 32198 - if (il.COPagePres.inIframe()) { - window.parent.il.COPagePres.openFullScreenModal(target); - return; - } - $("#il-copg-mob-fullscreen" + il.COPagePres.fullscreen_suffix).attr("src", target); - $(document).trigger(il.COPagePres.fullscreen_signal, { - id: il.COPagePres.fullscreen_signal, - event: 'click', - triggerer: $(document), - options: JSON.parse('[]') - }); - }, - - resizeFullScreenModal: function (suffix) { - var vp = il.Util.getViewportRegion(); - var ifr = il.Util.getRegion('#il-copg-mob-fullscreen' + suffix); - $('.il-copg-mob-fullscreen').css("height", (vp.height - ifr.top + vp.top - 120) + "px"); - } - + initDragToolbar() { + // show the toolbar + $('#drag_toolbar').removeClass('ilNoDisplay'); + this.fixMarkerPositions(); + $('#save_pos_button').click(() => { + $('input#update_tr_button').trigger('click'); + }); + }, + + // + // Question Overviews + // + + qover: {}, + ganswer_data: {}, + + addQuestionOverview(conf) { + this.qover[conf.id] = conf; + }, + + updateQuestionOverviews() { + const correct = {}; + const incorrect = {}; + let correct_cnt = 0; + let incorrect_cnt = 0; + let answered_correctly; let index; let k; let i; let ov_el; let ul; let j; let + qtext; + + if (typeof questions === 'undefined') { + // #17532 - question overview does not work in copage editor / preview + for (i in this.qover) { + ov_el = $(`div#${this.qover[i].div_id}`); + $(ov_el).addClass('ilBox'); + $(ov_el).css('margin', '5px'); + ov_el.empty(); + ov_el.append(`
    ${ilias.questions.txt.ov_preview}
    `); + } + + return; + } + + for (k in questions) { + answered_correctly = true; + index = parseInt(k, 10); + if (!isNaN(index)) { + if (!answers[index]) { + answered_correctly = false; + } else if (answers[index].passed != true) { + answered_correctly = false; + } + if (!answered_correctly) { + incorrect[k] = k; + incorrect_cnt++; + } else { + correct[k] = k; + correct_cnt++; + } + } + } + + // iterate all question overview elements + for (i in this.qover) { + ov_el = $(`div#${this.qover[i].div_id}`); + + // remove all children + ov_el.empty(); + + // show success message, if all questions have been answered + if (incorrect_cnt == 0) { + ov_el.attr('class', 'ilc_qover_Correct'); + ov_el.append( + ilias.questions.txt.ov_all_correct, + ); + } else { + ov_el.attr('class', 'ilc_qover_Incorrect'); + // show message including of number of not + // correctly answered questions + if (this.qover[i].short_message == 'y') { + ov_el.append(`
    ${ + ilias.questions.txt.ov_some_correct.split('[x]').join(String(correct_cnt)) + .split('[y]').join(String(incorrect_cnt + correct_cnt)) + }
    `); + } + + if (this.qover[i].list_wrong_questions == 'y') { + ov_el.append( + `
    ${ + ilias.questions.txt.ov_wrong_answered}:` + '
    ', + ); + + // list all incorrect answered questions + ov_el.append(''); + ul = $(`div#${this.qover[i].div_id} > ul`); + for (j in incorrect) { + qtext = questions[j].question; + + if (questions[j].type == 'assClozeTest') { + qtext = questions[j].title; + } + + ul.append( + '
  • ' + + `${qtext}` + + '
  • ', + ); + } + } + } + } + }, + + // jump to a question + jumpToQuestion(qid) { + if (typeof pager !== 'undefined') { + pager.jumpToElement(`container${qid}`); + } + return false; + }, + + setGivenAnswerData(data) { + ilCOPagePres.ganswer_data = data; + }, + + // + // Map area functions + // + + // init map areas + initMapAreas() { + $('img[usemap^="#map_il_"][class!="ilIim"]').maphilight({ neverOn: true }); + }, + + /// / + /// / Handle advanced content + /// / + showadvcont: true, + initAdvancedContent() { + const c = $('div.ilc_section_AdvancedKnowledge'); + const b = $('#ilPageShowAdvContent'); let + cookiePos; + if (c.length > 0 && b.length > 0) { + cookiePos = document.cookie.indexOf('pg_hideadv='); + if (cookiePos > -1 && document.cookie.charAt(cookiePos + 11) == 1) { + this.showadvcont = false; + } + + $('#ilPageShowAdvContent').css('display', 'block'); + if (il.COPagePres.showadvcont) { + $('div.ilc_section_AdvancedKnowledge').css('display', ''); + $('#ilPageShowAdvContent > span:nth-child(1)').css('display', 'none'); + } else { + $('div.ilc_section_AdvancedKnowledge').css('display', 'none'); + $('#ilPageShowAdvContent > span:nth-child(2)').css('display', 'none'); + } + $('#ilPageShowAdvContent').click(() => { + if (il.COPagePres.showadvcont) { + $('div.ilc_section_AdvancedKnowledge').css('display', 'none'); + $('#ilPageShowAdvContent > span:nth-child(1)').css('display', ''); + $('#ilPageShowAdvContent > span:nth-child(2)').css('display', 'none'); + il.COPagePres.showadvcont = false; + document.cookie = 'pg_hideadv=1'; + } else { + $('div.ilc_section_AdvancedKnowledge').css('display', ''); + $('#ilPageShowAdvContent > span:nth-child(1)').css('display', 'none'); + $('#ilPageShowAdvContent > span:nth-child(2)').css('display', ''); + il.COPagePres.showadvcont = true; + document.cookie = 'pg_hideadv=0'; + } + return false; + }); + } + }, + + /// / + /// / Audio/Video + /// / + + initAudioVideo(acc_el) { + let $elements; + if (acc_el) { + $elements = $(acc_el).find('video.ilPageVideo,audio.ilPageAudio'); + } else { + $elements = $('video.ilPageVideo,audio.ilPageAudio'); + } + + if ($elements.mediaelementplayer) { + $elements.each((i, el) => { + let def; let + cfg; + + def = $(el).find("track[default='default']").first().attr('srclang'); + cfg = {}; + if (def != '') { + cfg.startLanguage = def; + } + $(el).mediaelementplayer(cfg); + }); + } + }, + + accordionRerender(acc_el) { + $(acc_el).find('video.ilPageVideo,audio.ilPageAudio').each((i, el) => { + if (el.player) el.player.remove(); + }); + + il.COPagePres.initAudioVideo(acc_el); + }, + + setFullscreenModalShowSignal(signal, suffix) { + il.COPagePres.fullscreen_signal = signal; + il.COPagePres.fullscreen_suffix = suffix; + $(`#il-copg-mob-fullscreen${suffix}`).closest('.modal').on('shown.bs.modal', () => { + il.COPagePres.resizeFullScreenModal(suffix); + }).on('hidden.bs.modal', () => { + $(`#il-copg-mob-fullscreen${suffix}`).attr('src', ''); + }); + }, + + inIframe() { + try { + return window.self !== window.top; + } catch (e) { + return true; + } + }, + + openFullScreenModal(target) { + // see 32198 + if (il.COPagePres.inIframe()) { + window.parent.il.COPagePres.openFullScreenModal(target); + return; + } + $(`#il-copg-mob-fullscreen${il.COPagePres.fullscreen_suffix}`).attr('src', target); + $(document).trigger(il.COPagePres.fullscreen_signal, { + id: il.COPagePres.fullscreen_signal, + event: 'click', + triggerer: $(document), + options: JSON.parse('[]'), + }); + }, + + resizeFullScreenModal(suffix) { + const vp = il.Util.getViewportRegion(); + const ifr = il.Util.getRegion(`#il-copg-mob-fullscreen${suffix}`); + $('.il-copg-mob-fullscreen').css('height', `${vp.height - ifr.top + vp.top - 120}px`); + }, }; -il.Util.addOnLoad(function() {il.COPagePres.init();}); +il.Util.addOnLoad(() => { il.COPagePres.init(); }); diff --git a/components/ILIAS/COPage/js/page_history.js b/components/ILIAS/COPage/js/page_history.js old mode 100755 new mode 100644 index 44520f6971f8..75f9c6734fd3 --- a/components/ILIAS/COPage/js/page_history.js +++ b/components/ILIAS/COPage/js/page_history.js @@ -1,100 +1,96 @@ // for enhanced RecentChanges function toggleVisibility(_levelId, _otherId, _linkId) { - var thisLevel = document.getElementById(_levelId); - var otherLevel = document.getElementById(_otherId); - var linkLevel = document.getElementById(_linkId); - if (thisLevel.style.display == 'none') { - thisLevel.style.display = 'block'; - otherLevel.style.display = 'none'; - linkLevel.style.display = 'inline'; - } else { - thisLevel.style.display = 'none'; - otherLevel.style.display = 'inline'; - linkLevel.style.display = 'none'; - } + const thisLevel = document.getElementById(_levelId); + const otherLevel = document.getElementById(_otherId); + const linkLevel = document.getElementById(_linkId); + if (thisLevel.style.display == 'none') { + thisLevel.style.display = 'block'; + otherLevel.style.display = 'none'; + linkLevel.style.display = 'inline'; + } else { + thisLevel.style.display = 'none'; + otherLevel.style.display = 'inline'; + linkLevel.style.display = 'none'; + } } function historyRadios(parent) { - var inputs = parent.getElementsByTagName('input'); - var radios = []; - for (var i = 0; i < inputs.length; i++) { - if (inputs[i].name == "left" || inputs[i].name == "right") { - radios[radios.length] = inputs[i]; - } - } - return radios; + const inputs = parent.getElementsByTagName('input'); + const radios = []; + for (let i = 0; i < inputs.length; i++) { + if (inputs[i].name == 'left' || inputs[i].name == 'right') { + radios[radios.length] = inputs[i]; + } + } + return radios; } // check selection and tweak visibility/class onclick function diffcheck() { - var dli = false; // the li where the diff radio is checked - var oli = false; // the li where the oldid radio is checked - - var htable = document.getElementById('hist_table'); - if (!htable) - { - return; - } - var rows = htable.getElementsByTagName('tr'); - for (var i=0;i + new Component\Resource\Endpoint($this, "calendar.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "recurrence_input.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "toggle_notification.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "calendar_appointment.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("moment/min/moment-with-locales.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"); } } diff --git a/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php b/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php index c775aabfadb3..7573ef268084 100755 --- a/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php +++ b/components/ILIAS/Calendar/classes/Form/class.ilRecurrenceInputGUI.php @@ -47,7 +47,7 @@ public function __construct(string $a_title, string $a_postvar) { global $DIC; - $DIC->ui()->mainTemplate()->addJavaScript("./components/ILIAS/Calendar/js/recurrence_input.js"); + $DIC->ui()->mainTemplate()->addJavaScript("assets/js/recurrence_input.js"); $this->user = $DIC->user(); $this->user_settings = ilCalendarUserSettings::_getInstanceByUserId($this->user->getId()); $this->recurrence = new ilCalendarRecurrence(); diff --git a/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php b/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php index c01d3dc47089..a07a22052aec 100755 --- a/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php +++ b/components/ILIAS/Calendar/classes/class.ilCalendarAppointmentGUI.php @@ -310,7 +310,7 @@ protected function initForm(string $a_mode, bool $a_edit_single_app = false): il } } - $this->tpl->addJavaScript('./components/ILIAS/Calendar/js/toggle_notification.js'); + $this->tpl->addJavaScript('assets/js/toggle_notification.js'); $not = new ilCheckboxInputGUI($this->lng->txt('cal_cg_notification'), 'not'); $not->setInfo($this->lng->txt('cal_notification_info')); $not->setValue('1'); diff --git a/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php b/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php index e3673b5e265a..1c4c8ebe898a 100755 --- a/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php +++ b/components/ILIAS/Calendar/classes/class.ilCalendarUtil.php @@ -508,11 +508,11 @@ public static function initDateTimePicker(): void $tpl = $DIC->ui()->mainTemplate(); if (!self::$init_datetimepicker) { - $tpl->addJavaScript("./node_modules/moment/min/moment-with-locales.min.js"); + $tpl->addJavaScript("assets/js/moment-with-locales.min.js"); // unminified version does not work with jQuery 3.0 // https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1684 - $tpl->addJavaScript("./node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"); - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); // see ilPropertyFormGUI + $tpl->addJavaScript("assets/js/bootstrap-datetimepicker.min.js"); + $tpl->addJavaScript("assets/js/Form.js"); // see ilPropertyFormGUI self::$init_datetimepicker = true; } } diff --git a/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php b/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php index 61e1ffbb1833..123b3e3199e6 100755 --- a/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php +++ b/components/ILIAS/Calendar/classes/class.ilCalendarViewGUI.php @@ -95,7 +95,7 @@ public function initialize(int $a_calendar_presentation_type): void if ($this->presentation_type == self::CAL_PRESENTATION_DAY || $this->presentation_type == self::CAL_PRESENTATION_WEEK) { iljQueryUtil::initjQuery($this->main_tpl); - $this->main_tpl->addJavaScript('./components/ILIAS/Calendar/js/calendar_appointment.js'); + $this->main_tpl->addJavaScript('assets/js/calendar_appointment.js'); } $this->http = $DIC->http(); $this->refinery = $DIC->refinery(); diff --git a/public/calendar.php b/components/ILIAS/Calendar/resources/calendar.php old mode 100755 new mode 100644 similarity index 100% rename from public/calendar.php rename to components/ILIAS/Calendar/resources/calendar.php diff --git a/components/ILIAS/Calendar/js/calendar_appointment.js b/components/ILIAS/Calendar/resources/calendar_appointment.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Calendar/js/calendar_appointment.js rename to components/ILIAS/Calendar/resources/calendar_appointment.js diff --git a/components/ILIAS/Calendar/js/recurrence_input.js b/components/ILIAS/Calendar/resources/recurrence_input.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Calendar/js/recurrence_input.js rename to components/ILIAS/Calendar/resources/recurrence_input.js diff --git a/components/ILIAS/Calendar/js/toggle_notification.js b/components/ILIAS/Calendar/resources/toggle_notification.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Calendar/js/toggle_notification.js rename to components/ILIAS/Calendar/resources/toggle_notification.js diff --git a/components/ILIAS/Chart/Chart.php b/components/ILIAS/Chart/Chart.php index 4a3ff0853279..cda4b660f5ee 100644 --- a/components/ILIAS/Chart/Chart.php +++ b/components/ILIAS/Chart/Chart.php @@ -32,6 +32,19 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "excanvas.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.resize.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.stack.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.pie.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.highlighter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "jquery.flot.spider.js"); } } diff --git a/components/ILIAS/Chart/classes/class.ilChart.php b/components/ILIAS/Chart/classes/class.ilChart.php index 598fe7c77855..83e485db35b2 100755 --- a/components/ILIAS/Chart/classes/class.ilChart.php +++ b/components/ILIAS/Chart/classes/class.ilChart.php @@ -195,16 +195,16 @@ protected function initJS(): void iljQueryUtil::initjQuery(); - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/excanvas.min.js"); - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.min.js"); + $tpl->addJavaScript("assets/js/excanvas.min.js"); + $tpl->addJavaScript("assets/js/jquery.flot.min.js"); if ($this->auto_resize) { // #13108 - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.resize.min.js"); + $tpl->addJavaScript("assets/js/jquery.flot.resize.min.js"); } if ($this->stacked) { - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.stack.min.js"); + $tpl->addJavaScript("assets/js/jquery.flot.stack.min.js"); } $this->addCustomJS(); diff --git a/components/ILIAS/Chart/classes/class.ilChartPie.php b/components/ILIAS/Chart/classes/class.ilChartPie.php index 06a9740fabac..e3eb1a271472 100755 --- a/components/ILIAS/Chart/classes/class.ilChartPie.php +++ b/components/ILIAS/Chart/classes/class.ilChartPie.php @@ -33,7 +33,7 @@ protected function addCustomJS(): void { $tpl = $this->tpl; - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.pie.js"); + $tpl->addJavaScript("assets/js/jquery.flot.pie.js"); } public function parseGlobalOptions(stdClass $a_options): void diff --git a/components/ILIAS/Chart/classes/class.ilChartSpider.php b/components/ILIAS/Chart/classes/class.ilChartSpider.php index 71e8c82a5e17..79d418f0ad31 100755 --- a/components/ILIAS/Chart/classes/class.ilChartSpider.php +++ b/components/ILIAS/Chart/classes/class.ilChartSpider.php @@ -73,8 +73,8 @@ protected function addCustomJS(): void { $tpl = $this->tpl; - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.highlighter.js"); - $tpl->addJavaScript("components/ILIAS/Chart/js/flot/jquery.flot.spider.js"); + $tpl->addJavaScript("assets/js/jquery.flot.highlighter.js"); + $tpl->addJavaScript("assets/js/jquery.flot.spider.js"); } public function parseGlobalOptions(stdClass $a_options): void diff --git a/components/ILIAS/Chart/js/flot/excanvas.js b/components/ILIAS/Chart/resources/excanvas.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/excanvas.js rename to components/ILIAS/Chart/resources/excanvas.js diff --git a/components/ILIAS/Chart/js/flot/excanvas.min.js b/components/ILIAS/Chart/resources/excanvas.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/excanvas.min.js rename to components/ILIAS/Chart/resources/excanvas.min.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.highlighter.js b/components/ILIAS/Chart/resources/jquery.flot.highlighter.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.highlighter.js rename to components/ILIAS/Chart/resources/jquery.flot.highlighter.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.js b/components/ILIAS/Chart/resources/jquery.flot.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.js rename to components/ILIAS/Chart/resources/jquery.flot.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.min.js b/components/ILIAS/Chart/resources/jquery.flot.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.min.js rename to components/ILIAS/Chart/resources/jquery.flot.min.js diff --git a/components/ILIAS/Chart/resources/jquery.flot.pie.js b/components/ILIAS/Chart/resources/jquery.flot.pie.js new file mode 100755 index 000000000000..2907057767c3 --- /dev/null +++ b/components/ILIAS/Chart/resources/jquery.flot.pie.js @@ -0,0 +1,800 @@ +/* Flot plugin for rendering pie charts. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +The plugin assumes that each series has a single data value, and that each +value is a positive integer or zero. Negative numbers don't make sense for a +pie chart, and have unpredictable results. The values do NOT need to be +passed in as percentages; the plugin will calculate the total and per-slice +percentages internally. + +* Created by Brian Medendorp + +* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars + +The plugin supports these options: + + series: { + pie: { + show: true/false + radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto' + innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect + startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result + tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show) + offset: { + top: integer value to move the pie up or down + left: integer value to move the pie left or right, or 'auto' + }, + stroke: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF') + width: integer pixel width of the stroke + }, + label: { + show: true/false, or 'auto' + formatter: a user-defined function that modifies the text/style of the label text + radius: 0-1 for percentage of fullsize, or a specified pixel length + background: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000') + opacity: 0-1 + }, + threshold: 0-1 for the percentage value at which to hide labels (if they're too small) + }, + combine: { + threshold: 0-1 for the percentage value at which to combine slices (if they're too small) + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined + label: any text value of what the combined slice should be labeled + } + highlight: { + opacity: 0-1 + } + } + } + +More detail and specific examples can be found in the included HTML file. + +*/ + +(function ($) { + // Maximum redraw attempts when fitting labels within the plot + + const REDRAW_ATTEMPTS = 10; + + // Factor by which to shrink the pie when fitting labels within the plot + + const REDRAW_SHRINK = 0.95; + + function init(plot) { + let canvas = null; + let target = null; + let options = null; + let maxRadius = null; + let centerLeft = null; + let centerTop = null; + let processed = false; + let ctx = null; + + // interactive variables + + let highlights = []; + + // add hook to determine if pie plugin in enabled, and then perform necessary operations + + plot.hooks.processOptions.push((plot, options) => { + if (options.series.pie.show) { + options.grid.show = false; + + // set labels.show + + if (options.series.pie.label.show == 'auto') { + if (options.legend.show) { + options.series.pie.label.show = false; + } else { + options.series.pie.label.show = true; + } + } + + // set radius + + if (options.series.pie.radius == 'auto') { + if (options.series.pie.label.show) { + options.series.pie.radius = 3 / 4; + } else { + options.series.pie.radius = 1; + } + } + + // ensure sane tilt + + if (options.series.pie.tilt > 1) { + options.series.pie.tilt = 1; + } else if (options.series.pie.tilt < 0) { + options.series.pie.tilt = 0; + } + } + }); + + plot.hooks.bindEvents.push((plot, eventHolder) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + if (options.grid.hoverable) { + eventHolder.unbind('mousemove').mousemove(onMouseMove); + } + if (options.grid.clickable) { + eventHolder.unbind('click').click(onClick); + } + } + }); + + plot.hooks.processDatapoints.push((plot, series, data, datapoints) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + processDatapoints(plot, series, data, datapoints); + } + }); + + plot.hooks.drawOverlay.push((plot, octx) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + drawOverlay(plot, octx); + } + }); + + plot.hooks.draw.push((plot, newCtx) => { + const options = plot.getOptions(); + if (options.series.pie.show) { + draw(plot, newCtx); + } + }); + + function processDatapoints(plot, series, datapoints) { + if (!processed) { + processed = true; + canvas = plot.getCanvas(); + target = $(canvas).parent(); + options = plot.getOptions(); + plot.setData(combine(plot.getData())); + } + } + + function combine(data) { + let total = 0; + let combined = 0; + let numCombined = 0; + let { color } = options.series.pie.combine; + const newdata = []; + + // Fix up the raw data from Flot, ensuring the data is numeric + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data; + + // If the data is an array, we'll assume that it's a standard + // Flot x-y pair, and are concerned only with the second value. + + // Note how we use the original array, rather than creating a + // new one; this is more efficient and preserves any extra data + // that the user may have stored in higher indexes. + + if ($.isArray(value) && value.length == 1) { + value = value[0]; + } + + if ($.isArray(value)) { + // Equivalent to $.isNumeric() but compatible with jQuery < 1.7 + if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) { + value[1] = +value[1]; + } else { + value[1] = 0; + } + } else if (!isNaN(parseFloat(value)) && isFinite(value)) { + value = [1, +value]; + } else { + value = [1, 0]; + } + + data[i].data = [value]; + } + + // Sum up all the slices, so we can calculate percentages for each + + for (var i = 0; i < data.length; ++i) { + total += data[i].data[0][1]; + } + + // Count the number of slices with percentages below the combine + // threshold; if it turns out to be just one, we won't combine. + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data[0][1]; + if (value / total <= options.series.pie.combine.threshold) { + combined += value; + numCombined++; + if (!color) { + color = data[i].color; + } + } + } + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data[0][1]; + if (numCombined < 2 || value / total > options.series.pie.combine.threshold) { + newdata.push( + $.extend(data[i], { /* extend to allow keeping all other original data values + and using them e.g. in labelFormatter. */ + data: [[1, value]], + color: data[i].color, + label: data[i].label, + angle: value * Math.PI * 2 / total, + percent: value / (total / 100), + }), + ); + } + } + + if (numCombined > 1) { + newdata.push({ + data: [[1, combined]], + color, + label: options.series.pie.combine.label, + angle: combined * Math.PI * 2 / total, + percent: combined / (total / 100), + }); + } + + return newdata; + } + + function draw(plot, newCtx) { + if (!target) { + return; // if no series were passed + } + + const canvasWidth = plot.getPlaceholder().width(); + const canvasHeight = plot.getPlaceholder().height(); + const legendWidth = target.children().filter('.legend').children().width() || 0; + + ctx = newCtx; + + // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE! + + // When combining smaller slices into an 'other' slice, we need to + // add a new series. Since Flot gives plugins no way to modify the + // list of series, the pie plugin uses a hack where the first call + // to processDatapoints results in a call to setData with the new + // list of series, then subsequent processDatapoints do nothing. + + // The plugin-global 'processed' flag is used to control this hack; + // it starts out false, and is set to true after the first call to + // processDatapoints. + + // Unfortunately this turns future setData calls into no-ops; they + // call processDatapoints, the flag is true, and nothing happens. + + // To fix this we'll set the flag back to false here in draw, when + // all series have been processed, so the next sequence of calls to + // processDatapoints once again starts out with a slice-combine. + // This is really a hack; in 0.9 we need to give plugins a proper + // way to modify series before any processing begins. + + processed = false; + + // calculate maximum radius and center point + + maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2; + centerTop = canvasHeight / 2 + options.series.pie.offset.top; + centerLeft = canvasWidth / 2; + + if (options.series.pie.offset.left == 'auto') { + if (options.legend.position.match('w')) { + centerLeft += legendWidth / 2; + } else { + centerLeft -= legendWidth / 2; + } + if (centerLeft < maxRadius) { + centerLeft = maxRadius; + } else if (centerLeft > canvasWidth - maxRadius) { + centerLeft = canvasWidth - maxRadius; + } + } else { + centerLeft += options.series.pie.offset.left; + } + + const slices = plot.getData(); + let attempts = 0; + + // Keep shrinking the pie's radius until drawPie returns true, + // indicating that all the labels fit, or we try too many times. + + do { + if (attempts > 0) { + maxRadius *= REDRAW_SHRINK; + } + attempts += 1; + clear(); + if (options.series.pie.tilt <= 0.8) { + drawShadow(); + } + } while (!drawPie() && attempts < REDRAW_ATTEMPTS); + + if (attempts >= REDRAW_ATTEMPTS) { + clear(); + target.prepend("
    Could not draw pie with labels contained inside canvas
    "); + } + + if (plot.setSeries && plot.insertLegend) { + plot.setSeries(slices); + plot.insertLegend(); + } + + // we're actually done at this point, just defining internal functions at this point + + function clear() { + ctx.clearRect(0, 0, canvasWidth, canvasHeight); + target.children().filter('.pieLabel, .pieLabelBackground').remove(); + } + + function drawShadow() { + const shadowLeft = options.series.pie.shadow.left; + const shadowTop = options.series.pie.shadow.top; + const edge = 10; + const { alpha } = options.series.pie.shadow; + let radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) { + return; // shadow would be outside canvas, so don't draw it + } + + ctx.save(); + ctx.translate(shadowLeft, shadowTop); + ctx.globalAlpha = alpha; + ctx.fillStyle = '#000'; + + // center and rotate to starting position + + ctx.translate(centerLeft, centerTop); + ctx.scale(1, options.series.pie.tilt); + + // radius -= edge; + + for (let i = 1; i <= edge; i++) { + ctx.beginPath(); + ctx.arc(0, 0, radius, 0, Math.PI * 2, false); + ctx.fill(); + radius -= i; + } + + ctx.restore(); + } + + function drawPie() { + const startAngle = Math.PI * options.series.pie.startAngle; + const radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + // center and rotate to starting position + + ctx.save(); + ctx.translate(centerLeft, centerTop); + ctx.scale(1, options.series.pie.tilt); + // ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera + + // draw slices + + ctx.save(); + let currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) { + slices[i].startAngle = currentAngle; + drawSlice(slices[i].angle, slices[i].color, true); + } + ctx.restore(); + + // draw slice outlines + + if (options.series.pie.stroke.width > 0) { + ctx.save(); + ctx.lineWidth = options.series.pie.stroke.width; + currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) { + drawSlice(slices[i].angle, options.series.pie.stroke.color, false); + } + ctx.restore(); + } + + // draw donut hole + + drawDonutHole(ctx); + + ctx.restore(); + + // Draw the labels, returning true if they fit within the plot + + if (options.series.pie.label.show) { + return drawLabels(); + } return true; + + function drawSlice(angle, color, fill) { + if (angle <= 0 || isNaN(angle)) { + return; + } + + if (fill) { + ctx.fillStyle = color; + } else { + ctx.strokeStyle = color; + ctx.lineJoin = 'round'; + } + + ctx.beginPath(); + if (Math.abs(angle - Math.PI * 2) > 0.000000001) { + ctx.moveTo(0, 0); // Center of the pie + } + + // ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera + ctx.arc(0, 0, radius, currentAngle, currentAngle + angle / 2, false); + ctx.arc(0, 0, radius, currentAngle + angle / 2, currentAngle + angle, false); + ctx.closePath(); + // ctx.rotate(angle); // This doesn't work properly in Opera + currentAngle += angle; + + if (fill) { + ctx.fill(); + } else { + ctx.stroke(); + } + } + + function drawLabels() { + let currentAngle = startAngle; + const radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius; + + for (let i = 0; i < slices.length; ++i) { + if (slices[i].percent >= options.series.pie.label.threshold * 100) { + if (!drawLabel(slices[i], currentAngle, i)) { + return false; + } + } + currentAngle += slices[i].angle; + } + + return true; + + function drawLabel(slice, startAngle, index) { + if (slice.data[0][1] == 0) { + return true; + } + + // format label text + + const lf = options.legend.labelFormatter; let text; const + plf = options.series.pie.label.formatter; + + if (lf) { + text = lf(slice.label, slice); + } else { + text = slice.label; + } + + if (plf) { + text = plf(text, slice); + } + + const halfAngle = ((startAngle + slice.angle) + startAngle) / 2; + const x = centerLeft + Math.round(Math.cos(halfAngle) * radius); + const y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; + + const html = `${text}`; + target.append(html); + + const label = target.children(`#pieLabel${index}`); + const labelTop = (y - label.height() / 2); + const labelLeft = (x - label.width() / 2); + + label.css('top', labelTop); + label.css('left', labelLeft); + + // check to make sure that the label is not outside the canvas + + if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) { + return false; + } + + if (options.series.pie.label.background.opacity != 0) { + // put in the transparent background separately to avoid blended labels and label boxes + + let c = options.series.pie.label.background.color; + + if (c == null) { + c = slice.color; + } + + const pos = `top:${labelTop}px;left:${labelLeft}px;`; + $(`
    `) + .css('opacity', options.series.pie.label.background.opacity) + .insertBefore(label); + } + + return true; + } // end individual label function + } // end drawLabels function + } // end drawPie function + } // end draw function + + // Placed here because it needs to be accessed from multiple locations + + function drawDonutHole(layer) { + if (options.series.pie.innerRadius > 0) { + // subtract the center + + layer.save(); + const innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; + layer.globalCompositeOperation = 'destination-out'; // this does not work with excanvas, but it will fall back to using the stroke color + layer.beginPath(); + layer.fillStyle = options.series.pie.stroke.color; + layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); + layer.fill(); + layer.closePath(); + layer.restore(); + + // add inner stroke + + layer.save(); + layer.beginPath(); + layer.strokeStyle = options.series.pie.stroke.color; + layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); + layer.stroke(); + layer.closePath(); + layer.restore(); + + // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. + } + } + + // -- Additional Interactive related functions -- + + function isPointInPoly(poly, pt) { + for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) { + ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1] < poly[i][1])) + && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) + && (c = !c); + } + return c; + } + + function findNearbySlice(mouseX, mouseY) { + const slices = plot.getData(); + const options = plot.getOptions(); + const radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + let x; let + y; + + for (let i = 0; i < slices.length; ++i) { + const s = slices[i]; + + if (s.pie.show) { + ctx.save(); + ctx.beginPath(); + ctx.moveTo(0, 0); // Center of the pie + // ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. + ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false); + ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false); + ctx.closePath(); + x = mouseX - centerLeft; + y = mouseY - centerTop; + + if (ctx.isPointInPath) { + if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) { + ctx.restore(); + return { + datapoint: [s.percent, s.data], + dataIndex: 0, + series: s, + seriesIndex: i, + }; + } + } else { + // excanvas for IE doesn;t support isPointInPath, this is a workaround. + + const p1X = radius * Math.cos(s.startAngle); + const p1Y = radius * Math.sin(s.startAngle); + const p2X = radius * Math.cos(s.startAngle + s.angle / 4); + const p2Y = radius * Math.sin(s.startAngle + s.angle / 4); + const p3X = radius * Math.cos(s.startAngle + s.angle / 2); + const p3Y = radius * Math.sin(s.startAngle + s.angle / 2); + const p4X = radius * Math.cos(s.startAngle + s.angle / 1.5); + const p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5); + const p5X = radius * Math.cos(s.startAngle + s.angle); + const p5Y = radius * Math.sin(s.startAngle + s.angle); + const arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]]; + const arrPoint = [x, y]; + + // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? + + if (isPointInPoly(arrPoly, arrPoint)) { + ctx.restore(); + return { + datapoint: [s.percent, s.data], + dataIndex: 0, + series: s, + seriesIndex: i, + }; + } + } + + ctx.restore(); + } + } + + return null; + } + + function onMouseMove(e) { + triggerClickHoverEvent('plothover', e); + } + + function onClick(e) { + triggerClickHoverEvent('plotclick', e); + } + + // trigger click or hover event (they send the same parameters so we share their code) + + function triggerClickHoverEvent(eventname, e) { + const offset = plot.offset(); + const canvasX = parseInt(e.pageX - offset.left); + const canvasY = parseInt(e.pageY - offset.top); + const item = findNearbySlice(canvasX, canvasY); + + if (options.grid.autoHighlight) { + // clear auto-highlights + + for (let i = 0; i < highlights.length; ++i) { + const h = highlights[i]; + if (h.auto == eventname && !(item && h.series == item.series)) { + unhighlight(h.series); + } + } + } + + // highlight the slice + + if (item) { + highlight(item.series, eventname); + } + + // trigger any hover bind events + + const pos = { pageX: e.pageX, pageY: e.pageY }; + target.trigger(eventname, [pos, item]); + } + + function highlight(s, auto) { + // if (typeof s == "number") { + // s = series[s]; + // } + + const i = indexOfHighlight(s); + + if (i == -1) { + highlights.push({ series: s, auto }); + plot.triggerRedrawOverlay(); + } else if (!auto) { + highlights[i].auto = false; + } + } + + function unhighlight(s) { + if (s == null) { + highlights = []; + plot.triggerRedrawOverlay(); + } + + // if (typeof s == "number") { + // s = series[s]; + // } + + const i = indexOfHighlight(s); + + if (i != -1) { + highlights.splice(i, 1); + plot.triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s) { + for (let i = 0; i < highlights.length; ++i) { + const h = highlights[i]; + if (h.series == s) return i; + } + return -1; + } + + function drawOverlay(plot, octx) { + const options = plot.getOptions(); + + const radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + octx.save(); + octx.translate(centerLeft, centerTop); + octx.scale(1, options.series.pie.tilt); + + for (let i = 0; i < highlights.length; ++i) { + drawHighlight(highlights[i].series); + } + + drawDonutHole(octx); + + octx.restore(); + + function drawHighlight(series) { + if (series.angle <= 0 || isNaN(series.angle)) { + return; + } + + // octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); + octx.fillStyle = `rgba(255, 255, 255, ${options.series.pie.highlight.opacity})`; // this is temporary until we have access to parseColor + octx.beginPath(); + if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) { + octx.moveTo(0, 0); // Center of the pie + } + octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false); + octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false); + octx.closePath(); + octx.fill(); + } + } + } // end init (plugin body) + + // define pie specific options and their default values + + const options = { + series: { + pie: { + show: false, + radius: 'auto', // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) + innerRadius: 0, /* for donut */ + startAngle: 3 / 2, + tilt: 1, + shadow: { + left: 5, // shadow left offset + top: 15, // shadow top offset + alpha: 0.02, // shadow alpha + }, + offset: { + top: 0, + left: 'auto', + }, + stroke: { + color: '#fff', + width: 1, + }, + label: { + show: 'auto', + formatter(label, slice) { + return `
    ${label}
    ${Math.round(slice.percent)}%
    `; + }, // formatter function + radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) + background: { + color: null, + opacity: 0, + }, + threshold: 0, // percentage at which to hide the label (i.e. the slice is too narrow) + }, + combine: { + threshold: -1, // percentage at which to combine little slices into one larger slice + color: null, // color to give the new slice (auto-generated if null) + label: 'Other', // label to give the new slice + }, + highlight: { + // color: "#fff", // will add this functionality once parseColor is available + opacity: 0.5, + }, + }, + }, + }; + + $.plot.plugins.push({ + init, + options, + name: 'pie', + version: '1.1', + }); +}(jQuery)); diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.resize.js b/components/ILIAS/Chart/resources/jquery.flot.resize.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.resize.js rename to components/ILIAS/Chart/resources/jquery.flot.resize.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.resize.min.js b/components/ILIAS/Chart/resources/jquery.flot.resize.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.resize.min.js rename to components/ILIAS/Chart/resources/jquery.flot.resize.min.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.spider.js b/components/ILIAS/Chart/resources/jquery.flot.spider.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.spider.js rename to components/ILIAS/Chart/resources/jquery.flot.spider.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.stack.js b/components/ILIAS/Chart/resources/jquery.flot.stack.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.stack.js rename to components/ILIAS/Chart/resources/jquery.flot.stack.js diff --git a/components/ILIAS/Chart/js/flot/jquery.flot.stack.min.js b/components/ILIAS/Chart/resources/jquery.flot.stack.min.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chart/js/flot/jquery.flot.stack.min.js rename to components/ILIAS/Chart/resources/jquery.flot.stack.min.js diff --git a/components/ILIAS/Chatroom/Chatroom.php b/components/ILIAS/Chatroom/Chatroom.php index 10917b81b9aa..82af8a886012 100644 --- a/components/ILIAS/Chatroom/Chatroom.php +++ b/components/ILIAS/Chatroom/Chatroom.php @@ -36,5 +36,11 @@ public function init( new \ilChatroomSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "chatroom.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "iliaschat.jquery.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "chatroom.css"); } } diff --git a/components/ILIAS/Chatroom/README.md b/components/ILIAS/Chatroom/README.md index 26717f1c283b..ab7c1535584f 100755 --- a/components/ILIAS/Chatroom/README.md +++ b/components/ILIAS/Chatroom/README.md @@ -324,7 +324,7 @@ The following is the command to start a chat server for a single client. ```bash cd [ILIAS_ROOT_DIRECTORY] -node Modules/Chatroom/chat/chat.js \ +node Modules/Chatroom/resources/chatroom.js \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID]/chatroom/server.cfg \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID]/chatroom/client.cfg & ``` @@ -335,7 +335,7 @@ The following shows the command that can be used to start a multi-client chat se ```bash cd [ILIAS_ROOT_DIRECTORY] -node Modules/Chatroom/chat/chat.js \ +node Modules/Chatroom/resources/chatroom.js \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[ANY_CLIENT_ID]/chatroom/server.cfg \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID_1]/chatroom/client.cfg \ [PATH_TO_EXTERNAL_DATA_DIRECTORY]/[CLIENT_ID_2]/chatroom/client.cfg ... & diff --git a/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php b/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php index b7155c0cd348..6bfed23fdd1c 100755 --- a/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php +++ b/components/ILIAS/Chatroom/classes/gui/class.ilChatroomViewGUI.php @@ -78,11 +78,11 @@ public function joinWithCustomName(): void */ private function setupTemplate(): void { - $this->mainTpl->addJavaScript('components/ILIAS/Chatroom/js/chat.js'); - $this->mainTpl->addJavaScript('components/ILIAS/Chatroom/js/iliaschat.jquery.js'); - $this->mainTpl->addJavaScript('./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js'); + $this->mainTpl->addJavaScript('assets/js/chatroom.js'); + $this->mainTpl->addJavaScript('assets/js/iliaschat.jquery.js'); + $this->mainTpl->addJavaScript('assets/js/AdvancedSelectionList.js'); - $this->mainTpl->addCss('components/ILIAS/Chatroom/templates/default/style.css'); + $this->mainTpl->addCss('assets/css/chatroom.css'); $this->mainTpl->setPermanentLink($this->gui->getObject()->getType(), $this->gui->getObject()->getRefId()); } diff --git a/components/ILIAS/Chatroom/templates/default/style.css b/components/ILIAS/Chatroom/resources/chatroom.css similarity index 100% rename from components/ILIAS/Chatroom/templates/default/style.css rename to components/ILIAS/Chatroom/resources/chatroom.css diff --git a/components/ILIAS/Chatroom/js/chat.js b/components/ILIAS/Chatroom/resources/chatroom.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chatroom/js/chat.js rename to components/ILIAS/Chatroom/resources/chatroom.js diff --git a/components/ILIAS/Chatroom/js/iliaschat.jquery.js b/components/ILIAS/Chatroom/resources/iliaschat.jquery.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Chatroom/js/iliaschat.jquery.js rename to components/ILIAS/Chatroom/resources/iliaschat.jquery.js diff --git a/components/ILIAS/Component/Component.php b/components/ILIAS/Component/Component.php index a69870fb6ff8..256f16c4b471 100644 --- a/components/ILIAS/Component/Component.php +++ b/components/ILIAS/Component/Component.php @@ -36,7 +36,11 @@ public function init( $contribute[\ILIAS\Setup\Agent::class] = fn() => new \ilComponentsSetupAgent( - $pull[\ILIAS\Refinery\Factory::class] + $internal[Component\Resource\PublicAssetManager::class], + $seek[Component\Resource\PublicAsset::class] ); + + $internal[Component\Resource\PublicAssetManager::class] = fn() => + new Component\Resource\PublicAssetManager(); } } diff --git a/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php b/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php index 259e4a536341..1eb35cc584e2 100755 --- a/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php +++ b/components/ILIAS/Component/classes/Setup/class.ilComponentRepositoryExistsObjective.php @@ -35,7 +35,7 @@ public function getHash(): string */ public function getLabel(): string { - return "ilComponentRepository is initialized and stored into the environment."; + return "ilComponentRepository (with database) is initialized and stored into the environment."; } /** diff --git a/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php b/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php index 6d91aa36877c..5c58bb667478 100755 --- a/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php +++ b/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php @@ -21,11 +21,19 @@ use ILIAS\Setup; use ILIAS\Refinery\Transformation; +use ILIAS\Component\Resource\PublicAssetManager; +use ILIAS\Component\Setup\PublicAssetsBuildObjective; class ilComponentsSetupAgent implements Setup\Agent { use Setup\Agent\HasNoNamedObjective; + public function __construct( + protected PublicAssetManager $public_asset_manager, + protected array $public_assets + ) { + } + /** * @inheritdoc */ @@ -71,10 +79,18 @@ public function getUpdateObjective(Setup\Config $config = null): Setup\Objective public function getBuildObjective(): Setup\Objective { return new Setup\ObjectiveCollection( - "Artifacts for Services/Component", + "Build Objectives of \\ILIAS\\Component", false, - new ilComponentBuildComponentInfoObjective(), - new ilComponentBuildPluginInfoObjective() + new Setup\ObjectiveCollection( + "Artifacts for \\ILIAS\\Component", + false, + new ilComponentBuildComponentInfoObjective(), + new ilComponentBuildPluginInfoObjective() + ), + new PublicAssetsBuildObjective( + $this->public_asset_manager, + $this->public_assets + ) ); } diff --git a/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php b/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php index 21b665ae1e81..702d974dcb7e 100755 --- a/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php +++ b/components/ILIAS/Component/classes/Setup/class.ilStaticComponentRepositoryExistsObjective.php @@ -35,7 +35,7 @@ public function getHash(): string */ public function getLabel(): string { - return "ilComponentRepository is initialized and stored into the environment."; + return "ilComponentRepository (static) is initialized and stored into the environment."; } /** diff --git a/components/ILIAS/Component/src/Resource/ComponentCSS.php b/components/ILIAS/Component/src/Resource/ComponentCSS.php new file mode 100644 index 000000000000..986a29055495 --- /dev/null +++ b/components/ILIAS/Component/src/Resource/ComponentCSS.php @@ -0,0 +1,40 @@ +source)) { + throw new \InvalidArgumentException( + "'{$this->source}' is not a valid source path for a public asset." + ); + } + } + + public function getSource(): string + { + return "node_modules/{$this->source}"; + } + + public function getTarget(): string + { + $source = explode("/", $this->source); + if (str_ends_with($this->source, ".js")) { + return ComponentJS::TARGET . "/" . array_pop($source); + } + if (str_ends_with($this->source, ".css")) { + return ComponentCSS::TARGET . "/" . array_pop($source); + } + throw new \LogicException("Don't know where to put {$this->source}"); + } +} diff --git a/components/ILIAS/Component/src/Resource/OfComponent.php b/components/ILIAS/Component/src/Resource/OfComponent.php new file mode 100644 index 000000000000..694c497e893f --- /dev/null +++ b/components/ILIAS/Component/src/Resource/OfComponent.php @@ -0,0 +1,68 @@ +source)) { + throw new \InvalidArgumentException( + "'{$this->source}' is not a valid source path for a public asset." + ); + } + if (!preg_match(self::REGEXP_TARGET, $this->target)) { + throw new \InvalidArgumentException( + "'{$this->target}' is not a valid target path for a public asset." + ); + } + } + + public function getSource(): string + { + list($vendor, $component) = explode("\\", get_class($this->component)); + + return "components/$vendor/$component/resources/{$this->source}"; + } + + public function getTarget(): string + { + $source = explode("/", $this->source); + if ($this->target === ".") { + return array_pop($source); + } + return $this->target . "/" . array_pop($source); + } +} diff --git a/components/ILIAS/Component/src/Resource/PublicAsset.php b/components/ILIAS/Component/src/Resource/PublicAsset.php new file mode 100644 index 000000000000..9a9956498e4e --- /dev/null +++ b/components/ILIAS/Component/src/Resource/PublicAsset.php @@ -0,0 +1,32 @@ +insertInto($this->assets, explode("/", $asset->getTarget()), $asset); + } + } + + protected function insertInto(array &$assets, array $path, PublicAsset $asset): void + { + $key = array_shift($path); + $key_exists = array_key_exists($key, $assets); + $target_reached = count($path) === 0; + + if (!$key_exists && $target_reached) { + $assets[$key] = $asset; + return; + } + + if (!$target_reached && (!$key_exists || is_array($assets[$key]))) { + if (!$key_exists) { + $assets[$key] = []; + } + $this->insertInto($assets[$key], $path, $asset); + return; + } + + $first_asset = $assets[$key]; + while(!$first_asset instanceof PublicAsset) { + $first_asset = array_shift($first_asset); + } + + throw new \LogicException( + "There are (at least) two assets for the same target '{$asset->getTarget()}': " . + "'{$first_asset->getSource()}' and '{$asset->getSource()}'" + ); + } + + /** + * @param string $ilias_base full path to ILIAS base folder + * @param string $target full path to public folder + */ + public function buildPublicFolder(string $ilias_base, string $target): void + { + if (!preg_match(self::REGEXP, $ilias_base)) { + throw new \InvalidArgumentException( + "'{$ilias_base}' is not a valid path to ILIAS base folder." + ); + } + if (!preg_match(self::REGEXP, $target)) { + throw new \InvalidArgumentException( + "'{$target}' is not a valid target path for public assets." + ); + } + + $this->purge($target, array_map(fn($v) => $target . "/" . $v, self::DONT_PURGE)); + $this->makeDir($target); + $this->buildPublicFolderRecursivelyArray($ilias_base, $target, $this->assets); + } + + protected function buildPublicFolderRecursively(string $ilias_base, string $target, PublicAsset|array $asset): void + { + if (is_array($asset)) { + $this->makeDir("$target"); + $this->buildPublicFolderRecursivelyArray($ilias_base, $target, $asset); + } else { + $targets = explode("/", $asset->getTarget()); + $this->copy("$ilias_base/{$asset->getSource()}", "$target"); + } + } + + protected function buildPublicFolderRecursivelyArray(string $ilias_base, string $target, array $assets): void + { + foreach ($assets as $key => $asset) { + $this->buildPublicFolderRecursively($ilias_base, "$target/$key", $asset); + } + } + + protected function copy(string $source, string $target): void + { + if (is_file($source)) { + copy($source, $target); + } elseif (is_dir($source)) { + $dir = new \RecursiveDirectoryIterator($source, \FilesystemIterator::SKIP_DOTS); + $this->makeDir($target); + foreach($dir as $d) { + $name = $d->getBasename(); + $this->copy("$source/$name", "$target/$name"); + } + } else { + throw new \RuntimeException( + "Cannot copy $source, not a file or directory." + ); + } + } + + protected function purge(string $path, array $dont_purge): bool + { + if (in_array($path, $dont_purge)) { + return false; + } + + if (!file_exists($path)) { + return true; + } + + if (is_file($path)) { + unlink($path); + return true; + } + + if (is_dir($path)) { + $purged = true; + foreach(array_diff(scandir($path), ['.', '..']) as $item) { + $purged = $this->purge($path . "/" . $item, $dont_purge) && $purged; + } + if ($purged) { + rmdir($path); + } + return $purged; + } + + throw new \LogicException("Don't know how to purge $path"); + } + + protected function makeDir(string $path): void + { + if (!file_exists($path)) { + mkdir($path, 0755); + } + } +} diff --git a/components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php b/components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php new file mode 100644 index 000000000000..e6403d57ada1 --- /dev/null +++ b/components/ILIAS/Component/src/Setup/PublicAssetsBuildObjective.php @@ -0,0 +1,70 @@ +public_asset_manager->addAssets(...$this->public_assets); + $this->public_asset_manager->buildPublicFolder($base_dir, $target); + + return $environment; + } + + public function isApplicable(Setup\Environment $environment): bool + { + return true; + } + +} diff --git a/components/ILIAS/Component/tests/Resource/ComponentResourceTest.php b/components/ILIAS/Component/tests/Resource/ComponentResourceTest.php new file mode 100644 index 000000000000..3012f5f51590 --- /dev/null +++ b/components/ILIAS/Component/tests/Resource/ComponentResourceTest.php @@ -0,0 +1,94 @@ +assertEquals("some/target/asset.png", $public_asset->getTarget()); + } + + public function testTarget2() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "directory/asset.png", + "some/target" + ); + + $this->assertEquals("some/target/asset.png", $public_asset->getTarget()); + } + + public function testTarget3() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "directory/asset.png", + "some/target" + ); + + $this->assertEquals("some/target/asset.png", $public_asset->getTarget()); + } + + public function testHtaccessIsAllowedAsSource() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + ".htaccess", + "target" + ); + + $this->assertTrue(true); + } + + public function testDotIsAllowedAsTarget() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "foo.php", + "." + ); + + $this->assertTrue(true); + } + + public function testSource() + { + $public_asset = new R\OfComponent( + new \ILIAS\Component(), + "directory/asset.png", + "some/target" + ); + + $this->assertEquals("components/ILIAS/Component/resources/directory/asset.png", $public_asset->getSource()); + } +} diff --git a/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php b/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php new file mode 100644 index 000000000000..bf1b8b4bb999 --- /dev/null +++ b/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php @@ -0,0 +1,128 @@ +source; + } + + public function getTarget(): string + { + return $this->target; + } + }; + } + + public function setUp(): void + { + $this->manager = new class () extends R\PublicAssetManager { + public $copied = []; + public $purged = []; + public $madeDir = []; + + protected function copy(string $source, $target): void + { + $this->copied[] = [$source, $target]; + } + + protected function purge(string $path, array $dont_purge): bool + { + $this->purged[] = $path; + return true; + } + + protected function makeDir(string $path): void + { + $this->madeDir[] = $path; + } + }; + } + + public function testTargetCanOnlyBeUsedOnce() + { + $this->expectException(\LogicException::class); + + $asset1 = $this->newPublicAsset("some/source", "target"); + $asset2 = $this->newPublicAsset("some/other/source", "target"); + + $this->manager->addAssets($asset1, $asset2); + } + + public function testTargetCanNotBeWithinOtherTarget1() + { + $this->expectException(\LogicException::class); + + $asset1 = $this->newPublicAsset("some/source", "target"); + $asset2 = $this->newPublicAsset("some/other/source", "target/sub"); + + $this->manager->addAssets($asset1, $asset2); + } + + public function testTargetCanNotBeWithinOtherTarget2() + { + $this->expectException(\LogicException::class); + + $asset1 = $this->newPublicAsset("some/source", "target/sub"); + $asset2 = $this->newPublicAsset("some/other/source", "target"); + + $this->manager->addAssets($asset1, $asset2); + } + + public function testBuildAssetFolderEmpty() + { + $this->manager->buildPublicFolder("/base", "/target"); + $this->assertEquals([], $this->manager->copied); + $this->assertEquals(["/target"], $this->manager->purged); + $this->assertEquals(["/target"], $this->manager->madeDir); + } + + public function testBuildAssetFolder() + { + $this->manager->addAssets( + $this->newPublicAsset("source1", "target1"), + $this->newPublicAsset("source2", "second/target") + ); + + $this->manager->buildPublicFolder("/base", "/public"); + + $this->assertEquals(["/public"], $this->manager->purged); + $this->assertEquals(["/public", "/public/second"], $this->manager->madeDir); + $this->assertEquals([["/base/source1", "/public/target1"], ["/base/source2", "/public/second/target"]], $this->manager->copied); + } +} diff --git a/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php b/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php index ecd1cbe358b2..a5fdcadaf11c 100755 --- a/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php +++ b/components/ILIAS/Contact/BuddySystem/classes/class.ilBuddySystemGUI.php @@ -67,7 +67,7 @@ public static function initializeFrontend(ilGlobalTemplateInterface $page): void ) { $DIC->language()->loadLanguageModule('buddysystem'); - $page->addJavaScript('./components/ILIAS/Contact/BuddySystem/js/buddy_system.js'); + $page->addJavaScript('./assets/js/buddy_system.js'); $config = new stdClass(); $config->http_post_url = $DIC->ctrl()->getFormActionByClass([ diff --git a/components/ILIAS/Contact/Contact.php b/components/ILIAS/Contact/Contact.php index e04b5d92ca2f..746cf07cc47c 100644 --- a/components/ILIAS/Contact/Contact.php +++ b/components/ILIAS/Contact/Contact.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "buddy_system.js"); } } diff --git a/public/components/ILIAS/Contact/BuddySystem/js/buddy_system.js b/components/ILIAS/Contact/resources/buddy_system.js similarity index 100% rename from public/components/ILIAS/Contact/BuddySystem/js/buddy_system.js rename to components/ILIAS/Contact/resources/buddy_system.js diff --git a/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php b/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php index a197e4dad93a..addebb227743 100755 --- a/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php +++ b/components/ILIAS/Container/Classification/class.ilClassificationBlockGUI.php @@ -124,7 +124,7 @@ public function getHTML(): string return ""; } - $tpl->addJavaScript("components/ILIAS/Container/Classification/js/ilClassification.js"); + $tpl->addJavaScript("assets/js/ilClassification.js"); return parent::getHTML(); } diff --git a/components/ILIAS/Container/Container.php b/components/ILIAS/Container/Container.php index 7ae009734100..3f3091917d7d 100644 --- a/components/ILIAS/Container/Container.php +++ b/components/ILIAS/Container/Container.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Container.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilClassification.js"); } } diff --git a/components/ILIAS/Container/Content/class.ilContainerContentGUI.php b/components/ILIAS/Container/Content/class.ilContainerContentGUI.php index eefd327c507d..8dab910de8b3 100755 --- a/components/ILIAS/Container/Content/class.ilContainerContentGUI.php +++ b/components/ILIAS/Container/Content/class.ilContainerContentGUI.php @@ -89,7 +89,7 @@ public function __construct( $obj = $this->container_gui->getObject(); $this->container_obj = $obj; - $tpl->addJavaScript("./components/ILIAS/Container/js/Container.js"); + $tpl->addJavaScript("assets/js/Container.js"); $this->log = ilLoggerFactory::getLogger('cont'); diff --git a/components/ILIAS/Container/js/Container.js b/components/ILIAS/Container/resources/Container.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Container/js/Container.js rename to components/ILIAS/Container/resources/Container.js diff --git a/components/ILIAS/Container/Classification/js/ilClassification.js b/components/ILIAS/Container/resources/ilClassification.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Container/Classification/js/ilClassification.js rename to components/ILIAS/Container/resources/ilClassification.js diff --git a/components/ILIAS/CopyWizard/CopyWizard.php b/components/ILIAS/CopyWizard/CopyWizard.php index 4ae74416e65e..0fd325108a32 100644 --- a/components/ILIAS/CopyWizard/CopyWizard.php +++ b/components/ILIAS/CopyWizard/CopyWizard.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilContainer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilCopyRedirection.js"); } } diff --git a/components/ILIAS/CopyWizard/js/ilContainer.js b/components/ILIAS/CopyWizard/resources/ilContainer.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/CopyWizard/js/ilContainer.js rename to components/ILIAS/CopyWizard/resources/ilContainer.js diff --git a/components/ILIAS/CopyWizard/js/ilCopyRedirection.js b/components/ILIAS/CopyWizard/resources/ilCopyRedirection.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/CopyWizard/js/ilCopyRedirection.js rename to components/ILIAS/CopyWizard/resources/ilCopyRedirection.js diff --git a/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php b/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php index eede8f5fc286..fe825fa9fcd3 100755 --- a/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php +++ b/components/ILIAS/Dashboard/Administration/classes/class.ilObjDashboardSettingsGUI.php @@ -159,7 +159,7 @@ public function getViewForm(string $mode): ?StandardForm public function getViewSectionSorting(int $view, string $title): Section { - $this->tpl->addJavaScript('components/ILIAS/Dashboard/Administration/js/SortationUserInputHandler.js'); + $this->tpl->addJavaScript("assets/js/SortationUserInputHandler.js"); $lng = $this->lng; $availabe_sort_options = $this->viewSettings->getAvailableSortOptionsByView($view); $options = array_reduce( diff --git a/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php b/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php index ef2e1f33904e..651d8eb6b7a5 100755 --- a/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php +++ b/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php @@ -169,7 +169,7 @@ public function init(): void $this->lng->loadLanguageModule('rep'); $this->lng->loadLanguageModule('pd'); $this->initViewSettings(); - $this->main_tpl->addJavaScript('components/ILIAS/Dashboard/Block/js/ReplaceModalContent.js'); + $this->main_tpl->addJavaScript('assets/js/ReplaceModalContent.js'); $this->viewSettings->parse(); $this->requested_item_ref_id = (int) ($this->http->request()->getQueryParams()['item_ref_id'] ?? 0); $this->initData(); diff --git a/components/ILIAS/Dashboard/Dashboard.php b/components/ILIAS/Dashboard/Dashboard.php index 641518aaf384..8c695e9a4c85 100644 --- a/components/ILIAS/Dashboard/Dashboard.php +++ b/components/ILIAS/Dashboard/Dashboard.php @@ -36,5 +36,10 @@ public function init( new \ILIAS\Dashboard\Setup\ilDashboardUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ReplaceModalContent.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "SortationUserInputHandler.js"); } } diff --git a/public/components/ILIAS/Dashboard/Block/js/ReplaceModalContent.js b/components/ILIAS/Dashboard/resources/ReplaceModalContent.js similarity index 100% rename from public/components/ILIAS/Dashboard/Block/js/ReplaceModalContent.js rename to components/ILIAS/Dashboard/resources/ReplaceModalContent.js diff --git a/components/ILIAS/Dashboard/Administration/js/SortationUserInputHandler.js b/components/ILIAS/Dashboard/resources/SortationUserInputHandler.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Dashboard/Administration/js/SortationUserInputHandler.js rename to components/ILIAS/Dashboard/resources/SortationUserInputHandler.js diff --git a/components/ILIAS/DataCollection/DataCollection.php b/components/ILIAS/DataCollection/DataCollection.php index 05ebe065e048..e2067aee703f 100644 --- a/components/ILIAS/DataCollection/DataCollection.php +++ b/components/ILIAS/DataCollection/DataCollection.php @@ -36,5 +36,9 @@ public function init( new \ilDataCollectionSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "datacollection.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "generic_multi_line_input.js"); } } diff --git a/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php b/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php index 218fe45d23ed..4298334824b9 100755 --- a/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php +++ b/components/ILIAS/DataCollection/classes/DetailedView/class.ilDclDetailedViewGUI.php @@ -175,7 +175,7 @@ public function renderRecord(bool $editComments = false): void ); $html = $pageObj->getHTML(); - $rctpl->addCss("../components/ILIAS/COPage/css/content.css"); + $rctpl->addCss("./assets/css/content.css"); $rctpl->fillCssFiles(); $table = ilDclCache::getTableCache($this->record_obj->getTableId()); foreach ($table->getRecordFields() as $field) { diff --git a/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php b/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php index d282d4323aa5..82c95dd5409a 100755 --- a/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php +++ b/components/ILIAS/DataCollection/classes/Helpers/class.ilDclGenericMultiInputGUI.php @@ -357,7 +357,7 @@ public function insert(ilTemplate $a_tpl): void if ($this->getMulti()) { $output = '
    ' . $output . '
    '; - $this->global_tpl->addJavaScript('components/ILIAS/DataCollection/js/generic_multi_line_input.js'); + $this->global_tpl->addJavaScript('assets/js/generic_multi_line_input.js'); $id = $this->getFieldId(); $element_config = json_encode($this->input_options); $options = json_encode(['limit' => $this->limit, diff --git a/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php b/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php index 7285b07a9239..d50eb6a5d3ba 100755 --- a/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php +++ b/components/ILIAS/DataCollection/classes/class.ilDataCollectionGlobalTemplate.php @@ -184,17 +184,17 @@ private function getMessageTextForType(string $m): string * List of JS-Files that should be included. * @var array */ - protected array $js_files = [0 => "./components/ILIAS/JavaScript/js/Basic.js"]; + protected array $js_files = [0 => "assets/js/Basic.js"]; /** * Stores if a version parameter should be appended to the js-file to force reloading. * @var array */ - protected array $js_files_vp = ["./components/ILIAS/JavaScript/js/Basic.js" => true]; + protected array $js_files_vp = ["assets/js/Basic.js" => true]; /** * Stores the order in which js-files should be included. * @var array */ - protected array $js_files_batch = ["./components/ILIAS/JavaScript/js/Basic.js" => 1]; + protected array $js_files_batch = ["assets/js/Basic.js" => 1]; /** * Add a javascript file that should be included in the header. diff --git a/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php b/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php index 5a5dd3ddb4f5..d4afd46715f0 100755 --- a/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php +++ b/components/ILIAS/DataCollection/classes/class.ilObjDataCollectionGUI.php @@ -98,8 +98,8 @@ private function addJavaScript(): void ilYuiUtil::initConnection(); ilOverlayGUI::initJavascript(); // # see https://mantis.ilias.de/view.php?id=26463 - $this->tpl->addJavaScript("./components/ILIAS/UIComponent/Modal/js/Modal.js"); - $this->tpl->addJavaScript("components/ILIAS/DataCollection/js/datacollection.js"); + $this->tpl->addJavaScript("assets/js/Modal.js"); + $this->tpl->addJavaScript("assets/js/datacollection.js"); } public function getStandardCmd(): string diff --git a/components/ILIAS/DataCollection/js/datacollection.js b/components/ILIAS/DataCollection/resources/datacollection.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/DataCollection/js/datacollection.js rename to components/ILIAS/DataCollection/resources/datacollection.js diff --git a/components/ILIAS/DataCollection/js/generic_multi_line_input.js b/components/ILIAS/DataCollection/resources/generic_multi_line_input.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/DataCollection/js/generic_multi_line_input.js rename to components/ILIAS/DataCollection/resources/generic_multi_line_input.js diff --git a/components/ILIAS/Exercise/Exercise.php b/components/ILIAS/Exercise/Exercise.php index 935c65157254..86ff9d8064ae 100644 --- a/components/ILIAS/Exercise/Exercise.php +++ b/components/ILIAS/Exercise/Exercise.php @@ -36,5 +36,13 @@ public function init( new \ilExerciseSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcIDl.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcPresentation.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcPeerReview.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExcManagement.js"); } } diff --git a/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php b/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php index 6ecab5885deb..fabeda3d0469 100755 --- a/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php +++ b/components/ILIAS/Exercise/PeerReview/Criteria/class.ilExcCriteriaRating.php @@ -57,7 +57,7 @@ public function addToPeerReviewForm($a_value = null): void $tpl = $this->tpl; $ilCtrl = $this->ctrl; - $tpl->addJavaScript("components/ILIAS/Exercise/js/ilExcPeerReview.js"); + $tpl->addJavaScript("assets/js/ilExcPeerReview.js"); $tpl->addOnLoadCode("il.ExcPeerReview.setAjax('" . $ilCtrl->getLinkTargetByClass("ilExPeerReviewGUI", "updateCritAjax", "", true, false) . "')"); diff --git a/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php b/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php index 52fc7bbc49f7..a6919a35d605 100755 --- a/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php +++ b/components/ILIAS/Exercise/Submission/class.ilExerciseSubmissionTableGUI.php @@ -657,7 +657,7 @@ public function render(): string $url = $ilCtrl->getLinkTarget($this->getParentObject(), "saveCommentForLearners", "", true, false); - $tpl->addJavaScript("components/ILIAS/Exercise/js/ilExcManagement.js"); + $tpl->addJavaScript("assets/js/ilExcManagement.js"); $tpl->addOnLoadCode('il.ExcManagement.init("' . $url . '");'); return parent::render() . diff --git a/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php b/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php index a45019d3834c..f6f7ca0c6b7e 100755 --- a/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php +++ b/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php @@ -1950,7 +1950,7 @@ protected function initIndividualDeadlineModal(): string $ajax_url = $this->ctrl->getLinkTarget($this, "handleIndividualDeadlineCalls", "", true, false); - $tpl->addJavaScript("./components/ILIAS/Exercise/js/ilExcIDl.js", true, 3); + $tpl->addJavaScript("assets/js/ilExcIDl.js", true, 3); $tpl->addOnLoadCode('il.ExcIDl.init("' . $ajax_url . '");'); ilCalendarUtil::initDateTimePicker(); diff --git a/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php b/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php index 9e05989cadc3..350f9a0d45fc 100755 --- a/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php +++ b/components/ILIAS/Exercise/classes/class.ilObjExerciseGUI.php @@ -896,7 +896,7 @@ public function showOverviewObject(): void return; } - //$tpl->addJavaScript("./components/ILIAS/Exercise/js/ilExcPresentation.js"); + //$tpl->addJavaScript("assets/js/ilExcPresentation.js"); $exc = $this->object; diff --git a/components/ILIAS/Exercise/js/ilExcIDl.js b/components/ILIAS/Exercise/resources/ilExcIDl.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcIDl.js rename to components/ILIAS/Exercise/resources/ilExcIDl.js diff --git a/components/ILIAS/Exercise/js/ilExcManagement.js b/components/ILIAS/Exercise/resources/ilExcManagement.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcManagement.js rename to components/ILIAS/Exercise/resources/ilExcManagement.js diff --git a/components/ILIAS/Exercise/js/ilExcPeerReview.js b/components/ILIAS/Exercise/resources/ilExcPeerReview.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcPeerReview.js rename to components/ILIAS/Exercise/resources/ilExcPeerReview.js diff --git a/components/ILIAS/Exercise/js/ilExcPresentation.js b/components/ILIAS/Exercise/resources/ilExcPresentation.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Exercise/js/ilExcPresentation.js rename to components/ILIAS/Exercise/resources/ilExcPresentation.js diff --git a/components/ILIAS/Export/Export.php b/components/ILIAS/Export/Export.php index f1dc35f92353..af290a7ca9f1 100644 --- a/components/ILIAS/Export/Export.php +++ b/components/ILIAS/Export/Export.php @@ -32,6 +32,5 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... } } diff --git a/components/ILIAS/Export/Print/class.PrintProcessGUI.php b/components/ILIAS/Export/Print/class.PrintProcessGUI.php index 236f8c6f4a51..0ea74ea93dba 100755 --- a/components/ILIAS/Export/Print/class.PrintProcessGUI.php +++ b/components/ILIAS/Export/Print/class.PrintProcessGUI.php @@ -89,7 +89,7 @@ public function getModalElements( $ui = $this->ui; $lng = $this->lng; - $ui->mainTemplate()->addJavaScript("./components/ILIAS/Form/js/Form.js"); + $ui->mainTemplate()->addJavaScript("assets/js/Form.js"); $modal = $ui->factory()->modal()->roundtrip( $this->lng->txt("exp_print_pdf"), $ui->factory()->legacy('some modal') diff --git a/components/ILIAS/Export/classes/class.ilExportGUI.php b/components/ILIAS/Export/classes/class.ilExportGUI.php index 50a0a2155ff5..3fb3a4199bc3 100755 --- a/components/ILIAS/Export/classes/class.ilExportGUI.php +++ b/components/ILIAS/Export/classes/class.ilExportGUI.php @@ -383,7 +383,7 @@ public function handleCustomMultiCommand(): void */ protected function showItemSelection(): void { - $this->tpl->addJavaScript('./components/ILIAS/CopyWizard/js/ilContainer.js'); + $this->tpl->addJavaScript('assets/js/ilContainer.js'); $this->tpl->setVariable('BODY_ATTRIBUTES', 'onload="ilDisableChilds(\'cmd\');"'); $table = new ilExportSelectionTableGUI($this, 'listExportFiles'); diff --git a/components/ILIAS/Feeds/Feeds.php b/components/ILIAS/Feeds/Feeds.php index 0d931aef436d..2894dfeec92b 100644 --- a/components/ILIAS/Feeds/Feeds.php +++ b/components/ILIAS/Feeds/Feeds.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "privfeed.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "feed.php"); } } diff --git a/public/feed.php b/components/ILIAS/Feeds/resources/feed.php old mode 100755 new mode 100644 similarity index 99% rename from public/feed.php rename to components/ILIAS/Feeds/resources/feed.php index 2259db7d2e42..4a21d2772e80 --- a/public/feed.php +++ b/components/ILIAS/Feeds/resources/feed.php @@ -48,4 +48,4 @@ $writer->showFeed(); } elseif ($requested_blog_id > 0) { ilObjBlog::deliverRSS($requested_blog_id); -} +} \ No newline at end of file diff --git a/public/privfeed.php b/components/ILIAS/Feeds/resources/privfeed.php old mode 100755 new mode 100644 similarity index 92% rename from public/privfeed.php rename to components/ILIAS/Feeds/resources/privfeed.php index 4892448afb70..a7e7ad4785c0 --- a/public/privfeed.php +++ b/components/ILIAS/Feeds/resources/privfeed.php @@ -3,11 +3,11 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* News feed script. -* -* @author Alex Killing -* @version $Id$ -*/ + * News feed script. + * + * @author Alex Killing + * @version $Id$ + */ ilContext::init(ilContext::CONTEXT_RSS_AUTH); @@ -25,8 +25,8 @@ exit; } else { if ($_GET["user_id"] != "" && ilObjUser::_getFeedPass($_GET["user_id"]) != "" && - (md5($_SERVER['PHP_AUTH_PW']) == ilObjUser::_getFeedPass($_GET["user_id"]) && - $_SERVER['PHP_AUTH_USER'] == ilObjUser::_lookupLogin($_GET["user_id"])) + (md5($_SERVER['PHP_AUTH_PW']) == ilObjUser::_getFeedPass($_GET["user_id"]) && + $_SERVER['PHP_AUTH_USER'] == ilObjUser::_lookupLogin($_GET["user_id"])) && $feed_set->get("enable_private_feed")) { include_once("./Services/Feeds/classes/class.ilUserFeedWriter.php"); // Third parameter is true for private feed @@ -84,4 +84,4 @@ $blankFeedWriter->addItem($feed_item); $blankFeedWriter->showFeed(); } -} +} \ No newline at end of file diff --git a/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php b/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php index 3659821db037..e967744559be 100755 --- a/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php +++ b/components/ILIAS/File/classes/Icons/class.ilObjFileDefaultIconsObjective.php @@ -29,7 +29,7 @@ */ class ilObjFileDefaultIconsObjective implements \ILIAS\Setup\Objective { - private const PATH_DEFAULT_ICON_DIR = __DIR__ . "/../../../../../public/templates/default/images/default_file_icons/"; + private const PATH_DEFAULT_ICON_DIR = __DIR__ . "/../../../../../public/assets/images/default_file_icons/"; public function __construct( private bool $reset_default = false, diff --git a/components/ILIAS/FileDelivery/FileDelivery.php b/components/ILIAS/FileDelivery/FileDelivery.php index 6c5a004f398c..c09dbef87ad8 100644 --- a/components/ILIAS/FileDelivery/FileDelivery.php +++ b/components/ILIAS/FileDelivery/FileDelivery.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\FileDelivery\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "deliver.php"); } } diff --git a/public/deliver.php b/components/ILIAS/FileDelivery/resources/deliver.php similarity index 100% rename from public/deliver.php rename to components/ILIAS/FileDelivery/resources/deliver.php diff --git a/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php b/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php index 68c465998f18..3e1e7baf5901 100755 --- a/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php +++ b/components/ILIAS/FileUpload/tests/Processor/SVGPreProcessorTest.php @@ -111,12 +111,12 @@ public function testSaneSVG(): void private function provideSomeComplexSaneSVG(): array { return [ - [__DIR__ . '/../../../../../public/templates/default/images/media/bigplay.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/nav/jstree.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/media/loader.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/object/col.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/logo/HeaderIcon.svg'], - [__DIR__ . '/../../../../../public/templates/default/images/object/answered_not.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/media/bigplay.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/nav/jstree.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/media/loader.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/object/col.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/logo/HeaderIcon.svg'], + [__DIR__ . '/../../../../../components/ILIAS/UI/resources/images/object/answered_not.svg'], ]; } diff --git a/components/ILIAS/Form/Form.php b/components/ILIAS/Form/Form.php index 1c0408182d5d..62e0e8e991a2 100644 --- a/components/ILIAS/Form/Form.php +++ b/components/ILIAS/Form/Form.php @@ -32,6 +32,19 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormWizardInput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "filewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormHierarchyForm.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormImageFileCapture.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Form.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceFormMulti.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "textwizard.js"); } } diff --git a/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php b/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php index ccb4c536aeb4..9ebcfc59ffc9 100755 --- a/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilFileWizardInputGUI.php @@ -231,7 +231,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $main_tpl = $this->tpl; - $main_tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $main_tpl->addJavascript("./components/ILIAS/Form/templates/default/filewizard.js"); + $main_tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + $main_tpl->addJavascript("assets/filewizard.js"); } } diff --git a/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php b/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php index 94bce4fda082..845f785c97f8 100755 --- a/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php +++ b/components/ILIAS/Form/classes/class.ilHierarchyFormGUI.php @@ -79,7 +79,7 @@ public function __construct() $this->help_items = array(); ilYuiUtil::initDragDrop(); - $this->main_tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormHierarchyForm.js"); + $this->main_tpl->addJavascript("assets/js/ServiceFormHierarchyForm.js"); $this->http = $DIC->http(); diff --git a/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php b/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php index 86bd9c2c949c..699cf381d81c 100755 --- a/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilImageFileInputGUI.php @@ -119,7 +119,7 @@ public function insert(ilTemplate $a_tpl): void $i_tpl->setVariable("TXT_TAKE_SNAPSHOT", $lng->txt("form_take_snapshot")); $i_tpl->parseCurrentBlock(); $main_tpl = $this->tpl; - $main_tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormImageFileCapture.js"); + $main_tpl->addJavascript("assets/js/ServiceFormImageFileCapture.js"); } if ($this->getImage() != "") { diff --git a/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php b/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php index 8a08d5268318..8c876981b7d5 100755 --- a/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php +++ b/components/ILIAS/Form/classes/class.ilPropertyFormGUI.php @@ -492,8 +492,8 @@ public function getContent(): string ilYuiUtil::initEvent(); ilYuiUtil::initDom(); - $tpl->addJavaScript("./components/ILIAS/JavaScript/js/Basic.js"); - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); + $tpl->addJavaScript("assets/js/Basic.js"); + $tpl->addJavaScript("assets/js/Form.js"); $this->tpl = new ilTemplate("tpl.property_form.html", true, true, "components/ILIAS/Form"); @@ -645,7 +645,7 @@ public function insertItem( //if(method_exists($item, "getMulti") && $item->getMulti()) if ($item instanceof ilMultiValuesItem && $item->getMulti()) { - $tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormMulti.js"); + $tpl->addJavascript("assets/js/ServiceFormMulti.js"); $this->tpl->setCurrentBlock("multi_in"); $this->tpl->setVariable("ID", $item->getFieldId()); diff --git a/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php b/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php index b95016d7ff07..4c4dd590dc61 100755 --- a/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilSelectBuilderInputGUI.php @@ -167,7 +167,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $tpl = $this->tpl; - $tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $tpl->addJavascript("./components/ILIAS/Form/templates/default/textwizard.js"); + $tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + $tpl->addJavascript("assets/js/textwizard.js"); } } diff --git a/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php b/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php index da10db68e70b..46ab0eaa0b2a 100755 --- a/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php +++ b/components/ILIAS/Form/classes/class.ilTextWizardInputGUI.php @@ -150,8 +150,8 @@ public function render(string $a_mode = ""): string $tpl->setVariable("ELEMENT_ID", $this->getFieldId()); if (!$this->getDisabled()) { - $this->tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $this->tpl->addJavascript("./components/ILIAS/Form/templates/default/textwizard.js"); + $this->tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + $this->tpl->addJavascript("assets/js/textwizard.js"); } return $tpl->get(); diff --git a/components/ILIAS/Form/js/Form.js b/components/ILIAS/Form/resources/Form.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/Form.js rename to components/ILIAS/Form/resources/Form.js diff --git a/components/ILIAS/Form/js/ServiceFormHierarchyForm.js b/components/ILIAS/Form/resources/ServiceFormHierarchyForm.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormHierarchyForm.js rename to components/ILIAS/Form/resources/ServiceFormHierarchyForm.js diff --git a/components/ILIAS/Form/js/ServiceFormImageFileCapture.js b/components/ILIAS/Form/resources/ServiceFormImageFileCapture.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormImageFileCapture.js rename to components/ILIAS/Form/resources/ServiceFormImageFileCapture.js diff --git a/components/ILIAS/Form/js/ServiceFormMulti.js b/components/ILIAS/Form/resources/ServiceFormMulti.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormMulti.js rename to components/ILIAS/Form/resources/ServiceFormMulti.js diff --git a/components/ILIAS/Form/js/ServiceFormWizardInput.js b/components/ILIAS/Form/resources/ServiceFormWizardInput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/js/ServiceFormWizardInput.js rename to components/ILIAS/Form/resources/ServiceFormWizardInput.js diff --git a/components/ILIAS/Form/templates/default/filewizard.js b/components/ILIAS/Form/resources/filewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/templates/default/filewizard.js rename to components/ILIAS/Form/resources/filewizard.js diff --git a/components/ILIAS/Form/templates/default/textwizard.js b/components/ILIAS/Form/resources/textwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Form/templates/default/textwizard.js rename to components/ILIAS/Form/resources/textwizard.js diff --git a/components/ILIAS/Forum/Forum.php b/components/ILIAS/Forum/Forum.php index fba2781c4374..85abed9df536 100644 --- a/components/ILIAS/Forum/Forum.php +++ b/components/ILIAS/Forum/Forum.php @@ -36,5 +36,7 @@ public function init( new \ilForumSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "autosave_forum.js"); } } diff --git a/components/ILIAS/Forum/classes/class.ilObjForumGUI.php b/components/ILIAS/Forum/classes/class.ilObjForumGUI.php index 2df2ef7e5e21..050aaa47eb1a 100755 --- a/components/ILIAS/Forum/classes/class.ilObjForumGUI.php +++ b/components/ILIAS/Forum/classes/class.ilObjForumGUI.php @@ -110,7 +110,7 @@ public function __construct($data, int $id = 0, bool $call_by_reference = true, $this->type = 'frm'; parent::__construct($data, $id, $call_by_reference, false); - $this->tpl->addJavaScript('./components/ILIAS/JavaScript/js/Basic.js'); + $this->tpl->addJavaScript('assets/js/Basic.js'); $this->lng->loadLanguageModule('forum'); $this->lng->loadLanguageModule('content'); @@ -234,7 +234,7 @@ private function decorateWithAutosave(ilPropertyFormGUI $form): void if (ilForumPostDraft::isAutoSavePostDraftAllowed()) { $interval = ilForumPostDraft::lookupAutosaveInterval(); - $this->tpl->addJavaScript('./components/ILIAS/Forum/js/autosave.js'); + $this->tpl->addJavaScript('assets/js/autosave_forum.js'); $autosave_cmd = 'autosaveDraftAsync'; if ($this->objCurrentPost->getId() === 0 && $this->objCurrentPost->getThreadId() === 0) { $autosave_cmd = 'autosaveThreadDraftAsync'; diff --git a/components/ILIAS/Forum/js/autosave.js b/components/ILIAS/Forum/js/autosave.js deleted file mode 100755 index 468dea897de3..000000000000 --- a/components/ILIAS/Forum/js/autosave.js +++ /dev/null @@ -1,104 +0,0 @@ - -(function (root, scope, factory) { - scope.ForumDraftsAutosave = factory(root, root.jQuery); -}(window, il, function(root, $) { - - "use strict"; - - var pub = {}, pro = {}, draft_as_handle = null, autosave_active = true ; - - pub.disableAutosave = function() - { - autosave_active = false; - }; - - pub.enableAutosave = function() - { - autosave_active = true; - }; - - pub.init = function(options) { - var settings = $.extend({ - interval: 1000 * 10, - url: "", - loading_img_src: "", - draft_id: 0, - selectors: { - form: "" - } - }, options), draft_id = settings.draft_id; - - var $form = $(settings.selectors.form); - - var saveDraftCallback = function saveDraftCallback() { - if (typeof tinyMCE !== "undefined") { - if (tinyMCE) tinyMCE.triggerSave(); - } - - if (autosave_active && $('#subject').val() != '' && $('#message').val() != '') { - var data = $form.serialize(); - - $form.find(".ilFrmLoadingImg").remove(); - $form.find("input[type=submit]").attr("disabled", "disabled"); - $form.find(".ilFormCmds").each(function () { - $('') - .css("paddingRight", "10px") - .insertBefore($(this).find("input[type=submit]:first")); - }); - $('#ilsaving').removeClass("ilNoDisplay"); - - il.ForumDraftsAutosave.disableAutosave(); - $.ajax({ - type: "POST", - url: settings.url, - data: data, - dataType: "json", - success: function (response) { - $form.find("input[type=submit]").attr("disabled", false); - $form.find(".ilFrmLoadingImg").remove(); - $('#ilsaving').addClass("ilNoDisplay"); - - if (typeof response.draft_id !== "undefined" && response.draft_id > 0) { - $draft_id.val(response.draft_id); - } - - il.ForumDraftsAutosave.enableAutosave(); - } - }); - } - }; - - if ($("#ilsaving").size() === 0) { - $('
    ' + il.Language.txt("saving") + '
    ').appendTo($("body")); - } - $("#ilsaving").css("zIndex", 10000); - var $draft_id = $form.find("#draft_id"); - if ($draft_id.size() === 0) { - $draft_id = $(''); - $form.append($draft_id); - } - - $(function() { - draft_as_handle = root.setInterval(saveDraftCallback, settings.interval); - - $form.on("submit", function() { - root.clearInterval(draft_as_handle); - }); - }); - }; - - return pub; -})); - -$( document ).ready(function() { - if($('.found_threat_history_to_restore').length > 0) - { - var $modal = $("#frm_autosave_restore"); - il.ForumDraftsAutosave.disableAutosave(); - $modal.modal("show"); - $modal.on('hidden.bs.modal', function () { - il.ForumDraftsAutosave.enableAutosave(); - }) - - } -}); diff --git a/components/ILIAS/Forum/resources/autosave_forum.js b/components/ILIAS/Forum/resources/autosave_forum.js new file mode 100644 index 000000000000..2bcdb5e98595 --- /dev/null +++ b/components/ILIAS/Forum/resources/autosave_forum.js @@ -0,0 +1,98 @@ +(function (root, scope, factory) { + scope.ForumDraftsAutosave = factory(root, root.jQuery); +}(window, il, (root, $) => { + const pub = {}; const pro = {}; let draft_as_handle = null; let + autosave_active = true; + + pub.disableAutosave = function () { + autosave_active = false; + }; + + pub.enableAutosave = function () { + autosave_active = true; + }; + + pub.init = function (options) { + const settings = $.extend({ + interval: 1000 * 10, + url: '', + loading_img_src: '', + draft_id: 0, + selectors: { + form: '', + }, + }, options); const + { draft_id } = settings; + + const $form = $(settings.selectors.form); + + const saveDraftCallback = function saveDraftCallback() { + if (typeof tinyMCE !== 'undefined') { + if (tinyMCE) tinyMCE.triggerSave(); + } + + if (autosave_active && $('#subject').val() != '' && $('#message').val() != '') { + const data = $form.serialize(); + + $form.find('.ilFrmLoadingImg').remove(); + $form.find('input[type=submit]').attr('disabled', 'disabled'); + $form.find('.ilFormCmds').each(function () { + $(``) + .css('paddingRight', '10px') + .insertBefore($(this).find('input[type=submit]:first')); + }); + $('#ilsaving').removeClass('ilNoDisplay'); + + il.ForumDraftsAutosave.disableAutosave(); + $.ajax({ + type: 'POST', + url: settings.url, + data, + dataType: 'json', + success(response) { + $form.find('input[type=submit]').attr('disabled', false); + $form.find('.ilFrmLoadingImg').remove(); + $('#ilsaving').addClass('ilNoDisplay'); + + if (typeof response.draft_id !== 'undefined' && response.draft_id > 0) { + $draft_id.val(response.draft_id); + } + + il.ForumDraftsAutosave.enableAutosave(); + }, + }); + } + }; + + if ($('#ilsaving').size() === 0) { + $(`
    ${il.Language.txt('saving')}
    `).appendTo($('body')); + } + $('#ilsaving').css('zIndex', 10000); + var $draft_id = $form.find('#draft_id'); + if ($draft_id.size() === 0) { + $draft_id = $(''); + $form.append($draft_id); + } + + $(() => { + draft_as_handle = root.setInterval(saveDraftCallback, settings.interval); + + $form.on('submit', () => { + root.clearInterval(draft_as_handle); + }); + }); + }; + + return pub; +})); + +$(document).ready(() => { + if ($('.found_threat_history_to_restore').length > 0) { + const $modal = $('#frm_autosave_restore'); + il.ForumDraftsAutosave.disableAutosave(); + $modal.modal('show'); + $modal.on('hidden.bs.modal', () => { + il.ForumDraftsAutosave.enableAutosave(); + }); + } +}); diff --git a/components/ILIAS/GlobalScreen/GlobalScreen.php b/components/ILIAS/GlobalScreen/GlobalScreen.php index e00f762fa530..fb941b93a21b 100644 --- a/components/ILIAS/GlobalScreen/GlobalScreen.php +++ b/components/ILIAS/GlobalScreen/GlobalScreen.php @@ -36,5 +36,11 @@ public function init( new \ilGlobalScreenSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "gs_content.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "GS.js"); } } diff --git a/public/components/ILIAS/GlobalScreen/src/Client/dist/GS.js b/components/ILIAS/GlobalScreen/resources/GS.js similarity index 100% rename from public/components/ILIAS/GlobalScreen/src/Client/dist/GS.js rename to components/ILIAS/GlobalScreen/resources/GS.js diff --git a/public/gs_content.php b/components/ILIAS/GlobalScreen/resources/gs_content.php old mode 100755 new mode 100644 similarity index 99% rename from public/gs_content.php rename to components/ILIAS/GlobalScreen/resources/gs_content.php index a7b203abf55a..6dc0912fdd98 --- a/public/gs_content.php +++ b/components/ILIAS/GlobalScreen/resources/gs_content.php @@ -43,4 +43,4 @@ public function run() if (php_sapi_name() !== 'cli') { (new ContentRenderer())->run(); -} +} \ No newline at end of file diff --git a/components/ILIAS/GlobalScreen/src/Client/Client.php b/components/ILIAS/GlobalScreen/src/Client/Client.php index 7f85b4ed2a84..8d9b3d39036c 100755 --- a/components/ILIAS/GlobalScreen/src/Client/Client.php +++ b/components/ILIAS/GlobalScreen/src/Client/Client.php @@ -40,7 +40,7 @@ public function __construct(ClientSettings $settings) public function init(MetaContent $content): void { - $content->addJs("./components/ILIAS/GlobalScreen/src/Client/dist/GS.js", true, 1); + $content->addJs("assets/js/GS.js", true, 1); $init_script = "il.GS.Client.init('" . json_encode($this->settings) . "');"; $content->addOnloadCode($init_script, 1); } diff --git a/components/ILIAS/GlobalScreen/src/Client/tsconfig.json b/components/ILIAS/GlobalScreen/src/Client/tsconfig.json index c35de717cbe4..4dfb64cc1d4b 100755 --- a/components/ILIAS/GlobalScreen/src/Client/tsconfig.json +++ b/components/ILIAS/GlobalScreen/src/Client/tsconfig.json @@ -5,7 +5,7 @@ "removeComments": true, "preserveConstEnums": true, "declaration": false, - "outDir": "./dist", + "outDir": "../../resources", "rootDir": "./src", "sourceMap": false, "target": "es5" diff --git a/components/ILIAS/Help/Help.php b/components/ILIAS/Help/Help.php index 9e5722b4ee90..b62b6a0ded94 100644 --- a/components/ILIAS/Help/Help.php +++ b/components/ILIAS/Help/Help.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\Help\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilHelp.js"); } } diff --git a/components/ILIAS/Help/classes/class.ilHelpGUI.php b/components/ILIAS/Help/classes/class.ilHelpGUI.php index 078323f8882d..14153a346919 100755 --- a/components/ILIAS/Help/classes/class.ilHelpGUI.php +++ b/components/ILIAS/Help/classes/class.ilHelpGUI.php @@ -311,10 +311,10 @@ public function initHelp( $ilSetting = $DIC->settings(); $ctrl = $DIC->ctrl(); - $a_tpl->addJavaScript("./components/ILIAS/Help/js/ilHelp.js"); - $a_tpl->addJavaScript("./components/ILIAS/Accordion/js/accordion.js"); + $a_tpl->addJavaScript("assets/js/ilHelp.js"); + $a_tpl->addJavaScript("assets/js/accordion.js"); iljQueryUtil::initMaphilight(); - $a_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); + $a_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); $this->setCtrlPar(); $a_tpl->addOnLoadCode( diff --git a/components/ILIAS/Help/js/ilHelp.js b/components/ILIAS/Help/resources/ilHelp.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Help/js/ilHelp.js rename to components/ILIAS/Help/resources/ilHelp.js diff --git a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php index a0d921ab9672..d171ba043610 100755 --- a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php +++ b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyGUI.php @@ -809,7 +809,7 @@ protected function showItemSelection(bool $copy_page = false): void $this->log->debug('Target(s): ' . print_r($this->getTargets(), true)); $this->tpl->setOnScreenMessage('info', $this->lng->txt($this->getType() . '_copy_threads_info')); - $this->tpl->addJavaScript('./components/ILIAS/CopyWizard/js/ilContainer.js'); + $this->tpl->addJavaScript('assets/js/ilContainer.js'); $this->tpl->setVariable('BODY_ATTRIBUTES', 'onload="ilDisableChilds(\'cmd\');"'); $table = new ilObjectCopySelectionTableGUI($this, 'showItemSelection', $this->getType(), $copy_page); diff --git a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php index fe09a4e96165..5773a68d148f 100755 --- a/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php +++ b/components/ILIAS/ILIASObject/classes/class.ilObjectCopyProgressTableGUI.php @@ -50,7 +50,7 @@ public function setRedirectionUrl(?string $url): void public function init(): void { - $this->main_tpl->addJavaScript('./components/ILIAS/CopyWizard/js/ilCopyRedirection.js'); + $this->main_tpl->addJavaScript('assets/js/ilCopyRedirection.js'); $this->main_tpl->addOnLoadCode('il.CopyRedirection.checkDone()'); $this->setExternalSorting(true); $this->setFormAction($this->ctrl->getFormAction($this->getParentObject())); diff --git a/components/ILIAS/Init/Init.php b/components/ILIAS/Init/Init.php index 4b448ef9c4ce..7ccd822e9194 100644 --- a/components/ILIAS/Init/Init.php +++ b/components/ILIAS/Init/Init.php @@ -32,6 +32,31 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "register.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "pwassist.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "login.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "logout.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "index.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "ilias.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "error.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "sso/index.php", "sso"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, ".htaccess", "."); } } diff --git a/public/.htaccess b/components/ILIAS/Init/resources/.htaccess similarity index 100% rename from public/.htaccess rename to components/ILIAS/Init/resources/.htaccess diff --git a/public/error.php b/components/ILIAS/Init/resources/error.php old mode 100755 new mode 100644 similarity index 99% rename from public/error.php rename to components/ILIAS/Init/resources/error.php index 25cb80f8f557..021593526b23 --- a/public/error.php +++ b/components/ILIAS/Init/resources/error.php @@ -29,4 +29,4 @@ if (!($e instanceof \PDOException)) { die($e->getMessage()); } -} +} \ No newline at end of file diff --git a/public/ilias.php b/components/ILIAS/Init/resources/ilias.php old mode 100755 new mode 100644 similarity index 100% rename from public/ilias.php rename to components/ILIAS/Init/resources/ilias.php diff --git a/public/index.php b/components/ILIAS/Init/resources/index.php old mode 100755 new mode 100644 similarity index 87% rename from public/index.php rename to components/ILIAS/Init/resources/index.php index 91133a2a88f9..f0bb349e46ab --- a/public/index.php +++ b/components/ILIAS/Init/resources/index.php @@ -3,13 +3,13 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* start page of ilias -* -* @author Peter Gabriel -* @version $Id$ -* -* @package ilias -*/ + * start page of ilias + * + * @author Peter Gabriel + * @version $Id$ + * + * @package ilias + */ require_once '../vendor/composer/vendor/autoload.php'; // jump to setup if ILIAS3 is not installed @@ -30,7 +30,7 @@ // Block WebDAV Requests from Microsoft WebDAV MiniRedir client. if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND' -|| $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { + || $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { $status = '404 Not Found'; header("HTTP/1.1 $status"); header("X-WebDAV-Status: $status", true); @@ -41,4 +41,4 @@ ilInitialisation::initILIAS(); $ilCtrl->callBaseClass('ilStartUpGUI'); -$ilBench->save(); +$ilBench->save(); \ No newline at end of file diff --git a/public/login.php b/components/ILIAS/Init/resources/login.php old mode 100755 new mode 100644 similarity index 74% rename from public/login.php rename to components/ILIAS/Init/resources/login.php index 245675c749ea..843be6692910 --- a/public/login.php +++ b/components/ILIAS/Init/resources/login.php @@ -3,14 +3,14 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* login script for ilias -* -* @author Sascha Hofmann -* @author Peter Gabriel -* @version $Id$ -* -* @package ilias-layout -*/ + * login script for ilias + * + * @author Sascha Hofmann + * @author Peter Gabriel + * @version $Id$ + * + * @package ilias-layout + */ require_once '../vendor/composer/vendor/autoload.php'; @@ -27,4 +27,4 @@ $ilCtrl->callBaseClass('ilStartUpGUI'); $ilBench->save(); -exit; +exit; \ No newline at end of file diff --git a/public/logout.php b/components/ILIAS/Init/resources/logout.php old mode 100755 new mode 100644 similarity index 86% rename from public/logout.php rename to components/ILIAS/Init/resources/logout.php index 6f73f4e92af1..2e6c6e80928c --- a/public/logout.php +++ b/components/ILIAS/Init/resources/logout.php @@ -17,13 +17,13 @@ *********************************************************************/ /** -* logout script for ilias -* -* @author Sascha Hofmann -* @version $Id$ -* -* @package ilias-core -*/ + * logout script for ilias + * + * @author Sascha Hofmann + * @version $Id$ + * + * @package ilias-core + */ require_once("../vendor/composer/vendor/autoload.php"); ilInitialisation::initILIAS(); @@ -33,4 +33,4 @@ $ilCtrl->callBaseClass('ilStartUpGUI'); $ilBench->save(); -exit; +exit; \ No newline at end of file diff --git a/public/pwassist.php b/components/ILIAS/Init/resources/pwassist.php old mode 100755 new mode 100644 similarity index 56% rename from public/pwassist.php rename to components/ILIAS/Init/resources/pwassist.php index 003615a26f75..2038cd14747a --- a/public/pwassist.php +++ b/components/ILIAS/Init/resources/pwassist.php @@ -3,14 +3,14 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* Password assistance facility for users who have forgotten their password -* or for users for whom no password has been assigned yet. -* -* @author Werner Randelshofer -* @version $Id$ -* -* @package ilias-core -*/ + * Password assistance facility for users who have forgotten their password + * or for users for whom no password has been assigned yet. + * + * @author Werner Randelshofer + * @version $Id$ + * + * @package ilias-core + */ ilInitialisation::initILIAS(); @@ -19,4 +19,4 @@ $ilCtrl->callBaseClass('ilStartUpGUI'); $ilBench->save(); -exit; +exit; \ No newline at end of file diff --git a/public/register.php b/components/ILIAS/Init/resources/register.php old mode 100755 new mode 100644 similarity index 65% rename from public/register.php rename to components/ILIAS/Init/resources/register.php index d4d917c8fed2..59cc654d4edc --- a/public/register.php +++ b/components/ILIAS/Init/resources/register.php @@ -3,17 +3,17 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* registration form for new users -* -* @author Sascha Hofmann -* @version $Id$ -* -* @package ilias-core -*/ + * registration form for new users + * + * @author Sascha Hofmann + * @version $Id$ + * + * @package ilias-core + */ ilInitialisation::initILIAS(); // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $ilCtrl->setCmd("jumpToRegistration"); $ilCtrl->callBaseClass('ilStartUpGUI'); -$ilBench->save(); +$ilBench->save(); \ No newline at end of file diff --git a/public/sso/index.php b/components/ILIAS/Init/resources/sso/index.php old mode 100755 new mode 100644 similarity index 94% rename from public/sso/index.php rename to components/ILIAS/Init/resources/sso/index.php index c7a60b5b68a6..a01505a0310e --- a/public/sso/index.php +++ b/components/ILIAS/Init/resources/sso/index.php @@ -16,7 +16,7 @@ if ($cookie_path == "\\") { $cookie_path = '/'; } - + setcookie("ilClientId", $_GET["client_id"], 0, $cookie_path, ''); $_COOKIE["ilClientId"] = $_GET["client_id"]; } @@ -29,4 +29,4 @@ // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $ilCtrl->setCmd('doApacheAuthentication'); -$ilCtrl->callBaseClass('ilStartUpGUI'); +$ilCtrl->callBaseClass('ilStartUpGUI'); \ No newline at end of file diff --git a/components/ILIAS/JavaScript/JavaScript.php b/components/ILIAS/JavaScript/JavaScript.php index 415fa428a537..5fd3daf863d5 100644 --- a/components/ILIAS/JavaScript/JavaScript.php +++ b/components/ILIAS/JavaScript/JavaScript.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Basic.js"); } } diff --git a/public/components/ILIAS/JavaScript/js/Basic.js b/components/ILIAS/JavaScript/resources/Basic.js similarity index 100% rename from public/components/ILIAS/JavaScript/js/Basic.js rename to components/ILIAS/JavaScript/resources/Basic.js diff --git a/components/ILIAS/LTI/LTI.php b/components/ILIAS/LTI/LTI.php index 397cb8506163..49f811acb559 100644 --- a/components/ILIAS/LTI/LTI.php +++ b/components/ILIAS/LTI/LTI.php @@ -36,5 +36,8 @@ public function init( new \ilLTISetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "lti.php"); } } diff --git a/public/lti.php b/components/ILIAS/LTI/resources/lti.php old mode 100755 new mode 100644 similarity index 100% rename from public/lti.php rename to components/ILIAS/LTI/resources/lti.php diff --git a/components/ILIAS/LearningHistory/LearningHistory.php b/components/ILIAS/LearningHistory/LearningHistory.php index 86dc35c97b65..49b1fe1df643 100644 --- a/components/ILIAS/LearningHistory/LearningHistory.php +++ b/components/ILIAS/LearningHistory/LearningHistory.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "LearningHistory.js"); } } diff --git a/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php b/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php index ac511d0c4083..037e927a32be 100755 --- a/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php +++ b/components/ILIAS/LearningHistory/classes/class.ilLearningHistoryGUI.php @@ -68,7 +68,7 @@ public function __construct() ? $to : null; - $this->main_tpl->addJavaScript("./components/ILIAS/LearningHistory/js/LearningHistory.js"); + $this->main_tpl->addJavaScript("assets/js/LearningHistory.js"); $this->http = $DIC->http(); } diff --git a/components/ILIAS/LearningHistory/js/LearningHistory.js b/components/ILIAS/LearningHistory/resources/LearningHistory.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/LearningHistory/js/LearningHistory.js rename to components/ILIAS/LearningHistory/resources/LearningHistory.js diff --git a/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php b/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php index d952544e1b3e..88445703a9d9 100755 --- a/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php +++ b/components/ILIAS/LearningModule/Export/class.LMHtmlExport.php @@ -399,23 +399,23 @@ protected function getSupplyingExportFiles(string $a_target_dir = "."): array // check, why these do not come with the gs meta collector $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js", + "source" => "assets/js/mainbar.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/MainControls/metabar.js", + "source" => "assets/js/metabar.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/MainControls/slate.js", + "source" => "assets/js/slate.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/UI/src/templates/js/Page/stdpage.js", + "source" => "assets/js/stdpage.js", "type" => "js" ]; $scripts[] = [ - "source" => "components/ILIAS/GlobalScreen/src/Client/dist/GS.js", + "source" => "assets/js/GS.js", "type" => "js" ]; diff --git a/components/ILIAS/LearningModule/LearningModule.php b/components/ILIAS/LearningModule/LearningModule.php index 77413b3aba4c..7523dd26420e 100644 --- a/components/ILIAS/LearningModule/LearningModule.php +++ b/components/ILIAS/LearningModule/LearningModule.php @@ -36,10 +36,12 @@ public function init( new \ilLearningModuleSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); - $contribute[\ILIAS\Setup\Agent::class] = fn() => new \ILIAS\LearningModule\Setup\DBUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "LearningModule.js"); } } diff --git a/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php b/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php index 077ac2686a1b..4c71104332d9 100755 --- a/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php +++ b/components/ILIAS/LearningModule/Presentation/class.ilLMPresentationGUI.php @@ -624,7 +624,7 @@ protected function addResourceFiles(): void ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); - $this->tpl->addJavaScript("./components/ILIAS/LearningModule/js/LearningModule.js"); + $this->tpl->addJavaScript("assets/js/LearningModule.js"); // handle initial content if ($this->requested_frame == "") { @@ -645,7 +645,7 @@ protected function addResourceFiles(): void } // from main menu - // $this->tpl->addJavascript("./components/ILIAS/JavaScript/js/Basic.js"); + // $this->tpl->addJavascript("assets/js/Basic.js"); ilYuiUtil::initConnection($this->tpl); } } diff --git a/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php b/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php index e602942dacb5..9a8c34603244 100755 --- a/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php +++ b/components/ILIAS/LearningModule/classes/class.ilLMMenuGUI.php @@ -64,7 +64,7 @@ public function getEntries(): array // print selection if ($this->lm->isActivePrintView() && $access->checkAccess("read", "", $this->lm->getRefId())) { if (!$this->offline) { - $ui->mainTemplate()->addJavaScript("./components/ILIAS/Form/js/Form.js"); + $ui->mainTemplate()->addJavaScript("assets/js/Form.js"); $modal = $ui->factory()->modal()->roundtrip( $lng->txt("cont_print_view"), $ui->factory()->legacy('some modal') diff --git a/components/ILIAS/LearningModule/js/LearningModule.js b/components/ILIAS/LearningModule/resources/LearningModule.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/LearningModule/js/LearningModule.js rename to components/ILIAS/LearningModule/resources/LearningModule.js diff --git a/components/ILIAS/LearningModule/templates/default/tpl.blank.html b/components/ILIAS/LearningModule/templates/default/tpl.blank.html index d51c2560be3b..adeec0ee6422 100755 --- a/components/ILIAS/LearningModule/templates/default/tpl.blank.html +++ b/components/ILIAS/LearningModule/templates/default/tpl.blank.html @@ -4,7 +4,7 @@ {WINDOW_TITLE} {PAGETITLE} - + diff --git a/components/ILIAS/LegalDocuments/LegalDocuments.php b/components/ILIAS/LegalDocuments/LegalDocuments.php index 9869a306837b..52e57c2dc239 100644 --- a/components/ILIAS/LegalDocuments/LegalDocuments.php +++ b/components/ILIAS/LegalDocuments/LegalDocuments.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Setup\Agent::class] = fn() => + new LegalDocuments\Setup\Agent( + $pull[\ILIAS\Refinery\Factory::class] + ); } } diff --git a/components/ILIAS/LegalDocuments/classes/Legacy/Table.php b/components/ILIAS/LegalDocuments/classes/Legacy/Table.php index c925c3cff548..262ebc1dd002 100755 --- a/components/ILIAS/LegalDocuments/classes/Legacy/Table.php +++ b/components/ILIAS/LegalDocuments/classes/Legacy/Table.php @@ -64,7 +64,7 @@ public function __construct(?object $gui, string $command, TableInterface $table iljQueryUtil::initjQuery($DIC->ui()->mainTemplate()); ilYuiUtil::initPanel(false, $DIC->ui()->mainTemplate()); ilYuiUtil::initOverlay($DIC->ui()->mainTemplate()); - $DIC->ui()->mainTemplate()->addJavaScript('./components/ILIAS/Form/js/Form.js'); + $DIC->ui()->mainTemplate()->addJavaScript('assets/js/Form.js'); $this->determineOffsetAndOrder(); $this->setData($table->rows($this)); } diff --git a/components/ILIAS/Like/Like.php b/components/ILIAS/Like/Like.php index 99162d51ee93..9dd7388ae5c9 100644 --- a/components/ILIAS/Like/Like.php +++ b/components/ILIAS/Like/Like.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Like.js"); } } diff --git a/components/ILIAS/Like/classes/class.ilLikeGUI.php b/components/ILIAS/Like/classes/class.ilLikeGUI.php index a2883c1e26ce..fc0b529be5e0 100755 --- a/components/ILIAS/Like/classes/class.ilLikeGUI.php +++ b/components/ILIAS/Like/classes/class.ilLikeGUI.php @@ -67,7 +67,7 @@ public function __construct( protected function initJavascript(): void { ilYuiUtil::initConnection(); - $this->main_tpl->addJavaScript("./components/ILIAS/Like/js/Like.js"); + $this->main_tpl->addJavaScript("assets/js/Like.js"); } public function setObject( diff --git a/components/ILIAS/Like/js/Like.js b/components/ILIAS/Like/resources/Like.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Like/js/Like.js rename to components/ILIAS/Like/resources/Like.js diff --git a/components/ILIAS/Link/Link.php b/components/ILIAS/Link/Link.php index 58ce7a52e02f..61d0941e28ca 100644 --- a/components/ILIAS/Link/Link.php +++ b/components/ILIAS/Link/Link.php @@ -36,5 +36,14 @@ public function init( new \ILIAS\Link\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilIntLink.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExtLink.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("linkifyjs/dist/linkify.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("linkifyjs/dist/linkify-jquery.min.js"); } } diff --git a/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php b/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php index 38d5cd40eded..bcb8087de8c0 100755 --- a/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php +++ b/components/ILIAS/Link/classes/class.ilInternalLinkGUI.php @@ -924,12 +924,12 @@ public static function getInitHTML(string $a_url): string $lng->loadLanguageModule("link"); - $tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $tpl->addJavaScript("assets/js/ilExplorer.js"); ilExplorerBaseGUI::init(); - $tpl->addJavascript("./components/ILIAS/Link/js/ilIntLink.js"); + $tpl->addJavascript("assets/js/ilIntLink.js"); // #18721 - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); + $tpl->addJavaScript("assets/js/Form.js"); $modal = ilModalGUI::getInstance(); $modal->setHeading($lng->txt("link_link")); diff --git a/components/ILIAS/Link/classes/class.ilLinkifyUtil.php b/components/ILIAS/Link/classes/class.ilLinkifyUtil.php index 5519bb68c8ca..d61e244ee29e 100755 --- a/components/ILIAS/Link/classes/class.ilLinkifyUtil.php +++ b/components/ILIAS/Link/classes/class.ilLinkifyUtil.php @@ -49,9 +49,9 @@ public static function initLinkify(?ilGlobalTemplateInterface $a_tpl = null): vo public static function getLocalJsPaths(): array { return [ - "./node_modules/linkifyjs/dist/linkify.min.js", - "./node_modules/linkifyjs/dist/linkify-jquery.min.js", - "./components/ILIAS/Link/js/ilExtLink.js" + "assets/js/linkify.min.js", + "assets/js/linkify-jquery.min.js", + "assets/js/ilExtLink.js" ]; } } diff --git a/components/ILIAS/Link/js/ilExtLink.js b/components/ILIAS/Link/resources/ilExtLink.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Link/js/ilExtLink.js rename to components/ILIAS/Link/resources/ilExtLink.js diff --git a/components/ILIAS/Link/js/ilIntLink.js b/components/ILIAS/Link/resources/ilIntLink.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Link/js/ilIntLink.js rename to components/ILIAS/Link/resources/ilIntLink.js diff --git a/components/ILIAS/Mail/Mail.php b/components/ILIAS/Mail/Mail.php index 4ee492005fb8..a262ea410363 100644 --- a/components/ILIAS/Mail/Mail.php +++ b/components/ILIAS/Mail/Mail.php @@ -36,5 +36,7 @@ public function init( new \ilMailSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilMailComposeFunctions.js"); } } diff --git a/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php b/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php index 80ff783f4bf3..547146213dab 100755 --- a/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php +++ b/components/ILIAS/Mail/classes/Form/class.ilManualPlaceholderInputGUI.php @@ -49,7 +49,7 @@ public function __construct(string $label, string $http_post_param_name, protect parent::__construct($label, $http_post_param_name); - $this->tpl->addJavaScript('components/ILIAS/Mail/js/ilMailComposeFunctions.js'); + $this->tpl->addJavaScript('assets/js/ilMailComposeFunctions.js'); } public function getRerenderUrl(): ?string diff --git a/components/ILIAS/Mail/classes/class.ilMailFormGUI.php b/components/ILIAS/Mail/classes/class.ilMailFormGUI.php index 9368618064d4..1c44f05072b8 100755 --- a/components/ILIAS/Mail/classes/class.ilMailFormGUI.php +++ b/components/ILIAS/Mail/classes/class.ilMailFormGUI.php @@ -931,7 +931,7 @@ public function showForm(): void $this->tpl->setVariable('FORM', $form_gui->getHTML()); - $this->tpl->addJavaScript('components/ILIAS/Mail/js/ilMailComposeFunctions.js'); + $this->tpl->addJavaScript('assets/js/ilMailComposeFunctions.js'); $this->tpl->printToStdout(); } diff --git a/components/ILIAS/Mail/js/ilMailComposeFunctions.js b/components/ILIAS/Mail/resources/ilMailComposeFunctions.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Mail/js/ilMailComposeFunctions.js rename to components/ILIAS/Mail/resources/ilMailComposeFunctions.js diff --git a/components/ILIAS/Maps/Maps.php b/components/ILIAS/Maps/Maps.php index 9d37f401be46..d35912def45d 100644 --- a/components/ILIAS/Maps/Maps.php +++ b/components/ILIAS/Maps/Maps.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceOpenLayers.js"); } } diff --git a/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php b/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php index 71acacea5d7f..5d8a753a43b3 100755 --- a/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php +++ b/components/ILIAS/Maps/classes/class.ilOpenLayersMapGUI.php @@ -63,7 +63,7 @@ public function getHtml(): string $this->lng->loadLanguageModule("maps"); $this->tpl->addCss("public/node_modules/ol/ol.css"); $this->tpl->addCss("components/ILIAS/Maps/css/service_openlayers.css"); - $this->tpl->addJavaScript("components/ILIAS/Maps/js/dist/ServiceOpenLayers.js"); + $this->tpl->addJavaScript("assets/js/ServiceOpenLayers.js"); // add user markers $cnt = 0; diff --git a/components/ILIAS/Maps/js/dist/ServiceOpenLayers.js b/components/ILIAS/Maps/resources/ServiceOpenLayers.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Maps/js/dist/ServiceOpenLayers.js rename to components/ILIAS/Maps/resources/ServiceOpenLayers.js diff --git a/components/ILIAS/MediaCast/MediaCast.php b/components/ILIAS/MediaCast/MediaCast.php index efbb27cabcf6..28b766f8b727 100644 --- a/components/ILIAS/MediaCast/MediaCast.php +++ b/components/ILIAS/MediaCast/MediaCast.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\MediaCast\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "video_widget.js"); } } diff --git a/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php b/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php index d9733721815b..469a80e5ca9c 100755 --- a/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php +++ b/components/ILIAS/MediaCast/Video/class.VideoWidgetGUI.php @@ -35,7 +35,7 @@ public function __construct( ) { global $DIC; - $main_tpl->addJavaScript("components/ILIAS/MediaCast/Video/js/video_widget.js"); + $main_tpl->addJavaScript("assets/js/video_widget.js"); $this->main_tpl = $main_tpl; $this->dom_wrapper_id = $dom_wrapper_id; $this->ui = $DIC->ui(); diff --git a/components/ILIAS/MediaCast/Video/js/video_widget.js b/components/ILIAS/MediaCast/resources/video_widget.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaCast/Video/js/video_widget.js rename to components/ILIAS/MediaCast/resources/video_widget.js diff --git a/components/ILIAS/MediaObjects/MediaObjects.php b/components/ILIAS/MediaObjects/MediaObjects.php index 2945a7d0e793..9d05c441fef5 100644 --- a/components/ILIAS/MediaObjects/MediaObjects.php +++ b/components/ILIAS/MediaObjects/MediaObjects.php @@ -40,5 +40,18 @@ public function init( new \ILIAS\MediaObjects\Setup\DBUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "MediaObjectsCompletion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceMediaObjectPropWidthHeight.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("mediaelement/build/mediaelement-and-player.min.js"); + /* This is missing in the node-modules-build, but added in PHP code. + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("mediaelement/build/vimeo.min.js"); + */ + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("mediaelement/build/mediaelementplayer.min.css"); } } diff --git a/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php b/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php index a7a00510bc36..9f099f81700d 100755 --- a/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php +++ b/components/ILIAS/MediaObjects/Player/class.ilMediaObjectsPlayerWrapperGUI.php @@ -92,7 +92,7 @@ public function audio( $mcst_settings = ilMediaCastSettings::_getInstance(); $treshold = (int) $mcst_settings->getVideoCompletionThreshold(); - $main_tpl->addJavaScript("./components/ILIAS/MediaObjects/js/MediaObjectsCompletion.js"); + $main_tpl->addJavaScript("assets/js/MediaObjectsCompletion.js"); $ctrl->setParameter($this, "mob_tracking_ref_id", $tracking_container_ref_id); $ctrl->setParameter($this, "mob_tracking_mob_id", $mob->getId()); $url = $ctrl->getLinkTarget($this, "saveCompletion"); diff --git a/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php b/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php index 398187328149..9433d146db49 100755 --- a/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php +++ b/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php @@ -1575,7 +1575,7 @@ public static function includePresentationJS( iljQueryUtil::initjQuery($a_tpl); $a_tpl->addJavaScript(iljQueryUtil::getLocalMaphilightPath()); - $a_tpl->addJavaScript("./components/ILIAS/COPage/js/ilCOPagePres.js"); + $a_tpl->addJavaScript("components/ILIAS/COPage/js/ilCOPagePres.js"); ilPlayerUtil::initMediaElementJs($a_tpl); } diff --git a/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php b/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php index 569a80e496d4..b2dac61d56bc 100755 --- a/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php +++ b/components/ILIAS/MediaObjects/classes/class.ilPlayerUtil.php @@ -27,8 +27,8 @@ class ilPlayerUtil public static function getLocalMediaElementJsPath(): array { return [ - "./node_modules/mediaelement/build/mediaelement-and-player.min.js", - "./node_modules/mediaelement/build/renderers/vimeo.min.js" + "./assets/js/mediaelement-and-player.min.js", + "./assets/js/renderers/vimeo.min.js" ]; } @@ -37,7 +37,7 @@ public static function getLocalMediaElementJsPath(): array */ public static function getLocalMediaElementCssPath(): string { - return "./node_modules/mediaelement/build/mediaelementplayer.min.css"; + return "./assets/css/mediaelementplayer.min.css"; } /** diff --git a/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php b/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php index 4c96c4217d06..1ff33bb06972 100755 --- a/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php +++ b/components/ILIAS/MediaObjects/classes/class.ilWidthHeightInputGUI.php @@ -138,7 +138,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $this->main_tpl - ->addJavaScript("./components/ILIAS/MediaObjects/js/ServiceMediaObjectPropWidthHeight.js"); + ->addJavaScript("assets/js/ServiceMediaObjectPropWidthHeight.js"); $this->main_tpl->addOnLoadCode( 'prop_width_height["prop_' . $this->getPostVar() . '"] = ' . $ratio . ';' ); diff --git a/components/ILIAS/MediaObjects/js/MediaObjectsCompletion.js b/components/ILIAS/MediaObjects/resources/MediaObjectsCompletion.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaObjects/js/MediaObjectsCompletion.js rename to components/ILIAS/MediaObjects/resources/MediaObjectsCompletion.js diff --git a/components/ILIAS/MediaObjects/js/ServiceMediaObjectPropWidthHeight.js b/components/ILIAS/MediaObjects/resources/ServiceMediaObjectPropWidthHeight.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaObjects/js/ServiceMediaObjectPropWidthHeight.js rename to components/ILIAS/MediaObjects/resources/ServiceMediaObjectPropWidthHeight.js diff --git a/components/ILIAS/MediaPool/MediaPool.php b/components/ILIAS/MediaPool/MediaPool.php index 14beeee22e6a..5427b10b3453 100644 --- a/components/ILIAS/MediaPool/MediaPool.php +++ b/components/ILIAS/MediaPool/MediaPool.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilMediaPool.js"); } } diff --git a/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php b/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php index cf5b92602436..0c009d310721 100755 --- a/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php +++ b/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php @@ -1630,7 +1630,7 @@ public static function getPreviewModalHTML( ilObjMediaObjectGUI::includePresentationJS($a_tpl); - $tpl->addJavaScript("./components/ILIAS/MediaPool/js/ilMediaPool.js"); + $tpl->addJavaScript("assets/js/ilMediaPool.js"); $ilCtrl->setParameterByClass("ilobjmediapoolgui", "mepitem_id", ""); $ilCtrl->setParameterByClass("ilobjmediapoolgui", "ref_id", $a_mpool_ref_id); diff --git a/components/ILIAS/MediaPool/js/ilMediaPool.js b/components/ILIAS/MediaPool/resources/ilMediaPool.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/MediaPool/js/ilMediaPool.js rename to components/ILIAS/MediaPool/resources/ilMediaPool.js diff --git a/components/ILIAS/News/News.php b/components/ILIAS/News/News.php index 489ee32d034b..0550ab950bc2 100644 --- a/components/ILIAS/News/News.php +++ b/components/ILIAS/News/News.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Timeline.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "News.js"); } } diff --git a/components/ILIAS/News/Timeline/class.ilTimelineGUI.php b/components/ILIAS/News/Timeline/class.ilTimelineGUI.php index f6b12d6d8ebf..6e0a1ae68db6 100755 --- a/components/ILIAS/News/Timeline/class.ilTimelineGUI.php +++ b/components/ILIAS/News/Timeline/class.ilTimelineGUI.php @@ -49,7 +49,7 @@ public function addItem(ilTimelineItemInt $a_item): void public function render( bool $a_items_only = false ): string { - $this->tpl->addJavaScript("./components/ILIAS/News/Timeline/js/Timeline.js"); + $this->tpl->addJavaScript("assets/js/Timeline.js"); $this->tpl->addJavaScript("./components/ILIAS/News/Timeline/libs/jquery-dynamic-max-height-master/src/jquery.dynamicmaxheight.js"); $t = new ilTemplate("tpl.timeline.html", true, true, "components/ILIAS/News/Timeline"); diff --git a/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php b/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php index 2788b65d52e9..58db935c74c2 100755 --- a/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php +++ b/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php @@ -262,9 +262,8 @@ public function getHTML(ilPropertyFormGUI $form = null): string $this->lng->toJS("update"); $this->lng->toJS("save"); - $this->tpl->addJavaScript("./components/ILIAS/News/js/News.js"); + $this->tpl->addJavaScript("assets/js/News.js"); $this->notes->gui()->initJavascript(); - return $html; } diff --git a/components/ILIAS/News/js/News.js b/components/ILIAS/News/resources/News.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/News/js/News.js rename to components/ILIAS/News/resources/News.js diff --git a/components/ILIAS/News/Timeline/js/Timeline.js b/components/ILIAS/News/resources/Timeline.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/News/Timeline/js/Timeline.js rename to components/ILIAS/News/resources/Timeline.js diff --git a/components/ILIAS/Notes/Notes.php b/components/ILIAS/Notes/Notes.php index d58a1ba52617..e23c5cede39d 100644 --- a/components/ILIAS/Notes/Notes.php +++ b/components/ILIAS/Notes/Notes.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\Notes\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilNotes.js"); } } diff --git a/components/ILIAS/Notes/Service/class.InternalGUIService.php b/components/ILIAS/Notes/Service/class.InternalGUIService.php index b07df52c3c2c..f99b48c5abbc 100755 --- a/components/ILIAS/Notes/Service/class.InternalGUIService.php +++ b/components/ILIAS/Notes/Service/class.InternalGUIService.php @@ -77,7 +77,7 @@ public function initJavascript( \ilModalGUI::initJS($tpl); $lng->toJS(array("private_notes", "notes_public_comments", "cancel", "notes_messages"), $tpl); - $tpl->addJavaScript("./components/ILIAS/Notes/js/ilNotes.js"); + $tpl->addJavaScript("assets/js/ilNotes.js"); $tpl->addOnLoadCode("ilNotes.setAjaxUrl('" . $ajax_url . "');"); } diff --git a/components/ILIAS/Notes/js/ilNotes.js b/components/ILIAS/Notes/resources/ilNotes.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Notes/js/ilNotes.js rename to components/ILIAS/Notes/resources/ilNotes.js diff --git a/components/ILIAS/Notifications/Notifications.php b/components/ILIAS/Notifications/Notifications.php index cf038baef7a2..4b90e587f171 100644 --- a/components/ILIAS/Notifications/Notifications.php +++ b/components/ILIAS/Notifications/Notifications.php @@ -36,5 +36,16 @@ public function init( new \ilNotificationUpdateAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "notifications.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "browser_notifications.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "osd.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "receive.mp3", "assets/sounds"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "receive.ogg", "assets/sounds"); } } diff --git a/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php b/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php index 8d75ac46a941..c2e4bb6fc731 100755 --- a/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php +++ b/components/ILIAS/Notifications/classes/ilNotificationOSDGUI.php @@ -66,8 +66,8 @@ public function populatePage(): void iljQueryUtil::initjQuery($this->page); ilPlayerUtil::initMediaElementJs($this->page); - $this->page->addJavaScript('components/ILIAS/Notifications/templates/default/notifications.js'); - $this->page->addCSS('components/ILIAS/Notifications/templates/default/osd.css'); + $this->page->addJavaScript('assets/js/notifications.js'); + $this->page->addCSS('assets/css/osd.css'); $this->page->addOnLoadCode($osdTemplate->get()); } } diff --git a/components/ILIAS/Notifications/js/browser_notifications.js b/components/ILIAS/Notifications/resources/browser_notifications.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Notifications/js/browser_notifications.js rename to components/ILIAS/Notifications/resources/browser_notifications.js diff --git a/components/ILIAS/Notifications/resources/notifications.js b/components/ILIAS/Notifications/resources/notifications.js new file mode 100755 index 000000000000..7a52d8aa0d20 --- /dev/null +++ b/components/ILIAS/Notifications/resources/notifications.js @@ -0,0 +1,78 @@ +let OSDNotifier; const + OSDNotifications = (settings) => { + const evalInCleanEnv = (codeAsString) => new Function('', codeAsString).call(); + + const playSound = () => { + const sound = document.createElement('audio'); + + const mp3 = document.createElement('source'); + mp3.src = 'assets/sounds/receive.mp3'; + mp3.type = 'audio/mp3'; + sound.append(mp3); + + const ogg = document.createElement('source'); + ogg.src = 'assets/sounds/receive.ogg'; + ogg.type = 'audio/ogg'; + sound.append(ogg); + document.querySelector('body').append(sound); + + sound.play().then(() => { + console.debug('Played sound successfully!'); + }).catch((e) => { + console.info('Could not play sound, autoplay policy changes: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes'); + console.warn(e); + }); + }; + + const createContentSetter = (container) => (html) => { + container.innerHTML = html; + container.querySelectorAll('script').forEach((element) => { + evalInCleanEnv(element.innerHTML); + }); + container.querySelectorAll('.il-toast-wrapper').forEach((element) => { + element.querySelectorAll('a').forEach((link) => { + link.addEventListener('click', () => { + il.UI.toast.closeToast(element.querySelector('.il-toast'), true); + }); + }); + element.addEventListener('removeToast', () => { + document.dispatchEvent(new Event('rerenderNotificationCenter')); + }); + }); + }; + + const poll = (container) => { + let lastRequest = parseInt(new Date().getTime() / 1000); + + return () => { + const time = parseInt(new Date().getTime() / 1000); + const max_age = time - lastRequest; + const xhr = new XMLHttpRequest(); + const setContent = createContentSetter(container); + xhr.open('GET', `ilias.php?baseClass=ilNotificationGUI&cmd=getOSDNotifications&cmdMode=asynch&max_age=${max_age}`); + xhr.onload = () => { + if (xhr.status === 200) { + setContent(xhr.responseText); + if (settings.playSound && xhr.responseText !== '') { + playSound(); + } + lastRequest = time; + } else { + container.innerHTML = ''; + console.error(`${xhr.status}: ${xhr.responseText}`); + } + }; + xhr.send(); + }; + }; + + const init = () => { + const container = il.UI.page.getOverlay().querySelector('.il-toast-container'); + const interval = settings.pollingInterval; + if (interval) { + window.setInterval(poll(container), interval); + } + }; + + return init(); + }; diff --git a/public/components/ILIAS/Notifications/templates/default/osd.css b/components/ILIAS/Notifications/resources/osd.css similarity index 100% rename from public/components/ILIAS/Notifications/templates/default/osd.css rename to components/ILIAS/Notifications/resources/osd.css diff --git a/components/ILIAS/Chatroom/sounds/receive.mp3 b/components/ILIAS/Notifications/resources/receive.mp3 similarity index 100% rename from components/ILIAS/Chatroom/sounds/receive.mp3 rename to components/ILIAS/Notifications/resources/receive.mp3 diff --git a/components/ILIAS/Chatroom/sounds/receive.ogg b/components/ILIAS/Notifications/resources/receive.ogg similarity index 100% rename from components/ILIAS/Chatroom/sounds/receive.ogg rename to components/ILIAS/Notifications/resources/receive.ogg diff --git a/components/ILIAS/OnScreenChat/OnScreenChat.php b/components/ILIAS/OnScreenChat/OnScreenChat.php index c930586c93f1..1ffe47b10ecd 100644 --- a/components/ILIAS/OnScreenChat/OnScreenChat.php +++ b/components/ILIAS/OnScreenChat/OnScreenChat.php @@ -32,6 +32,13 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "chat.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "moment.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "onscreenchat.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "onscreenchat-notifications.js"); } } diff --git a/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php b/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php index ebb8dfd6b794..90744ab21e46 100755 --- a/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php +++ b/components/ILIAS/OnScreenChat/classes/class.ilOnScreenChatGUI.php @@ -288,15 +288,15 @@ public static function initializeFrontend(ilGlobalTemplateInterface $page): void iljQueryUtil::initjQueryUI($page); ilLinkifyUtil::initLinkify($page); - $page->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); - $page->addJavascript('./components/ILIAS/UIComponent/Modal/js/Modal.js'); - $page->addJavascript('./node_modules/moment/min/moment-with-locales.min.js'); - $page->addJavascript('./components/ILIAS/Notifications/js/browser_notifications.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/onscreenchat-notifications.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/moment.js'); - $page->addJavascript('./components/ILIAS/Chatroom/chat/node_modules/socket.io-client/dist/socket.io.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/chat.js'); - $page->addJavascript('./components/ILIAS/OnScreenChat/js/onscreenchat.js'); + $page->addJavaScript('assets/js/jquery.ui.touch-punch.js'); + $page->addJavascript('assets/js/Modal.js'); + $page->addJavascript('assets/js/moment-with-locales.min.js'); + $page->addJavascript('assets/js/browser_notifications.js'); + $page->addJavascript('assets/js/onscreenchat-notifications.js'); + $page->addJavascript('assets/js/moment.js'); + $page->addJavascript('assets/js/socket.io-client/dist/socket.io.js'); + $page->addJavascript('assets/js/chat.js'); + $page->addJavascript('assets/js/onscreenchat.js'); $page->addOnLoadCode("il.Chat.setConfig(" . json_encode($chatConfig, JSON_THROW_ON_ERROR) . ");"); $page->addOnLoadCode("il.OnScreenChat.setConfig(" . json_encode($guiConfig, JSON_THROW_ON_ERROR) . ");"); $page->addOnLoadCode("il.OnScreenChat.init();"); diff --git a/components/ILIAS/OnScreenChat/js/chat.js b/components/ILIAS/OnScreenChat/resources/chat.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/chat.js rename to components/ILIAS/OnScreenChat/resources/chat.js diff --git a/components/ILIAS/OnScreenChat/js/moment.js b/components/ILIAS/OnScreenChat/resources/moment.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/moment.js rename to components/ILIAS/OnScreenChat/resources/moment.js diff --git a/components/ILIAS/OnScreenChat/js/onscreenchat-notifications.js b/components/ILIAS/OnScreenChat/resources/onscreenchat-notifications.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/onscreenchat-notifications.js rename to components/ILIAS/OnScreenChat/resources/onscreenchat-notifications.js diff --git a/components/ILIAS/OnScreenChat/js/onscreenchat.js b/components/ILIAS/OnScreenChat/resources/onscreenchat.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OnScreenChat/js/onscreenchat.js rename to components/ILIAS/OnScreenChat/resources/onscreenchat.js diff --git a/components/ILIAS/OpenIdConnect/OpenIdConnect.php b/components/ILIAS/OpenIdConnect/OpenIdConnect.php index 69df034a5dfe..681e4c9fdf6a 100644 --- a/components/ILIAS/OpenIdConnect/OpenIdConnect.php +++ b/components/ILIAS/OpenIdConnect/OpenIdConnect.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "openidconnect.php"); } } diff --git a/public/openidconnect.php b/components/ILIAS/OpenIdConnect/resources/openidconnect.php old mode 100755 new mode 100644 similarity index 94% rename from public/openidconnect.php rename to components/ILIAS/OpenIdConnect/resources/openidconnect.php index 8cece9447b25..81c8bc69881c --- a/public/openidconnect.php +++ b/components/ILIAS/OpenIdConnect/resources/openidconnect.php @@ -23,4 +23,4 @@ // @todo: removed deprecated ilCtrl methods, this needs inspection by a maintainer. // $DIC->ctrl()->setCmd('doOpenIdConnectAuthentication'); $DIC->ctrl()->setTargetScript('ilias.php'); -$DIC->ctrl()->callBaseClass(ilStartUpGUI::class); +$DIC->ctrl()->callBaseClass(ilStartUpGUI::class); \ No newline at end of file diff --git a/components/ILIAS/OrgUnit/OrgUnit.php b/components/ILIAS/OrgUnit/OrgUnit.php index be8280cc39d4..addfe34fa923 100644 --- a/components/ILIAS/OrgUnit/OrgUnit.php +++ b/components/ILIAS/OrgUnit/OrgUnit.php @@ -36,5 +36,7 @@ public function init( new \ilOrgUnitSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "authority.js"); } } diff --git a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php index f908344ae045..e42d24c74450 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitAuthorityInputGUI.php @@ -179,7 +179,7 @@ protected function initJS(): void * @var $globalTpl \ilTemplate */ $globalTpl = $GLOBALS['DIC'] ? $GLOBALS['DIC']['tpl'] : $GLOBALS['tpl']; - $globalTpl->addJavascript("./components/ILIAS/OrgUnit/templates/default/authority.js"); + $globalTpl->addJavascript("assets/js/authority.js"); $config = json_encode(array()); diff --git a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php index bf9a4f29c660..db75cfcacdc0 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Authorities/class.ilOrgUnitGenericMultiInputGUI.php @@ -332,7 +332,7 @@ public function render(int|string $iterator_id = 0, bool $clean_render = false): public function initCSSandJS() { global $tpl; - $tpl->addJavascript('components/ILIAS/OrgUnit/js/generic_multi_line_input.js'); + $tpl->addJavascript('assets/js/generic_multi_line_input.js'); } /** diff --git a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php index 4d2f6be92104..4aff5de6868b 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitDefaultPermissionTableGUI.php @@ -44,7 +44,7 @@ public function __construct(object $a_parent_obj, string $a_parent_cmd, ilOrgUni $this->dic() ->ui() ->mainTemplate() - ->addJavaScript('./components/ILIAS/AccessControl/js/ilPermSelect.js'); + ->addJavaScript('assets/js/ilPermSelect.js'); $this->setTitle( $this->dic()->language()->txt('orgu_permission_settings_' diff --git a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php index 39aaeb97ef3a..5d22d6c01afe 100755 --- a/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php +++ b/components/ILIAS/OrgUnit/classes/Positions/Permissions/class.ilOrgUnitPermissionTableGUI.php @@ -45,7 +45,7 @@ public function __construct(object $a_parent_obj, string $a_parent_cmd, int $a_r $this->setId('objpositionperm_' . $this->ref_id); - $tpl->addJavaScript('./components/ILIAS/AccessControl/js/ilPermSelect.js'); + $tpl->addJavaScript('assets/js/ilPermSelect.js'); $this->setTitle($this->lng->txt('org_permission_settings')); $this->setEnableHeader(true); diff --git a/components/ILIAS/OrgUnit/js/generic_multi_line_input.js b/components/ILIAS/OrgUnit/js/generic_multi_line_input.js deleted file mode 100755 index da3038734761..000000000000 --- a/components/ILIAS/OrgUnit/js/generic_multi_line_input.js +++ /dev/null @@ -1,125 +0,0 @@ -(function ($) { - $.fn.extend({ - multi_line_input: function (element_config, options) { - var settings = $.extend({ - unique_values: false - }, options); - - var element_config = element_config; - var element = this; - var self = this; - var counter = 0; - var clone_line = $(this).find('.multi_input_line').first(); - var calc_width = function (clone_line) { - var calced_width = clone_line.find('.multi_icons_wrapper').last().width(); - clone_line.find('.ml-input').each(function () { - calced_width = calced_width + $(this).width(); - }); - calced_width = calced_width - clone_line.find('.ml-input').last().width(); - clone_line.find('.ml-input').last().width(clone_line.width() - calced_width - 100); - }; - $(this).find('.multi_input_line').each(function () { - calc_width($(this)); - }); - - var empty_id = "empty"; - - var setup_clone_line = function (clone_line) { - clone_line.hide(); - clone_line.removeClass('multi_input_line'); - - clone_line.find("textarea[name^='" + element.attr('id') + "'], input[name^='" + element.attr( - 'id') + "'], select[name^='" + element.attr('id') + "']").each(function () { - var name = $(this).attr('name'); - var id = element.attr('id'); - var regex = new RegExp('^' + id + '\[[0-9]+\](.*)$', 'g'); - var matches = regex.exec(name); - name = empty_id + '[' + counter + ']' + matches[1]; - $(this).attr('name', name); - }); - }; - - setup_clone_line(clone_line); - /** - * - * @param line - * @param init - */ - var setup_line = function (line, init) { - var init = init || false; - var $line = line; - - - $(line).find('.add_button').on('click', function (e) { - var new_line = clone_line.clone(); - new_line.show(); - $(new_line).addClass("multi_input_line"); - setup_line(new_line); - $(element).append(new_line); - $(element).change(); - $(document).trigger('multi_line_add_button', [$line, new_line]); - $(element).find("textarea, input[type='text']").last().focus(); - $('#multi_line_add_button').hide(); - return false; - }); - - $(line).find('.up_button').on('click', function (e) { - $(this).parents('.multi_input_line').insertBefore($(this) - .parents('.multi_input_line') - .prev()); - return false; - }); - - $(line).find('.down_button').on('click', function (e) { - $(this).parents('.multi_input_line').insertAfter($(this) - .parents('.multi_input_line') - .next()); - return false; - }); - - $(line).find('.remove_button').on('click', function (e) { - var siblings = $line.siblings('.multi_input_line').length; - if (siblings <= 1) $('#multi_line_add_button').show(); - $line.remove(); - $(element).change(); - $(document).trigger('multi_line_remove_button', $line); - return false; - }); - - // If element is added by plus button - if (!init) { - $line.find("textarea[name^='" + empty_id + "'], input[name^='" + empty_id + "'], select[name^='" + empty_id + "']") - .each(function () { - var name = $(this).attr('name'); - var id = element.attr('id'); - $(this).val(''); - var regex = new RegExp('^' + empty_id + '\[[0-9]+\](.*)$', 'g'); - var matches = regex.exec(name); - name = id + '[' + counter + ']' + matches[1]; - $(this).attr('name', name); - }); - } - counter++; - }; - - // hide/show delete icons - //$(element).on('change', function (e) { - // var remove_buttons = $(element).find('.multi_input_line .remove_button'); - // - // if (remove_buttons.length > 1) { - // remove_buttons.show().first().hide(); - // } else { - // remove_buttons.hide(); - // } - //}); - - $(this).find('.multi_input_line').each(function () { - setup_line($(this), true); - }); - $(element).change(); - - return element; - } - }); - -}(jQuery)); \ No newline at end of file diff --git a/components/ILIAS/OrgUnit/templates/default/authority.js b/components/ILIAS/OrgUnit/resources/authority.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/OrgUnit/templates/default/authority.js rename to components/ILIAS/OrgUnit/resources/authority.js diff --git a/components/ILIAS/Poll/Poll.php b/components/ILIAS/Poll/Poll.php index e6b4124cdfe4..5d2dbe7c3825 100644 --- a/components/ILIAS/Poll/Poll.php +++ b/components/ILIAS/Poll/Poll.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilPoll.js"); } } diff --git a/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php b/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php index bbc5529f3ea0..5d74c9595b0e 100755 --- a/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php +++ b/components/ILIAS/Poll/classes/BlockGUI/class.ilPollBlockGUI.php @@ -208,7 +208,7 @@ protected function initContentRenderer(): ilPollContentRenderer protected function initJS(): void { if (!self::$js_init) { - $this->main_tpl->addJavaScript("components/ILIAS/Poll/js/ilPoll.js"); + $this->main_tpl->addJavaScript("assets/js/ilPoll.js"); self::$js_init = true; } } diff --git a/components/ILIAS/Poll/js/ilPoll.js b/components/ILIAS/Poll/resources/ilPoll.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Poll/js/ilPoll.js rename to components/ILIAS/Poll/resources/ilPoll.js diff --git a/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php b/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php index 9b28c5f1f74e..ccfe491503c6 100755 --- a/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php +++ b/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php @@ -659,7 +659,7 @@ protected function renderConsultationHours( $filter = new ilCalendarScheduleFilterBookings($user_id, $a_group_ids); $month_gui->addScheduleFilter($filter); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('filesystem', 'delos.css', 'components/ILIAS/Calendar')); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('filesystem', 'delos.css')); $this->lng->loadLanguageModule("dateplaner"); return '

    ' . $this->lng->txt("app_consultation_hours") . '

    ' . @@ -879,7 +879,7 @@ protected function renderMyCourses( // #15508 if (!self::$initialized) { - $GLOBALS["tpl"]->addJavaScript("components/ILIAS/Portfolio/js/ilPortfolio.js"); + $GLOBALS["tpl"]->addJavaScript("assets/js/ilPortfolio.js"); $GLOBALS["tpl"]->addOnLoadCode("ilPortfolio.init()"); } self::$initialized++; diff --git a/components/ILIAS/Portfolio/Portfolio.php b/components/ILIAS/Portfolio/Portfolio.php index f21b592c9e51..d1b07f714acd 100644 --- a/components/ILIAS/Portfolio/Portfolio.php +++ b/components/ILIAS/Portfolio/Portfolio.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\Portfolio\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilPortfolio.js"); } } diff --git a/components/ILIAS/Portfolio/js/ilPortfolio.js b/components/ILIAS/Portfolio/resources/ilPortfolio.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Portfolio/js/ilPortfolio.js rename to components/ILIAS/Portfolio/resources/ilPortfolio.js diff --git a/components/ILIAS/RTE/RTE.php b/components/ILIAS/RTE/RTE.php index 4ffece32d94e..707869421129 100644 --- a/components/ILIAS/RTE/RTE.php +++ b/components/ILIAS/RTE/RTE.php @@ -32,6 +32,17 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + // This is included via anonymous classes as a testament to the fact, that + // TinyMCE isn't a good citizen of the ILIAS system. + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "node_modules/tinymce"; + } + public function getTarget(): string + { + return "node_modules/tinymce"; + } + }; } } diff --git a/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php b/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php index 8c09361c3ad6..4ce679368897 100755 --- a/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php +++ b/components/ILIAS/RTE/classes/class.ilRTEGlobalTemplate.php @@ -35,19 +35,19 @@ class ilRTEGlobalTemplate implements ilGlobalTemplateInterface * List of JS-Files that should be included. * @var array */ - protected array $js_files = [0 => './components/ILIAS/JavaScript/js/Basic.js']; + protected array $js_files = [0 => 'assets/js/Basic.js']; /** * Stores if a version parameter should be appended to the js-file to force reloading. * @var array */ - protected array $js_files_vp = ['./components/ILIAS/JavaScript/js/Basic.js' => true]; + protected array $js_files_vp = ['assets/js/Basic.js' => true]; /** * Stores the order in which js-files should be included. * @var array */ - protected array $js_files_batch = ['./components/ILIAS/JavaScript/js/Basic.js' => 1]; + protected array $js_files_batch = ['assets/js/Basic.js' => 1]; public function __construct( string $file, diff --git a/components/ILIAS/RTE/classes/class.ilTinyMCE.php b/components/ILIAS/RTE/classes/class.ilTinyMCE.php index ca54e3dee375..8da922e8f3f7 100755 --- a/components/ILIAS/RTE/classes/class.ilTinyMCE.php +++ b/components/ILIAS/RTE/classes/class.ilTinyMCE.php @@ -238,7 +238,7 @@ public function addRTESupport( $tpl->parseCurrentBlock(); if (!self::$renderedToGlobalTemplate) { - $this->tpl->addJavaScript('public/node_modules/tinymce/tinymce.js'); + $this->tpl->addJavaScript('node_modules/tinymce/tinymce.js'); $this->tpl->addOnLoadCode($tpl->get()); self::$renderedToGlobalTemplate = true; } @@ -306,7 +306,7 @@ public function addCustomRTESupport(int $obj_id, string $obj_type, array $tags): $tpl->parseCurrentBlock(); if (!self::$renderedToGlobalTemplate) { - $this->tpl->addJavaScript('public/node_modules/tinymce/tinymce.js'); + $this->tpl->addJavaScript('node_modules/tinymce/tinymce.js'); $this->tpl->addOnLoadCode($tpl->get()); self::$renderedToGlobalTemplate = true; } @@ -336,7 +336,7 @@ public function addUserTextEditor(string $editor_selector): void $template->setVariable('LANG', $this->_getEditorLanguage()); $template->parseCurrentBlock(); - $this->tpl->addJavaScript('public/node_modules/tinymce/tinymce.js'); + $this->tpl->addJavaScript('components/tinymce/tinymce.js'); $this->tpl->addOnLoadCode($template->get()); } diff --git a/components/ILIAS/Registration/Registration.php b/components/ILIAS/Registration/Registration.php index 17a48df540c5..16a81f956e52 100644 --- a/components/ILIAS/Registration/Registration.php +++ b/components/ILIAS/Registration/Registration.php @@ -36,5 +36,8 @@ public function init( new \ilRegistrationAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "confirmReg.php"); } } diff --git a/public/confirmReg.php b/components/ILIAS/Registration/resources/confirmReg.php similarity index 100% rename from public/confirmReg.php rename to components/ILIAS/Registration/resources/confirmReg.php diff --git a/components/ILIAS/Repository/Repository.php b/components/ILIAS/Repository/Repository.php index f6a8a177a673..4bbacc88a302 100644 --- a/components/ILIAS/Repository/Repository.php +++ b/components/ILIAS/Repository/Repository.php @@ -40,5 +40,8 @@ public function init( new \ILIAS\Repository\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "repository.js"); } } diff --git a/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php b/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php index 03c3f062dad7..252c047b67d5 100755 --- a/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php +++ b/components/ILIAS/Repository/Service/Form/class.FormAdapterGUI.php @@ -107,7 +107,7 @@ public static function initJavascript(): void $r = $DIC->ui()->renderer(); if (!self::$initialised) { $main_tpl = $DIC->ui()->mainTemplate(); - $main_tpl->addJavaScript("./components/ILIAS/Repository/js/repository.js"); + $main_tpl->addJavaScript("assets/js/repository.js"); $main_tpl->addOnLoadCode(self::getOnLoadCode()); // render dummy components to load the necessary .js needed for async processing diff --git a/public/components/ILIAS/Repository/js/repository.js b/components/ILIAS/Repository/resources/repository.js similarity index 100% rename from public/components/ILIAS/Repository/js/repository.js rename to components/ILIAS/Repository/resources/repository.js diff --git a/components/ILIAS/Saml/Saml.php b/components/ILIAS/Saml/Saml.php index 8e748b62a219..36767d1d2487 100644 --- a/components/ILIAS/Saml/Saml.php +++ b/components/ILIAS/Saml/Saml.php @@ -32,6 +32,17 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "metadata.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "module.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml1-acs.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml2-acs.php"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "saml2-logout.php"); } } diff --git a/components/ILIAS/Saml/lib/authsources.php.dist b/components/ILIAS/Saml/resources/authsources.php.dist similarity index 100% rename from components/ILIAS/Saml/lib/authsources.php.dist rename to components/ILIAS/Saml/resources/authsources.php.dist diff --git a/components/ILIAS/Saml/lib/config.php.dist b/components/ILIAS/Saml/resources/config.php.dist similarity index 100% rename from components/ILIAS/Saml/lib/config.php.dist rename to components/ILIAS/Saml/resources/config.php.dist diff --git a/components/ILIAS/Saml/lib/metadata.php b/components/ILIAS/Saml/resources/metadata.php similarity index 100% rename from components/ILIAS/Saml/lib/metadata.php rename to components/ILIAS/Saml/resources/metadata.php diff --git a/components/ILIAS/Saml/lib/module.php b/components/ILIAS/Saml/resources/module.php similarity index 100% rename from components/ILIAS/Saml/lib/module.php rename to components/ILIAS/Saml/resources/module.php diff --git a/public/saml.php b/components/ILIAS/Saml/resources/saml.php old mode 100755 new mode 100644 similarity index 100% rename from public/saml.php rename to components/ILIAS/Saml/resources/saml.php diff --git a/components/ILIAS/Saml/lib/saml1-acs.php b/components/ILIAS/Saml/resources/saml1-acs.php similarity index 100% rename from components/ILIAS/Saml/lib/saml1-acs.php rename to components/ILIAS/Saml/resources/saml1-acs.php diff --git a/components/ILIAS/Saml/lib/saml2-acs.php b/components/ILIAS/Saml/resources/saml2-acs.php similarity index 100% rename from components/ILIAS/Saml/lib/saml2-acs.php rename to components/ILIAS/Saml/resources/saml2-acs.php diff --git a/components/ILIAS/Saml/lib/saml2-logout.php b/components/ILIAS/Saml/resources/saml2-logout.php similarity index 100% rename from components/ILIAS/Saml/lib/saml2-logout.php rename to components/ILIAS/Saml/resources/saml2-logout.php diff --git a/components/ILIAS/Scorm2004/Scorm2004.php b/components/ILIAS/Scorm2004/Scorm2004.php index 38f528f7f7d0..24e54dda58b2 100644 --- a/components/ILIAS/Scorm2004/Scorm2004.php +++ b/components/ILIAS/Scorm2004/Scorm2004.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "storeScorm2004.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "storeScorm.php"); } } diff --git a/public/storeScorm.php b/components/ILIAS/Scorm2004/resources/storeScorm.php old mode 100755 new mode 100644 similarity index 100% rename from public/storeScorm.php rename to components/ILIAS/Scorm2004/resources/storeScorm.php diff --git a/public/storeScorm2004.php b/components/ILIAS/Scorm2004/resources/storeScorm2004.php old mode 100755 new mode 100644 similarity index 99% rename from public/storeScorm2004.php rename to components/ILIAS/Scorm2004/resources/storeScorm2004.php index f4cd3f68f70e..a33c6cc36cb4 --- a/public/storeScorm2004.php +++ b/components/ILIAS/Scorm2004/resources/storeScorm2004.php @@ -58,4 +58,4 @@ } else { // $data = file_get_contents('php://input'); ilSCORM2004StoreData::persistCMIData($packageId, $refId, $defaultLessonMode, $comments, $interactions, $objectives, $time_from_lms, null, null); -} +} \ No newline at end of file diff --git a/components/ILIAS/Search/Search.php b/components/ILIAS/Search/Search.php index ae6f0157f711..bd999909464c 100644 --- a/components/ILIAS/Search/Search.php +++ b/components/ILIAS/Search/Search.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "SearchMainMenu.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Search.js"); } } diff --git a/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php b/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php index ccaf1fdcd99a..4a1d00451091 100755 --- a/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php +++ b/components/ILIAS/Search/classes/Lucene/class.ilLuceneSearchGUI.php @@ -521,7 +521,7 @@ protected function showSearchForm(): void $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.lucene_search.html', 'components/ILIAS/Search'); ilOverlayGUI::initJavascript(); - $this->tpl->addJavascript("./components/ILIAS/Search/js/Search.js"); + $this->tpl->addJavascript("assets/js/Search.js"); $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this, 'performSearch')); diff --git a/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php b/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php index e5eaef43542f..de1690a04dad 100755 --- a/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php +++ b/components/ILIAS/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php @@ -241,7 +241,7 @@ protected function showSearchForm() $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.lucene_usr_search.html', 'components/ILIAS/Search'); ilOverlayGUI::initJavascript(); - $this->tpl->addJavascript("./components/ILIAS/Search/js/Search.js"); + $this->tpl->addJavascript("assets/js/Search.js"); $this->tpl->setVariable('FORM_ACTION', $this->ctrl->getFormAction($this, 'performSearch')); $this->tpl->setVariable("TERM", ilLegacyFormElementsUtil::prepareFormOutput($this->search_cache->getQuery())); diff --git a/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php b/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php index ff20638d2099..c5f70998c78f 100755 --- a/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php +++ b/components/ILIAS/Search/classes/class.ilMainMenuSearchGUI.php @@ -56,7 +56,7 @@ public function __construct() $this->http = $DIC->http(); $this->refinery = $DIC->refinery(); - $DIC->ui()->mainTemplate()->addJavascript('components/ILIAS/Search/js/SearchMainMenu.js'); + $DIC->ui()->mainTemplate()->addJavascript('assets/js/SearchMainMenu.js'); $this->initRefIdFromQuery(); } diff --git a/components/ILIAS/Search/classes/class.ilSearchGUI.php b/components/ILIAS/Search/classes/class.ilSearchGUI.php index 5cf6f28373df..97792feb244b 100755 --- a/components/ILIAS/Search/classes/class.ilSearchGUI.php +++ b/components/ILIAS/Search/classes/class.ilSearchGUI.php @@ -337,7 +337,7 @@ public function autoComplete(): void public function showSearch(): void { ilOverlayGUI::initJavascript(); - $this->tpl->addJavascript("./components/ILIAS/Search/js/Search.js"); + $this->tpl->addJavascript("assets/js/Search.js"); $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.search.html', 'components/ILIAS/Search'); diff --git a/components/ILIAS/Search/js/Search.js b/components/ILIAS/Search/resources/Search.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Search/js/Search.js rename to components/ILIAS/Search/resources/Search.js diff --git a/public/components/ILIAS/Search/js/SearchMainMenu.js b/components/ILIAS/Search/resources/SearchMainMenu.js similarity index 100% rename from public/components/ILIAS/Search/js/SearchMainMenu.js rename to components/ILIAS/Search/resources/SearchMainMenu.js diff --git a/components/ILIAS/Setup/tests/ilSetupAgentTest.php b/components/ILIAS/Setup/tests/ilCommonSetupAgentTest.php similarity index 88% rename from components/ILIAS/Setup/tests/ilSetupAgentTest.php rename to components/ILIAS/Setup/tests/ilCommonSetupAgentTest.php index 98365f34f3e8..20945597a737 100755 --- a/components/ILIAS/Setup/tests/ilSetupAgentTest.php +++ b/components/ILIAS/Setup/tests/ilCommonSetupAgentTest.php @@ -23,7 +23,7 @@ use ILIAS\Setup\NullConfig; use ILIAS\Setup\ObjectiveCollection; use ILIAS\Setup\Objective; -use ilSetupAgent; +use ilCommonSetupAgent; use ILIAS\Refinery\Factory as Refinery; use ILIAS\Data\Factory as DataFactory; use ilLanguage; @@ -33,9 +33,9 @@ * @package ILIAS\Tests\Setup * @author Marvin Beym */ -class ilSetupAgentTest extends TestCase +class ilCommonSetupAgentTest extends TestCase { - private ilSetupAgent $testObj; + private ilCommonSetupAgent $testObj; protected function setUp(): void { @@ -45,7 +45,7 @@ protected function setUp(): void ); parent::setUp(); - $this->testObj = new ilSetupAgent($refinery, $this->createMock(DataFactory::class)); + $this->testObj = new ilCommonSetupAgent($refinery, $this->createMock(DataFactory::class)); } public function testGetNamedObjectives(): void diff --git a/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php b/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php index 1a4f9999ae9b..56154f372cf7 100755 --- a/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php +++ b/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php @@ -510,7 +510,7 @@ public function getSkillHTML( $skill_html = $this->renderSkillHTML($a_top_skill_id, $a_user_id, $a_edit, $a_tref_id); } $skill_html = $uip->getHTML($skill_html); - $main_tpl->addJavaScript("./components/ILIAS/Skill/js/SkillEntries.js"); + $main_tpl->addJavaScript("assets/js/SkillEntries.js"); return $skill_html; } diff --git a/components/ILIAS/Skill/Skill.php b/components/ILIAS/Skill/Skill.php index 79dab88e0866..dbcd9d334653 100644 --- a/components/ILIAS/Skill/Skill.php +++ b/components/ILIAS/Skill/Skill.php @@ -36,5 +36,7 @@ public function init( new \ilSkillSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "SkillEntries.js"); } } diff --git a/components/ILIAS/Skill/js/SkillEntries.js b/components/ILIAS/Skill/resources/SkillEntries.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Skill/js/SkillEntries.js rename to components/ILIAS/Skill/resources/SkillEntries.js diff --git a/components/ILIAS/StaticURL/StaticURL.php b/components/ILIAS/StaticURL/StaticURL.php index f4ce746465f3..d9b0b08733a2 100644 --- a/components/ILIAS/StaticURL/StaticURL.php +++ b/components/ILIAS/StaticURL/StaticURL.php @@ -36,5 +36,8 @@ public function init( new \ILIAS\StaticURL\SetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "goto.php"); } } diff --git a/public/goto.php b/components/ILIAS/StaticURL/resources/goto.php old mode 100755 new mode 100644 similarity index 99% rename from public/goto.php rename to components/ILIAS/StaticURL/resources/goto.php index 163ddc4cd4a2..a29cd7dbb9d6 --- a/public/goto.php +++ b/components/ILIAS/StaticURL/resources/goto.php @@ -29,4 +29,4 @@ $static_url = $DIC['static_url']; $static_url->handler()->performRedirect( $static_url->builder()->getBaseURI() -); +); \ No newline at end of file diff --git a/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php b/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php index a07c03d83a01..17e40ac1be67 100755 --- a/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php +++ b/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php @@ -81,7 +81,7 @@ public function __construct( // Add this js manually here because the modal contains a form that is // loaded asynchronously later on, and this JS won't be pulled then for // some reason. - $tpl->addJavaScript("components/ILIAS/Form/js/Form.js"); + $tpl->addJavaScript("assets/js/Form.js"); } public function executeCommand(): void { diff --git a/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php b/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php index b511db1481db..c15425b87d43 100755 --- a/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php +++ b/components/ILIAS/StudyProgramme/classes/class.ilStudyProgrammeExpandableProgressListGUI.php @@ -268,7 +268,7 @@ protected function addJavaScript() } iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript("./components/ILIAS/Accordion/js/accordion.js", true, 3); + $this->tpl->addJavaScript("assets/js/accordion.js", true, 3); $this->js_added = true; } diff --git a/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php b/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php index 64dae0a15404..39e708cbdd59 100755 --- a/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php +++ b/components/ILIAS/StudyProgramme/classes/helpers/class.ilAsyncContainerSelectionExplorer.php @@ -63,7 +63,7 @@ public static function addJavascript(): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $tpl->addJavaScript("assets/js/ilExplorer.js"); } /** diff --git a/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php b/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php index f00eed0a2bcf..1b5ae273eb1d 100755 --- a/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php +++ b/components/ILIAS/Style/Content/classes/class.ilObjStyleSheet.php @@ -1609,23 +1609,23 @@ public static function getContentStylePath( return $path; } else { // todo: work this out - return "../components/ILIAS/COPage/css/content.css"; + return "./components/ILIAS/COPage/css/content.css"; } } public static function getContentPrintStyle(): string { - return "../components/ILIAS/COPage/css/print_content.css"; + return "./components/ILIAS/COPage/css/print_content.css"; } public static function getSyntaxStylePath(): string { - return "../components/ILIAS/COPage/css/syntaxhighlight.css"; + return "./components/ILIAS/COPage/css/syntaxhighlight.css"; } public static function getBaseContentStylePath(): string { - return "../components/ILIAS/COPage/css/content_base.css"; + return "./components/ILIAS/COPage/css/content_base.css"; } public function update(): bool diff --git a/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php b/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php index efe0232be64e..34dfd99701a3 100755 --- a/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php +++ b/components/ILIAS/Style/System/classes/class.ilImagePathResolver.php @@ -24,6 +24,29 @@ class ilImagePathResolver implements ImagePathResolver { public function resolveImagePath(string $image_path): string { - return ilUtil::getImagePath($image_path); + global $DIC; + + $styleDefinition = $DIC["styleDefinition"] ?? null; + + // default image + $default_img = "./assets/images/" . $image_path; + + // use ilStyleDefinition instead of account to get the current skin and style + $current_skin = ilStyleDefinition::getCurrentSkin(); + $current_style = ilStyleDefinition::getCurrentStyle(); + + $skin_img = ""; + + if (is_object($styleDefinition) && $current_skin != "default") { + $image_dir = $styleDefinition->getImageDirectory($current_style); + $skin_img = "./Customizing/global/skin/" . + $current_skin . "/" . $current_style . "/" . $image_dir . "/" . $image_path; + } + + if (file_exists($skin_img)) { + return $skin_img; // found image for skin and style + } + + return $default_img; // take image in default } } diff --git a/components/ILIAS/Survey/Survey.php b/components/ILIAS/Survey/Survey.php index 31c7eb5cefa4..ad72be6ccc39 100644 --- a/components/ILIAS/Survey/Survey.php +++ b/components/ILIAS/Survey/Survey.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "survey.css"); } } diff --git a/components/ILIAS/Survey/templates/default/survey.css b/components/ILIAS/Survey/resources/survey.css similarity index 100% rename from components/ILIAS/Survey/templates/default/survey.css rename to components/ILIAS/Survey/resources/survey.css diff --git a/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php b/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php index c951cda7ff93..c55a835adc2c 100755 --- a/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php +++ b/components/ILIAS/SurveyQuestionPool/Categories/class.ilCategoryWizardInputGUI.php @@ -393,7 +393,7 @@ public function insert( $a_tpl->parseCurrentBlock(); $tpl = $this->tpl; - $tpl->addJavaScript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $tpl->addJavaScript("./components/ILIAS/SurveyQuestionPool/Categories/js/categorywizard.js"); + $tpl->addJavaScript("assets/js/ServiceFormWizardInput.js"); + $tpl->addJavaScript("assets/js/categorywizard.js"); } } diff --git a/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php b/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php index b40703fa3ca3..33a88c8be437 100644 --- a/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php +++ b/components/ILIAS/SurveyQuestionPool/SurveyQuestionPool.php @@ -32,6 +32,9 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "categorywizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "matrixrowwizard.js"); } } diff --git a/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php b/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php index 084cbdd8500d..b884c070d4b7 100755 --- a/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php +++ b/components/ILIAS/SurveyQuestionPool/classes/class.ilMatrixRowWizardInputGUI.php @@ -228,7 +228,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->parseCurrentBlock(); $tpl = $this->tpl; - $tpl->addJavaScript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - $tpl->addJavaScript("./components/ILIAS/SurveyQuestionPool/js/matrixrowwizard.js"); + $tpl->addJavaScript("assets/js/ServiceFormWizardInput.js"); + $tpl->addJavaScript("assets/js/matrixrowwizard.js"); } } diff --git a/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php b/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php index c9809941c7a6..5cecf3548165 100755 --- a/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php +++ b/components/ILIAS/SurveyQuestionPool/classes/class.ilObjSurveyQuestionPoolGUI.php @@ -91,7 +91,7 @@ public function executeCommand(): void ); } - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "components/ILIAS/Survey"), "screen"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css"), "screen"); $this->prepareOutput(); $cmd = $this->ctrl->getCmd("questions"); diff --git a/components/ILIAS/SurveyQuestionPool/Categories/js/categorywizard.js b/components/ILIAS/SurveyQuestionPool/resources/categorywizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/SurveyQuestionPool/Categories/js/categorywizard.js rename to components/ILIAS/SurveyQuestionPool/resources/categorywizard.js diff --git a/components/ILIAS/SurveyQuestionPool/js/matrixrowwizard.js b/components/ILIAS/SurveyQuestionPool/resources/matrixrowwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/SurveyQuestionPool/js/matrixrowwizard.js rename to components/ILIAS/SurveyQuestionPool/resources/matrixrowwizard.js diff --git a/components/ILIAS/Table/Table.php b/components/ILIAS/Table/Table.php index 6fa6dbe8096a..8e5717dffbb6 100644 --- a/components/ILIAS/Table/Table.php +++ b/components/ILIAS/Table/Table.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ServiceTable.js"); } } diff --git a/components/ILIAS/Table/classes/class.ilTable2GUI.php b/components/ILIAS/Table/classes/class.ilTable2GUI.php index a34c03a105d0..842a408af543 100755 --- a/components/ILIAS/Table/classes/class.ilTable2GUI.php +++ b/components/ILIAS/Table/classes/class.ilTable2GUI.php @@ -1515,7 +1515,7 @@ private function renderFilter(): void $filter = $this->getFilterItems(); $opt_filter = $this->getFilterItems(true); - $main_tpl->addJavascript("./components/ILIAS/Table/js/ServiceTable.js"); + $main_tpl->addJavascript("assets/js/ServiceTable.js"); if (count($filter) == 0 && count($opt_filter) == 0) { return; diff --git a/components/ILIAS/Table/js/ServiceTable.js b/components/ILIAS/Table/resources/ServiceTable.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Table/js/ServiceTable.js rename to components/ILIAS/Table/resources/ServiceTable.js diff --git a/components/ILIAS/Tagging/Tagging.php b/components/ILIAS/Tagging/Tagging.php index 5b1fd8554f87..a93fa95ae2ac 100644 --- a/components/ILIAS/Tagging/Tagging.php +++ b/components/ILIAS/Tagging/Tagging.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTagging.js"); } } diff --git a/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php b/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php index 081f6b59af3d..d755dc877c81 100755 --- a/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php +++ b/components/ILIAS/Tagging/classes/class.ilTaggingGUI.php @@ -276,7 +276,7 @@ public static function initJavascript( ilYuiUtil::initConnection($tpl); iljQueryUtil::initjQuery($tpl); - $tpl->addJavaScript("./components/ILIAS/Tagging/js/ilTagging.js"); + $tpl->addJavaScript("assets/js/ilTagging.js"); $tpl->addOnLoadCode("ilTagging.setAjaxUrl('" . $a_ajax_url . "');"); } diff --git a/components/ILIAS/Tagging/js/ilTagging.js b/components/ILIAS/Tagging/resources/ilTagging.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Tagging/js/ilTagging.js rename to components/ILIAS/Tagging/resources/ilTagging.js diff --git a/components/ILIAS/Test/Test.php b/components/ILIAS/Test/Test.php index e24d8cdf6c2d..7c704965098f 100644 --- a/components/ILIAS/Test/Test.php +++ b/components/ILIAS/Test/Test.php @@ -36,5 +36,17 @@ public function init( new \ilTestSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTestPlayerQuestionEditControl.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "settings_confirmation.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_kiosk_header.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_pdf.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_print.css"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentCSS($this, "test_print_hide_content.css"); } } diff --git a/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php b/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php index f2f2ed0a2928..7acdcdada68a 100755 --- a/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php +++ b/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php @@ -310,7 +310,7 @@ private function populateConfirmationModal( $message .= '

    ' . $this->lng->txt('tst_nonpool_questions_get_lost_warning'); } - $this->tpl->addJavaScript('./components/ILIAS/Test/templates/default/settings_confirmation.js'); + $this->tpl->addJavaScript('assets/js/settings_confirmation.js'); $on_load_code = static function (string $id): string { return 'il.test.confirmSettings.init(' . $id . ')'; }; diff --git a/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php b/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php index 04fa8fc41788..154c4b05927b 100755 --- a/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php +++ b/components/ILIAS/Test/classes/Tables/class.ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI.php @@ -51,7 +51,7 @@ public function __construct(ilTestScoringByQuestionsGUI $parent_obj, private ilA $this->setFilterCommand(self::PARENT_APPLY_FILTER_CMD); $this->setResetCommand(self::PARENT_RESET_FILTER_CMD); - $this->main_tpl->addJavaScript('./node_modules/tinymce/tinymce.js'); + $this->main_tpl->addJavaScript('node_modules/tinymce/tinymce.js'); $this->setFormAction($this->ctrl->getFormAction($parent_obj, self::PARENT_DEFAULT_CMD)); diff --git a/components/ILIAS/Test/classes/class.ilObjTestGUI.php b/components/ILIAS/Test/classes/class.ilObjTestGUI.php index 8a77fe22b6a2..29c07ae5090c 100755 --- a/components/ILIAS/Test/classes/class.ilObjTestGUI.php +++ b/components/ILIAS/Test/classes/class.ilObjTestGUI.php @@ -2334,7 +2334,7 @@ public function printObject() $template->setVariable("BUTTON_PRINT", $this->lng->txt("print")); $template->parseCurrentBlock(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); $print_date = mktime((int) date("H"), (int) date("i"), (int) date("s"), (int) date("m"), (int) date("d"), (int) date("Y")); $max_points = 0; @@ -2393,7 +2393,7 @@ public function reviewobject() $this->getTabsManager()->getQuestionsSubTabs(); $template = new ilTemplate("tpl.il_as_tst_print_test_confirm.html", true, true, "components/ILIAS/Test"); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); $max_points = 0; $counter = 1; diff --git a/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php b/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php index 34aa378a1341..d2f1eda2a9b8 100755 --- a/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php +++ b/components/ILIAS/Test/classes/class.ilParticipantsTestResultsGUI.php @@ -392,10 +392,10 @@ private function showUserResults($show_pass_details, $show_answers, $show_reache if ($template instanceof ilTemplate) { $this->main_tpl->setVariable("ADM_CONTENT", $template->get()); - $this->main_tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->main_tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->getTestObj()->getShowSolutionAnswersOnly()) { $this->main_tpl->addCss( - ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), + ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print" ); } diff --git a/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php b/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php index 2e4f48484b1f..24879c851bd7 100755 --- a/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestEvaluationGUI.php @@ -315,7 +315,7 @@ public function detailedEvaluation() $this->ctrl->redirect($this, 'outEvaluation'); } - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css', 'components/ILIAS/Test'), 'print'); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css'), 'print'); $backBtn = $this->ui_factory->button()->standard($this->lng->txt('back'), $this->ctrl->getLinkTarget($this, 'outEvaluation')); $this->toolbar->addComponent($backBtn); @@ -964,9 +964,9 @@ public function outParticipantsPassDetails() protected function setCss(): void { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } $this->tpl->addCss(ilObjStyleSheet::getContentStylePath(0)); } @@ -2047,7 +2047,7 @@ protected function prepareContentForPrint(string $question_title, string $questi $tpl->addCss(\ilUtil::getStyleSheetLocation("filesystem")); $tpl->addCss(\ilObjStyleSheet::getContentPrintStyle()); $tpl->addCss(\ilObjStyleSheet::getSyntaxStylePath()); - $tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); ilMathJax::getInstance()->includeMathJax($tpl); diff --git a/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php b/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php index c1a6d77b4a28..6fcfa841de52 100755 --- a/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php @@ -1376,9 +1376,9 @@ public function outCorrectSolution(): void $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath()); $this->tpl->parseCurrentBlock(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } $this->tpl->setCurrentBlock("adm_content"); @@ -1438,9 +1438,9 @@ public function showListOfAnswers($active_id, $pass = null, $top_data = "", $bot } } - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } if (strlen($top_data)) { $this->tpl->setCurrentBlock("top_data"); @@ -2433,7 +2433,7 @@ protected function populateQuestionEditControl(assQuestionGUI $question_gui): vo $config['questionLocked'] = $this->isParticipantsAnswerFixed($question_gui->object->getId()); $config['nextQuestionLocks'] = $this->object->isFollowupQuestionAnswerFixationEnabled(); - $this->tpl->addJavascript('./components/ILIAS/Test/js/ilTestPlayerQuestionEditControl.js'); + $this->tpl->addJavascript('assets/js/ilTestPlayerQuestionEditControl.js'); $this->tpl->addOnLoadCode('il.TestPlayerQuestionEditControl.init(' . json_encode($config) . ')'); } // fau. diff --git a/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php b/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php index 0ee665bbbdf5..ca4543793699 100755 --- a/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestScoringByQuestionsGUI.php @@ -78,9 +78,9 @@ protected function showManScoringByQuestionParticipantsTable($manPointsPost = [] $this->tpl->addJavaScript($mathJaxSetting->get("path_to_mathjax")); } - $this->tpl->addJavaScript("./components/ILIAS/JavaScript/js/Basic.js"); - $this->tpl->addJavaScript("./components/ILIAS/Form/js/Form.js"); - $this->tpl->addJavascript('./components/ILIAS/UIComponent/Modal/js/Modal.js'); + $this->tpl->addJavaScript("assets/js/Basic.js"); + $this->tpl->addJavaScript("assets/js/Form.js"); + $this->tpl->addJavascript('assets/js/Modal.js'); $this->lng->toJSMap(['answer' => $this->lng->txt('answer')]); $table = new ilTestManScoringParticipantsBySelectedQuestionAndPassTableGUI($this, $this->access); diff --git a/components/ILIAS/Test/classes/class.ilTestServiceGUI.php b/components/ILIAS/Test/classes/class.ilTestServiceGUI.php index 4e295d152426..07daaada8017 100755 --- a/components/ILIAS/Test/classes/class.ilTestServiceGUI.php +++ b/components/ILIAS/Test/classes/class.ilTestServiceGUI.php @@ -1145,9 +1145,9 @@ protected function outCorrectSolution(): void $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath()); $this->tpl->parseCurrentBlock(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css"), "print"); if ($this->object->getShowSolutionAnswersOnly()) { - $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "components/ILIAS/Test"), "print"); + $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css"), "print"); } $solution = $this->getCorrectSolutionOutput($active_id, $active_id, $pass, $objectives_list); diff --git a/components/ILIAS/Test/js/ilTestPlayerQuestionEditControl.js b/components/ILIAS/Test/resources/ilTestPlayerQuestionEditControl.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Test/js/ilTestPlayerQuestionEditControl.js rename to components/ILIAS/Test/resources/ilTestPlayerQuestionEditControl.js diff --git a/components/ILIAS/Test/templates/default/settings_confirmation.js b/components/ILIAS/Test/resources/settings_confirmation.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Test/templates/default/settings_confirmation.js rename to components/ILIAS/Test/resources/settings_confirmation.js diff --git a/components/ILIAS/Test/templates/default/test_kiosk_header.css b/components/ILIAS/Test/resources/test_kiosk_header.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_kiosk_header.css rename to components/ILIAS/Test/resources/test_kiosk_header.css diff --git a/components/ILIAS/Test/templates/default/test_pdf.css b/components/ILIAS/Test/resources/test_pdf.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_pdf.css rename to components/ILIAS/Test/resources/test_pdf.css diff --git a/components/ILIAS/Test/templates/default/test_print.css b/components/ILIAS/Test/resources/test_print.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_print.css rename to components/ILIAS/Test/resources/test_print.css diff --git a/components/ILIAS/Test/templates/default/test_print_hide_content.css b/components/ILIAS/Test/resources/test_print_hide_content.css similarity index 100% rename from components/ILIAS/Test/templates/default/test_print_hide_content.css rename to components/ILIAS/Test/resources/test_print_hide_content.css diff --git a/components/ILIAS/Test/templates/default/autosave.js b/components/ILIAS/Test/templates/default/autosave.js deleted file mode 100755 index f3be699cd2a1..000000000000 --- a/components/ILIAS/Test/templates/default/autosave.js +++ /dev/null @@ -1,47 +0,0 @@ -var handleSuccess = function(o) -{ - if (o.responseText !== undefined) - { - if ((o.responseText.indexOf("http") == 0) || (o.responseText.indexOf("ilias.php") == 0)) - { - window.location.href = o.responseText; - } - else if(o.responseText != '-IGNORE-') - { - document.getElementById("autosavemessage").innerHTML = o.responseText; - var stay = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 1 } }, 4); - var fadeOut = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 0 } }, 1); - stay.onComplete.subscribe(function() { fadeOut.animate(); }); - stay.animate(); - } - } -}; - -var handleFailure = function(o) -{ - if (o.responseText !== undefined) - { - document.getElementById("autosavemessage").innerHTML = o.responseText; - var stay = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 1 } }, 4); - var fadeOut = new YAHOO.util.Anim("autosavemessage", { opacity: { from: 1, to: 0 } }, 1); - stay.onComplete.subscribe(function() { fadeOut.animate(); }); - stay.animate(); - } -}; - -var callback = -{ - success:handleSuccess, - failure:handleFailure -}; - -function autosave(sUrl) -{ - if (typeof tinyMCE != 'undefined') - { - if (tinyMCE) tinyMCE.triggerSave(); - } - formObject = document.getElementById('taForm'); - YAHOO.util.Connect.setForm(formObject); - YAHOO.util.Connect.asyncRequest('POST', sUrl, callback); -} diff --git a/components/ILIAS/TestQuestionPool/TestQuestionPool.php b/components/ILIAS/TestQuestionPool/TestQuestionPool.php index 19138ef9a455..3adc095d0317 100644 --- a/components/ILIAS/TestQuestionPool/TestQuestionPool.php +++ b/components/ILIAS/TestQuestionPool/TestQuestionPool.php @@ -36,5 +36,53 @@ public function init( new \ilTestQuestionPoolSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "answerwizardinput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "answerwizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "essaykeywordwizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "multiplechoicewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "singlechoicewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "imagemap.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "kprimchoicewizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilAssKprimChoice.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "orderinghorizontal.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "matchingpairwizard.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "identifiedwizardinput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilMatchingQuestion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilAssMultipleChoice.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "nested_ordering.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "testQuestionPoolTagInput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "errortext.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "longMenuQuestionGapBuilder.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "longMenuQuestion.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "longMenuQuestionPlayer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "matchinginput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "bootstrap-tagsinput_2015_25_03.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "typeahead_0.11.1.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("nestable2/dist/jquery.nestable.min.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php index 3f592c5fb613..33e555cc0fad 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php @@ -371,7 +371,7 @@ private function generateQuestionOutput($selections, $show_question_only): strin $template->setVariable("ERRORTEXT_VALUE", join(',', $selections['user'])); $this->tpl->addOnLoadCode('il.test.player.errortext.init()'); - $this->tpl->addJavascript('./components/ILIAS/TestQuestionPool/templates/default/errortext.js'); + $this->tpl->addJavascript('assets/js/errortext.js'); $questionoutput = $template->get(); if ($show_question_only) { diff --git a/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php index 01867fba4fda..b2e9898d756e 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php @@ -288,8 +288,8 @@ public function populateQuestionSpecificFormPart(ilPropertyFormGUI $form): ilPro $answers = $this->request->raw('hidden_text_files'); } - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionGapBuilder.js'); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/longMenuQuestion.js'); + $this->tpl->addJavaScript('assets/js/longMenuQuestionGapBuilder.js'); + $this->tpl->addJavaScript('assets/js/longMenuQuestion.js'); $tpl = new ilTemplate("tpl.il_as_qpl_longmenu_question_gap.html", true, true, "components/ILIAS/TestQuestionPool"); $tpl->setVariable('MAX_INPUT_FIELDS', assLongMenu::MAX_INPUT_FIELDS); $tpl->setVariable('GAP_PLACEHOLDER', assLongMenu::GAP_PLACEHOLDER); @@ -446,7 +446,7 @@ public function getTestOutput( protected function getTemplateForPreviewAndTest(array $user_solution): ilTemplate { $template = new ilTemplate("tpl.il_as_qpl_longmenu_question_output.html", true, true, "components/ILIAS/TestQuestionPool"); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionPlayer.js'); + $this->tpl->addJavaScript('assets/js/longMenuQuestionPlayer.js'); $this->tpl->addOnLoadCode('il.test.player.longmenu.init(' . $this->object->getMinAutoComplete() . ', ' . json_encode($this->object->getAvailableAnswerOptions()) diff --git a/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php index 1dfee257219b..9582a72751b1 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php @@ -635,11 +635,11 @@ public function getPreview($show_question_only = false, $showInlineFeedback = fa if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js'); + $this->tpl->addJavaScript('assets/js/ilMatchingQuestion.js'); $this->tpl->addOnLoadCode('ilMatchingQuestionInit();'); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css', 'components/ILIAS/TestQuestionPool')); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css')); $template = new ilTemplate("tpl.il_as_qpl_matching_output.html", true, true, "components/ILIAS/TestQuestionPool"); @@ -806,11 +806,11 @@ public function getTestOutput($active_id, $pass, $is_postponed = false, $user_po if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js'); + $this->tpl->addJavaScript('assets/js/ilMatchingQuestion.js'); $this->tpl->addOnLoadCode('ilMatchingQuestionInit();'); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css', 'components/ILIAS/TestQuestionPool')); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_javascript.css')); $template = new ilTemplate("tpl.il_as_qpl_matching_output.html", true, true, "components/ILIAS/TestQuestionPool"); diff --git a/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php index 76c7b7427e40..29ff9b34bebb 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assMultipleChoiceGUI.php @@ -532,7 +532,7 @@ public function getTestOutput( } } // generate the question output - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js'); + $this->tpl->addJavaScript('assets/js/ilAssMultipleChoice.js'); $this->tpl->addOnLoadCode('ilAssMultipleChoiceCharCounterInit();'); $template = new ilTemplate("tpl.il_as_qpl_mc_mr_output.html", true, true, "components/ILIAS/TestQuestionPool"); @@ -619,7 +619,7 @@ public function setUseEmptySolutionInputChecked($useEmptySolutionInputChecked): protected function getUseUnchangedAnswerCheckboxHtml(): string { // hey: prevPassSolutions - use abstracted template to share with other purposes of this kind - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js'); + $this->tpl->addJavaScript('assets/js/ilAssMultipleChoice.js'); $tpl = new ilTemplate('tpl.tst_question_additional_behaviour_checkbox.html', true, true, 'components/ILIAS/TestQuestionPool'); diff --git a/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php b/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php index 9e08a12bf922..e1c23ee30133 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.assOrderingHorizontalGUI.php @@ -273,9 +273,9 @@ public function getPreview($show_question_only = false, $showInlineFeedback = fa if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js"); + $this->tpl->addJavascript("assets/js/orderinghorizontal.js"); return $questionoutput; } @@ -335,9 +335,9 @@ public function getTestOutput($active_id, $pass, $is_postponed = false, $use_pos if ($DIC->http()->agent()->isMobile() || $DIC->http()->agent()->isIpad()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->tpl->addJavaScript('./node_modules/@andxor/jquery-ui-touch-punch-fix/jquery.ui.touch-punch.js'); + $this->tpl->addJavaScript('assets/js/jquery.ui.touch-punch.js'); } - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js"); + $this->tpl->addJavascript("assets/js/orderinghorizontal.js"); $questionoutput = $template->get(); $pageoutput = $this->outQuestionPage("", $is_postponed, $active_id, $questionoutput); return $pageoutput; diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php index 7d36b425c0c7..da0aeae19a56 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php @@ -369,8 +369,8 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/answerwizard.js"); } /** diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php index 32b452caaf8e..09085655ca66 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php @@ -616,7 +616,7 @@ private function buildSkillSelectorToolbarGUI(): ilToolbarGUI private function buildQuestionPage(assQuestionGUI $questionGUI) { - $this->tpl->addCss('../components/ILIAS/COPage/css/content.css'); + $this->tpl->addCss('./assets/css/content.css'); $pageGUI = new ilAssQuestionPageGUI($questionGUI->object->getId()); diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php index d67138f4c1bb..f49e03166abf 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilEssayKeywordWizardInputGUI.php @@ -179,7 +179,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/essaykeywordwizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/essaykeywordwizard.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php index a309d4282e76..d748b2f5e021 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilKprimChoiceWizardInputGUI.php @@ -316,9 +316,9 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->setVariable("PROP_GENERIC", $tpl->get()); $a_tpl->parseCurrentBlock(); - $this->tpl->addJavascript("components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("components/ILIAS/TestQuestionPool/templates/default/kprimchoicewizard.js"); - $this->tpl->addJavascript('components/ILIAS/TestQuestionPool/js/ilAssKprimChoice.js'); + $this->tpl->addJavascript("assets/js/answerwizardinput.js"); + $this->tpl->addJavascript("assets/js/kprimchoicewizard.js"); + $this->tpl->addJavascript('assets/js/ilAssKprimChoice.js'); } public function checkUploads($foundvalues): bool diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php index 6d8846e81aab..ae4fdd7456a7 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingPairWizardInputGUI.php @@ -201,8 +201,8 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $lng = $DIC['lng']; $global_tpl = $DIC['tpl']; - $global_tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $global_tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/matchingpairwizard.js"); + $global_tpl->addJavascript("asserts/js/answerwizardinput.js"); + $global_tpl->addJavascript("asserts/js/matchingpairwizard.js"); $tpl = new ilTemplate("tpl.prop_matchingpairinput.html", true, true, "components/ILIAS/TestQuestionPool"); $i = 0; diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php index 5014dd11ef0b..b989ecd71dda 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilMatchingWizardInputGUI.php @@ -273,7 +273,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $lng = $DIC['lng']; $global_tpl = $DIC['tpl']; - $global_tpl->addJavascript('./components/ILIAS/TestQuestionPool/templates/default/matchinginput.js'); + $global_tpl->addJavascript('assets/js/matchinginput.js'); $global_tpl->addOnLoadCode('il.test.matchingquestion.init();'); $tpl = new ilTemplate("tpl.prop_matchingwizardinput.html", true, true, "components/ILIAS/TestQuestionPool"); diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php index 3052458d437e..a3137778e880 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilMultipleChoiceWizardInputGUI.php @@ -375,8 +375,8 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/multiplechoicewizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/multiplechoicewizard.js"); } public function setPending(string $a_val): void diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php index 526373c68406..307a890e487d 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php @@ -190,7 +190,7 @@ public function executeCommand(): void $this->prepareOutput(); - $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css', 'components/ILIAS/Test'), 'print'); + $this->tpl->addCss(ilUtil::getStyleSheetLocation('output', 'test_print.css'), 'print'); $q_type = ''; if (!(in_array($next_class, ['', 'ilobjquestionpoolgui']) && $cmd == 'questions') && $q_id < 1) { diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php index c7357f56ca15..c779363edfda 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php @@ -536,7 +536,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/singlechoicewizard.js"); + $tpl->addJavascript("assets/js/answerwizardinput.js"); + $tpl->addJavascript("assets/js/singlechoicewizard.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php b/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php index 3ffb7d646ef8..cfe23b8d35eb 100755 --- a/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/class.ilUnitConfigurationGUI.php @@ -460,8 +460,8 @@ protected function showUnitsOfCategory(): void $category = $this->getCategoryById($this->request->int('category_id'), false); - $this->tpl->addJavaScript("./components/ILIAS/JavaScript/js/Basic.js"); - $this->tpl->addJavaScript("./components/ILIAS/Form/js/Form.js"); + $this->tpl->addJavaScript("assets/js/Basic.js"); + $this->tpl->addJavaScript("assets/js/Form.js"); $this->lng->loadLanguageModule('form'); $ilToolbar->addButton( diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php index 4cca5e388c20..7827d61d8d72 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapCorrectionsInputGUI.php @@ -165,7 +165,7 @@ public function insert(ilTemplate $a_tpl): void global $DIC; $tpl = $DIC['tpl']; - #$tpl->addJavascript("./components/ILIAS/Form/js/ServiceFormWizardInput.js"); - #$tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/imagemap.js"); + #$tpl->addJavascript("assets/js/ServiceFormWizardInput.js"); + #$tpl->addJavascript(assets/js/imagemap.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php index 22125984ef48..5c6cc0ca9448 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilImagemapFileInputGUI.php @@ -378,7 +378,7 @@ public function insert(ilTemplate $a_tpl): void $a_tpl->setVariable("PROP_GENERIC", $template->get()); $a_tpl->parseCurrentBlock(); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/imagemap.js"); + $this->tpl->addJavascript("asserts/js/answerwizardinput.js"); + $this->tpl->addJavascript("asserts/js/imagemap.js"); } } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php index 1cdbeaaccbc7..0df89589bfc4 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php @@ -404,8 +404,8 @@ public function render(string $a_mode = ""): string ); JS; - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js"); + $this->tpl->addJavascript("asserts/js/answerwizardinput.js"); + $this->tpl->addJavascript("asserts/js/identifiedwizardinput.js"); $this->tpl->addOnLoadCode($init_code); } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php index a098584866dc..c13622287dda 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleNestedOrderingElementsInputGUI.php @@ -437,7 +437,7 @@ protected function renderJsInit(): void $config['itemClass'] = $this->getCssItemClass(); $config['handleClass'] = $this->getCssHandleClass(); - $this->global_tpl->addJavaScript('components/ILIAS/TestQuestionPool/templates/default/nested_ordering.js'); + $this->global_tpl->addJavaScript('assets/js/nested_ordering.js'); $this->global_tpl->addOnLoadCode("nested_ordering_input.init('" . $this->getInstanceId() . "', '" . $this->getPostVarSubField('indentation') . "', " @@ -448,15 +448,15 @@ protected function renderJsInit(): void public function render(string $a_mode = ""): string { if ($this->isStylingEnabled()) { - $this->getGlobalTpl()->addCss('components/ILIAS/Form/css/nested_ordering.css'); - $this->getGlobalTpl()->addCss('components/ILIAS/COPage/css/content.css'); + $this->getGlobalTpl()->addCss('assets/css/nested_ordering.css'); + $this->getGlobalTpl()->addCss('assets/css/content.css'); } if ($this->isInteractionEnabled()) { iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); - $this->getGlobalTpl()->addJavaScript('./node_modules/nestable2/dist/jquery.nestable.min.js'); + $this->getGlobalTpl()->addJavaScript('assets/js/jquery.nestable.min.js'); $this->renderJsInit(); return $this->renderMainList(); diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php index 136b08b0cc23..4607dfce6909 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleTextsInputGUI.php @@ -184,8 +184,8 @@ public function render(string $a_mode = ""): string . '"reindexingRequiredElementsSelectors": ["input:text", "button"], ' . '"handleRowCleanUpCallback": function(rowElem) {$(rowElem).find("input:text").val("")}' . '}'; - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js"); - $this->tpl->addJavascript("./components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js"); + $this->tpl->addJavascript("asserts/js/answerwizardinput.js"); + $this->tpl->addJavascript("asserts/js/identifiedwizardinput.js"); $this->tpl->addOnLoadCode("$.extend({}, AnswerWizardInput, IdentifiedWizardInput).init({$config});"); } diff --git a/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php b/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php index b74ba9dd2956..fd22164cbc32 100755 --- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php +++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilTagInputGUI.php @@ -142,8 +142,8 @@ public function __construct($a_title = "", $a_postvar = "") $this->lng = $DIC->language(); parent::__construct($a_title, $a_postvar); $this->setType("tag_input"); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.js'); - $this->tpl->addJavaScript('./components/ILIAS/TestQuestionPool/templates/default/typeahead_0.11.1.js'); + $this->tpl->addJavaScript('assets/js/bootstrap-tagsinput_2015_25_03.js'); + $this->tpl->addJavaScript('assets/js/typeahead_0.11.1.js'); $this->tpl->addCss('./components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.css'); } @@ -183,7 +183,7 @@ public function checkInput(): bool */ public function render(): string { - $this->tpl->addJavaScript('components/ILIAS/TestQuestionPool/templates/default/tagInput.js'); + $this->tpl->addJavaScript('assets/js/testQuestionPoolTagInput.js'); $config = [ 'min_length' => $this->type_ahead_min_length, 'limit' => $this->type_ahead_limit, diff --git a/components/ILIAS/TestQuestionPool/templates/default/answerwizard.js b/components/ILIAS/TestQuestionPool/resources/answerwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/answerwizard.js rename to components/ILIAS/TestQuestionPool/resources/answerwizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js b/components/ILIAS/TestQuestionPool/resources/answerwizardinput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/answerwizardinput.js rename to components/ILIAS/TestQuestionPool/resources/answerwizardinput.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.js b/components/ILIAS/TestQuestionPool/resources/bootstrap-tagsinput_2015_25_03.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/bootstrap-tagsinput_2015_25_03.js rename to components/ILIAS/TestQuestionPool/resources/bootstrap-tagsinput_2015_25_03.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/errortext.js b/components/ILIAS/TestQuestionPool/resources/errortext.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/errortext.js rename to components/ILIAS/TestQuestionPool/resources/errortext.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/essaykeywordwizard.js b/components/ILIAS/TestQuestionPool/resources/essaykeywordwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/essaykeywordwizard.js rename to components/ILIAS/TestQuestionPool/resources/essaykeywordwizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js b/components/ILIAS/TestQuestionPool/resources/identifiedwizardinput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/identifiedwizardinput.js rename to components/ILIAS/TestQuestionPool/resources/identifiedwizardinput.js diff --git a/components/ILIAS/TestQuestionPool/js/ilAssKprimChoice.js b/components/ILIAS/TestQuestionPool/resources/ilAssKprimChoice.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/js/ilAssKprimChoice.js rename to components/ILIAS/TestQuestionPool/resources/ilAssKprimChoice.js diff --git a/components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js b/components/ILIAS/TestQuestionPool/resources/ilAssMultipleChoice.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js rename to components/ILIAS/TestQuestionPool/resources/ilAssMultipleChoice.js diff --git a/components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js b/components/ILIAS/TestQuestionPool/resources/ilMatchingQuestion.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js rename to components/ILIAS/TestQuestionPool/resources/ilMatchingQuestion.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/imagemap.js b/components/ILIAS/TestQuestionPool/resources/imagemap.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/imagemap.js rename to components/ILIAS/TestQuestionPool/resources/imagemap.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/kprimchoicewizard.js b/components/ILIAS/TestQuestionPool/resources/kprimchoicewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/kprimchoicewizard.js rename to components/ILIAS/TestQuestionPool/resources/kprimchoicewizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/longMenuQuestion.js b/components/ILIAS/TestQuestionPool/resources/longMenuQuestion.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/longMenuQuestion.js rename to components/ILIAS/TestQuestionPool/resources/longMenuQuestion.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionGapBuilder.js b/components/ILIAS/TestQuestionPool/resources/longMenuQuestionGapBuilder.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionGapBuilder.js rename to components/ILIAS/TestQuestionPool/resources/longMenuQuestionGapBuilder.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionPlayer.js b/components/ILIAS/TestQuestionPool/resources/longMenuQuestionPlayer.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/longMenuQuestionPlayer.js rename to components/ILIAS/TestQuestionPool/resources/longMenuQuestionPlayer.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/matchinginput.js b/components/ILIAS/TestQuestionPool/resources/matchinginput.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/matchinginput.js rename to components/ILIAS/TestQuestionPool/resources/matchinginput.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/matchingpairwizard.js b/components/ILIAS/TestQuestionPool/resources/matchingpairwizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/matchingpairwizard.js rename to components/ILIAS/TestQuestionPool/resources/matchingpairwizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/multiplechoicewizard.js b/components/ILIAS/TestQuestionPool/resources/multiplechoicewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/multiplechoicewizard.js rename to components/ILIAS/TestQuestionPool/resources/multiplechoicewizard.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/nested_ordering.js b/components/ILIAS/TestQuestionPool/resources/nested_ordering.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/nested_ordering.js rename to components/ILIAS/TestQuestionPool/resources/nested_ordering.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js b/components/ILIAS/TestQuestionPool/resources/orderinghorizontal.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/orderinghorizontal.js rename to components/ILIAS/TestQuestionPool/resources/orderinghorizontal.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/singlechoicewizard.js b/components/ILIAS/TestQuestionPool/resources/singlechoicewizard.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/singlechoicewizard.js rename to components/ILIAS/TestQuestionPool/resources/singlechoicewizard.js diff --git a/components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js b/components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js new file mode 100644 index 000000000000..0c53eb2b7918 --- /dev/null +++ b/components/ILIAS/TestQuestionPool/resources/testQuestionPoolTagInput.js @@ -0,0 +1,115 @@ +const ilBootstrapTaggingOnLoad = (() => { + const pub = {}; + const pri = {}; + pub.terms = []; + pub.ids = []; + pub.selected_terms = []; + pub.callbackItemAdded = {}; + pub.callbackItemRemoved = {}; + + pub.appendId = (id) => { + const pos = $.inArray(id, pub.ids); + if (pos === -1) { + pub.ids.push(id); + } + }; + + pub.appendTerms = (id, terms) => { + if (typeof pub.terms === 'undefined') { + pub.terms = []; + } + const pos = $.inArray(id, pub.terms); + if (pos === -1) { + pub.terms[id] = terms; + } + }; + + pub.initConfig = (config) => { + pri.config = config; + }; + + pub.Init = () => { + $.each(pub.ids, (key, element) => { + let { terms } = pub; + + if (!Array.isArray(terms) || !terms.every((x) => typeof x === 'string')) { + terms = pub.terms[key]; + } + + $(element).tagsinput({ + typeaheadjs: [{ + minLength: parseInt(pri.config.min_length, 10), + highlight: pri.config.highlight, + }, { + limit: parseInt(pri.config.limit, 10), + source: pri.substringMatcher(terms, key), + + }], + freeInput: false, + maxTags: pri.config.maxtags, + maxChars: pri.config.maxchars, + allowDuplicates: pri.config.allow_duplicates, + }); + + pri.preventFormSubmissionOnEnterInTypeahead(); + + $(element).on('itemAdded', (elem) => { + if (typeof pub.callbackItemAdded === 'function') { + pub.callbackItemAdded(); + if ($(element).tagsinput()[0].options.allowDuplicates !== true) { + if (pub.selected_terms[key] === undefined) { + pub.selected_terms[key] = []; + } + const pos = $.inArray(elem.item, pub.selected_terms[key]); + if (pos === -1) { + pub.selected_terms[key].push(elem.item); + } + } + } + }); + + $(element).on('itemRemoved', (elem) => { + if (typeof pub.callbackItemRemoved === 'function') { + pub.callbackItemRemoved(); + if ($(element).tagsinput()[0].options.allowDuplicates !== true) { + const pos = $.inArray(elem.item, pub.selected_terms[key]); + + if (pos > -1) { + pub.selected_terms[key].splice(pos, 1); + } + } + } + }); + }); + }; + + pri.substringMatcher = (strings, key) => function findMatches(query, callback) { + let matches; let substringRegex; let + pos; + matches = []; + substringRegex = new RegExp(query, pri.config.case); + $.each(strings, (i, str) => { + if (substringRegex.test(str)) { + pos = $.inArray(str, pub.selected_terms[key]); + if (pos === -1) { + matches.push(str); + } + } + }); + callback(matches); + }; + + pri.preventFormSubmissionOnEnterInTypeahead = () => { + $(document).ready(() => { + $('.twitter-typeahead').keydown((event) => { + if ((event.keyCode === 13)) { + event.preventDefault(); + return false; + } + }); + }); + }; + + return pub; +} +)(); diff --git a/components/ILIAS/TestQuestionPool/templates/default/typeahead_0.11.1.js b/components/ILIAS/TestQuestionPool/resources/typeahead_0.11.1.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/TestQuestionPool/templates/default/typeahead_0.11.1.js rename to components/ILIAS/TestQuestionPool/resources/typeahead_0.11.1.js diff --git a/components/ILIAS/TestQuestionPool/templates/default/tagInput.js b/components/ILIAS/TestQuestionPool/templates/default/tagInput.js deleted file mode 100755 index a81b390da5ac..000000000000 --- a/components/ILIAS/TestQuestionPool/templates/default/tagInput.js +++ /dev/null @@ -1,131 +0,0 @@ -var ilBootstrapTaggingOnLoad = (() => - { - 'use strict'; - let pub = {}, - pri = {}; - pub.terms = []; - pub.ids = []; - pub.selected_terms = []; - pub.callbackItemAdded = {}; - pub.callbackItemRemoved = {}; - - pub.appendId = (id) => - { - let pos = $.inArray(id, pub.ids); - if (pos === -1) - { - pub.ids.push(id); - } - - }; - - pub.appendTerms = (id, terms) => - { - if (typeof pub.terms === "undefined") - { - pub.terms = []; - } - let pos = $.inArray(id, pub.terms); - if (pos === -1) - { - pub.terms[id] = terms; - } - }; - - pub.initConfig = (config) => { - pri.config = config; - }; - - pub.Init = () => - { - $.each(pub.ids, function(key, element){ - let terms = pub.terms; - - if (!Array.isArray(terms) || !terms.every(x => typeof x === 'string')) { - terms = pub.terms[key]; - } - - $(element).tagsinput({ - typeaheadjs: [{ - minLength: parseInt(pri.config.min_length , 10), - highlight: pri.config.highlight - },{ - limit: parseInt(pri.config.limit, 10), - source: pri.substringMatcher(terms, key) - - }], - freeInput : false, - maxTags : pri.config.maxtags, - maxChars : pri.config.maxchars, - allowDuplicates : pri.config.allow_duplicates - }); - - pri.preventFormSubmissionOnEnterInTypeahead(); - - $(element).on('itemAdded', function(elem) { - if (typeof pub.callbackItemAdded === 'function') { - pub.callbackItemAdded(); - if($(element).tagsinput()[0].options.allowDuplicates !== true) - { - if(pub.selected_terms[key] === undefined) - { - pub.selected_terms[key] = []; - } - let pos = $.inArray(elem.item, pub.selected_terms[key]); - if (pos === -1) { - pub.selected_terms[key].push(elem.item); - } - } - } - }); - - $(element).on('itemRemoved', function(elem) { - if (typeof pub.callbackItemRemoved === 'function') { - pub.callbackItemRemoved(); - if($(element).tagsinput()[0].options.allowDuplicates !== true) - { - let pos = $.inArray(elem.item, pub.selected_terms[key]); - - if (pos > -1) { - pub.selected_terms[key].splice(pos, 1); - } - } - } - }); - }); - }; - - pri.substringMatcher = (strings, key) => - { - return function findMatches(query, callback) { - let matches, substringRegex, pos; - matches = []; - substringRegex = new RegExp(query, pri.config.case); - $.each(strings, function(i, str) { - if (substringRegex.test(str)) { - pos = $.inArray(str, pub.selected_terms[key]); - if(pos === -1) - { - matches.push(str); - } - } - }); - callback(matches); - }; - }; - - pri.preventFormSubmissionOnEnterInTypeahead = () => - { - $(document).ready(function() { - $('.twitter-typeahead').keydown(function(event){ - if( (event.keyCode === 13)) { - event.preventDefault(); - return false; - } - }); - }); - }; - - return pub; - } -)(); \ No newline at end of file diff --git a/components/ILIAS/Tracking/Tracking.php b/components/ILIAS/Tracking/Tracking.php index cdfb2de9e224..c9f82ddf7636 100644 --- a/components/ILIAS/Tracking/Tracking.php +++ b/components/ILIAS/Tracking/Tracking.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilObjStat.js"); } } diff --git a/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php b/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php index e202f6c2ff16..45c76ca77888 100755 --- a/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php +++ b/components/ILIAS/Tracking/classes/object_statistics/class.ilLPObjectStatisticsLPTableGUI.php @@ -716,6 +716,6 @@ protected function initLearningProgressDetailsLayer(): void ilYuiUtil::initOverlay(); iljQueryUtil::initjQuery(); - $tpl->addJavascript("./components/ILIAS/Tracking/js/ilObjStat.js"); + $tpl->addJavascript("assets/js/ilObjStat.js"); } } diff --git a/components/ILIAS/Tracking/js/ilObjStat.js b/components/ILIAS/Tracking/resources/ilObjStat.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Tracking/js/ilObjStat.js rename to components/ILIAS/Tracking/resources/ilObjStat.js diff --git a/components/ILIAS/UI/UI.php b/components/ILIAS/UI/UI.php index c364bf3c9b9e..52012548ac20 100644 --- a/components/ILIAS/UI/UI.php +++ b/components/ILIAS/UI/UI.php @@ -32,6 +32,88 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Button/button.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Chart/Bar/dist/bar.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Core/dist/core.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Counter/dist/counter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Dropdown/dropdown.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Dropzone/File/dropzone.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Image/dist/image.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Container/dist/filter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/dist/input.factory.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/dynamic_inputs_renderer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/file.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/groups.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/input.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Input/Field/tagInput.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Item/dist/notification.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/MainControls/dist/mainbar.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/MainControls/dist/maincontrols.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/MainControls/system_info.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Menu/dist/drilldown.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Modal/modal.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Page/stdpage.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Popover/popover.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Table/dist/table.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Toast/toast.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/Tree/tree.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "js/ViewControl/dist/viewcontrols.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "images", "assets"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\OfComponent($this, "fonts", "assets"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("@yaireo/tagify/dist/tagify.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("@yaireo/tagify/dist/tagify.css"); + + // This is included via anonymous classes as a testament to the fact, that + // the templates-folder should probably be move to some component. + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "templates/default/delos.css"; + } + public function getTarget(): string + { + return "assets/css/delos.css"; + } + }; + $contribute[Component\Resource\PublicAsset::class] = fn() => new class () implements Component\Resource\PublicAsset { + public function getSource(): string + { + return "templates/default/delos_cont.css"; + } + public function getTarget(): string + { + return "assets/css/delos_cont.css"; + } + }; } } diff --git a/public/templates/default/fonts/Iconfont/Readme.md b/components/ILIAS/UI/resources/fonts/Iconfont/Readme.md similarity index 100% rename from public/templates/default/fonts/Iconfont/Readme.md rename to components/ILIAS/UI/resources/fonts/Iconfont/Readme.md diff --git a/public/templates/default/fonts/Iconfont/il-icons.eot b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.eot similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.eot rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.eot diff --git a/public/templates/default/fonts/Iconfont/il-icons.json b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.json similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.json rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.json diff --git a/public/templates/default/fonts/Iconfont/il-icons.svg b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.svg similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.svg rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.svg diff --git a/public/templates/default/fonts/Iconfont/il-icons.ttf b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.ttf similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.ttf rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.ttf diff --git a/public/templates/default/fonts/Iconfont/il-icons.woff b/components/ILIAS/UI/resources/fonts/Iconfont/il-icons.woff similarity index 100% rename from public/templates/default/fonts/Iconfont/il-icons.woff rename to components/ILIAS/UI/resources/fonts/Iconfont/il-icons.woff diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Bold.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Bold.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Bold.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Bold.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-BoldItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-BoldItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-ExtraBold.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBold.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-ExtraBold.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBold.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Italic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Italic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Italic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Italic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Light.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Light.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Light.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Light.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-LightItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-LightItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-LightItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-LightItalic.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Regular.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Regular.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Regular.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Regular.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-Semibold.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Semibold.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-Semibold.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-Semibold.ttf diff --git a/public/templates/default/fonts/OpenSans/OpenSans-SemiboldItalic.ttf b/components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf similarity index 100% rename from public/templates/default/fonts/OpenSans/OpenSans-SemiboldItalic.ttf rename to components/ILIAS/UI/resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf diff --git a/public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.otf b/components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.otf similarity index 100% rename from public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.otf rename to components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.otf diff --git a/public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.ttf b/components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.ttf similarity index 100% rename from public/templates/default/fonts/OpenSansEmoji/OpenSansEmoji.ttf rename to components/ILIAS/UI/resources/fonts/OpenSansEmoji/OpenSansEmoji.ttf diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Bold.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Bold.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-BoldItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBold.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-ExtraBoldItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Italic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Italic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Light.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Light.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-LightItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Regular.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Regular.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-Semibold.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-Semibold.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff diff --git a/public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 b/components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/OpenSans-SemiboldItalic.woff2 diff --git a/public/templates/default/fonts/OpenSansWeb/README.txt b/components/ILIAS/UI/resources/fonts/OpenSansWeb/README.txt similarity index 100% rename from public/templates/default/fonts/OpenSansWeb/README.txt rename to components/ILIAS/UI/resources/fonts/OpenSansWeb/README.txt diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.eot b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.eot similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.eot rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.eot diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.svg b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.svg similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.svg rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.svg diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.ttf b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.ttf similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.ttf rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.ttf diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff diff --git a/public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff2 similarity index 100% rename from public/templates/default/fonts/bootstrap/glyphicons-halflings-regular.woff2 rename to components/ILIAS/UI/resources/fonts/bootstrap/glyphicons-halflings-regular.woff2 diff --git a/public/templates/default/images/README.md b/components/ILIAS/UI/resources/images/README.md similarity index 100% rename from public/templates/default/images/README.md rename to components/ILIAS/UI/resources/images/README.md diff --git a/public/templates/default/images/ROADMAP.md b/components/ILIAS/UI/resources/images/ROADMAP.md similarity index 100% rename from public/templates/default/images/ROADMAP.md rename to components/ILIAS/UI/resources/images/ROADMAP.md diff --git a/public/templates/default/images/auth/cas_login_button.png b/components/ILIAS/UI/resources/images/auth/cas_login_button.png similarity index 100% rename from public/templates/default/images/auth/cas_login_button.png rename to components/ILIAS/UI/resources/images/auth/cas_login_button.png diff --git a/public/templates/default/images/auth/shib_login_button.svg b/components/ILIAS/UI/resources/images/auth/shib_login_button.svg similarity index 100% rename from public/templates/default/images/auth/shib_login_button.svg rename to components/ILIAS/UI/resources/images/auth/shib_login_button.svg diff --git a/public/templates/default/images/browser/blank.png b/components/ILIAS/UI/resources/images/browser/blank.png similarity index 100% rename from public/templates/default/images/browser/blank.png rename to components/ILIAS/UI/resources/images/browser/blank.png diff --git a/public/templates/default/images/browser/forceexp.png b/components/ILIAS/UI/resources/images/browser/forceexp.png similarity index 100% rename from public/templates/default/images/browser/forceexp.png rename to components/ILIAS/UI/resources/images/browser/forceexp.png diff --git a/public/templates/default/images/browser/minus.png b/components/ILIAS/UI/resources/images/browser/minus.png similarity index 100% rename from public/templates/default/images/browser/minus.png rename to components/ILIAS/UI/resources/images/browser/minus.png diff --git a/public/templates/default/images/browser/plus.png b/components/ILIAS/UI/resources/images/browser/plus.png similarity index 100% rename from public/templates/default/images/browser/plus.png rename to components/ILIAS/UI/resources/images/browser/plus.png diff --git a/public/templates/default/images/cont_tile/cont_tile_default.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_bibl.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_bibl.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_bibl.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_bibl.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_blog.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_blog.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_blog.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_blog.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_book.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_book.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_book.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_book.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_cat.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cat.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_cat.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cat.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_catr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_catr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_catr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_catr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_chatr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_chatr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_chatr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_chatr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_cld.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cld.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_cld.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_cld.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_crs.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crs.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_crs.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crs.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_crsr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crsr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_crsr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_crsr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_dcl.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_dcl.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_dcl.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_dcl.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_exc.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_exc.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_exc.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_exc.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_file.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_file.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_file.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_file.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_fold.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_fold.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_fold.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_fold.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_frm.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_frm.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_frm.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_frm.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_glo.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_glo.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_glo.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_glo.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_grp.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grp.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_grp.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grp.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_grpr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grpr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_grpr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_grpr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_htlm.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_htlm.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_htlm.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_htlm.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_iass.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_iass.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_iass.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_iass.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_lres.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lres.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_lres.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lres.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_lso.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lso.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_lso.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_lso.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_mcst.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mcst.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_mcst.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mcst.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_mep.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mep.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_mep.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_mep.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_prg.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prg.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_prg.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prg.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_prtt.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prtt.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_prtt.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_prtt.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_sess.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_sess.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_sess.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_sess.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_spl.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_spl.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_spl.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_spl.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_tst.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_tst.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_tst.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_tst.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_webr.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_webr.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_webr.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_webr.svg diff --git a/public/templates/default/images/cont_tile/cont_tile_default_wiki.svg b/components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_wiki.svg similarity index 100% rename from public/templates/default/images/cont_tile/cont_tile_default_wiki.svg rename to components/ILIAS/UI/resources/images/cont_tile/cont_tile_default_wiki.svg diff --git a/public/templates/default/images/contentstyle/FramedBack.png b/components/ILIAS/UI/resources/images/contentstyle/FramedBack.png similarity index 100% rename from public/templates/default/images/contentstyle/FramedBack.png rename to components/ILIAS/UI/resources/images/contentstyle/FramedBack.png diff --git a/public/templates/default/images/contentstyle/advknow.png b/components/ILIAS/UI/resources/images/contentstyle/advknow.png similarity index 100% rename from public/templates/default/images/contentstyle/advknow.png rename to components/ILIAS/UI/resources/images/contentstyle/advknow.png diff --git a/public/templates/default/images/copyrights/all_rights_reserved.svg b/components/ILIAS/UI/resources/images/copyrights/all_rights_reserved.svg similarity index 100% rename from public/templates/default/images/copyrights/all_rights_reserved.svg rename to components/ILIAS/UI/resources/images/copyrights/all_rights_reserved.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_avi.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_avi.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_avi.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_avi.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_bmp.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_bmp.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_bmp.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_bmp.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_csv.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_csv.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_csv.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_csv.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_docx.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_docx.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_docx.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_docx.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_flv.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_flv.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_flv.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_flv.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_gif.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_gif.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_gif.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_gif.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_ico.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_ico.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_ico.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_ico.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_jpg.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_jpg.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_jpg.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_jpg.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_md.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_md.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_md.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_md.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_mov.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_mov.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_mov.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_mov.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_mp3.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp3.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_mp3.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp3.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_mp4.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp4.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_mp4.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_mp4.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_odp.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_odp.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_odp.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_odp.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_ods.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_ods.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_ods.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_ods.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_odt.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_odt.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_odt.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_odt.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_pdf.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_pdf.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_pdf.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_pdf.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_png.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_png.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_png.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_png.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_pptx.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_pptx.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_pptx.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_pptx.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_rtf.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_rtf.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_rtf.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_rtf.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_svg.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_svg.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_svg.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_svg.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_tiff.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_tiff.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_tiff.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_tiff.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_txt.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_txt.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_txt.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_txt.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_wav.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_wav.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_wav.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_wav.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_wma.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_wma.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_wma.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_wma.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_xlsx.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_xlsx.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_xlsx.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_xlsx.svg diff --git a/public/templates/default/images/default_file_icons/icon_file_xml.svg b/components/ILIAS/UI/resources/images/default_file_icons/icon_file_xml.svg similarity index 100% rename from public/templates/default/images/default_file_icons/icon_file_xml.svg rename to components/ILIAS/UI/resources/images/default_file_icons/icon_file_xml.svg diff --git a/public/templates/default/images/learning_progress/completed.svg b/components/ILIAS/UI/resources/images/learning_progress/completed.svg similarity index 100% rename from public/templates/default/images/learning_progress/completed.svg rename to components/ILIAS/UI/resources/images/learning_progress/completed.svg diff --git a/public/templates/default/images/learning_progress/failed.svg b/components/ILIAS/UI/resources/images/learning_progress/failed.svg similarity index 100% rename from public/templates/default/images/learning_progress/failed.svg rename to components/ILIAS/UI/resources/images/learning_progress/failed.svg diff --git a/public/templates/default/images/learning_progress/in_progress.svg b/components/ILIAS/UI/resources/images/learning_progress/in_progress.svg similarity index 100% rename from public/templates/default/images/learning_progress/in_progress.svg rename to components/ILIAS/UI/resources/images/learning_progress/in_progress.svg diff --git a/public/templates/default/images/learning_progress/not_attempted.svg b/components/ILIAS/UI/resources/images/learning_progress/not_attempted.svg similarity index 100% rename from public/templates/default/images/learning_progress/not_attempted.svg rename to components/ILIAS/UI/resources/images/learning_progress/not_attempted.svg diff --git a/public/templates/default/images/learning_progress/short/asset.svg b/components/ILIAS/UI/resources/images/learning_progress/short/asset.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/asset.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/asset.svg diff --git a/public/templates/default/images/learning_progress/short/completed.svg b/components/ILIAS/UI/resources/images/learning_progress/short/completed.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/completed.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/completed.svg diff --git a/public/templates/default/images/learning_progress/short/failed.svg b/components/ILIAS/UI/resources/images/learning_progress/short/failed.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/failed.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/failed.svg diff --git a/public/templates/default/images/learning_progress/short/in_progress.svg b/components/ILIAS/UI/resources/images/learning_progress/short/in_progress.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/in_progress.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/in_progress.svg diff --git a/public/templates/default/images/learning_progress/short/not_attempted.svg b/components/ILIAS/UI/resources/images/learning_progress/short/not_attempted.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/not_attempted.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/not_attempted.svg diff --git a/public/templates/default/images/learning_progress/short/running.svg b/components/ILIAS/UI/resources/images/learning_progress/short/running.svg similarity index 100% rename from public/templates/default/images/learning_progress/short/running.svg rename to components/ILIAS/UI/resources/images/learning_progress/short/running.svg diff --git a/public/templates/default/images/license.txt b/components/ILIAS/UI/resources/images/license.txt similarity index 100% rename from public/templates/default/images/license.txt rename to components/ILIAS/UI/resources/images/license.txt diff --git a/public/templates/default/images/logo/HeaderIcon.svg b/components/ILIAS/UI/resources/images/logo/HeaderIcon.svg similarity index 100% rename from public/templates/default/images/logo/HeaderIcon.svg rename to components/ILIAS/UI/resources/images/logo/HeaderIcon.svg diff --git a/public/templates/default/images/logo/HeaderIconAvatar.svg b/components/ILIAS/UI/resources/images/logo/HeaderIconAvatar.svg similarity index 100% rename from public/templates/default/images/logo/HeaderIconAvatar.svg rename to components/ILIAS/UI/resources/images/logo/HeaderIconAvatar.svg diff --git a/public/templates/default/images/logo/HeaderIconResponsive.svg b/components/ILIAS/UI/resources/images/logo/HeaderIconResponsive.svg similarity index 100% rename from public/templates/default/images/logo/HeaderIconResponsive.svg rename to components/ILIAS/UI/resources/images/logo/HeaderIconResponsive.svg diff --git a/public/templates/default/images/logo/Sharing.jpg b/components/ILIAS/UI/resources/images/logo/Sharing.jpg similarity index 100% rename from public/templates/default/images/logo/Sharing.jpg rename to components/ILIAS/UI/resources/images/logo/Sharing.jpg diff --git a/public/templates/default/images/logo/favicon.ico b/components/ILIAS/UI/resources/images/logo/favicon.ico similarity index 100% rename from public/templates/default/images/logo/favicon.ico rename to components/ILIAS/UI/resources/images/logo/favicon.ico diff --git a/public/templates/default/images/logo/ilias_logo_114x114-precomposed.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_114x114-precomposed.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_114x114-precomposed.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_114x114-precomposed.png diff --git a/public/templates/default/images/logo/ilias_logo_114x114.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_114x114.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_114x114.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_114x114.png diff --git a/public/templates/default/images/logo/ilias_logo_57x57-precomposed.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_57x57-precomposed.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_57x57-precomposed.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_57x57-precomposed.png diff --git a/public/templates/default/images/logo/ilias_logo_57x57.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_57x57.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_57x57.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_57x57.png diff --git a/public/templates/default/images/logo/ilias_logo_72x72-precomposed.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_72x72-precomposed.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_72x72-precomposed.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_72x72-precomposed.png diff --git a/public/templates/default/images/logo/ilias_logo_72x72.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_72x72.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_72x72.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_72x72.png diff --git a/public/templates/default/images/logo/ilias_logo_startup_320x460.png b/components/ILIAS/UI/resources/images/logo/ilias_logo_startup_320x460.png similarity index 100% rename from public/templates/default/images/logo/ilias_logo_startup_320x460.png rename to components/ILIAS/UI/resources/images/logo/ilias_logo_startup_320x460.png diff --git a/public/templates/default/images/media/bigplay.svg b/components/ILIAS/UI/resources/images/media/bigplay.svg similarity index 100% rename from public/templates/default/images/media/bigplay.svg rename to components/ILIAS/UI/resources/images/media/bigplay.svg diff --git a/public/templates/default/images/media/black60.png b/components/ILIAS/UI/resources/images/media/black60.png similarity index 100% rename from public/templates/default/images/media/black60.png rename to components/ILIAS/UI/resources/images/media/black60.png diff --git a/public/templates/default/images/media/enlarge.svg b/components/ILIAS/UI/resources/images/media/enlarge.svg similarity index 100% rename from public/templates/default/images/media/enlarge.svg rename to components/ILIAS/UI/resources/images/media/enlarge.svg diff --git a/public/templates/default/images/media/loader.svg b/components/ILIAS/UI/resources/images/media/loader.svg similarity index 100% rename from public/templates/default/images/media/loader.svg rename to components/ILIAS/UI/resources/images/media/loader.svg diff --git a/public/templates/default/images/media/loading.gif b/components/ILIAS/UI/resources/images/media/loading.gif similarity index 100% rename from public/templates/default/images/media/loading.gif rename to components/ILIAS/UI/resources/images/media/loading.gif diff --git a/public/templates/default/images/media/mcst_preview.svg b/components/ILIAS/UI/resources/images/media/mcst_preview.svg similarity index 100% rename from public/templates/default/images/media/mcst_preview.svg rename to components/ILIAS/UI/resources/images/media/mcst_preview.svg diff --git a/public/templates/default/images/media/play.svg b/components/ILIAS/UI/resources/images/media/play.svg similarity index 100% rename from public/templates/default/images/media/play.svg rename to components/ILIAS/UI/resources/images/media/play.svg diff --git a/public/templates/default/images/media/spacer.png b/components/ILIAS/UI/resources/images/media/spacer.png similarity index 100% rename from public/templates/default/images/media/spacer.png rename to components/ILIAS/UI/resources/images/media/spacer.png diff --git a/public/templates/default/images/media/time_warn.svg b/components/ILIAS/UI/resources/images/media/time_warn.svg similarity index 100% rename from public/templates/default/images/media/time_warn.svg rename to components/ILIAS/UI/resources/images/media/time_warn.svg diff --git a/public/templates/default/images/nav/arrow_downright.svg b/components/ILIAS/UI/resources/images/nav/arrow_downright.svg similarity index 100% rename from public/templates/default/images/nav/arrow_downright.svg rename to components/ILIAS/UI/resources/images/nav/arrow_downright.svg diff --git a/public/templates/default/images/nav/arrow_upright.svg b/components/ILIAS/UI/resources/images/nav/arrow_upright.svg similarity index 100% rename from public/templates/default/images/nav/arrow_upright.svg rename to components/ILIAS/UI/resources/images/nav/arrow_upright.svg diff --git a/public/templates/default/images/nav/jstree.svg b/components/ILIAS/UI/resources/images/nav/jstree.svg similarity index 100% rename from public/templates/default/images/nav/jstree.svg rename to components/ILIAS/UI/resources/images/nav/jstree.svg diff --git a/public/templates/default/images/nav/nav_arr2_L.png b/components/ILIAS/UI/resources/images/nav/nav_arr2_L.png similarity index 100% rename from public/templates/default/images/nav/nav_arr2_L.png rename to components/ILIAS/UI/resources/images/nav/nav_arr2_L.png diff --git a/public/templates/default/images/nav/nav_arr_L.png b/components/ILIAS/UI/resources/images/nav/nav_arr_L.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_L.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_L.png diff --git a/public/templates/default/images/nav/nav_arr_L_s.png b/components/ILIAS/UI/resources/images/nav/nav_arr_L_s.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_L_s.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_L_s.png diff --git a/public/templates/default/images/nav/nav_arr_R.png b/components/ILIAS/UI/resources/images/nav/nav_arr_R.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_R.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_R.png diff --git a/public/templates/default/images/nav/nav_arr_R_s.png b/components/ILIAS/UI/resources/images/nav/nav_arr_R_s.png similarity index 100% rename from public/templates/default/images/nav/nav_arr_R_s.png rename to components/ILIAS/UI/resources/images/nav/nav_arr_R_s.png diff --git a/public/templates/default/images/nav/tree_col.svg b/components/ILIAS/UI/resources/images/nav/tree_col.svg similarity index 100% rename from public/templates/default/images/nav/tree_col.svg rename to components/ILIAS/UI/resources/images/nav/tree_col.svg diff --git a/public/templates/default/images/nav/tree_exp.svg b/components/ILIAS/UI/resources/images/nav/tree_exp.svg similarity index 100% rename from public/templates/default/images/nav/tree_exp.svg rename to components/ILIAS/UI/resources/images/nav/tree_exp.svg diff --git a/public/templates/default/images/object/answered.svg b/components/ILIAS/UI/resources/images/object/answered.svg similarity index 100% rename from public/templates/default/images/object/answered.svg rename to components/ILIAS/UI/resources/images/object/answered.svg diff --git a/public/templates/default/images/object/answered_not.svg b/components/ILIAS/UI/resources/images/object/answered_not.svg similarity index 100% rename from public/templates/default/images/object/answered_not.svg rename to components/ILIAS/UI/resources/images/object/answered_not.svg diff --git a/public/templates/default/images/object/cell.svg b/components/ILIAS/UI/resources/images/object/cell.svg similarity index 100% rename from public/templates/default/images/object/cell.svg rename to components/ILIAS/UI/resources/images/object/cell.svg diff --git a/public/templates/default/images/object/checkbox_checked.png b/components/ILIAS/UI/resources/images/object/checkbox_checked.png similarity index 100% rename from public/templates/default/images/object/checkbox_checked.png rename to components/ILIAS/UI/resources/images/object/checkbox_checked.png diff --git a/public/templates/default/images/object/checkbox_unchecked.png b/components/ILIAS/UI/resources/images/object/checkbox_unchecked.png similarity index 100% rename from public/templates/default/images/object/checkbox_unchecked.png rename to components/ILIAS/UI/resources/images/object/checkbox_unchecked.png diff --git a/public/templates/default/images/object/col.svg b/components/ILIAS/UI/resources/images/object/col.svg similarity index 100% rename from public/templates/default/images/object/col.svg rename to components/ILIAS/UI/resources/images/object/col.svg diff --git a/public/templates/default/images/object/marked.svg b/components/ILIAS/UI/resources/images/object/marked.svg similarity index 100% rename from public/templates/default/images/object/marked.svg rename to components/ILIAS/UI/resources/images/object/marked.svg diff --git a/public/templates/default/images/object/marked_.svg b/components/ILIAS/UI/resources/images/object/marked_.svg similarity index 100% rename from public/templates/default/images/object/marked_.svg rename to components/ILIAS/UI/resources/images/object/marked_.svg diff --git a/public/templates/default/images/object/notification_off.svg b/components/ILIAS/UI/resources/images/object/notification_off.svg similarity index 100% rename from public/templates/default/images/object/notification_off.svg rename to components/ILIAS/UI/resources/images/object/notification_off.svg diff --git a/public/templates/default/images/object/notification_on.svg b/components/ILIAS/UI/resources/images/object/notification_on.svg similarity index 100% rename from public/templates/default/images/object/notification_on.svg rename to components/ILIAS/UI/resources/images/object/notification_on.svg diff --git a/public/templates/default/images/object/radiobutton_checked.png b/components/ILIAS/UI/resources/images/object/radiobutton_checked.png similarity index 100% rename from public/templates/default/images/object/radiobutton_checked.png rename to components/ILIAS/UI/resources/images/object/radiobutton_checked.png diff --git a/public/templates/default/images/object/radiobutton_unchecked.png b/components/ILIAS/UI/resources/images/object/radiobutton_unchecked.png similarity index 100% rename from public/templates/default/images/object/radiobutton_unchecked.png rename to components/ILIAS/UI/resources/images/object/radiobutton_unchecked.png diff --git a/public/templates/default/images/object/row.svg b/components/ILIAS/UI/resources/images/object/row.svg similarity index 100% rename from public/templates/default/images/object/row.svg rename to components/ILIAS/UI/resources/images/object/row.svg diff --git a/public/templates/default/images/object/target.svg b/components/ILIAS/UI/resources/images/object/target.svg similarity index 100% rename from public/templates/default/images/object/target.svg rename to components/ILIAS/UI/resources/images/object/target.svg diff --git a/public/templates/default/images/object/wizard.svg b/components/ILIAS/UI/resources/images/object/wizard.svg similarity index 100% rename from public/templates/default/images/object/wizard.svg rename to components/ILIAS/UI/resources/images/object/wizard.svg diff --git a/public/templates/default/images/page_editor/icon_peac.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peac.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peac.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peac.svg diff --git a/public/templates/default/images/page_editor/icon_peadl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peadl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peadl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peadl.svg diff --git a/public/templates/default/images/page_editor/icon_peadt.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peadt.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peadt.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peadt.svg diff --git a/public/templates/default/images/page_editor/icon_pean.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pean.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pean.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pean.svg diff --git a/public/templates/default/images/page_editor/icon_pecd.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecd.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecd.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecd.svg diff --git a/public/templates/default/images/page_editor/icon_pech.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pech.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pech.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pech.svg diff --git a/public/templates/default/images/page_editor/icon_pecl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecl.svg diff --git a/public/templates/default/images/page_editor/icon_peclp.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peclp.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peclp.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peclp.svg diff --git a/public/templates/default/images/page_editor/icon_pecom.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecom.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecom.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecom.svg diff --git a/public/templates/default/images/page_editor/icon_pecrs.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecrs.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecrs.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecrs.svg diff --git a/public/templates/default/images/page_editor/icon_pecrt.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecrt.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecrt.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecrt.svg diff --git a/public/templates/default/images/page_editor/icon_pecs.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pecs.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pecs.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pecs.svg diff --git a/public/templates/default/images/page_editor/icon_pedt.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pedt.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pedt.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pedt.svg diff --git a/public/templates/default/images/page_editor/icon_pefl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pefl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pefl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pefl.svg diff --git a/public/templates/default/images/page_editor/icon_peim.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peim.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peim.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peim.svg diff --git a/public/templates/default/images/page_editor/icon_pelh.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pelh.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pelh.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pelh.svg diff --git a/public/templates/default/images/page_editor/icon_pemed.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pemed.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pemed.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pemed.svg diff --git a/public/templates/default/images/page_editor/icon_pemp.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pemp.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pemp.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pemp.svg diff --git a/public/templates/default/images/page_editor/icon_pepd.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pepd.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pepd.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pepd.svg diff --git a/public/templates/default/images/page_editor/icon_pepe.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pepe.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pepe.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pepe.svg diff --git a/public/templates/default/images/page_editor/icon_pepl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pepl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pepl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pepl.svg diff --git a/public/templates/default/images/page_editor/icon_peplh.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peplh.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peplh.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peplh.svg diff --git a/public/templates/default/images/page_editor/icon_pequ.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pequ.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pequ.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pequ.svg diff --git a/public/templates/default/images/page_editor/icon_perl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_perl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_perl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_perl.svg diff --git a/public/templates/default/images/page_editor/icon_personal_settings.svg b/components/ILIAS/UI/resources/images/page_editor/icon_personal_settings.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_personal_settings.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_personal_settings.svg diff --git a/public/templates/default/images/page_editor/icon_pesc.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pesc.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pesc.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pesc.svg diff --git a/public/templates/default/images/page_editor/icon_petmp.svg b/components/ILIAS/UI/resources/images/page_editor/icon_petmp.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_petmp.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_petmp.svg diff --git a/public/templates/default/images/page_editor/icon_peusr.svg b/components/ILIAS/UI/resources/images/page_editor/icon_peusr.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_peusr.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_peusr.svg diff --git a/public/templates/default/images/page_editor/icon_pewl.svg b/components/ILIAS/UI/resources/images/page_editor/icon_pewl.svg similarity index 100% rename from public/templates/default/images/page_editor/icon_pewl.svg rename to components/ILIAS/UI/resources/images/page_editor/icon_pewl.svg diff --git a/public/templates/default/images/placeholder/file_placeholder.svg b/components/ILIAS/UI/resources/images/placeholder/file_placeholder.svg similarity index 100% rename from public/templates/default/images/placeholder/file_placeholder.svg rename to components/ILIAS/UI/resources/images/placeholder/file_placeholder.svg diff --git a/public/templates/default/images/placeholder/media_placeholder.png b/components/ILIAS/UI/resources/images/placeholder/media_placeholder.png similarity index 100% rename from public/templates/default/images/placeholder/media_placeholder.png rename to components/ILIAS/UI/resources/images/placeholder/media_placeholder.png diff --git a/public/templates/default/images/placeholder/media_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/media_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/media_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/media_placeholder_thumb.png diff --git a/public/templates/default/images/placeholder/no_photo_xsmall.jpg b/components/ILIAS/UI/resources/images/placeholder/no_photo_xsmall.jpg similarity index 100% rename from public/templates/default/images/placeholder/no_photo_xsmall.jpg rename to components/ILIAS/UI/resources/images/placeholder/no_photo_xsmall.jpg diff --git a/public/templates/default/images/placeholder/no_photo_xxsmall.jpg b/components/ILIAS/UI/resources/images/placeholder/no_photo_xxsmall.jpg similarity index 100% rename from public/templates/default/images/placeholder/no_photo_xxsmall.jpg rename to components/ILIAS/UI/resources/images/placeholder/no_photo_xxsmall.jpg diff --git a/public/templates/default/images/placeholder/pred_text_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/pred_text_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/pred_text_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/pred_text_placeholder_thumb.png diff --git a/public/templates/default/images/placeholder/question_placeholder.png b/components/ILIAS/UI/resources/images/placeholder/question_placeholder.png similarity index 100% rename from public/templates/default/images/placeholder/question_placeholder.png rename to components/ILIAS/UI/resources/images/placeholder/question_placeholder.png diff --git a/public/templates/default/images/placeholder/question_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/question_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/question_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/question_placeholder_thumb.png diff --git a/public/templates/default/images/placeholder/text_placeholder.png b/components/ILIAS/UI/resources/images/placeholder/text_placeholder.png similarity index 100% rename from public/templates/default/images/placeholder/text_placeholder.png rename to components/ILIAS/UI/resources/images/placeholder/text_placeholder.png diff --git a/public/templates/default/images/placeholder/text_placeholder_thumb.png b/components/ILIAS/UI/resources/images/placeholder/text_placeholder_thumb.png similarity index 100% rename from public/templates/default/images/placeholder/text_placeholder_thumb.png rename to components/ILIAS/UI/resources/images/placeholder/text_placeholder_thumb.png diff --git a/public/templates/default/images/scorm/asset.png b/components/ILIAS/UI/resources/images/scorm/asset.png similarity index 100% rename from public/templates/default/images/scorm/asset.png rename to components/ILIAS/UI/resources/images/scorm/asset.png diff --git a/public/templates/default/images/scorm/asset.svg b/components/ILIAS/UI/resources/images/scorm/asset.svg similarity index 100% rename from public/templates/default/images/scorm/asset.svg rename to components/ILIAS/UI/resources/images/scorm/asset.svg diff --git a/public/templates/default/images/scorm/asset_s.png b/components/ILIAS/UI/resources/images/scorm/asset_s.png similarity index 100% rename from public/templates/default/images/scorm/asset_s.png rename to components/ILIAS/UI/resources/images/scorm/asset_s.png diff --git a/public/templates/default/images/scorm/browsed.png b/components/ILIAS/UI/resources/images/scorm/browsed.png similarity index 100% rename from public/templates/default/images/scorm/browsed.png rename to components/ILIAS/UI/resources/images/scorm/browsed.png diff --git a/public/templates/default/images/scorm/browsed_s.png b/components/ILIAS/UI/resources/images/scorm/browsed_s.png similarity index 100% rename from public/templates/default/images/scorm/browsed_s.png rename to components/ILIAS/UI/resources/images/scorm/browsed_s.png diff --git a/public/templates/default/images/scorm/complete.png b/components/ILIAS/UI/resources/images/scorm/complete.png similarity index 100% rename from public/templates/default/images/scorm/complete.png rename to components/ILIAS/UI/resources/images/scorm/complete.png diff --git a/public/templates/default/images/scorm/complete.svg b/components/ILIAS/UI/resources/images/scorm/complete.svg similarity index 100% rename from public/templates/default/images/scorm/complete.svg rename to components/ILIAS/UI/resources/images/scorm/complete.svg diff --git a/public/templates/default/images/scorm/complete_s.png b/components/ILIAS/UI/resources/images/scorm/complete_s.png similarity index 100% rename from public/templates/default/images/scorm/complete_s.png rename to components/ILIAS/UI/resources/images/scorm/complete_s.png diff --git a/public/templates/default/images/scorm/completed.png b/components/ILIAS/UI/resources/images/scorm/completed.png similarity index 100% rename from public/templates/default/images/scorm/completed.png rename to components/ILIAS/UI/resources/images/scorm/completed.png diff --git a/public/templates/default/images/scorm/completed.svg b/components/ILIAS/UI/resources/images/scorm/completed.svg similarity index 100% rename from public/templates/default/images/scorm/completed.svg rename to components/ILIAS/UI/resources/images/scorm/completed.svg diff --git a/public/templates/default/images/scorm/completed_s.png b/components/ILIAS/UI/resources/images/scorm/completed_s.png similarity index 100% rename from public/templates/default/images/scorm/completed_s.png rename to components/ILIAS/UI/resources/images/scorm/completed_s.png diff --git a/public/templates/default/images/scorm/empty.png b/components/ILIAS/UI/resources/images/scorm/empty.png similarity index 100% rename from public/templates/default/images/scorm/empty.png rename to components/ILIAS/UI/resources/images/scorm/empty.png diff --git a/public/templates/default/images/scorm/failed.png b/components/ILIAS/UI/resources/images/scorm/failed.png similarity index 100% rename from public/templates/default/images/scorm/failed.png rename to components/ILIAS/UI/resources/images/scorm/failed.png diff --git a/public/templates/default/images/scorm/failed.svg b/components/ILIAS/UI/resources/images/scorm/failed.svg similarity index 100% rename from public/templates/default/images/scorm/failed.svg rename to components/ILIAS/UI/resources/images/scorm/failed.svg diff --git a/public/templates/default/images/scorm/failed_s.png b/components/ILIAS/UI/resources/images/scorm/failed_s.png similarity index 100% rename from public/templates/default/images/scorm/failed_s.png rename to components/ILIAS/UI/resources/images/scorm/failed_s.png diff --git a/public/templates/default/images/scorm/in_progress.png b/components/ILIAS/UI/resources/images/scorm/in_progress.png similarity index 100% rename from public/templates/default/images/scorm/in_progress.png rename to components/ILIAS/UI/resources/images/scorm/in_progress.png diff --git a/public/templates/default/images/scorm/incomplete.png b/components/ILIAS/UI/resources/images/scorm/incomplete.png similarity index 100% rename from public/templates/default/images/scorm/incomplete.png rename to components/ILIAS/UI/resources/images/scorm/incomplete.png diff --git a/public/templates/default/images/scorm/incomplete.svg b/components/ILIAS/UI/resources/images/scorm/incomplete.svg similarity index 100% rename from public/templates/default/images/scorm/incomplete.svg rename to components/ILIAS/UI/resources/images/scorm/incomplete.svg diff --git a/public/templates/default/images/scorm/incomplete_s.png b/components/ILIAS/UI/resources/images/scorm/incomplete_s.png similarity index 100% rename from public/templates/default/images/scorm/incomplete_s.png rename to components/ILIAS/UI/resources/images/scorm/incomplete_s.png diff --git a/public/templates/default/images/scorm/not_attempted.png b/components/ILIAS/UI/resources/images/scorm/not_attempted.png similarity index 100% rename from public/templates/default/images/scorm/not_attempted.png rename to components/ILIAS/UI/resources/images/scorm/not_attempted.png diff --git a/public/templates/default/images/scorm/not_attempted.svg b/components/ILIAS/UI/resources/images/scorm/not_attempted.svg similarity index 100% rename from public/templates/default/images/scorm/not_attempted.svg rename to components/ILIAS/UI/resources/images/scorm/not_attempted.svg diff --git a/public/templates/default/images/scorm/not_attempted_s.png b/components/ILIAS/UI/resources/images/scorm/not_attempted_s.png similarity index 100% rename from public/templates/default/images/scorm/not_attempted_s.png rename to components/ILIAS/UI/resources/images/scorm/not_attempted_s.png diff --git a/public/templates/default/images/scorm/passed.png b/components/ILIAS/UI/resources/images/scorm/passed.png similarity index 100% rename from public/templates/default/images/scorm/passed.png rename to components/ILIAS/UI/resources/images/scorm/passed.png diff --git a/public/templates/default/images/scorm/passed.svg b/components/ILIAS/UI/resources/images/scorm/passed.svg similarity index 100% rename from public/templates/default/images/scorm/passed.svg rename to components/ILIAS/UI/resources/images/scorm/passed.svg diff --git a/public/templates/default/images/scorm/passed_s.png b/components/ILIAS/UI/resources/images/scorm/passed_s.png similarity index 100% rename from public/templates/default/images/scorm/passed_s.png rename to components/ILIAS/UI/resources/images/scorm/passed_s.png diff --git a/public/templates/default/images/scorm/running.png b/components/ILIAS/UI/resources/images/scorm/running.png similarity index 100% rename from public/templates/default/images/scorm/running.png rename to components/ILIAS/UI/resources/images/scorm/running.png diff --git a/public/templates/default/images/scorm/running.svg b/components/ILIAS/UI/resources/images/scorm/running.svg similarity index 100% rename from public/templates/default/images/scorm/running.svg rename to components/ILIAS/UI/resources/images/scorm/running.svg diff --git a/public/templates/default/images/scorm/running_s.png b/components/ILIAS/UI/resources/images/scorm/running_s.png similarity index 100% rename from public/templates/default/images/scorm/running_s.png rename to components/ILIAS/UI/resources/images/scorm/running_s.png diff --git a/public/templates/default/images/standard/icon_accs.svg b/components/ILIAS/UI/resources/images/standard/icon_accs.svg similarity index 100% rename from public/templates/default/images/standard/icon_accs.svg rename to components/ILIAS/UI/resources/images/standard/icon_accs.svg diff --git a/public/templates/default/images/standard/icon_achv.svg b/components/ILIAS/UI/resources/images/standard/icon_achv.svg similarity index 100% rename from public/templates/default/images/standard/icon_achv.svg rename to components/ILIAS/UI/resources/images/standard/icon_achv.svg diff --git a/public/templates/default/images/standard/icon_achva.svg b/components/ILIAS/UI/resources/images/standard/icon_achva.svg similarity index 100% rename from public/templates/default/images/standard/icon_achva.svg rename to components/ILIAS/UI/resources/images/standard/icon_achva.svg diff --git a/public/templates/default/images/standard/icon_adm.svg b/components/ILIAS/UI/resources/images/standard/icon_adm.svg similarity index 100% rename from public/templates/default/images/standard/icon_adm.svg rename to components/ILIAS/UI/resources/images/standard/icon_adm.svg diff --git a/public/templates/default/images/standard/icon_adma.svg b/components/ILIAS/UI/resources/images/standard/icon_adma.svg similarity index 100% rename from public/templates/default/images/standard/icon_adma.svg rename to components/ILIAS/UI/resources/images/standard/icon_adma.svg diff --git a/public/templates/default/images/standard/icon_adn.svg b/components/ILIAS/UI/resources/images/standard/icon_adn.svg similarity index 100% rename from public/templates/default/images/standard/icon_adn.svg rename to components/ILIAS/UI/resources/images/standard/icon_adn.svg diff --git a/public/templates/default/images/standard/icon_adve.svg b/components/ILIAS/UI/resources/images/standard/icon_adve.svg similarity index 100% rename from public/templates/default/images/standard/icon_adve.svg rename to components/ILIAS/UI/resources/images/standard/icon_adve.svg diff --git a/public/templates/default/images/standard/icon_alert.svg b/components/ILIAS/UI/resources/images/standard/icon_alert.svg similarity index 100% rename from public/templates/default/images/standard/icon_alert.svg rename to components/ILIAS/UI/resources/images/standard/icon_alert.svg diff --git a/public/templates/default/images/standard/icon_appr.svg b/components/ILIAS/UI/resources/images/standard/icon_appr.svg similarity index 100% rename from public/templates/default/images/standard/icon_appr.svg rename to components/ILIAS/UI/resources/images/standard/icon_appr.svg diff --git a/public/templates/default/images/standard/icon_ass.svg b/components/ILIAS/UI/resources/images/standard/icon_ass.svg similarity index 100% rename from public/templates/default/images/standard/icon_ass.svg rename to components/ILIAS/UI/resources/images/standard/icon_ass.svg diff --git a/public/templates/default/images/standard/icon_assf.svg b/components/ILIAS/UI/resources/images/standard/icon_assf.svg similarity index 100% rename from public/templates/default/images/standard/icon_assf.svg rename to components/ILIAS/UI/resources/images/standard/icon_assf.svg diff --git a/public/templates/default/images/standard/icon_auth.svg b/components/ILIAS/UI/resources/images/standard/icon_auth.svg similarity index 100% rename from public/templates/default/images/standard/icon_auth.svg rename to components/ILIAS/UI/resources/images/standard/icon_auth.svg diff --git a/public/templates/default/images/standard/icon_avatar.svg b/components/ILIAS/UI/resources/images/standard/icon_avatar.svg similarity index 100% rename from public/templates/default/images/standard/icon_avatar.svg rename to components/ILIAS/UI/resources/images/standard/icon_avatar.svg diff --git a/public/templates/default/images/standard/icon_awra.svg b/components/ILIAS/UI/resources/images/standard/icon_awra.svg similarity index 100% rename from public/templates/default/images/standard/icon_awra.svg rename to components/ILIAS/UI/resources/images/standard/icon_awra.svg diff --git a/public/templates/default/images/standard/icon_bdg.svg b/components/ILIAS/UI/resources/images/standard/icon_bdg.svg similarity index 100% rename from public/templates/default/images/standard/icon_bdg.svg rename to components/ILIAS/UI/resources/images/standard/icon_bdg.svg diff --git a/public/templates/default/images/standard/icon_bdga.svg b/components/ILIAS/UI/resources/images/standard/icon_bdga.svg similarity index 100% rename from public/templates/default/images/standard/icon_bdga.svg rename to components/ILIAS/UI/resources/images/standard/icon_bdga.svg diff --git a/public/templates/default/images/standard/icon_bgtk.svg b/components/ILIAS/UI/resources/images/standard/icon_bgtk.svg similarity index 100% rename from public/templates/default/images/standard/icon_bgtk.svg rename to components/ILIAS/UI/resources/images/standard/icon_bgtk.svg diff --git a/public/templates/default/images/standard/icon_bibl.svg b/components/ILIAS/UI/resources/images/standard/icon_bibl.svg similarity index 100% rename from public/templates/default/images/standard/icon_bibl.svg rename to components/ILIAS/UI/resources/images/standard/icon_bibl.svg diff --git a/public/templates/default/images/standard/icon_bibs.svg b/components/ILIAS/UI/resources/images/standard/icon_bibs.svg similarity index 100% rename from public/templates/default/images/standard/icon_bibs.svg rename to components/ILIAS/UI/resources/images/standard/icon_bibs.svg diff --git a/public/templates/default/images/standard/icon_blga.svg b/components/ILIAS/UI/resources/images/standard/icon_blga.svg similarity index 100% rename from public/templates/default/images/standard/icon_blga.svg rename to components/ILIAS/UI/resources/images/standard/icon_blga.svg diff --git a/public/templates/default/images/standard/icon_blog.svg b/components/ILIAS/UI/resources/images/standard/icon_blog.svg similarity index 100% rename from public/templates/default/images/standard/icon_blog.svg rename to components/ILIAS/UI/resources/images/standard/icon_blog.svg diff --git a/public/templates/default/images/standard/icon_book.svg b/components/ILIAS/UI/resources/images/standard/icon_book.svg similarity index 100% rename from public/templates/default/images/standard/icon_book.svg rename to components/ILIAS/UI/resources/images/standard/icon_book.svg diff --git a/public/templates/default/images/standard/icon_cadm.svg b/components/ILIAS/UI/resources/images/standard/icon_cadm.svg similarity index 100% rename from public/templates/default/images/standard/icon_cadm.svg rename to components/ILIAS/UI/resources/images/standard/icon_cadm.svg diff --git a/public/templates/default/images/standard/icon_cal.svg b/components/ILIAS/UI/resources/images/standard/icon_cal.svg similarity index 100% rename from public/templates/default/images/standard/icon_cal.svg rename to components/ILIAS/UI/resources/images/standard/icon_cal.svg diff --git a/public/templates/default/images/standard/icon_calch.svg b/components/ILIAS/UI/resources/images/standard/icon_calch.svg similarity index 100% rename from public/templates/default/images/standard/icon_calch.svg rename to components/ILIAS/UI/resources/images/standard/icon_calch.svg diff --git a/public/templates/default/images/standard/icon_calg.svg b/components/ILIAS/UI/resources/images/standard/icon_calg.svg similarity index 100% rename from public/templates/default/images/standard/icon_calg.svg rename to components/ILIAS/UI/resources/images/standard/icon_calg.svg diff --git a/public/templates/default/images/standard/icon_cals.svg b/components/ILIAS/UI/resources/images/standard/icon_cals.svg similarity index 100% rename from public/templates/default/images/standard/icon_cals.svg rename to components/ILIAS/UI/resources/images/standard/icon_cals.svg diff --git a/public/templates/default/images/standard/icon_cat.svg b/components/ILIAS/UI/resources/images/standard/icon_cat.svg similarity index 100% rename from public/templates/default/images/standard/icon_cat.svg rename to components/ILIAS/UI/resources/images/standard/icon_cat.svg diff --git a/public/templates/default/images/standard/icon_catr.svg b/components/ILIAS/UI/resources/images/standard/icon_catr.svg similarity index 100% rename from public/templates/default/images/standard/icon_catr.svg rename to components/ILIAS/UI/resources/images/standard/icon_catr.svg diff --git a/public/templates/default/images/standard/icon_cert.svg b/components/ILIAS/UI/resources/images/standard/icon_cert.svg similarity index 100% rename from public/templates/default/images/standard/icon_cert.svg rename to components/ILIAS/UI/resources/images/standard/icon_cert.svg diff --git a/public/templates/default/images/standard/icon_chap.svg b/components/ILIAS/UI/resources/images/standard/icon_chap.svg similarity index 100% rename from public/templates/default/images/standard/icon_chap.svg rename to components/ILIAS/UI/resources/images/standard/icon_chap.svg diff --git a/public/templates/default/images/standard/icon_checked.svg b/components/ILIAS/UI/resources/images/standard/icon_checked.svg similarity index 100% rename from public/templates/default/images/standard/icon_checked.svg rename to components/ILIAS/UI/resources/images/standard/icon_checked.svg diff --git a/public/templates/default/images/standard/icon_chp.svg b/components/ILIAS/UI/resources/images/standard/icon_chp.svg similarity index 100% rename from public/templates/default/images/standard/icon_chp.svg rename to components/ILIAS/UI/resources/images/standard/icon_chp.svg diff --git a/public/templates/default/images/standard/icon_chta.png b/components/ILIAS/UI/resources/images/standard/icon_chta.png similarity index 100% rename from public/templates/default/images/standard/icon_chta.png rename to components/ILIAS/UI/resources/images/standard/icon_chta.png diff --git a/public/templates/default/images/standard/icon_chta.svg b/components/ILIAS/UI/resources/images/standard/icon_chta.svg similarity index 100% rename from public/templates/default/images/standard/icon_chta.svg rename to components/ILIAS/UI/resources/images/standard/icon_chta.svg diff --git a/public/templates/default/images/standard/icon_chtr.svg b/components/ILIAS/UI/resources/images/standard/icon_chtr.svg similarity index 100% rename from public/templates/default/images/standard/icon_chtr.svg rename to components/ILIAS/UI/resources/images/standard/icon_chtr.svg diff --git a/public/templates/default/images/standard/icon_cld.svg b/components/ILIAS/UI/resources/images/standard/icon_cld.svg similarity index 100% rename from public/templates/default/images/standard/icon_cld.svg rename to components/ILIAS/UI/resources/images/standard/icon_cld.svg diff --git a/public/templates/default/images/standard/icon_cmis.svg b/components/ILIAS/UI/resources/images/standard/icon_cmis.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmis.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmis.svg diff --git a/public/templates/default/images/standard/icon_cmix.svg b/components/ILIAS/UI/resources/images/standard/icon_cmix.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmix.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmix.svg diff --git a/public/templates/default/images/standard/icon_cmps.svg b/components/ILIAS/UI/resources/images/standard/icon_cmps.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmps.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmps.svg diff --git a/public/templates/default/images/standard/icon_cmxv.svg b/components/ILIAS/UI/resources/images/standard/icon_cmxv.svg similarity index 100% rename from public/templates/default/images/standard/icon_cmxv.svg rename to components/ILIAS/UI/resources/images/standard/icon_cmxv.svg diff --git a/public/templates/default/images/standard/icon_coma.svg b/components/ILIAS/UI/resources/images/standard/icon_coma.svg similarity index 100% rename from public/templates/default/images/standard/icon_coma.svg rename to components/ILIAS/UI/resources/images/standard/icon_coma.svg diff --git a/public/templates/default/images/standard/icon_comp.svg b/components/ILIAS/UI/resources/images/standard/icon_comp.svg similarity index 100% rename from public/templates/default/images/standard/icon_comp.svg rename to components/ILIAS/UI/resources/images/standard/icon_comp.svg diff --git a/public/templates/default/images/standard/icon_coms.svg b/components/ILIAS/UI/resources/images/standard/icon_coms.svg similarity index 100% rename from public/templates/default/images/standard/icon_coms.svg rename to components/ILIAS/UI/resources/images/standard/icon_coms.svg diff --git a/public/templates/default/images/standard/icon_comu.svg b/components/ILIAS/UI/resources/images/standard/icon_comu.svg similarity index 100% rename from public/templates/default/images/standard/icon_comu.svg rename to components/ILIAS/UI/resources/images/standard/icon_comu.svg diff --git a/public/templates/default/images/standard/icon_con.svg b/components/ILIAS/UI/resources/images/standard/icon_con.svg similarity index 100% rename from public/templates/default/images/standard/icon_con.svg rename to components/ILIAS/UI/resources/images/standard/icon_con.svg diff --git a/public/templates/default/images/standard/icon_con_VAR.svg b/components/ILIAS/UI/resources/images/standard/icon_con_VAR.svg similarity index 100% rename from public/templates/default/images/standard/icon_con_VAR.svg rename to components/ILIAS/UI/resources/images/standard/icon_con_VAR.svg diff --git a/public/templates/default/images/standard/icon_copa.svg b/components/ILIAS/UI/resources/images/standard/icon_copa.svg similarity index 100% rename from public/templates/default/images/standard/icon_copa.svg rename to components/ILIAS/UI/resources/images/standard/icon_copa.svg diff --git a/public/templates/default/images/standard/icon_cpad.svg b/components/ILIAS/UI/resources/images/standard/icon_cpad.svg similarity index 100% rename from public/templates/default/images/standard/icon_cpad.svg rename to components/ILIAS/UI/resources/images/standard/icon_cpad.svg diff --git a/public/templates/default/images/standard/icon_crgr.svg b/components/ILIAS/UI/resources/images/standard/icon_crgr.svg similarity index 100% rename from public/templates/default/images/standard/icon_crgr.svg rename to components/ILIAS/UI/resources/images/standard/icon_crgr.svg diff --git a/public/templates/default/images/standard/icon_crs.svg b/components/ILIAS/UI/resources/images/standard/icon_crs.svg similarity index 100% rename from public/templates/default/images/standard/icon_crs.svg rename to components/ILIAS/UI/resources/images/standard/icon_crs.svg diff --git a/public/templates/default/images/standard/icon_crsr.svg b/components/ILIAS/UI/resources/images/standard/icon_crsr.svg similarity index 100% rename from public/templates/default/images/standard/icon_crsr.svg rename to components/ILIAS/UI/resources/images/standard/icon_crsr.svg diff --git a/public/templates/default/images/standard/icon_crss.svg b/components/ILIAS/UI/resources/images/standard/icon_crss.svg similarity index 100% rename from public/templates/default/images/standard/icon_crss.svg rename to components/ILIAS/UI/resources/images/standard/icon_crss.svg diff --git a/public/templates/default/images/standard/icon_crst.svg b/components/ILIAS/UI/resources/images/standard/icon_crst.svg similarity index 100% rename from public/templates/default/images/standard/icon_crst.svg rename to components/ILIAS/UI/resources/images/standard/icon_crst.svg diff --git a/public/templates/default/images/standard/icon_crsv.svg b/components/ILIAS/UI/resources/images/standard/icon_crsv.svg similarity index 100% rename from public/templates/default/images/standard/icon_crsv.svg rename to components/ILIAS/UI/resources/images/standard/icon_crsv.svg diff --git a/public/templates/default/images/standard/icon_dcl.svg b/components/ILIAS/UI/resources/images/standard/icon_dcl.svg similarity index 100% rename from public/templates/default/images/standard/icon_dcl.svg rename to components/ILIAS/UI/resources/images/standard/icon_dcl.svg diff --git a/public/templates/default/images/standard/icon_dcl_file.svg b/components/ILIAS/UI/resources/images/standard/icon_dcl_file.svg similarity index 100% rename from public/templates/default/images/standard/icon_dcl_file.svg rename to components/ILIAS/UI/resources/images/standard/icon_dcl_file.svg diff --git a/public/templates/default/images/standard/icon_dcl_fold.svg b/components/ILIAS/UI/resources/images/standard/icon_dcl_fold.svg similarity index 100% rename from public/templates/default/images/standard/icon_dcl_fold.svg rename to components/ILIAS/UI/resources/images/standard/icon_dcl_fold.svg diff --git a/public/templates/default/images/standard/icon_ddp.svg b/components/ILIAS/UI/resources/images/standard/icon_ddp.svg similarity index 100% rename from public/templates/default/images/standard/icon_ddp.svg rename to components/ILIAS/UI/resources/images/standard/icon_ddp.svg diff --git a/public/templates/default/images/standard/icon_default.svg b/components/ILIAS/UI/resources/images/standard/icon_default.svg similarity index 100% rename from public/templates/default/images/standard/icon_default.svg rename to components/ILIAS/UI/resources/images/standard/icon_default.svg diff --git a/public/templates/default/images/standard/icon_disq.svg b/components/ILIAS/UI/resources/images/standard/icon_disq.svg similarity index 100% rename from public/templates/default/images/standard/icon_disq.svg rename to components/ILIAS/UI/resources/images/standard/icon_disq.svg diff --git a/public/templates/default/images/standard/icon_dpro.svg b/components/ILIAS/UI/resources/images/standard/icon_dpro.svg similarity index 100% rename from public/templates/default/images/standard/icon_dpro.svg rename to components/ILIAS/UI/resources/images/standard/icon_dpro.svg diff --git a/public/templates/default/images/standard/icon_drafts.svg b/components/ILIAS/UI/resources/images/standard/icon_drafts.svg similarity index 100% rename from public/templates/default/images/standard/icon_drafts.svg rename to components/ILIAS/UI/resources/images/standard/icon_drafts.svg diff --git a/public/templates/default/images/standard/icon_dsha.svg b/components/ILIAS/UI/resources/images/standard/icon_dsha.svg similarity index 100% rename from public/templates/default/images/standard/icon_dsha.svg rename to components/ILIAS/UI/resources/images/standard/icon_dsha.svg diff --git a/public/templates/default/images/standard/icon_dshs.svg b/components/ILIAS/UI/resources/images/standard/icon_dshs.svg similarity index 100% rename from public/templates/default/images/standard/icon_dshs.svg rename to components/ILIAS/UI/resources/images/standard/icon_dshs.svg diff --git a/public/templates/default/images/standard/icon_ecss.svg b/components/ILIAS/UI/resources/images/standard/icon_ecss.svg similarity index 100% rename from public/templates/default/images/standard/icon_ecss.svg rename to components/ILIAS/UI/resources/images/standard/icon_ecss.svg diff --git a/public/templates/default/images/standard/icon_edtr.svg b/components/ILIAS/UI/resources/images/standard/icon_edtr.svg similarity index 100% rename from public/templates/default/images/standard/icon_edtr.svg rename to components/ILIAS/UI/resources/images/standard/icon_edtr.svg diff --git a/public/templates/default/images/standard/icon_enrl.svg b/components/ILIAS/UI/resources/images/standard/icon_enrl.svg similarity index 100% rename from public/templates/default/images/standard/icon_enrl.svg rename to components/ILIAS/UI/resources/images/standard/icon_enrl.svg diff --git a/public/templates/default/images/standard/icon_etal.svg b/components/ILIAS/UI/resources/images/standard/icon_etal.svg similarity index 100% rename from public/templates/default/images/standard/icon_etal.svg rename to components/ILIAS/UI/resources/images/standard/icon_etal.svg diff --git a/public/templates/default/images/standard/icon_exc.svg b/components/ILIAS/UI/resources/images/standard/icon_exc.svg similarity index 100% rename from public/templates/default/images/standard/icon_exc.svg rename to components/ILIAS/UI/resources/images/standard/icon_exc.svg diff --git a/public/templates/default/images/standard/icon_excs.svg b/components/ILIAS/UI/resources/images/standard/icon_excs.svg similarity index 100% rename from public/templates/default/images/standard/icon_excs.svg rename to components/ILIAS/UI/resources/images/standard/icon_excs.svg diff --git a/public/templates/default/images/standard/icon_excv.svg b/components/ILIAS/UI/resources/images/standard/icon_excv.svg similarity index 100% rename from public/templates/default/images/standard/icon_excv.svg rename to components/ILIAS/UI/resources/images/standard/icon_excv.svg diff --git a/public/templates/default/images/standard/icon_exta.svg b/components/ILIAS/UI/resources/images/standard/icon_exta.svg similarity index 100% rename from public/templates/default/images/standard/icon_exta.svg rename to components/ILIAS/UI/resources/images/standard/icon_exta.svg diff --git a/public/templates/default/images/standard/icon_extt.svg b/components/ILIAS/UI/resources/images/standard/icon_extt.svg similarity index 100% rename from public/templates/default/images/standard/icon_extt.svg rename to components/ILIAS/UI/resources/images/standard/icon_extt.svg diff --git a/public/templates/default/images/standard/icon_facs.svg b/components/ILIAS/UI/resources/images/standard/icon_facs.svg similarity index 100% rename from public/templates/default/images/standard/icon_facs.svg rename to components/ILIAS/UI/resources/images/standard/icon_facs.svg diff --git a/public/templates/default/images/standard/icon_faq.svg b/components/ILIAS/UI/resources/images/standard/icon_faq.svg similarity index 100% rename from public/templates/default/images/standard/icon_faq.svg rename to components/ILIAS/UI/resources/images/standard/icon_faq.svg diff --git a/public/templates/default/images/standard/icon_fav.svg b/components/ILIAS/UI/resources/images/standard/icon_fav.svg similarity index 100% rename from public/templates/default/images/standard/icon_fav.svg rename to components/ILIAS/UI/resources/images/standard/icon_fav.svg diff --git a/public/templates/default/images/standard/icon_feed.svg b/components/ILIAS/UI/resources/images/standard/icon_feed.svg similarity index 100% rename from public/templates/default/images/standard/icon_feed.svg rename to components/ILIAS/UI/resources/images/standard/icon_feed.svg diff --git a/public/templates/default/images/standard/icon_file.svg b/components/ILIAS/UI/resources/images/standard/icon_file.svg similarity index 100% rename from public/templates/default/images/standard/icon_file.svg rename to components/ILIAS/UI/resources/images/standard/icon_file.svg diff --git a/public/templates/default/images/standard/icon_file_inline.svg b/components/ILIAS/UI/resources/images/standard/icon_file_inline.svg similarity index 100% rename from public/templates/default/images/standard/icon_file_inline.svg rename to components/ILIAS/UI/resources/images/standard/icon_file_inline.svg diff --git a/public/templates/default/images/standard/icon_fils.svg b/components/ILIAS/UI/resources/images/standard/icon_fils.svg similarity index 100% rename from public/templates/default/images/standard/icon_fils.svg rename to components/ILIAS/UI/resources/images/standard/icon_fils.svg diff --git a/public/templates/default/images/standard/icon_fldm.svg b/components/ILIAS/UI/resources/images/standard/icon_fldm.svg similarity index 100% rename from public/templates/default/images/standard/icon_fldm.svg rename to components/ILIAS/UI/resources/images/standard/icon_fldm.svg diff --git a/public/templates/default/images/standard/icon_fold.svg b/components/ILIAS/UI/resources/images/standard/icon_fold.svg similarity index 100% rename from public/templates/default/images/standard/icon_fold.svg rename to components/ILIAS/UI/resources/images/standard/icon_fold.svg diff --git a/public/templates/default/images/standard/icon_foldt.svg b/components/ILIAS/UI/resources/images/standard/icon_foldt.svg similarity index 100% rename from public/templates/default/images/standard/icon_foldt.svg rename to components/ILIAS/UI/resources/images/standard/icon_foldt.svg diff --git a/public/templates/default/images/standard/icon_frm.svg b/components/ILIAS/UI/resources/images/standard/icon_frm.svg similarity index 100% rename from public/templates/default/images/standard/icon_frm.svg rename to components/ILIAS/UI/resources/images/standard/icon_frm.svg diff --git a/public/templates/default/images/standard/icon_frma.svg b/components/ILIAS/UI/resources/images/standard/icon_frma.svg similarity index 100% rename from public/templates/default/images/standard/icon_frma.svg rename to components/ILIAS/UI/resources/images/standard/icon_frma.svg diff --git a/public/templates/default/images/standard/icon_gcon.svg b/components/ILIAS/UI/resources/images/standard/icon_gcon.svg similarity index 100% rename from public/templates/default/images/standard/icon_gcon.svg rename to components/ILIAS/UI/resources/images/standard/icon_gcon.svg diff --git a/public/templates/default/images/standard/icon_glo.svg b/components/ILIAS/UI/resources/images/standard/icon_glo.svg similarity index 100% rename from public/templates/default/images/standard/icon_glo.svg rename to components/ILIAS/UI/resources/images/standard/icon_glo.svg diff --git a/public/templates/default/images/standard/icon_grp.svg b/components/ILIAS/UI/resources/images/standard/icon_grp.svg similarity index 100% rename from public/templates/default/images/standard/icon_grp.svg rename to components/ILIAS/UI/resources/images/standard/icon_grp.svg diff --git a/public/templates/default/images/standard/icon_grpr.svg b/components/ILIAS/UI/resources/images/standard/icon_grpr.svg similarity index 100% rename from public/templates/default/images/standard/icon_grpr.svg rename to components/ILIAS/UI/resources/images/standard/icon_grpr.svg diff --git a/public/templates/default/images/standard/icon_grps.svg b/components/ILIAS/UI/resources/images/standard/icon_grps.svg similarity index 100% rename from public/templates/default/images/standard/icon_grps.svg rename to components/ILIAS/UI/resources/images/standard/icon_grps.svg diff --git a/public/templates/default/images/standard/icon_hlp.svg b/components/ILIAS/UI/resources/images/standard/icon_hlp.svg similarity index 100% rename from public/templates/default/images/standard/icon_hlp.svg rename to components/ILIAS/UI/resources/images/standard/icon_hlp.svg diff --git a/public/templates/default/images/standard/icon_hlps.svg b/components/ILIAS/UI/resources/images/standard/icon_hlps.svg similarity index 100% rename from public/templates/default/images/standard/icon_hlps.svg rename to components/ILIAS/UI/resources/images/standard/icon_hlps.svg diff --git a/public/templates/default/images/standard/icon_htlm.svg b/components/ILIAS/UI/resources/images/standard/icon_htlm.svg similarity index 100% rename from public/templates/default/images/standard/icon_htlm.svg rename to components/ILIAS/UI/resources/images/standard/icon_htlm.svg diff --git a/public/templates/default/images/standard/icon_i.svg b/components/ILIAS/UI/resources/images/standard/icon_i.svg similarity index 100% rename from public/templates/default/images/standard/icon_i.svg rename to components/ILIAS/UI/resources/images/standard/icon_i.svg diff --git a/public/templates/default/images/standard/icon_iass.svg b/components/ILIAS/UI/resources/images/standard/icon_iass.svg similarity index 100% rename from public/templates/default/images/standard/icon_iass.svg rename to components/ILIAS/UI/resources/images/standard/icon_iass.svg diff --git a/public/templates/default/images/standard/icon_impr.svg b/components/ILIAS/UI/resources/images/standard/icon_impr.svg similarity index 100% rename from public/templates/default/images/standard/icon_impr.svg rename to components/ILIAS/UI/resources/images/standard/icon_impr.svg diff --git a/public/templates/default/images/standard/icon_inbox.svg b/components/ILIAS/UI/resources/images/standard/icon_inbox.svg similarity index 100% rename from public/templates/default/images/standard/icon_inbox.svg rename to components/ILIAS/UI/resources/images/standard/icon_inbox.svg diff --git a/public/templates/default/images/standard/icon_info.svg b/components/ILIAS/UI/resources/images/standard/icon_info.svg similarity index 100% rename from public/templates/default/images/standard/icon_info.svg rename to components/ILIAS/UI/resources/images/standard/icon_info.svg diff --git a/public/templates/default/images/standard/icon_itgr.svg b/components/ILIAS/UI/resources/images/standard/icon_itgr.svg similarity index 100% rename from public/templates/default/images/standard/icon_itgr.svg rename to components/ILIAS/UI/resources/images/standard/icon_itgr.svg diff --git a/public/templates/default/images/standard/icon_lglntc.svg b/components/ILIAS/UI/resources/images/standard/icon_lglntc.svg similarity index 100% rename from public/templates/default/images/standard/icon_lglntc.svg rename to components/ILIAS/UI/resources/images/standard/icon_lglntc.svg diff --git a/public/templates/default/images/standard/icon_lhist.svg b/components/ILIAS/UI/resources/images/standard/icon_lhist.svg similarity index 100% rename from public/templates/default/images/standard/icon_lhist.svg rename to components/ILIAS/UI/resources/images/standard/icon_lhist.svg diff --git a/public/templates/default/images/standard/icon_lht.svg b/components/ILIAS/UI/resources/images/standard/icon_lht.svg similarity index 100% rename from public/templates/default/images/standard/icon_lht.svg rename to components/ILIAS/UI/resources/images/standard/icon_lht.svg diff --git a/public/templates/default/images/standard/icon_lhts.svg b/components/ILIAS/UI/resources/images/standard/icon_lhts.svg similarity index 100% rename from public/templates/default/images/standard/icon_lhts.svg rename to components/ILIAS/UI/resources/images/standard/icon_lhts.svg diff --git a/public/templates/default/images/standard/icon_lm.svg b/components/ILIAS/UI/resources/images/standard/icon_lm.svg similarity index 100% rename from public/templates/default/images/standard/icon_lm.svg rename to components/ILIAS/UI/resources/images/standard/icon_lm.svg diff --git a/public/templates/default/images/standard/icon_lng.svg b/components/ILIAS/UI/resources/images/standard/icon_lng.svg similarity index 100% rename from public/templates/default/images/standard/icon_lng.svg rename to components/ILIAS/UI/resources/images/standard/icon_lng.svg diff --git a/public/templates/default/images/standard/icon_lngf.svg b/components/ILIAS/UI/resources/images/standard/icon_lngf.svg similarity index 100% rename from public/templates/default/images/standard/icon_lngf.svg rename to components/ILIAS/UI/resources/images/standard/icon_lngf.svg diff --git a/public/templates/default/images/standard/icon_lobj.svg b/components/ILIAS/UI/resources/images/standard/icon_lobj.svg similarity index 100% rename from public/templates/default/images/standard/icon_lobj.svg rename to components/ILIAS/UI/resources/images/standard/icon_lobj.svg diff --git a/public/templates/default/images/standard/icon_local.svg b/components/ILIAS/UI/resources/images/standard/icon_local.svg similarity index 100% rename from public/templates/default/images/standard/icon_local.svg rename to components/ILIAS/UI/resources/images/standard/icon_local.svg diff --git a/public/templates/default/images/standard/icon_login.svg b/components/ILIAS/UI/resources/images/standard/icon_login.svg similarity index 100% rename from public/templates/default/images/standard/icon_login.svg rename to components/ILIAS/UI/resources/images/standard/icon_login.svg diff --git a/public/templates/default/images/standard/icon_logout.svg b/components/ILIAS/UI/resources/images/standard/icon_logout.svg similarity index 100% rename from public/templates/default/images/standard/icon_logout.svg rename to components/ILIAS/UI/resources/images/standard/icon_logout.svg diff --git a/public/templates/default/images/standard/icon_logs.svg b/components/ILIAS/UI/resources/images/standard/icon_logs.svg similarity index 100% rename from public/templates/default/images/standard/icon_logs.svg rename to components/ILIAS/UI/resources/images/standard/icon_logs.svg diff --git a/public/templates/default/images/standard/icon_lreg.svg b/components/ILIAS/UI/resources/images/standard/icon_lreg.svg similarity index 100% rename from public/templates/default/images/standard/icon_lreg.svg rename to components/ILIAS/UI/resources/images/standard/icon_lreg.svg diff --git a/public/templates/default/images/standard/icon_lres.svg b/components/ILIAS/UI/resources/images/standard/icon_lres.svg similarity index 100% rename from public/templates/default/images/standard/icon_lres.svg rename to components/ILIAS/UI/resources/images/standard/icon_lres.svg diff --git a/public/templates/default/images/standard/icon_lrss.svg b/components/ILIAS/UI/resources/images/standard/icon_lrss.svg similarity index 100% rename from public/templates/default/images/standard/icon_lrss.svg rename to components/ILIAS/UI/resources/images/standard/icon_lrss.svg diff --git a/public/templates/default/images/standard/icon_lso.svg b/components/ILIAS/UI/resources/images/standard/icon_lso.svg similarity index 100% rename from public/templates/default/images/standard/icon_lso.svg rename to components/ILIAS/UI/resources/images/standard/icon_lso.svg diff --git a/public/templates/default/images/standard/icon_lsos.svg b/components/ILIAS/UI/resources/images/standard/icon_lsos.svg similarity index 100% rename from public/templates/default/images/standard/icon_lsos.svg rename to components/ILIAS/UI/resources/images/standard/icon_lsos.svg diff --git a/public/templates/default/images/standard/icon_lstv.svg b/components/ILIAS/UI/resources/images/standard/icon_lstv.svg similarity index 100% rename from public/templates/default/images/standard/icon_lstv.svg rename to components/ILIAS/UI/resources/images/standard/icon_lstv.svg diff --git a/public/templates/default/images/standard/icon_lti.svg b/components/ILIAS/UI/resources/images/standard/icon_lti.svg similarity index 100% rename from public/templates/default/images/standard/icon_lti.svg rename to components/ILIAS/UI/resources/images/standard/icon_lti.svg diff --git a/public/templates/default/images/standard/icon_lti_large.svg b/components/ILIAS/UI/resources/images/standard/icon_lti_large.svg similarity index 100% rename from public/templates/default/images/standard/icon_lti_large.svg rename to components/ILIAS/UI/resources/images/standard/icon_lti_large.svg diff --git a/public/templates/default/images/standard/icon_ltis.svg b/components/ILIAS/UI/resources/images/standard/icon_ltis.svg similarity index 100% rename from public/templates/default/images/standard/icon_ltis.svg rename to components/ILIAS/UI/resources/images/standard/icon_ltis.svg diff --git a/public/templates/default/images/standard/icon_ltiv.svg b/components/ILIAS/UI/resources/images/standard/icon_ltiv.svg similarity index 100% rename from public/templates/default/images/standard/icon_ltiv.svg rename to components/ILIAS/UI/resources/images/standard/icon_ltiv.svg diff --git a/public/templates/default/images/standard/icon_mail.svg b/components/ILIAS/UI/resources/images/standard/icon_mail.svg similarity index 100% rename from public/templates/default/images/standard/icon_mail.svg rename to components/ILIAS/UI/resources/images/standard/icon_mail.svg diff --git a/public/templates/default/images/standard/icon_mailf.svg b/components/ILIAS/UI/resources/images/standard/icon_mailf.svg similarity index 100% rename from public/templates/default/images/standard/icon_mailf.svg rename to components/ILIAS/UI/resources/images/standard/icon_mailf.svg diff --git a/public/templates/default/images/standard/icon_mcst.svg b/components/ILIAS/UI/resources/images/standard/icon_mcst.svg similarity index 100% rename from public/templates/default/images/standard/icon_mcst.svg rename to components/ILIAS/UI/resources/images/standard/icon_mcst.svg diff --git a/public/templates/default/images/standard/icon_mcts.svg b/components/ILIAS/UI/resources/images/standard/icon_mcts.svg similarity index 100% rename from public/templates/default/images/standard/icon_mcts.svg rename to components/ILIAS/UI/resources/images/standard/icon_mcts.svg diff --git a/public/templates/default/images/standard/icon_mdia.svg b/components/ILIAS/UI/resources/images/standard/icon_mdia.svg similarity index 100% rename from public/templates/default/images/standard/icon_mdia.svg rename to components/ILIAS/UI/resources/images/standard/icon_mdia.svg diff --git a/public/templates/default/images/standard/icon_mds.svg b/components/ILIAS/UI/resources/images/standard/icon_mds.svg similarity index 100% rename from public/templates/default/images/standard/icon_mds.svg rename to components/ILIAS/UI/resources/images/standard/icon_mds.svg diff --git a/public/templates/default/images/standard/icon_mep.svg b/components/ILIAS/UI/resources/images/standard/icon_mep.svg similarity index 100% rename from public/templates/default/images/standard/icon_mep.svg rename to components/ILIAS/UI/resources/images/standard/icon_mep.svg diff --git a/public/templates/default/images/standard/icon_mme.svg b/components/ILIAS/UI/resources/images/standard/icon_mme.svg similarity index 100% rename from public/templates/default/images/standard/icon_mme.svg rename to components/ILIAS/UI/resources/images/standard/icon_mme.svg diff --git a/public/templates/default/images/standard/icon_mob.svg b/components/ILIAS/UI/resources/images/standard/icon_mob.svg similarity index 100% rename from public/templates/default/images/standard/icon_mob.svg rename to components/ILIAS/UI/resources/images/standard/icon_mob.svg diff --git a/public/templates/default/images/standard/icon_mobs.svg b/components/ILIAS/UI/resources/images/standard/icon_mobs.svg similarity index 100% rename from public/templates/default/images/standard/icon_mobs.svg rename to components/ILIAS/UI/resources/images/standard/icon_mobs.svg diff --git a/public/templates/default/images/standard/icon_more.svg b/components/ILIAS/UI/resources/images/standard/icon_more.svg similarity index 100% rename from public/templates/default/images/standard/icon_more.svg rename to components/ILIAS/UI/resources/images/standard/icon_more.svg diff --git a/public/templates/default/images/standard/icon_mostly_ok.svg b/components/ILIAS/UI/resources/images/standard/icon_mostly_ok.svg similarity index 100% rename from public/templates/default/images/standard/icon_mostly_ok.svg rename to components/ILIAS/UI/resources/images/standard/icon_mostly_ok.svg diff --git a/public/templates/default/images/standard/icon_not_ok.svg b/components/ILIAS/UI/resources/images/standard/icon_not_ok.svg similarity index 100% rename from public/templates/default/images/standard/icon_not_ok.svg rename to components/ILIAS/UI/resources/images/standard/icon_not_ok.svg diff --git a/public/templates/default/images/standard/icon_not_ok_monochrome.svg b/components/ILIAS/UI/resources/images/standard/icon_not_ok_monochrome.svg similarity index 100% rename from public/templates/default/images/standard/icon_not_ok_monochrome.svg rename to components/ILIAS/UI/resources/images/standard/icon_not_ok_monochrome.svg diff --git a/public/templates/default/images/standard/icon_nota.svg b/components/ILIAS/UI/resources/images/standard/icon_nota.svg similarity index 100% rename from public/templates/default/images/standard/icon_nota.svg rename to components/ILIAS/UI/resources/images/standard/icon_nota.svg diff --git a/public/templates/default/images/standard/icon_nots.svg b/components/ILIAS/UI/resources/images/standard/icon_nots.svg similarity index 100% rename from public/templates/default/images/standard/icon_nots.svg rename to components/ILIAS/UI/resources/images/standard/icon_nots.svg diff --git a/public/templates/default/images/standard/icon_ntfctn.svg b/components/ILIAS/UI/resources/images/standard/icon_ntfctn.svg similarity index 100% rename from public/templates/default/images/standard/icon_ntfctn.svg rename to components/ILIAS/UI/resources/images/standard/icon_ntfctn.svg diff --git a/public/templates/default/images/standard/icon_nwss.svg b/components/ILIAS/UI/resources/images/standard/icon_nwss.svg similarity index 100% rename from public/templates/default/images/standard/icon_nwss.svg rename to components/ILIAS/UI/resources/images/standard/icon_nwss.svg diff --git a/public/templates/default/images/standard/icon_obj.svg b/components/ILIAS/UI/resources/images/standard/icon_obj.svg similarity index 100% rename from public/templates/default/images/standard/icon_obj.svg rename to components/ILIAS/UI/resources/images/standard/icon_obj.svg diff --git a/public/templates/default/images/standard/icon_ok.svg b/components/ILIAS/UI/resources/images/standard/icon_ok.svg similarity index 100% rename from public/templates/default/images/standard/icon_ok.svg rename to components/ILIAS/UI/resources/images/standard/icon_ok.svg diff --git a/public/templates/default/images/standard/icon_ok_monochrome.svg b/components/ILIAS/UI/resources/images/standard/icon_ok_monochrome.svg similarity index 100% rename from public/templates/default/images/standard/icon_ok_monochrome.svg rename to components/ILIAS/UI/resources/images/standard/icon_ok_monochrome.svg diff --git a/public/templates/default/images/standard/icon_orga.svg b/components/ILIAS/UI/resources/images/standard/icon_orga.svg similarity index 100% rename from public/templates/default/images/standard/icon_orga.svg rename to components/ILIAS/UI/resources/images/standard/icon_orga.svg diff --git a/public/templates/default/images/standard/icon_orgu.svg b/components/ILIAS/UI/resources/images/standard/icon_orgu.svg similarity index 100% rename from public/templates/default/images/standard/icon_orgu.svg rename to components/ILIAS/UI/resources/images/standard/icon_orgu.svg diff --git a/public/templates/default/images/standard/icon_otpl.svg b/components/ILIAS/UI/resources/images/standard/icon_otpl.svg similarity index 100% rename from public/templates/default/images/standard/icon_otpl.svg rename to components/ILIAS/UI/resources/images/standard/icon_otpl.svg diff --git a/public/templates/default/images/standard/icon_page.svg b/components/ILIAS/UI/resources/images/standard/icon_page.svg similarity index 100% rename from public/templates/default/images/standard/icon_page.svg rename to components/ILIAS/UI/resources/images/standard/icon_page.svg diff --git a/public/templates/default/images/standard/icon_pays.svg b/components/ILIAS/UI/resources/images/standard/icon_pays.svg similarity index 100% rename from public/templates/default/images/standard/icon_pays.svg rename to components/ILIAS/UI/resources/images/standard/icon_pays.svg diff --git a/public/templates/default/images/standard/icon_pcht.svg b/components/ILIAS/UI/resources/images/standard/icon_pcht.svg similarity index 100% rename from public/templates/default/images/standard/icon_pcht.svg rename to components/ILIAS/UI/resources/images/standard/icon_pcht.svg diff --git a/public/templates/default/images/standard/icon_pd.svg b/components/ILIAS/UI/resources/images/standard/icon_pd.svg similarity index 100% rename from public/templates/default/images/standard/icon_pd.svg rename to components/ILIAS/UI/resources/images/standard/icon_pd.svg diff --git a/public/templates/default/images/standard/icon_pdfg.svg b/components/ILIAS/UI/resources/images/standard/icon_pdfg.svg similarity index 100% rename from public/templates/default/images/standard/icon_pdfg.svg rename to components/ILIAS/UI/resources/images/standard/icon_pdfg.svg diff --git a/public/templates/default/images/standard/icon_pdts.svg b/components/ILIAS/UI/resources/images/standard/icon_pdts.svg similarity index 100% rename from public/templates/default/images/standard/icon_pdts.svg rename to components/ILIAS/UI/resources/images/standard/icon_pdts.svg diff --git a/public/templates/default/images/standard/icon_pg.svg b/components/ILIAS/UI/resources/images/standard/icon_pg.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg.svg diff --git a/public/templates/default/images/standard/icon_pg_d.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_d.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_d.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_d.svg diff --git a/public/templates/default/images/standard/icon_pg_d_sc.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_d_sc.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_d_sc.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_d_sc.svg diff --git a/public/templates/default/images/standard/icon_pg_del.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_del.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_del.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_del.svg diff --git a/public/templates/default/images/standard/icon_pg_del_sc.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_del_sc.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_del_sc.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_del_sc.svg diff --git a/public/templates/default/images/standard/icon_pg_sc.svg b/components/ILIAS/UI/resources/images/standard/icon_pg_sc.svg similarity index 100% rename from public/templates/default/images/standard/icon_pg_sc.svg rename to components/ILIAS/UI/resources/images/standard/icon_pg_sc.svg diff --git a/public/templates/default/images/standard/icon_pin.svg b/components/ILIAS/UI/resources/images/standard/icon_pin.svg similarity index 100% rename from public/templates/default/images/standard/icon_pin.svg rename to components/ILIAS/UI/resources/images/standard/icon_pin.svg diff --git a/public/templates/default/images/standard/icon_pin_on.png b/components/ILIAS/UI/resources/images/standard/icon_pin_on.png similarity index 100% rename from public/templates/default/images/standard/icon_pin_on.png rename to components/ILIAS/UI/resources/images/standard/icon_pin_on.png diff --git a/public/templates/default/images/standard/icon_poll.svg b/components/ILIAS/UI/resources/images/standard/icon_poll.svg similarity index 100% rename from public/templates/default/images/standard/icon_poll.svg rename to components/ILIAS/UI/resources/images/standard/icon_poll.svg diff --git a/public/templates/default/images/standard/icon_prfa.svg b/components/ILIAS/UI/resources/images/standard/icon_prfa.svg similarity index 100% rename from public/templates/default/images/standard/icon_prfa.svg rename to components/ILIAS/UI/resources/images/standard/icon_prfa.svg diff --git a/public/templates/default/images/standard/icon_prfl.svg b/components/ILIAS/UI/resources/images/standard/icon_prfl.svg similarity index 100% rename from public/templates/default/images/standard/icon_prfl.svg rename to components/ILIAS/UI/resources/images/standard/icon_prfl.svg diff --git a/public/templates/default/images/standard/icon_prg.svg b/components/ILIAS/UI/resources/images/standard/icon_prg.svg similarity index 100% rename from public/templates/default/images/standard/icon_prg.svg rename to components/ILIAS/UI/resources/images/standard/icon_prg.svg diff --git a/public/templates/default/images/standard/icon_prgr.svg b/components/ILIAS/UI/resources/images/standard/icon_prgr.svg similarity index 100% rename from public/templates/default/images/standard/icon_prgr.svg rename to components/ILIAS/UI/resources/images/standard/icon_prgr.svg diff --git a/public/templates/default/images/standard/icon_prgs.svg b/components/ILIAS/UI/resources/images/standard/icon_prgs.svg similarity index 100% rename from public/templates/default/images/standard/icon_prgs.svg rename to components/ILIAS/UI/resources/images/standard/icon_prgs.svg diff --git a/public/templates/default/images/standard/icon_profile.svg b/components/ILIAS/UI/resources/images/standard/icon_profile.svg similarity index 100% rename from public/templates/default/images/standard/icon_profile.svg rename to components/ILIAS/UI/resources/images/standard/icon_profile.svg diff --git a/public/templates/default/images/standard/icon_prss.svg b/components/ILIAS/UI/resources/images/standard/icon_prss.svg similarity index 100% rename from public/templates/default/images/standard/icon_prss.svg rename to components/ILIAS/UI/resources/images/standard/icon_prss.svg diff --git a/public/templates/default/images/standard/icon_prst.svg b/components/ILIAS/UI/resources/images/standard/icon_prst.svg similarity index 100% rename from public/templates/default/images/standard/icon_prst.svg rename to components/ILIAS/UI/resources/images/standard/icon_prst.svg diff --git a/public/templates/default/images/standard/icon_prtf.svg b/components/ILIAS/UI/resources/images/standard/icon_prtf.svg similarity index 100% rename from public/templates/default/images/standard/icon_prtf.svg rename to components/ILIAS/UI/resources/images/standard/icon_prtf.svg diff --git a/public/templates/default/images/standard/icon_prtt.svg b/components/ILIAS/UI/resources/images/standard/icon_prtt.svg similarity index 100% rename from public/templates/default/images/standard/icon_prtt.svg rename to components/ILIAS/UI/resources/images/standard/icon_prtt.svg diff --git a/public/templates/default/images/standard/icon_ps.svg b/components/ILIAS/UI/resources/images/standard/icon_ps.svg similarity index 100% rename from public/templates/default/images/standard/icon_ps.svg rename to components/ILIAS/UI/resources/images/standard/icon_ps.svg diff --git a/public/templates/default/images/standard/icon_pwsa.svg b/components/ILIAS/UI/resources/images/standard/icon_pwsa.svg similarity index 100% rename from public/templates/default/images/standard/icon_pwsa.svg rename to components/ILIAS/UI/resources/images/standard/icon_pwsa.svg diff --git a/public/templates/default/images/standard/icon_qpl.svg b/components/ILIAS/UI/resources/images/standard/icon_qpl.svg similarity index 100% rename from public/templates/default/images/standard/icon_qpl.svg rename to components/ILIAS/UI/resources/images/standard/icon_qpl.svg diff --git a/public/templates/default/images/standard/icon_ques.svg b/components/ILIAS/UI/resources/images/standard/icon_ques.svg similarity index 100% rename from public/templates/default/images/standard/icon_ques.svg rename to components/ILIAS/UI/resources/images/standard/icon_ques.svg diff --git a/public/templates/default/images/standard/icon_rate_0.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_0.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_0.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_0.svg diff --git a/public/templates/default/images/standard/icon_rate_1.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_1.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_1.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_1.svg diff --git a/public/templates/default/images/standard/icon_rate_10.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_10.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_10.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_10.svg diff --git a/public/templates/default/images/standard/icon_rate_2.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_2.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_2.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_2.svg diff --git a/public/templates/default/images/standard/icon_rate_3.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_3.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_3.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_3.svg diff --git a/public/templates/default/images/standard/icon_rate_4.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_4.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_4.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_4.svg diff --git a/public/templates/default/images/standard/icon_rate_5.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_5.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_5.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_5.svg diff --git a/public/templates/default/images/standard/icon_rate_6.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_6.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_6.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_6.svg diff --git a/public/templates/default/images/standard/icon_rate_7.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_7.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_7.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_7.svg diff --git a/public/templates/default/images/standard/icon_rate_8.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_8.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_8.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_8.svg diff --git a/public/templates/default/images/standard/icon_rate_9.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_9.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_9.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_9.svg diff --git a/public/templates/default/images/standard/icon_rate_marker.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_marker.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_marker.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_marker.svg diff --git a/public/templates/default/images/standard/icon_rate_off.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_off.svg diff --git a/public/templates/default/images/standard/icon_rate_on.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_on.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_on.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_on.svg diff --git a/public/templates/default/images/standard/icon_rate_on_user.svg b/components/ILIAS/UI/resources/images/standard/icon_rate_on_user.svg similarity index 100% rename from public/templates/default/images/standard/icon_rate_on_user.svg rename to components/ILIAS/UI/resources/images/standard/icon_rate_on_user.svg diff --git a/public/templates/default/images/standard/icon_rcat.svg b/components/ILIAS/UI/resources/images/standard/icon_rcat.svg similarity index 100% rename from public/templates/default/images/standard/icon_rcat.svg rename to components/ILIAS/UI/resources/images/standard/icon_rcat.svg diff --git a/public/templates/default/images/standard/icon_rcrs.svg b/components/ILIAS/UI/resources/images/standard/icon_rcrs.svg similarity index 100% rename from public/templates/default/images/standard/icon_rcrs.svg rename to components/ILIAS/UI/resources/images/standard/icon_rcrs.svg diff --git a/public/templates/default/images/standard/icon_recf.svg b/components/ILIAS/UI/resources/images/standard/icon_recf.svg similarity index 100% rename from public/templates/default/images/standard/icon_recf.svg rename to components/ILIAS/UI/resources/images/standard/icon_recf.svg diff --git a/public/templates/default/images/standard/icon_rep.svg b/components/ILIAS/UI/resources/images/standard/icon_rep.svg similarity index 100% rename from public/templates/default/images/standard/icon_rep.svg rename to components/ILIAS/UI/resources/images/standard/icon_rep.svg diff --git a/public/templates/default/images/standard/icon_repa.svg b/components/ILIAS/UI/resources/images/standard/icon_repa.svg similarity index 100% rename from public/templates/default/images/standard/icon_repa.svg rename to components/ILIAS/UI/resources/images/standard/icon_repa.svg diff --git a/public/templates/default/images/standard/icon_repo.svg b/components/ILIAS/UI/resources/images/standard/icon_repo.svg similarity index 100% rename from public/templates/default/images/standard/icon_repo.svg rename to components/ILIAS/UI/resources/images/standard/icon_repo.svg diff --git a/public/templates/default/images/standard/icon_reps.svg b/components/ILIAS/UI/resources/images/standard/icon_reps.svg similarity index 100% rename from public/templates/default/images/standard/icon_reps.svg rename to components/ILIAS/UI/resources/images/standard/icon_reps.svg diff --git a/public/templates/default/images/standard/icon_reptr.svg b/components/ILIAS/UI/resources/images/standard/icon_reptr.svg similarity index 100% rename from public/templates/default/images/standard/icon_reptr.svg rename to components/ILIAS/UI/resources/images/standard/icon_reptr.svg diff --git a/public/templates/default/images/standard/icon_rfil.svg b/components/ILIAS/UI/resources/images/standard/icon_rfil.svg similarity index 100% rename from public/templates/default/images/standard/icon_rfil.svg rename to components/ILIAS/UI/resources/images/standard/icon_rfil.svg diff --git a/public/templates/default/images/standard/icon_rglo.svg b/components/ILIAS/UI/resources/images/standard/icon_rglo.svg similarity index 100% rename from public/templates/default/images/standard/icon_rglo.svg rename to components/ILIAS/UI/resources/images/standard/icon_rglo.svg diff --git a/public/templates/default/images/standard/icon_rgrp.svg b/components/ILIAS/UI/resources/images/standard/icon_rgrp.svg similarity index 100% rename from public/templates/default/images/standard/icon_rgrp.svg rename to components/ILIAS/UI/resources/images/standard/icon_rgrp.svg diff --git a/public/templates/default/images/standard/icon_rlm.svg b/components/ILIAS/UI/resources/images/standard/icon_rlm.svg similarity index 100% rename from public/templates/default/images/standard/icon_rlm.svg rename to components/ILIAS/UI/resources/images/standard/icon_rlm.svg diff --git a/public/templates/default/images/standard/icon_role.svg b/components/ILIAS/UI/resources/images/standard/icon_role.svg similarity index 100% rename from public/templates/default/images/standard/icon_role.svg rename to components/ILIAS/UI/resources/images/standard/icon_role.svg diff --git a/public/templates/default/images/standard/icon_rolf.svg b/components/ILIAS/UI/resources/images/standard/icon_rolf.svg similarity index 100% rename from public/templates/default/images/standard/icon_rolf.svg rename to components/ILIAS/UI/resources/images/standard/icon_rolf.svg diff --git a/public/templates/default/images/standard/icon_rolt.svg b/components/ILIAS/UI/resources/images/standard/icon_rolt.svg similarity index 100% rename from public/templates/default/images/standard/icon_rolt.svg rename to components/ILIAS/UI/resources/images/standard/icon_rolt.svg diff --git a/public/templates/default/images/standard/icon_root.svg b/components/ILIAS/UI/resources/images/standard/icon_root.svg similarity index 100% rename from public/templates/default/images/standard/icon_root.svg rename to components/ILIAS/UI/resources/images/standard/icon_root.svg diff --git a/public/templates/default/images/standard/icon_rtst.svg b/components/ILIAS/UI/resources/images/standard/icon_rtst.svg similarity index 100% rename from public/templates/default/images/standard/icon_rtst.svg rename to components/ILIAS/UI/resources/images/standard/icon_rtst.svg diff --git a/public/templates/default/images/standard/icon_rwik.svg b/components/ILIAS/UI/resources/images/standard/icon_rwik.svg similarity index 100% rename from public/templates/default/images/standard/icon_rwik.svg rename to components/ILIAS/UI/resources/images/standard/icon_rwik.svg diff --git a/public/templates/default/images/standard/icon_safa.svg b/components/ILIAS/UI/resources/images/standard/icon_safa.svg similarity index 100% rename from public/templates/default/images/standard/icon_safa.svg rename to components/ILIAS/UI/resources/images/standard/icon_safa.svg diff --git a/public/templates/default/images/standard/icon_sahs.svg b/components/ILIAS/UI/resources/images/standard/icon_sahs.svg similarity index 100% rename from public/templates/default/images/standard/icon_sahs.svg rename to components/ILIAS/UI/resources/images/standard/icon_sahs.svg diff --git a/public/templates/default/images/standard/icon_sahs_offline.svg b/components/ILIAS/UI/resources/images/standard/icon_sahs_offline.svg similarity index 100% rename from public/templates/default/images/standard/icon_sahs_offline.svg rename to components/ILIAS/UI/resources/images/standard/icon_sahs_offline.svg diff --git a/public/templates/default/images/standard/icon_scat.svg b/components/ILIAS/UI/resources/images/standard/icon_scat.svg similarity index 100% rename from public/templates/default/images/standard/icon_scat.svg rename to components/ILIAS/UI/resources/images/standard/icon_scat.svg diff --git a/public/templates/default/images/standard/icon_scat_off.svg b/components/ILIAS/UI/resources/images/standard/icon_scat_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_scat_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_scat_off.svg diff --git a/public/templates/default/images/standard/icon_sco.svg b/components/ILIAS/UI/resources/images/standard/icon_sco.svg similarity index 100% rename from public/templates/default/images/standard/icon_sco.svg rename to components/ILIAS/UI/resources/images/standard/icon_sco.svg diff --git a/public/templates/default/images/standard/icon_scov.svg b/components/ILIAS/UI/resources/images/standard/icon_scov.svg similarity index 100% rename from public/templates/default/images/standard/icon_scov.svg rename to components/ILIAS/UI/resources/images/standard/icon_scov.svg diff --git a/public/templates/default/images/standard/icon_sctp.svg b/components/ILIAS/UI/resources/images/standard/icon_sctp.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctp.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctp.svg diff --git a/public/templates/default/images/standard/icon_sctp_off.svg b/components/ILIAS/UI/resources/images/standard/icon_sctp_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctp_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctp_off.svg diff --git a/public/templates/default/images/standard/icon_sctr.svg b/components/ILIAS/UI/resources/images/standard/icon_sctr.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctr.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctr.svg diff --git a/public/templates/default/images/standard/icon_sctr_off.svg b/components/ILIAS/UI/resources/images/standard/icon_sctr_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_sctr_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_sctr_off.svg diff --git a/public/templates/default/images/standard/icon_sea.svg b/components/ILIAS/UI/resources/images/standard/icon_sea.svg similarity index 100% rename from public/templates/default/images/standard/icon_sea.svg rename to components/ILIAS/UI/resources/images/standard/icon_sea.svg diff --git a/public/templates/default/images/standard/icon_seas.svg b/components/ILIAS/UI/resources/images/standard/icon_seas.svg similarity index 100% rename from public/templates/default/images/standard/icon_seas.svg rename to components/ILIAS/UI/resources/images/standard/icon_seas.svg diff --git a/public/templates/default/images/standard/icon_send.svg b/components/ILIAS/UI/resources/images/standard/icon_send.svg similarity index 100% rename from public/templates/default/images/standard/icon_send.svg rename to components/ILIAS/UI/resources/images/standard/icon_send.svg diff --git a/public/templates/default/images/standard/icon_sent.svg b/components/ILIAS/UI/resources/images/standard/icon_sent.svg similarity index 100% rename from public/templates/default/images/standard/icon_sent.svg rename to components/ILIAS/UI/resources/images/standard/icon_sent.svg diff --git a/public/templates/default/images/standard/icon_sess.svg b/components/ILIAS/UI/resources/images/standard/icon_sess.svg similarity index 100% rename from public/templates/default/images/standard/icon_sess.svg rename to components/ILIAS/UI/resources/images/standard/icon_sess.svg diff --git a/public/templates/default/images/standard/icon_skee.svg b/components/ILIAS/UI/resources/images/standard/icon_skee.svg similarity index 100% rename from public/templates/default/images/standard/icon_skee.svg rename to components/ILIAS/UI/resources/images/standard/icon_skee.svg diff --git a/public/templates/default/images/standard/icon_skll.svg b/components/ILIAS/UI/resources/images/standard/icon_skll.svg similarity index 100% rename from public/templates/default/images/standard/icon_skll.svg rename to components/ILIAS/UI/resources/images/standard/icon_skll.svg diff --git a/public/templates/default/images/standard/icon_skll_off.svg b/components/ILIAS/UI/resources/images/standard/icon_skll_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_skll_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_skll_off.svg diff --git a/public/templates/default/images/standard/icon_skmg.svg b/components/ILIAS/UI/resources/images/standard/icon_skmg.svg similarity index 100% rename from public/templates/default/images/standard/icon_skmg.svg rename to components/ILIAS/UI/resources/images/standard/icon_skmg.svg diff --git a/public/templates/default/images/standard/icon_skrt.svg b/components/ILIAS/UI/resources/images/standard/icon_skrt.svg similarity index 100% rename from public/templates/default/images/standard/icon_skrt.svg rename to components/ILIAS/UI/resources/images/standard/icon_skrt.svg diff --git a/public/templates/default/images/standard/icon_sktp.svg b/components/ILIAS/UI/resources/images/standard/icon_sktp.svg similarity index 100% rename from public/templates/default/images/standard/icon_sktp.svg rename to components/ILIAS/UI/resources/images/standard/icon_sktp.svg diff --git a/public/templates/default/images/standard/icon_sktr.svg b/components/ILIAS/UI/resources/images/standard/icon_sktr.svg similarity index 100% rename from public/templates/default/images/standard/icon_sktr.svg rename to components/ILIAS/UI/resources/images/standard/icon_sktr.svg diff --git a/public/templates/default/images/standard/icon_sktr_off.svg b/components/ILIAS/UI/resources/images/standard/icon_sktr_off.svg similarity index 100% rename from public/templates/default/images/standard/icon_sktr_off.svg rename to components/ILIAS/UI/resources/images/standard/icon_sktr_off.svg diff --git a/public/templates/default/images/standard/icon_slm_offline.svg b/components/ILIAS/UI/resources/images/standard/icon_slm_offline.svg similarity index 100% rename from public/templates/default/images/standard/icon_slm_offline.svg rename to components/ILIAS/UI/resources/images/standard/icon_slm_offline.svg diff --git a/public/templates/default/images/standard/icon_spl.svg b/components/ILIAS/UI/resources/images/standard/icon_spl.svg similarity index 100% rename from public/templates/default/images/standard/icon_spl.svg rename to components/ILIAS/UI/resources/images/standard/icon_spl.svg diff --git a/public/templates/default/images/standard/icon_src.svg b/components/ILIAS/UI/resources/images/standard/icon_src.svg similarity index 100% rename from public/templates/default/images/standard/icon_src.svg rename to components/ILIAS/UI/resources/images/standard/icon_src.svg diff --git a/public/templates/default/images/standard/icon_st.svg b/components/ILIAS/UI/resources/images/standard/icon_st.svg similarity index 100% rename from public/templates/default/images/standard/icon_st.svg rename to components/ILIAS/UI/resources/images/standard/icon_st.svg diff --git a/public/templates/default/images/standard/icon_stff.svg b/components/ILIAS/UI/resources/images/standard/icon_stff.svg similarity index 100% rename from public/templates/default/images/standard/icon_stff.svg rename to components/ILIAS/UI/resources/images/standard/icon_stff.svg diff --git a/public/templates/default/images/standard/icon_sty.svg b/components/ILIAS/UI/resources/images/standard/icon_sty.svg similarity index 100% rename from public/templates/default/images/standard/icon_sty.svg rename to components/ILIAS/UI/resources/images/standard/icon_sty.svg diff --git a/public/templates/default/images/standard/icon_stys.svg b/components/ILIAS/UI/resources/images/standard/icon_stys.svg similarity index 100% rename from public/templates/default/images/standard/icon_stys.svg rename to components/ILIAS/UI/resources/images/standard/icon_stys.svg diff --git a/public/templates/default/images/standard/icon_svy.svg b/components/ILIAS/UI/resources/images/standard/icon_svy.svg similarity index 100% rename from public/templates/default/images/standard/icon_svy.svg rename to components/ILIAS/UI/resources/images/standard/icon_svy.svg diff --git a/public/templates/default/images/standard/icon_svyf.svg b/components/ILIAS/UI/resources/images/standard/icon_svyf.svg similarity index 100% rename from public/templates/default/images/standard/icon_svyf.svg rename to components/ILIAS/UI/resources/images/standard/icon_svyf.svg diff --git a/public/templates/default/images/standard/icon_sysc.svg b/components/ILIAS/UI/resources/images/standard/icon_sysc.svg similarity index 100% rename from public/templates/default/images/standard/icon_sysc.svg rename to components/ILIAS/UI/resources/images/standard/icon_sysc.svg diff --git a/public/templates/default/images/standard/icon_tag.svg b/components/ILIAS/UI/resources/images/standard/icon_tag.svg similarity index 100% rename from public/templates/default/images/standard/icon_tag.svg rename to components/ILIAS/UI/resources/images/standard/icon_tag.svg diff --git a/public/templates/default/images/standard/icon_tags.svg b/components/ILIAS/UI/resources/images/standard/icon_tags.svg similarity index 100% rename from public/templates/default/images/standard/icon_tags.svg rename to components/ILIAS/UI/resources/images/standard/icon_tags.svg diff --git a/public/templates/default/images/standard/icon_tala.svg b/components/ILIAS/UI/resources/images/standard/icon_tala.svg similarity index 100% rename from public/templates/default/images/standard/icon_tala.svg rename to components/ILIAS/UI/resources/images/standard/icon_tala.svg diff --git a/public/templates/default/images/standard/icon_talt.svg b/components/ILIAS/UI/resources/images/standard/icon_talt.svg similarity index 100% rename from public/templates/default/images/standard/icon_talt.svg rename to components/ILIAS/UI/resources/images/standard/icon_talt.svg diff --git a/public/templates/default/images/standard/icon_task.svg b/components/ILIAS/UI/resources/images/standard/icon_task.svg similarity index 100% rename from public/templates/default/images/standard/icon_task.svg rename to components/ILIAS/UI/resources/images/standard/icon_task.svg diff --git a/public/templates/default/images/standard/icon_tax.svg b/components/ILIAS/UI/resources/images/standard/icon_tax.svg similarity index 100% rename from public/templates/default/images/standard/icon_tax.svg rename to components/ILIAS/UI/resources/images/standard/icon_tax.svg diff --git a/public/templates/default/images/standard/icon_taxn.svg b/components/ILIAS/UI/resources/images/standard/icon_taxn.svg similarity index 100% rename from public/templates/default/images/standard/icon_taxn.svg rename to components/ILIAS/UI/resources/images/standard/icon_taxn.svg diff --git a/public/templates/default/images/standard/icon_taxs.svg b/components/ILIAS/UI/resources/images/standard/icon_taxs.svg similarity index 100% rename from public/templates/default/images/standard/icon_taxs.svg rename to components/ILIAS/UI/resources/images/standard/icon_taxs.svg diff --git a/public/templates/default/images/standard/icon_time.svg b/components/ILIAS/UI/resources/images/standard/icon_time.svg similarity index 100% rename from public/templates/default/images/standard/icon_time.svg rename to components/ILIAS/UI/resources/images/standard/icon_time.svg diff --git a/public/templates/default/images/standard/icon_toc.svg b/components/ILIAS/UI/resources/images/standard/icon_toc.svg similarity index 100% rename from public/templates/default/images/standard/icon_toc.svg rename to components/ILIAS/UI/resources/images/standard/icon_toc.svg diff --git a/public/templates/default/images/standard/icon_tool.svg b/components/ILIAS/UI/resources/images/standard/icon_tool.svg similarity index 100% rename from public/templates/default/images/standard/icon_tool.svg rename to components/ILIAS/UI/resources/images/standard/icon_tool.svg diff --git a/public/templates/default/images/standard/icon_tos.svg b/components/ILIAS/UI/resources/images/standard/icon_tos.svg similarity index 100% rename from public/templates/default/images/standard/icon_tos.svg rename to components/ILIAS/UI/resources/images/standard/icon_tos.svg diff --git a/public/templates/default/images/standard/icon_trac.svg b/components/ILIAS/UI/resources/images/standard/icon_trac.svg similarity index 100% rename from public/templates/default/images/standard/icon_trac.svg rename to components/ILIAS/UI/resources/images/standard/icon_trac.svg diff --git a/public/templates/default/images/standard/icon_trash.svg b/components/ILIAS/UI/resources/images/standard/icon_trash.svg similarity index 100% rename from public/templates/default/images/standard/icon_trash.svg rename to components/ILIAS/UI/resources/images/standard/icon_trash.svg diff --git a/public/templates/default/images/standard/icon_tst.svg b/components/ILIAS/UI/resources/images/standard/icon_tst.svg similarity index 100% rename from public/templates/default/images/standard/icon_tst.svg rename to components/ILIAS/UI/resources/images/standard/icon_tst.svg diff --git a/public/templates/default/images/standard/icon_tstt.svg b/components/ILIAS/UI/resources/images/standard/icon_tstt.svg similarity index 100% rename from public/templates/default/images/standard/icon_tstt.svg rename to components/ILIAS/UI/resources/images/standard/icon_tstt.svg diff --git a/public/templates/default/images/standard/icon_tstv.svg b/components/ILIAS/UI/resources/images/standard/icon_tstv.svg similarity index 100% rename from public/templates/default/images/standard/icon_tstv.svg rename to components/ILIAS/UI/resources/images/standard/icon_tstv.svg diff --git a/public/templates/default/images/standard/icon_tt.svg b/components/ILIAS/UI/resources/images/standard/icon_tt.svg similarity index 100% rename from public/templates/default/images/standard/icon_tt.svg rename to components/ILIAS/UI/resources/images/standard/icon_tt.svg diff --git a/public/templates/default/images/standard/icon_unchecked.svg b/components/ILIAS/UI/resources/images/standard/icon_unchecked.svg similarity index 100% rename from public/templates/default/images/standard/icon_unchecked.svg rename to components/ILIAS/UI/resources/images/standard/icon_unchecked.svg diff --git a/public/templates/default/images/standard/icon_usr.svg b/components/ILIAS/UI/resources/images/standard/icon_usr.svg similarity index 100% rename from public/templates/default/images/standard/icon_usr.svg rename to components/ILIAS/UI/resources/images/standard/icon_usr.svg diff --git a/public/templates/default/images/standard/icon_usra.svg b/components/ILIAS/UI/resources/images/standard/icon_usra.svg similarity index 100% rename from public/templates/default/images/standard/icon_usra.svg rename to components/ILIAS/UI/resources/images/standard/icon_usra.svg diff --git a/public/templates/default/images/standard/icon_usrf.svg b/components/ILIAS/UI/resources/images/standard/icon_usrf.svg similarity index 100% rename from public/templates/default/images/standard/icon_usrf.svg rename to components/ILIAS/UI/resources/images/standard/icon_usrf.svg diff --git a/public/templates/default/images/standard/icon_wbdv.svg b/components/ILIAS/UI/resources/images/standard/icon_wbdv.svg similarity index 100% rename from public/templates/default/images/standard/icon_wbdv.svg rename to components/ILIAS/UI/resources/images/standard/icon_wbdv.svg diff --git a/public/templates/default/images/standard/icon_wbrs.svg b/components/ILIAS/UI/resources/images/standard/icon_wbrs.svg similarity index 100% rename from public/templates/default/images/standard/icon_wbrs.svg rename to components/ILIAS/UI/resources/images/standard/icon_wbrs.svg diff --git a/public/templates/default/images/standard/icon_webr.svg b/components/ILIAS/UI/resources/images/standard/icon_webr.svg similarity index 100% rename from public/templates/default/images/standard/icon_webr.svg rename to components/ILIAS/UI/resources/images/standard/icon_webr.svg diff --git a/public/templates/default/images/standard/icon_wfld.svg b/components/ILIAS/UI/resources/images/standard/icon_wfld.svg similarity index 100% rename from public/templates/default/images/standard/icon_wfld.svg rename to components/ILIAS/UI/resources/images/standard/icon_wfld.svg diff --git a/public/templates/default/images/standard/icon_wiki.svg b/components/ILIAS/UI/resources/images/standard/icon_wiki.svg similarity index 100% rename from public/templates/default/images/standard/icon_wiki.svg rename to components/ILIAS/UI/resources/images/standard/icon_wiki.svg diff --git a/public/templates/default/images/standard/icon_wikis.svg b/components/ILIAS/UI/resources/images/standard/icon_wikis.svg similarity index 100% rename from public/templates/default/images/standard/icon_wikis.svg rename to components/ILIAS/UI/resources/images/standard/icon_wikis.svg diff --git a/public/templates/default/images/standard/icon_wiks.svg b/components/ILIAS/UI/resources/images/standard/icon_wiks.svg similarity index 100% rename from public/templates/default/images/standard/icon_wiks.svg rename to components/ILIAS/UI/resources/images/standard/icon_wiks.svg diff --git a/public/templates/default/images/standard/icon_wksp.svg b/components/ILIAS/UI/resources/images/standard/icon_wksp.svg similarity index 100% rename from public/templates/default/images/standard/icon_wksp.svg rename to components/ILIAS/UI/resources/images/standard/icon_wksp.svg diff --git a/public/templates/default/images/standard/icon_wsrt.svg b/components/ILIAS/UI/resources/images/standard/icon_wsrt.svg similarity index 100% rename from public/templates/default/images/standard/icon_wsrt.svg rename to components/ILIAS/UI/resources/images/standard/icon_wsrt.svg diff --git a/public/templates/default/images/standard/icon_x.svg b/components/ILIAS/UI/resources/images/standard/icon_x.svg similarity index 100% rename from public/templates/default/images/standard/icon_x.svg rename to components/ILIAS/UI/resources/images/standard/icon_x.svg diff --git a/public/templates/default/images/standard/icon_xlet.svg b/components/ILIAS/UI/resources/images/standard/icon_xlet.svg similarity index 100% rename from public/templates/default/images/standard/icon_xlet.svg rename to components/ILIAS/UI/resources/images/standard/icon_xlet.svg diff --git a/public/components/ILIAS/UI/src/templates/js/Button/button.js b/components/ILIAS/UI/resources/js/Button/button.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Button/button.js rename to components/ILIAS/UI/resources/js/Button/button.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/dist/bar.js b/components/ILIAS/UI/resources/js/Chart/Bar/dist/bar.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/dist/bar.js rename to components/ILIAS/UI/resources/js/Chart/Bar/dist/bar.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/rollup.config.js b/components/ILIAS/UI/resources/js/Chart/Bar/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/rollup.config.js rename to components/ILIAS/UI/resources/js/Chart/Bar/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.horizontal.js b/components/ILIAS/UI/resources/js/Chart/Bar/src/bar.horizontal.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.horizontal.js rename to components/ILIAS/UI/resources/js/Chart/Bar/src/bar.horizontal.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.js b/components/ILIAS/UI/resources/js/Chart/Bar/src/bar.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.js rename to components/ILIAS/UI/resources/js/Chart/Bar/src/bar.js diff --git a/components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.vertical.js b/components/ILIAS/UI/resources/js/Chart/Bar/src/bar.vertical.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Chart/Bar/src/bar.vertical.js rename to components/ILIAS/UI/resources/js/Chart/Bar/src/bar.vertical.js diff --git a/public/components/ILIAS/UI/src/templates/js/Core/dist/core.js b/components/ILIAS/UI/resources/js/Core/dist/core.js old mode 100755 new mode 100644 similarity index 95% rename from public/components/ILIAS/UI/src/templates/js/Core/dist/core.js rename to components/ILIAS/UI/resources/js/Core/dist/core.js index 0c881b2a9411..18db788e5c04 --- a/public/components/ILIAS/UI/src/templates/js/Core/dist/core.js +++ b/components/ILIAS/UI/resources/js/Core/dist/core.js @@ -15,11 +15,6 @@ (function (il, $) { 'use strict'; - function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - - var il__default = /*#__PURE__*/_interopDefaultLegacy(il); - var $__default = /*#__PURE__*/_interopDefaultLegacy($); - /** * Replace a component or parts of a component using ajax call * @@ -59,6 +54,23 @@ }; /** + * This file is part of ILIAS, a powerful learning management system + * published by ILIAS open source e-Learning e.V. + * + * ILIAS is licensed with the GPL-3.0, + * see https://www.gnu.org/licenses/gpl-3.0.en.html + * You should have received a copy of said license along with the + * source code, too. + * + * If this is not the case or you just want to try ILIAS, you'll find + * us at: + * https://www.ilias.de + * https://github.com/ILIAS-eLearning + * + ******************************************************************** + */ + + /** * This represents one tooltip on the page. */ class Tooltip { @@ -375,6 +387,7 @@ ******************************************************************** */ + const URLBuilderUrlMaxLength = 2048; const URLBuilderSeparator = '_'; @@ -625,12 +638,13 @@ ******************************************************************** */ - il__default["default"].UI = il__default["default"].UI || {}; - il__default["default"].UI.core = il__default["default"].UI.core || {}; - il__default["default"].UI.core.replaceContent = replaceContent($__default["default"]); - il__default["default"].UI.core.Tooltip = Tooltip; - il__default["default"].UI.core.URLBuilder = URLBuilder; - il__default["default"].UI.core.URLBuilderToken = URLBuilderToken; + il.UI = il.UI || {}; + il.UI.core = il.UI.core || {}; + + il.UI.core.replaceContent = replaceContent($); + il.UI.core.Tooltip = Tooltip; + il.UI.core.URLBuilder = URLBuilder; + il.UI.core.URLBuilderToken = URLBuilderToken; })(il, $); diff --git a/components/ILIAS/UI/src/templates/js/Core/rollup.config.js b/components/ILIAS/UI/resources/js/Core/rollup.config.js similarity index 89% rename from components/ILIAS/UI/src/templates/js/Core/rollup.config.js rename to components/ILIAS/UI/resources/js/Core/rollup.config.js index 04a562cc0d13..5c378d221e98 100755 --- a/components/ILIAS/UI/src/templates/js/Core/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Core/rollup.config.js @@ -13,7 +13,7 @@ * https://github.com/ILIAS-eLearning */ -import copyright from '../../../../../CI/Copyright-Checker/copyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; export default { external: [ diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.Tooltip.js b/components/ILIAS/UI/resources/js/Core/src/core.Tooltip.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.Tooltip.js rename to components/ILIAS/UI/resources/js/Core/src/core.Tooltip.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilder.js b/components/ILIAS/UI/resources/js/Core/src/core.URLBuilder.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilder.js rename to components/ILIAS/UI/resources/js/Core/src/core.URLBuilder.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilderToken.js b/components/ILIAS/UI/resources/js/Core/src/core.URLBuilderToken.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.URLBuilderToken.js rename to components/ILIAS/UI/resources/js/Core/src/core.URLBuilderToken.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.js b/components/ILIAS/UI/resources/js/Core/src/core.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.js rename to components/ILIAS/UI/resources/js/Core/src/core.js diff --git a/components/ILIAS/UI/src/templates/js/Core/src/core.replaceContent.js b/components/ILIAS/UI/resources/js/Core/src/core.replaceContent.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Core/src/core.replaceContent.js rename to components/ILIAS/UI/resources/js/Core/src/core.replaceContent.js diff --git a/public/components/ILIAS/UI/src/templates/js/Counter/dist/counter.js b/components/ILIAS/UI/resources/js/Counter/dist/counter.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/Counter/dist/counter.js rename to components/ILIAS/UI/resources/js/Counter/dist/counter.js index 7063ef9b1b01..2c25814f492d --- a/public/components/ILIAS/UI/src/templates/js/Counter/dist/counter.js +++ b/components/ILIAS/UI/resources/js/Counter/dist/counter.js @@ -379,4 +379,4 @@ */ il.UI.counter = counterFactory($); -}()); +})(); diff --git a/components/ILIAS/UI/src/templates/js/Counter/rollup.config.js b/components/ILIAS/UI/resources/js/Counter/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Counter/rollup.config.js rename to components/ILIAS/UI/resources/js/Counter/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Counter/src/counter.js b/components/ILIAS/UI/resources/js/Counter/src/counter.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Counter/src/counter.js rename to components/ILIAS/UI/resources/js/Counter/src/counter.js diff --git a/components/ILIAS/UI/src/templates/js/Counter/src/counter.main.js b/components/ILIAS/UI/resources/js/Counter/src/counter.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Counter/src/counter.main.js rename to components/ILIAS/UI/resources/js/Counter/src/counter.main.js diff --git a/public/components/ILIAS/UI/src/templates/js/Dropdown/dropdown.js b/components/ILIAS/UI/resources/js/Dropdown/dropdown.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Dropdown/dropdown.js rename to components/ILIAS/UI/resources/js/Dropdown/dropdown.js diff --git a/public/components/ILIAS/UI/src/templates/js/Dropzone/File/dropzone.js b/components/ILIAS/UI/resources/js/Dropzone/File/dropzone.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Dropzone/File/dropzone.js rename to components/ILIAS/UI/resources/js/Dropzone/File/dropzone.js diff --git a/components/ILIAS/UI/resources/js/Image/dist/image.min.js b/components/ILIAS/UI/resources/js/Image/dist/image.min.js new file mode 100644 index 000000000000..5ad247cca8e2 --- /dev/null +++ b/components/ILIAS/UI/resources/js/Image/dist/image.min.js @@ -0,0 +1,15 @@ +/** + * This file is part of ILIAS, a powerful learning management system + * published by ILIAS open source e-Learning e.V. + * + * ILIAS is licensed with the GPL-3.0, + * see https://www.gnu.org/licenses/gpl-3.0.en.html + * You should have received a copy of said license along with the + * source code, too. + * + * If this is not the case or you just want to try ILIAS, you'll find + * us at: + * https://www.ilias.de + * https://github.com/ILIAS-eLearning + */ +!function(e,n){"use strict";e.UI=e.UI||{},e.UI.image=e.UI.image||{},e.UI.image.getImageElement=e=>function(e,n){const t=e.getElementById(n);return null===t?null:t instanceof e.defaultView.HTMLImageElement?t:t.querySelector("img")}(n,e),e.UI.image.loadHighResolutionSource=function(e,n){const t=function(e,n){let t=null,l=null;return e.forEach(((e,i)=>{i<=n&&i>l&&(l=i,t=e)})),t}(n,e.width);if(null!==t){const n=e.cloneNode();n.addEventListener("load",(()=>{e.replaceWith(n)})),n.src=t}}}(il,document); diff --git a/components/ILIAS/UI/src/templates/js/Image/rollup.config.js b/components/ILIAS/UI/resources/js/Image/rollup.config.js similarity index 83% rename from components/ILIAS/UI/src/templates/js/Image/rollup.config.js rename to components/ILIAS/UI/resources/js/Image/rollup.config.js index d2a13a8fa333..f4cffabad2c4 100755 --- a/components/ILIAS/UI/src/templates/js/Image/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Image/rollup.config.js @@ -14,8 +14,8 @@ */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../CI/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../CI/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default { external: [ diff --git a/components/ILIAS/UI/src/templates/js/Image/src/getImageElement.js b/components/ILIAS/UI/resources/js/Image/src/getImageElement.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Image/src/getImageElement.js rename to components/ILIAS/UI/resources/js/Image/src/getImageElement.js diff --git a/components/ILIAS/UI/src/templates/js/Image/src/image.js b/components/ILIAS/UI/resources/js/Image/src/image.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Image/src/image.js rename to components/ILIAS/UI/resources/js/Image/src/image.js diff --git a/components/ILIAS/UI/src/templates/js/Image/src/loadHighResolutionSource.js b/components/ILIAS/UI/resources/js/Image/src/loadHighResolutionSource.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Image/src/loadHighResolutionSource.js rename to components/ILIAS/UI/resources/js/Image/src/loadHighResolutionSource.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/dist/filter.js b/components/ILIAS/UI/resources/js/Input/Container/dist/filter.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/dist/filter.js rename to components/ILIAS/UI/resources/js/Input/Container/dist/filter.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/rollup.config.js b/components/ILIAS/UI/resources/js/Input/Container/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/rollup.config.js rename to components/ILIAS/UI/resources/js/Input/Container/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/src/filter.js b/components/ILIAS/UI/resources/js/Input/Container/src/filter.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/src/filter.js rename to components/ILIAS/UI/resources/js/Input/Container/src/filter.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Container/src/filter.main.js b/components/ILIAS/UI/resources/js/Input/Container/src/filter.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Container/src/filter.main.js rename to components/ILIAS/UI/resources/js/Input/Container/src/filter.main.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js b/components/ILIAS/UI/resources/js/Input/Field/dist/input.factory.min.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js rename to components/ILIAS/UI/resources/js/Input/Field/dist/input.factory.min.js index 791f9b2183db..283584afd168 --- a/public/components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js +++ b/components/ILIAS/UI/resources/js/Input/Field/dist/input.factory.min.js @@ -924,6 +924,7 @@ class MarkdownFactory { * other and are bundled into separate files. */ + var il = il || {}; il.UI = il.UI || {}; il.UI.Input = il.UI.Input || {}; diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/dynamic_inputs_renderer.js b/components/ILIAS/UI/resources/js/Input/Field/dynamic_inputs_renderer.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/dynamic_inputs_renderer.js rename to components/ILIAS/UI/resources/js/Input/Field/dynamic_inputs_renderer.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/file.js b/components/ILIAS/UI/resources/js/Input/Field/file.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/file.js rename to components/ILIAS/UI/resources/js/Input/Field/file.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/groups.js b/components/ILIAS/UI/resources/js/Input/Field/groups.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/groups.js rename to components/ILIAS/UI/resources/js/Input/Field/groups.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/input.js b/components/ILIAS/UI/resources/js/Input/Field/input.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/input.js rename to components/ILIAS/UI/resources/js/Input/Field/input.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/rollup.config.js b/components/ILIAS/UI/resources/js/Input/Field/rollup.config.js similarity index 55% rename from components/ILIAS/UI/src/templates/js/Input/Field/rollup.config.js rename to components/ILIAS/UI/resources/js/Input/Field/rollup.config.js index 4e523fdee19d..0086b65aac55 100755 --- a/components/ILIAS/UI/src/templates/js/Input/Field/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Input/Field/rollup.config.js @@ -1,10 +1,7 @@ -import {terser} from "rollup-plugin-terser"; - export default { input: './src/input.factory.js', output: { file: './dist/input.factory.min.js', - format: 'es', - // plugins: [terser()], + format: 'es' }, }; diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.class.js b/components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.class.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.class.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.factory.js b/components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/markdown.factory.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Markdown/markdown.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/preview.renderer.js b/components/ILIAS/UI/resources/js/Input/Field/src/Markdown/preview.renderer.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Markdown/preview.renderer.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Markdown/preview.renderer.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.class.js b/components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.class.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.class.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.factory.js b/components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/Textarea/textarea.factory.js rename to components/ILIAS/UI/resources/js/Input/Field/src/Textarea/textarea.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Input/Field/src/input.factory.js b/components/ILIAS/UI/resources/js/Input/Field/src/input.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Input/Field/src/input.factory.js rename to components/ILIAS/UI/resources/js/Input/Field/src/input.factory.js diff --git a/public/components/ILIAS/UI/src/templates/js/Input/Field/tagInput.js b/components/ILIAS/UI/resources/js/Input/Field/tagInput.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Input/Field/tagInput.js rename to components/ILIAS/UI/resources/js/Input/Field/tagInput.js diff --git a/components/ILIAS/UI/src/templates/js/Item/dist/notification.js b/components/ILIAS/UI/resources/js/Item/dist/notification.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/dist/notification.js rename to components/ILIAS/UI/resources/js/Item/dist/notification.js diff --git a/components/ILIAS/UI/src/templates/js/Item/rollup.config.js b/components/ILIAS/UI/resources/js/Item/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/rollup.config.js rename to components/ILIAS/UI/resources/js/Item/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Item/src/notification.js b/components/ILIAS/UI/resources/js/Item/src/notification.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/src/notification.js rename to components/ILIAS/UI/resources/js/Item/src/notification.js diff --git a/components/ILIAS/UI/src/templates/js/Item/src/notification.main.js b/components/ILIAS/UI/resources/js/Item/src/notification.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Item/src/notification.main.js rename to components/ILIAS/UI/resources/js/Item/src/notification.main.js diff --git a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js b/components/ILIAS/UI/resources/js/MainControls/dist/mainbar.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js rename to components/ILIAS/UI/resources/js/MainControls/dist/mainbar.js index a829bc0c1ceb..4d5fd5702da8 --- a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js +++ b/components/ILIAS/UI/resources/js/MainControls/dist/mainbar.js @@ -438,8 +438,8 @@ var model = function() { if(!state.entries[entry_id]) { //tools return true; } - var hops = entry_id.split(':'), - entries = state.entries; + var hops = entry_id.split(':'); + state.entries; while (hops.length > 1) { entry_id = hops.join(':'); if(!state.entries[entry_id].engaged) { diff --git a/components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js b/components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js new file mode 100644 index 000000000000..6db53062af85 --- /dev/null +++ b/components/ILIAS/UI/resources/js/MainControls/dist/maincontrols.min.js @@ -0,0 +1,15 @@ +/** + * This file is part of ILIAS, a powerful learning management system + * published by ILIAS open source e-Learning e.V. + * + * ILIAS is licensed with the GPL-3.0, + * see https://www.gnu.org/licenses/gpl-3.0.en.html + * You should have received a copy of said license along with the + * source code, too. + * + * If this is not the case or you just want to try ILIAS, you'll find + * us at: + * https://www.ilias.de + * https://github.com/ILIAS-eLearning + */ +!function(t,e){"use strict";const n="engaged",s="il-maincontrols-metabar",a="il-metabar-slates",i="il-metabar-more-button",o="il-metabar-more-slate",r="il-maincontrols-slate";function l(t){t.removeClass(n),t.attr("aria-expanded",!1)}class c{#t;#e;#n;#s;#a;#i;#o;constructor(t,e,n,s,a,i){this.#t=t,this.#e=e,this.#s=n,this.#a=s,this.#i=a,this.#o=i}registerSignals(t,e){this.#t(document).on(t,((t,e)=>(this.#r(t,e),this.#s()&&this.#i(),!1))),this.#t(document).on(e,(()=>(this.onClickDisengageAll(),!1))),this.#t(`.${s}`).on("click",(()=>{this.#n=!0})),this.#t("body").on("click",(()=>{this.#n?this.#n=!1:this.onClickDisengageAll()})),this.#t(`.${a} > .${r}`).on("focusout",(t=>{if(!this.#s()){const e=t.relatedTarget,n=t.currentTarget;this.#t.contains(n,e)||this.onClickDisengageAll()}}))}#r(t,e){const s=e.triggerer;!function(t){return t.hasClass(n)}(s)?(this.disengageAllSlates(),this.disengageAllButtons(),0===s.parents(`.${o}`).length&&function(t){t.addClass(n),t.attr("aria-expanded",!0)}(s)):l(s)}onClickDisengageAll(){this.disengageAllButtons(),this.disengageAllSlates()}disengageAllButtons(){this.#t(`#${this.#e}.${s}`).children("li").children(`.btn.${n}`).each(((t,e)=>{l(this.#t(e))}))}disengageAllSlates(){this.getEngagedSlates().each(((t,e)=>{this.#o(this.#t(e))}))}disengageAll(){this.disengageAllSlates(),this.disengageAllButtons()}getEngagedSlates(){const t=`#${this.#e} .${r}.engaged`;return this.#t(t)}init(){this.#l(),this.#c(),this.#s()?this.#u():this.#h(),this.#t(`.${s}`).css("visibility","visible"),this.#t(`#${this.#e} .${a}`).children(`.${r}`).attr("aria-hidden",!0)}#u(){this.#g(),this.#d().hide(),this.getMoreButton().show(),this.#y()}#h(){this.getMoreButton().hide(),this.#d().show()}#l(){if(0===this.getMoreButton().length){const t=this.#t(`#${this.#e}.${s}`).find(".btn, .il-link").last();this.#t(t).addClass(i)}}#c(){if(0===this.#S().length){const t=this.#t(`#${this.#e} .${a}`).children(`.${r}`).last();this.#t(t).addClass(o)}}getMoreButton(){return this.#t(`.${i}`)}#S(){return this.#t(`.${o}`)}#d(){return this.#t(`#${this.#e}.${s}`).children("li").children(".btn, .il-link").not(`.${i}`)}#g(){const t=this.#S().children(".il-maincontrols-slate-content");0===t.children().length&&this.#d().clone(!0,!0).appendTo(t)}#y(){const t=this.#a.getCounterObjectOrNull(this.#S());t&&this.#a.getCounterObject(this.getMoreButton()).setNoveltyTo(t.getNoveltyCount()).setStatusTo(t.getStatusCount())}}const u="engaged",h="disengaged";function g(t){return t.hasClass(u)}function d(t){t.removeClass(h),t.addClass(u),t.attr("aria-expanded","true"),t.attr("aria-hidden","false")}function y(t){t.removeClass(u),t.addClass(h),t.attr("aria-expanded","false"),t.attr("aria-hidden","true")}function S(t){g(t)?y(t):d(t)}var m=function(t){var e="il-counter",n={getCounterObject:function(t){let e;return e=s(t),console.assert(e.length>0,"Passed jQuery Object does not contain a counter"),a(e)},getCounterObjectOrNull:function(t){let e;return e=s(t),0===e.length?null:a(e)}},s=function(n){console.assert(n instanceof t,"$object_containing_counter is not a jQuery Object, param: "+n);var s=n;return n.hasClass(e)||(s=n.find("."+e)),s},a=function(e){return b.bind({})(e,t)};return n},b=function(t,e){const n=" Counter does not exist in the DOM. Make sure the respective Counter type has been rendered before applying this operations.",s=" is not a number";this.getStatusCount=function(){return r(o(t))},this.getNoveltyCount=function(){return r(i(t))},this.hasNoveltyObject=function(){return i(t).length>0},this.hasStatusObject=function(){return o(t).length>0},this.setNoveltyTo=function(e){console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s);var a=i(t);return a.html(e),0===e?a.hide():a.show(),this},this.setStatusTo=function(e){console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s);var a=o(t);return a.html(e),0===e?a.hide():a.show(),this},this.incrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()+e)}),t),this},this.decrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()-e)}),t),this},this.incrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()+e)}),t),this},this.decrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()-e)}),t),this},this.setTotalNoveltyToStatusCount=function(){return console.assert(this.hasStatusObject(),"Status "+n),console.assert(this.hasNoveltyObject(),"Novelty "+n),this.incrementStatusCount(this.getNoveltyCount()).setNoveltyTo(0)};var a={getNoveltyCount:this.getNoveltyCount,getStatusCount:this.getStatusCount,hasNoveltyObject:this.hasNoveltyObject,hasStatusObject:this.hasStatusObject,setNoveltyTo:this.setNoveltyTo,setStatusTo:this.setStatusTo,incrementNoveltyCount:this.incrementNoveltyCount,decrementNoveltyCount:this.decrementNoveltyCount,incrementStatusCount:this.incrementStatusCount,decrementStatusCount:this.decrementStatusCount,setTotalNoveltyToStatusCount:this.setTotalNoveltyToStatusCount},i=function(t){return t.find(".il-counter-novelty")},o=function(t){return t.find(".il-counter-status")},r=function(t){var n=0;return t.each((function(){var t=e(this).text();n+=parseInt(t)})),n},l=function(t,n){n.each((function(){var n=m(e).getCounterObject(e(this));t(n,e(this))}))};return a};t.UI=t.UI||{},t.UI.maincontrols=t.UI.maincontrols||{},t.UI.maincontrols.metabar=new class{#t;#m=[];#s;#a;#i;#o;constructor(t,e,n,s,a){this.#t=t,this.#s=e,this.#a=n,this.#i=s,this.#o=a}init(t){if(void 0!==this.#m[t])throw new Error(`Metabar with id '${t}' has already been initialized.`);this.#m[t]=new c(this.#t,t,this.#s,this.#a,this.#i,this.#o)}get(t){return this.#m[t]??null}disengageAll(){Object.values(this.#m).forEach((t=>t.disengageAll()))}}(e,t.UI.page.isSmallScreen,m(e),(()=>t.UI.maincontrols.mainbar.disengageAll()),(e=>t.UI.maincontrols.slate.disengage(e))),t.UI.maincontrols.slate=new class{#t;#b;#f;constructor(t,e,n){this.#t=t,this.#b=e,this.#f=n}onSignal(t,e,n,s){const a=this.#t(`#${s}`),{triggerer:i}=n,o=i.parents(".il-metabar-more-slate").length>0;if("toggle"===t)this.#C(a,i,o);else if("engage"===t)d(a);else{if("replace"!==t)throw new Error(`No such SignalType: ${t}`);this.#p(s,n)}}#C(t,e,n){const s=t.closest(".il-maincontrols-metabar").attr("id"),a=this.#f.get(s);e.attr("id")!==a.getMoreButton().attr("id")?(S(t),n||(g(t)?(e.addClass(u),e.removeClass(h),t.trigger("in_view")):(e.removeClass(u),e.addClass(h)))):a.getEngagedSlates().length>0?a.disengageAllSlates():S(t)}disengage=y;#p(t,e){const{url:n}=e.options;this.#b(t,n,"content")}}(e,function(t){return function(e,n,s){t.ajax({url:n,dataType:"html"}).done((function(n){var a=t("
    "+n+"
    "),i=a.find("[data-replace-marker='"+s+"']").first();0==i.length?t("#"+e+" [data-replace-marker='"+s+"']").html(n):(t("#"+e+" [data-replace-marker='"+s+"']").first().replaceWith(i),t("#"+e+" [data-replace-marker='"+s+"']").first().after(a.find("[data-replace-marker='script']")))}))}}(e),t.UI.maincontrols.metabar)}(il,$); diff --git a/components/ILIAS/UI/src/templates/js/MainControls/rollup.config.js b/components/ILIAS/UI/resources/js/MainControls/rollup.config.js similarity index 86% rename from components/ILIAS/UI/src/templates/js/MainControls/rollup.config.js rename to components/ILIAS/UI/resources/js/MainControls/rollup.config.js index 4fdbcdfa686b..15aa4c1f47f4 100755 --- a/components/ILIAS/UI/src/templates/js/MainControls/rollup.config.js +++ b/components/ILIAS/UI/resources/js/MainControls/rollup.config.js @@ -15,8 +15,8 @@ ******************************************************************** */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../CI/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../CI/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default [ { diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.main.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.main.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.main.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.model.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.model.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.model.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.model.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.persistence.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.persistence.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.persistence.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.persistence.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.renderer.js b/components/ILIAS/UI/resources/js/MainControls/src/mainbar.renderer.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/mainbar.renderer.js rename to components/ILIAS/UI/resources/js/MainControls/src/mainbar.renderer.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/maincontrols.js b/components/ILIAS/UI/resources/js/MainControls/src/maincontrols.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/maincontrols.js rename to components/ILIAS/UI/resources/js/MainControls/src/maincontrols.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/metabar.class.js b/components/ILIAS/UI/resources/js/MainControls/src/metabar.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/metabar.class.js rename to components/ILIAS/UI/resources/js/MainControls/src/metabar.class.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/metabar.factory.js b/components/ILIAS/UI/resources/js/MainControls/src/metabar.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/metabar.factory.js rename to components/ILIAS/UI/resources/js/MainControls/src/metabar.factory.js diff --git a/components/ILIAS/UI/src/templates/js/MainControls/src/slate.class.js b/components/ILIAS/UI/resources/js/MainControls/src/slate.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/MainControls/src/slate.class.js rename to components/ILIAS/UI/resources/js/MainControls/src/slate.class.js diff --git a/public/components/ILIAS/UI/src/templates/js/MainControls/system_info.js b/components/ILIAS/UI/resources/js/MainControls/system_info.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/MainControls/system_info.js rename to components/ILIAS/UI/resources/js/MainControls/system_info.js diff --git a/public/components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js b/components/ILIAS/UI/resources/js/Menu/dist/drilldown.js old mode 100755 new mode 100644 similarity index 99% rename from public/components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js rename to components/ILIAS/UI/resources/js/Menu/dist/drilldown.js index 86df853dc8bc..acfae9df5fd9 --- a/public/components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js +++ b/components/ILIAS/UI/resources/js/Menu/dist/drilldown.js @@ -271,4 +271,4 @@ dd ); -}()); +})(); diff --git a/components/ILIAS/UI/src/templates/js/Menu/rollup.config.js b/components/ILIAS/UI/resources/js/Menu/rollup.config.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/rollup.config.js rename to components/ILIAS/UI/resources/js/Menu/rollup.config.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.instances.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.instances.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.instances.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.instances.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.main.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.main.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.main.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.main.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.mapping.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.mapping.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.mapping.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.mapping.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.model.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.model.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.model.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.model.js diff --git a/components/ILIAS/UI/src/templates/js/Menu/src/drilldown.persistence.js b/components/ILIAS/UI/resources/js/Menu/src/drilldown.persistence.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Menu/src/drilldown.persistence.js rename to components/ILIAS/UI/resources/js/Menu/src/drilldown.persistence.js diff --git a/public/components/ILIAS/UI/src/templates/js/Modal/modal.js b/components/ILIAS/UI/resources/js/Modal/modal.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Modal/modal.js rename to components/ILIAS/UI/resources/js/Modal/modal.js diff --git a/public/components/ILIAS/UI/src/templates/js/Page/stdpage.js b/components/ILIAS/UI/resources/js/Page/stdpage.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Page/stdpage.js rename to components/ILIAS/UI/resources/js/Page/stdpage.js diff --git a/components/ILIAS/UI/src/templates/js/Popover/popover.js b/components/ILIAS/UI/resources/js/Popover/popover.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Popover/popover.js rename to components/ILIAS/UI/resources/js/Popover/popover.js diff --git a/public/components/ILIAS/UI/src/templates/js/Table/table.min.js b/components/ILIAS/UI/resources/js/Table/dist/table.min.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Table/table.min.js rename to components/ILIAS/UI/resources/js/Table/dist/table.min.js diff --git a/components/ILIAS/UI/src/templates/js/Table/rollup.config.js b/components/ILIAS/UI/resources/js/Table/rollup.config.js similarity index 76% rename from components/ILIAS/UI/src/templates/js/Table/rollup.config.js rename to components/ILIAS/UI/resources/js/Table/rollup.config.js index 1d050d679190..bb2138fe319a 100755 --- a/components/ILIAS/UI/src/templates/js/Table/rollup.config.js +++ b/components/ILIAS/UI/resources/js/Table/rollup.config.js @@ -15,13 +15,13 @@ ******************************************************************** */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../../../scripts/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../../../scripts/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default { input: './src/table.js', output: { - file: '../../../../../../../public/components/ILIAS/UI/src/templates/js/Table/table.min.js', + file: './dist/table.min.js', format: 'iife', banner: copyright, plugins: [ diff --git a/components/ILIAS/UI/src/templates/js/Table/src/datatable.class.js b/components/ILIAS/UI/resources/js/Table/src/datatable.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/datatable.class.js rename to components/ILIAS/UI/resources/js/Table/src/datatable.class.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/datatable.factory.js b/components/ILIAS/UI/resources/js/Table/src/datatable.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/datatable.factory.js rename to components/ILIAS/UI/resources/js/Table/src/datatable.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/presentationtable.class.js b/components/ILIAS/UI/resources/js/Table/src/presentationtable.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/presentationtable.class.js rename to components/ILIAS/UI/resources/js/Table/src/presentationtable.class.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/presentationtable.factory.js b/components/ILIAS/UI/resources/js/Table/src/presentationtable.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/presentationtable.factory.js rename to components/ILIAS/UI/resources/js/Table/src/presentationtable.factory.js diff --git a/components/ILIAS/UI/src/templates/js/Table/src/table.js b/components/ILIAS/UI/resources/js/Table/src/table.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Table/src/table.js rename to components/ILIAS/UI/resources/js/Table/src/table.js diff --git a/public/components/ILIAS/UI/src/templates/js/Toast/toast.js b/components/ILIAS/UI/resources/js/Toast/toast.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/Toast/toast.js rename to components/ILIAS/UI/resources/js/Toast/toast.js diff --git a/components/ILIAS/UI/src/templates/js/Tree/tree.js b/components/ILIAS/UI/resources/js/Tree/tree.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/Tree/tree.js rename to components/ILIAS/UI/resources/js/Tree/tree.js diff --git a/public/components/ILIAS/UI/src/templates/js/ViewControl/viewcontrols.min.js b/components/ILIAS/UI/resources/js/ViewControl/dist/viewcontrols.min.js similarity index 100% rename from public/components/ILIAS/UI/src/templates/js/ViewControl/viewcontrols.min.js rename to components/ILIAS/UI/resources/js/ViewControl/dist/viewcontrols.min.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/rollup.config.js b/components/ILIAS/UI/resources/js/ViewControl/rollup.config.js similarity index 75% rename from components/ILIAS/UI/src/templates/js/ViewControl/rollup.config.js rename to components/ILIAS/UI/resources/js/ViewControl/rollup.config.js index 051716cd2dbc..ec8cdde48db4 100644 --- a/components/ILIAS/UI/src/templates/js/ViewControl/rollup.config.js +++ b/components/ILIAS/UI/resources/js/ViewControl/rollup.config.js @@ -15,13 +15,13 @@ ******************************************************************** */ import terser from '@rollup/plugin-terser'; -import copyright from '../../../../../../../scripts/Copyright-Checker/copyright'; -import preserveCopyright from '../../../../../../../scripts/Copyright-Checker/preserveCopyright'; +import copyright from '../../../../../../scripts/Copyright-Checker/copyright'; +import preserveCopyright from '../../../../../../scripts/Copyright-Checker/preserveCopyright'; export default { input: './src/viewcontrols.js', output: { - file: '../../../../../../../public/components/ILIAS/UI/src/templates/js/ViewControl/viewcontrols.min.js', + file: './dist/viewcontrols.min.js', format: 'iife', banner: copyright, plugins: [ diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/jqueryeventdispatcher.js b/components/ILIAS/UI/resources/js/ViewControl/src/jqueryeventdispatcher.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/jqueryeventdispatcher.js rename to components/ILIAS/UI/resources/js/ViewControl/src/jqueryeventdispatcher.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.class.js b/components/ILIAS/UI/resources/js/ViewControl/src/pagination.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.class.js rename to components/ILIAS/UI/resources/js/ViewControl/src/pagination.class.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.factory.js b/components/ILIAS/UI/resources/js/ViewControl/src/pagination.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/pagination.factory.js rename to components/ILIAS/UI/resources/js/ViewControl/src/pagination.factory.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.class.js b/components/ILIAS/UI/resources/js/ViewControl/src/sortation.class.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.class.js rename to components/ILIAS/UI/resources/js/ViewControl/src/sortation.class.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.factory.js b/components/ILIAS/UI/resources/js/ViewControl/src/sortation.factory.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/sortation.factory.js rename to components/ILIAS/UI/resources/js/ViewControl/src/sortation.factory.js diff --git a/components/ILIAS/UI/src/templates/js/ViewControl/src/viewcontrols.js b/components/ILIAS/UI/resources/js/ViewControl/src/viewcontrols.js similarity index 100% rename from components/ILIAS/UI/src/templates/js/ViewControl/src/viewcontrols.js rename to components/ILIAS/UI/resources/js/ViewControl/src/viewcontrols.js diff --git a/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php index ce77be110a76..fb7a711e6aac 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Button/Renderer.php @@ -101,7 +101,7 @@ protected function renderButton(Component\Button\Button $component, RendererInte } if ($component instanceof Component\Button\LoadingAnimationOnClick && $component->hasLoadingAnimationOnClick()) { - $component = $component->withAdditionalOnLoadCode(fn ($id) => "$('#$id').click(function(e) { il.UI.button.activateLoadingAnimation('$id')});"); + $component = $component->withAdditionalOnLoadCode(fn($id) => "$('#$id').click(function(e) { il.UI.button.activateLoadingAnimation('$id')});"); } } else { $tpl->touchBlock("disabled"); @@ -164,9 +164,9 @@ protected function renderButton(Component\Button\Button $component, RendererInte public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Button/button.js'); - $registry->register("./node_modules/moment/min/moment-with-locales.min.js"); - $registry->register("./node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"); + $registry->register('assets/js/button.js'); + $registry->register("./assets/js/moment-with-locales.min.js"); + $registry->register("./assets/js/bootstrap-datetimepicker.min.js"); } protected function renderClose(Component\Button\Close $component): string @@ -221,7 +221,7 @@ protected function renderToggle(Component\Button\Toggle $component): string } if ($component->isActive()) { - $component = $component->withAdditionalOnLoadCode(fn ($id) => "$('#$id').on('click', function(event) { + $component = $component->withAdditionalOnLoadCode(fn($id) => "$('#$id').on('click', function(event) { il.UI.button.handleToggleClick(event, '$id', '$on_url', '$off_url', $signals); return false; // stop event propagation });"); @@ -298,7 +298,7 @@ protected function renderMonth(Component\Button\Month $component): string } $tpl->setVariable("LANG", $lang_key); - $component = $component->withAdditionalOnLoadCode(fn ($id) => "il.UI.button.initMonth('$id');"); + $component = $component->withAdditionalOnLoadCode(fn($id) => "il.UI.button.initMonth('$id');"); $id = $this->bindJavaScript($component); $tpl->setVariable("ID", $id); diff --git a/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php index e4b5f537c87f..a7e08351130b 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Chart/Bar/Renderer.php @@ -417,7 +417,7 @@ public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); $registry->register('./node_modules/chart.js/dist/chart.min.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Chart/Bar/dist/bar.js'); + $registry->register('assets/js/bar.js'); } protected function getComponentInterfaceName(): array diff --git a/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php index e550a4c8b8f2..68dc9a200a8a 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Counter/Renderer.php @@ -50,7 +50,7 @@ public function render(Component\Component $component, RendererInterface $defaul public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Counter/dist/counter.js'); + $registry->register('assets/js/counter.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php index f98b46280c47..00d2770d3038 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Dropdown/Renderer.php @@ -98,7 +98,7 @@ protected function renderId( $id = $this->createId(); } $tpl->setVariable("ID", $id); - $tpl->setVariable("ID_MENU", $id."_menu"); + $tpl->setVariable("ID_MENU", $id . "_menu"); } @@ -108,7 +108,7 @@ protected function renderId( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Dropdown/dropdown.js'); + $registry->register('assets/js/dropdown.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php index 918c925aac0b..f2812fdda514 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Dropzone/File/Renderer.php @@ -50,7 +50,7 @@ public function render(Component $component, RenderInterface $default_renderer): public function registerResources(ResourceRegistry $registry): void { - $registry->register("./components/ILIAS/UI/src/templates/js/Dropzone/File/dropzone.js"); + $registry->register("assets/js/dropzone.js"); parent::registerResources($registry); } diff --git a/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php index 95e11d3d8fab..86aec551af7e 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Image/Renderer.php @@ -107,7 +107,7 @@ protected function getComponentInterfaceName(): array public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Image/dist/image.min.js'); + $registry->register('assets/js/image.min.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php b/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php index 453d5737919b..fe70e3cde82c 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/FilterContextRenderer.php @@ -294,9 +294,9 @@ protected function renderMultiSelectField(F\MultiSelect $component, RendererInte public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Container/dist/filter.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/input.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/groups.js'); + $registry->register('assets/js/filter.js'); + $registry->register('assets/js/input.js'); + $registry->register('assets/js/groups.js'); } protected function setSignals(FilterInput $input): FilterInput diff --git a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php index 5785da5cf320..f9c43d2cde3d 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php @@ -832,16 +832,16 @@ protected function renderHiddenField(F\Hidden $input): string public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./node_modules/@yaireo/tagify/dist/tagify.min.js'); - $registry->register('./node_modules/@yaireo/tagify/dist/tagify.css'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/tagInput.js'); - - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/input.js'); - $registry->register('./node_modules/dropzone/dist/dropzone.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/file.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/groups.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/dynamic_inputs_renderer.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/dist/input.factory.min.js'); + $registry->register('assets/js/tagify.min.js'); + $registry->register('assets/css/tagify.css'); + $registry->register('assets/js/tagInput.js'); + + $registry->register('assets/js/input.js'); + $registry->register('assets/js/dropzone.js'); + $registry->register('assets/js/file.js'); + $registry->register('assets/js/groups.js'); + $registry->register('assets/js/dynamic_inputs_renderer.js'); + $registry->register('assets/js/input.factory.min.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php index 2ccadab9b4b9..3824b7c60370 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Item/Renderer.php @@ -363,7 +363,7 @@ protected function renderProperties(Item $component, RendererInterface $default_ public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Item/dist/notification.js'); + $registry->register('assets/js/notification.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php index 64766013cd62..46f736b02058 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Layout/Page/Renderer.php @@ -170,7 +170,7 @@ protected function setHeaderVars(Template $tpl, bool $for_ui_demo = false): Temp if ($for_ui_demo) { $additional_js_files = [ iljQueryUtil::getLocaljQueryPath(), - './components/ILIAS/JavaScript/js/Basic.js', + 'assets/js/Basic.js', ilUIFramework::BOOTSTRAP_JS, './node_modules/jquery-migrate/jquery-migrate.min.js', ]; @@ -203,7 +203,7 @@ protected function setHeaderVars(Template $tpl, bool $for_ui_demo = false): Temp public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Page/stdpage.js'); + $registry->register('assets/js/stdpage.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php index b9a5fe9a7db0..3fd7fdc80f33 100755 --- a/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/MainControls/Renderer.php @@ -456,10 +456,10 @@ protected function renderFooter(Footer $component, RendererInterface $default_re public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/dist/mainbar.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js'); - $registry->register('./components/ILIAS/GlobalScreen/src/Client/dist/GS.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/system_info.js'); + $registry->register('assets/js/mainbar.js'); + $registry->register('assets/js/maincontrols.min.js'); + $registry->register('assets/js/GS.js'); + $registry->register('assets/js/system_info.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php index 6e312026148a..5ad5d1c7a21b 100755 --- a/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/MainControls/Slate/Renderer.php @@ -174,7 +174,7 @@ protected function renderNotificationSlate( public function registerResources(\ILIAS\UI\Implementation\Render\ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js'); + $registry->register('assets/js/maincontrols.min.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php index 5e27692bb86f..a5e9511a2dc9 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Menu/Renderer.php @@ -107,7 +107,7 @@ protected function renderMenu( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Menu/dist/drilldown.js'); + $registry->register('assets/js/drilldown.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php index f8731a90397f..8cfde5e9dabc 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Modal/Renderer.php @@ -65,7 +65,7 @@ public function render(Component\Component $component, RendererInterface $defaul public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Modal/modal.js'); + $registry->register('assets/js/modal.js'); } protected function registerSignals(Component\Modal\Modal $modal): Component\JavaScriptBindable diff --git a/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php index c37068aed18a..fc4b61b67090 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Popover/Renderer.php @@ -107,7 +107,7 @@ public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); $registry->register('./node_modules/webui-popover/dist/jquery.webui-popover.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Popover/popover.js'); + $registry->register('assets/js/popover.js'); } protected function renderStandardPopover( diff --git a/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php index b4eb78f4a406..58661b32fe5f 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php @@ -556,8 +556,8 @@ protected function getSingleActionsForRow(string $row_id, array $actions): \ILIA public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Table/table.min.js'); - $registry->register('./components/ILIAS/UI/src/templates/js/Modal/modal.js'); + $registry->register('assets/js/table.min.js'); + $registry->register('assets/js/modal.js'); } protected function registerSignals(Component\Table\PresentationRow $component): Component\JavaScriptBindable diff --git a/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php index 33265eb4f1ec..9b7e2a3f5506 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Toast/Renderer.php @@ -82,7 +82,7 @@ protected function renderToast(Component\Toast\Toast $component, RendererInterfa $tpl->setVariable("ICON", $default_renderer->render($component->getIcon())); $tpl->setVariable("CLOSE", $default_renderer->render($this->getUIFactory()->button()->close())); - $component = $component->withAdditionalOnLoadCode(fn ($id) => " + $component = $component->withAdditionalOnLoadCode(fn($id) => " il.UI.toast.setToastSettings($id); il.UI.toast.showToast($id); "); @@ -104,7 +104,7 @@ protected function renderContainer(Component\Toast\Container $component, Rendere public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Toast/toast.js'); + $registry->register('assets/js/toast.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php index aa400e98ba17..c3d2595e06f5 100755 --- a/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/Tree/Renderer.php @@ -63,7 +63,7 @@ public function render(Component\Component $component, RendererInterface $defaul $highlight_node_on_click = $component->getHighlightOnNodeClick(); $component = $component->withAdditionalOnLoadCode( - fn ($id) => "il.UI.tree.init('$id', $highlight_node_on_click)" + fn($id) => "il.UI.tree.init('$id', $highlight_node_on_click)" ); $id = $this->bindJavaScript($component); @@ -103,7 +103,7 @@ protected function buildNode( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./components/ILIAS/UI/src/templates/js/Tree/tree.js'); + $registry->register('assets/js/tree.js'); } /** diff --git a/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php b/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php index 4597ecd6ac30..1e5fe7054a34 100644 --- a/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php +++ b/components/ILIAS/UI/src/Implementation/Component/ViewControl/Renderer.php @@ -373,8 +373,7 @@ protected function setPaginationFirstLast( public function registerResources(ResourceRegistry $registry): void { parent::registerResources($registry); - $registry->register('./src/UI/templates/js/ViewControl/sortation.js'); - $registry->register('./src/UI/templates/js/ViewControl/pagination.js'); + $registry->register('assets/js/viewcontrols.min.js'); } protected function renderId( diff --git a/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php b/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php index 5e72bb85ce95..8cfed8412b7a 100755 --- a/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php +++ b/components/ILIAS/UI/src/Implementation/Render/AbstractComponentRenderer.php @@ -61,7 +61,7 @@ final public function __construct( */ public function registerResources(ResourceRegistry $registry): void { - $registry->register('./components/ILIAS/UI/src/templates/js/Core/dist/core.js'); + $registry->register('assets/js/core.js'); } /** diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php index 6e1d2fdae15d..d09c2b229028 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/base.php @@ -14,7 +14,7 @@ function base() $renderer = $DIC->ui()->renderer(); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php index 9df91836b212..4fb0b9d6745d 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon.php @@ -16,7 +16,7 @@ function with_object_icon() $icon = $f->symbol()->icon()->standard("crs", 'Course'); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php index 71248b2cf7ac..994caf11a855 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_actions.php @@ -32,7 +32,7 @@ function with_object_icon_and_actions() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php index c74f9b0f8155..06d0de6b06c7 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_certificate.php @@ -23,7 +23,7 @@ function with_object_icon_and_certificate() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php index b75382732769..069c6f00900a 100755 --- a/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php +++ b/components/ILIAS/UI/src/examples/Card/RepositoryObject/with_object_icon_and_progressmeter_mini.php @@ -24,7 +24,7 @@ function with_object_icon_and_progressmeter_mini() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/Standard/base.php b/components/ILIAS/UI/src/examples/Card/Standard/base.php index 19e8c7f328bc..3a9a7c2aa242 100755 --- a/components/ILIAS/UI/src/examples/Card/Standard/base.php +++ b/components/ILIAS/UI/src/examples/Card/Standard/base.php @@ -21,7 +21,7 @@ function base() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php b/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php index 8fd9ec06c089..376a5ee6656b 100755 --- a/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php +++ b/components/ILIAS/UI/src/examples/Card/Standard/with_sections.php @@ -21,7 +21,7 @@ function with_sections() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php b/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php index 8f2db2fb1174..96e24424d899 100755 --- a/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php +++ b/components/ILIAS/UI/src/examples/Card/Standard/with_title_action.php @@ -14,7 +14,7 @@ function with_title_action() $renderer = $DIC->ui()->renderer(); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/base.php b/components/ILIAS/UI/src/examples/Deck/base.php index 9b91e89afa76..c91b93e60d7a 100755 --- a/components/ILIAS/UI/src/examples/Deck/base.php +++ b/components/ILIAS/UI/src/examples/Deck/base.php @@ -23,7 +23,7 @@ function base() //Define the some responsive image $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/repository.php b/components/ILIAS/UI/src/examples/Deck/repository.php index ab26fd3c6f05..07c914060bcf 100755 --- a/components/ILIAS/UI/src/examples/Deck/repository.php +++ b/components/ILIAS/UI/src/examples/Deck/repository.php @@ -33,7 +33,7 @@ function repository() ); $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/user.php b/components/ILIAS/UI/src/examples/Deck/user.php index 0e9a2e6b533b..de1d4f74d637 100755 --- a/components/ILIAS/UI/src/examples/Deck/user.php +++ b/components/ILIAS/UI/src/examples/Deck/user.php @@ -23,7 +23,7 @@ function user() //Define the some responsive image $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Deck/xl_card.php b/components/ILIAS/UI/src/examples/Deck/xl_card.php index 11ce02ce9fe3..826ab6179aea 100755 --- a/components/ILIAS/UI/src/examples/Deck/xl_card.php +++ b/components/ILIAS/UI/src/examples/Deck/xl_card.php @@ -23,7 +23,7 @@ function xl_card() //Define the some responsive image $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); diff --git a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php index f1beb2dca041..af38745e07d7 100755 --- a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php +++ b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui.php @@ -44,7 +44,7 @@ function renderFullDemoPage(\ILIAS\DI\Container $dic) $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pagedemoCrumbs($f); $metabar = pagedemoMetabar($f); diff --git a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php index e424ad973602..5c3916e15302 100755 --- a/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php +++ b/components/ILIAS/UI/src/examples/Layout/Page/Standard/ui_mainbar.php @@ -227,7 +227,7 @@ function getRenderedPage(Container $dic, MainBar $mainbar): string $f = $dic->ui()->factory(); list($page_title, $content) = getUIContent($f, $dic->http()->request()); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = null; diff --git a/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php b/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php index 9f985227fc2c..a69a5b4a2855 100755 --- a/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php +++ b/components/ILIAS/UI/src/examples/MainControls/Footer/footer.php @@ -57,7 +57,7 @@ function renderFooterInFullscreenMode(Container $dic): string { $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pageFooterDemoCrumbs($f); $metabar = pageFooterDemoMetabar($f); diff --git a/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php b/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php index c7edb5f9ec0f..044c6d2affe3 100755 --- a/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php +++ b/components/ILIAS/UI/src/examples/MainControls/Footer/footer_with_modals.php @@ -53,7 +53,7 @@ function renderFooterWithModalsInFullscreenMode(Container $dic): string $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pageFooterDemoCrumbs($f); $metabar = pageFooterDemoMetabar($f); diff --git a/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php b/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php index dc6a65950772..303efca1c1e4 100755 --- a/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php +++ b/components/ILIAS/UI/src/examples/MainControls/MetaBar/base_metabar.php @@ -61,7 +61,7 @@ function renderMetaBarInFullscreenMode(Container $dic): string { $f = $dic->ui()->factory(); $renderer = $dic->ui()->renderer(); - $logo = $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"); + $logo = $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"); $responsive_logo = $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"); $breadcrumbs = pageMetabarDemoCrumbs($f); $metabar = buildMetabar($f); diff --git a/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php b/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php index da31b94207f5..ba4935006f02 100755 --- a/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php +++ b/components/ILIAS/UI/src/examples/MainControls/ModeInfo/modeinfo.php @@ -64,7 +64,7 @@ function renderModeInfoFullscreenMode(\ILIAS\DI\Container $dic) ), $f->mainControls()->mainBar()->withAdditionalEntry("entry1", $slate), $f->breadcrumbs([]), - $f->image()->responsive("templates/default/images/logo/HeaderIcon.svg", "ILIAS"), + $f->image()->responsive("assets/images/logo/HeaderIcon.svg", "ILIAS"), $f->image()->responsive("templates/default/images/logo/HeaderIconResponsive.svg", "ILIAS"), "./templates/default/images/logo/favicon.ico", $dic->ui()->factory()->toast()->container(), diff --git a/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php index 7ea3dc108440..b1330aed6699 100755 --- a/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Listing/Standard/with_all_view_controls.php @@ -95,7 +95,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php index 2504ac05eea4..ed5c3f6c6b09 100755 --- a/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Secondary/Legacy/with_all_view_controls.php @@ -94,7 +94,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php index 88bf6ae5b20b..6842185b7ce4 100755 --- a/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Secondary/Listing/with_all_view_controls.php @@ -95,7 +95,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php b/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php index 5d6aecfbeba6..4a4a11c593a5 100755 --- a/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php +++ b/components/ILIAS/UI/src/examples/Panel/Standard/with_all_view_controls.php @@ -94,7 +94,7 @@ static function ($carry, $item) use ($presentation_options, $url) { ); } else { $image = $f->image()->responsive( - "./templates/default/images/logo/HeaderIcon.svg", + "./assets/images/logo/HeaderIcon.svg", "Thumbnail Example" ); $content = $f->listing()->descriptive( diff --git a/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php b/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php index c3e74ba86449..6d874c0876d3 100755 --- a/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php +++ b/components/ILIAS/UI/src/examples/Popover/Standard/show_card_in_popover.php @@ -12,7 +12,7 @@ function show_card_in_popover() $factory = $DIC->ui()->factory(); $renderer = $DIC->ui()->renderer(); - $image = $factory->image()->responsive("./templates/default/images/logo/HeaderIcon.svg", "Thumbnail Example"); + $image = $factory->image()->responsive("./assets/images/logo/HeaderIcon.svg", "Thumbnail Example"); $card = $factory->card()->standard("Title", $image)->withSections(array($factory->legacy("Hello World, I'm a card"))); $popover = $factory->popover()->standard($card)->withTitle('Card'); $button = $factory->button()->standard('Show Card', '#') diff --git a/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php b/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php index 487caf7f877e..362060587c0c 100755 --- a/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php +++ b/components/ILIAS/UI/src/examples/Symbol/Icon/Custom/custom_icon.php @@ -27,7 +27,7 @@ function custom_icon() //Note that the svg needs to contain strictly valid xml to work with abbreviations. //Some exports e.g. form illustrator seem to be not properly formatted by default. - $path = './templates/default/images/standard/icon_fold.svg'; + $path = './assets/images/standard/icon_fold.svg'; $ico = $f->symbol()->icon()->custom($path, 'Example') ->withAbbreviation('FD'); diff --git a/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html b/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html index 11f28755a137..45663ead4302 100755 --- a/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html +++ b/components/ILIAS/UI/tests/Client/Item/Notification/NotificationItemTest.html @@ -20,7 +20,7 @@
    - aria_label + aria_label

    item title

    @@ -48,7 +48,7 @@

    item title

    - aria_label + aria_label

    item title

    @@ -82,7 +82,7 @@

    item title

    - aria_label + aria_label

    item title

    @@ -138,4 +138,4 @@

    item title

    - \ No newline at end of file + diff --git a/components/ILIAS/UI/tests/Client/Toast/ToastTest.html b/components/ILIAS/UI/tests/Client/Toast/ToastTest.html index 9fe40713295d..6a2634fba9b3 100755 --- a/components/ILIAS/UI/tests/Client/Toast/ToastTest.html +++ b/components/ILIAS/UI/tests/Client/Toast/ToastTest.html @@ -1,6 +1,6 @@ Toast Test HTML - + @@ -8,7 +8,7 @@
    - Test + Test
    Title
    '; @@ -209,7 +209,7 @@ public function testRenderButtonWithAriaRoleMenuitemNotEngageable(): void $expected = '' . ''; @@ -228,7 +228,7 @@ public function testRenderButtonWithAriaRoleMenuitemIsEngageable(): void $expected = '' . ''; @@ -247,7 +247,7 @@ public function testRenderWithLabelAndAltImageSame(): void $expected = '' . ''; @@ -267,7 +267,7 @@ public function testRenderWithHelpTopics(): void $expected = <<
    diff --git a/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php b/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php index 1121df79f5e7..548a2792e52b 100755 --- a/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php +++ b/components/ILIAS/UI/tests/Component/Card/RepositoryObjectTest.php @@ -170,7 +170,7 @@ public function testRenderWithObjectIcon(): void
    - Course + Course
    @@ -206,7 +206,7 @@ public function testRenderWithCertificateIcon(): void
    - Certificate + Certificate
    diff --git a/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php b/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php index a31144e6040d..03a03ad171e2 100755 --- a/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php +++ b/components/ILIAS/UI/tests/Component/Item/ItemNotificationTest.php @@ -230,7 +230,7 @@ public function getOnLoadCodeAsync(): string
    - aria_label + aria_label

    @@ -278,7 +278,7 @@ public function getOnLoadCodeAsync(): string
    - aria_label + aria_label

    title_aggregate

    diff --git a/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php b/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php index e74c88ba5630..e6280c60b754 100755 --- a/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php +++ b/components/ILIAS/UI/tests/Component/Item/ItemShyTest.php @@ -160,7 +160,7 @@ public function testRenderWithLeadIcon(): void $expected = << - aria_label + aria_label
    shy
    diff --git a/components/ILIAS/UI/tests/Component/Item/ItemTest.php b/components/ILIAS/UI/tests/Component/Item/ItemTest.php index b745fb5f391f..7d27a2502d47 100755 --- a/components/ILIAS/UI/tests/Component/Item/ItemTest.php +++ b/components/ILIAS/UI/tests/Component/Item/ItemTest.php @@ -143,7 +143,7 @@ public function testWithLeadPictureAvatar(): void { $f = $this->getFactory(); - $avatar = new Picture('./templates/default/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); + $avatar = new Picture('./assets/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); $c = $f->standard("title")->withLeadAvatar($avatar); @@ -298,7 +298,7 @@ public function testRenderLeadIcon(): void
    - aria_label + aria_label

    title

    @@ -350,7 +350,7 @@ public function testRenderLeadPictureAvatar(): void $f = $this->getFactory(); $r = $this->getDefaultRenderer(); - $avatar = new Picture('./templates/default/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); + $avatar = new Picture('./assets/images/placeholder/no_photo_xsmall.jpg', 'demo.user'); $c = $f->standard("title")->withLeadAvatar($avatar); @@ -360,7 +360,7 @@ public function testRenderLeadPictureAvatar(): void
    - user_avatar + user_avatar
    @@ -491,7 +491,7 @@ public function testRenderProgressAndLeadIcon(): void
    - aria_label + aria_label

    title

    @@ -604,7 +604,7 @@ public function testShyTitleAndVariousProperties(): void
    Property Icon - aria_label + aria_label
    diff --git a/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php b/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php index e85321722f03..68cecd13f3e8 100755 --- a/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php +++ b/components/ILIAS/UI/tests/Component/Launcher/LauncherInlineTest.php @@ -214,7 +214,7 @@ public function testLauncherInlineRendering(): void
    $msg_html
    -
    some icon
    +
    some icon
    some description diff --git a/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php b/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php index 1d5c48d89178..58ee4d912c58 100755 --- a/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php +++ b/components/ILIAS/UI/tests/Component/Link/BulkyLinkTest.php @@ -142,7 +142,7 @@ public function testRenderingIcon(): void $expected = '' . '' - . ' ' + . ' ' . ' label' . ''; @@ -161,7 +161,7 @@ public function testRenderingWithId(): void $expected = '' . '' - . '' + . '' . ' label' . ''; @@ -179,7 +179,7 @@ public function testRenderWithAriaRoleMenuitem(): void $expected = '' . '' - . '' + . '' . ' label' . ''; @@ -197,7 +197,7 @@ public function testRenderWithLabelAndAltImageSame(): void $expected = '' . '' - . '' + . '' . ' Example' . ''; @@ -221,7 +221,7 @@ public function testRenderWithLanguage(): void $expected = '' . '' - . '' + . '' . ' label' . ''; @@ -241,7 +241,7 @@ public function testRenderWithHelpTopic(): void $expected_html = << - + label @@ -260,7 +260,7 @@ public function testRenderWithRelationships(): void $expected_html = << - + label EXP; @@ -279,7 +279,7 @@ public function testRenderWithDuplicateRelationship(): void $expected_html = << - + label EXP; diff --git a/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php b/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php index f0709ae8dc52..cca96681cbee 100755 --- a/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php +++ b/components/ILIAS/UI/tests/Component/MainControls/Slate/NotificationSlateTest.php @@ -130,7 +130,7 @@ public function testRenderingWithSubslateAndButton(): void
    - aria_label + aria_label

    item title

    diff --git a/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php b/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php index 257be201cd93..408d63bde71e 100755 --- a/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php +++ b/components/ILIAS/UI/tests/Component/Symbol/Icon/IconTest.php @@ -30,8 +30,8 @@ */ class IconTest extends ILIAS_UI_TestBase { - public const ICON_PATH = __DIR__ . '/../../../../../../../public/templates/default/images/standard/'; - public const ICON_PATH_REL = './templates/default/images/'; + public const ICON_PATH = __DIR__ . '/../../../../../../../public/assets/images/standard/'; + public const ICON_PATH_REL = './assets/images/'; private function getIconFactory(): I\Component\Symbol\Icon\Factory { diff --git a/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php b/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php index 6d55ca07dee3..f95f6b745ce6 100755 --- a/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php +++ b/components/ILIAS/UI/tests/Component/Toast/ToastClientHtmlTest.php @@ -53,7 +53,7 @@ public function testRenderClientHtml(): void $rendered_html = ' Toast Test HTML - + diff --git a/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php b/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php index 200dbee3e75c..48668f3d73c7 100755 --- a/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php +++ b/components/ILIAS/UI/tests/Component/Tree/Node/BylineNodeTest.php @@ -80,7 +80,7 @@ public function testRenderingWithIcon(): void
  • - + My Label diff --git a/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php b/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php index 8d215dfa8a0b..13b4f3bf6ebc 100755 --- a/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php +++ b/components/ILIAS/UI/tests/Component/Tree/Node/KeyValueNodeTest.php @@ -80,7 +80,7 @@ public function testRenderingWithIcon(): void
  • - + Label Value diff --git a/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php b/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php index 9184addb3cbc..1597f1cca2f6 100755 --- a/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php +++ b/components/ILIAS/UI/tests/Component/Tree/Node/SimpleNodeTest.php @@ -187,7 +187,7 @@ public function testRenderingWithIcon(C\Tree\Node\Simple $node): void
  • - + label diff --git a/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php b/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php index 7ee443b1b064..d5a7fa04797e 100755 --- a/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php +++ b/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php @@ -450,7 +450,7 @@ public function getHTML(bool $a_only_cmd_list_asynch = false): string return ""; } - $this->global_tpl->addJavaScript("./components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js"); + $this->global_tpl->addJavaScript("assets/js/AdvancedSelectionList.js"); $tpl = new ilTemplate( "tpl.adv_selection_list.html", diff --git a/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php b/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php index 6a8f71ee1c36..b7e10522861c 100755 --- a/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php +++ b/components/ILIAS/UIComponent/Explorer/classes/class.ilExplorer.php @@ -532,7 +532,7 @@ public function getOutput(): string } ilYuiUtil::initConnection(); - $tpl->addJavaScript("./components/ILIAS/UIComponent/Explorer/js/ilExplorer.js"); + $tpl->addJavaScript("assets/js/ilExplorer.js"); //echo "hh"; // set global body class diff --git a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php index d19c838c6f05..619fbade84e9 100755 --- a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php +++ b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php @@ -32,10 +32,10 @@ abstract class ilExplorerBaseGUI protected ilCtrl $ctrl; protected ?ilGlobalTemplateInterface $tpl; - protected static string $js_tree_path = "./node_modules/jstree/dist/jstree.js"; + protected static string $js_tree_path = "./assets/js/jstree.js"; protected static string $js_tree_path_css = "./node_modules/jstree/dist/themes/default/style.min.css"; - protected static string $js_expl_path = "./components/ILIAS/UIComponent/Explorer2/js/Explorer2.js"; + protected static string $js_expl_path = "assets/js/Explorer2.js"; protected bool $skip_root_node = false; protected bool $ajax = false; protected array $custom_open_nodes = array(); diff --git a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php index 09729e2c7100..f1ee151837a7 100755 --- a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php +++ b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerSelectInputGUI.php @@ -152,8 +152,8 @@ public function render(string $a_mode = "property_form"): string { $lng = $this->lng; - $this->global_tpl->addJavascript("./components/ILIAS/UIComponent/Explorer2/js/Explorer2.js"); - $this->global_tpl->addJavascript("./components/ILIAS/UIComponent/Modal/js/Modal.js"); + $this->global_tpl->addJavascript("assets/js/Explorer2.js"); + $this->global_tpl->addJavascript("asserts/js/Modal.js"); $this->global_tpl->addOnLoadCode( "il.Explorer2.initSelect('" . $this->getFieldId() . "');" ); diff --git a/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php b/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php index a98b7589984b..dfd5f61e2366 100755 --- a/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php +++ b/components/ILIAS/UIComponent/Modal/classes/class.ilModalGUI.php @@ -143,6 +143,6 @@ public static function initJS(ilGlobalTemplateInterface $a_main_tpl = null): voi $tpl = $a_main_tpl ?? $DIC["tpl"]; - $tpl->addJavaScript("./components/ILIAS/UIComponent/Modal/js/Modal.js"); + $tpl->addJavaScript("assets/js/Modal.js"); } } diff --git a/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php b/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php index 88557a3ce2be..218fca2192b8 100755 --- a/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php +++ b/components/ILIAS/UIComponent/Overlay/classes/class.ilOverlayGUI.php @@ -157,7 +157,7 @@ public static function initJavascript(): void $tpl = $DIC->ui()->mainTemplate(); ilYuiUtil::initOverlay($tpl); - $tpl->addJavaScript("./components/ILIAS/UIComponent/Overlay/js/ilOverlay.js"); + $tpl->addJavaScript("assets/js/ilOverlay.js"); } public function getTriggerOnLoadCode( diff --git a/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php b/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php index 038807a153f8..b9ffd7c034d8 100755 --- a/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php +++ b/components/ILIAS/UIComponent/ProgressBar/classes/class.ilProgressBar.php @@ -158,7 +158,7 @@ public function render(): string } if ($this->ajax_url !== '' && $this->ajax_timeout) { - $this->main_tpl->addJavaScript("components/ILIAS/UIComponent/ProgressBar/js/progress_bar.js"); + $this->main_tpl->addJavaScript("assets/js/progress_bar.js"); $tpl->setCurrentBlock('async_status'); $tpl->setVariable('ASYNC_STATUS_ID', $this->unique_id); $tpl->setVariable('ICON_OK', ilUtil::getImagePath('standard/icon_ok.svg')); diff --git a/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php b/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php index 8adfd393ee98..07938742e5ab 100755 --- a/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php +++ b/components/ILIAS/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php @@ -44,7 +44,7 @@ public static function highlight( if ($a_tpl === null) { $a_tpl = $tpl; } - $a_tpl->addJavaScript("./components/ILIAS/UIComponent/TextHighlighter/js/ilTextHighlighter.js"); + $a_tpl->addJavaScript("assets/js/ilTextHighlighter.js"); $a_tpl->addOnLoadCode("il.TextHighlighter.highlight('" . $a_dom_node_id . "','" . $a_text . "');"); } } diff --git a/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php b/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php index ff6cec759398..85f1893d22b4 100755 --- a/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php +++ b/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php @@ -416,7 +416,7 @@ public function getHTML(): string // form? if ($this->getFormAction() !== "") { // #18947 - $GLOBALS["tpl"]->addJavaScript("components/ILIAS/Form/js/Form.js"); + $GLOBALS["tpl"]->addJavaScript("assets/js/Form.js"); if ($this->getOpenFormTag()) { $tpl->setCurrentBlock("form_open"); diff --git a/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php b/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php index 371c7010b2f7..3e2952a35544 100755 --- a/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php +++ b/components/ILIAS/UIComponent/Tooltip/classes/class.ilTooltipGUI.php @@ -95,8 +95,8 @@ public static function init(): void if (!self::$initialized) { $tpl->addCss("./node_modules/qtip2/dist/jquery.qtip.min.css"); - $tpl->addJavascript("./node_modules/qtip2/dist/jquery.qtip.min.js"); - $tpl->addJavascript("./components/ILIAS/UIComponent/Tooltip/js/ilTooltip.js"); + $tpl->addJavascript("assets/js/jquery.qtip.min.js"); + $tpl->addJavascript("assets/js/ilTooltip.js"); // use setTimeout as a workaround, since the last parameter is ignored $tpl->addOnLoadCode('setTimeout(function() {il.Tooltip.init();}, 500);', 3); diff --git a/components/ILIAS/UIComponent/UIComponent.php b/components/ILIAS/UIComponent/UIComponent.php index 79906f7d6c40..c369c7f5e86f 100644 --- a/components/ILIAS/UIComponent/UIComponent.php +++ b/components/ILIAS/UIComponent/UIComponent.php @@ -32,6 +32,25 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Explorer2.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilOverlay.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "Modal.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilExplorer.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTooltip.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "progress_bar.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "AdvancedSelectionList.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "ilTextHighlighter.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("qtip2/dist/jquery.qtip.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jstree/dist/jstree.js"); } } diff --git a/components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js b/components/ILIAS/UIComponent/resources/AdvancedSelectionList.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/AdvancedSelectionList/js/AdvancedSelectionList.js rename to components/ILIAS/UIComponent/resources/AdvancedSelectionList.js diff --git a/public/components/ILIAS/UIComponent/Explorer2/js/Explorer2.js b/components/ILIAS/UIComponent/resources/Explorer2.js similarity index 100% rename from public/components/ILIAS/UIComponent/Explorer2/js/Explorer2.js rename to components/ILIAS/UIComponent/resources/Explorer2.js diff --git a/components/ILIAS/UIComponent/Modal/js/Modal.js b/components/ILIAS/UIComponent/resources/Modal.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/Modal/js/Modal.js rename to components/ILIAS/UIComponent/resources/Modal.js diff --git a/components/ILIAS/UIComponent/Explorer/js/ilExplorer.js b/components/ILIAS/UIComponent/resources/ilExplorer.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/Explorer/js/ilExplorer.js rename to components/ILIAS/UIComponent/resources/ilExplorer.js diff --git a/public/components/ILIAS/UIComponent/Overlay/js/ilOverlay.js b/components/ILIAS/UIComponent/resources/ilOverlay.js similarity index 100% rename from public/components/ILIAS/UIComponent/Overlay/js/ilOverlay.js rename to components/ILIAS/UIComponent/resources/ilOverlay.js diff --git a/components/ILIAS/UIComponent/TextHighlighter/js/ilTextHighlighter.js b/components/ILIAS/UIComponent/resources/ilTextHighlighter.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/TextHighlighter/js/ilTextHighlighter.js rename to components/ILIAS/UIComponent/resources/ilTextHighlighter.js diff --git a/components/ILIAS/UIComponent/Tooltip/js/ilTooltip.js b/components/ILIAS/UIComponent/resources/ilTooltip.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/Tooltip/js/ilTooltip.js rename to components/ILIAS/UIComponent/resources/ilTooltip.js diff --git a/components/ILIAS/UIComponent/ProgressBar/js/progress_bar.js b/components/ILIAS/UIComponent/resources/progress_bar.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/UIComponent/ProgressBar/js/progress_bar.js rename to components/ILIAS/UIComponent/resources/progress_bar.js diff --git a/components/ILIAS/UICore/UICore.php b/components/ILIAS/UICore/UICore.php index e0c429d331f4..628e4c7eac57 100644 --- a/components/ILIAS/UICore/UICore.php +++ b/components/ILIAS/UICore/UICore.php @@ -36,5 +36,8 @@ public function init( new \ilUICoreSetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("bootstrap/dist/js/bootstrap.min.js"); } } diff --git a/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php b/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php index bb10f7916213..964cef7b6fe2 100755 --- a/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php +++ b/components/ILIAS/UICore/classes/class.ilGlobalPageTemplate.php @@ -97,7 +97,7 @@ protected function prepareBasicJS(): void { iljQueryUtil::initjQuery($this); iljQueryUtil::initjQueryUI($this); - $this->gs->layout()->meta()->addJs("./components/ILIAS/JavaScript/js/Basic.js", true, 1); + $this->gs->layout()->meta()->addJs("assets/js/Basic.js", true, 1); ilUIFramework::init($this); ilBuddySystemGUI::initializeFrontend($this); ilOnScreenChatGUI::initializeFrontend($this); diff --git a/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php b/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php index 3c888332ee2f..790487e1a657 100755 --- a/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php +++ b/components/ILIAS/UICore/classes/class.ilGlobalTemplate.php @@ -36,7 +36,7 @@ class ilGlobalTemplate implements ilGlobalTemplateInterface * @var string[] */ protected array $js_files = [ - "./components/ILIAS/JavaScript/js/Basic.js", + "assets/js/Basic.js", ]; /** @@ -44,7 +44,7 @@ class ilGlobalTemplate implements ilGlobalTemplateInterface * @var array */ protected array $js_files_vp = [ - "./components/ILIAS/JavaScript/js/Basic.js" => true, + "assets/js/Basic.js" => true, ]; /** @@ -52,7 +52,7 @@ class ilGlobalTemplate implements ilGlobalTemplateInterface * @var array */ protected array $js_files_batch = [ - "./components/ILIAS/JavaScript/js/Basic.js" => 1, + "assets/js/Basic.js" => 1, ]; /** diff --git a/components/ILIAS/UICore/classes/class.ilUIFramework.php b/components/ILIAS/UICore/classes/class.ilUIFramework.php index cc60e60b05a1..5a1fac6dcd97 100755 --- a/components/ILIAS/UICore/classes/class.ilUIFramework.php +++ b/components/ILIAS/UICore/classes/class.ilUIFramework.php @@ -24,7 +24,7 @@ */ class ilUIFramework { - public const BOOTSTRAP_JS = "./node_modules/bootstrap/dist/js/bootstrap.min.js"; + public const BOOTSTRAP_JS = "./assets/js/bootstrap.min.js"; public static function init(ilGlobalTemplateInterface $template = null): void { diff --git a/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php b/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php index 4e50c51a37de..f7b87d8ac888 100755 --- a/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php +++ b/components/ILIAS/User/classes/Settings/class.ilUserPrivacySettingsGUI.php @@ -497,7 +497,7 @@ protected function appendChatJsToTemplate( ): ilTemplate { $tpl = new ilTemplate('tpl.personal_chat_settings_form.html', true, true, 'components/ILIAS/Chatroom'); if ($this->shouldShowOnScreenChatOptions() && $this->chatSettings->get('enable_browser_notifications', '0')) { - $pageTemplate->addJavaScript('./components/ILIAS/Notifications/js/browser_notifications.js'); + $pageTemplate->addJavaScript('assets/js/browser_notifications.js'); $tpl->setVariable('ALERT_IMAGE_SRC', ilUtil::getImagePath('standard/icon_alert.svg')); $tpl->setVariable('BROWSER_NOTIFICATION_TOGGLE_LABEL', $this->lng->txt('osc_enable_browser_notifications_label')); diff --git a/components/ILIAS/Utilities/classes/class.ilUtil.php b/components/ILIAS/Utilities/classes/class.ilUtil.php index 6a5adfd2e837..fc98e53db979 100755 --- a/components/ILIAS/Utilities/classes/class.ilUtil.php +++ b/components/ILIAS/Utilities/classes/class.ilUtil.php @@ -63,51 +63,40 @@ public static function getImageTagByType(string $a_type, string $a_path, bool $a * */ public static function getImagePath( - string $img, - string $module_path = "", - string $mode = "output", + string $image_name, + string $module_path = "", // this parameter only supports "" value + string $mode = "output", // this parameter does not control anything anymore bool $offline = false ): string { - global $DIC; - - $styleDefinition = null; - if (isset($DIC["styleDefinition"])) { - $styleDefinition = $DIC["styleDefinition"]; - } - - if ($module_path != "") { - $module_path = "/" . $module_path; + if ($offline) { + return "./images/" . $image_name; } - // default image - $default_img = "." . $module_path . "/templates/default/images/" . $img; - - // use ilStyleDefinition instead of account to get the current skin and style - $current_skin = ilStyleDefinition::getCurrentSkin(); - $current_style = ilStyleDefinition::getCurrentStyle(); + global $DIC; + $styleDefinition = $DIC["styleDefinition"] ?? null; - if (is_object($styleDefinition)) { - $image_dir = $styleDefinition->getImageDirectory($current_style); - } else { - $image_dir = "images"; + if ($module_path != "") { + throw new \LogicException( + "\$module_path only supports '' as value." + ); } - $skin_img = ""; + $use_custom_skin = (ilStyleDefinition::getCurrentSkin() !== "default"); - if ($current_skin == "default") { - $skin_img = "." . $module_path . "/templates/default/" . $image_dir . "/" . $img; - } elseif (is_object($styleDefinition) && $current_skin != "default") { - $skin_img = "./Customizing/global/skin/" . - $current_skin . "/". $current_style. "/". $module_path . $image_dir . "/" . $img; - } + if ($use_custom_skin) { + $filename = + "./Customizing/global/skin/" + . ilStyleDefinition::getCurrentSkin() . "/" + . ilStyleDefinition::getCurrentStyle() . "/" + . (!is_object($styleDefinition) ? "images" : $styleDefinition->getImageDirectory(ilStyleDefinition::getCurrentStyle())) . "/" + . $image_name; - if ($offline) { - return "./images/" . $img; - } elseif (file_exists($skin_img)) { - return $skin_img; // found image for skin and style + if ($file_exists("./public/" . $filename)) { + return $filename; + } } - return $default_img; // take image in default + return "./assets/images/" . $image_name; } /** @@ -140,41 +129,46 @@ public static function getHtmlPath(string $relative_path): string */ public static function getStyleSheetLocation( string $mode = "output", - string $a_css_name = "", - string $a_css_location = "" + string $a_css_name = "" ): string { - global $DIC; + $force_reload = ($mode !== "filesystem"); + $use_default_style_file = ($a_css_name === ""); + $use_custom_skin = (ilStyleDefinition::getCurrentSkin() !== "default"); - $ilSetting = $DIC->settings(); - - // add version as parameter to force reload for new releases // use ilStyleDefinition instead of account to get the current style - $stylesheet_name = (strlen($a_css_name)) - ? $a_css_name - : ilStyleDefinition::getCurrentStyle() . ".css"; - if (strlen($a_css_location) && (strcmp(substr($a_css_location, -1), "/") != 0)) { - $a_css_location = $a_css_location . "/"; + if ($use_default_style_file) { + $stylesheet_name = ilStyleDefinition::getCurrentStyle() . ".css"; + } else { + $stylesheet_name = $a_css_name; } - $filename = ""; - // use ilStyleDefinition instead of account to get the current skin - if (ilStyleDefinition::getCurrentSkin() != "default") { - $filename = "./Customizing/global/skin/" . ilStyleDefinition::getCurrentSkin( - ) . "/" . ilStyleDefinition::getCurrentStyle() . "/" . $a_css_location . $stylesheet_name; + if ($use_custom_skin) { + $filename = + "./Customizing/global/skin/" + . ilStyleDefinition::getCurrentSkin() . "/" + . ilStyleDefinition::getCurrentStyle() . "/" + . $stylesheet_name; + } else { + $filename = "./assets/css/" . $stylesheet_name; } - if (strlen($filename) == 0 || !file_exists($filename)) { - $filename = "./" . $a_css_location . "templates/default/" . $stylesheet_name; + + if (!$force_reload) { + return $filename; } - $skin_version_appendix = ""; - if ($mode !== "filesystem") { - // use version from template xml to force reload on changes - $skin = ilStyleDefinition::getSkins()[ilStyleDefinition::getCurrentSkin()]; - $skin_version = $skin->getVersion(); - $skin_version_appendix .= ($skin_version !== '' ? str_replace(".", "-", $skin_version) : '0'); - $skin_version_appendix = "?skin_version=" . $skin_version_appendix; + + // add version as parameter to force reload for new releases + + // use version from template xml to force reload on changes + $skin = ilStyleDefinition::getSkins()[ilStyleDefinition::getCurrentSkin()]; + $skin_version = $skin->getVersion(); + if ($skin_version !== "") { + $skin_version_appendix = str_replace(".", "-", $skin_version); + } else { + $skin_version_appendix = '0'; } - return $filename . $skin_version_appendix; + + return $filename . "?skin_version=" . $skin_version_appendix; } /** @@ -197,7 +191,7 @@ public static function getNewContentStyleSheetLocation(string $mode = "output"): if (is_file("./" . $in_style)) { return $in_style; } else { - return "templates/default/delos_cont.css"; + return "assets/css/delos_cont.css"; } } @@ -458,13 +452,13 @@ public static function secureString(string $a_str, bool $a_strip_html = true, st $a_str = strip_tags($a_str); // strip all other tags $a_str = ilUtil::unmaskSecureTags($a_str, $allow_array); - // a possible solution could be something like: - // $a_str = str_replace("<", "<", $a_str); - // $a_str = str_replace(">", ">", $a_str); - // $a_str = ilUtil::unmaskSecureTags($a_str, $allow_array); + // a possible solution could be something like: + // $a_str = str_replace("<", "<", $a_str); + // $a_str = str_replace(">", ">", $a_str); + // $a_str = ilUtil::unmaskSecureTags($a_str, $allow_array); // - // output would be ok then, but input fields would show - // "a <= b" for input "a <= b" if data is brought back to a form + // output would be ok then, but input fields would show + // "a <= b" for input "a <= b" if data is brought back to a form } else { // only for scripts, that need to allow more/other tags and parameters if ($a_strip_html) { diff --git a/components/ILIAS/WOPI/WOPI.php b/components/ILIAS/WOPI/WOPI.php index eef1052b06ba..7eedc7c23187 100644 --- a/components/ILIAS/WOPI/WOPI.php +++ b/components/ILIAS/WOPI/WOPI.php @@ -36,5 +36,8 @@ public function init( new \ilWOPISetupAgent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "wopi/index.php", "wopi"); } } diff --git a/public/wopi/index.php b/components/ILIAS/WOPI/resources/wopi/index.php old mode 100755 new mode 100644 similarity index 94% rename from public/wopi/index.php rename to components/ILIAS/WOPI/resources/wopi/index.php index d250c3265c64..7037e5f7bbb9 --- a/public/wopi/index.php +++ b/components/ILIAS/WOPI/resources/wopi/index.php @@ -16,4 +16,4 @@ // handle all requests behind /public/wopi/index.php/ $handler = new RequestHandler(); -$handler->handleRequest(); +$handler->handleRequest(); \ No newline at end of file diff --git a/components/ILIAS/WebAccessChecker/WebAccessChecker.php b/components/ILIAS/WebAccessChecker/WebAccessChecker.php index df639dd1937b..e5f25d4407ed 100644 --- a/components/ILIAS/WebAccessChecker/WebAccessChecker.php +++ b/components/ILIAS/WebAccessChecker/WebAccessChecker.php @@ -32,6 +32,7 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "wac.php"); } } diff --git a/components/ILIAS/WebAccessChecker/implement-wac.md b/components/ILIAS/WebAccessChecker/implement-wac.md index 0944b996e240..edf110cc8a4a 100755 --- a/components/ILIAS/WebAccessChecker/implement-wac.md +++ b/components/ILIAS/WebAccessChecker/implement-wac.md @@ -10,7 +10,7 @@ The new WebAccessChecker allows fast and secure delivery of files in the /data d All requests to /data are now redirected to the WAC-Script per default, the .htaccess-File has a new entry: -`RewriteRule ^data/.*/.*/.*$ Services/WebAccessChecker/wac.php [L]` +`RewriteRule ^data/.*/.*/.*$ wac.php [L]` The WAC delivers the file after the following decisions: @@ -109,4 +109,4 @@ Additionally in the .htaccess the following rule activated the X-SendFile Module XSendFile On -``` \ No newline at end of file +``` diff --git a/public/components/ILIAS/WebAccessChecker/wac.php b/components/ILIAS/WebAccessChecker/resources/wac.php similarity index 53% rename from public/components/ILIAS/WebAccessChecker/wac.php rename to components/ILIAS/WebAccessChecker/resources/wac.php index 2c2bed2eddb8..e6d3df361a1b 100755 --- a/public/components/ILIAS/WebAccessChecker/wac.php +++ b/components/ILIAS/WebAccessChecker/resources/wac.php @@ -14,19 +14,19 @@ $container = new \ILIAS\DI\Container(); //manually init http service -$container['http.request_factory'] = static fn ($c) => new \ILIAS\HTTP\Request\RequestFactoryImpl(); +$container['http.request_factory'] = static fn($c) => new \ILIAS\HTTP\Request\RequestFactoryImpl(); -$container['http.response_factory'] = static fn ($c) => new \ILIAS\HTTP\Response\ResponseFactoryImpl(); +$container['http.response_factory'] = static fn($c) => new \ILIAS\HTTP\Response\ResponseFactoryImpl(); -$container['http.cookie_jar_factory'] = static fn ($c) => new \ILIAS\HTTP\Cookies\CookieJarFactoryImpl(); +$container['http.cookie_jar_factory'] = static fn($c) => new \ILIAS\HTTP\Cookies\CookieJarFactoryImpl(); -$container['http.response_sender_strategy'] = static fn ($c) => new \ILIAS\HTTP\Response\Sender\DefaultResponseSenderStrategy(); +$container['http.response_sender_strategy'] = static fn($c) => new \ILIAS\HTTP\Response\Sender\DefaultResponseSenderStrategy(); -$container['http.duration_factory'] = static fn ($c) => new \ILIAS\HTTP\Duration\DurationFactory( +$container['http.duration_factory'] = static fn($c) => new \ILIAS\HTTP\Duration\DurationFactory( new \ILIAS\HTTP\Duration\Increment\IncrementFactory() ); -$container['http'] = static fn ($c) => new \ILIAS\HTTP\Services($c); +$container['http'] = static fn($c) => new \ILIAS\HTTP\Services($c); $GLOBALS["DIC"] = $container; diff --git a/components/ILIAS/WebDAV/WebDAV.php b/components/ILIAS/WebDAV/WebDAV.php index 23a0d208c3f1..33a26393f81d 100644 --- a/components/ILIAS/WebDAV/WebDAV.php +++ b/components/ILIAS/WebDAV/WebDAV.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "webdav.php"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "rootindex.php"); } } diff --git a/public/rootindex.php b/components/ILIAS/WebDAV/resources/rootindex.php old mode 100755 new mode 100644 similarity index 92% rename from public/rootindex.php rename to components/ILIAS/WebDAV/resources/rootindex.php index a28186027645..8ca0659b7593 --- a/public/rootindex.php +++ b/components/ILIAS/WebDAV/resources/rootindex.php @@ -10,7 +10,7 @@ // If we don't do this, the client will display a non-working login-dialog. if ($_SERVER['REQUEST_METHOD'] == 'PROPFIND' -|| $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { + || $_SERVER['REQUEST_METHOD'] == 'OPTIONS') { // Block WebDAV Requests from "Microsoft WebDAV MiniRedir" client. $status = '404 Not Found'; header("HTTP/1.1 $status"); @@ -21,4 +21,4 @@ header("Location: /ilias/index.php"); exit; } -// END WebDAV +// END WebDAV \ No newline at end of file diff --git a/public/webdav.php b/components/ILIAS/WebDAV/resources/webdav.php old mode 100755 new mode 100644 similarity index 89% rename from public/webdav.php rename to components/ILIAS/WebDAV/resources/webdav.php index 24261d8fcac1..8c71ec55055e --- a/public/webdav.php +++ b/components/ILIAS/WebDAV/resources/webdav.php @@ -47,9 +47,9 @@ header("HTTP/1.1 403 Forbidden"); header("X-WebDAV-Status: 403 Forbidden", true); echo '

    Sorry

    ' . - '

    Please enable the WebDAV plugin in the ILIAS Administration panel.

    ' . - '

    You can only access this page, if WebDAV is enabled on this server.

    ' . - ''; + '

    Please enable the WebDAV plugin in the ILIAS Administration panel.

    ' . + '

    You can only access this page, if WebDAV is enabled on this server.

    ' . + ''; exit; } @@ -62,4 +62,4 @@ } else { $server = new ilWebDAVRequestHandler($webdav_dic); $server->handleRequest($post_array); -} +} \ No newline at end of file diff --git a/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php b/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php index 2d7297053a86..ec1da6e29176 100755 --- a/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php +++ b/components/ILIAS/WebResource/classes/class.ilObjLinkResourceGUI.php @@ -1224,8 +1224,8 @@ protected function manage(): void $js = ilInternalLinkGUI::getInitHTML(""); - $this->tpl->addJavaScript("components/ILIAS/WebResource/js/intLink.js"); - $this->tpl->addJavascript("components/ILIAS/Form/js/Form.js"); + $this->tpl->addJavaScript("assets/js/intLink.js"); + $this->tpl->addJavascript("assets/js/Form.js"); $this->tpl->setVariable('TABLE_LINKS', $table->getHTML() . $js); } diff --git a/components/ILIAS/Wiki/Wiki.php b/components/ILIAS/Wiki/Wiki.php index 2c433582a4ee..bde59c66c056 100644 --- a/components/ILIAS/Wiki/Wiki.php +++ b/components/ILIAS/Wiki/Wiki.php @@ -36,5 +36,10 @@ public function init( new \ILIAS\Wiki\Setup\Agent( $pull[\ILIAS\Refinery\Factory::class] ); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "WikiPres.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\ComponentJS($this, "WikiEdit.js"); } } diff --git a/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php b/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php index 1d5f6d772f22..b59e9e186bf1 100755 --- a/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php +++ b/components/ILIAS/Wiki/classes/class.ilObjWikiGUI.php @@ -1481,7 +1481,7 @@ public static function renderSideBlock( $ilAccess = $DIC->access(); $ilCtrl = $DIC->ctrl(); - $tpl->addJavaScript("./components/ILIAS/Wiki/js/WikiPres.js"); + $tpl->addJavaScript("assets/js/WikiPres.js"); // setting asynch to false fixes #0019457, since otherwise ilBlockGUI would act on asynch and output html when side blocks // being processed during the export. This is a flaw in ilCtrl and/or ilBlockGUI. diff --git a/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php b/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php index 1d7276c62ec6..fd21c453e724 100755 --- a/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php +++ b/components/ILIAS/Wiki/classes/class.ilWikiPageGUI.php @@ -1134,7 +1134,7 @@ public static function initEditingJS(ilGlobalTemplateInterface $a_tpl): void $lng = $DIC->language(); - $a_tpl->addJavaScript("./components/ILIAS/Wiki/js/WikiEdit.js"); + $a_tpl->addJavaScript("assets/js/WikiEdit.js"); $a_tpl->addOnLoadCode("il.Wiki.Edit.txt.page_exists = '" . $lng->txt("wiki_page_exists") . "';"); $a_tpl->addOnLoadCode("il.Wiki.Edit.txt.new_page = '" . $lng->txt("wiki_new_page") . "';"); } diff --git a/components/ILIAS/Wiki/js/WikiEdit.js b/components/ILIAS/Wiki/resources/WikiEdit.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Wiki/js/WikiEdit.js rename to components/ILIAS/Wiki/resources/WikiEdit.js diff --git a/components/ILIAS/Wiki/js/WikiPres.js b/components/ILIAS/Wiki/resources/WikiPres.js old mode 100755 new mode 100644 similarity index 100% rename from components/ILIAS/Wiki/js/WikiPres.js rename to components/ILIAS/Wiki/resources/WikiPres.js diff --git a/components/ILIAS/YUI/YUI.php b/components/ILIAS/YUI/YUI.php index 4d62f8eb09e2..db1fd32271dd 100644 --- a/components/ILIAS/YUI/YUI.php +++ b/components/ILIAS/YUI/YUI.php @@ -32,6 +32,27 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/yahoo-dom-event/yahoo-dom-event.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/connection/connection-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/dragdrop/dragdrop-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/element/element-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/container/container-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/utilities/utilities.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/resize/resize-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/container/container_core-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/menu/menu-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/button/button-min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("yui2/build/cookie/cookie.js"); } } diff --git a/components/ILIAS/YUI/classes/class.ilYuiUtil.php b/components/ILIAS/YUI/classes/class.ilYuiUtil.php index 015bb64257f3..92ba4200d4dc 100755 --- a/components/ILIAS/YUI/classes/class.ilYuiUtil.php +++ b/components/ILIAS/YUI/classes/class.ilYuiUtil.php @@ -38,8 +38,8 @@ public static function initConnection( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/connection/connection-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/connection-min.js"); } @@ -50,7 +50,7 @@ public static function initEvent( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); } @@ -61,7 +61,7 @@ public static function initDom( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); } @@ -74,9 +74,9 @@ public static function initDragDrop( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/dragdrop/dragdrop-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/element/element-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/dragdrop-min.js"); + $tpl->addJavaScript("assets/js/element-min.js"); } @@ -89,7 +89,7 @@ public static function initDomEvent( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); } /** @@ -102,15 +102,15 @@ public static function initPanel( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/container/container-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/container-min.js"); self::addContainerCss($tpl); $tpl->addCss("./components/ILIAS/Calendar/css/panel_min.css"); if ($a_resize) { $tpl->addCss(self::YUI_BASE . "/resize/assets/skins/sam/resize.css"); - $tpl->addJavaScript(self::YUI_BASE . "/utilities/utilities-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/resize/resize-min.js"); + $tpl->addJavaScript("assets/js/utilities.js"); + $tpl->addJavaScript("assets/js/resize-min.js"); } } @@ -123,9 +123,9 @@ public static function initPanel( public static function initConnectionWithAnimation(): void { $tpl = self::ensureGlobalTemplate(); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/animation/animation-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/connection/connection-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/animation-min.js"); + $tpl->addJavaScript("assets/js/connection-min.js"); } @@ -139,8 +139,8 @@ public static function initOverlay( ?ilGlobalTemplateInterface $a_main_tpl = null ): void { $tpl = self::ensureGlobalTemplate($a_main_tpl); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/container/container_core-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/container_core-min.js"); self::addContainerCss($tpl); } @@ -152,13 +152,13 @@ public static function initOverlay( public static function initButtonControl(): void { $tpl = self::ensureGlobalTemplate(); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo-dom-event/yahoo-dom-event.js"); - $tpl->addJavaScript(self::YUI_BASE . "/element/element-min.js"); + $tpl->addJavaScript("assets/js/yahoo-dom-event.js"); + $tpl->addJavaScript("assets/js/element-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/container/container_core-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/menu/menu-min.js"); + $tpl->addJavaScript("assets/js/container_core-min.js"); + $tpl->addJavaScript("assets/js/menu-min.js"); - $tpl->addJavaScript(self::YUI_BASE . "/button/button-min.js"); + $tpl->addJavaScript("assets/js/button-min.js"); $tpl->addCss(self::YUI_BASE . "/button/assets/skins/sam/button.css"); $tpl->addCss(self::YUI_BASE . "/menu/assets/skins/sam/menu.css"); @@ -171,8 +171,8 @@ public static function initButtonControl(): void public static function initCookie(): void { $tpl = self::ensureGlobalTemplate(); - $tpl->addJavaScript(self::YUI_BASE . "/yahoo/yahoo-min.js", 1); - $tpl->addJavaScript(self::YUI_BASE . "/cookie/cookie.js", 1); + $tpl->addJavaScript("assets/js/yahoo-min.js", 1); + $tpl->addJavaScript("assets/js/cookie.js", 1); } diff --git a/components/ILIAS/jQuery/classes/class.iljQueryUtil.php b/components/ILIAS/jQuery/classes/class.iljQueryUtil.php index 94ca52db7ad4..3b714a33e57c 100755 --- a/components/ILIAS/jQuery/classes/class.iljQueryUtil.php +++ b/components/ILIAS/jQuery/classes/class.iljQueryUtil.php @@ -44,7 +44,7 @@ public static function initjQuery(ilGlobalTemplateInterface $a_tpl = null): void } $a_tpl->addJavaScript(self::getLocaljQueryPath(), true, 0); - $a_tpl->addJavaScript('./node_modules/jquery-migrate/dist/jquery-migrate.min.js', true, 0); + $a_tpl->addJavaScript('assets/js/jquery-migrate.min.js', true, 0); } @@ -70,7 +70,7 @@ public static function initjQueryUI(ilGlobalTemplateInterface $a_tpl = null): vo */ public static function getLocaljQueryPath(): string { - return "./node_modules/jquery/dist/jquery" . self::$min . ".js"; + return "assets/js/jquery" . self::$min . ".js"; } @@ -79,7 +79,7 @@ public static function getLocaljQueryPath(): string */ public static function getLocaljQueryUIPath(): string { - return "./node_modules/jquery-ui-dist/jquery-ui" . self::$min . ".js"; + return "./assets/js/jquery-ui" . self::$min . ".js"; } // @@ -104,6 +104,6 @@ public static function initMaphilight(): void */ public static function getLocalMaphilightPath(): string { - return "./node_modules/maphilight/jquery.maphilight.min.js"; + return "./assets/js/jquery.maphilight.min.js"; } } diff --git a/components/ILIAS/jQuery/jQuery.php b/components/ILIAS/jQuery/jQuery.php index 2d31218c47ff..cd5a363f58c5 100644 --- a/components/ILIAS/jQuery/jQuery.php +++ b/components/ILIAS/jQuery/jQuery.php @@ -32,6 +32,13 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jquery-migrate/dist/jquery-migrate.min.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jquery/dist/jquery.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("jquery-ui-dist/jquery-ui.js"); + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\NodeModule("maphilight/jquery.maphilight.min.js"); } } diff --git a/public/soap/nusoapserver.php b/components/ILIAS/soap/resources/soap/nusoapserver.php old mode 100755 new mode 100644 similarity index 92% rename from public/soap/nusoapserver.php rename to components/ILIAS/soap/resources/soap/nusoapserver.php index 86a36ed92c1f..14fb6d60917f --- a/public/soap/nusoapserver.php +++ b/components/ILIAS/soap/resources/soap/nusoapserver.php @@ -23,13 +23,13 @@ /** -* soap server -* -* @author Stefan Meyer -* @version $Id: server.php 14977 2007-10-12 11:58:35Z rkuester $ -* -* @package ilias -*/ + * soap server + * + * @author Stefan Meyer + * @version $Id: server.php 14977 2007-10-12 11:58:35Z rkuester $ + * + * @package ilias + */ if (!defined('ILIAS_MODULE') || (defined('ILIAS_MODULE') && ILIAS_MODULE !== "components/ILIAS/soap")) { //direct call to this endpoint @@ -41,4 +41,4 @@ } $server = new ilNusoapUserAdministrationAdapter(true); -$server->start(); +$server->start(); \ No newline at end of file diff --git a/public/soap/server.php b/components/ILIAS/soap/resources/soap/server.php old mode 100755 new mode 100644 similarity index 94% rename from public/soap/server.php rename to components/ILIAS/soap/resources/soap/server.php index b20b82c53bd1..911c2aa5df80 --- a/public/soap/server.php +++ b/components/ILIAS/soap/resources/soap/server.php @@ -3,13 +3,13 @@ /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** -* SOAP server -* -* @author Stefan Meyer -* @version $Id$ -* -* @package ilias -*/ + * SOAP server + * + * @author Stefan Meyer + * @version $Id$ + * + * @package ilias + */ chdir("../.."); const ILIAS_MODULE = "components/ILIAS/soap"; @@ -50,4 +50,4 @@ } else { // This is a request to display the available SOAP methods or WSDL... include('public/soap/nusoapserver.php'); -} +} \ No newline at end of file diff --git a/components/ILIAS/soap/soap.php b/components/ILIAS/soap/soap.php index 088fd7d22e9e..f2bac809dce6 100644 --- a/components/ILIAS/soap/soap.php +++ b/components/ILIAS/soap/soap.php @@ -32,6 +32,10 @@ public function init( array | \ArrayAccess &$pull, array | \ArrayAccess &$internal, ): void { - // ... + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "soap/nusoapserver.php", "soap"); + + $contribute[Component\Resource\PublicAsset::class] = fn() => + new Component\Resource\Endpoint($this, "soap/server.php", "soap"); } } diff --git a/docs/configuration/nginx_shibboleth.md b/docs/configuration/nginx_shibboleth.md index e03ef00846dd..9645ca9bc1d6 100755 --- a/docs/configuration/nginx_shibboleth.md +++ b/docs/configuration/nginx_shibboleth.md @@ -288,7 +288,7 @@ to manually add them to your nginx virtual host config: rewrite ^/goto_(.*)_(wiki_([0-9]+|wpage)(.*)).html$ /goto.php?client_id=$1&target=$2 last; rewrite ^/([^\/]*)_user_(.*)$ /goto.php?client_id=$1&target=usr_n$2 last; rewrite ^/goto_(.*)_([a-z]+_[0-9]+(.*)).html$ /goto.php?client_id=$1&target=$2 last; -rewrite ^/data/.*/.*/.*$ /Services/WebAccessChecker/wac.php last; +rewrite ^/data/.*/.*/.*$ /wac.php last; ``` ### File delivery via X-Accel diff --git a/docs/configuration/secure.md b/docs/configuration/secure.md index 64c39521d2dc..aa163184c661 100755 --- a/docs/configuration/secure.md +++ b/docs/configuration/secure.md @@ -632,7 +632,7 @@ This is a NGINX recommended configuration. (note: inside the `%DOCROOT%/data` no [...] set $root $document_root; location ~ /data/ { - rewrite ^/data/(.*)/(.*)/(.*)$ /Services/WebAccessChecker/wac.php last; + rewrite ^/data/(.*)/(.*)/(.*)$ /wac.php last; location ~ [^/]\.php(/|$) { access_log off; log_not_found off; deny all; } } diff --git a/public/package-lock.json b/package-lock.json old mode 100755 new mode 100644 similarity index 100% rename from public/package-lock.json rename to package-lock.json diff --git a/public/package.json b/package.json old mode 100755 new mode 100644 similarity index 100% rename from public/package.json rename to package.json diff --git a/public/components/ILIAS/Notifications/templates/default/notifications.js b/public/components/ILIAS/Notifications/templates/default/notifications.js deleted file mode 100755 index b9601c4a77c9..000000000000 --- a/public/components/ILIAS/Notifications/templates/default/notifications.js +++ /dev/null @@ -1,79 +0,0 @@ -var OSDNotifier, OSDNotifications = settings => { - const evalInCleanEnv = codeAsString => new Function('', codeAsString).call(); - - const playSound = () => { - const sound = document.createElement('audio'); - - const mp3 = document.createElement('source'); - mp3.src = 'Modules/Chatroom/sounds/receive.mp3'; - mp3.type = 'audio/mp3'; - sound.append(mp3); - - const ogg = document.createElement('source'); - ogg.src = 'Modules/Chatroom/sounds/receive.ogg'; - ogg.type = 'audio/ogg'; - sound.append(ogg); - document.querySelector('body').append(sound); - - sound.play().then(() => { - console.debug("Played sound successfully!"); - }).catch((e) => { - console.info("Could not play sound, autoplay policy changes: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes"); - console.warn(e); - }); - }; - - const createContentSetter = container => { - return html => { - container.innerHTML = html; - container.querySelectorAll('script').forEach(element => { - evalInCleanEnv(element.innerHTML); - }); - container.querySelectorAll('.il-toast-wrapper').forEach(element => { - element.querySelectorAll('a').forEach(link => { - link.addEventListener('click', () => { - il.UI.toast.closeToast(element.querySelector('.il-toast'), true); - }); - }); - element.addEventListener('removeToast', () => { - document.dispatchEvent(new Event('rerenderNotificationCenter')); - }); - }); - }; - }; - - const poll = (container) => { - let lastRequest = parseInt(new Date().getTime() / 1000); - - return () => { - const time = parseInt(new Date().getTime() / 1000); - const max_age = time - lastRequest; - const xhr = new XMLHttpRequest(); - const setContent = createContentSetter(container); - xhr.open('GET', 'ilias.php?baseClass=ilNotificationGUI&cmd=getOSDNotifications&cmdMode=asynch&max_age=' + max_age); - xhr.onload = () => { - if (xhr.status === 200) { - setContent(xhr.responseText); - if (settings.playSound && xhr.responseText !== '') { - playSound(); - } - lastRequest = time; - } else { - container.innerHTML = ''; - console.error(xhr.status + ': ' + xhr.responseText); - } - }; - xhr.send(); - }; - }; - - const init = () => { - const container = il.UI.page.getOverlay().querySelector('.il-toast-container'); - const interval = settings.pollingInterval; - if (interval) { - window.setInterval(poll(container), interval); - } - }; - - return init(); -}; diff --git a/public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js b/public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js deleted file mode 100755 index 2a957f9ea454..000000000000 --- a/public/components/ILIAS/UI/src/templates/js/Image/dist/image.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file is part of ILIAS, a powerful learning management system - * published by ILIAS open source e-Learning e.V. - * - * ILIAS is licensed with the GPL-3.0, - * see https://www.gnu.org/licenses/gpl-3.0.en.html - * You should have received a copy of said license along with the - * source code, too. - * - * If this is not the case or you just want to try ILIAS, you'll find - * us at: - * https://www.ilias.de - * https://github.com/ILIAS-eLearning - */ -!function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=n(e),u=n(t);l.default.UI=l.default.UI||{},l.default.UI.image=l.default.UI.image||{},l.default.UI.image.getImageElement=e=>function(e,t){const n=e.getElementById(t);return null===n?null:n instanceof e.defaultView.HTMLImageElement?n:n.querySelector("img")}(u.default,e),l.default.UI.image.loadHighResolutionSource=function(e,t){const n=function(e,t){let n=null,l=null;return e.forEach(((e,u)=>{u<=t&&u>l&&(l=u,n=e)})),n}(t,e.width);if(null!==n){const t=e.cloneNode();t.addEventListener("load",(()=>{e.replaceWith(t)})),t.src=n}}}(il,document); diff --git a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js b/public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js deleted file mode 100755 index 181e82ead6b4..000000000000 --- a/public/components/ILIAS/UI/src/templates/js/MainControls/dist/maincontrols.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This file is part of ILIAS, a powerful learning management system - * published by ILIAS open source e-Learning e.V. - * - * ILIAS is licensed with the GPL-3.0, - * see https://www.gnu.org/licenses/gpl-3.0.en.html - * You should have received a copy of said license along with the - * source code, too. - * - * If this is not the case or you just want to try ILIAS, you'll find - * us at: - * https://www.ilias.de - * https://github.com/ILIAS-eLearning - */ -!function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=n(t),a=n(e);const i="engaged",o="il-maincontrols-metabar",r="il-metabar-slates",l="il-metabar-more-button",u="il-metabar-more-slate",c="il-maincontrols-slate",h="engaged";function g(t){t.removeClass(i),t.attr("aria-expanded",!1)}class d{#t;#e;#n;#s;#a;#i;#o;constructor(t,e,n,s,a,i){this.#t=t,this.#e=e,this.#s=n,this.#a=s,this.#i=a,this.#o=i}registerSignals(t,e){this.#t(document).on(t,((t,e)=>(this.#r(t,e),this.#s()&&this.#i(),!1))),this.#t(document).on(e,(()=>(this.onClickDisengageAll(),!1))),this.#t(`.${o}`).on("click",(()=>{this.#n=!0})),this.#t("body").on("click",(()=>{this.#n?this.#n=!1:this.onClickDisengageAll()})),this.#t(`.${r} > .${c}`).on("focusout",(t=>{if(!this.#s()){const e=t.relatedTarget,n=t.currentTarget;this.#t.contains(n,e)||this.onClickDisengageAll()}}))}#r(t,e){const n=e.triggerer;!function(t){return t.hasClass(i)}(n)?(this.disengageAll(),function(t){t.addClass(i),t.attr("aria-expanded",!0)}(n),setTimeout((()=>{const t=n[0];this.focusInEngagedSlate(t)}),10)):g(n)}onClickDisengageAll(){this.disengageAllButtons(),this.disengageAllSlates()}disengageAllButtons(){document.querySelectorAll(`#${this.#e}.${o} > li > .btn.${i}`).forEach((t=>{g($(t))}));document.querySelectorAll(`#${this.#e}.${o} > li > .${r} > .${u} > .il-maincontrols-slate-content > .btn.${i}`).forEach((t=>{g($(t))}))}disengageAllSlates(){this.getEngagedSlates().each(((t,e)=>{this.#o(this.#t(e))}))}disengageAll(){this.disengageAllSlates(),this.disengageAllButtons()}getEngagedSlates(){const t=`#${this.#e} .${c}.${h}`;return this.#t(t)}focusInEngagedSlate(t){const e=function(t,e){let n=t.parentElement;for(;n&&!n.classList.contains(e);)n=n.parentElement;return n||console.warn(`No parent element with class "${e}" found.`),n}(t,o);if(e){const t=e.querySelector(`.${c}.${h}`);if(t){const e=t.querySelector("input, button");e&&e.focus()}}}init(){this.#l(),this.#u(),this.#s()?this.#c():this.#h(),this.#t(`.${o}`).css("visibility","visible"),this.#t(`#${this.#e} .${r}`).children(`.${c}`).attr("aria-hidden",!0)}#c(){this.#g(),this.#d().hide(),this.getMoreButton().show(),this.#f()}#h(){this.getMoreButton().hide(),this.#d().show()}#l(){if(0===this.getMoreButton().length){const t=this.#t(`#${this.#e}.${o}`).find(".btn, .il-link").last();this.#t(t).addClass(l)}}#u(){if(0===this.#y().length){const t=this.#t(`#${this.#e} .${r}`).children(`.${c}`).last();this.#t(t).addClass(u)}}getMoreButton(){return this.#t(`.${l}`)}#y(){return this.#t(`.${u}`)}#d(){return this.#t(`#${this.#e}.${o}`).children("li").children(".btn, .il-link").not(`.${l}`)}#g(){const t=this.#y().children(".il-maincontrols-slate-content");0===t.children().length&&this.#d().clone(!0,!0).appendTo(t)}#f(){const t=this.#a.getCounterObjectOrNull(this.#y());t&&this.#a.getCounterObject(this.getMoreButton()).setNoveltyTo(t.getNoveltyCount()).setStatusTo(t.getStatusCount())}}const f="engaged",y="disengaged";function S(t){return t.hasClass(f)}function m(t){t.removeClass(y),t.addClass(f),t.attr("aria-expanded","true"),t.attr("aria-hidden","false")}function b(t){t.removeClass(f),t.addClass(y),t.attr("aria-expanded","false"),t.attr("aria-hidden","true")}function p(t){S(t)?b(t):m(t)}var C=function(t){var e="il-counter",n={getCounterObject:function(t){let e;return e=s(t),console.assert(e.length>0,"Passed jQuery Object does not contain a counter"),a(e)},getCounterObjectOrNull:function(t){let e;return e=s(t),0===e.length?null:a(e)}},s=function(n){console.assert(n instanceof t,"$object_containing_counter is not a jQuery Object, param: "+n);var s=n;return n.hasClass(e)||(s=n.find("."+e)),s},a=function(e){return v.bind({})(e,t)};return n},v=function(t,e){const n=" Counter does not exist in the DOM. Make sure the respective Counter type has been rendered before applying this operations.",s=" is not a number";this.getStatusCount=function(){return r(o(t))},this.getNoveltyCount=function(){return r(i(t))},this.hasNoveltyObject=function(){return i(t).length>0},this.hasStatusObject=function(){return o(t).length>0},this.setNoveltyTo=function(e){console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s);var a=i(t);return a.html(e),0===e?a.hide():a.show(),this},this.setStatusTo=function(e){console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s);var a=o(t);return a.html(e),0===e?a.hide():a.show(),this},this.incrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()+e)}),t),this},this.decrementNoveltyCount=function(e){return console.assert(this.hasNoveltyObject(),"Novelty "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasNoveltyObject()&&t.setNoveltyTo(t.getNoveltyCount()-e)}),t),this},this.incrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()+e)}),t),this},this.decrementStatusCount=function(e){return console.assert(this.hasStatusObject(),"Status "+n),console.assert("number"==typeof e,e+s),l((function(t){t.hasStatusObject()&&t.setStatusTo(t.getStatusCount()-e)}),t),this},this.setTotalNoveltyToStatusCount=function(){return console.assert(this.hasStatusObject(),"Status "+n),console.assert(this.hasNoveltyObject(),"Novelty "+n),this.incrementStatusCount(this.getNoveltyCount()).setNoveltyTo(0)};var a={getNoveltyCount:this.getNoveltyCount,getStatusCount:this.getStatusCount,hasNoveltyObject:this.hasNoveltyObject,hasStatusObject:this.hasStatusObject,setNoveltyTo:this.setNoveltyTo,setStatusTo:this.setStatusTo,incrementNoveltyCount:this.incrementNoveltyCount,decrementNoveltyCount:this.decrementNoveltyCount,incrementStatusCount:this.incrementStatusCount,decrementStatusCount:this.decrementStatusCount,setTotalNoveltyToStatusCount:this.setTotalNoveltyToStatusCount},i=function(t){return t.find(".il-counter-novelty")},o=function(t){return t.find(".il-counter-status")},r=function(t){var n=0;return t.each((function(){var t=e(this).text();n+=parseInt(t)})),n},l=function(t,n){n.each((function(){var n=C(e).getCounterObject(e(this));t(n,e(this))}))};return a};s.default.UI=s.default.UI||{},s.default.UI.maincontrols=s.default.UI.maincontrols||{},s.default.UI.maincontrols.metabar=new class{#t;#S=[];#s;#a;#i;#o;constructor(t,e,n,s,a){this.#t=t,this.#s=e,this.#a=n,this.#i=s,this.#o=a}init(t){if(void 0!==this.#S[t])throw new Error(`Metabar with id '${t}' has already been initialized.`);this.#S[t]=new d(this.#t,t,this.#s,this.#a,this.#i,this.#o)}get(t){return this.#S[t]??null}disengageAll(){Object.values(this.#S).forEach((t=>t.disengageAll()))}}(a.default,s.default.UI.page.isSmallScreen,C(a.default),(()=>s.default.UI.maincontrols.mainbar.disengageAll()),(t=>s.default.UI.maincontrols.slate.disengage(t))),s.default.UI.maincontrols.slate=new class{#t;#m;#b;constructor(t,e,n){this.#t=t,this.#m=e,this.#b=n}onSignal(t,e,n,s){const a=this.#t(`#${s}`),{triggerer:i}=n,o=i.parents(".il-metabar-more-slate").length>0;if("toggle"===t)this.#p(a,i,o);else if("engage"===t)m(a);else{if("replace"!==t)throw new Error(`No such SignalType: ${t}`);this.#C(s,n)}}#p(t,e,n){const s=t.closest(".il-maincontrols-metabar").attr("id"),a=this.#b.get(s);e.attr("id")!==a.getMoreButton().attr("id")?(p(t),n||(S(t)?(e.addClass(f),e.removeClass(y),t.trigger("in_view")):(e.removeClass(f),e.addClass(y)))):a.getEngagedSlates().length>0?a.disengageAllSlates():p(t)}disengage=b;#C(t,e){const{url:n}=e.options;this.#m(t,n,"content")}}(a.default,function(t){return function(e,n,s){t.ajax({url:n,dataType:"html"}).done((function(n){var a=t("
    "+n+"
    "),i=a.find("[data-replace-marker='"+s+"']").first();0==i.length?t("#"+e+" [data-replace-marker='"+s+"']").html(n):(t("#"+e+" [data-replace-marker='"+s+"']").first().replaceWith(i),t("#"+e+" [data-replace-marker='"+s+"']").first().after(a.find("[data-replace-marker='script']")))}))}}(a.default),s.default.UI.maincontrols.metabar)}(il,$); diff --git a/public/components/ILIAS/UI/src/templates/js/Tree/tree.js b/public/components/ILIAS/UI/src/templates/js/Tree/tree.js deleted file mode 100755 index bce8245b069d..000000000000 --- a/public/components/ILIAS/UI/src/templates/js/Tree/tree.js +++ /dev/null @@ -1,535 +0,0 @@ -il = il || {}; -il.UI = il.UI || {}; - -(function($, UI) { - UI.tree = (function($) { - var toogle_node_actions = []; - - this.init = function (component_id, highlight_nodes) { - var tree_dom = document.querySelector('#' + component_id); - initNodesForActions($(tree_dom)); - var tree = new TreeLinks(tree_dom); - tree.init(); - } - - this.registerToggleNodeAsyncAction = function (id, action, state_param) { - action += (action.indexOf("?") !== -1 ? "&" : "?") + encodeURIComponent(state_param) + "="; - toogle_node_actions[id] = action; - } - - this.toggleNodeState = function (id, was_expanded) { - var action = toogle_node_actions[id]+was_expanded; - - $.ajax({ - type: 'POST', - url: action - }); - } - - /** - * Interface returned by this function for public use (see return statement bellow) - * The contained functions are implemented bellow - */ - var public_interface = { - init: this.init, - registerToggleNodeAsyncAction: this.registerToggleNodeAsyncAction, - toggleNodeState: this.toggleNodeState - } - - /** - * @private - */ - var initNodesForActions = function (tree_dom) { - tree_dom.find('.c-tree__node .c-tree__node__line .tree__node__line a').click( - function(e) { - let href = $(this).attr('href'); - - if (typeof href === typeof undefined || href === false || href === "#") { - return false; - } - - // Don't propagate event to prevent expanding the node on click - e.stopPropagation(); - } - ); - } - - /** - * The following section contains helper functions and scopes to deal with the keyboard handling as specified in: - * https://www.w3.org/TR/wai-aria-practices/examples/treeview/treeview-2/treeview-2a.html . The code has been - * heavily adapted to fit into the context of trees in ILIAS including async loading. The original version is licensed - * according to the W3C Software License at https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document - * - * Note that the in the following code is only used internally by UI.tree - */ - - /** - * @private - */ - var TreeLinks = function (node) { - this.domNode = node; - - this.treeitems = []; - this.firstChars = []; - - this.firstTreeitem = null; - this.lastTreeitem = null; - - }; - - TreeLinks.prototype.init = function () { - // Check whether node is a DOM element - if (!this.domNode) { - return; - } - let items = []; - let chars = []; - this.findAndInitItems(this.domNode, this, false, items, chars); - this.treeitems = items; - this.firstChars = chars; - - this.updateVisibleTreeitems(); - - this.firstTreeitem.domNode.tabIndex = 0; - - }; - - TreeLinks.prototype.insert = function (self, currentItem) { - let items = []; - let chars = []; - self.findAndInitItems(currentItem.domNode, self, false,items,chars); - let current_index = self.getIndexOfItem(self,currentItem); - - items.forEach(function(item,id){ - self.treeitems.splice(current_index+1,0,item); - self.firstChars.splice(current_index+1,0,chars[id]); - current_index++; - }); - }; - - TreeLinks.prototype.findAndInitItems = function findTreeitems (node, tree, group,items,chars) { - var elem = node.firstElementChild; - var ti = group; - - while (elem) { - let is_valid_list_item = (elem.tagName.toLowerCase() === 'li' - && elem.firstElementChild.tagName.toLowerCase() === 'span' - && elem.getAttribute("role")!="none"); - let is_link = elem.tagName.toLowerCase() === 'a'; - if (is_valid_list_item || is_link) { - ti = new TreeitemLink(elem, tree, group); - ti.init(); - items.push(ti); - chars.push(ti.label.substring(0, 1).toLowerCase()); - } - - if (elem.firstElementChild) { - tree.findAndInitItems(elem, tree, ti,items,chars); - } - - elem = elem.nextElementSibling; - } - } - - TreeLinks.prototype.getIndexOfItem = function (tree, treeitem){ - let index_of_item = undefined; - tree.treeitems.forEach(function(item, id){ - if (item === treeitem) { - index_of_item = id; - } - }); - return index_of_item; - } - - - TreeLinks.prototype.setFocusToItem = function (treeitem) { - this.treeitems.forEach(function(item, id){ - if (item === treeitem) { - item.domNode.tabIndex = 0; - item.domNode.focus(); - } - else { - item.domNode.tabIndex = -1; - } - }); - }; - - TreeLinks.prototype.setFocusToNextItem = function (currentItem) { - let next_index = this.getIndexOfItem(this,currentItem)+1; - while(next_index < this.treeitems.length){ - let nextItem = this.treeitems[next_index]; - if(nextItem.isVisible){ - this.setFocusToItem(nextItem); - return; - } - next_index++; - } - }; - - TreeLinks.prototype.setFocusToPreviousItem = function (currentItem) { - let prev_index = this.getIndexOfItem(this,currentItem)-1; - while(prev_index >= 0){ - let prevItem = this.treeitems[prev_index]; - if(prevItem.isVisible){ - this.setFocusToItem(prevItem); - return; - } - prev_index--; - } - }; - - TreeLinks.prototype.setFocusToParentItem = function (currentItem) { - if (currentItem.groupTreeitem) { - this.setFocusToItem(currentItem.groupTreeitem); - } - }; - - TreeLinks.prototype.setFocusToFirstItem = function () { - this.setFocusToItem(this.firstTreeitem); - }; - - TreeLinks.prototype.setFocusToLastItem = function () { - this.setFocusToItem(this.lastTreeitem); - }; - - TreeLinks.prototype.expandTreeitem = function (currentItem) { - if (currentItem.isExpandable) { - currentItem.domNode.setAttribute('aria-expanded', true); - if(currentItem.domNode.getAttribute('data-async_loaded') === "false"){ - this.loadSubTreeAsync(this,currentItem); - }else{ - this.updateVisibleTreeitems(); - } - il.UI.tree.toggleNodeState(currentItem.domNode.id,0); - } - }; - - TreeLinks.prototype.loadSubTreeAsync = function (tree, currentItem){ - $.ajax({ - url: currentItem.domNode.getAttribute('data-async_url'), - dataType: 'html' - }).done( - function(html) { - currentItem.domNode.setAttribute('data-async_loaded', "true"); - - if(!html) { - currentItem.domNode.classList.remove('expandable'); - currentItem.domNode.removeAttribute('data-async_loaded'); - } - $(currentItem.domNode).children('ul').append(html); - tree.insert(tree, currentItem); - tree.updateVisibleTreeitems(); - } - ); - } - - TreeLinks.prototype.expandAllSiblingItems = function (currentItem) { - let self = this; - self.treeitems.forEach(function(item){ - if ((item.groupTreeitem === currentItem.groupTreeitem) && item.isExpandable) { - self.expandTreeitem(item); - } - }); - }; - - TreeLinks.prototype.collapseTreeitem = function (currentItem) { - - var groupTreeitem = false; - - if (currentItem.isExpanded()) { - groupTreeitem = currentItem; - } - else { - groupTreeitem = currentItem.groupTreeitem; - } - - if (groupTreeitem) { - groupTreeitem.domNode.setAttribute('aria-expanded', false); - this.updateVisibleTreeitems(); - this.setFocusToItem(groupTreeitem); - il.UI.tree.toggleNodeState(groupTreeitem.domNode.id,1); - } - }; - - TreeLinks.prototype.updateVisibleTreeitems = function () { - - this.firstTreeitem = this.treeitems[0]; - - for (var i = 0; i < this.treeitems.length; i++) { - var ti = this.treeitems[i]; - - var parent = ti.domNode.parentNode; - - ti.isVisible = true; - - while (parent && (parent !== this.domNode)) { - - if (parent.getAttribute('aria-expanded') == 'false') { - ti.isVisible = false; - } - parent = parent.parentNode; - } - - if (ti.isVisible) { - this.lastTreeitem = ti; - } - } - - }; - - TreeLinks.prototype.setFocusByFirstCharacter = function (currentItem, char) { - var start, index, char = char.toLowerCase(); - - // Get start index for search based on position of currentItem - start = this.treeitems.indexOf(currentItem) + 1; - if (start === this.treeitems.length) { - start = 0; - } - - // Check remaining slots in the menu - index = this.getIndexFirstChars(start, char); - - // If not found in remaining slots, check from beginning - if (index === -1) { - index = this.getIndexFirstChars(0, char); - } - - // If match was found... - if (index > -1) { - this.setFocusToItem(this.treeitems[index]); - } - }; - - TreeLinks.prototype.getIndexFirstChars = function (startIndex, char) { - for (var i = startIndex; i < this.firstChars.length; i++) { - if (this.treeitems[i].isVisible) { - if (char === this.firstChars[i]) { - return i; - } - } - } - return -1; - }; - - /** - * @private - */ - var TreeitemLink = function (node, treeObj, group) { - - // Check whether node is a DOM element - if (typeof node !== 'object') { - return; - } - - node.tabIndex = -1; - this.tree = treeObj; - this.groupTreeitem = group; - this.domNode = node; - this.label = node.textContent.trim(); - this.stopDefaultClick = false; - - if (node.getAttribute('aria-label')) { - this.label = node.getAttribute('aria-label').trim(); - } - - this.isExpandable = false; - this.isVisible = false; - this.inGroup = false; - - if (group) { - this.inGroup = true; - } - - var elem = node.firstElementChild; - - while (elem) { - - if (elem.tagName.toLowerCase() == 'ul') { - elem.setAttribute('role', 'group'); - this.isExpandable = true; - break; - } - - elem = elem.nextElementSibling; - } - - - if(node.getAttribute("data-async_loaded") !== null){ - this.isExpandable = true; - } - - this.keyCode = Object.freeze({ - RETURN: 13, - SPACE: 32, - PAGEUP: 33, - PAGEDOWN: 34, - END: 35, - HOME: 36, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40 - }); - }; - - TreeitemLink.prototype.init = function () { - this.domNode.tabIndex = -1; - - if (!this.domNode.getAttribute('role')) { - this.domNode.setAttribute('role', 'treeitem'); - } - - this.domNode.addEventListener('keydown', this.handleKeydown.bind(this)); - this.domNode.addEventListener('click', this.handleClick.bind(this)); - }; - - TreeitemLink.prototype.isExpanded = function () { - if (this.isExpandable) { - return this.domNode.getAttribute('aria-expanded') === 'true'; - } - - return false; - - }; - - TreeitemLink.prototype.handleKeydown = function (event) { - var tgt = event.currentTarget, - flag = false, - char = event.key, - clickEvent; - - function isPrintableCharacter (str) { - return str.length === 1 && str.match(/\S/); - } - - function printableCharacter (item) { - if (char == '*') { - item.tree.expandAllSiblingItems(item); - flag = true; - } - else { - if (isPrintableCharacter(char)) { - item.tree.setFocusByFirstCharacter(item, char); - flag = true; - } - } - } - - this.stopDefaultClick = false; - - if (event.altKey || event.ctrlKey || event.metaKey) { - return; - } - - if (event.shift) { - if (event.keyCode == this.keyCode.SPACE || event.keyCode == this.keyCode.RETURN) { - event.stopPropagation(); - this.stopDefaultClick = true; - } - else { - if (isPrintableCharacter(char)) { - printableCharacter(this); - } - } - } - else { - switch (event.keyCode) { - case this.keyCode.SPACE: - case this.keyCode.RETURN: - if (this.isExpandable) { - if (this.isExpanded()) { - this.tree.collapseTreeitem(this); - } - else { - this.tree.expandTreeitem(this); - } - flag = true; - } - else { - event.stopPropagation(); - this.stopDefaultClick = true; - } - break; - - case this.keyCode.UP: - this.tree.setFocusToPreviousItem(this); - flag = true; - break; - - case this.keyCode.DOWN: - this.tree.setFocusToNextItem(this); - flag = true; - break; - - case this.keyCode.RIGHT: - if (this.isExpandable) { - if (this.isExpanded()) { - this.tree.setFocusToNextItem(this); - } - else { - this.tree.expandTreeitem(this); - } - } - flag = true; - break; - - case this.keyCode.LEFT: - if (this.isExpandable && this.isExpanded()) { - this.tree.collapseTreeitem(this); - flag = true; - } - else { - if (this.inGroup) { - this.tree.setFocusToParentItem(this); - flag = true; - } - } - break; - - case this.keyCode.HOME: - this.tree.setFocusToFirstItem(); - flag = true; - break; - - case this.keyCode.END: - this.tree.setFocusToLastItem(); - flag = true; - break; - - default: - if (isPrintableCharacter(char)) { - printableCharacter(this); - } - break; - } - } - - if (flag) { - event.stopPropagation(); - event.preventDefault(); - } - }; - - TreeitemLink.prototype.handleClick = function (event) { - if (event.target !== this.domNode - && event.target !== this.domNode.firstElementChild - && this.domNode.getAttribute("data-async_loaded") !== undefined) { - return; - } - - if (this.isExpandable) { - if (this.isExpanded()) { - this.tree.collapseTreeitem(this); - } - else { - this.tree.expandTreeitem(this); - } - } - }; - - /** - * End of section concerning keyboard handling for wcag specs. - */ - return public_interface; - })($); -})($, il.UI); \ No newline at end of file diff --git a/public/components/ILIAS/WebAccessChecker/web_access_attach.php b/public/components/ILIAS/WebAccessChecker/web_access_attach.php deleted file mode 100755 index d24d9d290604..000000000000 --- a/public/components/ILIAS/WebAccessChecker/web_access_attach.php +++ /dev/null @@ -1,4 +0,0 @@ - li:before { @font-face { font-family: "Glyphicons Halflings"; - src: url("./fonts/bootstrap/glyphicons-halflings-regular.eot"); - src: url("./fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("./fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("./fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("./fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("./fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); + src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot"); + src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); } .glyphicon { position: relative; @@ -9849,7 +9844,6 @@ td.c-table-data__cell--highlighted { width: 5rem; } -/* Component parts from old delos.scss */ div#agreement { width: 100%; height: 375px; @@ -10542,7 +10536,6 @@ div.il_info { border-color: #dddddd; } -/* Adapted from Bootstrap 3 */ .fade { opacity: 0; -webkit-transition: opacity 0.15s linear; @@ -11175,7 +11168,6 @@ tbody.collapse.in { clip: auto; } -/* Legacy Modules & Services */ /* Modules/Bibliographic */ span.bibl_text_inline_Emph { font-style: italic; @@ -18538,6 +18530,13 @@ img.ilUserXXSmall { outline: 3px solid #0078D7; } +/* +* Components +*/ +/* UI Framework */ +/* Component parts from old delos.scss */ +/* Adapted from Bootstrap 3 */ +/* Legacy Modules & Services */ /* These classes are used to limit the number of rows when displaying larger chunks of text. The mixin receives $height-in-rows as an integer. The classes il-multi-line-cap-2,3,5,10 diff --git a/templates/default/delos.css.map b/templates/default/delos.css.map index 07353f682527..7beb26d85b2d 100644 --- a/templates/default/delos.css.map +++ b/templates/default/delos.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["020-dependencies/_index.scss","020-dependencies/modifications/datetimepicker/bootstrap-datetimepicker.scss","030-tools/_tool_browser-prefixes.scss","010-settings/_settings_typography.scss","030-tools/_tool_screen-reader-only.scss","010-settings/_settings_borders.scss","010-settings/_settings_color-palette.scss","010-settings/_settings_button.scss","010-settings/legacy-settings/_legacy-settings_menu.scss","070-components/UI-framework/Dropdown/_ui-component_dropdown.scss","030-tools/legacy-bootstrap-mixins/_nav-divider.scss","050-layout/basics/_layout_spacing-variables.scss","020-dependencies/modifications/_jquery-autocomplete.scss","020-dependencies/modifications/_additions_tinymce.scss","020-dependencies/modifications/_additions_yui2.scss","040-normalize/_index.scss","040-normalize/_normalize_print.scss","040-normalize/_normalize_typography.scss","040-normalize/_normalize_input.scss","040-normalize/_normalize_structure.scss","040-normalize/_normalize_table.scss","050-layout/_layout_grid.scss","050-layout/_layout_container.scss","050-layout/_layout_element-bar.scss","050-layout/_layout_visibility-utilities.scss","060-elements/_index.scss","060-elements/_elements_html-body.scss","060-elements/_elements_input.scss","010-settings/legacy-settings/_legacy-settings_form.scss","060-elements/_elements_lists.scss","060-elements/_elements_media.scss","060-elements/_elements_objects.scss","060-elements/_elements_tables.scss","060-elements/_elements_typography.scss","030-tools/_tool_focus-outline.scss","070-components/_index.scss","070-components/UI-framework/_ui-component_tooltip.scss","030-tools/_tool_typography-mixins.scss","070-components/UI-framework/Breadcrumbs/_ui-component_breadcrumbs.scss","050-layout/standardpage/_layout_standardpage.scss","070-components/UI-framework/Button/_ui-component_button.scss","030-tools/_tool_buttons.scss","070-components/UI-framework/Button/_ui-component_tag.scss","070-components/UI-framework/Button/_ui-component_toggle.scss","070-components/UI-framework/Card/_ui-component_card.scss","010-settings/legacy-settings/_legacy-settings_panel.scss","070-components/UI-framework/Chart/_ui-component_chart.scss","010-settings/legacy-settings/_legacy-settings_chart.scss","070-components/UI-framework/Counter/_ui-component_counter.scss","070-components/UI-framework/Deck/_ui-component_deck.scss","070-components/UI-framework/Divider/_ui-component_divider.scss","070-components/UI-framework/Dropzone/_ui-component_dropzone.scss","010-settings/legacy-settings/_legacy-settings_dropzone.scss","070-components/UI-framework/Entity/_ui-component_entity.scss","070-components/UI-framework/Input/_ui-component_tag.scss","070-components/UI-framework/Input/_ui-component_password.scss","070-components/UI-framework/Input/_ui-component_radio.scss","070-components/UI-framework/Input/_ui-component_multiselect.scss","070-components/UI-framework/Input/_ui-component_textarea.scss","070-components/UI-framework/Input/_ui-component_filter.scss","070-components/UI-framework/Input/_ui-component_duration.scss","070-components/UI-framework/Input/_ui-component_file.scss","010-settings/legacy-settings/_legacy-settings_ui-input-file.scss","070-components/UI-framework/Input/_ui-component_markdown.scss","070-components/UI-framework/Input/_ui-component_rating.scss","070-components/UI-framework/Input/_ui-component_input.scss","070-components/UI-framework/Item/_ui-component_item.scss","070-components/UI-framework/Launcher/_ui-component_launcher.scss","010-settings/legacy-settings/_legacy-settings_symbol.scss","070-components/UI-framework/Layout/_ui-component_standardpage.scss","010-settings/_settings_header.scss","010-settings/_settings_footer.scss","050-layout/standardpage/_layout_standardpage-mobile.scss","070-components/UI-framework/Layout/_ui-component_alignment.scss","070-components/UI-framework/Link/_ui-component_link.scss","070-components/UI-framework/Listing/_ui-component_properties.scss","030-tools/_tool_clearfix.scss","070-components/UI-framework/Listing/_ui-component_characteristic_value.scss","050-layout/basics/_layout_positioning.scss","070-components/UI-framework/Listing/_ui-component_workflow.scss","070-components/UI-framework/Listing/_ui-component_entitylisting.scss","070-components/UI-framework/MainControls/Slate/_ui-component_slate.scss","070-components/UI-framework/MainControls/_ui-component_metabar.scss","030-tools/_tool_multi-line-cap.scss","070-components/legacy/_component_screen-reader-only.scss","070-components/UI-framework/MainControls/_ui-component_mainbar.scss","070-components/UI-framework/MainControls/_ui-component_footer.scss","070-components/UI-framework/MainControls/_ui-component_mode_info.scss","070-components/UI-framework/MainControls/_ui-component_system_info.scss","070-components/UI-framework/Menu/_ui-component_drilldown.scss","070-components/UI-framework/MessageBox/_ui-component_messagebox.scss","070-components/UI-framework/Modal/_ui-component_modal.scss","070-components/UI-framework/Panel/_ui-component_panel.scss","030-tools/_tool_border-radius.scss","050-layout/_layout_breakpoints.scss","070-components/UI-framework/Player/_ui-component_player.scss","020-dependencies/modifications/webui-popover/jquery.webui-popover.scss","070-components/UI-framework/Popover/_ui-component_popover.scss","070-components/UI-framework/Symbol/_ui-component_icon.scss","070-components/UI-framework/Symbol/_ui-component_glyph.scss","070-components/UI-framework/Symbol/_ui-component_avatar.scss","070-components/UI-framework/Table/_ui-component_table.scss","030-tools/_tool_highlighted-box.scss","070-components/UI-framework/Toast/_ui-component_toast.scss","070-components/UI-framework/Tree/_ui-component_tree.scss","010-settings/legacy-settings/_legacy-settings_tree.scss","070-components/UI-framework/ViewControl/_ui-component_viewcontrol.scss","070-components/legacy/_component_agreement.scss","070-components/legacy/_component_alert.scss","070-components/legacy/_component_bottom-center-area.scss","070-components/legacy/_component_headline.scss","070-components/legacy/_component_helpsidebar.scss","070-components/legacy/_component_icon.scss","070-components/legacy/_component_LeftNavSpace.scss","070-components/legacy/_component_link.scss","070-components/legacy/_component_map.scss","070-components/legacy/_component_media-object.scss","070-components/legacy/_component_overlay.scss","070-components/legacy/_component_rightPanel.scss","070-components/legacy/_component_delostable.scss","070-components/legacy/_component_well.scss","070-components/legacy/_component_php.scss","070-components/legacy/_component_animated-collapse-fade.scss","070-components/legacy/_component_btn-group.scss","050-layout/_layout_responsive-img.scss","070-components/legacy/_component_carousel.scss","070-components/legacy/_component_input-group.scss","070-components/legacy/Modules/_component_bibliographic.scss","070-components/legacy/Modules/_component_blog.scss","070-components/legacy/Modules/_component_bookingmanager.scss","070-components/legacy/Modules/_component_chatroom.scss","070-components/legacy/Modules/_component_course.scss","070-components/legacy/Modules/_component_datacollection.scss","070-components/legacy/Modules/_component_excercise.scss","070-components/legacy/Modules/_component_forum.scss","070-components/legacy/Modules/_component_learningmodule.scss","070-components/legacy/Modules/_component_learningsequence.scss","070-components/legacy/Modules/_component_lticonsumer.scss","070-components/legacy/Modules/_component_mediacast.scss","070-components/legacy/Modules/_component_mediapool.scss","070-components/legacy/Modules/_component_orgunit.scss","070-components/legacy/Modules/_component_poll.scss","070-components/legacy/Modules/_component_portfolio.scss","070-components/legacy/Modules/_component_scormaicc.scss","070-components/legacy/Modules/_component_survey.scss","070-components/legacy/Modules/_component_test_legacy.scss","070-components/legacy/Modules/_component_test.scss","070-components/legacy/Modules/_component_wiki.scss","070-components/legacy/Modules/_component_workspacefolder.scss","070-components/legacy/Modules/_component_studyprogramme.scss","070-components/legacy/Services/_component_accesscontrol.scss","070-components/legacy/Services/_component_accordion.scss","070-components/legacy/Services/_component_awareness.scss","070-components/legacy/Services/_component_badge.scss","070-components/legacy/Services/_component_block.scss","070-components/legacy/Services/_component_bookmarks.scss","070-components/legacy/Services/_component_calendar.scss","070-components/legacy/Services/_component_chart.scss","070-components/legacy/Services/_component_container.scss","070-components/legacy/Services/_component_copage.scss","070-components/legacy/Services/_component_fileupload.scss","070-components/legacy/Services/_component_form.scss","070-components/legacy/Services/_component_help.scss","070-components/legacy/Services/_component_infoscreen.scss","070-components/legacy/Services/_component_init.scss","070-components/legacy/Services/_component_learninghistory.scss","070-components/legacy/Services/_component_like.scss","070-components/legacy/Services/_component_mail.scss","070-components/legacy/Services/_component_mediaobjects.scss","070-components/legacy/Services/_component_membership.scss","070-components/legacy/Services/_component_navigation.scss","070-components/legacy/Services/_component_news.scss","070-components/legacy/Services/_component_notes.scss","070-components/legacy/Services/_component_object.scss","070-components/legacy/Services/_component_onscreenchat.scss","070-components/legacy/Services/_component_rating.scss","070-components/legacy/Services/_component_search.scss","070-components/legacy/Services/_component_skill.scss","070-components/legacy/Services/_component_style.scss","070-components/legacy/Services/_component_table.scss","070-components/legacy/Services/_component_tags.scss","070-components/legacy/Services/_component_termsofservice.scss","070-components/legacy/Services/UIComponent/_component_advancedselectionlist.scss","070-components/legacy/Services/UIComponent/_component_checklist.scss","070-components/legacy/Services/UIComponent/_component_explorer2.scss","070-components/legacy/Services/UIComponent/_component_groupedlist.scss","070-components/legacy/Services/UIComponent/_component_lightbox.scss","070-components/legacy/Services/UIComponent/_component_modal.scss","070-components/legacy/Services/UIComponent/_component_progressbar.scss","070-components/legacy/Services/UIComponent/_component_tabs.scss","070-components/legacy/Services/UIComponent/_component_toolbar.scss","010-settings/_settings_layout.scss","070-components/legacy/Services/UIComponent/_component_tooltip.scss","070-components/legacy/Services/_component_user.scss","070-components/legacy/Services/_component_webdav.scss","080-hacks/_index.scss","050-layout/_layout_pull-float.scss"],"names":[],"mappings":"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D;AACA;EACC;;;AEjFD;EACC;EACA;EACA,YhCoBY;;AgClBZ;EACC;EACA;EACA;EACA;EACA;EACA;EACA,anCwBuB;EmCvBvB,WnCHoB;EmCIpB;EACA,cCNiC;;ADQjC;EACC,OhChBa;;AgCiBb;EACC,OhC2BkB;;A4BfrB;EACC,SAjCuB;EAkCvB;;AAEC;EACC;;AIZF;EACC,SCYsC;EDXtC,OhCPsB;EgCQtB;EACA;;;AA4BH;AAEA;EACC;EACA,WnCnDqB;;AmCqDrB;EACC;;AAGD;EARD;IASE;IACA;;;;AAIF;AACA;EACC;;AAEA;EACC;;AAED;EACC;EACA,OhC9DuB;EgC+DvB,SC7CuC;ED8CvC;;;AEpDF;AAAA;ECmFY;EACA;EAQJ;EACA;EACA,QA3BW;EA4BX;EACA;EAGA,atChIoB;EsCiIpB;EACA,aD3HQ;EC4HR;EACA,atCrGiB;EsCsGjB,iBDlIY;ECsIZ,YbzGc;Ea6GV,Wb7GU;Ea+Gd,WtCxIc;EsC0Id;EACA,K9BnIsB;;A8BqGtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,aAfa;;;ADpEvB;AAAA;AAAA;AAAA;EAEE;;;AAKJ;AAAA;EACE,WZb0B;;AYe1B;EAHF;AAAA;IAII;;;;AAIJ;ECwFQ,YbzGc;Ea6GV,Wb7GU;Ea+Gd,WtCxIc;EsC0Id;EACA,K9BnIsB;E8BwItB,kBnCxJQ;EmCyJR,OlCnJgB;EkCoJhB,cDpJS;ECqJT;EACA,cnC5JQ;EmC8JJ,epC5JY;;AoCgKhB;EACI,iBD/JQ;ECiKR,kBArGS;EAsGT,OlChKY;EkCiKZ,cDjKK;ECkKL;EACA,cAzGS;;APlCpB;EACC,SAjCuB;EAkCvB;;AOgJM;EACI,WDjKgB;ECmKhB,kBAvGU;EAwGV,OlC9KY;EkC+KZ,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;AAAA;EAEI,kBlC1JS;EkC2JT,cDxLK;ECyLL;EACA,clC5Ja;EkC6Jb,OlC/JY;EkCgKZ,QA7FU;EA8FV;;AAqBJ;EACI,kBlCpMQ;EkCqMR,cDzJe;EC0Jf;EACA,cnC5NI;EmC6NJ,OnC9LI;;;AkC0ChB;ECiEQ,YbzGc;Ea6GV,Wb7GU;Ea+Gd,WtCxIc;EsC0Id;EACA,K9BnIsB;E8BwItB,kBlCzIY;EkC0IZ,OlC5Ie;EkC6If,cDpJS;ECqJT;EACA,clC3IgB;EkC6IZ,epC5JY;;AoCgKhB;EACI,iBD/JQ;ECiKR,kBArGS;EAsGT,OlCzJW;EkC0JX,cDjKK;ECkKL;EACA,cAzGS;;APlCpB;EACC,SAjCuB;EAkCvB;;AOgJM;EACI,WDjKgB;ECmKhB,kBAvGU;EAwGV,OlCvKW;EkCwKX,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;EAEI,kBlC1JS;EkC2JT,cDxLK;ECyLL;EACA,clC5Ja;EkC6Jb,OlC/JY;EkCgKZ,QA7FU;EA8FV;;AAqBJ;EACI,kBlCpMQ;EkCqMR,cDlIe;ECmIf;EACA,clC3MY;EkC4MZ,OnC9LI;;;AkC4DhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECsBY;EACA;EAQJ;EACA;EACA,QA3BW;EA4BX;EACA;EAGA,atChIoB;EsCiIpB;EACA,aD3HQ;EC4HR;EACA,atCrGiB;EsCsGjB,iBDlIY;ECsIZ,YlC5GmB;EkCgHf,WlChHe;EkCkHnB,WtCxIc;EsC0Id;EACA,K9BnIsB;E8BwItB,kBnC5HU;EmC6HV,OnCzJQ;EmC0JR,cDpJS;ECqJT;EACA,cnChIU;EmCkIN,epCvJuB;;AoC8G3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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;EACA;;AAEA;EACE,OCdgC;;ADiBlC;EACE;EACA,WClD+B;EDmD/B,WCjD+B;EDkD/B;EACA;;AAEA;EACE;EACA;EACA,WC1D6B;ED2D7B,YCzD6B;;AD2D7B;EACE,QClD0B;EDmD1B;EACA,cC5DiC;ED6DjC;;AAGF;EACE;EACA;;AAGA;EACE,cClEkC;;ADsEpC;EACE,cCrEiC;;ADyErC;EACE,QChE4B;;ADkE9B;EACE,QCrEyB;;ADuE3B;EACE,QCpE4B;;ADsE9B;EACE,QCrEwB;;ADwE1B;EACE;;AAGA;EACE,W3CnGa;E2CoGb,a3CxEe;E2C0Ef,MC9EgC;;ADgFlC;EACE;EACA,MClFgC;;ADoFlC;AAAA;EAEE;EACA,MCrF+B;;ADyFnC;EAEE;;AAEA;EACE,QC1GmC;ED2GnC;;AAEF;EACE,MChH4B;EDiH5B;;AAIJ;EACE;;AAOJ;EACE,WC1GkC;ED2GlC,WCzGkC;;AD2GlC;EACE,WC9GgC;ED+GhC,YC7GgC;;AD+GhC;EACE,QC1G6B;ED2G7B,cC/IoC;;ADkJtC;EACE,cCnJoC;;ADsJtC;EACE,QC/G+B;;ADiHjC;EACE,QChH4B;;ADmH9B;EACE,QCxHiC;EDyHjC;EACA,cC9HwC;ED+HxC;EAEA;;AAEF;EACE;;;AAQV;AACA;AACA;AACA;EACE,anCxL4B;EmCyL5B,gBnCzL4B;;;AmC4L9B;EACE,anC7L4B;EmC8L5B,gBnC9L4B;;;AqCa9B;EACE;EACA,W7CbqB;E6CcrB,aAjBuB;EAkBvB;EACA;EACA;EACA;EACA,O1CJW;E0CKX;EACA,e3CpBiC;;A2CqBjC;EACE;;;AAIJ;EACE;EACA,W7CzBqB;;;A6C4BvB;EACE,SAtCmB;EAuCnB;EACA,KA1BgC;EA2BhC,kB1ClCiB;;;A0CoCnB;EACE,SA5CmB;EA6CnB;EACA,QAtCkC;EAuClC,kB1C9BuB;;;A0CkCvB;EACA,aAlDuB;EAmDvB,W7ChDqB;E6CiDrB,SAtDmB;EAuDnB;;;AC3DA;EACE;EACA;EACA,etCS0B;;AsCP1B;EACE,ctCgBqB;EsCfrB,etCeqB;EsCdrB,etCFsB;;AsCMtB;EACE;;AAGF;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EACA,WlE5GqB;EkE6GrB;EACA;EACA,O/D5Fe;;;A+D+FhB;EACC;;;AAGD;EACC;EACA;EACA,SAjIsC;;;AAqIvC;EACC;EACA;EACA;EACA;EACA,O9B/HsB;;A8BsIvB;EACC;EACA;EACA,SAnJiC;;;AAuJlC;EACC;EACA;;;AAID;EACC;;;AAGD;EAIC;EACA;EACA;;AALA;EACC;;AAKD;EACI;EACA;;;AAIL;AACA;EACC,kB/DhKY;E+DiKZ;EACA;EACA,QE1LkB;;;AF8LnB;AAAA;AAAA;AAAA;AAAA;AASC;EADD;IAEE;;;;AAGF;EAEE;IACC;;;AAKH;EAEE;IACC;;EAED;AAAA;IAEC;IACA;;;AAKH;EAEC;IACC,Y/D5MW;I+D6MX;IACA;IACA;;EACA;IACC;IACA;IACA,SApOoC;IAqOpC;;EACA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAED;IACC;IACA;IACA;IACA;IACA,Y9B7MmB;;E8B+MpB;IACC;IACA;IACA;IACA;;EAIH;IACC;IACA;;EACA;IACC;IACA;IACA;IACA;IACA;;EACA;IACC;IACG;IACH;IACA;IACA;IACA;;EACA;IACC,Y9BxOkB;;E8B2OnB;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SA7RmC;;EA8RnC;IACC;;EAIF;IAEC;;EAQL;IACC;IACA;IACA;IACA;IACA;;EAID;IACC;IACG,QGpUkC;IHqUlC;IACA;IACH,Y9BlRsC;;E8BsRvC;IACC,OG1UkC;;EH8UnC;IACC;;EAID;IACC;;EAGD;IACC;;EAEA;IACC;;EAED;IACC;IACA;;EAGD;IACC;IACA;IACA,O/DpVgB;I+DqVhB,WlEtVmB;IkEuVnB;IACA;IACA;IACA;;EACA;IACI;IACA;IACA,WlE9Ve;IkE+Vf,c1D7WW;;E0DiXhB;IACC;;EAED;AAAA;AAAA;AAAA;AAAA;AAAA;IAOC,Y/DpWU;I+DqWV,c/DrWU;I+DsWV,O/D9WgB;I+D+WhB;;EAGD;IACC;;EAKF;IACC;IACA;;EAID;IACC;IACA;IACA;IACA,YGpZsC;IH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EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AASX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AAMjD;EACC,O7F1Te;;A6F4Tf;EACC,O7FrTiB;;A6FsTjB;EACC,O7FvTgB;;A6F2TlB;EACC,O7FlTuB;E6FmTvB;;AAGD;EACC,O7F5RoB;E6F6RpB;;;AAKD;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAID;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;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ACA;EACA;;AACA;EACC,ctHTgB;;;AsHkBlB;EAHC;;;AAMD;EANC;;;AASD;EATC;;;AAYD;EAZC;;;AAeD;EAfC;;;AAkBD;EAlBC;;;AAqBD;EArBC;;;AAwBD;EAxBC;;;AA2BD;EA3BC;;;AAsCD;EANC;EACA;EACA;EAlCA;;;AAyCD;EATC;EACA;EACA;EAlCA;;;AA4CD;EAZC;EACA;EACA;EAlCA;;;AA+CD;EAfC;EACA;EACA;EAlCA;;;AAkDD;EAlBC;EACA;EACA;EAlCA;;;AAqDD;EArBC;EACA;EACA;EAlCA;;;AAwDD;EAxBC;EACA;EACA;EAlCA;;;AA2DD;EA3BC;EACA;EACA;EAlCA;;;AA8DD;EA9BC;EACA;EACA;EAlCA;;;AChBD;AAEA;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAKH;EAIC;EACA;EACA;EACA;;AANA;EACC;;;AAQF;EACC;IACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,O5HvDoB;E4HwDpB,W/HtFoB;E+HuFpB;EACA;EACA;;AAGD;EACC;EACA,O5HhEoB;E4HiEpB;EACA;EACA;;AAGD;EACC,kB5HtFgB;E4HuFhB;EACA,W/HvGoB;;A+H0GrB;EACC,O5HpFc;;A4HuFf;EACC,O5HnFoB;;A4HsFrB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,kB5HzGgB;;A4H4GjB;EACC;EACA;EhIzEA,oBgI0EA;EhIzEQ,YgIyER;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;;ACzKF;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,O7HmBe;E6HlBf;EACA;EACA;;;AAED;EACC;EACA,O7HYe;E6HXf;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC,WhIxCqB;;;AgI2CtB;EACC,WhIxCqB;EgIyCrB;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAID;AAEA;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EjIfE,oBiIgBD;EjIfS,YiIeT;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kB7H3EwB;;;A6H8EzB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AC7GD;AAEA;EACC;;;AAGD;EACC;EACA,WjIIqB;;;AiIDtB;EACC;EACA,WjICsB;;;AiIEvB;EACE;;;AAGF;EACC,ajIewB;EiIdxB;EACA,WjIXqB;EiIYlB;EACA;;;AAGJ;EACE;;;AAGF;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AChDD;AAEA;EACC,c1HU+B;E0HT/B,e1HS+B;;;A0HNhC;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,WlIbqB;;;AkIgBtB;EACC;EACA;EACA;;;AAED;EACC,kB/HPiB;E+HQjB;;;AAGD;EACC;;AACA;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA,O/H7DwB;E+H8DxB;EACA;EACA;EACA;;;ACtFD;AAQA;EACC,anI0BwB;;;AmIvBzB;EACC,anIwBwB;;;AmIrBzB;EACC;EACA,anImBwB;;;AmIhBzB;EACC;EACA;EACA;EACA,WnIdqB;;;AmIiBtB;EACC,anIQwB;EmIPxB,WnInBqB;EmIoBrB;;;AAGD;AACA;EACC;EACA;EACA;EACA,kBhIfY;;;AgIkBb;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;;AAKH;EACC;EACA;EACA;EACA;;;AAGD;EACC,Y3HnD8B;E2HoD9B,WnIpDqB;;AmIqDrB;EAHD;IAIE,Y3H/D0B;I2HgE1B,WnIzDqB;;;;AmI6DvB;EACC,OhIlCqB;;;AgIqCtB;EACC;EACA;EACA;;AACA;EAJD;IAKE,c3HhE4B;I2HiE5B;;;AAGA;EADD;IAEE;IACA;;;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;;AAIF;EACC,Y3HrG8B;;;A2HwG/B;EACC;EACA,e3H1G8B;E2H2G9B;;AAEA;EACC,kBhIrGW;EgIsGX;;AAGD;EACC;EACA;;AACA;EACC;;AAED;EACC;;AAGA;EADD;IAEE;;;AAKF;EADD;IAEE;IACA;;;;AAKH;EAEE;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;;AAKH;EACC;EACA;EACA,anItJwB;EmIuJxB,OhIjLkB;;;AgIoLnB;EACC;EACA,anI5JwB;;AmI6JxB;EACC,anIhKuB;;AmIkKxB;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC,Y3HzM8B;;;A2H4M/B;EACC;;;AAGD;EACC,OhIrNkB;;;AgIwNnB;EACC,anI/LwB;;;AmIkMzB;EACC;EACA;EACA;EACA;EACA;EACA;EACA,OhI5Me;EgI6Mf;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACrQD;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;AACA;EACA,kBjINiB;EiIOjB;AACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AC7GD;EACI,kBlIqBS;EkIpBT,oB3FFc;E2FGd,Y3FHc;;A2FIjB;AAAA;EAEC;EACA;EACA;;;AAKD;EACC;;;AAGF;EACC;EACA,kBlIKiB;;AkIJjB;EACC;;AAED;EACC;;;AAMA;EACC;;;AAKH;EACC,kBlIbiB;;AkIejB;EACC;;;AAGF;AAEA;EACC;;;AClDD;AAUA;EACE;EACA;;;AAEF;EACE;EACA,SARmB;EASnB,OAfiB;EAgBjB,QAfkB;;;AAiBpB;ACpBA;EACE;;AACA;EACE;;;AAKF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EACE;EACA;EACA;;AAGF;EACE;EAIA;;AAHA;EACE;;AAKJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIA;EACE;;AAIJ;EACE;;;ACjEJ;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC,kBrIkBiB;EqIjBjB;;;AAGD;EACC;;;AChBC;EACD;EACA;EACA;;AAGC;EACD;;AAGC;EACD;EACA;;AAGC;EACD;EACA;;AAGC;EACD;EACA;EACA;;;AAID;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;ACtDF;AAEA;EACC;EACA,W1ISqB;E0IRrB,OvIQkB;;;AuILnB;EACC;EACA,W1IGqB;E0IFrB,OvIgCqB;;;AuI7BtB;EACC;EACA;EACA;EACA,W1ILqB;E0IMrB;;;AAGD;EACC;EACA;EACA;EACA,W1IbqB;E0IcrB,OvIgBqB;;;AuIbtB;EACC;EACA;;;AAGD;EACC;EACA,W1IxBqB;;;A0I2BtB;EACC;;;AAGD;EACC;EACA,W1IjCqB;;;A0IoCtB;EACC;;;AAGD;EACC,kBvIjDe;;;AuIoDhB;EACC;;;AAGD;EACC,W1I7CqB;;;A2IjBtB;AAEA;EACC;;AACA;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,W3IRqB;A2ISrB;;;AAGD;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EAKC;;AAJA;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;;;AC7DD;AAEA;EACC,OzIiCe;EyIhCf,kBzIwBiB;EyIvBjB;EACA;;;AAGD;EACC,kBzIkBiB;EyIjBjB,OzIyBe;EyIxBf;EACA;EACA;;;AAGD;EACC;EACA,OzIiBe;EyIhBf;EACA;EACA;;;ACpBD;AAEA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IAEC;IACA;AACA;AAAA;AAAA;;EAKD;IAEC;IACA;IACA;;EAGD;IAEC;IACA,erI9C4B;;EqIiD7B;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA,a7ItCuB;I6IuCvB;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA,a7I1EuB;I6I2EvB;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA;IACA,a7IjGuB;I6IkGvB;IACA;;;AAIF;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA,kB1I3IiB;E0I4IjB;;;AAGD;EACC;EACA;;;AAGD;EACC;;AACA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAMA;EACC;;;ACjMH;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EAEI;EACH;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAEI;EACA;EACA;;;AAGJ;EACC;EACA;EACA;EAEA,StIxH+B;;AsIyH/B;EACC,ctI1H8B;EsI2H9B,etI3H8B;;;AsI+HhC;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EAEC;EACA;EACA;;;AAGD;EAEC;EACA;EACA;;;AAGD;EAEC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASI;;;AAEJ;AAAA;EAGI;;;AAEJ;EAEI;EACA;;;AAEJ;EAEI;EACA;EACA;;;AAKJ;EAEI;;;AAEJ;EAEI;;;AAEJ;AAAA;EAGI;;;AAGJ;EAEC;;;AAED;EAEC;;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BsJrBD;EtJsBS,YsJtBT;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA,kBlJrCY;;A4BjBZ;EACC;EACG;;AAEJ;EACC;EACA,SAZuB;EAavB;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA,QArBsB;EAsBtB,SAvBsB;;AsHkExB;EACC;EACA;;AAEA;EACC;EACA;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC,OlJ/CqB;EkJgDrB,WrJ9EqB;EqJ+ErB;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kBlJ9EiB;EkJ+EjB;EACA,WrJ/FqB;;;AqJkGtB;EACC,OlJ5Ee;;;AkJ+EhB;EACC,OlJ3EqB;;;AkJ8EtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;AACC;EACA;EACA;EACA;AACA;AACA;AACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAIA;EACC;EACA;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC,kBlJ9JiB;EkJ+JjB,OlJrJqB;;;AkJwJtB;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;;;ACjND;AAEA;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAIF;EACC;EACA;EACA;;;AAKD;EACC;EACA;EACA;;;ACnDF;AAEA;EACC;EACA;EACA;EACA,evJoByB;EuJnBzB;EACA;EACA;EACA,kBpJiBiB;EoJhBjB;EACA;EACA,S/IXiB;;;A+IclB;EACC,kBpJUiB;;;AoJPlB;AAAA;AAEC;EACA,avJewB;EuJdxB;EACA;EACA;EACA,OpJVkB;EoJWlB;AACA;;;AAGD;EACC,WvJnBsB;;;AuJsBvB;EACC,avJCwB;EuJAxB;EAC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AAA;AAAA;AAAA;AAAA;EAGC;;AAED;EACC;;;AAIF;EACC,kBzJ9JoB;;;AyJkKrB;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,OzJtKkB;EyJuKlB;EACA,W5JxKqB;E4JyKrB;EACA;EACA,kBzJ5JiB;;;AyJgKlB;EACC;EACA;EACA;;;AAGD;EACC,czJ5LoB;;;AyJ+LrB;EAEC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC,kBzJxLY;EyJyLZ;EACA;EACA;EACA;EACA;EACA,W5JzMsB;E4J0MtB;;;AAGD;EACC;;;AAMD;EACC;EACA;;;AAGD;EACC,kBzJ/MY;EyJgNZ;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA,kBzJ9NY;;;AyJiOb;EACC;;;AAED;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;AACA;AACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;EACA,YzJjQY;EyJkQZ;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;AAGE;EACC;EACA;EACA;EACA;EACA;;AAED;EACC,OzJvRkB;EyJwRlB;;AAKF;EACC;;AAIF;EACC;;;AAOF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC,W5JzWqB;E4J0WrB;EACA,kBzJ5ViB;EyJ6VjB;EACA;;;AAGD;EACC;EACA,W5JhXsB;E4JiXtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC,kBzJrZY;EyJsZZ;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kBzJzbY;EyJ0bZ;EACA;EACA;EACA;;;AAGD;EACC,kBzJjcY;;;AyJocb;EACC;EACA,W5J/cqB;E4JgdrB;;;AAGD;EACC;EACA,kBzJ5cY;EyJ6cZ;EACA;;;AAGD;AAEA;EACC;EACA;;;AAGD;EACC,czJ9ee;;;AyJifhB;EACC,czJ1ekB;;;AyJ6enB;EACC,czJpfoB;;;AyJufrB;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,OzJreqB;;;AyJwetB;EACC,OzJzeqB;;;AyJ4etB;EACC;;;AAGD;EACC;;;AAGD;EACC,cpJlhB8B;EoJmhB9B,epJnhB8B;EoJohB9B;;AACA;EACC;;AAGA;EACC;EACA;EACA;EACA;EACA,kBzJ9gBe;EyJ+gBf;EACA;;AAIF;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA,W5JvjBqB;E4JwjBrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA,kBzJ1jBiB;EyJ2jBjB;;;AAGD;EACC,kBzJ1jBiB;;;AyJ6jBlB;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AAAA;AAAA;EAGC;;;AAGD;EACC;;;AAID;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;;;AAIF;EACC,W5JtsBoB;E4JusBpB,YpJvsB6B;EoJwsB7B,epJjtB0B;;AoJotB3B;EACC;;AAED;EACC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C;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;ACnBD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,WvKGsB;;;AuKAvB;EACC;EACA;EACA;EACA;EACA;EACA,kBpKamB;;;AoKVpB;EACC;EACA;EACA;EACA;;;ACtBD;AAEA;EACC;;AACA;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;EACA;;AAED;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC,kBrKlBkB;EqKmBlB;EACA;EACA,WxKvBsB;EwKwBtB;EACA;EACA;;AACA;EACC;EACA;;;AAIF;AAEA;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA,kBtKpD0B;EsKqD1B;EACA;;AACA;EATD;IAUE;;;AAGF;EACC;EACA;EACA;;AACA;EACC;EACA;;AACA;EAHD;IAIE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;AAIH;EArBD;IAsBE;;;AAED;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;EACA;EACA;EACA,YrKvEe;EqKwEf,Q9H/Fe;;A8HgGf;EAPD;IAQE;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA,WxK9GoB;EwK+GpB;EACA;EACA;EACA,kBrK1GsB;EqK2GtB;EACA;EACA;EACA;;AACA;EAfD;IAgBE;IACA;IACA;;;AAED;EACC,WxK7HmB;;AwK+HpB;EACC,WxKpImB;;AwKsIpB;EACC;EACA;;AAGF;EACC;;AACA;EAFD;IAGE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAGF;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAKJ;EACC;EACA;;AAED;EACC,kBrK9JgB;;;AqKkKlB;AACC;AAAA;AAAA;;;AAKD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EALD;IAME;;;;AAIF;EACC;EACA;;AAEA;EAJD;IAKE;IACA;;;;AAIF;EACC;;AACA;EAFD;IAGE;;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;EACA;EzK9DC,oByK+DD;EzK9DM,eyK8DN;EzK7DS,YyK6DT;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AClRD;AAEA;AACI;;;AAEJ;EACI;;;AAEJ;EACC,kBtKeY;EsKdZ;;;AAGD;EACC,kBtKUY;;;AsKPb;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AACA;EACC;EACA;;;AAIF;EACC,WzKzBqB;EyK0BrB;;;AAGD;EACC,kBtKfiB;EsKgBjB;EACA;;AAEC;EACC;EACA;;;AAMF;EACC;;;AAIF;EACC;;;AAGD;EACC,WzKhDqB;EyKiDrB,OtK9Be;EsK+Bf;;;AAGD;EACC,WzKxDsB;EyKyDtB;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC;;;AAIF;EACC,ejKzF4B;;;AiK6F5B;EACC;EACA;;;AAIF;EACC,Y/H1GiB;;A+H2GjB;EACC;;;AAIF;EACC;;;ACtHD;AAcA;EACC;EACA;;;AAID;EACC,W1KVsB;E0KWtB;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC,exK7BgB;EwK8BhB,kBvKTY;;AuKUT;EACI;;;AAKR;EACI;;AAEI;EACI,kBvKpBC;;AuKuBD;EACI;;AAGA;EACI;;;ACtDpB;EACC;;;AAIA;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AACA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA,kBxKjCW;;AwKmCX;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA,kBxK1Ia;;AwK4Ib;EACC,W3K5JgB;E2K6JhB;EACA;;AAIF;EACC;EACA;;AAIA;EACC;EACA;EACA;;AAKD;EACC;EACA;;AAMA;EACC,W3K3LgB;;A2K+LlB;EACC;EACA,OxKjKgB;EwKkKhB,W3KhMgB;;A2KsMpB;EACC;EACA;EACA;;AAEA;EACC,W3K9MmB;E2K+MnB;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;;;AAOH;EACC;;AAED;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AChTD;AAEA;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACG;EACA;EACA;;;ACdH;EACC;;AACA;EACC,a7K+BuB;;;A6K1BxB;EACC;EACA;EACA,W7KGoB;E6KFpB;;AAED;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,O1KCe;E0KAf;EACA;EACA;EACA;EACA;E9K8BC,oB8K7BE;E9K8BM,Y8K9BN;EACH;;;AAGD;EACC,kB1KlBiB;E0KmBjB;EACA,W7KrCsB;;A6KsCtB;EACC;;AAED;EACC;EA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A;IACC;;EAED;AAAA;AAAA;AAAA;IACC;;;AAGF;EAZD;AAAA;AAAA;AAAA;IAaE;IACA;;;;AAKD;EAFD;IAGE;;;AAED;EALD;IAME;;;AAED;EARD;IASE;;;;AAID;EADD;IAEE;IACA,kBhLvEW;;;;AgL2Eb;EACC;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;;AACA;EACC;;;AAOH;EACC;;;AC9HF;AAEA;EACC;EACA;EACA;;;AAGD;EACC;EACA,WpLGqB;;;AoLAtB;EACC;EACA;EACA;;;AAGD;EACC;EACA,OjLhBe;;;AiLmBhB;EACC,kBjLQiB;;;AiLLlB;EACC,OjLcqB;EiLbrB,WpLnBsB;EoLoBtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;ACzCD;AAEA;EACC;EACA,kBlLsBiB;;;AkLblB;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA,kBlLJiB;;;AkLOlB;EACC;EACA;EACA;EACA;EACA;EACA,arLFwB;EqLGxB,WrL7BqB;;;AqLgCtB;EACC,WrLjCqB;;;AqLoCtB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAID;EACC,kBlLpCiB;EkLqCjB;;;AAGD;EACC;EACA;EACA;;;AAID;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,WrLhFsB;EqLiFtB;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;EACA;EtL7CC,oBsL8CE;EtL7CM,YsL6CN;;;AAKJ;EACC;;;AAGD;AAAA;EAEC;EACA;EACA;EACA,OlLzFqB;EkL0FrB,enLtHkC;;;AmLyHnC;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACI;;;AAGJ;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC,arLrKqB;EqLsKrB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ACC;IACA;IACA;IACA,oBgHsP+B;IhHrP/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBgHuO+B;IhHtO/B;;EAGD;IACC;;;;AgHwOH;E9J5QC;;;A8JgRD;E9JxRC;;;A8J4RD;E9JxRC;;;A8J4RD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA,WhMnTsB;;;AgMsTvB;EACC;EACA,WhM1TqB;;;AgM6TtB;EACC;EACA,WhMjUsB;;;AgMoUvB;EACC;EACA,WhMpUqB;EgMqUrB;;;AAGD;EACC;EACA,WhM1UqB;EgM2UrB,O7LzUiB;;;A6L4UlB;EACC,ahMvTwB;EgMwTxB;EACA;;;AAGD;EACC;EACA,ahM5TwB;EgM6TxB,O7LrViB;;;A6LwVlB;EACC;EACA,ahMlUwB;EgMmUxB;EACA,O7L5ViB;;;A6L+VlB;EACC,O7LhWiB;E6LiWjB,WhMnWqB;;;AgMsWtB;EACC;EACA,ahMhVwB;;;AgMoVzB;EACC;EACA,ahMtVwB;;;AgMyVzB;EACC;EACA,ahM3VwB;EgM4VxB,WhMpXqB;;;AgMuXtB;EACC,ahM9VwB;;;AgMiWzB;EACC,ahMlWwB;;;AgMqWzB;EACC,O7LlWqB","file":"delos.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["020-dependencies/modifications/datetimepicker/bootstrap-datetimepicker.scss","030-tools/_tool_browser-prefixes.scss","010-settings/_settings_typography.scss","030-tools/_tool_screen-reader-only.scss","010-settings/_settings_borders.scss","010-settings/_settings_color-palette.scss","010-settings/_settings_button.scss","010-settings/legacy-settings/_legacy-settings_menu.scss","070-components/UI-framework/Dropdown/_ui-component_dropdown.scss","030-tools/legacy-bootstrap-mixins/_nav-divider.scss","050-layout/basics/_layout_spacing-variables.scss","020-dependencies/modifications/_jquery-autocomplete.scss","020-dependencies/modifications/_additions_tinymce.scss","020-dependencies/modifications/_additions_yui2.scss","020-dependencies/_index.scss","040-normalize/_normalize_print.scss","040-normalize/_normalize_typography.scss","040-normalize/_normalize_input.scss","040-normalize/_normalize_structure.scss","040-normalize/_normalize_table.scss","040-normalize/_index.scss","050-layout/_layout_grid.scss","050-layout/_layout_container.scss","050-layout/_layout_element-bar.scss","050-layout/_layout_visibility-utilities.scss","060-elements/_elements_html-body.scss","060-elements/_elements_input.scss","010-settings/legacy-settings/_legacy-settings_form.scss","060-elements/_elements_lists.scss","060-elements/_elements_media.scss","060-elements/_elements_objects.scss","060-elements/_elements_tables.scss","060-elements/_elements_typography.scss","030-tools/_tool_focus-outline.scss","060-elements/_index.scss","070-components/UI-framework/_ui-component_tooltip.scss","030-tools/_tool_typography-mixins.scss","070-components/UI-framework/Breadcrumbs/_ui-component_breadcrumbs.scss","050-layout/standardpage/_layout_standardpage.scss","070-components/UI-framework/Button/_ui-component_button.scss","030-tools/_tool_buttons.scss","070-components/UI-framework/Button/_ui-component_tag.scss","070-components/UI-framework/Button/_ui-component_toggle.scss","070-components/UI-framework/Card/_ui-component_card.scss","010-settings/legacy-settings/_legacy-settings_panel.scss","070-components/UI-framework/Chart/_ui-component_chart.scss","010-settings/legacy-settings/_legacy-settings_chart.scss","070-components/UI-framework/Counter/_ui-component_counter.scss","070-components/UI-framework/Deck/_ui-component_deck.scss","070-components/UI-framework/Divider/_ui-component_divider.scss","070-components/UI-framework/Dropzone/_ui-component_dropzone.scss","010-settings/legacy-settings/_legacy-settings_dropzone.scss","070-components/UI-framework/Entity/_ui-component_entity.scss","070-components/UI-framework/Input/_ui-component_tag.scss","070-components/UI-framework/Input/_ui-component_password.scss","070-components/UI-framework/Input/_ui-component_radio.scss","070-components/UI-framework/Input/_ui-component_multiselect.scss","070-components/UI-framework/Input/_ui-component_textarea.scss","070-components/UI-framework/Input/_ui-component_filter.scss","070-components/UI-framework/Input/_ui-component_duration.scss","070-components/UI-framework/Input/_ui-component_file.scss","010-settings/legacy-settings/_legacy-settings_ui-input-file.scss","070-components/UI-framework/Input/_ui-component_markdown.scss","070-components/UI-framework/Input/_ui-component_rating.scss","070-components/UI-framework/Input/_ui-component_input.scss","070-components/UI-framework/Item/_ui-component_item.scss","070-components/UI-framework/Launcher/_ui-component_launcher.scss","010-settings/legacy-settings/_legacy-settings_symbol.scss","070-components/UI-framework/Layout/_ui-component_standardpage.scss","010-settings/_settings_header.scss","010-settings/_settings_footer.scss","050-layout/standardpage/_layout_standardpage-mobile.scss","070-components/UI-framework/Layout/_ui-component_alignment.scss","070-components/UI-framework/Link/_ui-component_link.scss","070-components/UI-framework/Listing/_ui-component_properties.scss","030-tools/_tool_clearfix.scss","070-components/UI-framework/Listing/_ui-component_characteristic_value.scss","050-layout/basics/_layout_positioning.scss","070-components/UI-framework/Listing/_ui-component_workflow.scss","070-components/UI-framework/Listing/_ui-component_entitylisting.scss","070-components/UI-framework/MainControls/Slate/_ui-component_slate.scss","070-components/UI-framework/MainControls/_ui-component_metabar.scss","030-tools/_tool_multi-line-cap.scss","070-components/legacy/_component_screen-reader-only.scss","070-components/UI-framework/MainControls/_ui-component_mainbar.scss","070-components/UI-framework/MainControls/_ui-component_footer.scss","070-components/UI-framework/MainControls/_ui-component_mode_info.scss","010-settings/_settings_shadows.scss","070-components/UI-framework/MainControls/_ui-component_system_info.scss","070-components/UI-framework/Menu/_ui-component_drilldown.scss","070-components/UI-framework/MessageBox/_ui-component_messagebox.scss","070-components/UI-framework/Modal/_ui-component_modal.scss","070-components/UI-framework/Panel/_ui-component_panel.scss","030-tools/_tool_border-radius.scss","050-layout/_layout_breakpoints.scss","070-components/UI-framework/Player/_ui-component_player.scss","020-dependencies/modifications/webui-popover/jquery.webui-popover.scss","070-components/UI-framework/Popover/_ui-component_popover.scss","070-components/UI-framework/Symbol/_ui-component_icon.scss","070-components/UI-framework/Symbol/_ui-component_glyph.scss","070-components/UI-framework/Symbol/_ui-component_avatar.scss","070-components/UI-framework/Table/_ui-component_table.scss","030-tools/_tool_highlighted-box.scss","070-components/UI-framework/Toast/_ui-component_toast.scss","070-components/UI-framework/Tree/_ui-component_tree.scss","010-settings/legacy-settings/_legacy-settings_tree.scss","070-components/UI-framework/ViewControl/_ui-component_viewcontrol.scss","070-components/legacy/_component_agreement.scss","070-components/legacy/_component_alert.scss","070-components/legacy/_component_bottom-center-area.scss","070-components/legacy/_component_headline.scss","070-components/legacy/_component_helpsidebar.scss","070-components/legacy/_component_icon.scss","070-components/legacy/_component_LeftNavSpace.scss","070-components/legacy/_component_link.scss","070-components/legacy/_component_map.scss","070-components/legacy/_component_media-object.scss","070-components/legacy/_component_overlay.scss","070-components/legacy/_component_rightPanel.scss","070-components/legacy/_component_delostable.scss","070-components/legacy/_component_well.scss","070-components/legacy/_component_php.scss","070-components/legacy/_component_animated-collapse-fade.scss","070-components/legacy/_component_btn-group.scss","050-layout/_layout_responsive-img.scss","070-components/legacy/_component_carousel.scss","070-components/legacy/_component_input-group.scss","070-components/legacy/Modules/_component_bibliographic.scss","070-components/legacy/Modules/_component_blog.scss","070-components/legacy/Modules/_component_bookingmanager.scss","070-components/legacy/Modules/_component_chatroom.scss","070-components/legacy/Modules/_component_course.scss","070-components/legacy/Modules/_component_datacollection.scss","070-components/legacy/Modules/_component_excercise.scss","070-components/legacy/Modules/_component_forum.scss","070-components/legacy/Modules/_component_learningmodule.scss","070-components/legacy/Modules/_component_learningsequence.scss","070-components/legacy/Modules/_component_lticonsumer.scss","070-components/legacy/Modules/_component_mediacast.scss","070-components/legacy/Modules/_component_mediapool.scss","070-components/legacy/Modules/_component_orgunit.scss","070-components/legacy/Modules/_component_poll.scss","070-components/legacy/Modules/_component_portfolio.scss","070-components/legacy/Modules/_component_scormaicc.scss","070-components/legacy/Modules/_component_survey.scss","070-components/legacy/Modules/_component_test_legacy.scss","070-components/legacy/Modules/_component_test.scss","070-components/legacy/Modules/_component_wiki.scss","070-components/legacy/Modules/_component_workspacefolder.scss","070-components/legacy/Modules/_component_studyprogramme.scss","070-components/legacy/Services/_component_accesscontrol.scss","070-components/legacy/Services/_component_accordion.scss","070-components/legacy/Services/_component_awareness.scss","070-components/legacy/Services/_component_badge.scss","070-components/legacy/Services/_component_block.scss","070-components/legacy/Services/_component_bookmarks.scss","070-components/legacy/Services/_component_calendar.scss","070-components/legacy/Services/_component_chart.scss","070-components/legacy/Services/_component_container.scss","070-components/legacy/Services/_component_copage.scss","070-components/legacy/Services/_component_fileupload.scss","070-components/legacy/Services/_component_form.scss","070-components/legacy/Services/_component_help.scss","070-components/legacy/Services/_component_infoscreen.scss","070-components/legacy/Services/_component_init.scss","070-components/legacy/Services/_component_learninghistory.scss","070-components/legacy/Services/_component_like.scss","070-components/legacy/Services/_component_mail.scss","070-components/legacy/Services/_component_mediaobjects.scss","070-components/legacy/Services/_component_membership.scss","070-components/legacy/Services/_component_navigation.scss","070-components/legacy/Services/_component_news.scss","070-components/legacy/Services/_component_notes.scss","070-components/legacy/Services/_component_object.scss","070-components/legacy/Services/_component_onscreenchat.scss","070-components/legacy/Services/_component_rating.scss","070-components/legacy/Services/_component_search.scss","070-components/legacy/Services/_component_skill.scss","070-components/legacy/Services/_component_style.scss","070-components/legacy/Services/_component_table.scss","070-components/legacy/Services/_component_tags.scss","070-components/legacy/Services/_component_termsofservice.scss","070-components/legacy/Services/UIComponent/_component_advancedselectionlist.scss","070-components/legacy/Services/UIComponent/_component_checklist.scss","070-components/legacy/Services/UIComponent/_component_explorer2.scss","070-components/legacy/Services/UIComponent/_component_groupedlist.scss","070-components/legacy/Services/UIComponent/_component_lightbox.scss","070-components/legacy/Services/UIComponent/_component_modal.scss","070-components/legacy/Services/UIComponent/_component_progressbar.scss","070-components/legacy/Services/UIComponent/_component_tabs.scss","070-components/legacy/Services/UIComponent/_component_toolbar.scss","070-components/legacy/Services/UIComponent/_component_tooltip.scss","070-components/legacy/Services/_component_user.scss","070-components/legacy/Services/_component_webdav.scss","070-components/_index.scss","080-hacks/_index.scss","050-layout/_layout_pull-float.scss"],"names":[],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,aAfa;;APtExB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC,SApCuB;EAqCvB;;AOkIM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,iBDlKQ;ECoKR,kBAxGS;EAyGT,OnCzKI;EmC0KJ,cDpKK;ECqKL;EACA,cnC5KI;;AmCgLR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,WDjKgB;ECmKhB,kBAvGU;EAwGV,OnCpLI;EmCqLJ,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,OnC5LI;EmC6LJ,iBDzLQ;;AC6LZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEI,kBA/HY;EAgIZ,cD9LK;EC+LL;EACA,cAhIgB;EAiIhB,OAlIc;EAmId,QAnGU;EAoGV;;AAqBJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,kBA/IW;EAgJX,cAvIe;EAwIf;EACA,cnCtMM;EmCuMN,OAlJa;;ADiBvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,kBlChFS;;AkCkFX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;;AAKF;AAAA;AAAA;EAGE,a7B7FuB;;;A6BuG3B;EACE;EACD;EACA;EACC;EACA;EACA,arChGuB;EqCiGvB,OlCjIc;;AkCmId;EAKE;EtCvEF,oBsCwEE;EtCvEM,YsCuEN;;AAEF;EAGE;;AAEF;EACE,OlCpGkB;EkCqGlB,iBrCzGuB;EqC0GvB;;AAEF;EAEE,kBjCpHiB;EiCqHjB,OjCtHoB;EiCuHpB;;AACA;EACE;;AAGJ;EACE,OlChIY;EkCiIZ,kBlCpIc;;;AkC8IlB;AAAA;EC7BQ,YDtHiB;ECwHb;EAIJ,WtCzIe;EsC2If;EACA,K9BnJoB;E8BwJpB,kBnClIY;EmCmIZ,OnC7HQ;EmC8HR,cDvJS;ECwJT;EACA,cnCtIY;EmCwIR,epC/JY;;AoCmKhB;AAAA;EACI,iBDlKQ;ECoKR,kBnC5IM;EmC6IN,OnC1II;EmC2IJ,cDpKK;ECqKL;EACA,cnChJM;;AmCoJV;AAAA;EAGI,kBAvGU;EAwGV,OnCrJI;EmCsJJ,cD/KK;ECgLL;EACA,cA3GU;;AA+Gd;AAAA;EACI,OnC7JI;EmC8JJ,iBDzLQ;;AC6LZ;AAAA;AAAA;AAAA;AAAA;EAEI,kBlChKS;EkCiKT,cD9LK;EC+LL;EACA,clClKa;EkCmKb,OlCrKY;EkCsKZ,QAnGU;;AAyHd;AAAA;EACI,kBnCnMM;EmCoMN,cD9Be;EC+Bf;EACA,cnCzMQ;EmC0MR,ODnCa;;ACmDb;AAAA;EACI;EACA;EACA,K9BnPY;E8BoPZ;;AAGJ;AAAA;EACI;;AP3Lf;AAAA;EACC;EACA,QApEuB;EAqEvB;;;AM4IA;AAAA;AAAA;AAAA;AAAA;EAEE,eDjLuB;;ACkLvB;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAQN;EC/EQ,YDtHiB;EC0Hb,WD1Ha;EC4HjB,WtCvIc;EsCyId;EACA,K9BtIsB;;;A6BoN9B;ECvFQ,YD2Fe;ECvFX,WDuFW;ECrFf,WtC7Ie;EsC+If;EACA,K9BtIsB;;;A6B8N9B;EACE;;;AAGF;EACE;;;AAOF;EACC;EACC,kBjCzNmB;EiC0NnB,cjCzNuB;EiC8NxB;EACA;EACA;;AANC;EACE,kBjC5NiB;EiC6NjB,cjC5NqB;;;AiCmOzB;EACE;EACA,arCvOuB;EqCwOvB;EACA,OlCzPuB;EkC0PvB;EACA;;AAEA;EAEE,OlCpQe;EkCqQf;;AAGF;EACE;EACA;EA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E,QCrEwB;;ADwE1B;EACE;;AAGA;EACE,W3CnGa;E2CoGb,a3CxEe;E2C0Ef,MC9EgC;;ADgFlC;EACE;EACA,MClFgC;;ADoFlC;AAAA;EAEE;EACA,MCrF+B;;ADyFnC;EAEE;;AAEA;EACE,QC1GmC;ED2GnC;;AAEF;EACE,MChH4B;EDiH5B;;AAIJ;EACE;;AAOJ;EACE,WC1GkC;ED2GlC,WCzGkC;;AD2GlC;EACE,WC9GgC;ED+GhC,YC7GgC;;AD+GhC;EACE,QC1G6B;ED2G7B,cC/IoC;;ADkJtC;EACE,cCnJoC;;ADsJtC;EACE,QC/G+B;;ADiHjC;EACE,QChH4B;;ADmH9B;EACE,QCxHiC;EDyHjC;EACA,cC9HwC;ED+HxC;EAEA;;AAEF;EACE;;;AAQV;AACA;AACA;AACA;EACE,anCxL4B;EmCyL5B,gBnCzL4B;;;AmC4L9B;EACE,anC7L4B;EmC8L5B,gBnC9L4B;;;AqCa9B;EACE;EACA,W7CbqB;E6CcrB,aAjBuB;EAkBvB;EACA;EACA;EACA;EACA,O1CJW;E0CKX;EACA,e3CpBiC;;A2CqBjC;EACE;;;AAIJ;EACE;EACA,W7CzBqB;;;A6C4BvB;EACE,SAtCmB;EAuCnB;EACA,KA1BgC;EA2BhC,kB1ClCiB;;;A0CoCnB;EACE,SA5CmB;EA6CnB;EACA,QAtCkC;EAuClC,kB1C9BuB;;;A0CkCvB;EACA,aAlDuB;EAmDvB,W7ChDqB;E6CiDrB,SAtDmB;EAuDnB;;;AC3DA;EACE;EACA;EACA,etCS0B;;AsCP1B;EACE,ctCgBqB;EsCfrB,etCeqB;EsCdrB,etCFsB;;AsCMtB;EACE;;AAGF;EACE;;;AAMR;EAEE;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AC1BJ;EACC;EACA;EACA,kB5CeY;E4CdZ;EACA;EACA,a/CiBsB;E+ChBtB,O5CqBe;;;A4ClBhB;EACC;;;AAGD;EACC;EACA,cvCH6B;EuCI7B,evCJ6B;;;AwCb9B;EACC;EACA,eCF2B;EDG3B,Y7CeY;E6CdZ;EACA,exCW0B;EwCV1B;;AACA;EACC;EACA,e9CNgC;E8COhC,kB7CUgB;E6CThB,axCJ8B;EwC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E;IACC;;EAED;AAAA;IAEC;IACA;;;AAKH;EAEC;IACC,Y/D5MW;I+D6MX;IACA;IACA;;EACA;IACC;IACA;IACA,SApOoC;IAqOpC;;EACA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAED;IACC;IACA;IACA;IACA;IACA,Y9B7MmB;;E8B+MpB;IACC;IACA;IACA;IACA;;EAIH;IACC;IACA;;EACA;IACC;IACA;IACA;IACA;IACA;;EACA;IACC;IACG;IACH;IACA;IACA;IACA;;EACA;IACC,Y9BxOkB;;E8B2OnB;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SA7RmC;;EA8RnC;IACC;;EAIF;IAEC;;EAQL;IACC;IACA;IACA;IACA;IACA;;EAID;IACC;IACG,QGpUkC;IHqUlC;IACH,Y9BjRsC;;E8BqRvC;IACC,OGzUkC;;EH6UnC;IACC;;EAID;IACC;;EAGD;IACC;;EAEA;IACC;;EAED;IACC;IACA;;EAGD;IACC;IACA;IACA,O/DnVgB;I+DoVhB,WlErVmB;IkEsVnB;IACA;IACA;IACA;;EACA;IACI;IACA;IACA,WlE7Ve;IkE8Vf,c1D5WW;;E0DgXhB;IACC;;EAED;AAAA;AAAA;AAAA;AAAA;AAAA;IAOC,Y/DnWU;I+DoWV,c/DpWU;I+DqWV,O/D7WgB;I+D8WhB;;EAGD;IACC;;EAKF;IACC;IACA;;EAID;IACC;IACA;IACA;IACA,YGnZsC;IHoZtC,YAhZyD;IAiZzD;IACA,SA5YgC;;EAgZjC;IACC;IACG;IACH;IACG;;EAGJ;IACC,QGha4B;IHia5B,OGha2B;;EHoa3B;IACC,QGta2B;IHua3B,OGta0B;;EHwa3B;IACC;IACA;IACA;IACA;;EAGD;IACI,QGjbwB;;EH4b7B;IACC;IACA;IACA;IACA;;EAQD;IACC;;EACA;IACC;;EAKF;IACC;;EAGD;IACC;IACA;IACA;IACA,gBG1dsC;;EH2dtC;IACC;;EAIF;IACC,e9BvdwB;;;A8B2d1B;AAAA;AAAA;AAAA;AAAA;AAMA;EACC;IACC;IACA;;EAEA;IACC;IA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W;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AASX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AACX;EAAW;;;AAMjD;EACC,O9F1Te;;A8F4Tf;EACC,O9FrTiB;;A8FsTjB;EACC,O9FvTgB;;A8F2TlB;EACC,O9FlTuB;E8FmTvB;;AAGD;EACC,O9F5RoB;E8F6RpB;;;AAKD;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAID;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;EACC;EACA;;;AC3cD;EACC,QjC3BoB;EiC4BpB,OjC5BoB;EiC8BpB;EAEA,eA5ByB;EA6BzB,cAxBwB;EAyBxB,cA5BuB;EA8BvB;EACA;EACA;EACA;;AAGA;EACC,chGhDqB;;AgGkDrB;EACC,QjC9CkB;EiC+ClB,OjC/CkB;EiCgDlB;EACA,QA7CuB;EA8CvB;EACA;;AAKD;EACC,alG7BuB;EkG8BvB,gBAxC4C;EAyC5C;EACA;EACA;EACA;;AAIA;EAGC,kBAFQ;EAGR,cAFW;EAGX;;AALD;EAGC,kBA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;;AuGwFnB;EACC,OvGzFkB;;;AuG4FnB;EACC,W1G7FqB;E0G8FrB;EACA,OvG/FkB;;;AuGmGlB;EACC;;;AAID;EACC;;;ACtHF;AACA;EACC;EACA;EACA;EACA;EACA,kBxGoBY;EwGnBZ;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;ACrCD;AACA;EACC,OzGekB;EyGdlB;EACA,W5GkBoB;E4GjBpB,a5GiCwB;;A4GhCxB;EALD;IAMQ,W5GakB;;;;A4GT1B;EACC;;AACA;EAFD;IAGQ;;;;AAIR;EACI;EACA;;;AAGJ;EACC,a5GcwB;E4GbxB;EACA;EACA;EACA,W5GVwB;E4GWxB,OzGZkB;;;AyGenB;EACC;EACA;EACA,YpG5B2B;EoG6B3B,cpGhB6B;EoGiB7B,epG9B2B;EoG+B3B;;AACA;EAPD;IAQQ;IACN;IACA;IACA;;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC,W5GrDsB;E4GsDtB;EACA,OzGlCe;;;AyGqChB;EACC;EACA;EACA;;AACA;EAJD;IAKE,OzG1Cc;;;AyG4Cf;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;AACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;IACA;IACA;;;;AAIF;EACC;;;AAGD;EACC;;;ACjID;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC,W7GGqB;E6GFrB,O1GqBe;E0GpBf;EACA;;;AAGD;EACC;;;AAED;AACA;EACC,W7GZqB;E6GarB,a7GWwB;;;A8GvCzB;AACA;EACC;EACA;;;AAGD;AACA;EACC;EACA;;;ACPD;AACC;EACA;;AACA;EAHD;IAIE;;;;ACNF;AACA;EACC;EACA;;;AAGD;EACC;;;ACJA;EADD;IAKE;;;;AAKD;EADD;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A;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAKH;EAIC;EACA;EACA;EACA;;AANA;EACC;;;AAQF;EACC;IACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC,O7HvDoB;E6HwDpB,WhItFoB;EgIuFpB;EACA;EACA;;AAGD;EACC;EACA,O7HhEoB;E6HiEpB;EACA;EACA;;AAGD;EACC,kB7HtFgB;E6HuFhB;EACA,WhIvGoB;;AgI0GrB;EACC,O7HpFc;;A6HuFf;EACC,O7HnFoB;;A6HsFrB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC,kB7HzGgB;;A6H4GjB;EACC;EACA;EjIzEA,oBiI0EA;EjIzEQ,YiIyER;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;;ACzKF;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,O9HmBe;E8HlBf;EACA;EACA;;;AAED;EACC;EACA,O9HYe;E8HXf;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC,WjIxCqB;;;AiI2CtB;EACC,WjIxCqB;EiIyCrB;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAID;AAEA;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;ElIfE,oBkIgBD;ElIfS,YkIeT;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kB9H3EwB;;;A8H8EzB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AC7GD;AAEA;EACC;;;AAGD;EACC;EACA,WlIIqB;;;AkIDtB;EACC;EACA,WlICsB;;;AkIEvB;EACE;;;AAGF;EACC,alIewB;EkIdxB;EACA,WlIXqB;EkIYlB;EACA;;;AAGJ;EACE;;;AAGF;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AChDD;AAEA;EACC,c3HU+B;E2HT/B,e3HS+B;;;A2HNhC;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,WnIbqB;;;AmIgBtB;EACC;EACA;EACA;;;AAED;EACC,kBhIPiB;EgIQjB;;;AAGD;EACC;;AACA;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA,OhI7DwB;EgI8DxB;EACA;EACA;EACA;;;ACtFD;AAQA;EACC,apI0BwB;;;AoIvBzB;EACC,apIwBwB;;;AoIrBzB;EACC;EACA,apImBwB;;;AoIhBzB;EACC;EACA;EACA;EACA,WpIdqB;;;AoIiBtB;EACC,apIQwB;EoIPxB,WpInBqB;EoIoBrB;;;AAGD;AACA;EACC;EACA;EACA;EACA,kBjIfY;;;AiIkBb;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;;AAKH;EACC;EACA;EACA;EACA;;;AAGD;EACC,Y5HnD8B;E4HoD9B,WpIpDqB;;AoIqDrB;EAHD;IAIE,Y5H/D0B;I4HgE1B,WpIzDqB;;;;AoI6DvB;EACC,OjIlCqB;;;AiIqCtB;EACC;EACA;EACA;;AACA;EAJD;IAKE,c5HhE4B;I4HiE5B;;;AAGA;EADD;IAEE;IACA;;;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;;AAIF;EACC,Y5HrG8B;;;A4HwG/B;EACC;EACA,e5H1G8B;E4H2G9B;;AAEA;EACC,kBjIrGW;EiIsGX;;AAGD;EACC;EACA;;AACA;EACC;;AAED;EACC;;AAGA;EADD;IAEE;;;AAKF;EADD;IAEE;IACA;;;;AAKH;EAEE;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;EAED;IACC;;;AAKH;EACC;EACA;EACA,apItJwB;EoIuJxB,OjIjLkB;;;AiIoLnB;EACC;EACA,apI5JwB;;AoI6JxB;EACC,apIhKuB;;AoIkKxB;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC,Y5HzM8B;;;A4H4M/B;EACC;;;AAGD;EACC,OjIrNkB;;;AiIwNnB;EACC,apI/LwB;;;AoIkMzB;EACC;EACA;EACA;EACA;EACA;EACA;EACA,OjI5Me;EiI6Mf;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACrQD;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;AACA;EACA,kBlINiB;EkIOjB;AACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AC7GD;EACI,kBnIqBS;EmIpBT,oB5FFc;E4FGd,Y5FHc;;A4FIjB;AAAA;EAEC;EACA;EACA;;;AAKD;EACC;;;AAGF;EACC;EACA,kBnIKiB;;AmIJjB;EACC;;AAED;EACC;;;AAMA;EACC;;;AAKH;EACC,kBnIbiB;;AmIejB;EACC;;;AAGF;AAEA;EACC;;;AClDD;AAUA;EACE;EACA;;;AAEF;EACE;EACA,SARmB;EASnB,OAfiB;EAgBjB,QAfkB;;;AAiBpB;ACpBA;EACE;;AACA;EACE;;;AAKF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EACE;EACA;EACA;;AAGF;EACE;EAIA;;AAHA;EACE;;AAKJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIA;EACE;;AAIJ;EACE;;;ACjEJ;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC,kBtIkBiB;EsIjBjB;;;AAGD;EACC;;;AChBC;EACD;EACA;EACA;;AAGC;EACD;;AAGC;EACD;EACA;;AAGC;EACD;EACA;;AAGC;EACD;EACA;EACA;;;AAID;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;ACtDF;AAEA;EACC;EACA,W3ISqB;E2IRrB,OxIQkB;;;AwILnB;EACC;EACA,W3IGqB;E2IFrB,OxIgCqB;;;AwI7BtB;EACC;EACA;EACA;EACA,W3ILqB;E2IMrB;;;AAGD;EACC;EACA;EACA;EACA,W3IbqB;E2IcrB,OxIgBqB;;;AwIbtB;EACC;EACA;;;AAGD;EACC;EACA,W3IxBqB;;;A2I2BtB;EACC;;;AAGD;EACC;EACA,W3IjCqB;;;A2IoCtB;EACC;;;AAGD;EACC,kBxIjDe;;;AwIoDhB;EACC;;;AAGD;EACC,W3I7CqB;;;A4IjBtB;AAEA;EACC;;AACA;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,W5IRqB;A4ISrB;;;AAGD;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EAKC;;AAJA;EACC;EACA;;;AAKF;EACC;;;AAGD;EACC;;;AC7DD;AAEA;EACC,O1IiCe;E0IhCf,kB1IwBiB;E0IvBjB;EACA;;;AAGD;EACC,kB1IkBiB;E0IjBjB,O1IyBe;E0IxBf;EACA;EACA;;;AAGD;EACC;EACA,O1IiBe;E0IhBf;EACA;EACA;;;ACpBD;AAEA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IAEC;IACA;AACA;AAAA;AAAA;;EAKD;IAEC;IACA;IACA;;EAGD;IAEC;IACA,etI9C4B;;EsIiD7B;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA,a9ItCuB;I8IuCvB;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA,a9I1EuB;I8I2EvB;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;IACA;IACA,a9IjGuB;I8IkGvB;IACA;;;AAIF;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA,kB3I3IiB;E2I4IjB;;;AAGD;EACC;EACA;;;AAGD;EACC;;AACA;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAMA;EACC;;;AChMH;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EAEI;EACH;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAEI;EACA;EACA;;;AAGJ;EACC;EACA;EACA;EAEA,SvIzH+B;;AuI0H/B;EACC,cvI3H8B;EuI4H9B,evI5H8B;;;AuIgIhC;EACC;EACA;EA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EACA,kBvJnPY;EuJoPZ;EACA;EACA;EACA;EACA,cxJhRsB;EwJiRtB;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA,cxJ3RsB;;;AwJ+RvB;EACC;EACA;EACA;EACA;EACA;EACA;EACA,cxJtSsB;;;AwJySvB;EACC;EACA,kBvJjRiB;EuJkRjB;EACA;EACA;EACA;EACA,cxJhTsB;;;AwJmTvB;EACC;EACA,kBvJ3RiB;EuJ4RjB;EACA;EACA;EACA;EACA,cxJ1TsB;;;AwJ6TvB;EACC;EACA;EACA;EACA;EACA,W1JrTsB;;A0JuTtB;EACC;EACA;EACA;;;AAIF;EACC,W1J/TsB;;;A0JkUvB;EAEC;AACA;EACA;EACA;EACA;EACA;EACA,cxJvVsB;EwJwVtB,W1J3UsB;A0J4UtB;;;AAGD;EACC,W1JhVsB;E0JiVtB;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA,a1JvUwB;;;A0J0UzB;EACC;EACA;;;AAID;EAEC;;;AAID;EACC,OvJxVe;EuJyVf,kBvJjWiB;;;AuJoWlB;EACC;EACA,W1JrXqB;E0JsXrB,a1J9VwB;E0J+VxB,kBvJ1WY;;;AuJgXb;EACC,a1JlWyB;;;A0JqW1B;EACC;EACA;;;AAGD;EACC;EACA;EACA,kBvJ5XY;EuJ6XZ;EACA;EACA;EACA,cxJxZsB;EwJyZtB,W1J9YqB;E0J+YrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,cxJnasB;EwJoatB,W1JzZqB;E0J0ZrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,cxJ9asB;EwJ+atB,W1JpaqB;E0JqarB;EACA;;;AAGD;EACC;EACA,kBvJ5ZiB;EuJ6ZjB;EACA;EACA,cxJzbsB;EwJ0btB,W1J/aqB;E0JgbrB;EACA;;;AAGD;EACC;EACA,kBvJvaiB;EuJwajB;EACA;EACA,cxJpcsB;EwJqctB,W1J1bqB;E0J2brB;EACA;;;AAGD;EACC;EACA,kBvJpbY;EuJqbZ,W1JpcsB;E0JqctB;EACA;;;AAGD;EACC,OvJ9bwB;;;AuJgczB;EACC;EACA;;;AAGD;EACC;EACA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EACA;EACA;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;EACA,Y1JjQY;E0JkQZ;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;AAGE;EACC;EACA;EACA;EACA;EACA;;AAED;EACC,O1JvRkB;E0JwRlB;;AAKF;EACC;;AAIF;EACC;;;AAOF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC,W7JzWqB;E6J0WrB;EACA,kB1J5ViB;E0J6VjB;EACA;;;AAGD;EACC;EACA,W7JhXsB;E6JiXtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC,kB1JrZY;E0JsZZ;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC,kB1JzbY;E0J0bZ;EACA;EACA;EACA;;;AAGD;EACC,kB1JjcY;;;A0Jocb;EACC;EACA,W7J/cqB;E6JgdrB;;;AAGD;EACC;EACA,kB1J5cY;E0J6cZ;EACA;;;AAGD;AAEA;EACC;EACA;;;AAGD;EACC,c1J9ee;;;A0JifhB;EACC,c1J1ekB;;;A0J6enB;EACC,c1JpfoB;;;A0JufrB;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA,O1JreqB;;;A0JwetB;EACC,O1JzeqB;;;A0J4etB;EACC;;;AAGD;EACC;;;AAGD;EACC,crJlhB8B;EqJmhB9B,erJnhB8B;EqJohB9B;;AACA;EACC;;AAGA;EACC;EACA;EACA;EACA;EACA,kB1J9gBe;E0J+gBf;EACA;;AAIF;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA,W7JvjBqB;E6JwjBrB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA,kB1J1jBiB;E0J2jBjB;;;AAGD;EACC,kB1J1jBiB;;;A0J6jBlB;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AAAA;AAAA;EAGC;;;AAGD;EACC;;;AAID;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AACA;EAHD;IAIE;;;AAIF;EACC,W7JtsBoB;E6JusBpB,YrJvsB6B;EqJwsB7B,erJjtB0B;;AqJotB3B;EACC;;AAED;EACC,erJrtB2B;;AqJstB3B;EACC;;AACA;EACC,W7JrtBmB;;A6JwtBrB;EACC;;AAED;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA,kB1JztBU;;A0J6tBZ;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC,YrJpvB6B;;;AqJuvB9B;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAED;EACC;;;AAID;AACA;EACC;;AAEA;EACC;EACA;EACA;;AACA;EACC;EACA;;;AAKH;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;;;AAGD;EAEC,kB1JtxBY;;A0JwxBZ;EACC,kB1JvxBgB;;A0JwxBhB;EACC,kB1JzxBe;E0J0xBf;EACA,O1JnxBa;E0JoxBb;EACA;;AAIF;EACC;;AAGD;EACC;;;AAIF;AAAA;EAEC;EACA,O1J9xBqB;E0J+xBrB;;;AAGD;EACC;EACA;EAC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EACC;;AACA;EACC;;;AAIF;EACC,QxHzCiB;EwH0CjB,ehKlCkC;EgK6ClC;EACA;;AAVA;EACC;EACA,kB/JvBgB;;A+J0BjB;EACC;;AAKD;EAfD;IAgBE;;;;AC5DF;EACC;;;AAGD;EACC,kBhKoBY;EgKnBZ;;;ACPD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA,WpKbsB;EoKctB;EACA;;;AAGD;EACC;AACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;AACA;EACA,kBjKrBmB;;;AiKwBpB;EACC;EACA;;;ACxDD;AAEA;EACC,arKkCwB;;;AqK/BzB;EACC,arKgCwB;;;AqK7BzB;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAIA;EACC;;AAED;EACC;EACA;;;AAOC;EACC;EACA;EACA;EACA;;;ACrDJ;AAEA;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA,WtKFqB;EsKGrB;EACA;EACA;AACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;ACtDD;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;ACnBD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,WxKGsB;;;AwKAvB;EACC;EACA;EACA;EACA;EACA;EACA,kBrKamB;;;AqKVpB;EACC;EACA;EACA;EACA;;;ACtBD;AAEA;EACC;;AACA;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;EACA;;AAED;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC,kBtKlBkB;EsKmBlB;EACA;EACA,WzKvBsB;EyKwBtB;EACA;EACA;;AACA;EACC;EACA;;;AAIF;AAEA;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA,kBvKpD0B;EuKqD1B;EACA;;AACA;EATD;IAUE;;;AAGF;EACC;EACA;EACA;;AACA;EACC;EACA;;AACA;EAHD;IAIE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;;;AAIH;EArBD;IAsBE;;;AAED;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;EACA;EACA;EACA,YtKvEe;EsKwEf,Q/H/Fe;;A+HgGf;EAPD;IAQE;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA,WzK9GoB;EyK+GpB;EACA;EACA;EACA,kBtK1GsB;EsK2GtB;EACA;EACA;EACA;;AACA;EAfD;IAgBE;IACA;IACA;;;AAED;EACC,WzK7HmB;;AyK+HpB;EACC,WzKpImB;;AyKsIpB;EACC;EACA;;AAGF;EACC;;AACA;EAFD;IAGE;;;AAED;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAGF;EACC;EACA;EACA;EACA;;AACA;EALD;IAME;IACA;IACA;IACA;;;AAKJ;EACC;EACA;;AAED;EACC,kBtK9JgB;;;AsKkKlB;AACC;AAAA;AAAA;;;AAKD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EALD;IAME;;;;AAIF;EACC;EACA;;AAEA;EAJD;IAKE;IACA;;;;AAIF;EACC;;AACA;EAFD;IAGE;;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;EACA;E1K9DC,oB0K+DD;E1K9DM,e0K8DN;E1K7DS,Y0K6DT;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AClRD;AAEA;AACI;;;AAEJ;EACI;;;AAEJ;EACC,kBvKeY;EuKdZ;;;AAGD;EACC,kBvKUY;;;AuKPb;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AACA;EACC;EACA;;;AAIF;EACC,W1KzBqB;E0K0BrB;;;AAGD;EACC,kBvKfiB;EuKgBjB;EACA;;AAEC;EACC;EACA;;;AAMF;EACC;;;AAIF;EACC;;;AAGD;EACC,W1KhDqB;E0KiDrB,OvK9Be;EuK+Bf;;;AAGD;EACC,W1KxDsB;E0KyDtB;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC;;;AAIF;EACC,elKzF4B;;;AkK6F5B;EACC;EACA;;;AAIF;EACC,YhI1GiB;;AgI2GjB;EACC;;;AAIF;EACC;;;ACtHD;AAcA;EACC;EACA;;;AAID;EACC,W3KVsB;E2KWtB;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC,ezK7BgB;EyK8BhB,kBxKTY;;AwKUT;EACI;;;AAKR;EACI;;AAEI;EACI,kBxKpBC;;AwKuBD;EACI;;AAGA;EACI;;;ACtDpB;EACC;;;AAIA;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AACA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA,kBzKjCW;;AyKmCX;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA,kBzK1Ia;;AyK4Ib;EACC,W5K5JgB;E4K6JhB;EACA;;AAIF;EACC;EACA;;AAIA;EACC;EACA;EACA;;AAKD;EACC;EACA;;AAMA;EACC,W5K3LgB;;A4K+LlB;EACC;EACA,OzKjKgB;EyKkKhB,W5KhMgB;;A4KsMpB;EACC;EACA;EACA;;AAEA;EACC,W5K9MmB;E4K+MnB;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;;;AAOH;EACC;;AAED;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AChTD;AAEA;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACG;EACA;EACA;;;ACdH;EACC;;AACA;EACC,a9K+BuB;;;A8K1BxB;EACC;EACA;EACA,W9KGoB;E8KFpB;;AAED;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,O3KCe;E2KAf;EACA;EACA;EACA;EACA;E/K8BC,oB+K7BE;E/K8BM,Y+K9BN;EACH;;;AAGD;EACC,kB3KlBiB;E2KmBjB;EACA,W9KrCsB;;A8KsCtB;EACC;;AAED;EACC;EACA;;;AAKD;EACC,atKpD0B;;AsKsD3B;EACC;;AAED;EACC;;;AAIF;EACC;E/KDC,oB+KEE;E/KDM,Y+KCN;EACH,O3KrCe;;;A2KwChB;EACC,a9KtCwB;;;A8KyCzB;EACC;EACA,W9KvEsB;E8KwEtB,a9K9CwB;E8K+CxB;;;AAGD;EACC;;;AAGD;EACC;;AACA;EACC;;;AC9FF;AAEA;EACC,Y5KyBiB;E4KxBjB;EACA;EACA;;;AAGD;EACC;EACA;EACA,W/KKqB;E+KJrB;;;AAGD;EACC;EACA;EACA,W/KJsB;E+KKtB,O5KuBqB;E4KtBrB;EACA;;;AAGD;EACC;;;AAGD;EACC;EA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LhBe;;;AkLmBhB;EACC,kBlLQiB;;;AkLLlB;EACC,OlLcqB;EkLbrB,WrLnBsB;EqLoBtB;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;ACzCD;AAEA;EACC;EACA,kBnLsBiB;;;AmLblB;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA,kBnLJiB;;;AmLOlB;EACC;EACA;EACA;EACA;EACA;EACA,atLFwB;EsLGxB,WtL7BqB;;;AsLgCtB;EACC,WtLjCqB;;;AsLoCtB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAID;EACC,kBnLpCiB;EmLqCjB;;;AAGD;EACC;EACA;EACA;;;AAID;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,WtLhFsB;EsLiFtB;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;EACA;EvL7CC,oBuL8CE;EvL7CM,YuL6CN;;;AAKJ;EACC;;;AAGD;AAAA;EAEC;EACA;EACA;EACA,OnLzFqB;EmL0FrB,epLtHkC;;;AoLyHnC;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACI;;;AAGJ;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAED;EACC,atLrKqB;EsLsKrB;;;ACnLF;AAEA;EACC;EACG,OpL8BY;;;AoL3BhB;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA,WvLLqB;;;AuLQtB;EACC;EACA;;;AAGD;EACC;;;AC3BD;AAEA;EACC;EACA;EACA;EACA;EACA;EACA,kBrLUkB;EqLTlB;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA,OrLkBe;EqLjBf;;;AAGD;EACC,OrLkBqB;EqLjBrB;;;AAGD;EACC;EACA;EACA;;;AAIA;EACC;EACA;;;ACpCF;AACA;EACC;EACA;;;AAGD;EACC;;;AAED;EACC,OtL0Be;;AsLtBd;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ACA;EACA,ahFgBqB;;AgFbtB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;IACC;IACA;IACA;IACA,oBiH8O+B;IjH7O/B;;EAGD;IACC;;;AAKF;EACC;IACC;IACA;IACA;IACA,iBiH+N+B;IjH9N/B;;EAGD;IACC;;;;AiHgOH;E/JpQC;;;A+JwQD;E/JhRC;;;A+JoRD;E/JhRC;;;A+JoRD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA,WjM3SsB;;;AiM8SvB;EACC;EACA,WjMlTqB;;;AiMqTtB;EACC;EACA,WjMzTsB;;;AiM4TvB;EACC;EACA,WjM5TqB;EiM6TrB;;;AAGD;EACC;EACA,WjMlUqB;EiMmUrB,O9LjUiB;;;A8LoUlB;EACC,ajM/SwB;EiMgTxB;EACA;;;AAGD;EACC;EACA,ajMpTwB;EiMqTxB,O9L7UiB;;;A8LgVlB;EACC;EACA,ajM1TwB;EiM2TxB;EACA,O9LpViB;;;A8LuVlB;EACC,O9LxViB;E8LyVjB,WjM3VqB;;;AiM8VtB;EACC;EACA,ajMxUwB;;;AiM4UzB;EACC;EACA,ajM9UwB;;;AiMiVzB;EACC;EACA,ajMnVwB;EiMoVxB,WjM5WqB;;;AiM+WtB;EACC,ajMtVwB;;;AiMyVzB;EACC,ajM1VwB;;;AiM6VzB;EACC,O9L1VqB","file":"delos.css"} \ No newline at end of file