Index: branches/RC/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r10294 -r10356 --- branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 10294) +++ branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 10356) @@ -128,6 +128,9 @@ 'OnExportProgress' => Array('self' => 'view|advanced:export'), + 'OnSetAutoRefreshInterval' => Array ('self' => 'view', 'subitem' => 'view'), + 'OnAutoRefreshToggle' => Array ('self' => 'view', 'subitem' => 'view'), + // theese event do not harm, but just in case check them too :) 'OnCancelEdit' => Array('self' => true, 'subitem' => true), 'OnCancel' => Array('self' => true, 'subitem' => true), @@ -936,6 +939,42 @@ } /** + * Sets grid refresh interval + * + * @param kEvent $event + */ + function OnSetAutoRefreshInterval(&$event) + { + $refresh_interval = $this->Application->GetVar('refresh_interval'); + + $view_name = $this->Application->RecallVar($event->getPrefixSpecial().'_current_view'); + $this->Application->StorePersistentVar($event->getPrefixSpecial().'_refresh_interval.'.$view_name, $refresh_interval); + } + + /** + * Changes auto-refresh state for grid + * + * @param kEvent $event + */ + function OnAutoRefreshToggle(&$event) + { + $refresh_intervals = $this->Application->ConfigValue('AutoRefreshIntervals'); + if (!$refresh_intervals) { + return ; + } + + $view_name = $this->Application->RecallVar($event->getPrefixSpecial().'_current_view'); + $auto_refresh = $this->Application->RecallPersistentVar($event->getPrefixSpecial().'_auto_refresh.'.$view_name); + + if ($auto_refresh === false) { + $refresh_intervals = explode(',', $refresh_intervals); + $this->Application->StorePersistentVar($event->getPrefixSpecial().'_refresh_interval.'.$view_name, $refresh_intervals[0]); + } + + $this->Application->StorePersistentVar($event->getPrefixSpecial().'_auto_refresh.'.$view_name, $auto_refresh ? 0 : 1); + } + + /** * Creates needed sql query to load item, * if no query is defined in config for * special requested, then use default