- 1 :
import { EMPTY_STRING } from '../constants/constants.js';
- 2 :
import { MelObject } from '../mel_object.js';
- 3 :
- 4 :
export { BnumMessage, eMessageType };
- 5 :
- 6 :
/**
- 7 :
* @class
- 8 :
* @classdesc Contient des fonctions utiles pour afficher des messages sur le bnum
- 9 :
* @static
- 10 :
*/
- 11 :
class BnumMessage {
- 12 :
/**
- 13 :
* @private
- 14 :
*/
- 15 :
constructor() {
- 16 :
throw 'Cannot be instantiate';
- 17 :
}
- 18 :
- 19 :
/**
- 20 :
* @type {rcube_webmail}
- 21 :
* @readonly
- 22 :
*/
- 23 :
static get Rcmail() {
- 24 :
return MelObject.Empty().rcmail();
- 25 :
}
- 26 :
- 27 :
/**
- 28 :
* Affiche un message sur le bnum
- 29 :
* @param {string} message Message à afficher
- 30 :
* @param {eMessageType} type Couleur ou icône lié au message
- 31 :
* @returns {string}
- 32 :
* @static
- 33 :
*/
- 34 :
static DisplayMessage(message, type = eMessageType.Information) {
- 35 :
return this.Rcmail.display_message(message, type);
- 36 :
}
- 37 :
- 38 :
/**
- 39 :
* Affiche un message de chargement sur le Bnum
- 40 :
* @returns {string} Id du message
- 41 :
*/
- 42 :
static DisplayLoadingMessage() {
- 43 :
return this.DisplayMessage('loading', 'loading');
- 44 :
}
- 45 :
- 46 :
/**
- 47 :
* Supprime les messages du bnum
- 48 :
* @returns {typeof BnumMessage} Chaînage
- 49 :
* @static
- 50 :
*/
- 51 :
static ClearMessages() {
- 52 :
this.Rcmail.clear_messages();
- 53 :
return this;
- 54 :
}
- 55 :
- 56 :
/**
- 57 :
* Supprime un message sur le bnum à partir de son id.
- 58 :
* @param {string} id Id du message
- 59 :
* @returns {typeof BnumMessage} Chaînage
- 60 :
* @static
- 61 :
*/
- 62 :
static ClearMessage(id) {
- 63 :
this.Rcmail.hide_message(id);
- 64 :
return this;
- 65 :
}
- 66 :
- 67 :
/**
- 68 :
* Passe le bnum en mode "occupé" et affiche un message de chargement
- 69 :
* @static
- 70 :
*/
- 71 :
static SetBusyLoading() {
- 72 :
if (!this.busy) {
- 73 :
/**
- 74 :
* @type {?string}
- 75 :
*/
- 76 :
this.busy = this.Rcmail.set_busy(true, 'loading');
- 77 :
}
- 78 :
}
- 79 :
- 80 :
/**
- 81 :
* Passe le bnum en mode "libre" et supprime le message de chargement
- 82 :
* @static
- 83 :
*/
- 84 :
static StopBusyLoading() {
- 85 :
if (this.busy) {
- 86 :
this.Rcmail.set_busy(false, 'loading', this.busy);
- 87 :
this.busy = null;
- 88 :
}
- 89 :
}
- 90 :
}
- 91 :
- 92 :
/**
- 93 :
* Type de message
- 94 :
* @enum {string}
- 95 :
* @see {@link BnumMessage.DisplayMessage}
- 96 :
*/
- 97 :
const eMessageType = {
- 98 :
Information: EMPTY_STRING,
- 99 :
Confirmation: 'confirmation',
- 100 :
Error: 'error',
- 101 :
Warning: 'warning',
- 102 :
};