diff options
| author | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-04-18 01:11:37 +0300 |
|---|---|---|
| committer | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-04-18 01:11:37 +0300 |
| commit | 2b6970d33afd75be5bfef951dc3691d492004d43 (patch) | |
| tree | 39eba4206ca0c4cd3fecd5ead95580a74e50f3f9 /public/assets/js/_dependency-control/plugins/expand.js | |
| parent | 68fc9e55e538e03f94509731ab41a0c8cf96710f (diff) | |
| download | classroom-2b6970d33afd75be5bfef951dc3691d492004d43.tar.gz classroom-2b6970d33afd75be5bfef951dc3691d492004d43.tar.bz2 classroom-2b6970d33afd75be5bfef951dc3691d492004d43.zip | |
admin back-office environment (skeleton); admin categories
Diffstat (limited to 'public/assets/js/_dependency-control/plugins/expand.js')
| -rw-r--r-- | public/assets/js/_dependency-control/plugins/expand.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/public/assets/js/_dependency-control/plugins/expand.js b/public/assets/js/_dependency-control/plugins/expand.js new file mode 100644 index 0000000..533e978 --- /dev/null +++ b/public/assets/js/_dependency-control/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');
+ });
+ });
+ }
+});
|
