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;
}