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/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 b4dc8b4d681f..1ec1c10c12f9 100644
--- a/components/ILIAS/BookingManager/BookingManager.php
+++ b/components/ILIAS/BookingManager/BookingManager.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, "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 c92abe123792..0c33720971bb 100644
--- a/components/ILIAS/COPage/COPage.php
+++ b/components/ILIAS/COPage/COPage.php
@@ -32,6 +32,11 @@ public function init(
array | \ArrayAccess &$pull,
array | \ArrayAccess &$internal,
): void {
- // ...
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\ComponentJS($this, "ilCOPagePres.js");
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\ComponentJS($this, "ilCOPagePCInteractiveImage.js");
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\ComponentJS($this, "page_history.js");
}
}
diff --git a/components/ILIAS/COPage/Editor/UI/Init.php b/components/ILIAS/COPage/Editor/UI/Init.php
index 889af1daded0..5bd0df6420fd 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("assets/js/tinymce.js");
} else {
- $main_tpl->addJavaScript("./node_modules/tinymce/tinymce.min.js");
+ $main_tpl->addJavaScript("assets/js/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..5bf8ad06d621 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("assets/js/ilCOPagePres.js");
+ $this->main_tpl->addJavaScript("assets/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..f09b0adeeb49 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[] = "assets/js/ilCOPagePres.js";
// for all page components...
$defs = $this->pc_definition->getPCDefinitions();
diff --git a/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php b/components/ILIAS/COPage/classes/class.ilPageObjectGUI.php
index 9b95b6d94a70..5752c67fee23 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("assets/js/ilCOPagePres.js");
// needed for overlays in iim
ilOverlayGUI::initJavascript();
@@ -2429,7 +2429,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();
}
@@ -2600,7 +2600,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/resources/ilCOPagePCInteractiveImage.js
old mode 100755
new mode 100644
similarity index 100%
rename from components/ILIAS/COPage/js/ilCOPagePCInteractiveImage.js
rename to components/ILIAS/COPage/resources/ilCOPagePCInteractiveImage.js
diff --git a/components/ILIAS/COPage/js/ilCOPagePres.js b/components/ILIAS/COPage/resources/ilCOPagePres.js
old mode 100755
new mode 100644
similarity index 100%
rename from components/ILIAS/COPage/js/ilCOPagePres.js
rename to components/ILIAS/COPage/resources/ilCOPagePres.js
diff --git a/components/ILIAS/COPage/js/page_history.js b/components/ILIAS/COPage/resources/page_history.js
old mode 100755
new mode 100644
similarity index 100%
rename from components/ILIAS/COPage/js/page_history.js
rename to components/ILIAS/COPage/resources/page_history.js
diff --git a/components/ILIAS/Calendar/Calendar.php b/components/ILIAS/Calendar/Calendar.php
index 84514694e219..39423e6066e2 100644
--- a/components/ILIAS/Calendar/Calendar.php
+++ b/components/ILIAS/Calendar/Calendar.php
@@ -36,5 +36,18 @@ public function init(
new \ilCalendarSetupAgent(
$pull[\ILIAS\Refinery\Factory::class]
);
+
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ 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 064f1520a2ad..a7630c600a29 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.ilComponentsSetupAgent.php b/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php
index 116652712dca..536501916550 100755
--- a/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php
+++ b/components/ILIAS/Component/classes/Setup/class.ilComponentsSetupAgent.php
@@ -20,11 +20,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
*/
@@ -70,10 +78,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/src/Resource/ComponentCSS.php b/components/ILIAS/Component/src/Resource/ComponentCSS.php
new file mode 100644
index 000000000000..bddbafee4f7e
--- /dev/null
+++ b/components/ILIAS/Component/src/Resource/ComponentCSS.php
@@ -0,0 +1,38 @@
+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);
+ return ComponentJS::JS_TARGET . "/" . array_pop($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);
+ $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): void
+ {
+ if (!is_dir($path)) {
+ return;
+ }
+
+ $d = new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS);
+ $r = new \RecursiveIteratorIterator($d, \RecursiveIteratorIterator::CHILD_FIRST);
+ foreach ($r as $file) {
+ $file->isDir() ? rmdir((string) $file) : unlink((string) $file);
+ }
+ rmdir($path);
+ }
+
+ protected function makeDir(string $path): void
+ {
+ 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..35b5d0f46d77
--- /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\ComponentResource(
+ new \ILIAS\Component(),
+ "directory/asset.png",
+ "some/target"
+ );
+
+ $this->assertEquals("some/target/asset.png", $public_asset->getTarget());
+ }
+
+ public function testTarget3()
+ {
+ $public_asset = new R\ComponentResource(
+ new \ILIAS\Component(),
+ "directory/asset.png",
+ "some/target"
+ );
+
+ $this->assertEquals("some/target/asset.png", $public_asset->getTarget());
+ }
+
+ public function testHtaccessIsAllowedAsSource()
+ {
+ $public_asset = new R\ComponentResource(
+ new \ILIAS\Component(),
+ ".htaccess",
+ "target"
+ );
+
+ $this->assertTrue(true);
+ }
+
+ public function testDotIsAllowedAsTarget()
+ {
+ $public_asset = new R\ComponentResource(
+ new \ILIAS\Component(),
+ "foo.php",
+ "."
+ );
+
+ $this->assertTrue(true);
+ }
+
+ public function testSource()
+ {
+ $public_asset = new R\ComponentResource(
+ 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..d546eb48fa07
--- /dev/null
+++ b/components/ILIAS/Component/tests/Resource/PublicAssetManagerTest.php
@@ -0,0 +1,127 @@
+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): void
+ {
+ $this->purged[] = $path;
+ }
+
+ 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 cd1b7c6bb2f0..1a604d56add7 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 db4aa6dff59e..6ed613ab37d0 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 98a87cf4d409..758b53b03764 100755
--- a/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php
+++ b/components/ILIAS/Dashboard/Block/classes/class.ilDashboardBlockGUI.php
@@ -162,7 +162,7 @@ public function init(): void
$this->lng->loadLanguageModule('dash');
$this->lng->loadLanguageModule('rep');
$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 61a18dfae392..a835944b8baa 100644
--- a/components/ILIAS/Dashboard/Dashboard.php
+++ b/components/ILIAS/Dashboard/Dashboard.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, "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/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 83eba0061fae..39c89cf4a272 100755
--- a/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php
+++ b/components/ILIAS/Exercise/classes/class.ilExerciseManagementGUI.php
@@ -1922,7 +1922,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/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/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 50e7ec6ade89..5b22c47bed4b 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");
@@ -632,7 +632,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..5ca94a2b96e9 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.js");
}
}
diff --git a/components/ILIAS/Forum/classes/class.ilObjForumGUI.php b/components/ILIAS/Forum/classes/class.ilObjForumGUI.php
index 75c29554b704..abbcac1ed7c9 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.js');
$autosave_cmd = 'autosaveDraftAsync';
if ($this->objCurrentPost->getId() === 0 && $this->objCurrentPost->getThreadId() === 0) {
$autosave_cmd = 'autosaveThreadDraftAsync';
@@ -855,7 +855,8 @@ protected function renderThreadOverview(ilForumThreadObjectTableGUI $tbl, ilForu
if ($found_threads === false) {
$vc_container = $this->factory->panel()->listing()->standard(
$this->lng->txt('thread_overview'),
- [$this->factory->item()->group($this->lng->txt('frm_no_threads'), [])]);
+ [$this->factory->item()->group($this->lng->txt('frm_no_threads'), [])]
+ );
} else {
$vc_container = $this->factory->panel()->listing()->standard(
$this->lng->txt('thread_overview'),
diff --git a/components/ILIAS/Forum/js/autosave.js b/components/ILIAS/Forum/resources/autosave.js
old mode 100755
new mode 100644
similarity index 100%
rename from components/ILIAS/Forum/js/autosave.js
rename to components/ILIAS/Forum/resources/autosave.js
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 814af435ff8f..36a3beed816a 100644
--- a/components/ILIAS/Help/Help.php
+++ b/components/ILIAS/Help/Help.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, "ilHelp.js");
}
}
diff --git a/components/ILIAS/Help/classes/class.ilHelpGUI.php b/components/ILIAS/Help/classes/class.ilHelpGUI.php
index 3b1b11686d55..18af7e6c8ebb 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("assets/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 d13662ccb78e..4c3a38e7ec26 100644
--- a/components/ILIAS/LearningModule/LearningModule.php
+++ b/components/ILIAS/LearningModule/LearningModule.php
@@ -36,5 +36,7 @@ public function init(
new \ilLearningModuleSetupAgent(
$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 13727c0b1477..16bbd03d5bc0 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/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 27451c61632c..aac85f37d25d 100755
--- a/components/ILIAS/Like/classes/class.ilLikeGUI.php
+++ b/components/ILIAS/Like/classes/class.ilLikeGUI.php
@@ -66,7 +66,7 @@ public function __construct(
protected function initJavascript(): void
{
- $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 f2df8a4aadf8..1b75ba92f5e3 100644
--- a/components/ILIAS/Link/Link.php
+++ b/components/ILIAS/Link/Link.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, "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 c11da58a953f..d9133dda7022 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 4138c3b85bcc..dd9247657632 100644
--- a/components/ILIAS/MediaCast/MediaCast.php
+++ b/components/ILIAS/MediaCast/MediaCast.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, "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 67c1abcb11f1..832ef48f3608 100644
--- a/components/ILIAS/MediaObjects/MediaObjects.php
+++ b/components/ILIAS/MediaObjects/MediaObjects.php
@@ -36,5 +36,9 @@ public function init(
new \ilMediaObjectSetupAgent(
$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");
}
}
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 7ff28fd01350..6d53154949c4 100755
--- a/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php
+++ b/components/ILIAS/MediaObjects/classes/class.ilObjMediaObjectGUI.php
@@ -1596,7 +1596,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("assets/js/ilCOPagePres.js");
ilPlayerUtil::initMediaElementJs($a_tpl);
}
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 5de80f2fb4ae..2a835e28b857 100755
--- a/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php
+++ b/components/ILIAS/MediaPool/classes/class.ilObjMediaPoolGUI.php
@@ -1673,7 +1673,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 0d56d64fd57f..d749c0976263 100755
--- a/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php
+++ b/components/ILIAS/News/classes/class.ilNewsTimelineGUI.php
@@ -262,7 +262,7 @@ 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");
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 c37e5b7bd111..0a05cfcd7ced 100644
--- a/components/ILIAS/Notes/Notes.php
+++ b/components/ILIAS/Notes/Notes.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, "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 d6316e05fe12..4d664dabe759 100644
--- a/components/ILIAS/Notifications/Notifications.php
+++ b/components/ILIAS/Notifications/Notifications.php
@@ -32,6 +32,15 @@ public function init(
array | \ArrayAccess &$pull,
array | \ArrayAccess &$internal,
): void {
- // ...
+ $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 33752701d342..e91bd4b63488 100755
--- a/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php
+++ b/components/ILIAS/Portfolio/Page/class.ilPortfolioPageGUI.php
@@ -876,7 +876,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 b24a945e08ed..02d5009e9ef9 100644
--- a/components/ILIAS/Portfolio/Portfolio.php
+++ b/components/ILIAS/Portfolio/Portfolio.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, "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..50cefc602a9b 100644
--- a/components/ILIAS/RTE/RTE.php
+++ b/components/ILIAS/RTE/RTE.php
@@ -32,6 +32,9 @@ public function init(
array | \ArrayAccess &$pull,
array | \ArrayAccess &$internal,
): void {
- // ...
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\NodeModule("tinymce/tinymce.js");
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\NodeModule("tinymce/tinymce.min.js");
}
}
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..6ca77e1a903e 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('assets/js/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('assets/js/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('assets/js/tinymce.js');
$this->tpl->addOnLoadCode($template->get());
}
diff --git a/components/ILIAS/Registration/Registration.php b/components/ILIAS/Registration/Registration.php
index 9fe580f4461a..4f453f3ac4dc 100644
--- a/components/ILIAS/Registration/Registration.php
+++ b/components/ILIAS/Registration/Registration.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, "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 f94e5b04b3fe..27e4bc26e014 100644
--- a/components/ILIAS/Repository/Repository.php
+++ b/components/ILIAS/Repository/Repository.php
@@ -36,5 +36,8 @@ public function init(
new \ilRepositorySetupAgent(
$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/resources/module.php b/components/ILIAS/Saml/resources/module.php
new file mode 100644
index 000000000000..67cef9cfc4e7
--- /dev/null
+++ b/components/ILIAS/Saml/resources/module.php
@@ -0,0 +1,40 @@
+
+ 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/Skill/Personal/class.ilPersonalSkillsGUI.php b/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php
index 0309aa5db556..175c2d844d18 100755
--- a/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php
+++ b/components/ILIAS/Skill/Personal/class.ilPersonalSkillsGUI.php
@@ -523,7 +523,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 43e5b4240e3d..34139a8ba82c 100755
--- a/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php
+++ b/components/ILIAS/StudyProgramme/classes/class.ilObjStudyProgrammeAutoMembershipsGUI.php
@@ -105,7 +105,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/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/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..28f7c7a6afc4 100644
--- a/components/ILIAS/Test/Test.php
+++ b/components/ILIAS/Test/Test.php
@@ -36,5 +36,9 @@ public function init(
new \ilTestSetupAgent(
$pull[\ILIAS\Refinery\Factory::class]
);
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\ComponentJS($this, "settings_confirmation.js");
+ $contribute[Component\Resource\PublicAsset::class] = fn() =>
+ new Component\Resource\ComponentJS($this, "ilTestPlayerQuestionEditControl.js");
}
}
diff --git a/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php b/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php
index dba5ddb73595..270450f580e9 100755
--- a/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php
+++ b/components/ILIAS/Test/classes/MainSettings/class.ilObjTestSettingsMainGUI.php
@@ -312,7 +312,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..01daca4d38bd 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('assets/js/tinymce/tinymce.js');
$this->setFormAction($this->ctrl->getFormAction($parent_obj, self::PARENT_DEFAULT_CMD));
diff --git a/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php b/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php
index 3abf2bd6c102..fb2eb28c76d1 100755
--- a/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php
+++ b/components/ILIAS/Test/classes/class.ilTestPlayerAbstractGUI.php
@@ -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/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/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 10720843a9b4..33951b46363f 100755
--- a/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php
+++ b/components/ILIAS/TestQuestionPool/classes/class.assErrorTextGUI.php
@@ -384,7 +384,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 279c739dd219..16e5499413d2 100755
--- a/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php
+++ b/components/ILIAS/TestQuestionPool/classes/class.assLongMenuGUI.php
@@ -263,8 +263,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);
@@ -421,7 +421,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 1e343a5fae77..95880520d87b 100755
--- a/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php
+++ b/components/ILIAS/TestQuestionPool/classes/class.assMatchingQuestionGUI.php
@@ -635,9 +635,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/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'));
@@ -806,9 +806,9 @@ 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'));
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.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.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 a3714b2c4bee..34a60f13d59d 100755
--- a/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php
+++ b/components/ILIAS/TestQuestionPool/classes/forms/class.ilMultipleImagesInputGUI.php
@@ -402,8 +402,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..36d1e213bb30 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') . "', "
@@ -456,7 +456,7 @@ public function render(string $a_mode = ""): string
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..644a61bfb9f0 100644
--- a/components/ILIAS/UI/UI.php
+++ b/components/ILIAS/UI/UI.php
@@ -32,6 +32,59 @@ 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/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");
}
}
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..d9e38a17193b 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,7 +164,7 @@ 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('assets/js/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");
}
@@ -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 8a1c0d9ec79c..b46fced0b875 100755
--- a/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php
+++ b/components/ILIAS/UI/src/Implementation/Component/Input/Field/Renderer.php
@@ -834,14 +834,14 @@ 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('assets/js/tagInput.js');
- $registry->register('./components/ILIAS/UI/src/templates/js/Input/Field/input.js');
+ $registry->register('assets/js/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/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 ce938882b0e5..99cc55c1657e 100755
--- a/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php
+++ b/components/ILIAS/UI/src/Implementation/Component/Table/Renderer.php
@@ -554,8 +554,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/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php b/components/ILIAS/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php
index 6d6c027b77d9..f4324a6c5fc8 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 2bf2e1c7abde..072f161a21ac 100755
--- a/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php
+++ b/components/ILIAS/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php
@@ -35,7 +35,7 @@ abstract class ilExplorerBaseGUI
protected static string $js_tree_path = "./node_modules/jstree/dist/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 670b44fa58a1..59d4292a1275 100755
--- a/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php
+++ b/components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php
@@ -453,7 +453,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..f5996d25ce2f 100644
--- a/components/ILIAS/UIComponent/UIComponent.php
+++ b/components/ILIAS/UIComponent/UIComponent.php
@@ -32,6 +32,23 @@ 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");
}
}
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/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/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/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.
' .
+ '