5.2 Objets de manipulation sur le client

5.2.1 Introduction

Le contrôleur de document possède quelques objets internes pour pouvoir identifier le document en cours et interagir avec le document. Ces objets se retrouvent notamment dans les événements et via l'api du widget.

5.2.2 Document

L'objet document décrit le document en cours. C'est un objet javascript contenant les propriétés suivantes :

id
identifiant du document,
initid
identifiant de la lignée documentaire,
title
titre du document,
family

objet décrivant la famille en cours, et contenant les propriétés suivantes :

title
titre de la famille,
name
nom logique de la famille,
id
identifiant de la famille,
icon
lien vers l'icone de la famille,
icon
lien vers l'icone du document,
revision
numéro de révision du document,
status
statut du document (actif, supprimé, etc.),
viewId
rendu en cours,
renderMode

mode de rendu en cours, parmi :

edit
édition,
view
consultation,
isModified (booléen)
indique si le document contient des modifications non synchronisées.
hasUploadingFiles (booléen)
indique s'il y a des téléversements de fichier en cours. La sauvegarde d'un document ne peut être commencée que lorsque l'ensemble des téléversements sont finis.

5.2.3 Attribut

L'objet attribut décrit un attribut du document en cours. Il contient les propriétés et méthodes suivantes :

5.2.3.1 Propriétés

id
identifiant de l'attribut

5.2.3.2 Méthodes

getProperties() : {}
retourne l'ensemble des propriétés de l'attribut sous la forme d'un objet indexé par les noms des propriétés,
getOptions() : {}
retourne l'ensemble des options de l'attribut sous la forme d'un objet indexé par les noms des options,
getOption(optionId) : string|{}
retourne l'option optionId, retourne null, si l'option n'existe pas.
setOption(optiondId, value) : $
modifie l'option optionId,
getValue(type) : {value:, displayValue:}

retourne la valeur (typée) de l'attribut en cours. L'option facultative type permet d'avoir les valeurs suivantes :

current
valeur courante de l'attribut (valeur par défaut). La méthode retourne alors un objet value : valeur brute, displayValue : valeur formatée,
previous
valeur précédente de l'attribut avant modification. La méthode retourne alors un objet value : valeur brute, displayValue : valeur formatée,
initial
valeur initiale de l'attribut. La méthode retourne alors un objet value : valeur brute, displayValue : valeur formatée,
all (valeur par défaut)
retourne toutes les valeurs de l'attribut sous la forme d'un objet indexé par type de valeur.
setValue(newValue): $
permet de modifier la valeur courante de l'attribut. La valeur en entrée est un object json contenant au moins value. La donnée displayValue est aussi nécessaire si celle-ci est différente de value. Pour les attributs à valeurs multiple, le valeur doit être un tableau de valeur.
getLabel() : text
permet de récupérer le libellé de l'attribut.
setLabel(newLabel) : $
permet de modifier le libellé de l'attribut. L'argument est du texte, le format HTML n'est pas accepté.
isModified() : bool
permet de savoir si la valeur de l'attribut a été modifiée depuis la dernière sauvegarde. Retourne true si la valeur a été modifiée.

5.2.4 Fenêtre de transition

Cet objet permet de piloter la fenêtre de transition. Il contient les propriétés et méthodes suivantes :

5.2.4.1 Propriétés

$el
nœud DOM contenant la fenêtre de changement d'état, sous la forme d'un objet jQuery,
nextState
identifiant de l'état suivant visé,
transition
identifiant de la transition empruntée (vide dans le cas de changement d'état forcé par l'administrateur).

5.2.4.2 Méthodes

getValues()
retourne les valeurs collectées par la fenêtre de changement d'état,
hide()
cache la fenêtre de changement d'état,
show()
montre la fenêtre de changement d'état,
close()
ferme la fenêtre de changement d'état.

5.2.5 Menu

L'objet menu décrit un menu du document en cours. Il permet de piloter le menu. Il contient les propriétés et méthodes suivantes :

5.2.5.1 Propriétés

id (string)

identifiant du menu

Si l' id est undefined, alors le menu demandé n'existe pas.

type (string)

type de menu, parmi :

