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