Ejemplo n.º 1
0
 /**
  * Test:
  *  - {@link ClientLibRegistry::getMap}
  *  - {@link ClientLibRegistry::register}
  */
 public function testRegister()
 {
     $libId = 'OAT/test';
     // verify test lib does not exist
     $map = ClientLibRegistry::getRegistry()->getMap();
     $this->assertFalse(empty($map));
     $this->assertFalse(isset($map[$libId]));
     ClientLibRegistry::getRegistry()->register($libId, Template::js('fakePath/views/js/', 'tao'));
     $map = ClientLibRegistry::getRegistry()->getMap();
     $this->assertInternalType('array', $map);
     $this->assertTrue(isset($map[$libId]));
     $this->assertEquals('js/fakePath/views/js/', $map[$libId]['path']);
     return $libId;
 }
Ejemplo n.º 2
0
 /**
  * Removes unnescessary API references
  *
  * @param Resource $item
  */
 protected function replaceDeprecatedApis($xhtml)
 {
     $dom = new DOMDocument('1.0', TAO_DEFAULT_ENCODING);
     if (!$dom->loadHTML($xhtml)) {
         throw new taoItems_models_classes_ItemModelException("An error occured while loading the XML content of the rendered item.");
     }
     $found = 0;
     $deprecatedApis = array('taoApi', 'wfApi');
     foreach ($deprecatedApis as $pattern) {
         $found += taoItems_helpers_Xhtml::removeScriptElements($dom, '/' . $pattern . '/i');
     }
     if ($found > 0) {
         common_Logger::i('found ' . $found . ' references to deprecated APIs, replacing with legacy API');
         $taoItemsExt = common_ext_ExtensionsManager::singleton()->getExtensionById('taoItems');
         $legacyApiSrc = Template::js('legacyApi/taoLegacyApi.min.js', 'taoItems');
         taoItems_helpers_Xhtml::addScriptElement($dom, $legacyApiSrc);
     }
     return $dom->saveHTML();
 }
Ejemplo n.º 3
0
 protected function getUserScripts()
 {
     $userScripts = array();
     $userScriptConfig = \common_ext_ExtensionsManager::singleton()->getExtensionById('taoQtiItem')->getConfig('userScripts');
     if (is_array($userScriptConfig)) {
         foreach ($userScriptConfig as $data) {
             $userScripts[] = Template::js($data['src'], $data['extension']);
         }
     }
     return $userScripts;
 }
Ejemplo n.º 4
0
 /**
  * Build script element for AMD loader
  *
  * @return string
  */
 public static function getAmdLoader()
 {
     if (\common_session_SessionManager::isAnonymous()) {
         $amdLoader = array('src' => Template::js('lib/require.js', 'tao'), 'data-main' => TAOBASE_WWW . 'js/login', 'data-config' => get_data('client_config_url'));
     } else {
         if (\tao_helpers_Mode::is('production')) {
             $amdLoader = array('src' => Template::js('main.min.js', 'tao'), 'data-config' => get_data('client_config_url'));
         } else {
             $amdLoader = array('src' => Template::js('lib/require.js', 'tao'), 'data-config' => get_data('client_config_url'), 'data-main' => TAOBASE_WWW . 'js/main');
         }
     }
     $amdScript = '<script id="amd-loader" ';
     foreach ($amdLoader as $attr => $value) {
         $amdScript .= $attr . '="' . $value . '" ';
     }
     return trim($amdScript) . '></script>';
 }
Ejemplo n.º 5
0
 /**
  * Create the AMD loader for the current context.
  * It will load login's modules for anonymous session.
  * Loads the bundle mode in production and the dynamic mode in debug.
  *
  * @param string $bundle the bundle URL
  * @param string $controller the controller module id
  * @param array  $params additional parameters
  * @return string the script tag
  */
 public static function getAmdLoader($bundle = null, $controller = null, $params = null)
 {
     $bundleMode = \tao_helpers_Mode::is('production');
     $configUrl = get_data('client_config_url');
     $requireJsUrl = Template::js('lib/require.js', 'tao');
     $bootstrapUrl = Template::js('loader/bootstrap', 'tao');
     $loader = new AmdLoader($configUrl, $requireJsUrl, $bootstrapUrl);
     if (\common_session_SessionManager::isAnonymous()) {
         $controller = 'controller/login';
         $bundle = Template::js('loader/login.min.js', 'tao');
     }
     if ($bundleMode) {
         return $loader->getBundleLoader($bundle, $controller, $params);
     }
     return $loader->getDynamicLoader($controller, $params);
 }