itemMenu
entrée simple,
listMenu
sous-menu,
dynamicMenu
sous-menu dynamique (le contenu est demandé au serveur lors de son activation),
separatorMenu
séparateur de menu,
label (string)
libellé brut textuel (pas html)
htmlLabel (string)
libellé textuel html, le libellé html est affiché avant le libellé brut,
tooltipLabel
contenu du tooltip
tooltipHtml (boolean)
indique si le libellé du tooltip est html ou pas,
htmlAttributes (object)
liste des attributs au sens DOM du terme,
visibility (string)

Visibilité du menu, parmi :

visible
indique que le menu est visible,
hidden
indique que le menu est caché,
disabled
indique que le menu est désactivé,
beforeContent (string)
html contenu affiché devant le libellé. Utilisé pour décrire une icone ou un symbole permettant d'identifier le menu,
important (boolean)
indique si le menu est important. Lorsqu'un menu est marqué comme important, il ne sera jamais déplacé dans le menu "autres" lorsque la largeur de la page est faible,
iconUrl (string)
url de l'icone du menu,
url (string)
url du menu
target (string)
nom de la fenêtre dans laquelle doit être ouverte l'url,
targetOptions (object)
options de la target
confirmationText (string)
texte affiché à l'utilisateur lorsqu'il clique sur le menu dans une pop-up de confirmation,
confirmationOptions (object)
options de la confirmation

Plus d'informations sur les propriétés peuvent être trouvées dans la configuration des menus.

5.2.5.2 Méthodes

5.2.5.2.1 getProperties

Cette méthode retourne la liste des propriétés du menu.

5.2.5.2.1.1 Arguments

Pas d'arguments

5.2.5.2.1.2 Retour

Un objet contenant les propriétés du menu.

5.2.5.2.1.3 Exception

Pas d'exception

5.2.5.2.2 disable

Cette méthode désactive le menu. Le menu reste visible mais il n'est plus actif.

Si le menu a été masqué via hide, il sera réaffiché, mais désactivé.

5.2.5.2.2.1 Arguments
options

Un objet contenant les propriétés suivantes :

strict (boolean, false par défaut)
si true une erreur est déclenchée si le menu est non présent
silent (boolean, false par défaut)

si true la modification est enregistrée mais pas rendue. L'appel à la méthode redraw permet de rendre le menu ensuite.

Utile pour faire un unique rendu après plusieurs modifications.

5.2.5.2.2.2 Retour

Pas de retour.

5.2.5.2.2.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.3 enable

Cette méthode active le menu.

Si le menu a été masqué via hide, il sera réaffiché.

5.2.5.2.3.1 Arguments
options

Un objet contenant les propriétés suivantes :

strict (boolean, false par défaut)
si true une erreur est déclenchée si le menu est non présent
silent (boolean, false par défaut)

si true la modification est enregistrée mais pas rendue. L'appel à la méthode redraw permet de rendre le menu ensuite.

Utile pour faire un unique rendu après plusieurs modifications.

5.2.5.2.3.2 Retour

Pas de retour.

5.2.5.2.3.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.4 hide

Cette méthode cache le menu.

Pour réafficher le menu, il faut utiliser une des méthodes disable ou enable

5.2.5.2.4.1 Arguments
options

Un objet contenant les propriétés suivantes :

strict (boolean, false par défaut)
si true une erreur est déclenchée si le menu est non présent
silent (boolean, false par défaut)

si true la modification est enregistrée mais pas rendue. L'appel à la méthode redraw permet de rendre le menu ensuite.

Utile pour faire un unique rendu après plusieurs modifications.

5.2.5.2.4.2 Retour

Pas de retour.

5.2.5.2.4.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.5 setLabel

Cette méthode modifie le label du menu.

5.2.5.2.5.1 Arguments
label
Le label à utiliser. Le HTML est automatiquement échappé.
options

Un objet contenant les propriétés suivantes :

strict (boolean, false par défaut)
si true une erreur est déclenchée si le menu est non présent
silent (boolean, false par défaut)

si true la modification est enregistrée mais pas rendue. L'appel à la méthode redraw permet de rendre le menu ensuite.

