updateWorklistDefinitionMapping() public method

Update the mapping specification for an automatic worklist definition.
public updateWorklistDefinitionMapping ( WorklistDefinitionMapping $mapping, $key, string $values, $display = true ) : boolean
$mapping WorklistDefinitionMapping
$key
$values string
return boolean
 /**
  * Update a WorkflowDefinitionMapping.
  *
  * @param $id
  *
  * @throws CHttpException
  */
 public function actionDefinitionMappingUpdate($id)
 {
     if (!($mapping = WorklistDefinitionMapping::model()->findByPk($id))) {
         throw new CHttpException(404, 'Worklist Definition Mapping not found.');
     }
     if (!$this->manager->canUpdateWorklistDefinition($mapping->worklist_definition)) {
         throw new CHttpException(409, 'Cannot change mappings for un-editable Definition');
     }
     if (isset($_POST['WorklistDefinitionMapping'])) {
         $mapping->attributes = $_POST['WorklistDefinitionMapping'];
         if ($this->manager->updateWorklistDefinitionMapping($mapping, $_POST['WorklistDefinitionMapping']['key'], $_POST['WorklistDefinitionMapping']['valuelist'], $_POST['WorklistDefinitionMapping']['willdisplay'])) {
             $this->flashMessage('success', 'Worklist Definition Mapping saved.');
             $this->redirect(array('/worklistAdmin/definitionMappings/' . $mapping->worklist_definition_id));
         } else {
             $errors = $mapping->getErrors();
             $errors[] = $this->manager->getErrors();
         }
     }
     $this->render('//admin/worklists/definition_mapping', array('mapping' => $mapping, 'errors' => @$errors));
 }
示例#2
0
 public function test_updateWorklistDefinitionMapping_invalid_key()
 {
     $definition = $this->getMockBuilder('WorklistDefinition')->disableOriginalConstructor()->setMethods(array('validateMappingKey'))->getMock();
     $definition->expects($this->once())->method('validateMappingKey')->will($this->returnValue(false));
     $mapping = new WorklistDefinitionMapping();
     $mapping->worklist_definition = $definition;
     $manager = new WorklistManager();
     $this->assertFalse($manager->updateWorklistDefinitionMapping($mapping, 'test key', 'foo'));
     $this->assertTrue($manager->hasErrors());
 }