package FreeBusy~FreeBusyClassLoader()

Gère, sauvegarder et récupère les données de status de participants entre deux dates.

Extends

Members

package _listener :MelEventManager

Overrides:

package rc_data :Object

Overrides:

Methods

package _call(user, interval, sd, ed) → {string}

Récupère la bonne url pour récupérer le status
Parameters:
Name Type Description
user string Email de l'utilisateur
interval number Interval en minute
sd external:moment Date de début
ed external:moment Date de fin
Returns:
string

package _is_date_ok(key) → {boolean}

Vérifie si la date en mémoire est antérieur à la dernière date de chargement de l'agenda
Parameters:
Name Type Description
key string Clé de la données
Returns:
boolean

package _load(users, interval, start) → {Object:.<string:, module:EventView/Parts/Guests/FreeBusy.Slots:>}

Charge les données en mémoire pour des utilisateurs, une date et un interval donnée.
Parameters:
Name Type Description
users Array:.<string:> Adresse email des utilisateurs à charger
interval number Interval en minutes
start external:moment Date de départ
Returns:
Object:.<string:, module:EventView/Parts/Guests/FreeBusy.Slots:> - string => Email de l'utilisateur

async, generator, package _load_free_busy(users, interval, sd, ed) → {AsyncGenerator:.<module:EventView/Parts/Guests/FreeBusy.Slots:>}

Charge les statuts des utilisateurs
Parameters:
Name Type Description
users Array:.<string:> Utilisateurs que l'on souhaite récupérer le statut
interval number Interval en minute
sd external:moment Date de début
ed external:moment Date de fin
Returns:
AsyncGenerator:.<module:EventView/Parts/Guests/FreeBusy.Slots:>

package _save(slots, users, interval, start)

Sauvegarde les données en mémoire pour un interval, des utilisateurs et une date donnée
Parameters:
Name Type Description
slots Array:.<module:EventView/Parts/Guests/FreeBusy.Slots:> Données à sauvegarder
users Array:.<string:> Emails des utilisateurs que l'on souhaite sauvegarder
interval number Interval en minute
start external:moment Date de départ

package _save_date(key)

Sauvegarde la date actuelle pour une clé donnée
Parameters:
Name Type Description
key string Clé de la donnée à sauvegardée

protected add_event_listener(key, callback, param2)

Ajoute un écouteur qui pourra être appelé plus tard.
Parameters:
Name Type Description
key string Clé qui permettra d'appeller l'écouteur
callback function Fonction qui sera appelée
param2 Object Si on doit récupérer rcmail sur frame principale ou non
Properties
Name Type Attributes Description
callback_key string <nullable>
Clé du callback
condition boolean Si on doit éxécuter ou non le listener
Overrides:

async, protected change_frame(frame, param1) → {Promise:.<void:>}

Change de page
Parameters:
Name Type Description
frame string Nom de la page
param1 Object
Properties
Name Type Attributes Description
action string <nullable>
Action de la page
params Object:.<string:, string:> Paramètres additionnels de la page
update boolean {@deprecated}
force_update boolean {@deprecated}
Returns:
Promise:.<void:>
Overrides:
Deprecated:
  • Utilisez plutôt switch_frame

clear_in_memory()

Supprime les données dans le stockages local lié aux status
Récupère un cookie
Parameters:
Name Type Description
key string Indentifiant de la donnée
Overrides:
Supprime un cookie
Parameters:
Name Type Description
key string Indentifiant du cookie à supprimer
Returns:
module:Cookies.Cookie - Cookie supprimer
Overrides:
Insert un cookie
Parameters:
Name Type Default Description
key string Clé qui permet d'identifier la données mise en cookie
name string Donnée à mettre en cookie
expire Date | false false Date d'expiration, false pour aucune
Returns:
module:Cookies.Cookie - Cookie créer
Overrides:

protected copy_to_clipboard(elementToCopy, optionsopt)

Copie un texte dans le press(papier)
Parameters:
Name Type Attributes Default Description
elementToCopy string Texte à mettre dans le presse papier
options Object <optional>
{}
Properties
Name Type Attributes Default Description
text string <optional>
<nullable>
null Texte à afficher lorsque la copie a été effectuée
Overrides:

async create_promise(callback, …args) → {module:BnumPromise~BnumPromise:.<T:>}

(async) Créer une promesse "Mel" qui contient des fonctionnalités en plus
Parameters:
Name Type Attributes Description
callback
args any <repeatable>
Arguments du callback
Overrides:

async, generator generate(users, param1) → {AsyncGenerator:.<module:EventView/Parts/Guests/FreeBusy.Slots:>}

Génère et récupère les données de statuts par utilisateurs
Parameters:
Name Type Description
users Array:.<string:> Adresse email des utilisateurs
param1 Object
Properties
Name Type Description
interval number Interval en minutes (30 minutes par défaut)
start external:moment Date de départ (Date de maintenant par défaut)
end external:moment Date de fin (Date de maintenant + 7 jours par défaut)
Returns:
AsyncGenerator:.<module:EventView/Parts/Guests/FreeBusy.Slots:>

