Index: branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php =================================================================== diff -u -r1838 -r4354 --- branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php (.../inp_db_event_handler.php) (revision 1838) +++ branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php (.../inp_db_event_handler.php) (revision 4354) @@ -1,115 +1,122 @@ -'iterateItems', - 'OnMassDecline'=>'iterateItems', - 'OnMassMoveUp'=>'iterateItems', - 'OnMassMoveDown'=>'iterateItems', - ); - - $this->eventMethods = array_merge($this->eventMethods, $common_events); - } - - /** - * Apply same processing to each item beeing selected in grid - * - * @param kEvent $event - * @access private - */ - function iterateItems(&$event) - { - if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) { - return; - } - - $this->Application->setUnitOption($event->Prefix,'AutoLoad',false); - $object =& $event->getObject(); - $this->StoreSelectedIDs($event); - $ids=$this->getSelectedIDs($event); - - if($ids) - { - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') ); - - foreach($ids as $id) - { - $object->Load($id); - - switch ($event->Name) - { - case 'OnMassApprove': - $object->SetDBField($status_field, 1); - break; - - case 'OnMassDecline': - $object->SetDBField($status_field, 0); - break; - - case 'OnMassMoveUp': - $object->SetDBField('Priority', $object->GetDBField('Priority') + 1); - break; - - case 'OnMassMoveDown': - $object->SetDBField('Priority', $object->GetDBField('Priority') - 1); - break; - } - - if( $object->Update() ) - { - $event->status=erSUCCESS; - $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay! - } - else - { - $event->status=erFAIL; - $event->redirect=false; - break; - } - } - } - } - - /** - * Enter description here... - * - * @param kEvent $event - */ - function OnMassClone(&$event) - { - if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) { - return; - } - - $event->status=erSUCCESS; - - $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); - - $this->StoreSelectedIDs($event); - $ids=$this->getSelectedIDs($event); - - if($ids) - { - $temp->CloneItems($event->Prefix, $event->Special, $ids); - } - } - - function check_array($records, $field, $value) - { - foreach ($records as $record) - { - if ($record[$field] == $value) - { - return true; - } - } - return false; - } - } - - +'iterateItems', + 'OnMassDecline'=>'iterateItems', + 'OnMassMoveUp'=>'iterateItems', + 'OnMassMoveDown'=>'iterateItems', + ); + + $this->eventMethods = array_merge($this->eventMethods, $common_events); + } + + /** + * Apply same processing to each item beeing selected in grid + * + * @param kEvent $event + * @access private + */ + function iterateItems(&$event) + { + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) { + return; + } + + $this->Application->setUnitOption($event->Prefix,'AutoLoad',false); + $object =& $event->getObject(); + $this->StoreSelectedIDs($event); + $ids=$this->getSelectedIDs($event); + + if($ids) + { + $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') ); + + foreach($ids as $id) + { + $object->Load($id); + + switch ($event->Name) + { + case 'OnMassApprove': + $object->SetDBField($status_field, 1); + break; + + case 'OnMassDecline': + $object->SetDBField($status_field, 0); + break; + + case 'OnMassMoveUp': + $object->SetDBField('Priority', $object->GetDBField('Priority') + 1); + break; + + case 'OnMassMoveDown': + $object->SetDBField('Priority', $object->GetDBField('Priority') - 1); + break; + } + + if( $object->Update() ) + { + $event->status=erSUCCESS; + $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay! + } + else + { + $event->status=erFAIL; + $event->redirect=false; + break; + } + } + } + } + + /** + * Enter description here... + * + * @param kEvent $event + */ + function OnMassClone(&$event) + { + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) { + return; + } + + $event->status=erSUCCESS; + + $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); + + $this->StoreSelectedIDs($event); + $ids=$this->getSelectedIDs($event); + + if($ids) + { + $temp->CloneItems($event->Prefix, $event->Special, $ids); + } + } + + function check_array($records, $field, $value) + { + foreach ($records as $record) + { + if ($record[$field] == $value) + { + return true; + } + } + return false; + } + + function OnPreSavePopup(&$event) + { + $event->CallSubEvent('OnPreSave'); + $this->Application->StoreVar('PermCache_UpdateRequired', 1); + $event->redirect = 'incs/just_close'; + } + } + + ?> \ No newline at end of file