protected function getCompleteMessage() { $successfulCount = MassEditInsufficientPermissionSkipSavingUtil::resolveSuccessfulCountAgainstSkipCount($this->totalRecordCount, $this->skipCount); $content = $successfulCount . " " . LabelUtil::getUncapitalizedRecordLabelByCount($successfulCount) . " " . Yii::t('Default', 'updated successfully.'); if ($this->skipCount > 0) { $content .= '<br/>' . MassEditInsufficientPermissionSkipSavingUtil::getSkipCountMessageContentByModelClassName($this->skipCount, get_class($this->model)); } return $content; }
/** * This method is called after a mass edit form is first submitted. * It is called from the actionMassEdit. * @see actionMassEdit in the module default controllers. */ protected function processMassEdit($pageSize, $activeAttributes, $selectedRecordCount, $pageViewClassName, $listModel, $title, $dataProvider = null) { // TODO: @Shoaibi/@Jason: Low: Deprecated // trigger_error('Deprecated'); assert('$dataProvider == null || $dataProvider instanceof CDataProvider'); $modelClassName = get_class($listModel); $selectedRecordCount = static::getSelectedRecordCountByResolvingSelectAllFromGet($dataProvider); if (isset($_POST[$modelClassName])) { PostUtil::sanitizePostForSavingMassEdit($modelClassName); //Generically test that the changes are valid before attempting to save on each model. $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel(new $modelClassName(false), $_POST[$modelClassName]); $sanitizedOwnerPostData = PostUtil::sanitizePostDataToJustHavingElementForSavingModel($sanitizedPostData, 'owner'); $sanitizedPostDataWithoutOwner = PostUtil::removeElementFromPostDataForSavingModel($sanitizedPostData, 'owner'); $massEditPostDataWithoutOwner = PostUtil::removeElementFromPostDataForSavingModel($_POST['MassEdit'], 'owner'); $listModel->setAttributes($sanitizedPostDataWithoutOwner); if ($listModel->validate(array_keys($massEditPostDataWithoutOwner))) { $passedOwnerValidation = true; if ($sanitizedOwnerPostData != null) { $listModel->setAttributes($sanitizedOwnerPostData); $passedOwnerValidation = $listModel->validate(array('owner')); } if ($passedOwnerValidation) { MassEditInsufficientPermissionSkipSavingUtil::clear($modelClassName); Yii::app()->gameHelper->triggerMassEditEvent(get_class($listModel)); $this->saveMassEdit(get_class($listModel), $modelClassName, $selectedRecordCount, $dataProvider, $_GET[$modelClassName . '_page'], $pageSize); //cancel diminish of save scoring if ($selectedRecordCount > $pageSize) { $view = new $pageViewClassName(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this, $this->makeMassEditProgressView($listModel, 1, $selectedRecordCount, 1, $pageSize, $title, null))); echo $view->render(); Yii::app()->end(0, false); } else { $skipCount = MassEditInsufficientPermissionSkipSavingUtil::getCount($modelClassName); $successfulCount = MassEditInsufficientPermissionSkipSavingUtil::resolveSuccessfulCountAgainstSkipCount($selectedRecordCount, $skipCount); MassEditInsufficientPermissionSkipSavingUtil::clear($modelClassName); $notificationContent = Zurmo::t('ZurmoModule', 'Successfully updated') . ' ' . $successfulCount . ' ' . LabelUtil::getUncapitalizedRecordLabelByCount($successfulCount) . '.'; if ($skipCount > 0) { $notificationContent .= ' ' . MassEditInsufficientPermissionSkipSavingUtil::getSkipCountMessageContentByModelClassName($skipCount, $modelClassName); } Yii::app()->user->setFlash('notification', $notificationContent); $this->redirect(array('default/')); Yii::app()->end(0, false); } } } } return $listModel; }
/** * @expectedException NotSupportedException */ public function testGetSkipCountMessageContentByModelClassNameInvalidSkipCount() { MassEditInsufficientPermissionSkipSavingUtil::getSkipCountMessageContentByModelClassName(-4, 'someModel'); }