X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_enum.php;h=f6092018dc51aee6ae500049b65c7db9def71e21;hp=51880e56f43dd6f30db04144368b12735c860c32;hb=HEAD;hpb=622f2a85123de5aaed517b2c8613333f64290275 diff --git a/DataObjects/Core_enum.php b/DataObjects/Core_enum.php index 51880e56..a2d08ca1 100644 --- a/DataObjects/Core_enum.php +++ b/DataObjects/Core_enum.php @@ -16,7 +16,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject public $seqid; // int(11) not_null multiple_key public $seqmax; // int(11) not_null multiple_key public $display_name; - + public $is_system_enum; + + /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -27,6 +29,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject if (!empty($q['query']['empty_etype'])) { $this->whereAdd("core_enum.etype = ''"); } + // this should be handled by roo... using '!name[0]' .... if(!empty($q['!name'])){ @@ -136,8 +139,22 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject function beforeUpdate($old, $request,$roo) { + + /* multiple id merge */ if(!empty($request['_merge_id'])){ - $this->merge($request['_merge_id'], $roo); + if(!empty($request['_ids'])){ + //DB_DataObject::DebugLevel(1); + $ce = DB_DataObject::factory('core_enum'); + $ce->whereAddIn("id", explode(",", $request['_ids']), "int"); + + foreach($ce->fetchAll() as $mergeItem){ + + $mergeItem->merge($request['_merge_id'], $roo); + } + } else { + $this->merge($request['_merge_id'], $roo); + } + $roo->jok('Merged'); } $tn = $this->tableName(); @@ -156,8 +173,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject { $tn = $this->tableName(); $x = $this->factory($tn); - print_r($req); exit; + if(empty($req['etype']) || !strlen(trim($req['etype'])) ){ + if (empty($req['name']) || !strlen(trim($req['name']))) { $roo->jerr('name or etype missing'); } @@ -166,7 +184,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject $roo->jerr("name already exists - '{$req['name']}'" ); } } else if (!empty($req['_bulk_names'])) { - + $lines = explode("\n", $req['_bulk_names']); foreach($lines as $l) { $l = trim($l); @@ -238,6 +256,12 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject function lookupCreate($etype,$name, $display_name=false) { + static $cache = array(); + $ckey = json_encode(array($etype, $name)); + if (isset($cache[$ckey])) { + return $cache[$ckey]; + } + // check $ce = DB_DataObject::Factory('core_enum'); $ce->setFrom(array( @@ -253,11 +277,14 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject $ce->etype = $etype; $ce->name = $name; if ($ce->find(true)) { + $cache[$ckey] = $ce->id; return $ce->id; } $ce->active = 1; $ce->display_name = $display_name === false ? $ce->name : $display_name; - return $ce->insert(); + $ret = $ce->insert(); + $cache[$ckey] = $ret; + return $ret; } @@ -296,6 +323,15 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject return $x->fetchAll($fetchArg1, $fetchArg2, $fetchArg3); } + function fetchAllByTypeOrderDisplay($etype, $fetchArg1=false, $fetchArg2=false, $fetchArg3=false) + { + $x = DB_DataObject::factory('core_enum'); + $x->etype = $etype; + $x->active = 1; + $x->orderBy('display_name ASC'); + return $x->fetchAll($fetchArg1, $fetchArg2, $fetchArg3); + } + function lookupObject($etype,$name, $create= false) { @@ -343,6 +379,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject $seq_id = $t->seqid+1; } } + foreach($data as $row) { $t = DB_DAtaObject::Factory('core_enum'); @@ -353,7 +390,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject if (empty($t->name) && $t->name != 0) { print_R($data); - die("ERROR: invalid name used for core_enum\n\n"); + die("ERROR: invalid name used for core_enum\n\n" ); } if (!$t->count()) { @@ -429,7 +466,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject $this->delete(); - $roo->jok('Merged'); + }