/**
  * Delete custom fields
  * @param $request
  * @return unknown_type
  */
 public function execute($request)
 {
     $admin = $this->getUser()->hasCredential(Auth::ADMIN_ROLE);
     if (!$admin) {
         $this->forward("auth", "unauthorized");
         return;
     }
     $form = new CustomFieldForm(array(), array(), true);
     $customFieldsService = $this->getCustomFieldService();
     if ($request->isMethod('post')) {
         $form->bind($request->getParameter($form->getName()));
         if ($form->isValid()) {
             $fieldNum = $form->getValue('field_num');
             $customField = null;
             if (isset($fieldNum)) {
                 $customField = $customFieldsService->readCustomField($fieldNum);
             }
             if (empty($customField)) {
                 $customField = new CustomFields();
             }
             $customField->setName($form->getValue('name'));
             $customField->setType($form->getValue('type'));
             $customField->setScreen($form->getValue('screen'));
             $customField->setExtraData($form->getValue('extra_data'));
             $customFieldsService->saveCustomField($customField);
             $this->getUser()->setFlash('templateMessage', array('success', __(TopLevelMessages::SAVE_SUCCESS)));
         }
     }
     $this->redirect('pim/listCustomFields');
 }
예제 #2
0
 /**
  * Testing saveCustomField
  */
 public function testSaveCustomField()
 {
     foreach ($this->testCases['CustomFields'] as $k => $v) {
         $customFields = new CustomFields();
         $customFields->setFieldNum($v['field_num']);
         $customFields->setName($v['name']);
         $customFields->setType($v['type']);
         $customFields->setExtraData($v['extra_data']);
         $result = $this->customFieldsDao->saveCustomField($customFields);
         $this->assertTrue($result);
     }
 }
예제 #3
0
 function parseEditData($postArr)
 {
     $field = new CustomFields();
     if (isset($postArr['txtId'])) {
         $field->setFieldNumber(trim($postArr['txtId']));
         $field->setName(trim($postArr['txtFieldName']));
         $field->setFieldType(trim($postArr['cmbFieldType']));
         if ($field->getFieldType() == CustomFields::FIELD_TYPE_SELECT) {
             $field->setExtraData(trim($postArr['txtExtra']));
         }
     }
     return $field;
 }
예제 #4
0
 /**
  * Testing readCustomField
  */
 public function testReadCustomField()
 {
     foreach ($this->testCases['CustomFields'] as $k => $v) {
         $customFields = new CustomFields();
         $customFields->setFieldNum($v['field_num']);
         $customFields->setName($v['name']);
         $customFields->setType($v['type']);
         $customFields->setExtraData($v['extra_data']);
         $this->customFieldsDao = $this->getMock('CustomFieldsDao');
         $this->customFieldsDao->expects($this->once())->method('readCustomField')->will($this->returnValue($customFields));
         $this->customFieldsService->setCustomFieldsDao($this->customFieldsDao);
         $result = $this->customFieldsService->readCustomField($v['field_num']);
         $this->assertTrue($result instanceof CustomFields);
     }
 }
예제 #5
0
 /**
  * Creates a CustomFields object from a resultset row
  *
  * @param array $row Resultset row from the database.
  * @return CustomFields Custom Fields object.
  */
 private static function _createFromRow($row)
 {
     $tmp = new CustomFields();
     $tmp->setFieldNumber($row[self::DB_FIELDS_NUM]);
     $tmp->setName($row[self::DB_FIELDS_NAME]);
     $tmp->setFieldType($row[self::DB_FIELDS_TYPE]);
     $tmp->setExtraData($row[self::DB_FIELDS_EXTRA_DATA]);
     return $tmp;
 }
예제 #6
0
 /**
  * Save Custom fields
  * @param sfWebRequest $request
  * @return unknown_type
  */
 public function executeSaveCustomFields(sfWebRequest $request)
 {
     $customFieldsService = new CustomFieldsService();
     if ($request->isMethod('post')) {
         $customFields = new CustomFields();
         $customFields->setFieldNum($request->getParameter('txtId'));
         $customFields->setName($request->getParameter('txtName'));
         $customFields->setType($request->getParameter('cmbType'));
         $customFields->setExtraData($request->getParameter('txtExtra'));
         $customFieldsService->saveCustomField($customFields);
         $this->setMessage('SUCCESS', array(TopLevelMessages::SAVE_SUCCESS));
         $this->redirect('admin/listCustomFields');
     }
     $this->avaliableIds = $customFieldsService->getAvaliableFieldNumbers();
 }