/** * Short description of method initElements * * @access public * @author Joel Bout, <*****@*****.**> * @return mixed */ public function initElements() { parent::initElements(); $codeElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_PROCESSVARIABLES_CODE)); $codeElt->addValidator(tao_helpers_form_FormFactory::getValidator('NotEmpty')); $codeElt->addValidator(new wfAuthoring_actions_form_validators_VariableCode(array('uri' => $this->getInstance()->getUri()))); }
/** * 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'); }
/** * Renders the auhtoring for simple tests */ public function index() { $test = $this->getCurrentInstance(); $itemSequence = array(); $itemUris = array(); $counter = 1; foreach ($this->service->getTestItems($test) as $item) { $itemUris[] = $item->getUri(); $itemSequence[$counter] = array('uri' => tao_helpers_Uri::encode($item->getUri()), 'label' => $item->getLabel()); $counter++; } // data for item sequence, terrible solution // @todo implement an ajax request for labels or pass from tree to sequence $allItems = array(); foreach ($this->service->getAllItems() as $itemUri => $itemLabel) { $allItems['item_' . tao_helpers_Uri::encode($itemUri)] = $itemLabel; } $this->setData('uri', $test->getUri()); $this->setData('allItems', json_encode($allItems)); $this->setData('itemSequence', $itemSequence); // data for generis tree form $this->setData('relatedItems', json_encode(tao_helpers_Uri::encodeArray($itemUris))); $openNodes = tao_models_classes_GenerisTreeFactory::getNodesToOpen($itemUris, new core_kernel_classes_Class(TAO_ITEM_CLASS)); $this->setData('itemRootNode', TAO_ITEM_CLASS); $this->setData('itemOpenNodes', $openNodes); $this->setData('saveUrl', _url('saveItems', 'Authoring', 'taoWfTest')); $this->setView('authoring.tpl'); }
public function editInstance() { $clazz = $this->getCurrentClass(); $instance = $this->getCurrentInstance(); $myFormContainer = new \tao_actions_form_Instance($clazz, $instance); $myForm = $myFormContainer->getForm(); $nameElement = $myForm->getElement(\tao_helpers_Uri::encode(WebBrowserService::PROPERTY_NAME)); $versionElement = $myForm->getElement(\tao_helpers_Uri::encode(WebBrowserService::PROPERTY_VERSION)); $nameElement->addClass('select2'); $versionElement->setHelp("<span class=\"icon-help tooltipstered\" data-tooltip=\".web-browser-form .browser-version-tooltip-content\" data-tooltip-theme=\"info\"></span>"); if ($myForm->isSubmited()) { if ($myForm->isValid()) { $values = $myForm->getValues(); // save properties $binder = new \tao_models_classes_dataBinding_GenerisFormDataBinder($instance); $instance = $binder->bind($values); $message = __('Instance saved'); $this->setData('message', $message); $this->setData('reload', true); } } $this->setData('formTitle', __('Edit Authorized Web Browser')); $this->setData('myForm', $myForm->render()); $this->setView('WebBrowsers/form.tpl'); }
protected function initElements() { parent::initElements(); $labelElt = $this->form->getElement(\tao_helpers_Uri::encode(RDFS_LABEL)); if ($labelElt !== null) { $labelElt->addAttribute('noLabel', true); $labelElt->addAttribute('class', 'full-width js-label'); $labelElt->addAttribute('value', '{{label}}'); $labelElt->setName('label'); $labelElt->addValidators(array(\tao_helpers_form_FormFactory::getValidator('NotEmpty'))); $this->form->addElement($labelElt); } $maxExecElt = $this->form->getElement(\tao_helpers_Uri::encode(TAO_DELIVERY_MAXEXEC_PROP)); if ($maxExecElt !== null) { $maxExecElt->addValidators(array(\tao_helpers_form_FormFactory::getValidator('Integer', array('min' => 1)))); $maxExecElt->addAttribute('value', '{{maxexec}}'); $maxExecElt->addAttribute('noLabel', true); $maxExecElt->setName('maxexec'); $maxExecElt->addAttribute('class', 'full-width js-maxexec'); $this->form->addElement($maxExecElt); } $resultServerElt = $this->form->getElement(\tao_helpers_Uri::encode(TAO_DELIVERY_RESULTSERVER_PROP)); if ($resultServerElt !== null) { $resultServerElt->addAttribute('noLabel', true); $resultServerElt->addAttribute('class', 'full-width'); $resultServerElt->setName('resultserver'); $resultServerElt->addValidators(array(\tao_helpers_form_FormFactory::getValidator('NotEmpty'))); $this->form->addElement($resultServerElt); } $recurrenceRuleElt = $this->form->getElement(\tao_helpers_Uri::encode(DeliveryScheduleService::TAO_DELIVERY_RRULE_PROP)); if ($recurrenceRuleElt !== null) { $recurrenceRuleElt->setName('rrule'); $this->form->addElement($recurrenceRuleElt); } }
/** * Short description of method initElements * * @access protected * @author Joel Bout, <*****@*****.**> * @return mixed */ protected function initElements() { $langService = tao_models_classes_LanguageService::singleton(); // Retrieve languages available for a GUI usage. $guiUsage = new core_kernel_classes_Resource(INSTANCE_LANGUAGE_USAGE_GUI); $guiOptions = array(); foreach ($langService->getAvailableLanguagesByUsage($guiUsage) as $lang) { $guiOptions[tao_helpers_Uri::encode($lang->getUri())] = $lang->getLabel(); } // Retrieve languages available for a Data usage. $dataUsage = new core_kernel_classes_Resource(INSTANCE_LANGUAGE_USAGE_DATA); $dataOptions = array(); foreach ($langService->getAvailableLanguagesByUsage($dataUsage) as $lang) { $dataOptions[tao_helpers_Uri::encode($lang->getUri())] = $lang->getLabel(); } $uiLangElement = tao_helpers_form_FormFactory::getElement('ui_lang', 'Combobox'); $uiLangElement->setDescription(__('Interface language')); $uiLangElement->setOptions($guiOptions); $this->form->addElement($uiLangElement); $dataLangElement = tao_helpers_form_FormFactory::getElement('data_lang', 'Combobox'); $dataLangElement->setDescription(__('Data language')); $dataLangElement->setOptions($dataOptions); $this->form->addElement($dataLangElement); $tzElement = tao_helpers_form_FormFactory::getElement('timezone', 'Combobox'); $tzElement->setDescription(__('Time zone')); $options = array(); foreach (DateTimeZone::listIdentifiers() as $id) { $options[$id] = $id; } $tzElement->setOptions($options); $this->form->addElement($tzElement); }
/** * 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'); }
/** * @deprecated * @see taoTests_models_classes_TestModel::getAuthoring() */ public function getAuthoring(core_kernel_classes_Resource $test) { $ext = common_ext_ExtensionsManager::singleton()->getExtensionById('taoWfTest'); $testService = taoTests_models_classes_TestsService::singleton(); $itemSequence = array(); $itemUris = array(); $i = 1; foreach ($testService->getTestItems($test) as $item) { $itemUris[] = $item->getUri(); $itemSequence[$i] = array('uri' => tao_helpers_Uri::encode($item->getUri()), 'label' => $item->getLabel()); $i++; } // data for item sequence, terrible solution // @todo implement an ajax request for labels or pass from tree to sequence $allItems = array(); foreach ($testService->getAllItems() as $itemUri => $itemLabel) { $allItems['item_' . tao_helpers_Uri::encode($itemUri)] = $itemLabel; } $widget = new Renderer($ext->getConstant('DIR_VIEWS') . 'templates' . DIRECTORY_SEPARATOR . 'authoring.tpl'); $widget->setData('uri', $test->getUri()); $widget->setData('allItems', json_encode($allItems)); $widget->setData('itemSequence', $itemSequence); // data for generis tree form $widget->setData('relatedItems', json_encode(tao_helpers_Uri::encodeArray($itemUris))); $openNodes = tao_models_classes_GenerisTreeFactory::getNodesToOpen($itemUris, new core_kernel_classes_Class(TAO_ITEM_CLASS)); $widget->setData('itemRootNode', TAO_ITEM_CLASS); $widget->setData('itemOpenNodes', $openNodes); $widget->setData('saveUrl', _url('saveItems', 'Authoring', 'taoWfTest')); return $widget->render(); }
protected function initElements() { $title = tao_helpers_form_FormFactory::getElement('title', 'Free'); $title->setValue('<h2>' . $this->convert('Create and authorize a proctor to the selected test sites') . '</h2>'); $this->form->addElement($title); parent::initElements(); $this->form->removeElement(\tao_helpers_Uri::encode(PROPERTY_USER_ROLES)); }
/** * * @author Lionel Lecaque, lionel@taotesting.com */ public function save() { $saved = false; $instance = $this->getCurrentInstance(); $testUri = tao_helpers_Uri::decode($this->getRequestParameter(tao_helpers_Uri::encode(PROPERTY_DELIVERYCONTENT_TEST))); $saved = $this->contentModel->addTest($instance, new core_kernel_classes_Resource($testUri)); //$saved = $instance->editPropertyValues(new core_kernel_classes_Property(PROPERTY_DELIVERYCONTENT_TEST ), $testUri); echo json_encode(array('saved' => $saved)); }
/** * Initialize the form elements * * @access protected * @author Bertrand Chevrier, <*****@*****.**> * @return mixed */ protected function initElements() { $chainingElt = tao_helpers_form_FormFactory::getElement('chaining', 'Radiobox'); $chainingElt->setDescription(__('Filtering mode')); $chainingElt->setOptions(array('or' => __('Exclusive (OR)'), 'and' => __('Inclusive (AND)'))); $chainingElt->setValue('or'); $this->form->addElement($chainingElt); $recursiveElt = tao_helpers_form_FormFactory::getElement('recursive', 'Checkbox'); $recursiveElt->setDescription(__('Scope')); $recursiveElt->setOptions(array('0' => __('Search sub-classes'))); $this->form->addElement($recursiveElt); $searchClassUriElt = tao_helpers_form_FormFactory::getElement("clazzUri", "Hidden"); $searchClassUriElt->setValue(tao_helpers_Uri::encode($this->clazz->getUri())); $this->form->addElement($searchClassUriElt); $langElt = tao_helpers_form_FormFactory::getElement('lang', 'Combobox'); $langElt->setDescription(__('Language')); $languages = array_merge(array('-- any --'), tao_helpers_I18n::getAvailableLangsByUsage(new core_kernel_classes_Resource(INSTANCE_LANGUAGE_USAGE_DATA))); $langElt->setOptions($languages); $langElt->setValue(0); $this->form->addElement($langElt); $this->form->createGroup('params', __('<del>Options</del>'), array('chaining', 'recursive', 'lang')); $filters = array(); $defaultProperties = tao_helpers_form_GenerisFormFactory::getDefaultProperties(); $classProperties = $this->getClassProperties(); $properties = array_merge($defaultProperties, $classProperties); isset($this->options['recursive']) ? $recursive = $this->options['recursive'] : ($recursive = false); if ($recursive) { foreach ($this->clazz->getSubClasses(true) as $subClass) { $properties = array_merge($subClass->getProperties(false), $properties); } } foreach ($properties as $property) { $element = tao_helpers_form_GenerisFormFactory::elementMap($property); if (!is_null($element) && !$element instanceof tao_helpers_form_elements_Authoring && !$element instanceof tao_helpers_form_elements_Hiddenbox && !$element instanceof tao_helpers_form_elements_Hidden) { if ($element instanceof tao_helpers_form_elements_MultipleElement) { $newElement = tao_helpers_form_FormFactory::getElement($element->getName(), 'Checkbox'); $newElement->setDescription($element->getDescription()); $newElement->setOptions($element->getOptions()); $element = $newElement; } if ($element instanceof tao_helpers_form_elements_Htmlarea) { $newElement = tao_helpers_form_FormFactory::getElement($element->getName(), 'Textarea'); $newElement->setDescription($element->getDescription()); $element = $newElement; } $this->form->addElement($element); $filters[] = $element->getName(); } } $this->form->createGroup('filters', __('<del>Filters</del>'), $filters); }
/** * save the related items from the checkbox tree or from the sequence box * @return void */ public function save() { $saved = false; $instance = $this->getCurrentInstance(); $launchUrl = $this->getRequestParameter(tao_helpers_Uri::encode(PROPERTY_LTI_LINK_LAUNCHURL)); $consumerUrl = $this->getRequestParameter(tao_helpers_Uri::encode(PROPERTY_LTI_LINK_CONSUMER)); if (empty($launchUrl)) { return $this->returnError('Launch URL is required'); } if (empty($consumerUrl)) { return $this->returnError('Consumer is required'); } $consumer = new core_kernel_classes_Resource(tao_helpers_Uri::decode($consumerUrl)); $saved = $instance->setPropertiesValues(array(PROPERTY_LTI_LINK_LAUNCHURL => $launchUrl, PROPERTY_LTI_LINK_CONSUMER => $consumer)); echo json_encode(array('saved' => $saved)); }
/** * Short description of method initElements * * @access public * @author Joel Bout, <*****@*****.**> * @return mixed */ public function initElements() { parent::initElements(); $encodedIncludesRolePropertyUri = tao_helpers_Uri::encode(PROPERTY_ROLE_INCLUDESROLE); $encodedInstanceUri = tao_helpers_Uri::encode($this->getInstance()->getUri()); $rolesElement = $this->form->getElement($encodedIncludesRolePropertyUri); if (!is_null($rolesElement)) { $rolesOptions = $rolesElement->getOptions(); // remove the role itself in the list of includable roles // to avoid cyclic inclusions (even if the system supports it). if (array_key_exists($encodedInstanceUri, $rolesOptions)) { unset($rolesOptions[$encodedInstanceUri]); } $rolesElement->setOptions($rolesOptions); } }
/** * 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'); }
public function setServiceDefinition() { $serviceCallUri = tao_helpers_Uri::decode($this->getRequestParameter('callOfServiceUri')); $serviceDefinitionUri = tao_helpers_Uri::decode($this->getRequestParameter(tao_helpers_Uri::encode(PROPERTY_CALLOFSERVICES_SERVICEDEFINITION))); if (empty($serviceCallUri)) { throw new tao_models_classes_MissingRequestParameterException('callOfServiceUri'); } if (empty($serviceDefinitionUri)) { throw new tao_models_classes_MissingRequestParameterException(tao_helpers_Uri::encode(PROPERTY_CALLOFSERVICES_SERVICEDEFINITION)); } $serviceCall = new core_kernel_classes_Resource($serviceCallUri); $serviceDefinition = new core_kernel_classes_Resource($serviceDefinitionUri); $service = tao_models_classes_InteractiveServiceService::singleton(); $service->setCallOfServiceDefinition($serviceCall, $serviceDefinition); $service->setDefaultParameters($serviceCall); echo json_encode(array('saved' => 'true')); }
/** * Short description of method initElements * * @access public * @author Joel Bout, <*****@*****.**> * @return mixed */ public function initElements() { parent::initElements(); $ele = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_GENERIS_VERSIONEDREPOSITORY_URL)); $ele->addValidators(array(tao_helpers_form_FormFactory::getValidator('NotEmpty'), tao_helpers_form_FormFactory::getValidator('Url'))); $ele = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_GENERIS_VERSIONEDREPOSITORY_TYPE)); $ele->addValidator(tao_helpers_form_FormFactory::getValidator('NotEmpty')); $ele = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_GENERIS_VERSIONEDREPOSITORY_ENABLED)); //prevent having neither enabled or disabled selected if (is_null($ele->getValue())) { $ele->setValue(tao_helpers_Uri::encode(GENERIS_FALSE)); } $ele = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_GENERIS_VERSIONEDREPOSITORY_LOGIN)); $ele->addValidator(tao_helpers_form_FormFactory::getValidator('NotEmpty')); $ele = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH)); $ele->setHelp(__('Path to the local working copy, it is where your local version of your versioned Resource will be stored. ') . '/path/to/the/local/working_copy'); $ele->addValidator(tao_helpers_form_FormFactory::getValidator('NotEmpty')); }
/** * @author Bertrand Chevrier, <*****@*****.**> * @param core_kernel_classes_Class $range * @param boolean $recursive * @return array */ public function rangeToTree(core_kernel_classes_Class $range, $recursive = false) { $data = array(); foreach ($range->getSubClasses(false) as $rangeClass) { $classData = array('data' => $rangeClass->getLabel(), 'attributes' => array('id' => tao_helpers_Uri::encode($rangeClass->getUri()), 'class' => 'node-instance')); $children = $this->rangeToTree($rangeClass, true); if (count($children) > 0) { $classData['state'] = 'closed'; $classData['children'] = $children; } $data[] = $classData; } if (!$recursive) { $returnValue = array('data' => $range->getLabel(), 'attributes' => array('id' => tao_helpers_Uri::encode($range->getUri()), 'class' => 'node-class'), 'children' => $data); } else { $returnValue = $data; } return $returnValue; }
protected function initElements() { parent::initElements(); $maxExecElt = $this->form->getElement(tao_helpers_Uri::encode(TAO_DELIVERY_MAXEXEC_PROP)); if (!is_null($maxExecElt)) { $maxExecElt->addValidators(array(tao_helpers_form_FormFactory::getValidator('Integer', array('min' => 1)))); $this->form->addElement($maxExecElt); } $periodEndElt = $this->form->getElement(tao_helpers_Uri::encode(TAO_DELIVERY_END_PROP)); if (!is_null($periodEndElt)) { $periodEndElt->addValidators(array(tao_helpers_form_FormFactory::getValidator('DateTime', array('comparator' => '>=', 'datetime2_ref' => $this->form->getElement(tao_helpers_Uri::encode(TAO_DELIVERY_START_PROP)))))); $this->form->addElement($periodEndElt); } $resultServerElt = $this->form->getElement(tao_helpers_Uri::encode(TAO_DELIVERY_RESULTSERVER_PROP)); if (!is_null($resultServerElt)) { $resultServerElt->addValidators(array(tao_helpers_form_FormFactory::getValidator('NotEmpty'))); $this->form->addElement($resultServerElt); } }
/** * Short description of method initElements * * @access public * @author Bertrand Chevrier, <*****@*****.**> * @return mixed */ public function initElements() { $property = $this->getPropertyInstance(); isset($this->options['index']) ? $index = $this->options['index'] : ($index = 1); $propertyProperties = array_merge(tao_helpers_form_GenerisFormFactory::getDefaultProperties(), array(new core_kernel_classes_Property(PROPERTY_IS_LG_DEPENDENT), new core_kernel_classes_Property(PROPERTY_WIDGET), new core_kernel_classes_Property(RDFS_RANGE))); $elementNames = array(); foreach ($propertyProperties as $propertyProperty) { //map properties widgets to form elements $element = tao_helpers_form_GenerisFormFactory::elementMap($propertyProperty); if (!is_null($element)) { //take property values to populate the form $values = $property->getPropertyValuesCollection($propertyProperty); foreach ($values->getIterator() as $value) { if (!is_null($value)) { if ($value instanceof core_kernel_classes_Resource) { $element->setValue($value->getUri()); } if ($value instanceof core_kernel_classes_Literal) { $element->setValue((string) $value); } } } $element->setName("property_{$index}_{$element->getName()}"); $element->addClass('property'); if ($propertyProperty->getUri() == RDFS_LABEL) { $element->addValidator(tao_helpers_form_FormFactory::getValidator('NotEmpty')); } $this->form->addElement($element); $elementNames[] = $element->getName(); } } $encodedUri = tao_helpers_Uri::encode($property->getUri()); $modeElt = tao_helpers_form_FormFactory::getElement("{$index}_uri", 'Hidden'); $modeElt->setValue($encodedUri); $modeElt->addClass('property'); $this->form->addElement($modeElt); $elementNames[] = $modeElt->getName(); if (count($elementNames) > 0) { $groupTitle = $this->getGroupTitle($property); $this->form->createGroup("property_{$encodedUri}", $groupTitle, $elementNames); } }
/** * Render the tree and the list to select and order the test related items * @return void */ public function selectItems() { $this->setData('uri', $this->getRequestParameter('uri')); $this->setData('classUri', $this->getRequestParameter('classUri')); $test = $this->getCurrentInstance(); $allItems = array(); foreach ($this->service->getAllItems() as $itemUri => $itemLabel) { $allItems['item_' . tao_helpers_Uri::encode($itemUri)] = $itemLabel; } $this->setData('allItems', json_encode($allItems)); $relatedItems = tao_helpers_Uri::encodeArray($this->service->getTestItems($test, true), tao_helpers_Uri::ENCODE_ARRAY_VALUES); $this->setData('relatedItems', json_encode($relatedItems)); $itemSequence = array(); foreach ($relatedItems as $index => $itemUri) { $item = new core_kernel_classes_Resource($itemUri); $itemSequence[$index] = array('uri' => tao_helpers_Uri::encode($itemUri), 'label' => $item->getLabel()); } $this->setData('itemSequence', $itemSequence); $this->setView('items.tpl'); }
/** * Edit a result class * @return void */ public function editResultClass() { $clazz = $this->getCurrentClass(); if ($this->hasRequestParameter('property_mode')) { $this->setSessionAttribute('property_mode', $this->getRequestParameter('property_mode')); } $myForm = $this->editClass($clazz, $this->service->getRootClass()); if ($myForm->isSubmited()) { if ($myForm->isValid()) { if ($clazz instanceof core_kernel_classes_Resource) { $this->setSessionAttribute("showNodeUri", tao_helpers_Uri::encode($clazz->getUri())); } $this->setData('message', __('Class saved')); $this->setData('reload', true); } } $this->setData('formTitle', __('Edit result class')); $this->setData('myForm', $myForm->render()); $this->setView('form.tpl', 'tao'); }
/** * Used to create the form elements and bind them to the form instance * * @access protected * @return mixed */ protected function initElements() { //create file upload form box $fileElt = \tao_helpers_form_FormFactory::getElement('source', 'AsyncFile'); $fileElt->setDescription(__("Add a media file")); if (isset($_POST['import_sent_file'])) { $fileElt->addValidator(\tao_helpers_form_FormFactory::getValidator('NotEmpty')); } else { $fileElt->addValidator(\tao_helpers_form_FormFactory::getValidator('NotEmpty', array('message' => ''))); } $fileElt->addValidators(array(\tao_helpers_form_FormFactory::getValidator('FileSize', array('max' => \tao_helpers_Environment::getFileUploadLimit())))); $this->form->addElement($fileElt); $langService = \tao_models_classes_LanguageService::singleton(); $dataUsage = new \core_kernel_classes_Resource(INSTANCE_LANGUAGE_USAGE_DATA); $dataLang = \common_session_SessionManager::getSession()->getDataLanguage(); $dataLang = 'http://www.tao.lu/Ontologies/TAO.rdf#Lang' . $dataLang; if (!is_null($this->instanceUri)) { $instance = new \core_kernel_classes_Resource($this->instanceUri); $lang = $instance->getOnePropertyValue(new \core_kernel_classes_Property(MEDIA_LANGUAGE)); if ($lang instanceof \core_kernel_classes_Resource) { $dataLang = $lang->getUri(); } } $langOptions = array(); foreach ($langService->getAvailableLanguagesByUsage($dataUsage) as $lang) { $langOptions[\tao_helpers_Uri::encode($lang->getUri())] = $lang->getLabel(); } $langElt = \tao_helpers_form_FormFactory::getElement('lang', 'Combobox'); $langElt->setValue(\tao_helpers_Uri::encode($dataLang)); $langElt->setOptions($langOptions); $this->form->addElement($langElt); $this->form->createGroup('options', __('Media Options'), array($langElt)); $fileSentElt = \tao_helpers_form_FormFactory::getElement('import_sent_file', 'Hidden'); $fileSentElt->setValue(1); $this->form->addElement($fileSentElt); if (!is_null($this->instanceUri)) { $instanceElt = \tao_helpers_form_FormFactory::getElement('instanceUri', 'Hidden'); $instanceElt->setValue($this->instanceUri); $this->form->addElement($instanceElt); } }
/** * @requiresRight id READ */ public function index() { $this->defaultData(); $clazz = new core_kernel_classes_Class($this->getRequestParameter('id')); if ($this->hasRequestParameter('property_mode')) { $this->setSessionAttribute('property_mode', $this->getRequestParameter('property_mode')); } $myForm = $this->getClassForm($clazz); if ($myForm->isSubmited()) { if ($myForm->isValid()) { if ($clazz instanceof core_kernel_classes_Resource) { $this->setData("selectNode", tao_helpers_Uri::encode($clazz->getUri())); } $this->setData('message', __('%s Class saved', $clazz->getLabel())); $this->setData('reload', true); } } $this->setData('formTitle', __('Edit class %s', $clazz->getLabel())); $this->setData('myForm', $myForm->render()); $this->setView('form.tpl', 'tao'); }
/** * Constructs the Import form container * In need of a major refactoring, which will * probably involve refactoring the Form engine as well */ private function createImportFormContainer() { $sourceContainer = new tao_models_classes_import_CsvUploadForm(); $sourceForm = $sourceContainer->getForm(); foreach ($sourceForm->getElements() as $element) { $element->feed(); } if (isset($_POST['importFile'])) { $file = $_POST['importFile']; } else { $sourceForm->getElement('source')->feed(); $fileInfo = $sourceForm->getValue('source'); $file = $fileInfo['uploaded_file']; } $properties = array(tao_helpers_Uri::encode(RDFS_LABEL) => __('Label')); $rangedProperties = array(); $classUri = \tao_helpers_Uri::decode($_POST['classUri']); $class = new core_kernel_classes_Class($classUri); $classProperties = $this->getClassProperties($class); foreach ($classProperties as $property) { if (!in_array($property->getUri(), $this->getExludedProperties())) { //@todo manage the properties with range $range = $property->getRange(); $properties[tao_helpers_Uri::encode($property->getUri())] = $property->getLabel(); if ($range instanceof core_kernel_classes_Resource && $range->getUri() != RDFS_LITERAL) { $rangedProperties[tao_helpers_Uri::encode($property->getUri())] = $property->getLabel(); } } } //load the csv data from the file (uploaded in the upload form) to get the columns $csv_data = new tao_helpers_data_CsvFile($sourceForm->getValues()); $csv_data->load($file); $values = $sourceForm->getValues(); $values[tao_helpers_data_CsvFile::FIRST_ROW_COLUMN_NAMES] = !empty($values[tao_helpers_data_CsvFile::FIRST_ROW_COLUMN_NAMES]); $values['importFile'] = $file; $myFormContainer = new tao_models_classes_import_CSVMappingForm($values, array('class_properties' => $properties, 'ranged_properties' => $rangedProperties, 'csv_column' => $this->getColumnMapping($csv_data, $sourceForm->getValue(tao_helpers_data_CsvFile::FIRST_ROW_COLUMN_NAMES)), tao_helpers_data_CsvFile::FIRST_ROW_COLUMN_NAMES => $sourceForm->getValue(tao_helpers_data_CsvFile::FIRST_ROW_COLUMN_NAMES))); return $myFormContainer; }
/** * (non-PHPdoc) * @see tao_actions_form_Instance::initElements() */ protected function initElements() { parent::initElements(); $elementId = tao_helpers_Uri::encode(TAO_ITEM_MODEL_PROPERTY); $ele = $this->form->getElement($elementId); $ele->feed(); $modelUri = $ele->getEvaluatedValue(); if (empty($modelUri)) { // remove deprecated models $statusProperty = new core_kernel_classes_Property(TAO_ITEM_MODEL_STATUS_PROPERTY); $options = array(); foreach ($ele->getOptions() as $optUri => $optLabel) { $model = new core_kernel_classes_Resource(tao_helpers_Uri::decode($optUri)); $status = $model->getOnePropertyValue($statusProperty); if (!is_null($status) && $status->getUri() != TAO_ITEM_MODEL_STATUS_DEPRECATED) { $options[$optUri] = $optLabel; } } $ele->setOptions($options); if (count($options) === 1) { reset($options); $ele->setValue(key($options)); } } else { // replace radio with hidden element $this->form->removeElement($elementId); $itemModelElt = tao_helpers_form_FormFactory::getElement($elementId, 'Hidden'); $itemModelElt->setValue($modelUri); $this->form->addElement($itemModelElt); // display model label $model = new core_kernel_classes_Resource($modelUri); $itemModelLabelElt = tao_helpers_form_FormFactory::getElement('itemModelLabel', 'Label'); $itemModelLabelElt->setDescription(__('Item Model')); $itemModelLabelElt->setValue($model->getLabel()); $this->form->addElement($itemModelLabelElt); } }
/** * Initialize the form elements * * @access protected * @author Bertrand Chevrier, <*****@*****.**> * @return mixed */ protected function initElements() { $clazz = $this->getClazz(); $instance = $this->getInstance(); $guiOrderProperty = new core_kernel_classes_Property(TAO_GUIORDER_PROP); //get the list of properties to set in the form $propertyCandidates = tao_helpers_form_GenerisFormFactory::getDefaultProperties(); $classProperties = tao_helpers_form_GenerisFormFactory::getClassProperties($clazz, $this->getTopClazz()); $propertyCandidates = array_merge($propertyCandidates, $classProperties); $additionalProperties = isset($this->options['additionalProperties']) && is_array($this->options['additionalProperties']) ? $this->options['additionalProperties'] : array(); if (!empty($additionalProperties)) { $propertyCandidates = array_merge($propertyCandidates, $additionalProperties); } $excludedProperties = isset($this->options['excludedProperties']) && is_array($this->options['excludedProperties']) ? $this->options['excludedProperties'] : array(); $editedProperties = array(); foreach ($propertyCandidates as $property) { if (!isset($editedProperties[$property->getUri()]) && !in_array($property->getUri(), $excludedProperties)) { $editedProperties[$property->getUri()] = $property; } } $finalElements = array(); foreach ($editedProperties as $property) { $property->feed(); $widget = $property->getWidget(); if ($widget == null || $widget instanceof core_kernel_classes_Literal) { continue; } //map properties widgets to form elments $element = tao_helpers_form_GenerisFormFactory::elementMap($property); if (!is_null($element)) { //take instance values to populate the form if (!is_null($instance)) { $values = $instance->getPropertyValuesCollection($property); foreach ($values->getIterator() as $value) { if (!is_null($value)) { if ($value instanceof core_kernel_classes_Resource) { if ($element instanceof tao_helpers_form_elements_Readonly) { $element->setValue($value->getLabel()); } else { $element->setValue($value->getUri()); } } if ($value instanceof core_kernel_classes_Literal) { $element->setValue((string) $value); } } } } // don't show empty labels if ($element instanceof tao_helpers_form_elements_Label && strlen($element->getRawValue()) == 0) { continue; } //set file element validator: if ($element instanceof tao_helpers_form_elements_AsyncFile) { } if ($property->getUri() == RDFS_LABEL) { // Label will not be a TAO Property. However, it should // be always first. array_splice($finalElements, 0, 0, array(array($element, 1))); } else { if (count($guiOrderPropertyValues = $property->getPropertyValues($guiOrderProperty))) { // get position of this property if it has one. $position = intval($guiOrderPropertyValues[0]); // insert the element at the right place. $i = 0; while ($i < count($finalElements) && ($position >= $finalElements[$i][1] && $finalElements[$i][1] !== null)) { $i++; } array_splice($finalElements, $i, 0, array(array($element, $position))); } else { // Unordered properties will go at the end of the form. $finalElements[] = array($element, null); } } } } // Add elements related to class properties to the form. foreach ($finalElements as $element) { $this->form->addElement($element[0]); } //add an hidden elt for the class uri $classUriElt = tao_helpers_form_FormFactory::getElement('classUri', 'Hidden'); $classUriElt->setValue(tao_helpers_Uri::encode($clazz->getUri())); $this->form->addElement($classUriElt); if (!is_null($instance)) { //add an hidden elt for the instance Uri $instanceUriElt = tao_helpers_form_FormFactory::getElement('uri', 'Hidden'); $instanceUriElt->setValue(tao_helpers_Uri::encode($instance->getUri())); $this->form->addElement($instanceUriElt); $hiddenId = tao_helpers_form_FormFactory::getElement('id', 'Hidden'); $hiddenId->setValue($instance->getUri()); $this->form->addElement($hiddenId); } }
/** * Short description of method toTree * * @access public * @author Jerome Bogaerts, <*****@*****.**> * @param Class clazz * @param array options * @return array */ public function toTree(core_kernel_classes_Class $clazz, $options) { $returnValue = array(); $users = $this->getAllUsers(array('order' => PROPERTY_USER_LOGIN)); foreach ($users as $user) { $login = (string) $user->getOnePropertyValue(new core_kernel_classes_Property(PROPERTY_USER_LOGIN)); $returnValue[] = array('data' => tao_helpers_Display::textCutter($login, 16), 'attributes' => array('id' => tao_helpers_Uri::encode($user->getUri()), 'class' => 'node-instance')); } return (array) $returnValue; }
/** * generis tree representation of a resource node * * @param core_kernel_classes_Resource $resource * @return array */ public function buildResourceNode(core_kernel_classes_Resource $resource, core_kernel_classes_Class $class) { $label = $resource->getLabel(); $label = empty($label) ? __('no label') : $label; return array('data' => _dh($label), 'type' => 'instance', '_data' => array('uri' => $resource->getUri(), 'classUri' => $class->getUri()), 'attributes' => array('id' => tao_helpers_Uri::encode($resource->getUri()), 'class' => 'node-instance', 'data-uri' => $resource->getUri())); }
/** * The method creates the array representation of the condition * of a rule node to fill the jsTree * (could be inferenceRule or transitionRule) * * @access public * @author Joel Bout, <*****@*****.**> * @param Resource rule * @return array */ public function conditionNode(core_kernel_classes_Resource $rule) { $returnValue = array(); $nodeData = array(); if (!is_null($rule)) { $data = ''; $if = $rule->getOnePropertyValue(new core_kernel_classes_Property(PROPERTY_RULE_IF)); if (!is_null($if)) { $data = $if->getLabel(); } else { $data = __("(still undefined)"); } $nodeData = array('data' => $data, 'attributes' => array('id' => tao_helpers_Uri::encode($rule->getUri()), 'class' => 'node-rule')); $returnValue = self::addNodePrefix($nodeData, 'if'); } return (array) $returnValue; }
/** * Short description of method addValue * * @access public * @author Bertrand Chevrier, <*****@*****.**> * @param string value * @return mixed */ public function addValue($value) { $this->values[] = tao_helpers_Uri::encode($value); }