diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2019-01-31 18:01:45 +0100 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2019-02-01 07:55:16 +0100 |
commit | 4fcadd27b05f0b2c2d1e56a15235670ade12e888 (patch) | |
tree | 290aa489dc9e381d68542e4de95439f0a9777d92 /core/js/js.js | |
parent | 2124ff65b673698dcb305b835b3ba4bbd438c074 (diff) | |
download | nextcloud-server-4fcadd27b05f0b2c2d1e56a15235670ade12e888.tar.gz nextcloud-server-4fcadd27b05f0b2c2d1e56a15235670ade12e888.zip |
Move OC.Notification to the server bundle
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'core/js/js.js')
-rw-r--r-- | core/js/js.js | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/core/js/js.js b/core/js/js.js index ec2f53d332f..0dce992290a 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1066,215 +1066,6 @@ OC.msg = { }; /** - * @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() { |