Index: branches/1.3.x/units/widgets/widget_eh.php =================================================================== diff -u -N -r16172 -r16396 --- branches/1.3.x/units/widgets/widget_eh.php (.../widget_eh.php) (revision 16172) +++ branches/1.3.x/units/widgets/widget_eh.php (.../widget_eh.php) (revision 16396) @@ -18,9 +18,10 @@ { parent::mapPermissions(); - $permissions = Array ( - 'OnItemBuild' => Array ('self' => true), - 'OnCustomEvent' => Array ('self' => true), + $permissions = array( + 'OnItemBuild' => array('self' => true), + 'OnRecalculatePriorities' => array('self' => 'add|edit'), + 'OnCustomEvent' => array('self' => true), ); $this->permMapping = array_merge($this->permMapping, $permissions); @@ -47,6 +48,65 @@ } /** + * Define alternative event processing method names + * + * @return void + */ + protected function mapEvents() + { + parent::mapEvents(); + + $events_map = array( + 'OnMassMoveUp' => 'OnChangePriority', + 'OnMassMoveDown' => 'OnChangePriority', + ); + + $this->eventMethods = array_merge($this->eventMethods, $events_map); + } + + /** + * Processes OnMassMoveUp, OnMassMoveDown events + * + * @param kEvent $event Event. + * + * @return void + */ + protected function OnChangePriority(kEvent $event) + { + $this->Application->SetVar('priority_prefix', $event->getPrefixSpecial()); + $event->CallSubEvent('priority:' . $event->Name); + } + + /** + * Completely recalculates priorities in current category + * + * @param kEvent $event Event. + * + * @return void + */ + protected function OnRecalculatePriorities(kEvent $event) + { + $this->Application->SetVar('priority_prefix', $event->getPrefixSpecial()); + $event->CallSubEvent('priority:' . $event->Name); + } + + /** + * [HOOK] Connects to priority unit. + * + * @param kEvent $event Event. + * + * @return void + */ + protected function OnModifyPrioritiesConfig(kEvent $event) + { + $config = $event->MasterEvent->getUnitConfig(); + + $prefixes = $config->getProcessPrefixes(); + $prefixes[] = $event->Prefix; + $config->setProcessPrefixes($prefixes); + } + + /** * Set custom query for the list * * @param kEvent $event