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
, retournenull
, 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éedisplayValue
est aussi nécessaire si celle-ci est différente devalue
. 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
estundefined
, 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éthoderedraw
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éthoderedraw
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éthoderedraw
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éthoderedraw
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éthoderedraw
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éthoderedraw
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
.