1: <?php
2:
3:
4: if(!isset($config)) {
5: require_once '../util/AlphaConfig.inc';
6: $config = AlphaConfig::getInstance();
7:
8: require_once $config->get('app.root').'alpha/util/AlphaAutoLoader.inc';
9: }
10:
11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
56: class EditDEnum extends Edit implements AlphaControllerInterface {
57: 58: 59: 60: 61: 62:
63: private static $logger = null;
64:
65: 66: 67: 68: 69:
70: public function __construct() {
71: self::$logger = new Logger('EditDEnum');
72: self::$logger->debug('>>__construct()');
73:
74:
75: parent::__construct('Admin');
76:
77:
78: $this->setTitle('Editing a DEnum');
79: $this->setDescription('Page to edit a DEnum.');
80: $this->setKeywords('edit,DEnum');
81:
82: $this->BO = new DEnum();
83:
84: self::$logger->debug('<<__construct');
85: }
86:
87: 88: 89: 90: 91: 92:
93: public function doGET($params) {
94: self::$logger->debug('>>doGET($params=['.var_export($params, true).'])');
95:
96: global $config;
97:
98: echo AlphaView::displayPageHead($this);
99:
100:
101: if (isset($params['oid'])) {
102: $BOoid = $params['oid'];
103: }else{
104: throw new IllegalArguementException('Could not load the DEnum object as an oid was not supplied!');
105: return;
106: }
107:
108: try {
109: $this->BO->load($BOoid);
110:
111: AlphaDAO::disconnect();
112:
113: $this->BOName = 'DEnum';
114:
115: $this->BOView = AlphaView::getInstance($this->BO);
116:
117: echo AlphaView::renderDeleteForm();
118:
119: echo $this->BOView->editView();
120: }catch(BONotFoundException $e) {
121: self::$logger->error('Unable to load the DEnum of id ['.$params['oid'].'], error was ['.$e->getMessage().']');
122: }
123:
124: echo AlphaView::displayPageFoot($this);
125:
126: self::$logger->debug('<<doGET');
127: }
128:
129: 130: 131: 132: 133: 134:
135: public function doPOST($params) {
136: self::$logger->debug('>>doPOST($params=['.var_export($params, true).'])');
137:
138: try {
139:
140: if(!$this->checkSecurityFields()) {
141: throw new SecurityException('This page cannot accept post data from remote servers!');
142: self::$logger->debug('<<doPOST');
143: }
144:
145:
146: if (isset($params['oid'])) {
147: $BOoid = $params['oid'];
148: }else{
149: throw new IllegalArguementException('Could not load the DEnum object as an oid was not supplied!');
150: }
151:
152: if (isset($params['saveBut'])) {
153: try {
154: $this->BO->load($BOoid);
155:
156: $this->BO->populateFromPost();
157:
158: AlphaDAO::begin();
159:
160: $this->BO->save();
161:
162: self::$logger->action('DEnum '.$this->BO->getOID().' saved');
163:
164:
165: $tmp = new DEnumItem();
166: $denumItems = $tmp->loadItems($this->BO->getID());
167:
168: foreach ($denumItems as $item) {
169: $item->set('value', $params['value_'.$item->getID()]);
170: $item->save();
171:
172: self::$logger->action('DEnumItem '.$item->getOID().' saved');
173: }
174:
175:
176: if(isset($params['new_value']) && trim($params['new_value']) != '') {
177: $newItem = new DEnumItem();
178: $newItem->set('value', $params['new_value']);
179: $newItem->set('DEnumID', $this->BO->getID());
180: $newItem->save();
181:
182: self::$logger->action('DEnumItem '.$newItem->getOID().' created');
183: }
184:
185: AlphaDAO::commit();
186:
187: $this->setStatusMessage(AlphaView::displayUpdateMessage(get_class($this->BO).' '.$this->BO->getID().' saved successfully.'));
188:
189: $this->doGET($params);
190: }catch (FailedSaveException $e) {
191: self::$logger->error('Unable to save the DEnum of id ['.$params['oid'].'], error was ['.$e->getMessage().']');
192: AlphaDAO::rollback();
193: }
194:
195: AlphaDAO::disconnect();
196: }
197: }catch(SecurityException $e) {
198: echo AlphaView::displayErrorMessage($e->getMessage());
199: self::$logger->warn($e->getMessage());
200: }catch(IllegalArguementException $e) {
201: echo AlphaView::displayErrorMessage($e->getMessage());
202: self::$logger->error($e->getMessage());
203: }catch(BONotFoundException $e) {
204: self::$logger->warn($e->getMessage());
205: echo AlphaView::displayErrorMessage('Failed to load the requested item from the database!');
206: }
207:
208: self::$logger->debug('<<doPOST');
209: }
210:
211: 212: 213: 214: 215: 216:
217: public function during_displayPageHead_callback() {
218: $html = '';
219: $html .= '<script language="javascript">';
220: $html .= 'function clearNewField() {';
221: $html .= ' document.getElementById("new_value").value = "";';
222: $html .= '}';
223: $html .= 'addOnloadEvent(clearNewField);';
224: $html .= '</script>';
225: return $html;
226: }
227:
228: 229: 230: 231: 232:
233: public function after_displayPageHead_callback() {
234: $menu = AlphaView::loadTemplateFragment('html', 'adminmenu.phtml', array());
235:
236: return $menu;
237: }
238: }
239:
240:
241: if ('EditDEnum.php' == basename($_SERVER['PHP_SELF'])) {
242: $controller = new EditDEnum();
243:
244: if(!empty($_POST)) {
245: $controller->doPOST($_REQUEST);
246: }else{
247: $controller->doGET($_GET);
248: }
249: }
250:
251: ?>