mirror of
https://github.com/nextcloud/server.git
synced 2026-04-26 00:27:49 -04:00
Move OC.appSettings to the bundle and deprecate it (#15533)
Move OC.appSettings to the bundle and deprecate it
This commit is contained in:
commit
b5fed59812
7 changed files with 182 additions and 104 deletions
32
core/js/dist/login.js
vendored
32
core/js/dist/login.js
vendored
File diff suppressed because one or more lines are too long
2
core/js/dist/login.js.map
vendored
2
core/js/dist/login.js.map
vendored
File diff suppressed because one or more lines are too long
98
core/js/dist/main.js
vendored
98
core/js/dist/main.js
vendored
File diff suppressed because one or more lines are too long
2
core/js/dist/main.js.map
vendored
2
core/js/dist/main.js.map
vendored
File diff suppressed because one or more lines are too long
|
|
@ -4,63 +4,6 @@
|
|||
Object.assign(window.OC, {
|
||||
/* jshint camelcase: false */
|
||||
|
||||
/**
|
||||
* Opens a popup with the setting for an app.
|
||||
* @param {string} appid The ID of the app e.g. 'calendar', 'contacts' or 'files'.
|
||||
* @param {boolean|string} loadJS If true 'js/settings.js' is loaded. If it's a string
|
||||
* it will attempt to load a script by that name in the 'js' directory.
|
||||
* @param {boolean} [cache] If true the javascript file won't be forced refreshed. Defaults to true.
|
||||
* @param {string} [scriptName] The name of the PHP file to load. Defaults to 'settings.php' in
|
||||
* the root of the app directory hierarchy.
|
||||
*/
|
||||
appSettings:function(args) {
|
||||
if(typeof args === 'undefined' || typeof args.appid === 'undefined') {
|
||||
throw { name: 'MissingParameter', message: 'The parameter appid is missing' };
|
||||
}
|
||||
var props = {scriptName:'settings.php', cache:true};
|
||||
$.extend(props, args);
|
||||
var settings = $('#appsettings');
|
||||
if(settings.length === 0) {
|
||||
throw { name: 'MissingDOMElement', message: 'There has be be an element with id "appsettings" for the popup to show.' };
|
||||
}
|
||||
var popup = $('#appsettings_popup');
|
||||
if(popup.length === 0) {
|
||||
$('body').prepend('<div class="popup hidden" id="appsettings_popup"></div>');
|
||||
popup = $('#appsettings_popup');
|
||||
popup.addClass(settings.hasClass('topright') ? 'topright' : 'bottomleft');
|
||||
}
|
||||
if(popup.is(':visible')) {
|
||||
popup.hide().remove();
|
||||
} else {
|
||||
var arrowclass = settings.hasClass('topright') ? 'up' : 'left';
|
||||
var jqxhr = $.get(OC.filePath(props.appid, '', props.scriptName), function(data) {
|
||||
popup.html(data).ready(function() {
|
||||
popup.prepend('<span class="arrow '+arrowclass+'"></span><h2>'+t('core', 'Settings')+'</h2><a class="close"></a>').show();
|
||||
popup.find('.close').bind('click', function() {
|
||||
popup.remove();
|
||||
});
|
||||
if(typeof props.loadJS !== 'undefined') {
|
||||
var scriptname;
|
||||
if(props.loadJS === true) {
|
||||
scriptname = 'settings.js';
|
||||
} else if(typeof props.loadJS === 'string') {
|
||||
scriptname = props.loadJS;
|
||||
} else {
|
||||
throw { name: 'InvalidParameter', message: 'The "loadJS" parameter must be either boolean or a string.' };
|
||||
}
|
||||
if(props.cache) {
|
||||
$.ajaxSetup({cache: true});
|
||||
}
|
||||
$.getScript(OC.filePath(props.appid, 'js', scriptname))
|
||||
.fail(function(jqxhr, settings, e) {
|
||||
throw e;
|
||||
});
|
||||
}
|
||||
}).show();
|
||||
}, 'html');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Warn users that the connection to the server was lost temporarily
|
||||
*
|
||||
|
|
|
|||
93
core/src/OC/appsettings.js
Normal file
93
core/src/OC/appsettings.js
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @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/>.
|
||||
*/
|
||||
|
||||
import $ from 'jquery'
|
||||
import {filePath} from './routing'
|
||||
|
||||
/**
|
||||
* Opens a popup with the setting for an app.
|
||||
* @param {string} appid The ID of the app e.g. 'calendar', 'contacts' or 'files'.
|
||||
* @param {boolean|string} loadJS If true 'js/settings.js' is loaded. If it's a string
|
||||
* it will attempt to load a script by that name in the 'js' directory.
|
||||
* @param {boolean} [cache] If true the javascript file won't be forced refreshed. Defaults to true.
|
||||
* @param {string} [scriptName] The name of the PHP file to load. Defaults to 'settings.php' in
|
||||
* the root of the app directory hierarchy.
|
||||
*
|
||||
* @deprecated 17.0.0 this method is unused and will be removed with Nextcloud 18
|
||||
*/
|
||||
export const appSettings = args => {
|
||||
console.warn('OC.appSettings is deprecated and will be removed with Nextcloud 18')
|
||||
|
||||
if (typeof args === 'undefined' || typeof args.appid === 'undefined') {
|
||||
throw {
|
||||
name: 'MissingParameter',
|
||||
message: 'The parameter appid is missing'
|
||||
}
|
||||
}
|
||||
var props = {scriptName: 'settings.php', cache: true}
|
||||
$.extend(props, args)
|
||||
var settings = $('#appsettings')
|
||||
if (settings.length === 0) {
|
||||
throw {
|
||||
name: 'MissingDOMElement',
|
||||
message: 'There has be be an element with id "appsettings" for the popup to show.'
|
||||
}
|
||||
}
|
||||
var popup = $('#appsettings_popup')
|
||||
if (popup.length === 0) {
|
||||
$('body').prepend('<div class="popup hidden" id="appsettings_popup"></div>')
|
||||
popup = $('#appsettings_popup')
|
||||
popup.addClass(settings.hasClass('topright') ? 'topright' : 'bottomleft')
|
||||
}
|
||||
if (popup.is(':visible')) {
|
||||
popup.hide().remove()
|
||||
} else {
|
||||
const arrowclass = settings.hasClass('topright') ? 'up' : 'left'
|
||||
$.get(filePath(props.appid, '', props.scriptName), function (data) {
|
||||
popup.html(data).ready(function () {
|
||||
popup.prepend('<span class="arrow ' + arrowclass + '"></span><h2>' + t('core', 'Settings') + '</h2><a class="close"></a>').show()
|
||||
popup.find('.close').bind('click', function () {
|
||||
popup.remove()
|
||||
})
|
||||
if (typeof props.loadJS !== 'undefined') {
|
||||
var scriptname
|
||||
if (props.loadJS === true) {
|
||||
scriptname = 'settings.js'
|
||||
} else if (typeof props.loadJS === 'string') {
|
||||
scriptname = props.loadJS
|
||||
} else {
|
||||
throw {
|
||||
name: 'InvalidParameter',
|
||||
message: 'The "loadJS" parameter must be either boolean or a string.'
|
||||
}
|
||||
}
|
||||
if (props.cache) {
|
||||
$.ajaxSetup({cache: true})
|
||||
}
|
||||
$.getScript(filePath(props.appid, 'js', scriptname))
|
||||
.fail(function (jqxhr, settings, e) {
|
||||
throw e
|
||||
})
|
||||
}
|
||||
}).show()
|
||||
}, 'html')
|
||||
}
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
import {addScript, addStyle} from './legacy-loader'
|
||||
import Apps from './apps'
|
||||
import {AppConfig, appConfig} from './appconfig'
|
||||
import {appSettings} from './appsettings'
|
||||
import appswebroots from './appswebroots'
|
||||
import Backbone from './backbone'
|
||||
import {
|
||||
|
|
@ -129,6 +130,7 @@ export default {
|
|||
Apps,
|
||||
AppConfig,
|
||||
appConfig,
|
||||
appSettings,
|
||||
appswebroots,
|
||||
Backbone,
|
||||
ContactsMenu,
|
||||
|
|
|
|||
Loading…
Reference in a new issue