protected function actionInlineEditValidate($model) { $postData = PostUtil::getData(); $postFormData = ArrayUtil::getArrayValue($postData, get_class($model)); $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel($model, $postFormData); $model->setAttributes($sanitizedPostData); $model->validate(); $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model); echo CJSON::encode($errorData); Yii::app()->end(0, false); }
public function testMakeErrorsDataAndResolveForOwnedModelAttributes() { $user = UserTestHelper::createBasicUser('TestUser'); $account = new Account(); $account->owner = $user; $account->name = ''; $account->officePhone = '1234567890'; $account->primaryEmail->emailAddress = 'testaccountzurmocom'; $this->assertFalse($account->save()); $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($account); $this->assertEquals('Name cannot be blank.', $errorData['Account_name'][0]); $this->assertEquals('Email Address is not a valid email address.', $errorData['Account_primaryEmail_emailAddress'][0]); $account->name = 'Test Account'; $account->primaryEmail->emailAddress = '*****@*****.**'; $this->assertTrue($account->save()); }
public function actionLogin() { $formModel = new LoginForm(); if (isset($_POST['ajax']) && $_POST['ajax'] == 'login-form') { echo ZurmoActiveForm::validate($formModel); Yii::app()->end(0, false); } elseif (isset($_POST['LoginForm'])) { $formModel->attributes = $_POST['LoginForm']; if ($formModel->validate() && $formModel->login()) { $this->redirect(Yii::app()->user->returnUrl); } } $extraHeaderContent = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'loginViewExtraHeaderContent'); $view = new LoginPageView($this, $formModel, $extraHeaderContent); echo $view->render(); }
/** * Render a hidden field to filter models by starred only * @param ZurmoActiveForm $form * @return string */ protected function renderStarredFilterHidenField($form) { $content = null; if (StarredUtil::modelHasStarredInterface($this->model->getModel())) { $content .= $form->hiddenField($this->model, 'filterByStarred', array('class' => $form->id . '_filterByStarred')); } return $content; }
protected function actionValidateCreateEmailMessage($postData, CreateEmailMessageForm $emailMessageForm) { if (isset($postData['ajax']) && $postData['ajax'] == 'edit-form') { $emailMessageForm->setAttributes($postData[get_class($emailMessageForm)]); if ($emailMessageForm->validate()) { Yii::app()->end(false); } else { $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($emailMessageForm); echo CJSON::encode($errorData); } Yii::app()->end(false); } }
/** * Validates post data in the ajax call * @param RedBeanModel $model * @param string $postVariableName */ public function validateAjaxFromPost($model, $postVariableName) { $savedSuccessfully = false; $modelToStringValue = null; if (isset($_POST[$postVariableName])) { $postData = $_POST[$postVariableName]; $model = $this->saveModelFromPost($postData, $model, $savedSuccessfully, $modelToStringValue, true); $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model); echo CJSON::encode($errorData); Yii::app()->end(0, false); } }
public function actionModalEdit($id) { if (!Yii::app()->request->isAjaxRequest) { throw new NotSupportedException(); } $form = new ImageEditForm(); $imageFileModel = ImageFileModel::getById((int) $id); Yii::app()->getClientScript()->setToAjaxMode(); if (isset($_POST['ajax']) && $_POST['ajax'] == 'image-edit-form') { $errors = ZurmoActiveForm::validate($form); if ($form->hasErrors()) { echo $errors; Yii::app()->end(); } } elseif (isset($_POST['ImageEditForm'])) { $tempFilePath = tempnam(sys_get_temp_dir(), 'edit_image_'); $form->attributes = $_POST['ImageEditForm']; $originalImageFileModel = ImageFileModel::getById((int) $id); $contents = WideImage::load($originalImageFileModel->fileContent->content)->resize($form->imageWidth, $form->imageHeight)->crop($form->cropX, $form->cropY, $form->cropWidth, $form->cropHeight)->asString(str_replace('image/', '', $originalImageFileModel->type)); file_put_contents($tempFilePath, $contents); $imageProperties = getimagesize($tempFilePath); $fileUploadData = ImageFileModelUtil::saveImageFromTemporaryFile($tempFilePath, ImageFileModelUtil::getImageFileNameWithDimensions($originalImageFileModel->name, (int) $imageProperties[0], (int) $imageProperties[1])); echo CJSON::encode($fileUploadData); } else { $modalListLinkProvider = $this->getModalListLinkProvider(); $form->id = $imageFileModel->id; $form->imageWidth = $imageFileModel->width; $form->imageHeight = $imageFileModel->height; $form->cropX = 0; $form->cropY = 0; $form->cropWidth = $imageFileModel->width; $form->cropHeight = $imageFileModel->height; $form->lockImageProportion = true; if ($imageFileModel->isEditableByCurrentUser()) { $view = new ImageEditView($this, $form, $imageFileModel, $modalListLinkProvider); $view = new ModalView($this, $view); } else { $view = new AccessFailureView(); } echo $view->render(); } }
protected function attemptToValidate($contactWebForm) { if (isset($_POST['ajax']) && $_POST['ajax'] == 'edit-form') { $contact = new Contact(); $contact->setAttributes($_POST['Contact']); $contact->state = $contactWebForm->defaultState; $contact->owner = $contactWebForm->defaultOwner; $this->resolveContactWebFormEntry($contactWebForm, $contact); if ($contact->validate()) { $response = CJSON::encode(array()); } else { $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($contact); $response = CJSON::encode($errorData); } $this->renderResponse($response); } }
/** * Validates and save from modal details * @param Task $task */ protected function attemptToValidateAndSaveFromModalDetails(Task $task) { if (isset($_POST['ajax']) && ($_POST['ajax'] == 'task-left-column-form-data' || $_POST['ajax'] == 'task-right-column-form-data')) { $task = $this->attemptToSaveModelFromPost($task, null, false); $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($task); echo CJSON::encode($errorData); Yii::app()->end(0, false); } }
/** * Supports sanitizing date attributes * @see ModalConfigEditView::validate() */ public function validate() { $this->setMetadataFromPost(ArrayUtil::getArrayValue($_POST, $this->getPostArrayName())); echo ZurmoActiveForm::validate($this->model, null, false); }
/** * Render a checkBox to filter models by starred only * @param ZurmoActiveForm $form * @return string */ protected function renderStarredFilterHidenField($model, $form) { $content = null; $modelsImplementsStarredInterface = false; if (isset($this->modelClassName) && StarredUtil::modelHasStarredInterface($this->modelClassName)) { $modelsImplementsStarredInterface = true; } if ($modelsImplementsStarredInterface) { $content .= $form->hiddenField($model, 'filterByStarred', array('class' => $form->id . '_filterByStarred')); } return $content; }
protected function actionModuleValidate($moduleForm) { echo ZurmoActiveForm::validate($moduleForm); Yii::app()->end(0, false); }
protected function resolveRenderHiddenModelClassNameElement(ZurmoActiveForm $form) { if ($this->model->type == EmailTemplate::TYPE_CONTACT) { return $form->hiddenField($this->model, 'modelClassName', array()); } }
/** * Render a hidden field to filter models by starred only * @param ZurmoActiveForm $form * @return string */ protected function renderStarredFilterHidenField($form) { $content = null; if (in_array('StarredInterface', class_implements($this->model->getModel()))) { $content .= $form->hiddenField($this->model, 'filterByStarred', array('class' => $form->id . '_filterByStarred')); } return $content; }
public function validate() { echo ZurmoActiveForm::validate($this->model); }
/** * Override to handle userStatus validation * @param User | ModelForm $model * @param string $postVariableName */ protected function attemptToValidateAjaxFromPost($model, $postVariableName) { if (isset($_POST['ajax']) && $_POST['ajax'] == 'edit-form') { $sanitizedPostdata = PostUtil::sanitizePostByDesignerTypeForSavingModel($model, $_POST[$postVariableName]); $model->setAttributes($sanitizedPostdata); $model->validate(); $userStatus = UserStatusUtil::makeByPostData($_POST[$postVariableName]); if ($model instanceof User) { if ($userStatus == null) { $userStatus = UserStatusUtil::makeByUser($model); } Yii::app()->licenseManager->resolveValidationOnCreateOrEditUser($model, $userStatus); } elseif ($model instanceof ModelForm) { if ($userStatus == null) { $userStatus = UserStatusUtil::makeByUser($model->getModel()); } Yii::app()->licenseManager->resolveValidationOnCreateOrEditUser($model->getModel(), $userStatus); } $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model); echo CJSON::encode($errorData); Yii::app()->end(0, false); } }
protected function attemptToValidateAjaxFromPost($model, $postVariableName) { if (isset($_POST['ajax']) && $_POST['ajax'] == 'edit-form') { $model->setAttributes($_POST[$postVariableName]); $model->validate(); $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model); echo CJSON::encode($errorData); Yii::app()->end(0, false); } }
protected function validateCreateModalPostData() { $costbook = new Costbook(); if (isset($_POST['ajax']) && Yii::app()->request->isAjaxRequest) { $costbook = $this->attemptToSaveModelFromPost($costbook, null, false, true); echo CJSON::encode(ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($costbook)); Yii::app()->end(0, false); } }
/** * Override to handle report filters * @param SavedCalendar | ModelForm $model * @param string $postVariableName * @throws NotSupportedException(); */ protected function attemptToValidateAjaxFromPost($model, $postVariableName) { if (isset($_POST['ajax']) && $_POST['ajax'] == 'edit-form') { $postData = PostUtil::getData(); $readyToUsePostData = ExplicitReadWriteModelPermissionsUtil::removeIfExistsFromPostData($_POST[$postVariableName]); $sanitizedPostdata = PostUtil::sanitizePostByDesignerTypeForSavingModel($model, $readyToUsePostData); $sanitizedOwnerPostData = PostUtil::sanitizePostDataToJustHavingElementForSavingModel($sanitizedPostdata, 'owner'); $sanitizedPostDataWithoutOwner = PostUtil::removeElementFromPostDataForSavingModel($sanitizedPostdata, 'owner'); $model->setAttributes($sanitizedPostDataWithoutOwner); if ($model->validate()) { $modelToStringValue = strval($model); if ($sanitizedOwnerPostData != null) { $model->setAttributes($sanitizedOwnerPostData); } if ($model instanceof OwnedSecurableItem) { $model->validate(array('owner')); } } $wizardFormClassName = ReportToWizardFormAdapter::getFormClassNameByType(Report::TYPE_ROWS_AND_COLUMNS); if (!isset($postData[$wizardFormClassName])) { throw new NotSupportedException(); } $report = SavedCalendarToReportAdapter::makeReportBySavedCalendar($model); DataToReportUtil::resolveFiltersStructure($postData[$wizardFormClassName], $report); DataToReportUtil::resolveFilters($postData[$wizardFormClassName], $report); //This would do the filter and filter structure validation $reportToWizardFormAdapter = new ReportToWizardFormAdapter($report); $reportForm = $reportToWizardFormAdapter->makeFormByType(); $postData['validationScenario'] = $wizardFormClassName::FILTERS_VALIDATION_SCENARIO; $filtersErrorData = ReportUtil::validateReportWizardForm($postData, $reportForm); $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model); $errorData = array_merge($errorData, $filtersErrorData); echo CJSON::encode($errorData); Yii::app()->end(0, false); } }
protected function actionInlineEditValidate($model) { $readyToUsePostData = ExplicitReadWriteModelPermissionsUtil::removeIfExistsFromPostData($_POST[get_class($model)]); $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel($model, $readyToUsePostData); $sanitizedOwnerPostData = PostUtil::sanitizePostDataToJustHavingElementForSavingModel($sanitizedPostData, 'owner'); $sanitizedPostDataWithoutOwner = PostUtil::removeElementFromPostDataForSavingModel($sanitizedPostData, 'owner'); $model->setAttributes($sanitizedPostDataWithoutOwner); if ($model->validate()) { $modelToStringValue = strval($model); if ($sanitizedOwnerPostData != null) { $model->setAttributes($sanitizedOwnerPostData); } if ($model instanceof OwnedSecurableItem) { $model->validate(array('owner')); } } $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model); echo CJSON::encode($errorData); Yii::app()->end(0, false); }
protected function validateContactWebFormModelForm(ContactWebForm $contactWebForm, ContactWebFormsModelForm $contactWebFormModelForm) { $this->resolveContactWebFormEntry($contactWebForm, $contactWebFormModelForm); if ($contactWebFormModelForm->validate()) { $response = CJSON::encode(array()); } else { $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($contactWebFormModelForm); $response = CJSON::encode($errorData); } $this->renderResponse($response); }
protected static function renderActiveCheckBoxContent(ZurmoActiveForm $form, Currency $currency) { $htmlOptions = array(); $htmlOptions['id'] = 'CurrencyCollection_' . $currency->code . '_active'; $htmlOptions['name'] = 'CurrencyCollection[' . $currency->code . '][active]'; return $form->checkBox($currency, 'active', $htmlOptions); }
/** * Render a checkBox to filter models by starred only * @param ZurmoActiveForm $form * @return string */ protected function renderStarredFilterHidenField($model, $form) { $content = null; $modelsImplementsStarredInterface = false; if (isset($this->modelClassName)) { $modelsImplementsStarredInterface = in_array('StarredInterface', class_implements(new $this->modelClassName())); } if ($modelsImplementsStarredInterface) { $content .= $form->hiddenField($model, 'filterByStarred', array('class' => $form->id . '_filterByStarred')); } return $content; }