From 3739f34ec15954093bd2b5f6c6ee2829e62ebdf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 19 Jul 2021 16:04:44 +0200 Subject: [PATCH] making overflow work --- .../components/umbgroupsbuilder.directive.js | 13 ++++++++++++- .../directives/util/umboverflowchecker.directive.js | 10 ++++++---- .../src/views/components/umb-groups-builder.html | 8 ++++---- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js index 2016b60dd7..9e14f7f653 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js @@ -5,7 +5,7 @@ $filter, iconHelper, $q, $timeout, notificationsService, localizationService, editorService, eventsService, overlayService, contentEditingHelper) { - function link(scope) { + function link(scope, element) { const TYPE_GROUP = 0; const TYPE_TAB = 1; @@ -519,6 +519,17 @@ scope.overflow = { left: overflowLeft, right: overflowRight }; }; + scope.moveTabsOverflowLeft = function() { + //TODO: optimize this... + const el = element[0].querySelector(".umb-group-builder__tabs-list"); + el.scrollLeft -= el.clientWidth * 0.5; + } + scope.moveTabsOverflowRight = function() { + //TODO: optimize this... + const el = element[0].querySelector(".umb-group-builder__tabs-list"); + el.scrollLeft += el.clientWidth * 0.5; + } + scope.onChangeTabSortOrderValue = function () { scope.tabs = $filter('orderBy')(scope.tabs, 'sortOrder'); }; diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/util/umboverflowchecker.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/util/umboverflowchecker.directive.js index a5b4beb393..076ae4b311 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/util/umboverflowchecker.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/util/umboverflowchecker.directive.js @@ -1,7 +1,7 @@ angular.module("umbraco.directives") .directive('umbOverflowChecker', function ($parse, $timeout, windowResizeListener) { return { - restrict: 'A', + restrict: 'A', link: function (scope, element, attrs) { const overflow = $parse(attrs.onOverflow); @@ -12,10 +12,10 @@ angular.module("umbraco.directives") $timeout(() => { const scrollElementScrollWidth = scrollElement.scrollWidth; const containerScrollWidth = container.scrollWidth; - + const overflowLeft = scrollElement.scrollLeft; const overflowRight = containerScrollWidth - scrollElementScrollWidth + overflowLeft; - + scope.$evalAsync(() => overflow(scope, {overflowLeft, overflowRight})); }, 50); } @@ -39,9 +39,11 @@ angular.module("umbraco.directives") scrollElement.removeEventListener('scroll', checkOverflow); windowResizeListener.unregister(checkOverflow); }); - + scope.$on('umbOverflowChecker.checkOverflow', checkOverflow); scope.$on('umbOverflowChecker.scrollTo', scrollTo); + + checkOverflow(); } } }); diff --git a/src/Umbraco.Web.UI.Client/src/views/components/umb-groups-builder.html b/src/Umbraco.Web.UI.Client/src/views/components/umb-groups-builder.html index b6c17a6163..12d95d4cc0 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/umb-groups-builder.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/umb-groups-builder.html @@ -5,9 +5,9 @@
-
+
+
-
+
+