diff --git a/pandora_console/godmode/reporting/visual_console_builder.elements.php b/pandora_console/godmode/reporting/visual_console_builder.elements.php index 0f9949cfbf..e47ecf217f 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.elements.php +++ b/pandora_console/godmode/reporting/visual_console_builder.elements.php @@ -60,7 +60,10 @@ $table->head[1] = __('Image') . ' / ' . __('Module'); $table->head[2] = __('Width x Height
Max value'); $table->head[3] = __('Period') . ' / ' . __('Position'); $table->head[4] = __('Parent') . ' / ' . __('Map linked'); -$table->head[5] = '' . +$table->head[5] = ""; +$table->head[5] .= html_print_checkbox('head_multiple_delete', + '', false, true, false, 'toggle_checkbox_multiple_delete();'); +$table->head[5] .= '' . __('A.') . ''; $table->size = array(); @@ -248,16 +251,35 @@ foreach ($layoutDatas as $layoutData) { //Delete row button if (!defined('METACONSOLE')) { - $table->data[$i + 1][5] = '' . html_print_image('images/cross.png', true) . ''; + $url_delete = "index.php?" . + "sec=reporting&" . + "sec2=godmode/reporting/visual_console_builder&" . + "tab=" . $activeTab . "&" . + "action=delete&" . + "id_visual_console=" . $visualConsole["id"] . "&" . + "id_element=" . $idLayoutData; + + $table->data[$i + 1][5] = ""; + $table->data[$i + 1][5] .= html_print_checkbox('multiple_delete_items', $idLayoutData, false, true); + $table->data[$i + 1][5] .= '' . + html_print_image('images/cross.png', true) . ''; } else { - $pure = get_parameter('pure', 0); + $url_delete = "index.php?" . + "operation=edit_visualmap&" . + "sec=screen&" . + "sec2=screens/screens&" . + "action=visualmap&" . + "pure=" . (int)get_parameter('pure', 0) . "&" . + "tab=list_elements&" . + "action2=delete&" . + "id_visual_console=" . $visualConsole["id"] . "&" . + "id_element=" . $idLayoutData; - $table->data[$i + 1][5] = '' . html_print_image('images/cross.png', true) . ''; + $table->data[$i + 1][5] = '' . + html_print_image('images/cross.png', true) . ''; } @@ -400,8 +422,12 @@ foreach ($layoutDatas as $layoutData) { break; default: $table->data[$i + 2][4] = html_print_select_from_sql( - 'SELECT id, name FROM tlayout WHERE id != ' . $idVisualConsole, - 'map_linked_' . $idLayoutData, $layoutData['id_layout_linked'], '', 'None', '', true, false, true, '', false, "width: 120px"); + 'SELECT id, name + FROM tlayout + WHERE id != ' . $idVisualConsole, + 'map_linked_' . $idLayoutData, + $layoutData['id_layout_linked'], '', 'None', '', true, + false, true, '', false, "width: 120px"); break; } @@ -435,16 +461,56 @@ if (!defined('METACONSOLE')) { else { html_print_input_hidden ('action2', 'update'); } + +echo "
"; + html_print_input_hidden ('id_visual_console', $visualConsole["id"]); html_print_submit_button (__('Update'), 'go', false, 'class="sub next"'); +echo " "; +html_print_button(__('Delete'), 'delete', false, 'submit_delete_multiple_items();', 'class="sub delete"'); echo ''; html_print_table($table); echo '
'; html_print_submit_button (__('Update'), 'go', false, 'class="sub next"'); +echo " "; +html_print_button(__('Delete'), 'delete', false, 'submit_delete_multiple_items();', 'class="sub delete"'); echo '
'; echo ''; +// Form for multiple delete +if (!defined('METACONSOLE')) { + $url_multiple_delete = "index.php?" . + "sec=reporting&" . + "sec2=godmode/reporting/visual_console_builder&" . + "tab=" . $activeTab . "&" . + "id_visual_console=" . $visualConsole["id"]; + + echo '
'; +} +else { + $url_multiple_delete = "index.php?" . + "operation=edit_visualmap&" . + "sec=screen&" . + "sec2=screens/screens&" . + "action=visualmap&" . + "pure=0&" . + "tab=list_elements&" . + "id_visual_console=" . $idVisualConsole; + + echo ""; +} +if (!defined('METACONSOLE')) { + html_print_input_hidden ('action', 'multiple_delete'); +} +else { + html_print_input_hidden ('action2', 'multiple_delete'); +} +html_print_input_hidden ('id_visual_console', $visualConsole["id"]); +html_print_input_hidden('id_item_json', ''); +echo '
'; + + //Trick for it have a traduct text for javascript. echo ''; ?> @@ -530,4 +596,23 @@ ui_require_javascript_file('tiny_mce', 'include/javascript/tiny_mce/'); tinyMCE.activeEditor.setContent(label); $("#dialog_label_editor").dialog("open"); } + + function toggle_checkbox_multiple_delete() { + checked_head_multiple = $("input[name='head_multiple_delete']") + .is(":checked"); + + $("input[name='multiple_delete_items']") + .prop("checked", checked_head_multiple); + } + + function submit_delete_multiple_items() { + delete_items = []; + jQuery.each($("input[name='multiple_delete_items']:checked"), function(i, item) { + delete_items.push($(item).val()); + }); + + + $("input[name='id_item_json']").val(JSON.stringify(delete_items)); + $("#form_multiple_delete").submit(); + } diff --git a/pandora_console/godmode/reporting/visual_console_builder.php b/pandora_console/godmode/reporting/visual_console_builder.php index 43306e109b..c7d9760690 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.php +++ b/pandora_console/godmode/reporting/visual_console_builder.php @@ -41,12 +41,16 @@ else { $id_layout = 0; if (!defined('METACONSOLE')) { - $action = get_parameterBetweenListValues('action', array('new', 'save', 'edit', 'update', 'delete'), 'new'); + $action_name_parameter = 'action'; } else { - $action = get_parameterBetweenListValues('action2', array('new', 'save', 'edit', 'update', 'delete'), 'new'); + $action_name_parameter = 'action2'; } +$action = get_parameterBetweenListValues($action_name_parameter, + array('new', 'save', 'edit', 'update', 'delete', 'multiple_delete'), + 'new'); + $activeTab = get_parameterBetweenListValues('tab', array('data', 'list_elements', 'wizard', 'wizard_services', 'editor'), 'data'); $refr = (int) get_parameter ('refr', $config['vc_refr']); @@ -137,6 +141,32 @@ switch ($activeTab) { case 'list_elements': switch ($action) { + case 'multiple_delete': + $delete_items_json = io_safe_output( + get_parameter("id_item_json", + json_encode(array()))); + + $delete_items = json_decode($delete_items_json, true); + $id_visual_console = (int)get_parameter( + 'id_visual_console', 0); + + if (!empty($delete_items)) { + $result = (bool)db_process_sql_delete( + 'tlayout_data', + array('id_layout' => $id_visual_console, + 'id' => $delete_items)); + + } + else { + $result = false; + } + + $statusProcessInDB = array( + 'flag' => true, + 'message' => ui_print_result_message($result, + __('Successfully multiple delete.'), + __('Unsuccessfull multiple delete.'), '', true)); + break; case 'update': //Update background @@ -161,7 +191,7 @@ switch ($activeTab) { $idsElements = db_get_all_rows_filter('tlayout_data', array('id_layout' => $idVisualConsole), array('id')); - if ($idsElements === false){ + if ($idsElements === false) { $idsElements = array(); } @@ -497,11 +527,11 @@ if (!defined('METACONSOLE')) { $buttons); } -//The source code for PAINT THE PAGE if ($statusProcessInDB !== null) { echo $statusProcessInDB['message']; } +//The source code for PAINT THE PAGE switch ($activeTab) { case 'wizard': require_once($config['homedir'] . '/godmode/reporting/visual_console_builder.wizard.php');