/** * (non-PHPdoc) * @see tao_helpers_form_FormContainer::initElements() */ public function initElements() { $fileName = ''; $instances = array(); if (isset($this->data['instance'])) { $instance = $this->data['instance']; if ($instance instanceof core_kernel_classes_Resource) { $instances[$instance->getUri()] = $instance->getLabel(); } } elseif (isset($this->data['class'])) { $class = $this->data['class']; if ($class instanceof core_kernel_classes_Class) { foreach ($class->getInstances() as $instance) { $instances[$instance->getUri()] = $instance->getLabel(); } } } else { throw new common_Exception('No class nor instance specified for export'); } $instances = tao_helpers_Uri::encodeArray($instances, tao_helpers_Uri::ENCODE_ARRAY_KEYS); $descElt = tao_helpers_form_FormFactory::getElement('desc', 'Label'); $descElt->setValue(__('Enables you to export a published delivery')); $this->form->addElement($descElt); $instanceElt = tao_helpers_form_FormFactory::getElement('exportInstance', 'Radiobox'); $instanceElt->setDescription(__('Items')); $instanceElt->setAttribute('checkAll', true); $instanceElt->setOptions($instances); $instanceElt->setValue(current(array_keys($instances))); $this->form->addElement($instanceElt); $this->form->createGroup('options', __('Export Options'), array('desc', 'filename', 'exportInstance')); }
/** * 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'); }
/** * Show the form to edit an instance, show also a preview of the media */ public function editInstance() { $clazz = $this->getCurrentClass(); $instance = $this->getCurrentInstance(); $myFormContainer = new editInstanceForm($clazz, $instance); $myForm = $myFormContainer->getForm(); 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 Instance')); $this->setData('myForm', $myForm->render()); $uri = $this->hasRequestParameter('id') ? $this->getRequestParameter('id') : $this->getRequestParameter('uri'); try { $mediaSource = new MediaSource(array()); $fileInfo = $mediaSource->getFileInfo($uri); $mimeType = $fileInfo['mime']; $xml = in_array($mimeType, array('application/xml', 'text/xml')); $url = \tao_helpers_Uri::url('getFile', 'MediaManager', 'taoMediaManager', array('uri' => $uri)); $this->setData('xml', $xml); $this->setData('fileurl', $url); $this->setData('mimeType', $mimeType); } catch (\tao_models_classes_FileNotFoundException $e) { $this->setData('error', __('No file found for this media')); } $this->setView('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); } }
public function getData() { if (!tao_helpers_Request::isAjax()) { throw new common_exception_IsAjaxAction(__FUNCTION__); } if ($this->hasRequestParameter('classUri')) { $classUri = tao_helpers_Uri::decode($this->getRequestParameter('classUri')); $class = new core_kernel_classes_Class($classUri); $hideNode = true; } elseif ($this->hasRequestParameter('rootNode')) { $class = new core_kernel_classes_Class($this->getRequestParameter('rootNode')); $hideNode = false; } else { throw new common_Exception('Missing node information for ' . __FUNCTION__); } $openNodes = array($class->getUri()); if ($this->hasRequestParameter('openNodes') && is_array($this->getRequestParameter('openNodes'))) { $openNodes = array_merge($openNodes, $this->getRequestParameter('openNodes')); } $limit = $this->hasRequestParameter('limit') ? $this->getRequestParameter('limit') : self::DEFAULT_LIMIT; $offset = $this->hasRequestParameter('offset') ? $this->getRequestParameter('offset') : 0; $showInst = $this->hasRequestParameter('hideInstances') ? !$this->getRequestParameter('hideInstances') : true; $factory = new tao_models_classes_GenerisTreeFactory(); $array = $factory->buildTree($class, $showInst, $openNodes, $limit, $offset); if ($hideNode) { $array = isset($array['children']) ? $array['children'] : array(); } echo json_encode($array); }
/** * Returns a json encoded array describign a directory * * @throws common_exception_MissingParameter * @return string */ public function files() { if (!$this->hasRequestParameter('uri')) { throw new common_exception_MissingParameter('uri', __METHOD__); } $itemUri = $this->getRequestParameter('uri'); $item = new core_kernel_classes_Resource($itemUri); if (!$this->hasRequestParameter('lang')) { throw new common_exception_MissingParameter('lang', __METHOD__); } $itemLang = $this->getRequestParameter('lang'); //build filters $filters = array(); if ($this->hasRequestParameter('filters')) { $filterParameter = $this->getRequestParameter('filters'); if (!empty($filterParameter)) { if (preg_match('/\\/\\*/', $filterParameter)) { common_Logger::w('Stars mime type are not yet supported, filter "' . $filterParameter . '" will fail'); } $filters = array_map('trim', explode(',', $filterParameter)); } } $depth = $this->hasRequestParameter('depth') ? $this->getRequestParameter('depth') : 1; $resolver = new ItemMediaResolver($item, $itemLang); $asset = $resolver->resolve($this->getRequestParameter('path')); $data = $asset->getMediaSource()->getDirectory($asset->getMediaIdentifier(), $filters, $depth); foreach ($data['children'] as &$child) { if (isset($child['parent'])) { $child['url'] = \tao_helpers_Uri::url('files', 'ItemContent', 'taoItems', array('uri' => $itemUri, 'lang' => $itemLang, '1' => $child['parent'])); unset($child['parent']); } } $this->returnJson($data); }
/** * 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()))); }
/** * 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); }
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'); }
/** * @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)); }
/** * Short description of method feed * * @access public * @author Joel Bout, <*****@*****.**> * @return mixed */ public function feed() { $expression = "/^" . preg_quote($this->name, "/") . "(.)*[0-9]+\$/"; $this->setValues(array()); foreach ($_POST as $key => $value) { if (preg_match($expression, $key)) { $this->addValue(tao_helpers_Uri::decode($value)); } } }
public function initDeliveryExecution() { $compiledDelivery = new core_kernel_classes_Resource(tao_helpers_Uri::decode($this->getRequestParameter('uri'))); $user = common_session_SessionManager::getSession()->getUser(); if ($this->service->isDeliveryExecutionAllowed($compiledDelivery, $user)) { $deliveryExecution = $this->executionService->initDeliveryExecution($compiledDelivery, $user->getIdentifier()); } else { common_Logger::i('Testtaker ' . $user->getIdentifier() . ' not authorised to initialise delivery ' . $compiledDelivery->getUri()); return $this->returnError(__('You are no longer allowed to take the test %s', $compiledDelivery->getLabel()), true); } $this->redirect(_url('runDeliveryExecution', null, null, array('deliveryExecution' => $deliveryExecution->getIdentifier()))); }
/** * Short description of method getValues * * @access public * @author Bertrand Chevrier, <*****@*****.**> * @param string groupName * @return array */ public function getValues($groupName = '') { $returnValue = array(); foreach ($this->elements as $element) { if (empty($groupName) || !isset($this->groups[$groupName]) || in_array($element->getName(), $this->groups[$groupName]['elements'])) { $returnValue[tao_helpers_Uri::decode($element->getName())] = $element->getEvaluatedValue(); } } unset($returnValue['uri']); unset($returnValue['classUri']); return (array) $returnValue; }
/** * 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); }
/** * Initialize the form elements * * @access protected * @author Bertrand Chevrier, <*****@*****.**> * @return mixed */ protected function initElements() { parent::initElements(); $elements = $this->form->getElements(); $this->form->setElements(array()); $currentLangElt = tao_helpers_form_FormFactory::getElement('current_lang', 'Textbox'); $currentLangElt->setDescription(__('Current language')); $currentLangElt->setAttributes(array('readonly' => 'true')); $currentLangElt->setValue(\common_session_SessionManager::getSession()->getDataLanguage()); //API lang /data lang $this->form->addElement($currentLangElt); $dataLangElement = tao_helpers_form_FormFactory::getElement('translate_lang', 'Combobox'); $dataLangElement->setDescription(__('Translate to')); $dataLangElement->setOptions(tao_helpers_I18n::getAvailableLangsByUsage(new core_kernel_classes_Resource(INSTANCE_LANGUAGE_USAGE_DATA))); $dataLangElement->setEmptyOption(__('Select a language')); $dataLangElement->addValidator(tao_helpers_form_FormFactory::getValidator('NotEmpty')); $this->form->addElement($dataLangElement); $this->form->createGroup('translation_info', __('Translation parameters'), array('current_lang', 'translate_lang')); $dataGroup = array(); foreach ($elements as $element) { if ($element instanceof tao_helpers_form_elements_Hidden || $element->getName() == 'uri' || $element->getName() == 'classUri') { $this->form->addElement($element); } else { $propertyUri = tao_helpers_Uri::decode($element->getName()); $property = new core_kernel_classes_Property($propertyUri); //translate only language dependent properties or Labels //supported widget are: Textbox, TextArea, HtmlArea //@todo support other widgets if ($property->isLgDependent() && ($element instanceof tao_helpers_form_elements_Textbox || $element instanceof tao_helpers_form_elements_TextArea || $element instanceof tao_helpers_form_elements_HtmlArea) || $propertyUri == RDFS_LABEL) { $translatedElt = clone $element; $viewElt = tao_helpers_form_FormFactory::getElement('view_' . $element->getName(), 'Label'); $viewElt->setDescription($element->getDescription()); $viewElt->setValue($element->getValue()); $viewElt->setAttribute('no-format', true); if ($element instanceof tao_helpers_form_elements_HtmlArea) { $viewElt->setAttribute('htmlentities', false); } $this->form->addElement($viewElt); $dataGroup[] = $viewElt->getName(); $translatedElt->setDescription(' '); $translatedElt->setValue(''); if ($propertyUri == RDFS_LABEL) { $translatedElt->setForcedValid(); } $this->form->addElement($translatedElt); $dataGroup[] = $translatedElt->getName(); } } } $this->form->createGroup('translation_form', __('Translate'), $dataGroup); }
/** * Return the currently viewing resource * * @return \core_kernel_classes_Resource */ private function getCurrentResource() { if ($this->hasRequestParameter('uri')) { $uri = $this->getRequestParameter('uri'); if (preg_match('/^i[0-9]+$/', $uri)) { $uri = LOCAL_NAMESPACE . '#' . $uri; } elseif (substr($uri, 0, 7) == 'http_2_') { $uri = \tao_helpers_Uri::decode($uri); } } else { $uri = TAO_OBJECT_CLASS; } return new \core_kernel_classes_Resource($uri); }
/** * render the main layout */ public function index() { $uri = tao_helpers_Uri::decode($this->getRequestParameter('uri')); $links = array(); $class = new core_kernel_classes_Class(CLASS_LTI_CONSUMER); foreach ($class->getInstances() as $consumer) { $links[] = array('key' => $consumer->getUniquePropertyValue(new core_kernel_classes_Property(PROPERTY_OAUTH_KEY)), 'secret' => $consumer->getUniquePropertyValue(new core_kernel_classes_Property(PROPERTY_OAUTH_SECRET)), 'url' => $this->service->getLaunchUrl(array('delivery' => $uri))); } $this->setData('links', $links); $this->setData('launchUrl', $this->service->getLaunchUrl(array('delivery' => $uri))); $this->setData('consumers', $class->getInstances()); $this->setData('delivery', $uri); $this->setView('linkManagement.tpl', 'taoLti'); }
/** * @requiresRight uri READ */ public function index() { $item = new core_kernel_classes_Resource(tao_helpers_Uri::decode($this->getRequestParameter('uri'))); $itemService = taoItems_models_classes_ItemsService::singleton(); if ($itemService->hasItemContent($item) && $itemService->isItemModelDefined($item)) { //this is this url that will contains the preview //@see taoItems_actions_LegacyPreviewApi $previewUrl = $this->getPreviewUrl($item); $this->setData('previewUrl', $previewUrl); $this->setData('client_config_url', $this->getClientConfigUrl()); $this->setData('resultServer', $this->getResultServer()); } $this->setView('ItemPreview/index.tpl', 'taoItems'); }
/** * * @param core_kernel_classes_Resource $test * @param array $itemUris * @return boolean */ public function save(core_kernel_classes_Resource $test, array $content) { $serializer = $this->getServiceLocator()->get(FileReferenceSerializer::SERVICE_ID); $serial = $test->getOnePropertyValue($this->getProperty(TEST_TESTCONTENT_PROP)); if (!is_null($serial)) { $directory = $serializer->unserializeDirectory($serial); } else { // null so create one $fss = $this->getServiceLocator()->get(FileSystemService::SERVICE_ID); $base = $fss->getDirectory($this->getOption(self::OPTION_FILESYSTEM)); $directory = $base->getDirectory(\tao_helpers_Uri::getUniqueId(\common_Utils::getNewUri())); $test->editPropertyValues($this->getProperty(TEST_TESTCONTENT_PROP), $serializer->serialize($directory)); } return $directory->getFile('content.json')->put(json_encode($content)); }
/** * @param \core_kernel_classes_Resource $instance * @param \tao_helpers_form_Form $form * @return \common_report_Report */ public function edit($instance, $form) { \helpers_TimeOutHelper::setTimeOutLimit(\helpers_TimeOutHelper::LONG); try { $fileInfo = $form->getValue('source'); $xmlFile = $this->getSharedStimulusFile($fileInfo['uploaded_file']); // throws an exception of invalid SharedStimulusImporter::isValidSharedStimulus($xmlFile); $embeddedFile = $this->embedAssets($xmlFile); $report = $this->replaceSharedStimulus($instance, \tao_helpers_Uri::decode($form->getValue('lang')), $embeddedFile); } catch (\Exception $e) { $report = \common_report_Report::createFailure($e->getMessage()); } \helpers_TimeOutHelper::reset(); return $report; }
/** * 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 testMapping() { $csv_column = array('login', 'password', 'title', 'last-name', 'firstname', 'gender', 'mail', 'token', 'abelabel'); $properties = tao_helpers_Uri::encodeArray(array(RDFS_LABEL => 'Label', PROPERTY_USER_FIRSTNAME => 'First Name', PROPERTY_USER_LASTNAME => 'Last Name', PROPERTY_USER_LOGIN => 'Login', PROPERTY_USER_PASSWORD => 'Password', PROPERTY_USER_MAIL => 'Mail', PROPERTY_USER_UILG => 'Interface Language', PasswordRecoveryService::PROPERTY_PASSWORD_RECOVERY_TOKEN => 'Password recovery token'), tao_helpers_Uri::ENCODE_ARRAY_KEYS); $data = array(); $options = array('class_properties' => $properties, 'ranged_properties' => array(), 'csv_column' => $csv_column, tao_helpers_data_CsvFile::FIRST_ROW_COLUMN_NAMES => true); $formContainer = new tao_models_classes_import_CSVMappingForm($data, $options); $form = $formContainer->getForm(); $this->assertEquals('csv_select', $form->getElement('http_2_www_0_w3_0_org_1_2000_1_01_1_rdf-schema_3_label')->getEvaluatedValue()); $this->assertEquals('4_O', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_userFirstName')->getEvaluatedValue()); $this->assertEquals('3_O', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_userLastName')->getEvaluatedValue()); $this->assertEquals('0_O', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_login')->getEvaluatedValue()); $this->assertEquals('1_O', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_password')->getEvaluatedValue()); $this->assertEquals('6_O', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_userMail')->getEvaluatedValue()); $this->assertEquals('csv_select', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_userUILg')->getEvaluatedValue()); $this->assertEquals('csv_select', $form->getElement('http_2_www_0_tao_0_lu_1_Ontologies_1_generis_0_rdf_3_passwordRecoveryToken')->getEvaluatedValue()); }
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 feed * * @access public * @author Joel Bout, <*****@*****.**> * @return mixed */ public function feed() { $expression = "/^" . preg_quote($this->name, "/") . "(.)*[0-9]+\$/"; $foundIndexes = array(); foreach ($_POST as $key => $value) { if (preg_match($expression, $key)) { $foundIndexes[] = $key; } } if (count($foundIndexes) > 0 && $_POST[$foundIndexes[0]] !== self::NO_TREEVIEW_INTERACTION_IDENTIFIER || count($foundIndexes) === 0) { $this->setValues(array()); } elseif (count($foundIndexes) > 0 && $_POST[$foundIndexes[0]] === self::NO_TREEVIEW_INTERACTION_IDENTIFIER) { array_shift($foundIndexes); } foreach ($foundIndexes as $index) { $this->addValue(tao_helpers_Uri::decode($_POST[$index])); } }
/** * 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')); }
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); } }