Changeset 825


Ignore:
Timestamp:
Apr 16, 2016, 9:53:17 PM (8 years ago)
Author:
chronos
Message:
  • Added: Allow to independently select table page and column order. This solves a problem where going between pages with tables incorrectly set default ordering column.
Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Application/Version.php

    r824 r825  
    11<?php
    22
    3 $Revision = 824; // Subversion revision
     3$Revision = 825; // Subversion revision
    44$DatabaseRevision = 824; // SQL structure revision
    5 $ReleaseTime = strtotime('2016-04-04');
     5$ReleaseTime = strtotime('2016-04-16');
  • trunk/Common/Global.php

    r824 r825  
    131131}
    132132
    133 function GetPageList($TotalCount)
     133function GetPageList($ObjectName, $TotalCount)
    134134{
    135135  global $System;
     
    149149  }
    150150
    151   if(!array_key_exists('Page', $_SESSION)) $_SESSION['Page'] = 0;
    152   if(array_key_exists('page', $_GET)) $_SESSION['Page'] = $_GET['page'] * 1;
    153   if($_SESSION['Page'] < 0) $_SESSION['Page'] = 0;
    154   if($_SESSION['Page'] >= $PageCount) $_SESSION['Page'] = $PageCount - 1;
    155   $CurrentPage = $_SESSION['Page'];
    156 
     151  if(!array_key_exists($ObjectName.'Page', $_SESSION)) $_SESSION[$ObjectName.'Page'] = 0;
     152  if(array_key_exists('ObjectName', $_GET) and ($_GET['ObjectName'] == $ObjectName)) {
     153    if(array_key_exists('page', $_GET)) $_SESSION[$ObjectName.'Page'] = $_GET['page'] * 1;
     154  }
     155  if($_SESSION[$ObjectName.'Page'] < 0) $_SESSION[$ObjectName.'Page'] = 0;
     156  if($_SESSION[$ObjectName.'Page'] >= $PageCount) $_SESSION[$ObjectName.'Page'] = $PageCount - 1;
     157  $CurrentPage = $_SESSION[$ObjectName.'Page'];
    157158
    158159  $Result .= 'Počet položek: <strong>'.$TotalCount.'</strong> &nbsp; Stránky: ';
     160  $QueryItems['ObjectName'] = $ObjectName;
    159161
    160162  $Result = '';
     
    206208$OrderArrowImage = array('sort_asc.png', 'sort_desc.png');
    207209
    208 function GetOrderTableHeader($Columns, $DefaultColumn, $DefaultOrder = 0)
     210function GetOrderTableHeader($ObjectName, $Columns, $DefaultColumn, $DefaultOrder = 0)
    209211{
    210212  global $OrderDirSQL, $OrderArrowImage, $Config, $System;
    211213
    212   if(array_key_exists('OrderCol', $_GET)) $_SESSION['OrderCol'] = $_GET['OrderCol'];
    213   if(array_key_exists('OrderDir', $_GET)) $_SESSION['OrderDir'] = $_GET['OrderDir'];
    214   if(!array_key_exists('OrderCol', $_SESSION)) $_SESSION['OrderCol'] = $DefaultColumn;
    215   if(!array_key_exists('OrderDir', $_SESSION)) $_SESSION['OrderDir'] = $DefaultOrder;
    216 
     214  if(array_key_exists('ObjectName', $_GET) and ($_GET['ObjectName'] == $ObjectName))
     215  {
     216    if(array_key_exists('OrderCol', $_GET)) $_SESSION[$ObjectName.'OrderCol'] = $_GET['OrderCol'];
     217    if(array_key_exists('OrderDir', $_GET)) $_SESSION[$ObjectName.'OrderDir'] = $_GET['OrderDir'];
     218  }
     219  if(!array_key_exists($ObjectName.'OrderCol', $_SESSION)) $_SESSION[$ObjectName.'OrderCol'] = $DefaultColumn;
     220  if(!array_key_exists($ObjectName.'OrderDir', $_SESSION) ) $_SESSION[$ObjectName.'OrderDir'] = $DefaultOrder;
     221   
    217222  // Check OrderCol
    218223  $Found = false;
    219224  foreach($Columns as $Column)
    220225  {
    221     if($Column['Name'] == $_SESSION['OrderCol'])
     226    if($Column['Name'] == $_SESSION[$ObjectName.'OrderCol'])
    222227    {
    223228      $Found = true;
     
    225230    }
    226231  }
    227   if(($_SESSION['OrderCol'] == '') or ($Found == false))
    228   {
    229     $_SESSION['OrderCol'] = $DefaultColumn;
    230     $_SESSION['OrderDir'] = $DefaultOrder;
     232  if(($_SESSION[$ObjectName.'OrderCol'] == '') or ($Found == false))
     233  {
     234    $_SESSION[$ObjectName.'OrderCol'] = $DefaultColumn;
     235    $_SESSION[$ObjectName.'OrderDir'] = $DefaultOrder;
    231236  }
    232237  // Check OrderDir
    233   if(($_SESSION['OrderDir'] != 0) and ($_SESSION['OrderDir'] != 1)) $_SESSION['OrderDir'] = 0;
     238  if(($_SESSION[$ObjectName.'OrderDir'] != 0) and ($_SESSION[$ObjectName.'OrderDir'] != 1))
     239    $_SESSION[$ObjectName.'OrderDir'] = 0;
    234240
    235241  $Result = '';
     
    237243  foreach($Columns as $Index => $Column)
    238244  {
     245    $QueryItems['ObjectName'] = $ObjectName;
    239246    $QueryItems['OrderCol'] = $Column['Name'];
    240     $QueryItems['OrderDir'] = 1 - $_SESSION['OrderDir'];
    241     if($Column['Name'] == $_SESSION['OrderCol']) $ArrowImage = '<img style="vertical-align: middle; border: 0px;" src="'.$System->Link('/images/'.$OrderArrowImage[$_SESSION['OrderDir']]).'" alt="order arrow">';
     247    $QueryItems['OrderDir'] = 1 - $_SESSION[$ObjectName.'OrderDir'];
     248    if($Column['Name'] == $_SESSION[$ObjectName.'OrderCol'])
     249      $ArrowImage = '<img style="vertical-align: middle; border: 0px;" src="'.
     250      $System->Link('/images/'.$OrderArrowImage[$_SESSION[$ObjectName.'OrderDir']]).'" alt="order arrow">';
    242251      else $ArrowImage = '';
    243252    if($Column['Name'] == '') $Result .= '<th>'.$Column['Title'].'</th>';
     
    245254  }
    246255  return(array(
    247     'SQL' => ' ORDER BY `'.$_SESSION['OrderCol'].'` '.$OrderDirSQL[$_SESSION['OrderDir']],
     256    'SQL' => ' ORDER BY `'.$_SESSION[$ObjectName.'OrderCol'].'` '.$OrderDirSQL[$_SESSION[$ObjectName.'OrderDir']],
    248257    'Output' => '<tr>'.$Result.'</tr>',
    249     'Column' => $_SESSION['OrderCol'],
    250     'Direction' => $_SESSION['OrderDir'],
     258    'Column' => $_SESSION[$ObjectName.'OrderCol'],
     259    'Direction' => $_SESSION[$ObjectName.'OrderDir'],
    251260  ));
    252261}
     
    365374    if($Delay < 0) $Delay = 0;
    366375
    367     echo('Waiting remaining '.$Delay.' of '.$Period.' seconds...'."\n");
     376    echo('Waiting remaining '.$Delay.' of '.$Period.' seconds period...'."\n");
    368377    sleep($Delay);
    369378  }
  • trunk/Modules/Finance/Manage.php

    r823 r825  
    8181    $DbResult = $this->Database->query('SELECT COUNT(*) FROM ('.$SQL.') AS T');
    8282    $DbRow = $DbResult->fetch_row();
    83     $PageList = GetPageList($DbRow[0]);
     83    $PageList = GetPageList('MonthlyPayment', $DbRow[0]);
    8484
    8585    $Output = $PageList['Output'];
     
    9494      array('Name' => 'BillingPeriodName', 'Title' => 'Perioda'),
    9595    );
    96     $Order = GetOrderTableHeader($TableColumns, 'SubjectName', 0);
     96    $Order = GetOrderTableHeader('MonthlyPayment', $TableColumns, 'SubjectName', 0);
    9797    $Output .= $Order['Output'];
    9898
  • trunk/Modules/Finance/UserState.php

    r756 r825  
    2222    $DbResult = $this->Database->query('SELECT COUNT(*) FROM '.$UserOperationTableQuery.' AS `T1`');
    2323    $DbRow = $DbResult->fetch_row();
    24     $PageList = GetPageList($DbRow[0]);
     24    $PageList = GetPageList('FinanceOperation', $DbRow[0]);
    2525
    2626    $Output .= $PageList['Output'];
     
    3535        array('Name' => 'BillCode', 'Title' => 'Doklad'),
    3636    );
    37     $Order = GetOrderTableHeader($TableColumns, 'Time', 1);
     37    $Order = GetOrderTableHeader('FinanceOperation', $TableColumns, 'Time', 1);
    3838    $Output .= $Order['Output'];
    3939
  • trunk/Modules/IS/IS.php

    r821 r825  
    527527      $TotalFilteredCount = $DbRow[0];
    528528    } else $TotalFilteredCount = $TotalCount;
    529     $PageList = GetPageList($TotalFilteredCount);
     529    $PageList = GetPageList($Table, $TotalFilteredCount);
    530530
    531531    $Output = $PageList['Output'];
     
    537537    if(!array_key_exists('DefaultSortOrder', $FormClass))
    538538      $FormClass['DefaultSortOrder'] = 0;
    539     $Order = GetOrderTableHeader($TableColumns, $FormClass['DefaultSortColumn'], $FormClass['DefaultSortOrder']);
     539    $Order = GetOrderTableHeader($Table, $TableColumns, $FormClass['DefaultSortColumn'], $FormClass['DefaultSortOrder']);
    540540    $Output .= $Order['Output'];
    541541
  • trunk/Modules/Network/Network.php

    r824 r825  
    208208        'Wireless' => array('Type' => 'TNetworkInterfaceWirelessListInterface', 'Caption' => 'Bezdrátové spoje', 'Default' => ''),
    209209        'Ports' => array('Type' => 'TDevicePortListInterface', 'Caption' => 'Síťové porty', 'Default' => ''),
    210         'Latency' => array('Type' => 'TDeviceInterfaceLatencyListInterface', 'Caption' => 'Odezva sítě', 'Default' => ''),
     210        'Latency' => array('Type' => 'TDeviceInterfaceLatencyListInterface', 'Caption' => 'Síťová odezva', 'Default' => ''),
    211211      ),
    212212      'AfterInsert' => array($this, 'AfterInsertNetworkInterface'),
     
    261261    ));
    262262    $this->System->FormManager->RegisterClass('NetworkInterfaceLatency', array(
    263       'Title' => 'Sťová odezva',
     263      'Title' => 'Síťová odezva',
    264264      'Table' => 'NetworkInterfaceLatency',
     265      'DefaultSortColumn' => 'Time',
     266      'DefaultSortOrder' => 1,
    265267      'Items' => array(
    266268        'Time' => array('Type' => 'DateTime', 'Caption' => 'Čas', 'Default' => ''),
  • trunk/Modules/Network/Subnet.php

    r790 r825  
    1515    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `NetworkSubnet`');
    1616    $DbRow = $DbResult->fetch_row();
    17     $PageList = GetPageList($DbRow[0]);
     17    $PageList = GetPageList('Subnets', $DbRow[0]);
    1818
    1919    $Output = $PageList['Output'];
     
    3030      array('Name' => 'SubjectName', 'Title' => 'Účastník'),
    3131    );
    32     $Order = GetOrderTableHeader($TableColumns, 'AddressRange', 0);
     32    $Order = GetOrderTableHeader('Subnets', $TableColumns, 'AddressRange', 0);
    3333    $Output .= $Order['Output'];
    3434
  • trunk/Modules/System/System.php

    r738 r825  
    1616    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Module`');
    1717    $DbRow = $DbResult->fetch_row();
    18     $PageList = GetPageList($DbRow[0]);
     18    $PageList = GetPageList('Modules', $DbRow[0]);
    1919
    2020    $Output .= $PageList['Output'];
     
    3131      array('Name' => '', 'Title' => 'Akce'),
    3232    );
    33     $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     33    $Order = GetOrderTableHeader('Modules', $TableColumns, 'Name', 0);
    3434    $Output .= $Order['Output'];
    3535    $Query = 'SELECT *, (SELECT GROUP_CONCAT(`T1`.`Name` SEPARATOR ", ") FROM `ModuleLink` '.
  • trunk/Modules/TV/TV.php

    r738 r825  
    3232      ' LEFT JOIN `Language` ON `Language`.`Id` = `TV`.`Language` WHERE (`TV`.`Stream` <> "") OR (`TV`.`StreamWeb` <> "")');
    3333    $DbRow = $DbResult->fetch_row();
    34     $PageList = GetPageList($DbRow[0]);
     34    $PageList = GetPageList('TVChannels', $DbRow[0]);
    3535
    3636    $Output .= $PageList['Output'];
     
    4444      array('Name' => '', 'Title' => 'Ladění'),
    4545    );
    46     $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     46    $Order = GetOrderTableHeader('TVChannels', $TableColumns, 'Name', 0);
    4747    $Output .= $Order['Output'];
    4848
  • trunk/Modules/TimeMeasure/Main.php

    r738 r825  
    200200    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Measure` WHERE `Enabled`=1');
    201201    $DbRow = $DbResult->fetch_row();
    202     $PageList = GetPageList($DbRow[0]);
     202    $PageList = GetPageList('Measures', $DbRow[0]);
    203203
    204204    $Output = $PageList['Output'];
     
    217217      $TableColumns[] = array('Name' => 'MeasureDuration', 'Title' => 'Čas vykonání');
    218218    }
    219     $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     219    $Order = GetOrderTableHeader('Measures', $TableColumns, 'Name', 0);
    220220    $Output .= $Order['Output'];
    221221
  • trunk/Modules/User/UserList.php

    r790 r825  
    1111    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `User`');
    1212    $DbRow = $DbResult->fetch_row();
    13     $PageList = GetPageList($DbRow[0]);
     13    $PageList = GetPageList('Users', $DbRow[0]);
    1414
    1515    $Output = $PageList['Output'];
     
    2121      array('Name' => '', 'Title' => 'Počítače'),
    2222    );
    23     $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     23    $Order = GetOrderTableHeader('Users', $TableColumns, 'Name', 0);
    2424    $Output .= $Order['Output'];
    2525
  • trunk/Modules/User/UserPage.php

    r738 r825  
    2222    $DbResult = $this->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS T');
    2323    $DbRow = $DbResult->fetch_row();
    24     $PageList = GetPageList($DbRow[0]);
     24    $PageList = GetPageList('Contacts', $DbRow[0]);
    2525
    2626    $Output = '<div>Kontakty</div>';
     
    3232      array('Name' => 'Value', 'Title' => 'Hodnota'),
    3333    );
    34     $Order = GetOrderTableHeader($TableColumns, 'Value', 0);
     34    $Order = GetOrderTableHeader('Contacts', $TableColumns, 'Value', 0);
    3535    $Output .= $Order['Output'];
    3636
  • trunk/Modules/Wiki/Wiki.php

    r745 r825  
    185185        $DbResult2 = $this->Database->query('SELECT COUNT(*) FROM `WikiPageContent` WHERE Page='.$DbRow['Id']);
    186186        $DbRow2 = $DbResult2->fetch_row();
    187         $PageList = GetPageList($DbRow2[0]);
     187        $PageList = GetPageList('WikiHistory', $DbRow2[0]);
    188188
    189189        $Output .= $PageList['Output'];
     
    196196        );
    197197
    198         $Order = GetOrderTableHeader($TableColumns, 'Time', 1);
     198        $Order = GetOrderTableHeader('WikiHistory', $TableColumns, 'Time', 1);
    199199        $Output .= $Order['Output'];
    200200
Note: See TracChangeset for help on using the changeset viewer.