X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FCore_enum.php;h=fc8e7e84577663fda658d833bce9deb5bee04702;hb=d98b59dd60e858d369d4cb55e097b376050d7020;hp=48dad3d0f23ac8703be51240aff9f89e34e39f23;hpb=3d5d7ef6ecee8f76b02cb5d98cf231906cdea8c9;p=Pman.Core diff --git a/DataObjects/Core_enum.php b/DataObjects/Core_enum.php index 48dad3d0..fc8e7e84 100644 --- a/DataObjects/Core_enum.php +++ b/DataObjects/Core_enum.php @@ -1,6 +1,6 @@ escape($q['query']['search']); + $name = $this->escape($q['query']['search_begins']); // ilike on postgres?!? $this->whereAdd(" - core_enum.name LIKE '%{$name}' + core_enum.name LIKE '{$name}%' OR - core_enum.display_name LIKE '%{$name}' + core_enum.display_name LIKE '{$name}%' "); } @@ -158,15 +158,48 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject $tn = $this->tableName(); $x = $this->factory($tn); - if(empty($req['etype'])){ + if(empty($req['etype']) || !strlen(trim($req['etype'])) ){ + + if (empty($req['name']) || !strlen(trim($req['name']))) { + $roo->jerr('name or etype missing'); + } + if($x->get('name', $req['name'])){ - $roo->jerr('name is exsiting'); + $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); + if (!strlen($l)) { + continue; + } + $bits = explode(',', $l); + $rr = array( + 'etype' => $req['etype'], + 'name' => array_shift($bits) + ); + + $rr['display_name'] = empty($bits) ? $rr['name'] : $bits[0]; + + $x = $this->factory($tn); + $x->beforeInsert($rr, $roo); + $x->setFrom($rr); + $x->insert(); + } - }else{ + $roo->jok("inserted"); + + } else { + if (empty($req['name']) || !strlen(trim($req['name']))) { + $roo->jerr('name missing'); + } + $x->whereAdd("etype = '{$this->escape($req['etype'])}' AND name = '{$this->escape($req['name'])}'"); $x->find(true); if($x->count() > 0){ - $roo->jerr('is exsiting'); + $roo->jerr('name already exists'); } } }