From 3528b6c1f89f50146a0049f61cefbc880b3d6ebb Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sun, 31 May 2020 13:52:26 +0300 Subject: [PATCH 1/7] Remove `that` workaround --- build/js/TodoList.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/js/TodoList.js b/build/js/TodoList.js index 12b8df6df..c724a2d51 100644 --- a/build/js/TodoList.js +++ b/build/js/TodoList.js @@ -68,10 +68,9 @@ const TodoList = ($ => { // Private _init() { - const that = this $(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE) $(Selector.DATA_TOGGLE).on('change', 'input:checkbox', event => { - that.toggle($(event.target)) + this.toggle($(event.target)) }) } From 187a01a8ee87f0978da81720bad28938df0e91c8 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sun, 31 May 2020 16:45:54 +0300 Subject: [PATCH 2/7] Return early. --- build/js/ControlSidebar.js | 128 +++++++++++++++++++------------------ build/js/Layout.js | 30 +++++---- build/js/PushMenu.js | 54 ++++++++-------- 3 files changed, 111 insertions(+), 101 deletions(-) diff --git a/build/js/ControlSidebar.js b/build/js/ControlSidebar.js index 39a17dbf0..9abbe32f8 100644 --- a/build/js/ControlSidebar.js +++ b/build/js/ControlSidebar.js @@ -134,6 +134,10 @@ const ControlSidebar = ($ => { } _fixScrollHeight() { + if (!$('body').hasClass(ClassName.LAYOUT_FIXED)) { + return + } + const heights = { scroll: $(document).height(), window: $(window).height(), @@ -148,92 +152,92 @@ const ControlSidebar = ($ => { let navbarFixed = false let footerFixed = false - if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { - if ( - $('body').hasClass(ClassName.NAVBAR_FIXED) || - $('body').hasClass(ClassName.NAVBAR_SM_FIXED) || - $('body').hasClass(ClassName.NAVBAR_MD_FIXED) || - $('body').hasClass(ClassName.NAVBAR_LG_FIXED) || - $('body').hasClass(ClassName.NAVBAR_XL_FIXED) - ) { - if ($(Selector.HEADER).css('position') === 'fixed') { - navbarFixed = true - } + if ( + $('body').hasClass(ClassName.NAVBAR_FIXED) || + $('body').hasClass(ClassName.NAVBAR_SM_FIXED) || + $('body').hasClass(ClassName.NAVBAR_MD_FIXED) || + $('body').hasClass(ClassName.NAVBAR_LG_FIXED) || + $('body').hasClass(ClassName.NAVBAR_XL_FIXED) + ) { + if ($(Selector.HEADER).css('position') === 'fixed') { + navbarFixed = true } + } - if ( - $('body').hasClass(ClassName.FOOTER_FIXED) || - $('body').hasClass(ClassName.FOOTER_SM_FIXED) || - $('body').hasClass(ClassName.FOOTER_MD_FIXED) || - $('body').hasClass(ClassName.FOOTER_LG_FIXED) || - $('body').hasClass(ClassName.FOOTER_XL_FIXED) - ) { - if ($(Selector.FOOTER).css('position') === 'fixed') { - footerFixed = true - } + if ( + $('body').hasClass(ClassName.FOOTER_FIXED) || + $('body').hasClass(ClassName.FOOTER_SM_FIXED) || + $('body').hasClass(ClassName.FOOTER_MD_FIXED) || + $('body').hasClass(ClassName.FOOTER_LG_FIXED) || + $('body').hasClass(ClassName.FOOTER_XL_FIXED) + ) { + if ($(Selector.FOOTER).css('position') === 'fixed') { + footerFixed = true } + } - if (positions.top === 0 && positions.bottom === 0) { + if (positions.top === 0 && positions.bottom === 0) { + $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer) + $(Selector.CONTROL_SIDEBAR).css('top', heights.header) + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header + heights.footer)) + } else if (positions.bottom <= heights.footer) { + if (footerFixed === false) { + $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer - positions.bottom) + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.footer - positions.bottom)) + } else { $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer) - $(Selector.CONTROL_SIDEBAR).css('top', heights.header) - $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header + heights.footer)) - } else if (positions.bottom <= heights.footer) { - if (footerFixed === false) { - $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer - positions.bottom) - $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.footer - positions.bottom)) - } else { - $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer) - } - } else if (positions.top <= heights.header) { - if (navbarFixed === false) { - $(Selector.CONTROL_SIDEBAR).css('top', heights.header - positions.top) - $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header - positions.top)) - } else { - $(Selector.CONTROL_SIDEBAR).css('top', heights.header) - } - } else if (navbarFixed === false) { - $(Selector.CONTROL_SIDEBAR).css('top', 0) - $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window) + } + } else if (positions.top <= heights.header) { + if (navbarFixed === false) { + $(Selector.CONTROL_SIDEBAR).css('top', heights.header - positions.top) + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header - positions.top)) } else { $(Selector.CONTROL_SIDEBAR).css('top', heights.header) } + } else if (navbarFixed === false) { + $(Selector.CONTROL_SIDEBAR).css('top', 0) + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window) + } else { + $(Selector.CONTROL_SIDEBAR).css('top', heights.header) } } _fixHeight() { + if (!$('body').hasClass(ClassName.LAYOUT_FIXED)) { + return + } + const heights = { window: $(window).height(), header: $(Selector.HEADER).outerHeight(), footer: $(Selector.FOOTER).outerHeight() } - if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { - let sidebarHeight = heights.window - heights.header + let sidebarHeight = heights.window - heights.header - if ( - $('body').hasClass(ClassName.FOOTER_FIXED) || + if ( + $('body').hasClass(ClassName.FOOTER_FIXED) || $('body').hasClass(ClassName.FOOTER_SM_FIXED) || $('body').hasClass(ClassName.FOOTER_MD_FIXED) || $('body').hasClass(ClassName.FOOTER_LG_FIXED) || $('body').hasClass(ClassName.FOOTER_XL_FIXED) - ) { - if ($(Selector.FOOTER).css('position') === 'fixed') { - sidebarHeight = heights.window - heights.header - heights.footer + ) { + if ($(Selector.FOOTER).css('position') === 'fixed') { + sidebarHeight = heights.window - heights.header - heights.footer + } + } + + $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', sidebarHeight) + + if (typeof $.fn.overlayScrollbars !== 'undefined') { + $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).overlayScrollbars({ + className: this._config.scrollbarTheme, + sizeAutoCapable: true, + scrollbars: { + autoHide: this._config.scrollbarAutoHide, + clickScrolling: true } - } - - $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', sidebarHeight) - - if (typeof $.fn.overlayScrollbars !== 'undefined') { - $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).overlayScrollbars({ - className: this._config.scrollbarTheme, - sizeAutoCapable: true, - scrollbars: { - autoHide: this._config.scrollbarAutoHide, - clickScrolling: true - } - }) - } + }) } } diff --git a/build/js/Layout.js b/build/js/Layout.js index 109f7cc5d..bed440628 100644 --- a/build/js/Layout.js +++ b/build/js/Layout.js @@ -93,21 +93,23 @@ const Layout = ($ => { } } - if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { - if (offset !== false) { - $(Selector.CONTENT).css('min-height', (max + offset) - heights.header - heights.footer) - } + if (!$('body').hasClass(ClassName.LAYOUT_FIXED)) { + return + } - if (typeof $.fn.overlayScrollbars !== 'undefined') { - $(Selector.SIDEBAR).overlayScrollbars({ - className: this._config.scrollbarTheme, - sizeAutoCapable: true, - scrollbars: { - autoHide: this._config.scrollbarAutoHide, - clickScrolling: true - } - }) - } + if (offset !== false) { + $(Selector.CONTENT).css('min-height', (max + offset) - heights.header - heights.footer) + } + + if (typeof $.fn.overlayScrollbars !== 'undefined') { + $(Selector.SIDEBAR).overlayScrollbars({ + className: this._config.scrollbarTheme, + sizeAutoCapable: true, + scrollbars: { + autoHide: this._config.scrollbarAutoHide, + clickScrolling: true + } + }) } } diff --git a/build/js/PushMenu.js b/build/js/PushMenu.js index 886e7a70f..a7c01ed47 100644 --- a/build/js/PushMenu.js +++ b/build/js/PushMenu.js @@ -102,41 +102,45 @@ const PushMenu = ($ => { } autoCollapse(resize = false) { - if (this._options.autoCollapseSize) { - if ($(window).width() <= this._options.autoCollapseSize) { - if (!$(Selector.BODY).hasClass(ClassName.OPEN)) { - this.collapse() - } - } else if (resize === true) { - if ($(Selector.BODY).hasClass(ClassName.OPEN)) { - $(Selector.BODY).removeClass(ClassName.OPEN) - } else if ($(Selector.BODY).hasClass(ClassName.CLOSED)) { - this.expand() - } + if (!this._options.autoCollapseSize) { + return + } + + if ($(window).width() <= this._options.autoCollapseSize) { + if (!$(Selector.BODY).hasClass(ClassName.OPEN)) { + this.collapse() + } + } else if (resize === true) { + if ($(Selector.BODY).hasClass(ClassName.OPEN)) { + $(Selector.BODY).removeClass(ClassName.OPEN) + } else if ($(Selector.BODY).hasClass(ClassName.CLOSED)) { + this.expand() } } } remember() { - if (this._options.enableRemember) { - const toggleState = localStorage.getItem(`remember${EVENT_KEY}`) - if (toggleState === ClassName.COLLAPSED) { - if (this._options.noTransitionAfterReload) { - $('body').addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(50).queue(function () { - $(this).removeClass('hold-transition') - $(this).dequeue() - }) - } else { - $('body').addClass(ClassName.COLLAPSED) - } - } else if (this._options.noTransitionAfterReload) { - $('body').addClass('hold-transition').removeClass(ClassName.COLLAPSED).delay(50).queue(function () { + if (!this._options.enableRemember) { + return + } + + const toggleState = localStorage.getItem(`remember${EVENT_KEY}`) + if (toggleState === ClassName.COLLAPSED) { + if (this._options.noTransitionAfterReload) { + $('body').addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(50).queue(function () { $(this).removeClass('hold-transition') $(this).dequeue() }) } else { - $('body').removeClass(ClassName.COLLAPSED) + $('body').addClass(ClassName.COLLAPSED) } + } else if (this._options.noTransitionAfterReload) { + $('body').addClass('hold-transition').removeClass(ClassName.COLLAPSED).delay(50).queue(function () { + $(this).removeClass('hold-transition') + $(this).dequeue() + }) + } else { + $('body').removeClass(ClassName.COLLAPSED) } } From e56939983d2b1cedd13e97afe93448cbeb975767 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sun, 31 May 2020 20:58:24 +0300 Subject: [PATCH 3/7] Remove variables only used once. --- build/js/CardRefresh.js | 11 +++-------- build/js/CardWidget.js | 21 +++++---------------- build/js/ControlSidebar.js | 6 ++---- build/js/DirectChat.js | 4 +--- build/js/PushMenu.js | 6 ++---- build/js/Toasts.js | 11 +++-------- 6 files changed, 16 insertions(+), 43 deletions(-) diff --git a/build/js/CardRefresh.js b/build/js/CardRefresh.js index 03532a975..b205fe434 100644 --- a/build/js/CardRefresh.js +++ b/build/js/CardRefresh.js @@ -81,22 +81,17 @@ const CardRefresh = ($ => { this._removeOverlay() }, this._settings.responseType !== '' && this._settings.responseType) - const loadedEvent = $.Event(Event.LOADED) - $(this._element).trigger(loadedEvent) + $(this._element).trigger($.Event(Event.LOADED)) } _addOverlay() { this._parent.append(this._overlay) - - const overlayAddedEvent = $.Event(Event.OVERLAY_ADDED) - $(this._element).trigger(overlayAddedEvent) + $(this._element).trigger($.Event(Event.OVERLAY_ADDED)) } _removeOverlay() { this._parent.find(this._overlay).remove() - - const overlayRemovedEvent = $.Event(Event.OVERLAY_REMOVED) - $(this._element).trigger(overlayRemovedEvent) + $(this._element).trigger($.Event(Event.OVERLAY_REMOVED)) } // Private diff --git a/build/js/CardWidget.js b/build/js/CardWidget.js index 3358b89ab..eb89e53fa 100644 --- a/build/js/CardWidget.js +++ b/build/js/CardWidget.js @@ -76,9 +76,7 @@ const CardWidget = ($ => { .addClass(this._settings.expandIcon) .removeClass(this._settings.collapseIcon) - const collapsed = $.Event(Event.COLLAPSED) - - this._element.trigger(collapsed, this._parent) + this._element.trigger($.Event(Event.COLLAPSED), this._parent) } expand() { @@ -91,17 +89,12 @@ const CardWidget = ($ => { .addClass(this._settings.collapseIcon) .removeClass(this._settings.expandIcon) - const expanded = $.Event(Event.EXPANDED) - - this._element.trigger(expanded, this._parent) + this._element.trigger($.Event(Event.EXPANDED), this._parent) } remove() { this._parent.slideUp() - - const removed = $.Event(Event.REMOVED) - - this._element.trigger(removed, this._parent) + this._element.trigger($.Event(Event.REMOVED), this._parent) } toggle() { @@ -131,9 +124,7 @@ const CardWidget = ($ => { $(this).dequeue() }) - const maximized = $.Event(Event.MAXIMIZED) - - this._element.trigger(maximized, this._parent) + this._element.trigger($.Event(Event.MAXIMIZED), this._parent) } minimize() { @@ -156,9 +147,7 @@ const CardWidget = ($ => { $(this).dequeue() }) - const MINIMIZED = $.Event(Event.MINIMIZED) - - this._element.trigger(MINIMIZED, this._parent) + this._element.trigger($.Event(Event.MINIMIZED), this._parent) } toggleMaximize() { diff --git a/build/js/ControlSidebar.js b/build/js/ControlSidebar.js index 9abbe32f8..ab04366d5 100644 --- a/build/js/ControlSidebar.js +++ b/build/js/ControlSidebar.js @@ -80,8 +80,7 @@ const ControlSidebar = ($ => { $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN) } - const collapsedEvent = $.Event(Event.COLLAPSED) - $(this._element).trigger(collapsedEvent) + $(this._element).trigger($.Event(Event.COLLAPSED)) } show() { @@ -99,8 +98,7 @@ const ControlSidebar = ($ => { $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN) } - const expandedEvent = $.Event(Event.EXPANDED) - $(this._element).trigger(expandedEvent) + $(this._element).trigger($.Event(Event.EXPANDED)) } toggle() { diff --git a/build/js/DirectChat.js b/build/js/DirectChat.js index 79633b0d3..3295bc08d 100644 --- a/build/js/DirectChat.js +++ b/build/js/DirectChat.js @@ -40,9 +40,7 @@ const DirectChat = ($ => { toggle() { $(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN) - - const toggledEvent = $.Event(Event.TOGGLED) - $(this._element).trigger(toggledEvent) + $(this._element).trigger($.Event(Event.TOGGLED)) } // Static diff --git a/build/js/PushMenu.js b/build/js/PushMenu.js index a7c01ed47..82e65ddfe 100644 --- a/build/js/PushMenu.js +++ b/build/js/PushMenu.js @@ -72,8 +72,7 @@ const PushMenu = ($ => { localStorage.setItem(`remember${EVENT_KEY}`, ClassName.OPEN) } - const shownEvent = $.Event(Event.SHOWN) - $(this._element).trigger(shownEvent) + $(this._element).trigger($.Event(Event.SHOWN)) } collapse() { @@ -89,8 +88,7 @@ const PushMenu = ($ => { localStorage.setItem(`remember${EVENT_KEY}`, ClassName.COLLAPSED) } - const collapsedEvent = $.Event(Event.COLLAPSED) - $(this._element).trigger(collapsedEvent) + $(this._element).trigger($.Event(Event.COLLAPSED)) } toggle() { diff --git a/build/js/Toasts.js b/build/js/Toasts.js index c9d9b1ee2..732b19af3 100644 --- a/build/js/Toasts.js +++ b/build/js/Toasts.js @@ -68,11 +68,9 @@ const Toasts = ($ => { class Toasts { constructor(element, config) { this._config = config - this._prepareContainer() - const initEvent = $.Event(Event.INIT) - $('body').trigger(initEvent) + $('body').trigger($.Event(Event.INIT)) } // Public @@ -133,17 +131,14 @@ const Toasts = ($ => { $(this._getContainerId()).prepend(toast) - const createdEvent = $.Event(Event.CREATED) - $('body').trigger(createdEvent) + $('body').trigger($.Event(Event.CREATED)) toast.toast('show') if (this._config.autoremove) { toast.on('hidden.bs.toast', function () { $(this).delay(200).remove() - - const removedEvent = $.Event(Event.REMOVED) - $('body').trigger(removedEvent) + $('body').trigger($.Event(Event.REMOVED)) }) } } From cb85af826ededa51f69486b259683e8cdaf8048f Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sun, 31 May 2020 21:27:44 +0300 Subject: [PATCH 4/7] Reuse variable --- build/js/Dropdown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/js/Dropdown.js b/build/js/Dropdown.js index dd579deb9..2bcec8511 100644 --- a/build/js/Dropdown.js +++ b/build/js/Dropdown.js @@ -46,7 +46,7 @@ const Dropdown = ($ => { this._element.siblings().show().toggleClass('show') if (!this._element.next().hasClass('show')) { - this._element.parents('.dropdown-menu').first().find('.show').removeClass('show').hide() + this._element.parents(Selector.DROPDOWN_MENU).first().find('.show').removeClass('show').hide() } this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', () => { From 3478837aabde452d92e12fb352871f5e8a7a8016 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Mon, 1 Jun 2020 09:29:33 +0300 Subject: [PATCH 5/7] Layout.js: Simplify else --- build/js/Layout.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/js/Layout.js b/build/js/Layout.js index bed440628..6b2684283 100644 --- a/build/js/Layout.js +++ b/build/js/Layout.js @@ -116,7 +116,7 @@ const Layout = ($ => { fixLoginRegisterHeight() { if ($(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).length === 0) { $('body, html').css('height', 'auto') - } else if ($(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).length !== 0) { + } else { const boxHeight = $(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).height() if ($('body').css('min-height') !== boxHeight) { From 7853dcbd6e59179bb902b853aee96c9ed38d2324 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Mon, 1 Jun 2020 16:29:51 +0300 Subject: [PATCH 6/7] Use the document ready shorthand. --- build/js/CardRefresh.js | 2 +- pages/forms/general.html | 2 +- pages/forms/validation.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/js/CardRefresh.js b/build/js/CardRefresh.js index b205fe434..47415d483 100644 --- a/build/js/CardRefresh.js +++ b/build/js/CardRefresh.js @@ -138,7 +138,7 @@ const CardRefresh = ($ => { CardRefresh._jQueryInterface.call($(this), 'load') }) - $(document).ready(() => { + $(() => { $(Selector.DATA_REFRESH).each(function () { CardRefresh._jQueryInterface.call($(this)) }) diff --git a/pages/forms/general.html b/pages/forms/general.html index 431463fb4..08b6752a7 100644 --- a/pages/forms/general.html +++ b/pages/forms/general.html @@ -1314,7 +1314,7 @@ diff --git a/pages/forms/validation.html b/pages/forms/validation.html index 095631618..ab504ded0 100644 --- a/pages/forms/validation.html +++ b/pages/forms/validation.html @@ -798,7 +798,7 @@