diff --git a/db_structure.php b/db_structure.php index 86afb8c863..44059e185a 100644 --- a/db_structure.php +++ b/db_structure.php @@ -128,7 +128,7 @@ echo $common_functions->getListNavigator( '; } + +/** + * void PMA_TableHeader([bool $db_is_information_schema = false]) + * display table header (...) + * + * @param boolean $db_is_information_schema + * @param boolean $replication + */ +function PMA_TableHeader($db_is_information_schema = false, $replication = false) +{ + $cnt = 0; // Let's count the columns... + + if ($db_is_information_schema) { + $action_colspan = 3; + } else { + $action_colspan = 6; + } + + $html_output = '
' . "\n" + .'' . "\n" + .'' . "\n" + .'' . "\n"; + if ($replication) { + $html_output .= ''; + } + $html_output .= '' + // larger values are more interesting so default sort order is DESC + .'' . "\n"; + if (!($GLOBALS['cfg']['PropertiesNumColumns'] > 1)) { + $html_output .= '' . "\n"; + $cnt++; + $html_output .= '' . "\n"; + $cnt++; + } + if ($GLOBALS['is_show_stats']) { + // larger values are more interesting so default sort order is DESC + $html_output .= '' . "\n" + // larger values are more interesting so default sort order is DESC + . '' . "\n"; + $cnt += 2; + } + if ($GLOBALS['cfg']['ShowDbStructureCreation']) { + // larger values are more interesting so default sort order is DESC + $html_output .= '' . "\n"; + $cnt += 2; + } + if ($GLOBALS['cfg']['ShowDbStructureLastUpdate']) { + // larger values are more interesting so default sort order is DESC + $html_output .= '' . "\n"; + $cnt += 2; + } + if ($GLOBALS['cfg']['ShowDbStructureLastCheck']) { + // larger values are more interesting so default sort order is DESC + $html_output .= '' . "\n"; + $cnt += 2; + } + $html_output .= '' . "\n"; + $html_output .= '' . "\n"; + $html_output .= '' . "\n"; + $GLOBALS['colspan_for_structure'] = $cnt + $action_colspan + 3; + + return $html_output; +} + +/** + * Creates a clickable column header for table information + * + * @param string $title title to use for the link + * @param string $sort corresponds to sortable data name mapped in + * libraries/db_info.inc.php + * @param string $initial_sort_order initial sort order + * + * @return string link to be displayed in the table header + */ +function PMA_SortableTableHeader($title, $sort, $initial_sort_order = 'ASC') +{ + $common_functions = PMA_CommonFunctions::getInstance(); + // Set some defaults + $requested_sort = 'table'; + $requested_sort_order = $future_sort_order = $initial_sort_order; + + // If the user requested a sort + if (isset($_REQUEST['sort'])) { + $requested_sort = $_REQUEST['sort']; + + if (isset($_REQUEST['sort_order'])) { + $requested_sort_order = $_REQUEST['sort_order']; + } + } + + $order_img = ''; + $order_link_params = array(); + $order_link_params['title'] = __('Sort'); + + // If this column was requested to be sorted. + if ($requested_sort == $sort) { + if ($requested_sort_order == 'ASC') { + $future_sort_order = 'DESC'; + // current sort order is ASC + $order_img = ' ' . $common_functions->getImage( + 's_asc.png', + __('Ascending'), + array('class' => 'sort_arrow', 'title' => '') + ); + $order_img .= ' ' . $common_functions->getImage( + 's_desc.png', + __('Descending'), + array('class' => 'sort_arrow hide', 'title' => '') + ); + // but on mouse over, show the reverse order (DESC) + $order_link_params['onmouseover'] = "$('.sort_arrow').toggle();"; + // on mouse out, show current sort order (ASC) + $order_link_params['onmouseout'] = "$('.sort_arrow').toggle();"; + } else { + $future_sort_order = 'ASC'; + // current sort order is DESC + $order_img = ' ' . $common_functions->getImage( + 's_asc.png', + __('Ascending'), + array('class' => 'sort_arrow hide', 'title' => '') + ); + $order_img .= ' ' . $common_functions->getImage( + 's_desc.png', + __('Descending'), + array('class' => 'sort_arrow', 'title' => '') + ); + // but on mouse over, show the reverse order (ASC) + $order_link_params['onmouseover'] = "$('.sort_arrow').toggle();"; + // on mouse out, show current sort order (DESC) + $order_link_params['onmouseout'] = "$('.sort_arrow').toggle();"; + } + } + + $_url_params = array( + 'db' => $_REQUEST['db'], + ); + + $url = 'db_structure.php'.PMA_generate_common_url($_url_params); + // We set the position back to 0 every time they sort. + $url .= "&pos=0&sort=$sort&sort_order=$future_sort_order"; + + return PMA_CommonFunctions::getInstance()->linkOrButton( + $url, $title . $order_img, $order_link_params + ); +} + ?>
' + . PMA_SortableTableHeader(__('Table'), 'table') + . '' . "\n" + .' ' . __('Replication') . "\n" + .'' . "\n" + .' ' . __('Action') . "\n" + .'' . PMA_SortableTableHeader(__('Rows'), 'records', 'DESC') + . PMA_CommonFunctions::getInstance()->showHint( + PMA_sanitize( + __('May be approximate. See [a@./Documentation.html#faq3_11@Documentation]FAQ 3.11[/a]') + ) + ) . "\n" + .'' . PMA_SortableTableHeader(__('Type'), 'type') + . '' + . PMA_SortableTableHeader(__('Collation'), 'collation') + . '' + . PMA_SortableTableHeader(__('Size'), 'size', 'DESC') + . '' + . PMA_SortableTableHeader(__('Overhead'), 'overhead', 'DESC') + . '' + . PMA_SortableTableHeader(__('Creation'), 'creation', 'DESC') + . '' + . PMA_SortableTableHeader(__('Last update'), 'last_update', 'DESC') + . '' + . PMA_SortableTableHeader(__('Last check'), 'last_check', 'DESC') + . '