/**
  * (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);
     }
 }
Example #5
0
 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())));
 }
Example #8
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);
 }
 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())));
 }
Example #15
0
 /**
  * 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;
 }
Example #16
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);
 }
Example #17
0
 /**
  * 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));
 }
Example #24
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');
 }
Example #26
0
 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'));
 }
Example #28
0
 /**
  * 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]));
     }
 }
Example #29
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'));
    }
 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);
     }
 }