diff --git a/lib/functions.js b/lib/functions.js index 0943f5f3c..8466d527c 100644 --- a/lib/functions.js +++ b/lib/functions.js @@ -396,6 +396,7 @@ function start_widgets($widgets) { op: 'updatewidget', location: dst_list, id_module: globals.id_module, + id_record: globals.id_record, class: new_class, id: ui.item.attr('id') }); @@ -405,6 +406,7 @@ function start_widgets($widgets) { location: dst_list, ids: order, id_module: globals.id_module, + id_record: globals.id_record, class: new_class }); } diff --git a/modules/aggiornamenti/actions.php b/modules/aggiornamenti/actions.php index 19c9167f3..662b31be3 100644 --- a/modules/aggiornamenti/actions.php +++ b/modules/aggiornamenti/actions.php @@ -123,26 +123,36 @@ switch (post('op')) { case 'sortwidget': $id_module = post('id_module'); + $id_record = post('id_record'); $location = post('location'); - $class = post('class'); + //$class = post('class'); - $ids = explode(',', post('ids')); + (empty($id_record)) ? $location = 'controller_'.$location : $location = 'editor_'.$location; - for ($i = 0; $i < count($ids); ++$i) { - $id = explode('_', $ids[$i]); - $dbo->query('UPDATE zz_widgets SET `order`='.prepare($i).', class='.prepare($class).' WHERE id='.prepare($id[1]).' AND location='.prepare($location).' AND id_module='.prepare($id_module)); + $rs = $dbo->fetchArray('SELECT CONCAT(\'widget_\',id) AS id FROM zz_widgets WHERE enabled = 1 AND location = '.prepare($location).' AND id_module = '.prepare($id_module).' ORDER BY `order` ASC'); + + if ($_POST['ids'] != implode(',', array_column($rs, 'id'))) { + + $ids = explode(',', $_POST['ids']); + + for ($i = 0; $i < count($ids); ++$i) { + $id = explode('_', $ids[$i]); + $dbo->query('UPDATE zz_widgets SET `order`='.prepare($i).' WHERE id='.prepare($id[1])); + } + $_SESSION['infos'][] = tr('Posizioni widgets aggiornate!'); } - break; case 'updatewidget': - $class = post('class'); - $id_module = post('id_module'); + $id_record = post('id_record'); $location = post('location'); + $class = post('class'); $id = explode('_', post('id')); + (empty($id_record)) ? $location = 'controller_'.$location : $location = 'editor_'.$location; - $dbo->query('UPDATE zz_widgets SET location='.prepare($location).', class='.prepare($class).' WHERE id='.prepare($id[1]).' AND id_module='.prepare($id_module)); + if (!empty($class)) + $dbo->query('UPDATE zz_widgets SET class='.prepare($class).' WHERE id='.prepare($id[1])); break; }