Utile pour faire un unique rendu après plusieurs modifications.

5.2.5.2.5.2 Retour

Pas de retour.

5.2.5.2.5.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.6 setHtmlLabel

Cette méthode modifie le label du menu.

5.2.5.2.6.1 Arguments
label
Le label à utiliser. Aucun échappement n'est effectué, le texte est inséré directement.
options

Un objet contenant les propriétés suivantes :

strict (boolean, false par défaut)
si true une erreur est déclenchée si le menu est non présent
silent (boolean, false par défaut)

si true la modification est enregistrée mais pas rendue. L'appel à la méthode redraw permet de rendre le menu ensuite.

Utile pour faire un unique rendu après plusieurs modifications.

5.2.5.2.6.2 Retour

Pas de retour.

5.2.5.2.6.3 Exception

Une erreur si jamais le menu n'existe pas et le mode strict est à true.

5.2.5.2.7 setUrl

Cette méthode modifie l'url menu.

5.2.5.2.7.1 Arguments
url
nouvelle url du menu.
options

Un objet contenant les propriétés suivantes :

strict (boolean, false par défaut)
si true une erreur est déclenchée si le menu est non présent
silent (boolean, false par défaut)

si true la modification est enregistrée mais pas rendue. L'appel à la méthode redraw permet de rendre le menu ensuite.

Utile pour faire un unique rendu après plusieurs modifications.

5.2.5.2.7.2 Retour

Pas de retour.

5.2.5.2.7.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.8 setCssClass

Cette méthode définit les classes css de l'élément de menu.

Il ne faut jamais attribuer de classe directement sur le menu, car au redraw, seules les classes définies par setCssClass seront utilisées.

5.2.5.2.8.1 Arguments
cssClass
La liste des classes séparées par un espace
options
Un objet contenant les propriétés suivantes :
`strict` (boolean, `false` par défaut)
:   si `true` une erreur est déclenchée si le menu est non présent
`silent` (boolean, `false` par défaut)
:   si `true` la modification est enregistrée mais pas rendue.
    L'appel à la méthode [`redraw`][redraw] permet de rendre le menu ensuite.
    Utile pour faire un unique rendu après plusieurs modifications.
5.2.5.2.8.2 Retour

Pas de retour.

5.2.5.2.8.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.8.4 Exemple

Ajout d'une classe à un menu

var menuId = 'mon-menu',
    menu = window.dcp.documentController("getMenu", menuId),
    currentClasses = menu.getProperties().cssClass.split(/\s+/),
    newClass = 'menu-highlight';
if(-1 === currentClasses.indexOf(newClass)) {
    curentClasses.push(newClass);
    menu.setCssClass(currentClasses.join(' '));
}

5.2.5.2.9 setIconUrl

Cette méthode définit une icône qui sera présentée avant le texte du menu.

C'est le pendant de la méthode php Dcp\Ui\ItemMenu::setIcon.

Attention, contrairement à Dcp\Ui\ItemMenu::setIcon, la taille de l'image ne peut pas être précisée (l'image peut être retaillée par css, mais le client devra auparavant charger l'image complète).

5.2.5.2.9.1 Arguments
iconUrl
L'url de l'image à afficher
options
Un objet contenant les propriétés suivantes :
`strict` (boolean, `false` par défaut)
:   si `true` une erreur est déclenchée si le menu est non présent
`silent` (boolean, `false` par défaut)
:   si `true` la modification est enregistrée mais pas rendue.
    L'appel à la méthode [`redraw`][redraw] permet de rendre le menu ensuite.
    Utile pour faire un unique rendu après plusieurs modifications.
5.2.5.2.9.2 Retour

Pas de retour.

5.2.5.2.9.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

5.2.5.2.10 redraw

Calcule et affiche le menu.

Dans le cas ou plusieurs des méthodes ci-dessus sont appelées avec l'option silent, cette méthode permet de redessiner le menu une unique fois en appliquant tous les changements.

5.2.5.2.10.1 Arguments

Pas d'argument.

5.2.5.2.10.2 Retour

Pas de retour.

5.2.5.2.10.3 Exception

Une erreur si jamais le menu n'existe pas et si le mode strict est à true.

×