Exemplo n.º 1
0
 protected function processForm(sfWebRequest $request, sfForm $form, $editable = true)
 {
     $formValues = array();
     $requestParameters = $request->getParameterHolder()->getAll();
     $formValues = sfMmwExtjsUtil::getSfParamsFromExtjs('structures', $requestParameters);
     $formValues = $this->prepareFormValues($formValues, $form);
     $files = $this->getSfFilesParamsFromExtjs($_FILES, $form->getName());
     //$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     $fieldsToPost = json_decode($requestParameters['fields']);
     foreach ($this->form->getWidgetSchema()->getFields() as $fieldname => $widget) {
         if (!in_array(sfMmwExtjsUtil::getSfExtjsNameFromField('structures', $fieldname), $fieldsToPost)) {
             unset($form[$fieldname]);
         }
     }
     $form->bind($formValues, $files);
     if ($form->isValid()) {
         //$this->getUser()->setFlash('notice', $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.');
         $this->json['success'] = true;
         $this->json['data'] = false;
         $structures = $form->save();
         $this->prepareJsonValues($form);
         $data_array = $structures->toArray();
         $data_array = array_merge($data_array, $structures->getMatFinsAndFinitions());
         if (is_array($this->json['data'])) {
             $this->json['data'] = array_merge($this->json['data'], sfMmwExtjsUtil::getExtjsParamsfromArray('structures', $data_array));
         } else {
             $this->json['data'] = sfMmwExtjsUtil::getExtjsParamsfromArray('structures', $data_array);
         }
         if (!$editable) {
             $displayValues = $this->getFieldsValues($structures, false, true);
             foreach ($displayValues as $key => $displayValue) {
                 $this->json['data'][$key] = $displayValue;
             }
         }
         $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $structures)));
     } else {
         //$this->getUser()->setFlash('error', 'The item has not been saved due to some errors.');
         $this->json['success'] = false;
         $this->json['data'] = false;
         if ($form->hasErrors()) {
             $this->json['errormsg'] = 'Data has not been saved';
             // set individual error field
             foreach ($form->getErrorSchema() as $field => $error) {
                 $this->json['errors'][sfMmwExtjsUtil::getSfExtjsNameFromField('structures', $field)] = $error->getMessage();
             }
         }
     }
     $this->setRequestParameter('json', $this->json);
     $this->forward($this->getModuleName(), 'jsonResponse');
 }
Exemplo n.º 2
0
 protected function processForm(sfWebRequest $request, sfForm $form)
 {
     $formValues = array();
     $requestParameters = $request->getParameterHolder()->getAll();
     $formValues = sfMmwExtjsUtil::getSfParamsFromExtjs('identification', $requestParameters);
     $formValues = $this->prepareFormValues($formValues, $form);
     $files = $this->getSfFilesParamsFromExtjs($_FILES, 'identification');
     //$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     $fieldsToPost = isset($requestParameters['fields']) ? json_decode($requestParameters['fields']) : null;
     foreach ($this->form->getWidgetSchema()->getFields() as $fieldname => $widget) {
         if (get_class($widget) != 'sfWidgetFormSchemaDecorator' && $fieldsToPost != null && !in_array(sfMmwExtjsUtil::getSfExtjsNameFromField('identification', $fieldname), $fieldsToPost)) {
             unset($form[$fieldname]);
         }
     }
     $form->bind($formValues, $files);
     if ($form->isValid()) {
         //$this->getUser()->setFlash('notice', $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.');
         $this->json['success'] = true;
         $this->json['data'] = false;
         $identification = $form->save();
         $this->prepareJsonValues($form);
         if (is_array($this->json['data'])) {
             $this->json['data'] = array_merge($this->json['data'], sfMmwExtjsUtil::getExtjsParamsfromArray('identification', $identification->toArray()));
         } else {
             $this->json['data'] = sfMmwExtjsUtil::getExtjsParamsfromArray('identification', $identification->toArray());
         }
         $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $identification)));
     } else {
         //$this->getUser()->setFlash('error', 'The item has not been saved due to some errors.');
         $this->json['success'] = false;
         $this->json['data'] = false;
         if ($form->hasErrors()) {
             $this->json['errormsg'] = 'Data has not been saved';
             // set individual error field
             foreach ($form->getErrorSchema() as $field => $error) {
                 $this->json['errors'][sfMmwExtjsUtil::getSfExtjsNameFromField('identification', $field)] = $error->getMessage();
             }
         }
     }
     // SURCHARGE
     $secteurCommune = $identification->getSecteurCommune();
     if (!empty($secteurCommune)) {
         $this->json['data']['identification__secteur'] = $secteurCommune;
     }
     $this->json['list'] = $this->FormRelationsJsonEncode();
     // FIN SURCHARGE
     $this->setRequestParameter('json', $this->json);
     $this->forward($this->getModuleName(), 'jsonResponse');
 }
Exemplo n.º 3
0
 protected function setFilters($modelName, array $requestParams)
 {
     $params = sfMmwExtjsUtil::getSfParamsFromExtjs('filters', $requestParams);
     if (isset($params[$modelName]) && count($params[$modelName])) {
         $this->filters = $params[$modelName];
     }
 }