/** * Returns the setting fields and data for one module. * * The return have: * - The metadata of each field. * - The data of the setting. * - The number of rows. * * OPTIONAL request parameters: * <pre> * - string <b>moduleName</b> Name of the module. * </pre> * * The return is in JSON format. * * @return void */ public function jsonDetailAction() { $module = Cleaner::sanitize('alnum', $this->getRequest()->getParam('moduleName', null)); $moduleId = (int) Phprojekt_Module::getId($module); $setting = new Phprojekt_Setting(); $setting->setModule($module); $metadata = $setting->getModel()->getFieldDefinition(Phprojekt_ModelInformation_Default::ORDERING_FORM); $records = $setting->getList($moduleId, $metadata); $data = array("metadata" => $metadata, "data" => $records, "numRows" => count($records)); Phprojekt_Converter_Json::echoConvert($data); }
/** * Returns the detail (fields and data) of one user. * * The return have: * - The metadata of each field. * - The data of the user. * - The number of rows. * * If the request parameter "id" is null or 0, the data will be all values of a "new user", * if the "id" is an existing user, the data will be all the values of the user. * * OPTIONAL request parameters: * <pre> * - integer <b>id</b> id of the user to consult. * </pre> * * The return is in JSON format. * * @return void */ public function jsonDetailAction() { $user = new Phprojekt_User_User(); $id = (int) $this->getRequest()->getParam("id"); $user->find($id); $data = array(); $data['id'] = $user->id; $data['username'] = empty($user->username) ? "" : $user->username; $data['firstname'] = empty($user->firstname) ? "" : $user->firstname; $data['lastname'] = empty($user->lastname) ? "" : $user->lastname; $data['status'] = empty($user->status) ? "" : $user->status; $data['admin'] = empty($user->admin) ? "" : $user->admin; $setting = new Phprojekt_Setting(); $setting->setModule('User'); $fields = $setting->getModel()->getFieldDefinition(Phprojekt_ModelInformation_Default::ORDERING_FORM); $values = $setting->getList(0, $fields, $user->id); $values = $values[0]; unset($values['id']); if (!empty($data['id'])) { $data = array_merge($data, $values); } else { foreach ($fields as $field) { if (!array_key_exists($field['key'], $values)) { continue; } if (!is_null($field['default'])) { $data[$field['key']] = $field['default']; } else { $data[$field['key']] = ""; } } } $records = array($data); $metadata = $user->getInformation(Phprojekt_ModelInformation_Default::ORDERING_FORM); $metadata = $metadata->getFieldDefinition(Phprojekt_ModelInformation_Default::ORDERING_FORM); $data = array("metadata" => $metadata, "data" => $records, "numRows" => count($records)); Phprojekt_Converter_Json::echoConvert($data); }
/** * Test getList */ public function testGetList() { $setting = new Phprojekt_Setting(); $setting->setModule('Timecard'); $metadata = $setting->getModel()->getFieldDefinition(Phprojekt_ModelInformation_Default::ORDERING_FORM); $records = $setting->getList(4, $metadata); $data = array('id' => 0, 'favorites' => "1,2"); $this->assertEquals(array($data), $records); $setting = new Phprojekt_Setting(); $setting->setModule('Notification'); $metadata = $setting->getModel()->getFieldDefinition(Phprojekt_ModelInformation_Default::ORDERING_FORM); $records = $setting->getList(0, $metadata); $data = array('id' => 0, 'loginlogout' => 0, 'datarecords' => 1, 'alerts' => 1); $this->assertEquals(array($data), $records); }