X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=includes%2Fui%2Fdb_pager_view.inc;h=573cae2897889b91b600abcf6f09e164cfe71155;hb=a4db318fa0c84e099e0970ca82e36215782d661e;hp=a30487f90be2711432be7ce846660dff89d32658;hpb=ffb0ae97be5c30eeee98ad9aac45cf5077b515c7;p=fa-stable.git diff --git a/includes/ui/db_pager_view.inc b/includes/ui/db_pager_view.inc index a30487f9..573cae28 100644 --- a/includes/ui/db_pager_view.inc +++ b/includes/ui/db_pager_view.inc @@ -1,10 +1,22 @@ . +***********************************************************************/ //-------------------------------------------------------------------------------------------------- -function pager_link($link_text, $url) +function pager_link($link_text, $url, $icon=false) { global $path_to_root; $link = access_string($link_text); + if (user_graphic_links() && $icon) + $link[0] = set_icon($icon, $link[0]); $href = $path_to_root . $url; return "" . $link[0] . ""; @@ -33,7 +45,7 @@ function display_db_pager(&$pager) { div_start("_{$pager->name}_span"); $headers = array(); -//display_error(print_r($pager->columns,true)); + foreach($pager->columns as $num_col=>$col) { if (isset($col['head'])) { if (!isset($col['ord'])) @@ -47,8 +59,24 @@ function display_db_pager(&$pager) { } } /* show a table of records returned by the sql */ - start_table("$table_style width=95%"); - table_header($headers); + start_table("$table_style width=$pager->width"); + table_header($headers, 'nowrap'); + + if($pager->header_fun) { // if set header handler + start_row("class='{$pager->header_class}'"); + $fun = $pager->header_fun; + if (method_exists($pager, $fun)) { + $h = $pager->$fun($pager); + } elseif (function_exists($fun)) { + $h = $fun($pager); + } + + foreach($h as $c) { // draw header columns + $pars = isset($c[1]) ? $c[1] : ''; + label_cell($c[0], $pars); + } + end_row(); + } $cc = 0; //row colour counter foreach($pager->data as $line_no => $row) { @@ -62,9 +90,21 @@ function display_db_pager(&$pager) { $coltype = $col['type']; $cell = isset($col['name']) ? $row[$col['name']] : ''; - switch($coltype) { + if (isset($col['fun'])) { // use data input function if defined + $fun = $col['fun']; + if (method_exists($pager, $fun)) { + $cell = $pager->$fun($row, $cell); + } elseif (function_exists($fun)) { + $cell = $fun($row, $cell); + } else + $cell = ''; + } + + switch($coltype) { // format column + case 'time': + label_cell($cell, "width=40"); break; case 'date': - label_cell(sql2date($cell), "align='center'"); break; + label_cell(sql2date($cell), "align='center' width=50"); break; case 'dstamp': // time stamp displayed as date label_cell(sql2date(substr($cell, 0, 10)), "align='center'"); break; case 'tstamp': // time stamp - FIX user format @@ -73,42 +113,62 @@ function display_db_pager(&$pager) { case 'percent': percent_cell($cell); break; case 'amount': - amount_cell($cell); break; + if ($cell=='') + label_cell(''); + else + amount_cell($cell, false); break; case 'qty': - qty_cell($cell); break; + if ($cell=='') + label_cell(''); + else + qty_cell($cell, false, isset($col['dec']) ? $col['dec'] : null); break; case 'rate': - rate_cell($cell); break; - case 'insert': // extra inserted column - case 'spec': // special formatting function - $fun = $col['fun']; - $param = $coltype=='spec' ? $cell : $row; - if (method_exists($pager, $fun)) { - $cell = $pager->$fun($param); - } elseif (function_exists($fun)) { - $cell = $fun($param); - } else - $cell = ''; -// case 'text': + label_cell(number_format2($cell, user_exrate_dec()), "align=center"); break; default: - label_cell($cell); +// case 'text': + if (isset( $col['align'])) + label_cell($cell, "align='" . $col['align'] . "'"); + else + label_cell($cell); case 'skip': // column not displayed } } end_row(); } //end of while loop - end_table(); - start_table("$table_style align='center' class='navibar' width=95%"); - start_row(); + + if($pager->footer_fun) { // if set footer handler + start_row("class='{$pager->footer_class}'"); + $fun = $pager->footer_fun; + if (method_exists($pager, $fun)) { + $h = $pager->$fun($pager); + } elseif (function_exists($fun)) { + $h = $fun($pager); + } + + foreach($h as $c) { // draw footer columns + $pars = isset($c[1]) ? $c[1] : ''; + label_cell($c[0], $pars); + } + end_row(); + } + + //end_table(); + //start_table("$table_style align='center' class='navibar' width=100%"); + /* + start_row("class='navibar'"); + $colspan = count($pager->columns); if($pager->rec_count) { $from = ($pager->curr_page-1)*$pager->page_len+1; $to = $from + $pager->page_len - 1; if ($to > $pager->rec_count) $to = $pager->rec_count; $all = $pager->rec_count; + $lcols = ($colspan > 4 ? 3 : 2); label_cell(sprintf( _('Records %d-%d of %d'), $from, $to, $all), - "style='border:none'"); - echo ""; + "colspan=$lcols class='navibar' style='border:none'"); + //echo ""; + echo ""; $but_pref = $pager->name.'_page_'; start_table("align='right'"); start_row(); @@ -120,9 +180,37 @@ function display_db_pager(&$pager) { end_table(); echo ""; } else { - label_cell( _('No records')); + label_cell( _('No records'), "colspan=$colspan class='navibar'"); + } + end_row(); + */ + start_row("class='navibar'"); + $colspan = count($pager->columns); + if($pager->rec_count) { + echo ""; + echo "
"; + $but_pref = $pager->name.'_page_'; + start_table(); + start_row(); + echo navi_button_cell($but_pref.'first', _('First'), $pager->first_page, 'right'); + echo navi_button_cell($but_pref.'prev', _('Prev'), $pager->prev_page,'right'); + echo navi_button_cell($but_pref.'next', _('Next'), $pager->next_page,'right'); + echo navi_button_cell($but_pref.'last', _('Last'), $pager->last_page, 'right'); + end_row(); + end_table(); + echo "
"; + $from = ($pager->curr_page-1)*$pager->page_len+1; + $to = $from + $pager->page_len - 1; + if ($to > $pager->rec_count) + $to = $pager->rec_count; + $all = $pager->rec_count; + echo sprintf( _('Records %d-%d of %d'), $from, $to, $all); + echo ""; + } else { + label_cell( _('No records'), "colspan=$colspan class='navibar'"); } end_row(); + end_table(); if (isset($pager->marker_txt))