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)); }
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()); }