Index: branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php =================================================================== diff -u -r7015 -r7034 --- branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 7015) +++ branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 7034) @@ -522,7 +522,10 @@ function OnSetPerPage(&$event) { $per_page = $this->Application->GetVar($event->getPrefixSpecial(true).'_PerPage'); - $this->Application->StoreVar( $event->getPrefixSpecial().'_PerPage', $per_page ); + $this->Application->StoreVar($event->getPrefixSpecial().'_PerPage', $per_page); + + $view_name = $this->Application->RecallVar($event->getPrefixSpecial().'_current_view'); + $this->Application->StorePersistentVar($event->getPrefixSpecial().'_PerPage.'.$view_name, $per_page); } /** @@ -581,17 +584,24 @@ $object->SetPage($page); } + /** + * Returns current per-page setting for list + * + * @param kEvent $event + * @return int + */ function getPerPage(&$event) { + // 1. per-page is passed as tag parameter to PrintList, InitList, etc. $per_page = $event->getEventParam('per_page'); - /* if ($per_page == 'list_next') { + /*if ($per_page == 'list_next') { $per_page = ''; }*/ + // 2. per-page variable name is store into config variable $config_mapping = $this->Application->getUnitOption($event->Prefix, 'ConfigMapping'); - - if ( $config_mapping ) { + if ($config_mapping) { switch ( $per_page ){ case 'short_list' : $per_page = $this->Application->ConfigValue($config_mapping['ShortListPerPage']); @@ -602,21 +612,27 @@ } } - if(!$per_page) - { - $per_page_var = $event->getPrefixSpecial().'_PerPage'; - - $per_page = $this->Application->RecallVar($per_page_var); - if(!$per_page) - { - + if (!$per_page) { + // per-page is stored to persistent session + $view_name = $this->Application->RecallVar($event->getPrefixSpecial().'_current_view'); + $per_page = $this->Application->RecallPersistentVar($event->getPrefixSpecial().'_PerPage.'.$view_name); + + if (!$per_page) { + // per-page is stored to current session + $per_page = $this->Application->RecallVar($event->getPrefixSpecial().'_PerPage'); + } + + if (!$per_page) { if ($config_mapping) { if (!isset($config_mapping['PerPage'])) { trigger_error('Incorrect mapping of PerPage key in config for prefix '.$event->Prefix.'', E_USER_WARNING); } $per_page = $this->Application->ConfigValue($config_mapping['PerPage']); } - if(!$per_page) $per_page = 10; + if (!$per_page) { + // none of checked above per-page locations are useful, then try default value + $per_page = 10; + } } } Index: branches/unlabeled/unlabeled-1.2.2/core/admin_templates/incs/style.css =================================================================== diff -u -r7013 -r7034 --- branches/unlabeled/unlabeled-1.2.2/core/admin_templates/incs/style.css (.../style.css) (revision 7013) +++ branches/unlabeled/unlabeled-1.2.2/core/admin_templates/incs/style.css (.../style.css) (revision 7034) @@ -614,4 +614,21 @@ .flat-input { border: 1px solid grey; +} + + +/* Toolbar */ + +.toolbar-button, .toolbar-button-over { + float: left; + clear: none; + border: none; + text-align: center; + font-size: 10px; + padding: 2px 2px 2px 2px; + vertical-align: middle; +} + +.toolbar-button-over { + } \ No newline at end of file