Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion core/js/dist/main.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion core/js/dist/main.js.map

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions core/js/js.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ function escapeHTML(s) {
}

/** @namespace OCP */
var OCP = {},
var OCP = Object.assign({}, window.OCP),
/**
* @namespace OC
*/
Expand Down Expand Up @@ -367,6 +367,7 @@ var OCP = {},
* @param {string} app the app id to which the script belongs
* @param {string} script the filename of the script
* @param ready event handler to be called when the script is loaded
* @deprecated 16.0.0 Use OCP.Loader.loadScript
*/
addScript:function(app,script,ready){
var deferred, path=OC.filePath(app,'js',script+'.js');
Expand All @@ -387,6 +388,7 @@ var OCP = {},
* Loads a CSS file
* @param {string} app the app id to which the css style belongs
* @param {string} style the filename of the css file
* @deprecated 16.0.0 Use OCP.Loader.loadStylesheet
*/
addStyle:function(app,style){
var path=OC.filePath(app,'css',style+'.css');
Expand Down Expand Up @@ -1352,7 +1354,9 @@ function initCore() {

// css variables fallback for IE
if (msie > 0 || trident > 0) {
cssVars();
cssVars({
watch: true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

poor browser will die of exhaustion ⚰️

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pff so be it ;) No need to keep everybody stuck with crappy old stuff just ebcause of IE ;)

});
}

$(window).on('unload.main', function() {
Expand Down
11 changes: 11 additions & 0 deletions core/src/OCP/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
*
*/
import loader from './loader'

/** @namespace OCP */
const OCP = {
Loader: loader,
};

window['OCP'] = Object.assign({}, window.OCP, OCP)
80 changes: 80 additions & 0 deletions core/src/OCP/loader.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/

let loadedScripts = {};
let loadedStylesheets = {};
/**
* @namespace OCP
* @class Loader
*/
export default {


/**
* Load a script asynchronously
*
* @param {string} app
* @param {string} file
* @returns {Promise}
*/
loadScript: function(app, file) {
const key = app + file;
if (loadedScripts.hasOwnProperty(key)) {
return Promise.resolve();
}
loadedScripts[key] = true;
return new Promise(function (resolve, reject) {
var scriptPath = OC.filePath(app, 'js', file);
var script = document.createElement('script');
script.src = scriptPath;
script.setAttribute('nonce', btoa(OC.requestToken));
script.onload = () => resolve();
script.onerror = () => reject(`Failed to load script from ${scriptPath}`);
document.head.appendChild(script);
});
},

/**
* Load a stylesheet file asynchronously
*
* @param {string} app
* @param {string} file
* @returns {Promise}
*/
loadStylesheet: function(app, file) {
const key = app + file;
if (loadedStylesheets.hasOwnProperty(key)) {
return Promise.resolve();
}
loadedStylesheets[key] = true;
return new Promise(function (resolve, reject) {
var stylePath = OC.filePath(app, 'css', file);
var link = document.createElement('link');
link.href = stylePath;
link.type = 'text/css';
link.rel = 'stylesheet';
link.onload = () => resolve();
link.onerror = () => reject(`Failed to load stylesheet from ${stylePath}`);
document.head.appendChild(link);
});
},
}
2 changes: 2 additions & 0 deletions core/src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@
import '@babel/polyfill'

import './globals'

import './OCP/index'