aboutsummaryrefslogtreecommitdiffstats
path: root/core/js/js.js
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2019-02-01 08:20:03 +0100
committerGitHub <noreply@github.com>2019-02-01 08:20:03 +0100
commitdc3b44c02dc316215f10eb1e92d1b09328465470 (patch)
treea44609185e85074414a60dfe62a0936d75adb600 /core/js/js.js
parent2124ff65b673698dcb305b835b3ba4bbd438c074 (diff)
parent3d1a3b66442698601597d4f777d47d5f0ea744c2 (diff)
downloadnextcloud-server-dc3b44c02dc316215f10eb1e92d1b09328465470.tar.gz
nextcloud-server-dc3b44c02dc316215f10eb1e92d1b09328465470.zip
Merge pull request #13956 from nextcloud/refactor/oc-plugins-msg-notifications-II
Move OC.Plugins, OC.msg and OC.Notification to the server bundle
Diffstat (limited to 'core/js/js.js')
-rw-r--r--core/js/js.js392
1 files changed, 0 insertions, 392 deletions
diff --git a/core/js/js.js b/core/js/js.js
index ec2f53d332f..114f51bd535 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -871,96 +871,6 @@ Object.assign(window.OC, {
});
/**
- * Current user attributes
- *
- * @typedef {Object} OC.CurrentUser
- *
- * @property {String} uid user id
- * @property {String} displayName display name
- */
-
-/**
- * @namespace OC.Plugins
- */
-OC.Plugins = {
- /**
- * @type Array.<OC.Plugin>
- */
- _plugins: {},
-
- /**
- * Register plugin
- *
- * @param {String} targetName app name / class name to hook into
- * @param {OC.Plugin} plugin
- */
- register: function(targetName, plugin) {
- var plugins = this._plugins[targetName];
- if (!plugins) {
- plugins = this._plugins[targetName] = [];
- }
- plugins.push(plugin);
- },
-
- /**
- * Returns all plugin registered to the given target
- * name / app name / class name.
- *
- * @param {String} targetName app name / class name to hook into
- * @return {Array.<OC.Plugin>} array of plugins
- */
- getPlugins: function(targetName) {
- return this._plugins[targetName] || [];
- },
-
- /**
- * Call attach() on all plugins registered to the given target name.
- *
- * @param {String} targetName app name / class name
- * @param {Object} object to be extended
- * @param {Object} [options] options
- */
- attach: function(targetName, targetObject, options) {
- var plugins = this.getPlugins(targetName);
- for (var i = 0; i < plugins.length; i++) {
- if (plugins[i].attach) {
- plugins[i].attach(targetObject, options);
- }
- }
- },
-
- /**
- * Call detach() on all plugins registered to the given target name.
- *
- * @param {String} targetName app name / class name
- * @param {Object} object to be extended
- * @param {Object} [options] options
- */
- detach: function(targetName, targetObject, options) {
- var plugins = this.getPlugins(targetName);
- for (var i = 0; i < plugins.length; i++) {
- if (plugins[i].detach) {
- plugins[i].detach(targetObject, options);
- }
- }
- },
-
- /**
- * Plugin
- *
- * @todo make this a real class in the future
- * @typedef {Object} OC.Plugin
- *
- * @property {String} name plugin name
- * @property {Function} attach function that will be called when the
- * plugin is attached
- * @property {Function} [detach] function that will be called when the
- * plugin is detached
- */
-
-};
-
-/**
* @namespace OC.search
*/
OC.search.customResults = {};
@@ -973,308 +883,6 @@ OC.addStyle.loaded=[];
OC.addScript.loaded=[];
/**
- * A little class to manage a status field for a "saving" process.
- * It can be used to display a starting message (e.g. "Saving...") and then
- * replace it with a green success message or a red error message.
- *
- * @namespace OC.msg
- */
-OC.msg = {
- /**
- * Displayes a "Saving..." message in the given message placeholder
- *
- * @param {Object} selector Placeholder to display the message in
- */
- startSaving: function(selector) {
- this.startAction(selector, t('core', 'Saving...'));
- },
-
- /**
- * Displayes a custom message in the given message placeholder
- *
- * @param {Object} selector Placeholder to display the message in
- * @param {string} message Plain text message to display (no HTML allowed)
- */
- startAction: function(selector, message) {
- $(selector).text(message)
- .removeClass('success')
- .removeClass('error')
- .stop(true, true)
- .show();
- },
-
- /**
- * Displayes an success/error message in the given selector
- *
- * @param {Object} selector Placeholder to display the message in
- * @param {Object} response Response of the server
- * @param {Object} response.data Data of the servers response
- * @param {string} response.data.message Plain text message to display (no HTML allowed)
- * @param {string} response.status is being used to decide whether the message
- * is displayed as an error/success
- */
- finishedSaving: function(selector, response) {
- this.finishedAction(selector, response);
- },
-
- /**
- * Displayes an success/error message in the given selector
- *
- * @param {Object} selector Placeholder to display the message in
- * @param {Object} response Response of the server
- * @param {Object} response.data Data of the servers response
- * @param {string} response.data.message Plain text message to display (no HTML allowed)
- * @param {string} response.status is being used to decide whether the message
- * is displayed as an error/success
- */
- finishedAction: function(selector, response) {
- if (response.status === "success") {
- this.finishedSuccess(selector, response.data.message);
- } else {
- this.finishedError(selector, response.data.message);
- }
- },
-
- /**
- * Displayes an success message in the given selector
- *
- * @param {Object} selector Placeholder to display the message in
- * @param {string} message Plain text success message to display (no HTML allowed)
- */
- finishedSuccess: function(selector, message) {
- $(selector).text(message)
- .addClass('success')
- .removeClass('error')
- .stop(true, true)
- .delay(3000)
- .fadeOut(900)
- .show();
- },
-
- /**
- * Displayes an error message in the given selector
- *
- * @param {Object} selector Placeholder to display the message in
- * @param {string} message Plain text error message to display (no HTML allowed)
- */
- finishedError: function(selector, message) {
- $(selector).text(message)
- .addClass('error')
- .removeClass('success')
- .show();
- }
-};
-
-/**
- * @todo Write documentation
- * @namespace
- */
-OC.Notification={
- queuedNotifications: [],
- getDefaultNotificationFunction: null,
-
- /**
- * @type Array<int>
- * @description array of notification timers
- */
- notificationTimers: [],
-
- /**
- * @param callback
- * @todo Write documentation
- */
- setDefault: function(callback) {
- OC.Notification.getDefaultNotificationFunction = callback;
- },
-
- /**
- * Hides a notification.
- *
- * If a row is given, only hide that one.
- * If no row is given, hide all notifications.
- *
- * @param {jQuery} [$row] notification row
- * @param {Function} [callback] callback
- */
- hide: function($row, callback) {
- var self = this;
- var $notification = $('#notification');
-
- if (_.isFunction($row)) {
- // first arg is the callback
- callback = $row;
- $row = undefined;
- }
-
- if (!$row) {
- console.warn('Missing argument $row in OC.Notification.hide() call, caller needs to be adjusted to only dismiss its own notification');
- // assume that the row to be hidden is the first one
- $row = $notification.find('.row:first');
- }
-
- if ($row && $notification.find('.row').length > 1) {
- // remove the row directly
- $row.remove();
- if (callback) {
- callback.call();
- }
- return;
- }
-
- _.defer(function() {
- // fade out is supposed to only fade when there is a single row
- // however, some code might call hide() and show() directly after,
- // which results in more than one element
- // in this case, simply delete that one element that was supposed to
- // fade out
- //
- // FIXME: remove once all callers are adjusted to only hide their own notifications
- if ($notification.find('.row').length > 1) {
- $row.remove();
- return;
- }
-
- // else, fade out whatever was present
- $notification.fadeOut('400', function(){
- if (self.isHidden()) {
- if (self.getDefaultNotificationFunction) {
- self.getDefaultNotificationFunction.call();
- }
- }
- if (callback) {
- callback.call();
- }
- $notification.empty();
- });
- });
- },
-
- /**
- * Shows a notification as HTML without being sanitized before.
- * If you pass unsanitized user input this may lead to a XSS vulnerability.
- * Consider using show() instead of showHTML()
- *
- * @param {string} html Message to display
- * @param {Object} [options] options
- * @param {string} [options.type] notification type
- * @param {int} [options.timeout=0] timeout value, defaults to 0 (permanent)
- * @return {jQuery} jQuery element for notification row
- */
- showHtml: function(html, options) {
- options = options || {};
- _.defaults(options, {
- timeout: 0
- });
-
- var self = this;
- var $notification = $('#notification');
- if (this.isHidden()) {
- $notification.fadeIn().css('display','inline-block');
- }
- var $row = $('<div class="row"></div>');
- if (options.type) {
- $row.addClass('type-' + options.type);
- }
- if (options.type === 'error') {
- // add a close button
- var $closeButton = $('<a class="action close icon-close" href="#"></a>');
- $closeButton.attr('alt', t('core', 'Dismiss'));
- $row.append($closeButton);
- $closeButton.one('click', function() {
- self.hide($row);
- return false;
- });
- $row.addClass('closeable');
- }
-
- $row.prepend(html);
- $notification.append($row);
-
- if(options.timeout > 0) {
- // register timeout to vanish notification
- this.notificationTimers.push(setTimeout(function() {
- self.hide($row);
- }, (options.timeout * 1000)));
- }
-
- return $row;
- },
-
- /**
- * Shows a sanitized notification
- *
- * @param {string} text Message to display
- * @param {Object} [options] options
- * @param {string} [options.type] notification type
- * @param {int} [options.timeout=0] timeout value, defaults to 0 (permanent)
- * @return {jQuery} jQuery element for notification row
- */
- show: function(text, options) {
- return this.showHtml($('<div/>').text(text).html(), options);
- },
-
- /**
- * Updates (replaces) a sanitized notification.
- *
- * @param {string} text Message to display
- * @return {jQuery} JQuery element for notificaiton row
- */
- showUpdate: function(text) {
- var $notification = $('#notification');
- // sanitise
- var $html = $('<div/>').text(text).html();
-
- // new notification
- if (text && $notification.find('.row').length == 0) {
- return this.showHtml($html);
- }
-
- var $row = $('<div class="row"></div>').prepend($html);
-
- // just update html in notification
- $notification.html($row);
-
- return $row;
- },
-
- /**
- * Shows a notification that disappears after x seconds, default is
- * 7 seconds
- *
- * @param {string} text Message to show
- * @param {array} [options] options array
- * @param {int} [options.timeout=7] timeout in seconds, if this is 0 it will show the message permanently
- * @param {boolean} [options.isHTML=false] an indicator for HTML notifications (true) or text (false)
- * @param {string} [options.type] notification type
- */
- showTemporary: function(text, options) {
- var defaults = {
- isHTML: false,
- timeout: 7
- };
- options = options || {};
- // merge defaults with passed in options
- _.defaults(options, defaults);
-
- var $row;
- if(options.isHTML) {
- $row = this.showHtml(text, options);
- } else {
- $row = this.show(text, options);
- }
- return $row;
- },
-
- /**
- * Returns whether a notification is hidden.
- * @return {boolean}
- */
- isHidden: function() {
- return !$("#notification").find('.row').length;
- }
-};
-
-/**
* Initializes core
*/
function initCore() {