Actions (jqm1000)

De Wiki1000

Sommaire

Exécuter une action serveur à partir d'une page détail

Pour exécuter une action serveur directement à partir d'une page détail, retournez un élément détail de type action (l="a") :

begin
     ...
     json.result[indx].l := 'a'; // Action validate this expense
     json.result[indx].h := '/accept'; //
     json.result[indx].v := _TP('Valider');
     json.result[indx].id:= inst.OID;
     json.result[indx].afs := 'del,back,clear'; //
     ...
end;

Une telle action ne prend pas d'autre paramètre qu'un identifiant transmis dans l'élément détail, en effet la page détail ne permet pas de saisie. Si vous avez besoin de paramètre supplémentaire utilisez une page intermédiaire de saisie.

Si l'action s'exécute correctement les actions afs seront exécutées

Exécuter une action serveur avec saisie de paramètres

Pour exécuter une action qui nécessite des valeurs saisie en paramètre, vous devez passer par une page intermédiaire gérant la saisie.

La démarche est la suivante:

  • La page détail affiche un lien vers la page de saisie
  • La page de saisie comporte les champs de saisie et un bouton de validation.
  • L'exécution de l'action renvoie l'utilisateur sur la page détail ou sur la liste.

Liens vers la page détail

Dans le code retournant les éléments du déétail vous devez renvoyer un lien vers la page au lieu d'un lien action :

begin
     ...
     json.result[indx].l := 'p'; // Action refuse this expense = Change page
     json.result[indx].p := 'pageRefuse'; // page name
     json.result[indx].h := '/refuse'; //
     json.result[indx].v := _TP('Refuser');
     json.result[indx].id:= inst.OID;
     ...
end;

Les informations de l'action (h,id) seront transmis par la navigation sur l'élément ayant la classe action de la page de saisie.

Page de saisie

La page de saisie comprend les champs de saisie supplémentaires :

<div class="ui-page" data-role="page" id="pageRefuse">
  ...  
  <div data-role="content">
     <div data-role="fieldcontain">
       <select name="field_motif" class="lookup" data-lookup="/lookupMotifs" id="field_motif" ><option>select a motif</option></select>
    </div>  
    <div data-role="fieldcontain">
         <a data-role="button" class="action" data-icon="gear" href="#" data-params='[{"name":"motif","field":"field_motif"}]' data-localize="refuse.refuse">Refuse</a>
    </div>
  </div>
  ...
</div>

Le bouton d'exécution à les attributs suivant :

  • class = "action"
Cette classe qualifie l'élément comme le bouton action, les éléments de l'action définis dans la page détail seront copiés sur cet élément.
  • data-params='[{"name":"motif","field":"field_motif"}]
Cet attribut défini les paramètres à transmettre à la méthode
  • name
Nom du paramètre.
  • field
Nom du champ contenant la valeur du paramètre.

Actions locales

Les actions locales peuvent être exécutées avant ou après une action serveur.

Action Usage
del Supprime l'élément de liste correspondant à ce détail
clear Efface le cache locale
back Retourne à la page précédente
home Retourne à la page d'acceuil
nom_de_fonction Execute la fonction correspondante, cette fonction doit être définie globalement au niveau de l'objet window.
Outils personnels