Example #1
0
 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;
 }
 public function testResolveSuccessfulCountAgainstSkipCount()
 {
     $successCount = MassEditInsufficientPermissionSkipSavingUtil::resolveSuccessfulCountAgainstSkipCount(10, 4);
     $this->assertEquals(6, $successCount);
 }