* Finish task #86268.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;}
|
||||
|
||||
|
||||
@@ -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')
|
||||
}
|
||||
|
||||
});
|
||||
})
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user