Merge pull request #19293 from owncloud/individual-it-move_initTemplate
[jenkins] do not load unnecessary code in case of webdav
This commit is contained in:
commit
68bf4440d3
66
lib/base.php
66
lib/base.php
|
@ -376,63 +376,6 @@ class OC {
|
||||||
$tmpl->printPage();
|
$tmpl->printPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function initTemplateEngine() {
|
|
||||||
// Add the stuff we need always
|
|
||||||
// following logic will import all vendor libraries that are
|
|
||||||
// specified in core/js/core.json
|
|
||||||
$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
|
|
||||||
if($fileContent !== false) {
|
|
||||||
$coreDependencies = json_decode($fileContent, true);
|
|
||||||
foreach($coreDependencies['vendor'] as $vendorLibrary) {
|
|
||||||
// remove trailing ".js" as addVendorScript will append it
|
|
||||||
OC_Util::addVendorScript(
|
|
||||||
substr($vendorLibrary, 0, strlen($vendorLibrary) - 3));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new \Exception('Cannot read core/js/core.json');
|
|
||||||
}
|
|
||||||
|
|
||||||
OC_Util::addScript("placeholders");
|
|
||||||
OC_Util::addScript("compatibility");
|
|
||||||
OC_Util::addScript("jquery.ocdialog");
|
|
||||||
OC_Util::addScript("oc-dialogs");
|
|
||||||
OC_Util::addScript("js");
|
|
||||||
OC_Util::addScript("l10n");
|
|
||||||
OC_Util::addTranslations("core");
|
|
||||||
OC_Util::addScript("octemplate");
|
|
||||||
OC_Util::addScript("eventsource");
|
|
||||||
OC_Util::addScript("config");
|
|
||||||
OC_Util::addScript('search', 'search');
|
|
||||||
OC_Util::addScript("oc-requesttoken");
|
|
||||||
OC_Util::addScript("apps");
|
|
||||||
OC_Util::addScript('mimetype');
|
|
||||||
OC_Util::addScript('mimetypelist');
|
|
||||||
OC_Util::addVendorScript('snapjs/dist/latest/snap');
|
|
||||||
OC_Util::addVendorScript('core', 'backbone/backbone');
|
|
||||||
OC_Util::addScript('oc-backbone');
|
|
||||||
|
|
||||||
// avatars
|
|
||||||
if (\OC::$server->getSystemConfig()->getValue('enable_avatars', true) === true) {
|
|
||||||
\OC_Util::addScript('placeholder');
|
|
||||||
\OC_Util::addVendorScript('blueimp-md5/js/md5');
|
|
||||||
\OC_Util::addScript('jquery.avatar');
|
|
||||||
\OC_Util::addScript('avatar');
|
|
||||||
}
|
|
||||||
|
|
||||||
OC_Util::addStyle("styles");
|
|
||||||
OC_Util::addStyle("header");
|
|
||||||
OC_Util::addStyle("mobile");
|
|
||||||
OC_Util::addStyle("icons");
|
|
||||||
OC_Util::addStyle("fonts");
|
|
||||||
OC_Util::addStyle("apps");
|
|
||||||
OC_Util::addStyle("fixes");
|
|
||||||
OC_Util::addStyle("multiselect");
|
|
||||||
OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui');
|
|
||||||
OC_Util::addStyle('jquery-ui-fixes');
|
|
||||||
OC_Util::addStyle("tooltip");
|
|
||||||
OC_Util::addStyle("jquery.ocdialog");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function initSession() {
|
public static function initSession() {
|
||||||
// prevents javascript from accessing php session cookies
|
// prevents javascript from accessing php session cookies
|
||||||
ini_set('session.cookie_httponly', true);
|
ini_set('session.cookie_httponly', true);
|
||||||
|
@ -611,7 +554,6 @@ class OC {
|
||||||
self::initSession();
|
self::initSession();
|
||||||
}
|
}
|
||||||
\OC::$server->getEventLogger()->end('init_session');
|
\OC::$server->getEventLogger()->end('init_session');
|
||||||
self::initTemplateEngine();
|
|
||||||
self::checkConfig();
|
self::checkConfig();
|
||||||
self::checkInstalled();
|
self::checkInstalled();
|
||||||
|
|
||||||
|
@ -673,7 +615,7 @@ class OC {
|
||||||
self::registerFilesystemHooks();
|
self::registerFilesystemHooks();
|
||||||
if ($systemConfig->getValue('enable_previews', true)) {
|
if ($systemConfig->getValue('enable_previews', true)) {
|
||||||
self::registerPreviewHooks();
|
self::registerPreviewHooks();
|
||||||
}
|
}
|
||||||
self::registerShareHooks();
|
self::registerShareHooks();
|
||||||
self::registerLogRotate();
|
self::registerLogRotate();
|
||||||
self::registerLocalAddressBook();
|
self::registerLocalAddressBook();
|
||||||
|
@ -686,12 +628,6 @@ class OC {
|
||||||
$lockProvider = \OC::$server->getLockingProvider();
|
$lockProvider = \OC::$server->getLockingProvider();
|
||||||
register_shutdown_function(array($lockProvider, 'releaseAll'));
|
register_shutdown_function(array($lockProvider, 'releaseAll'));
|
||||||
|
|
||||||
if ($systemConfig->getValue('installed', false) && !self::checkUpgrade(false)) {
|
|
||||||
if (\OC::$server->getConfig()->getAppValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') {
|
|
||||||
OC_Util::addScript('backgroundjobs');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check whether the sample configuration has been copied
|
// Check whether the sample configuration has been copied
|
||||||
if($systemConfig->getValue('copied_sample_config', false)) {
|
if($systemConfig->getValue('copied_sample_config', false)) {
|
||||||
$l = \OC::$server->getL10N('lib');
|
$l = \OC::$server->getL10N('lib');
|
||||||
|
|
|
@ -1098,4 +1098,5 @@ class Server extends SimpleContainer implements IServerContainer {
|
||||||
public function getUserStoragesService() {
|
public function getUserStoragesService() {
|
||||||
return \OC_Mount_Config::$app->getContainer()->query('OCA\\Files_External\\Service\\UserStoragesService');
|
return \OC_Mount_Config::$app->getContainer()->query('OCA\\Files_External\\Service\\UserStoragesService');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,27 +37,40 @@ require_once __DIR__.'/template/functions.php';
|
||||||
* This class provides the templates for ownCloud.
|
* This class provides the templates for ownCloud.
|
||||||
*/
|
*/
|
||||||
class OC_Template extends \OC\Template\Base {
|
class OC_Template extends \OC\Template\Base {
|
||||||
private $renderas; // Create a full page?
|
|
||||||
|
/** @var string */
|
||||||
|
private $renderAs; // Create a full page?
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
private $path; // The path to the template
|
private $path; // The path to the template
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
private $headers = array(); //custom headers
|
private $headers = array(); //custom headers
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
protected $app; // app id
|
protected $app; // app id
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
* @param string $app app providing the template
|
* @param string $app app providing the template
|
||||||
* @param string $name of the template file (without suffix)
|
* @param string $name of the template file (without suffix)
|
||||||
* @param string $renderas = ""; produce a full page
|
* @param string $renderAs = ""; produce a full page
|
||||||
* @param bool $registerCall = true
|
* @param bool $registerCall = true
|
||||||
* @return OC_Template object
|
* @return OC_Template object
|
||||||
*
|
*
|
||||||
* This function creates an OC_Template object.
|
* This function creates an OC_Template object.
|
||||||
*
|
*
|
||||||
* If $renderas is set, OC_Template will try to produce a full page in the
|
* If $renderAs is set, OC_Template will try to produce a full page in the
|
||||||
* according layout. For now, renderas can be set to "guest", "user" or
|
* according layout. For now, $renderAs can be set to "guest", "user" or
|
||||||
* "admin".
|
* "admin".
|
||||||
*/
|
*/
|
||||||
public function __construct( $app, $name, $renderas = "", $registerCall = true ) {
|
|
||||||
|
protected static $initTemplateEngineFirstRun = true;
|
||||||
|
|
||||||
|
public function __construct( $app, $name, $renderAs = "", $registerCall = true ) {
|
||||||
// Read the selected theme from the config file
|
// Read the selected theme from the config file
|
||||||
|
self::initTemplateEngine();
|
||||||
|
|
||||||
$theme = OC_Util::getTheme();
|
$theme = OC_Util::getTheme();
|
||||||
|
|
||||||
$requesttoken = (OC::$server->getSession() and $registerCall) ? OC_Util::callRegister() : '';
|
$requesttoken = (OC::$server->getSession() and $registerCall) ? OC_Util::callRegister() : '';
|
||||||
|
@ -69,13 +82,85 @@ class OC_Template extends \OC\Template\Base {
|
||||||
list($path, $template) = $this->findTemplate($theme, $app, $name);
|
list($path, $template) = $this->findTemplate($theme, $app, $name);
|
||||||
|
|
||||||
// Set the private data
|
// Set the private data
|
||||||
$this->renderas = $renderas;
|
$this->renderAs = $renderAs;
|
||||||
$this->path = $path;
|
$this->path = $path;
|
||||||
$this->app = $app;
|
$this->app = $app;
|
||||||
|
|
||||||
parent::__construct($template, $requesttoken, $l10n, $themeDefaults);
|
parent::__construct($template, $requesttoken, $l10n, $themeDefaults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function initTemplateEngine() {
|
||||||
|
if (self::$initTemplateEngineFirstRun){
|
||||||
|
|
||||||
|
//apps that started before the template initialization can load their own scripts/styles
|
||||||
|
//so to make sure this scripts/styles here are loaded first we use OC_Util::addScript() with $prepend=true
|
||||||
|
//meaning the last script/style in this list will be loaded first
|
||||||
|
if (\OC::$server->getSystemConfig ()->getValue ( 'installed', false ) && ! \OCP\Util::needUpgrade ()) {
|
||||||
|
if (\OC::$server->getConfig ()->getAppValue ( 'core', 'backgroundjobs_mode', 'ajax' ) == 'ajax') {
|
||||||
|
OC_Util::addScript ( 'backgroundjobs', null, true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
OC_Util::addStyle("tooltip",null,true);
|
||||||
|
OC_Util::addStyle('jquery-ui-fixes',null,true);
|
||||||
|
OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true);
|
||||||
|
OC_Util::addStyle("multiselect",null,true);
|
||||||
|
OC_Util::addStyle("fixes",null,true);
|
||||||
|
OC_Util::addStyle("apps",null,true);
|
||||||
|
OC_Util::addStyle("fonts",null,true);
|
||||||
|
OC_Util::addStyle("icons",null,true);
|
||||||
|
OC_Util::addStyle("mobile",null,true);
|
||||||
|
OC_Util::addStyle("header",null,true);
|
||||||
|
OC_Util::addStyle("styles",null,true);
|
||||||
|
|
||||||
|
// avatars
|
||||||
|
if (\OC::$server->getSystemConfig()->getValue('enable_avatars', true) === true) {
|
||||||
|
\OC_Util::addScript('avatar', null, true);
|
||||||
|
\OC_Util::addScript('jquery.avatar', null, true);
|
||||||
|
\OC_Util::addScript('placeholder', null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
OC_Util::addScript('oc-backbone', null, true);
|
||||||
|
OC_Util::addVendorScript('core', 'backbone/backbone', true);
|
||||||
|
OC_Util::addVendorScript('snapjs/dist/latest/snap', null, true);
|
||||||
|
OC_Util::addScript('mimetypelist', null, true);
|
||||||
|
OC_Util::addScript('mimetype', null, true);
|
||||||
|
OC_Util::addScript("apps", null, true);
|
||||||
|
OC_Util::addScript("oc-requesttoken", null, true);
|
||||||
|
OC_Util::addScript('search', 'search', true);
|
||||||
|
OC_Util::addScript("config", null, true);
|
||||||
|
OC_Util::addScript("eventsource", null, true);
|
||||||
|
OC_Util::addScript("octemplate", null, true);
|
||||||
|
OC_Util::addTranslations("core", null, true);
|
||||||
|
OC_Util::addScript("l10n", null, true);
|
||||||
|
OC_Util::addScript("js", null, true);
|
||||||
|
OC_Util::addScript("oc-dialogs", null, true);
|
||||||
|
OC_Util::addScript("jquery.ocdialog", null, true);
|
||||||
|
OC_Util::addStyle("jquery.ocdialog");
|
||||||
|
OC_Util::addScript("compatibility", null, true);
|
||||||
|
OC_Util::addScript("placeholders", null, true);
|
||||||
|
|
||||||
|
// Add the stuff we need always
|
||||||
|
// following logic will import all vendor libraries that are
|
||||||
|
// specified in core/js/core.json
|
||||||
|
$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
|
||||||
|
if($fileContent !== false) {
|
||||||
|
$coreDependencies = json_decode($fileContent, true);
|
||||||
|
foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
|
||||||
|
// remove trailing ".js" as addVendorScript will append it
|
||||||
|
OC_Util::addVendorScript(
|
||||||
|
substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new \Exception('Cannot read core/js/core.json');
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$initTemplateEngineFirstRun = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* find the template with the given name
|
* find the template with the given name
|
||||||
* @param string $name of the template file (without suffix)
|
* @param string $name of the template file (without suffix)
|
||||||
|
@ -118,14 +203,14 @@ class OC_Template extends \OC\Template\Base {
|
||||||
* Process the template
|
* Process the template
|
||||||
* @return boolean|string
|
* @return boolean|string
|
||||||
*
|
*
|
||||||
* This function process the template. If $this->renderas is set, it
|
* This function process the template. If $this->renderAs is set, it
|
||||||
* will produce a full page.
|
* will produce a full page.
|
||||||
*/
|
*/
|
||||||
public function fetchPage() {
|
public function fetchPage() {
|
||||||
$data = parent::fetchPage();
|
$data = parent::fetchPage();
|
||||||
|
|
||||||
if( $this->renderas ) {
|
if( $this->renderAs ) {
|
||||||
$page = new OC_TemplateLayout($this->renderas, $this->app);
|
$page = new OC_TemplateLayout($this->renderAs, $this->app);
|
||||||
|
|
||||||
// Add custom headers
|
// Add custom headers
|
||||||
$headers = '';
|
$headers = '';
|
||||||
|
@ -141,18 +226,20 @@ class OC_Template extends \OC\Template\Base {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$page->assign('headers', $headers, false);
|
$page->assign('headers', $headers);
|
||||||
|
|
||||||
$page->assign('content', $data, false );
|
$page->assign('content', $data);
|
||||||
return $page->fetchPage();
|
return $page->fetchPage();
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Include template
|
* Include template
|
||||||
|
*
|
||||||
|
* @param string $file
|
||||||
|
* @param array|null $additionalParams
|
||||||
* @return string returns content of included template
|
* @return string returns content of included template
|
||||||
*
|
*
|
||||||
* Includes another template. use <?php echo $this->inc('template'); ?> to
|
* Includes another template. use <?php echo $this->inc('template'); ?> to
|
||||||
|
@ -222,7 +309,7 @@ class OC_Template extends \OC\Template\Base {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* print error page using Exception details
|
* print error page using Exception details
|
||||||
* @param Exception|Error $exception
|
* @param Exception $exception
|
||||||
*/
|
*/
|
||||||
public static function printExceptionErrorPage($exception) {
|
public static function printExceptionErrorPage($exception) {
|
||||||
$request = \OC::$server->getRequest();
|
$request = \OC::$server->getRequest();
|
||||||
|
|
|
@ -439,16 +439,23 @@ class OC_Util {
|
||||||
*
|
*
|
||||||
* @param string $application application id
|
* @param string $application application id
|
||||||
* @param string|null $file filename
|
* @param string|null $file filename
|
||||||
|
* @param bool $prepend prepend the Script to the beginning of the list
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function addScript($application, $file = null) {
|
public static function addScript($application, $file = null, $prepend = false) {
|
||||||
$path = OC_Util::generatePath($application, 'js', $file);
|
$path = OC_Util::generatePath($application, 'js', $file);
|
||||||
|
//TODO eliminate double code
|
||||||
if (!in_array($path, self::$scripts)) {
|
if (!in_array($path, self::$scripts)) {
|
||||||
// core js files need separate handling
|
// core js files need separate handling
|
||||||
if ($application !== 'core' && $file !== null) {
|
if ($application !== 'core' && $file !== null) {
|
||||||
self::addTranslations($application);
|
self::addTranslations($application);
|
||||||
}
|
}
|
||||||
self::$scripts[] = $path;
|
if ($prepend===true) {
|
||||||
|
array_unshift(self::$scripts, $path);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self::$scripts[] = $path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -457,12 +464,18 @@ class OC_Util {
|
||||||
*
|
*
|
||||||
* @param string $application application id
|
* @param string $application application id
|
||||||
* @param string|null $file filename
|
* @param string|null $file filename
|
||||||
|
* @param bool $prepend prepend the Script to the beginning of the list
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function addVendorScript($application, $file = null) {
|
public static function addVendorScript($application, $file = null, $prepend = false) {
|
||||||
$path = OC_Util::generatePath($application, 'vendor', $file);
|
$path = OC_Util::generatePath($application, 'vendor', $file);
|
||||||
if (!in_array($path, self::$scripts)) {
|
//TODO eliminate double code
|
||||||
self::$scripts[] = $path;
|
if (! in_array ( $path, self::$scripts )) {
|
||||||
|
if ($prepend === true) {
|
||||||
|
array_unshift ( self::$scripts, $path );
|
||||||
|
} else {
|
||||||
|
self::$scripts [] = $path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,8 +484,9 @@ class OC_Util {
|
||||||
*
|
*
|
||||||
* @param string $application application id
|
* @param string $application application id
|
||||||
* @param string $languageCode language code, defaults to the current language
|
* @param string $languageCode language code, defaults to the current language
|
||||||
|
* @param bool $prepend prepend the Script to the beginning of the list
|
||||||
*/
|
*/
|
||||||
public static function addTranslations($application, $languageCode = null) {
|
public static function addTranslations($application, $languageCode = null, $prepend = false) {
|
||||||
if (is_null($languageCode)) {
|
if (is_null($languageCode)) {
|
||||||
$languageCode = \OC_L10N::findLanguage($application);
|
$languageCode = \OC_L10N::findLanguage($application);
|
||||||
}
|
}
|
||||||
|
@ -481,8 +495,13 @@ class OC_Util {
|
||||||
} else {
|
} else {
|
||||||
$path = "l10n/$languageCode";
|
$path = "l10n/$languageCode";
|
||||||
}
|
}
|
||||||
|
//TODO eliminate double code
|
||||||
if (!in_array($path, self::$scripts)) {
|
if (!in_array($path, self::$scripts)) {
|
||||||
self::$scripts[] = $path;
|
if ($prepend === true) {
|
||||||
|
array_unshift ( self::$scripts, $path );
|
||||||
|
} else {
|
||||||
|
self::$scripts [] = $path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -491,12 +510,18 @@ class OC_Util {
|
||||||
*
|
*
|
||||||
* @param string $application application id
|
* @param string $application application id
|
||||||
* @param string|null $file filename
|
* @param string|null $file filename
|
||||||
|
* @param bool $prepend prepend the Style to the beginning of the list
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function addStyle($application, $file = null) {
|
public static function addStyle($application, $file = null, $prepend = false) {
|
||||||
$path = OC_Util::generatePath($application, 'css', $file);
|
$path = OC_Util::generatePath($application, 'css', $file);
|
||||||
|
//TODO eliminate double code
|
||||||
if (!in_array($path, self::$styles)) {
|
if (!in_array($path, self::$styles)) {
|
||||||
self::$styles[] = $path;
|
if ($prepend === true) {
|
||||||
|
array_unshift ( self::$styles, $path );
|
||||||
|
} else {
|
||||||
|
self::$styles[] = $path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -505,12 +530,18 @@ class OC_Util {
|
||||||
*
|
*
|
||||||
* @param string $application application id
|
* @param string $application application id
|
||||||
* @param string|null $file filename
|
* @param string|null $file filename
|
||||||
|
* @param bool $prepend prepend the Style to the beginning of the list
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function addVendorStyle($application, $file = null) {
|
public static function addVendorStyle($application, $file = null, $prepend = false) {
|
||||||
$path = OC_Util::generatePath($application, 'vendor', $file);
|
$path = OC_Util::generatePath($application, 'vendor', $file);
|
||||||
|
//TODO eliminate double code
|
||||||
if (!in_array($path, self::$styles)) {
|
if (!in_array($path, self::$styles)) {
|
||||||
self::$styles[] = $path;
|
if ($prepend === true) {
|
||||||
|
array_unshift ( self::$styles, $path );
|
||||||
|
} else {
|
||||||
|
self::$styles[] = $path;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue