/**
  * 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);
 }
Exemple #3
0
 /**
  * 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);
 }