<script language="javascript" type="text/javascript" src="{$ADMIN_MEDIA_URL}js/jquery.tablednd.js"></script>
<script type="text/javascript">
var reorder_url = "reorder/";
+var prev_ids;
{literal}
$(document).ready(function()
{
- $('#items-grid').tableDnD({
+ $('#items-grid').tableDnD({
onDragClass: "ItemsDragClass",
- onDrop: function(table, row) {
- $.post(reorder_url, {'ids': $.tableDnD.serialize(), 'drop_id':row.id}, function(data){});
+ onDragStart: function(table, row) {
+ prev_ids = $.tableDnD.serialize();
+ },
+ onDrop: function(table, row) {
+ $.post(reorder_url, {'ids': $.tableDnD.serialize(), 'prev_ids': prev_ids, 'drop_id':row.id}, function(data){});
}
- });
+ });
});
{/literal}
</script>
if ($ca!==true) return $ca;
if ($request->method != 'POST')
- return new IPF_HTTP_Response_NotFound();
+ return new IPF_HTTP_Response_NotFound();
if (!isset($request->POST['ids']))
- return new IPF_HTTP_Response_NotFound();
+ return new IPF_HTTP_Response_NotFound();
+
+ if (!isset($request->POST['prev_ids']))
+ return new IPF_HTTP_Response_NotFound();
if (!isset($request->POST['drop_id']))
- return new IPF_HTTP_Response_NotFound();
- $drop_id = $request->POST['drop_id'];
+ return new IPF_HTTP_Response_NotFound();
$lapp = $match[1];
$lmodel = $match[2];
-
foreach (IPF_Project::getInstance()->appList() as $app){
foreach($app->modelList() as $m){
if (strtolower($m)==$lmodel){
return new IPF_HTTP_Response_NotFound();
if (method_exists($ma, 'list_order'))
- $ord_field = $ma->list_order();
+ $ord_field = $ma->list_order();
else
- return new IPF_HTTP_Response_NotFound();
+ return new IPF_HTTP_Response_NotFound();
+
+ $ids = split(',',(string)$request->POST['ids']);
+ $prev_ids = split(',',(string)$request->POST['prev_ids']);
+ $drop_id = $request->POST['drop_id'];
$o = new $m();
- $ids = split(',',(string)$request->POST['ids']);
- $o->_reorder($ids, $ord_field, $drop_id);
- return new IPF_HTTP_Response_Json("Ok");
+ $o->_reorder($ids, $ord_field, $drop_id, $prev_ids);
+ return new IPF_HTTP_Response_Json("Ok");
}
}
}
return null;
}
- public function _reorder($ids, $ord_field, $drop_id){
+ public function _reorder($ids, $ord_field, $drop_id, $prev_ids){
$ord = 1;
foreach($ids as $id){
$item = $this->getTable()->find($id);
$ord++;
}
}
-
}
\ No newline at end of file