async, generator generate_and_save(users, param1) → {AsyncGenerator:.<module:EventView/Parts/Guests/FreeBusy.Slots:>}

Génère et récupère les données de statuts par utilisateurs. Sauvegarde en mémoire les données récupérés.
Parameters:
Name Type Description
users Array:.<string:> Adresse email des utilisateurs
param1 Object
Properties
Name Type Description
interval number Interval en minutes (30 minutes par défaut)
start external:moment Date de départ (Date de maintenant par défaut)
end external:moment Date de fin (Date de maintenant + 7 jours par défaut)
save boolean true par défaut
Returns:
AsyncGenerator:.<module:EventView/Parts/Guests/FreeBusy.Slots:>

protected generate_loader(id, absoluteCenterednon-null) → {mel_html}

Génère un loader du bnum
Parameters:
Name Type Default Description
id string id du loader
absoluteCentered boolean true Centrer verticalement et horizontalement ?
Returns:
mel_html
Overrides:

async get(users, param1) → {Promise:.<Object:.<string:, module:EventView/Parts/Guests/FreeBusy.Slots:>>}

Récupère les données de status d'utilisateurs
Parameters:
Name Type Description
users Array:.<string:> Emails des utilisateurs
param1 Object
Properties
Name Type Description
interval number Interval en minutes (30 minutes par défaut)
start external:moment Date de départ (Date de maintenant par défaut)
end external:moment Date de fin (Date de maintenant + 7 jours par défaut)
Returns:
Promise:.<Object:.<string:, module:EventView/Parts/Guests/FreeBusy.Slots:>>

protected get_custom_rules() → {Mel_CSS_Style_Sheet}

Récupère un objet Mel_CSS_Style_Sheet pour ajouter du css custom
Returns:
Mel_CSS_Style_Sheet
Overrides:

protected get_env(key)nullable {any}

Récupère une variable d'environnement de roundcube
Parameters:
Name Type Description
key string Nom de la variable
Returns:
any
Overrides:

protected get_skin() → {Mel_Elastic}

Récupère l'objet UI de la skin elastic
Returns:
Mel_Elastic
Overrides:

protected gettext(key_text, pluginnon-null) → {string}

Récupère une clé sous forme de texte.
Parameters:
Name Type Description
key_text string Clé
plugin string Plugin d'où provient le texte traduit
Returns:
string
Overrides:

protected have_frame(frame) → {boolean}

Vérifie si une frame est déjà chargée ou non
Parameters:
Name Type Description
frame string Nom de la frame
Returns:
boolean
Overrides:

protected http_call(options) → {module:BnumPromise~BnumPromise:.<Y:>}

Effectue un appel ajax avec les options spécifiées.
Parameters:
Name Type Attributes Default Description
options Object Les options pour l'appel HTTP.
Properties
Name Type Description
url string L'URL à appeler.
options.params Object <optional>
null Les paramètres à envoyer dans la requête.
options.type string | BnumPromise.Ajax.EAjaxMethod <optional>
BnumPromise.Ajax.EAjaxMethod.post Le type de requête HTTP à effectuer.
Overrides:

protected http_internal_call(options) → {module:BnumPromise~BnumPromise:.<Y:>}

Effectue un appel ajax vers les serveurs de l'application
Parameters:
Name Type Attributes Default Description
options Object Les options pour l'appel HTTP.
Properties
Name Type Description
task string Tache
action string Action
options.params Object <optional>
null Les paramètres à envoyer dans la requête.
options.type string | BnumPromise.Ajax.EAjaxMethod <optional>
BnumPromise.Ajax.EAjaxMethod.post Le type de requête HTTP à effectuer.
Overrides:

protected http_internal_get(options) → {module:BnumPromise~BnumPromise:.<Y:>}

Effectue un appel ajax GET vers les serveurs de l'application
Parameters:
Name Type Attributes Default Description
options Object Les options pour l'appel HTTP.
Properties
Name Type Description
task string Tache
action string Action
options.params Object <optional>
null Les paramètres à envoyer dans la requête.
Overrides:

protected http_internal_post(options) → {module:BnumPromise~BnumPromise:.<Y:>}

Effectue un appel ajax POST vers les serveurs de l'application
Parameters:
Name Type Attributes Default Description
options Object Les options pour l'appel HTTP.
Properties
Name Type Description
task string Tache
action string Action
options.params Object <optional>
null Les paramètres à envoyer dans la requête.
Overrides:

protected isNullOrUndefined(itemnullable) → {boolean}

Renvoie vrai si la variable vaut `null` ou `undefined`.
Parameters:
Name Type Attributes Description
item any <nullable>
Variable à tester
Returns:
boolean
Overrides:

protected load(key, default_valuenullable)nullable {any}

