* Finish task #86268.

This commit is contained in:
liumengyi
2023-03-09 01:31:02 +00:00
parent ec2153d942
commit 1928627db7
4 changed files with 82 additions and 1 deletions
+34
View File
@@ -528,4 +528,38 @@ class group extends control
$tree .= '</ul></li>';
return print($tree);
}
/**
* Sort priv packages.
*
* @param int $parentID
* @param int $grade
* @access public
* @return void
*/
public function sortPrivPackages($parentID = 0, $grade = 0)
{
$orders = $_POST['orders'];
if(empty($orders)) return false;
if($grade == '1')
{
$orders = str_replace('View,', ',', $orders);
$orders = trim($orders, ',');
$this->loadModel('setting')->setItem("system.priv.views", $orders);
}
if($grade == '2')
{
$orders = trim($orders, ',');
$parentID = rtrim($parentID, 'View');
$this->loadModel('setting')->setItem("system.priv.{$parentID}Modules", $orders);
}
if($grade == '3')
{
$orders = explode(',', $orders);
foreach($orders as $index => $id)
{
if(!empty($id)) $this->dao->update(TABLE_PRIVPACKAGE)->set('order')->eq(($index + 1) * 5)->where('id')->eq($id)->exec();
}
}
}
}
+7
View File
@@ -2,3 +2,10 @@
.c-name {min-width: 200px;}
.c-desc {min-width: 200px;}
.c-order {width: 50px;}
#privPackageTableList.sortable-sorting > tr {opacity: 0.7}
#privPackageTableList.sortable-sorting > tr.drag-row {opacity: 1;}
#privPackageTableList > tr.drop-not-allowed {opacity: 0.1!important}
tbody.sortable > tr > td.sort-handler .table-nest-toggle:before {cursor: pointer !important;}
tbody.sortable > tr > td.sort-handler {color: #3c4353 !important;}
+40
View File
@@ -0,0 +1,40 @@
$(function()
{
$list = $('#privPackageTableList');
$list.addClass('sortable').sortable(
{
selector: 'tr',
dragCssClass: 'drag-row',
trigger: $list.find('.sort-handler').length ? '.sort-handler' : null,
before: function(e)
{
// if($(e.event.target).closest('a,.btn').length) return false;
},
canMoveHere: function($ele, $target)
{
return $ele.data('parent') === $target.data('parent');
},
start: function(e)
{
e.targets.filter('[data-parent!="' + e.element.attr('data-parent') + '"]').addClass('drop-not-allowed');
},
finish: function(e)
{
var orders = '';
var $parent = $(e.element).data('parent');
var parentID = typeof $parent == 'object' ? $parent.id : 0;
var grade = typeof $parent == 'object' ? parseInt($parent.level + 1) : 1;
$list.find('tr[data-parent="' + parentID + '"]').each(function(){
orders += $(this).data('id') + ',';
});
$.post(createLink('group', 'sortPrivPackages', 'parent=' + parentID + '&grade=' + grade), {'orders': orders});
e.element.addClass('drop-success');
setTimeout(function(){e.element.removeClass('drop-success');}, 800);
$list.children('.drop-not-allowed').removeClass('drop-not-allowed');
$('#privPackageForm').table('initNestedList')
}
});
})
+1 -1
View File
@@ -839,7 +839,7 @@ class groupModel extends model
*/
public function getPrivPackagesByModule($module)
{
return $this->dao->select('*')->from(TABLE_PRIVPACKAGE)->where('module')->eq($module)->fetchAll('id');
return $this->dao->select('*')->from(TABLE_PRIVPACKAGE)->where('module')->eq($module)->orderBy('order_asc')->fetchAll('id');
}
/**