diff options
Diffstat (limited to 'core/src/OC/msg.js')
-rw-r--r-- | core/src/OC/msg.js | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/core/src/OC/msg.js b/core/src/OC/msg.js new file mode 100644 index 00000000000..655631a03ff --- /dev/null +++ b/core/src/OC/msg.js @@ -0,0 +1,99 @@ +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import $ from 'jquery' + +/** + * 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 + */ +export default { + /** + * Displayes a "Saving..." message in the given message placeholder + * + * @param {object} selector Placeholder to display the message in + */ + startSaving(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(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(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(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(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(selector, message) { + $(selector).text(message) + .addClass('error') + .removeClass('success') + .show() + }, +} |