Charge des données dans le stockage local
Parameters:
Name Type Attributes Default Description
key string Clé qui permet de retrouver les données
default_value any <nullable>
null Valeur par défaut si la donnée n'éxiste pas
Returns:
any
Overrides:

load_from_memory(users, interval, start) → {Object:.<string:, module:EventView/Parts/Guests/FreeBusy.Slots:>}

Charge les données en mémoire d'utilisateurs.
Parameters:
Name Type Description
users Array:.<string:> Email des utilisateurs
interval number Interval en minute
start external:moment Date de début
Returns:
Object:.<string:, module:EventView/Parts/Guests/FreeBusy.Slots:>

main()

Fonction principale de la classe
Overrides:

protected on_frame_loaded(callback, options)

Action à faire lorsqu'une frame est chargée
Parameters:
Name Type Description
callback function Function à éffectuer
options Object Options de la fonction
Properties
Name Type Attributes Description
frame string <nullable>
any pour toute n'importe quelle frame, sinon mettre le nom de la frame
condition function <nullable>
Condition custom pour charger la frame
Overrides:

protected on_frame_refresh(callback, frame, param2)

Ajoute une action à faire lorsqu'une frame est mise à jours
Parameters:
Name Type Attributes Description
callback function Callback a=à appelé au refresh
frame string Nom de la frame
param2 Object
options.callback_key string <nullable>
clé qui permet de supprimer/remettre la fonction au refresh d'une frame
Overrides:

protected on_refresh(callback, options)

Ajoute une action à faire lors du refresh du bnum
Parameters:
Name Type Description
callback function Fonction à appeller
options Object Options de la fonction
Properties
Name Type Attributes Description
callback_key string <nullable>
clé qui permet de supprimer/remettre la fonction au refresh d'une frame
Overrides:

protected rcmail(top) → {rcube_webmail}

Récupère "rcmail" | les fonctions utiles à roundcube
Parameters:
Name Type Default Description
top boolean false Si on doit récupérer rcmail sur frame principale ou non
Returns:
rcube_webmail
Overrides:

protected save(key, contents) → {MelObject}

Sauvegarde des données dans le stockage local
Parameters:
Name Type Description
key string Clé qui permettra de retrouver les données sauvegarder
contents * Données qui seront sauvegarder
Returns:
MelObject - Chaînage
Overrides:

protected select(selector) → {external:jQuery}

Séléctionne un document dom au format jquery
Parameters:
Name Type Description
selector string Selecteur au format jquery
Returns:
external:jQuery
Overrides:

protected select_frame(frame) → {external:jQuery}

Selectionne une frame
Parameters:
Name Type Description
frame string Nom de la frame
Returns:
external:jQuery
Overrides:

generator, protected select_frame_except(…frames) → {Generator:.<Node:>}

Selectionne toutes les frames qui ne sont pas parmis les frames définie en arguments
Parameters:
Name Type Attributes Description
frames string <repeatable>
Frames à écarter
Returns:
Generator:.<Node:>
Overrides:

protected send_notification(notification)

Envoie une notification BNUM
Parameters:
Name Type Description
notification *
Overrides:

async sleep(ms) → {BnumPromise:.<void:>}

(async) Attend x millisecondes
Parameters:
Name Type Description
ms number Temps en millisecondes
Returns:
BnumPromise:.<void:>
Overrides:

async switch_frame(task, options) → {Promise}

Change de frame
Parameters:
Name Type Description
task string Nom de la tâche
options Object
Properties
Name Type Attributes Default Description
changepage boolean <optional>
true Si l'on change de page ou si la frame reste caché pendant le chargement.
args Object:.<string:, *:> <optional>
<nullable>
null Options du changement de frame. Si la frame est déjà ouverte, force le changement d'url.
Returns:
Promise
Overrides:

protected trigger_event(key, args) → {MelEventManager}

Trigger un écouteur
Parameters:
Name Type Description
key string Clé qui appelera tout les écouteurs lié à cette clé
args any Arguments qui sera donnée aux écouteurs
Returns:
MelEventManager
Overrides:

protected unload(key)

Décharge une donnée dans le stockage local
Parameters:
Name Type Description
key string clé dans le stockage
Overrides:

protected url(task, param1, Autresnullable) → {string}

Récupère une url à partir d'une tâche et d'une action
Parameters:
Name Type Attributes Description
task string Nom de la tâche
param1 Object action => Nom de l'action ('index' si non renseigné), params => Autres paramètres
Properties
Name Type Description
action string => Nom de l'action (index si non renseigné)
Autres Object:.<string:, string:> <nullable>
paramètres
Returns:
string
Overrides:

async wait_something(callback, optionsopt)

(async) Attend qu'une condtion soit valide
Parameters:
Name Type Attributes Default Description
callback
options Object <optional>
{}
Properties
Name Type Attributes Default Description
timeout number <optional>
5 Au bout de combien de secondes la boucle s'arrête
Returns:
Overrides: