From e2d484c49d972ae8027250655d3c3702b0ed064d Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 1 Sep 2022 15:12:24 +0800 Subject: [PATCH 01/10] * Fix issue #726. --- module/kanban/js/view.js | 5 +++++ module/kanban/view/view.html.php | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index b0301ed6bd..859c3fd81e 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1433,6 +1433,8 @@ function initKanban($kanban) */ $(function() { + $(document).find('main#main').css('padding-top', '16px'); + window.isMultiLanes = laneCount > 1; $.cookie('isFullScreen', 0); @@ -1565,6 +1567,8 @@ $(function() if($(this).hasClass('disabled')) return; swipeRegionNavTabs($('#regionNavTabs').find('ul'), 'right'); }); + + if(Object.values(regions).length <= 1) $('#kanbanBox').removeClass('hidden'); }); /** @@ -1919,4 +1923,5 @@ function initRegionTabs() $regionNavTabs.find('ul')[0].style.transform = 'translateX(' + distance + 'px)'; if(distance < 0) $('#regionTabs').find('.leftBtn').removeClass('disabled'); if($acitiveItem.next().length != 0 && regionTabULWidth > regionTabsWidth) $('#regionTabs').find('.rightBtn').removeClass('disabled'); + $('#kanbanBox').removeClass('hidden'); } diff --git a/module/kanban/view/view.html.php b/module/kanban/view/view.html.php index 6cb317adde..121728b6e8 100644 --- a/module/kanban/view/view.html.php +++ b/module/kanban/view/view.html.php @@ -54,7 +54,7 @@ $canViewArchivedCard = commonModel::hasPriv('kanban', 'viewArchivedCard'); $canViewArchivedColumn = commonModel::hasPriv('kanban', 'viewArchivedColumn'); ?> -
+
@@ -117,39 +100,22 @@ $canViewArchivedColumn = commonModel::hasPriv('kanban', 'viewArchivedColumn');
From 30998f7add4838f0174b65717fe1f024e81fe5e4 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 1 Sep 2022 15:47:42 +0800 Subject: [PATCH 03/10] * Finish task #66996. --- module/kanban/js/view.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 088b021401..db5d3cda1d 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1856,7 +1856,7 @@ function swipeRegionNavTabs($object, direction) var radius = $item.hasClass('active') ? radiusWidth : 0; /* Calculate the offset after sliding. */ - if(direction == 'left' && (itemOffset + distance + radius) >= 0) + if(direction == 'left' && (itemOffset + distance + radius) >= -5) { /* If you swipe left, the distance is equal to the item's left. */ distance = - itemLeft + radius - ($item.prev().hasClass('active') ? radiusWidth : 0); From 708494da4eb537d3c283d43610fd23f6c714741b Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 1 Sep 2022 16:17:04 +0800 Subject: [PATCH 04/10] * Fix issue #731. --- module/kanban/css/view.css | 4 ++++ module/kanban/js/view.js | 25 +++++++++++++++++++++++++ module/kanban/view/view.html.php | 15 ++++++--------- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/module/kanban/css/view.css b/module/kanban/css/view.css index 83f5935427..cf39da2402 100644 --- a/module/kanban/css/view.css +++ b/module/kanban/css/view.css @@ -175,3 +175,7 @@ #regionTabs.affixed ul > li {margin-bottom: 0px !important;} #regionTabs .region-actions .dropdown-menu {top: 25px;} #region-tab-actions {display: flex; position: relative; right: 0px; top: -2px;} +.region {display: none;} +.region.active {display: block;} +.region.active.notAll {margin-top: 0px;} +.region.active.notAll .region-header > * {display: none;} diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 088b021401..a18c74ac44 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1923,3 +1923,28 @@ function initRegionTabs() if($acitiveItem.next().length != 0 && regionTabULWidth > regionTabsWidth) $('#regionTabs').find('.rightBtn').removeClass('disabled'); $('#kanbanBox').removeClass('hidden'); } + +$('[data-tab]').on('shown.zui.tab', function(e) +{ + var $current = $(e.target); + var $prev = $(e.relatedTarget); + var contentID = $current.attr('href'); + + $current.addClass('btn-active-text'); + $current.parent().addClass('active'); + $prev.removeClass('btn-active-text'); + $prev.parent().removeClass('active'); + + if(contentID == 'all') + { + $('.region').addClass('active'); + $('.region').removeClass('notAll'); + } + else + { + var $currentRegion = $(contentID); + $('.region').removeClass('active'); + $currentRegion.addClass('active notAll'); + $currentRegion.find('.kanban').css('display', 'block'); + } +}); diff --git a/module/kanban/view/view.html.php b/module/kanban/view/view.html.php index 08ca0055a9..a42934bff6 100644 --- a/module/kanban/view/view.html.php +++ b/module/kanban/view/view.html.php @@ -61,15 +61,13 @@ $canViewArchivedColumn = commonModel::hasPriv('kanban', 'viewArchivedColumn');
@@ -96,9 +94,8 @@ $canViewArchivedColumn = commonModel::hasPriv('kanban', 'viewArchivedColumn');
- $regions[$regionID]) : $regions;?> - -
+ +
-
+
archived and ($canViewArchivedCard or $canViewArchivedColumn))) and !(isset($this->config->CRKanban) and $this->config->CRKanban == '0' and $kanban->status == 'closed')):?> @@ -95,7 +95,10 @@ $canViewArchivedColumn = commonModel::hasPriv('kanban', 'viewArchivedColumn');
-
+ id == $regionID) ? 'active' : '';?> + + +
From 65e3fc90348471aa564ef872880736ef4eeb5900 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 2 Sep 2022 09:11:42 +0800 Subject: [PATCH 08/10] * Fix issue #731. --- module/kanban/css/view.css | 4 ++-- module/kanban/js/view.js | 28 ++++++++++++++++------------ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/module/kanban/css/view.css b/module/kanban/css/view.css index c9a67e1bf8..d841043f41 100644 --- a/module/kanban/css/view.css +++ b/module/kanban/css/view.css @@ -161,8 +161,8 @@ #regionTabs {background-color: #efefef; z-index: 100; display: flex;} #regionTabs .leftBtn.disabled i, #regionTabs .rightBtn.disabled i{color: #c2c2c2;} #regionTabs .icon-angle-left, #regionTabs .icon-angle-right {font-size: 20px; vertical-align: -webkit-baseline-middle;} -#regionNavTabs {display: inline-flex; overflow: hidden; width: 100%;} -#regionNavTabs > ul {display: inline-flex; border-bottom: unset; transform: translateX(10px);} +#regionNavTabs {display: inline-flex; overflow: hidden; width: 100%; padding-left: 10px;} +#regionNavTabs > ul {display: inline-flex; border-bottom: unset;} #regionNavTabs > ul > li {padding: 6px 15px; margin-bottom: 6px; border-radius: 4px 4px 0px 0px;} #regionNavTabs > ul > li.active {background-color: #fff;} #regionNavTabs > ul > li.active::before {content: ''; width: 10px; height: 10px; position: absolute; left: -10px; top: 21px; background: radial-gradient(circle at 0% 0%,transparent 10px,#fff 0);} diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index bfdbe38fbb..8be1cbad72 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1554,6 +1554,8 @@ $(function() setToolTip(); + distance = 0; + radiusWidth = 10; $(window).on('resize', initRegionTabs); $('.leftBtn').click(function() @@ -1856,13 +1858,13 @@ function swipeRegionNavTabs($object, direction) var radius = $item.hasClass('active') ? radiusWidth : 0; /* Calculate the offset after sliding. */ - if(direction == 'left' && (itemOffset + distance + radius) >= -5) + if(direction == 'left' && (itemOffset + distance + radius + radiusWidth) >= -5) { /* If you swipe left, the distance is equal to the item's left. */ - distance = - itemLeft + radius - ($item.prev().hasClass('active') ? radiusWidth : 0); - if(distance + radius >= 0) + distance = - itemLeft + radius - ($item.prev().hasClass('active') ? radiusWidth : 0) - radiusWidth; + if($item.prev().length == 0) { - distance = radius; + distance = 0; $('.leftBtn').addClass('disabled'); } $object[0].style.transform = 'translateX(' + distance + 'px)'; @@ -1873,13 +1875,13 @@ function swipeRegionNavTabs($object, direction) } var nextRadius = $item.next().hasClass('active') ? radiusWidth : 0; - if(direction == 'right' && itemOffset > (offsetWidth - distance + nextRadius)) + if(direction == 'right' && itemOffset > (offsetWidth - distance + nextRadius + radiusWidth)) { /* If you swipe right, the distance is equal to the left distance of item plus the width of item minus the width of the regionNavTabs. */ - distance = offsetWidth - itemOffset - radius + nextRadius; + distance = offsetWidth - itemOffset - radius + nextRadius - radiusWidth; if($item.next().length == 0) { - distance = - objectWidth + offsetWidth - radius; + distance = - objectWidth + offsetWidth - radiusWidth * 2; $('.rightBtn').addClass('disabled'); } $object[0].style.transform = 'translateX(' + distance + 'px)'; @@ -1914,11 +1916,13 @@ function initRegionTabs() /* Print left and right button. */ if(regionTabULWidth > regionTabsWidth) $('.leftBtn, .rightBtn').removeClass('hidden'); - /* Locate the position of the currently selected item. */ - radiusWidth = 10; - distance = (acitiveItemLeft + acitiveItemWidth) > regionTabsWidth ? - (acitiveItemLeft + acitiveItemWidth - regionTabsWidth + radiusWidth) : 0; - if($acitiveItem.prev().length == 0) distance = radiusWidth; - $regionNavTabs.find('ul')[0].style.transform = 'translateX(' + distance + 'px)'; + if(acitiveItemLeft + distance + radiusWidth < 0 || acitiveItemWidth + acitiveItemLeft + distance + radiusWidth> regionTabsWidth) + { + /* Locate the position of the currently selected item. */ + distance = (acitiveItemLeft + acitiveItemWidth) > regionTabsWidth ? - (acitiveItemLeft + acitiveItemWidth - regionTabsWidth + radiusWidth * 2) : 0; + if($acitiveItem.prev().length == 0) distance = 0; + $regionNavTabs.find('ul')[0].style.transform = 'translateX(' + distance + 'px)'; + } if(distance < 0) $('#regionTabs').find('.leftBtn').removeClass('disabled'); if($acitiveItem.next().length != 0 && regionTabULWidth > regionTabsWidth) $('#regionTabs').find('.rightBtn').removeClass('disabled'); $('#kanbanBox').removeClass('hidden'); From f667c53c829a28d9e345dd95f3b7391473c6dcfb Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 2 Sep 2022 10:46:07 +0800 Subject: [PATCH 09/10] * Fix issue #731. --- module/kanban/js/view.js | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 8be1cbad72..90a26fb613 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1858,10 +1858,10 @@ function swipeRegionNavTabs($object, direction) var radius = $item.hasClass('active') ? radiusWidth : 0; /* Calculate the offset after sliding. */ - if(direction == 'left' && (itemOffset + distance + radius + radiusWidth) >= -5) + if(direction == 'left' && (itemOffset + distance + radius) >= -5) { /* If you swipe left, the distance is equal to the item's left. */ - distance = - itemLeft + radius - ($item.prev().hasClass('active') ? radiusWidth : 0) - radiusWidth; + distance = - itemLeft + radius - ($item.prev().hasClass('active') ? radiusWidth : 0); if($item.prev().length == 0) { distance = 0; @@ -1875,10 +1875,10 @@ function swipeRegionNavTabs($object, direction) } var nextRadius = $item.next().hasClass('active') ? radiusWidth : 0; - if(direction == 'right' && itemOffset > (offsetWidth - distance + nextRadius + radiusWidth)) + if(direction == 'right' && itemOffset > (offsetWidth - distance + nextRadius + radiusWidth * 2)) { /* If you swipe right, the distance is equal to the left distance of item plus the width of item minus the width of the regionNavTabs. */ - distance = offsetWidth - itemOffset - radius + nextRadius - radiusWidth; + distance = offsetWidth - itemOffset - radius + nextRadius - radiusWidth * 2; if($item.next().length == 0) { distance = - objectWidth + offsetWidth - radiusWidth * 2; @@ -1916,13 +1916,27 @@ function initRegionTabs() /* Print left and right button. */ if(regionTabULWidth > regionTabsWidth) $('.leftBtn, .rightBtn').removeClass('hidden'); - if(acitiveItemLeft + distance + radiusWidth < 0 || acitiveItemWidth + acitiveItemLeft + distance + radiusWidth> regionTabsWidth) + if(acitiveItemLeft + distance < 0) { - /* Locate the position of the currently selected item. */ - distance = (acitiveItemLeft + acitiveItemWidth) > regionTabsWidth ? - (acitiveItemLeft + acitiveItemWidth - regionTabsWidth + radiusWidth * 2) : 0; - if($acitiveItem.prev().length == 0) distance = 0; - $regionNavTabs.find('ul')[0].style.transform = 'translateX(' + distance + 'px)'; + distance = - acitiveItemLeft; + if($acitiveItem.prev().length == 0) + { + distance = 0; + $('.leftBtn').addClass('disabled'); + } + $('#regionNavTabs > ul')[0].style.transform = 'translateX(' + distance + 'px)'; } + else if(acitiveItemWidth + acitiveItemLeft + distance + radiusWidth * 2 > regionTabsWidth && acitiveItemLeft != 0 && acitiveItemWidth != 0) + { + distance = regionTabsWidth - acitiveItemWidth - acitiveItemLeft - radiusWidth * 2; + if($acitiveItem.next().length == 0) + { + distance = regionTabsWidth - acitiveItemWidth - acitiveItemLeft - radiusWidth * 2; + $('.rightBtn').addClass('disabled'); + } + $('#regionNavTabs > ul')[0].style.transform = 'translateX(' + distance + 'px)'; + } + if(distance < 0) $('#regionTabs').find('.leftBtn').removeClass('disabled'); if($acitiveItem.next().length != 0 && regionTabULWidth > regionTabsWidth) $('#regionTabs').find('.rightBtn').removeClass('disabled'); $('#kanbanBox').removeClass('hidden'); From 26ba81c2a6f02b3f36dd3caf92147fe07959f72f Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 2 Sep 2022 10:56:48 +0800 Subject: [PATCH 10/10] * Optimize code. --- module/kanban/js/view.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 90a26fb613..9870249836 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -1964,7 +1964,7 @@ $('[data-tab]').on('shown.zui.tab', function(e) { $regions.addClass('active').removeClass('notAll'); if(hasActions) $regionActions.removeClass('active'); - } + } else { var $currentRegion = $(contentID);