From adb47560618324d16b104cdb0826331cab80b059 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Mon, 27 Nov 2023 13:36:50 +0800 Subject: [PATCH] * Finish sort order on dept. --- module/dept/control.php | 2 +- module/dept/js/browse.ui.js | 9 +++++++++ module/dept/model.php | 7 ++++++- module/dept/ui/browse.html.php | 6 +++++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/module/dept/control.php b/module/dept/control.php index 769578be29..893b4e5c74 100644 --- a/module/dept/control.php +++ b/module/dept/control.php @@ -40,7 +40,7 @@ class dept extends control { if(!empty($_POST)) { - $this->dept->updateOrder($_POST['orders']); + $this->dept->updateOrder(explode(',', $_POST['orders'])); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => true)); } } diff --git a/module/dept/js/browse.ui.js b/module/dept/js/browse.ui.js index 8e58438441..58ed646c2c 100644 --- a/module/dept/js/browse.ui.js +++ b/module/dept/js/browse.ui.js @@ -18,3 +18,12 @@ window.operateDept = function(event, item, index) $button.addClass('ajax-submit'); } } + +window.onSort = function(event, orders, parentKey) +{ + const url = $.createLink('dept', 'updateOrder'); + const form = new FormData(); + form.append('orders', orders); + + $.ajaxSubmit({url, data:form}); +} diff --git a/module/dept/model.php b/module/dept/model.php index 61d7cd8325..7d8bac75a2 100644 --- a/module/dept/model.php +++ b/module/dept/model.php @@ -253,7 +253,12 @@ class deptModel extends model */ public function updateOrder($orders): bool { - foreach($orders as $deptID => $order) $this->dao->update(TABLE_DEPT)->set('`order`')->eq($order)->where('id')->eq($deptID)->exec(); + $order = 1; + foreach($orders as $deptID) + { + $this->dao->update(TABLE_DEPT)->set('`order`')->eq($order)->where('id')->eq($deptID)->exec(); + $order ++; + } return !dao::isError(); } diff --git a/module/dept/ui/browse.html.php b/module/dept/ui/browse.html.php index e33f02eae7..667a6f251d 100644 --- a/module/dept/ui/browse.html.php +++ b/module/dept/ui/browse.html.php @@ -16,9 +16,11 @@ $processTreeAction = function($tree) use (&$processTreeAction) $canEditDept = hasPriv('dept', 'edit'); $canDeleteDept = hasPriv('dept', 'delete'); + $canSortDept = hasPriv('dept', 'updateOrder'); foreach($tree as $node) { $actions = array(); + if($canSortDept) $actions[] = array('key' => 'sort', 'icon' => 'move', 'hint' => $lang->dept->order, 'onClick' => jsRaw('window.operateDept')); if($canEditDept) $actions[] = array('key' => 'edit', 'icon' => 'edit', 'hint' => $lang->dept->edit, 'onClick' => jsRaw('window.operateDept')); if(empty($node->items) && $canDeleteDept) $actions[] = array('key' => 'delete', 'icon' => 'trash', 'hint' => $lang->dept->delete, 'onClick' => jsRaw('window.operateDept')); if(!empty($node->items)) $node->items = $processTreeAction($node->items); @@ -90,7 +92,9 @@ sidebar ( set::id('deptTree'), set::items($tree), - set::hover(true) + set::hover(true), + set::sortable(array('handle' => '.icon-move')), + set::onSort(jsRaw('window.onSort')) ) ) );