Index: branches/unlabeled/unlabeled-1.73.2/core/kernel/db/db_event_handler.php =================================================================== diff -u -r5856 -r5858 --- branches/unlabeled/unlabeled-1.73.2/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 5856) +++ branches/unlabeled/unlabeled-1.73.2/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 5858) @@ -65,7 +65,6 @@ } } - $section = $event->getSection(); if (!preg_match('/^CATEGORY:(.*)/', $section)) { // only if not category item events @@ -114,14 +113,14 @@ 'OnMassMoveUp' => Array('self' => 'advanced:move_up|add|edit', 'subitem' => 'advanced:move_up|add|edit'), 'OnMassMoveDown' => Array('self' => 'advanced:move_down|add|edit', 'subitem' => 'advanced:move_down|add|edit'), - 'OnPreCreate' => Array('self' => 'add'), - 'OnEdit' => Array('self' => 'edit'), + 'OnPreCreate' => Array('self' => 'add|add.pending'), + 'OnEdit' => Array('self' => 'edit|edit.pending'), // theese event do not harm, but just in case check them too :) - 'OnCancelEdit' => Array('self' => 'add|edit'), + 'OnCancelEdit' => Array('self' => 'add|add.pending|edit|edit.pending'), 'OnCancel' => Array('self' => 'add|edit', 'subitem' => 'add|edit'), 'OnSetSorting' => Array('self' => 'view', 'subitem' => 'view'), @@ -229,6 +228,9 @@ // this smells... needs to be refactored $first_id = getArrayValue($ret,0); if (($first_id === false) && ($event->getEventParam('raise_warnings') == 1)) { + if ($this->Application->isDebugMode()) { + $this->Application->Debugger->appendTrace(); + } trigger_error('Requested ID for prefix '.$event->getPrefixSpecial().' not passed',E_USER_NOTICE); } $this->Application->SetVar($event->getPrefixSpecial(true).'_id', $first_id); @@ -991,7 +993,12 @@ $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); if (!$this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { - $temp->SaveEdit($event->getEventParam('master_ids') ? $event->getEventParam('master_ids') : Array()); + $live_ids = $temp->SaveEdit($event->getEventParam('master_ids') ? $event->getEventParam('master_ids') : Array()); + if ($live_ids) { + // ensure, that newly created item ids are avalable as if they were selected from grid + // NOTE: only works if main item has subitems !!! + $this->Application->StoreVar($event->getPrefixSpecial().'_selected_ids', implode(',', $live_ids)); + } } $this->clearSelectedIDs($event); @@ -1028,6 +1035,7 @@ */ function isNewItemCreate(&$event) { + $event->setEventParam('raise_warnings', 0); $item_id = $this->getPassedID($event); return ($item_id == '') ? true : false; }