summaryrefslogtreecommitdiff
path: root/html/assets/js/plugins/expand.js
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 23:57:48 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 23:57:48 +0200
commit7aa203150fc1a2ec79c681c13f0d486d531746eb (patch)
treef09ba9f69ccd434e9c7fdeb41807fc8008784d8a /html/assets/js/plugins/expand.js
parent221af3a2e035bd6689294509feb52f286d3bd5be (diff)
downloadclassroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.tar.gz
classroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.tar.bz2
classroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.zip
error pages; js system to support back/front-end
Diffstat (limited to 'html/assets/js/plugins/expand.js')
-rw-r--r--html/assets/js/plugins/expand.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/html/assets/js/plugins/expand.js b/html/assets/js/plugins/expand.js
new file mode 100644
index 0000000..533e978
--- /dev/null
+++ b/html/assets/js/plugins/expand.js
@@ -0,0 +1,38 @@
+$$plugins.define('expand', ['domHelper'], function (element, options, $) {
+ //triggerButton: data-trigger-expand
+ //content to be initialized: data-content-expand
+ const triggerButton = element.querySelector('[data-trigger-expand]'),
+ triggerButtonId = triggerButton.getAttribute('data-trigger-expand'),
+ content = $(`[data-content-expand='${triggerButtonId}']`);
+
+ var $triggerButton = $(triggerButton);
+
+ $triggerButton.on('click', function (e) {
+ e.preventDefault();
+ if ($triggerButton.hasClass('active')) {
+ content.slideUp(300, function () {
+ $triggerButton.removeClass('active');
+ content.removeAttr('style');
+ });
+ } else {
+ $triggerButton.addClass('active');
+ content.slideDown(300, function () {
+ if (content.find('.scrollbarShadow').length > 0 && !content.find('.scrollbarShadow').hasClass('initialized')) {
+ content.find('.scrollbarShadow').addClass('initialized');
+ }
+ });
+ }
+ });
+
+ if (options.closeOnCLickAway == true) {
+ document.addEventListener('click', function (event) {
+ if (!$triggerButton.hasClass('active') || element == event.target || $(event.target).parents().contains(element)) {
+ return;
+ }
+ content.slideUp(300, function () {
+ $triggerButton.removeClass('active');
+ content.removeAttr('style');
+ });
+ });
+ }
+});