/** * Edit a Test Center instance * @return void */ public function editCenter() { $clazz = $this->getCurrentClass(); $testCenter = $this->getCurrentInstance(); $formContainer = new \tao_actions_form_Instance($clazz, $testCenter); $myForm = $formContainer->getForm(); if ($myForm->isSubmited()) { if ($myForm->isValid()) { $binder = new \tao_models_classes_dataBinding_GenerisFormDataBinder($testCenter); $testCenter = $binder->bind($myForm->getValues()); $this->setData("selectNode", \tao_helpers_Uri::encode($testCenter->getUri())); $this->setData('message', $this->convert('Test center saved')); $this->setData('reload', true); } } $childrenProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_CHILDREN_URI); $childrenForm = \tao_helpers_form_GenerisTreeForm::buildTree($testCenter, $childrenProperty); $childrenForm->setHiddenNodes(array($testCenter->getUri())); $childrenForm->setTitle($this->convert('Define sub-centers')); $this->setData('childrenForm', $childrenForm->render()); $administratorProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_ADMINISTRATOR_URI); $administratorForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testCenter, $administratorProperty); $administratorForm->setData('title', $this->convert('Assign administrator')); $this->setData('administratorForm', $administratorForm->render()); $proctorProperty = new \core_kernel_classes_Property(ProctorManagementService::PROPERTY_ASSIGNED_PROCTOR_URI); $proctorForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testCenter, $proctorProperty); $proctorForm->setData('title', $this->convert('Assign proctors')); $this->setData('proctorForm', $proctorForm->render()); $this->setData('formTitle', $this->convert('Edit test center')); $this->setData('testCenter', $testCenter->getUri()); $this->setData('myForm', $myForm->render()); $this->setView('form_test_center.tpl'); }
public function setReverseValues() { if (!tao_helpers_Request::isAjax()) { throw new common_exception_IsAjaxAction(__FUNCTION__); } $values = tao_helpers_form_GenerisTreeForm::getSelectedInstancesFromPost(); $resource = new core_kernel_classes_Resource($this->getRequestParameter('resourceUri')); $property = new core_kernel_classes_Property($this->getRequestParameter('propertyUri')); $currentValues = array(); foreach ($property->getDomain() as $domain) { $instances = $domain->searchInstances(array($property->getUri() => $resource), array('recursive' => true, 'like' => false)); $currentValues = array_merge($currentValues, array_keys($instances)); } $toAdd = array_diff($values, $currentValues); $toRemove = array_diff($currentValues, $values); $success = true; foreach ($toAdd as $uri) { $subject = new core_kernel_classes_Resource($uri); $success = $success && $subject->setPropertyValue($property, $resource); } foreach ($toRemove as $uri) { $subject = new core_kernel_classes_Resource($uri); $success = $success && $subject->removePropertyValue($property, $resource); } echo json_encode(array('saved' => $success)); }
/** * Edit a Test Center instance * @return void */ public function editCenter() { $clazz = $this->getCurrentClass(); $testcenter = $this->getCurrentInstance(); $formContainer = new \tao_actions_form_Instance($clazz, $testcenter); $myForm = $formContainer->getForm(); if ($myForm->isSubmited()) { if ($myForm->isValid()) { $binder = new \tao_models_classes_dataBinding_GenerisFormDataBinder($testcenter); $testcenter = $binder->bind($myForm->getValues()); $this->setData("selectNode", \tao_helpers_Uri::encode($testcenter->getUri())); $this->setData('message', __('Test center saved')); $this->setData('reload', true); } } $memberProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_MEMBERS_URI); $memberForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testcenter, $memberProperty); $memberForm->setData('title', __('Select test takers for the test center')); $this->setData('memberForm', $memberForm->render()); $groupProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_DELIVERY_URI); $groupForm = \tao_helpers_form_GenerisTreeForm::buildTree($testcenter, $groupProperty); $groupForm->setData('title', __('Select deliveries available at the test center')); $this->setData('groupForm', $groupForm->render()); $proctorProperty = new \core_kernel_classes_Property(TestCenterService::PROPERTY_PROCTORS_URI); $proctorForm = \tao_helpers_form_GenerisTreeForm::buildReverseTree($testcenter, $proctorProperty); $proctorForm->setData('title', __('Select proctors for the test center')); $this->setData('proctorForm', $proctorForm->render()); $this->setData('formTitle', __('Edit test center')); $this->setData('myForm', $myForm->render()); $this->setView('form_test_center.tpl'); }
/** * Render the tree to select the campaign for a delivery * @return void */ public function selectDeliveryCampaigns() { //get the deliveries related to this delivery campaign $prop = new core_kernel_classes_Property(TAO_DELIVERY_CAMPAIGN_PROP); $tree = tao_helpers_form_GenerisTreeForm::buildTree($this->getCurrentInstance(), $prop); $this->setData('tree', $tree->render()); $this->setView('sas' . DIRECTORY_SEPARATOR . 'generisTreeSelect.tpl', 'tao'); }
public static function renderDeliveryTree(\core_kernel_classes_Resource $group) { // ensure constant is known since this helper can be called out of context \common_ext_ExtensionsManager::singleton()->getExtensionById('taoDeliveryRdf')->load(); $property = new \core_kernel_classes_Property(PROPERTY_GROUP_DELVIERY); $tree = \tao_helpers_form_GenerisTreeForm::buildTree($group, $property); $tree->setData('title', __('Deliveries')); return $tree->render(); }
public static function renderCampaignTree(core_kernel_classes_Resource $delivery) { // ensure constant is known since this helper can be called out of context common_ext_ExtensionsManager::singleton()->getExtensionById('taoCampaign')->load(); $property = new core_kernel_classes_Property(TAO_DELIVERY_CAMPAIGN_PROP); $tree = tao_helpers_form_GenerisTreeForm::buildTree($delivery, $property); $tree->setData('title', __('Add to delivery campaign')); return $tree->render(); }
public function assignUsers() { $role = $this->getCurrentInstance(); $prop = new core_kernel_classes_Property(PROPERTY_USER_ROLES); $tree = tao_helpers_form_GenerisTreeForm::buildReverseTree($role, $prop); $tree->setData('title', __('Assign User to role')); $tree->setData('dataUrl', _url('getUsers')); $this->setData('userTree', $tree->render()); $this->setView('roles/assignUsers.tpl'); }
/** * Edit a delivery instance * * @access public * @author CRP Henri Tudor - TAO Team - {@link http://www.tao.lu} * @return void */ public function editDelivery() { $clazz = $this->getCurrentClass(); $delivery = $this->getCurrentInstance(); $formContainer = new taoDelivery_actions_form_Delivery($clazz, $delivery); $myForm = $formContainer->getForm(); $myForm->evaluate(); if ($myForm->isSubmited()) { if ($myForm->isValid()) { $propertyValues = $myForm->getValues(); // then save the property values as usual $binder = new tao_models_classes_dataBinding_GenerisFormDataBinder($delivery); $delivery = $binder->bind($propertyValues); $this->setData("selectNode", tao_helpers_Uri::encode($delivery->getUri())); $this->setData('message', __('Delivery saved')); $this->setData('reload', true); } } $this->setData('label', $delivery->getLabel()); // history $this->setData('date', taoDelivery_models_classes_DeliveryAssemblyService::singleton()->getCompilationDate($delivery)); if (taoDelivery_models_classes_execution_ServiceProxy::singleton()->implementsMonitoring()) { $execs = taoDelivery_models_classes_execution_ServiceProxy::singleton()->getExecutionsByDelivery($delivery); $this->setData('exec', count($execs)); } // define the groups related to the current delivery $property = new core_kernel_classes_Property(PROPERTY_GROUP_DELVIERY); $tree = tao_helpers_form_GenerisTreeForm::buildReverseTree($delivery, $property); $tree->setTitle(__('Assigned to')); $tree->setTemplate(Template::getTemplate('widgets/assignGroup.tpl')); $this->setData('groupTree', $tree->render()); // testtaker brick $this->setData('assemblyUri', $delivery->getUri()); // define the subjects excluded from the current delivery $property = new core_kernel_classes_Property(TAO_DELIVERY_EXCLUDEDSUBJECTS_PROP); $excluded = $delivery->getPropertyValues($property); $this->setData('ttexcluded', count($excluded)); $users = taoDelivery_models_classes_AssignmentService::singleton()->getAssignedUsers($delivery); $assigned = array_diff(array_unique($users), $excluded); $this->setData('ttassigned', count($assigned)); $this->setData('formTitle', __('Properties')); $this->setData('myForm', $myForm->render()); if (common_ext_ExtensionsManager::singleton()->isEnabled('taoCampaign')) { $this->setData('campaign', taoCampaign_helpers_Campaign::renderCampaignTree($delivery)); } $this->setView('Delivery/editDelivery.tpl'); }
/** * Edit a delviery instance * @return void */ public function editCampaign() { $clazz = $this->getCurrentClass(); $campaign = $this->getCurrentInstance(); $formContainer = new tao_actions_form_Instance($clazz, $campaign); $myForm = $formContainer->getForm(); if ($myForm->isSubmited()) { if ($myForm->isValid()) { $binder = new tao_models_classes_dataBinding_GenerisFormDataBinder($campaign); $campaign = $binder->bind($myForm->getValues()); $this->setData("selectNode", tao_helpers_Uri::encode($campaign->getUri())); $this->setData('message', __('Campaign saved')); $this->setData('reload', true); } } //get the deliveries related to this delivery campaign $prop = new core_kernel_classes_Property(TAO_DELIVERY_CAMPAIGN_PROP); $tree = tao_helpers_form_GenerisTreeForm::buildReverseTree($campaign, $prop); $this->setData('deliveryTree', $tree->render()); $this->setData('formTitle', __('Edit Campaign')); $this->setData('myForm', $myForm->render()); $this->setView('form_campaign.tpl'); }
/** * save the related items from the checkbox tree or from the sequence box * @return void */ public function saveItems() { if (!tao_helpers_Request::isAjax()) { throw new Exception("wrong request mode"); } $saved = false; $candidates = tao_helpers_form_GenerisTreeForm::getSelectedInstancesFromPost(); foreach ($this->getRequestParameters() as $key => $value) { if (preg_match("/^instance_/", $key)) { $candidates[] = tao_helpers_Uri::decode($value); } } $items = array(); foreach ($candidates as $uri) { $item = new core_kernel_classes_Resource($uri); $itemModel = $item->getOnePropertyValue(new core_kernel_classes_Property(TAO_ITEM_MODEL_PROPERTY)); $supported = false; if (!is_null($itemModel)) { foreach ($itemModel->getPropertyValues(new core_kernel_classes_Property(TAO_ITEM_MODELTARGET_PROPERTY)) as $targeturi) { if ($targeturi == TAO_ITEM_ONLINE_TARGET) { $supported = true; break; } } } if ($supported) { array_push($items, $item); } else { throw new common_Exception($item->getLabel() . ' cannot be added to a test'); } } if ($this->service->setTestItems($this->getCurrentInstance(), $items)) { $saved = true; } $this->returnJson(array('saved' => $saved)); }