/**
  * 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);
     }
 }
Esempio n. 6
0
 /**
  * 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));
 }
Esempio n. 11
0
 /**
  * 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));
 }
Esempio n. 13
0
 /**
  * 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'));
 }
Esempio n. 16
0
    /**
     * 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'));
    }
Esempio n. 17
0
 /**
  * @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);
     }
 }
Esempio n. 19
0
 /**
  * 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');
 }
Esempio n. 24
0
 /**
  * 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;
 }
Esempio n. 25
0
 /**
  * (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);
     }
 }
Esempio n. 26
0
 /**
  * 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;
 }
Esempio n. 30
0
 /**
  * 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);
 }