Changeset 110029 in spip-zone for _plugins_/roles_documents


Ignore:
Timestamp:
Apr 29, 2018, 1:31:31 PM (6 months ago)
Author:
tcharlss@…
Message:

Améliorer un peu l'ergonomie du sélecteur de rôles en s'adaptant au contexte (chankalan). S'il n'y a qu'un seul rôle possible : input caché avec un label. S'il y a moins de 5 rôles : radio ou checkbox (si choix multiple). S'il y a 5 rôles ou plus : select avec la classe .chosen. On active la sélection mutliple aussi.

Location:
_plugins_/roles_documents/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/roles_documents/trunk/formulaires/inc-selecteur_role.html

    r109744 r110029  
    33        Sélection d'un role à attribuer à un document
    44
    5         Si unique : radio
    6         Si multiple : checkbox
     5        Identifiant du champ (name) : « roles »
     6
     7        Type de champ en fonction du contexte :
     8        - 1 seul rôle attribuable : hidden
     9        - < 5 rôles attribuables et sélection unique : radio
     10        - < 5 rôles attribuables et sélection multiple : checkbox
     11        - >= 5 rôles attribuables : select
    712
    813        Paramètres :
    9         **obligatoire
    10         *conseillé
     14                **obligatoire
     15                *conseillé
    1116
    1217                - roles : rôle(s) sélectionné(s)
    13                 - **roles_attribuables : liste des rôles pour peupler le select
     18                - **roles_attribuables : tableau linéaire des rôles possibles
    1419                - multiple : 'oui' pour permettre une sélection de plusieurs rôles
    1520                - readonly : 'oui' pour interdire l'édition
    1621]
    17 #SET{type, #ENV{multiple}|?{checkbox,radio}}
    18 #SET{readonly, #ENV{readonly}|?{readonly}}
     22#SET{nb_roles, #ENV{roles_attribuables}|count}
     23#SET{multiple, #ENV{multiple}|=={oui}|?{multiple}}
     24#SET{readonly, #ENV{readonly}|=={oui}|?{readonly}}
    1925
    20 <B_selecteur_roles>
    21 <div class="editer[ editer-(#GET{type}) ]editer-role">
     26<div class="editer editer-role">
    2227
    23         <label>[(#ENV{multiple}|?{<:roles_documents:champ_roles_label:>,<:roles_documents:champ_role_label:>})]&nbsp;:</label>
    2428
    25         <BOUCLE_selecteur_roles(DATA){source table, #ENV{roles_attribuables}}>
     29        [(#REM) Cas 1 : un seul rôle attribuable -> input hidden avec label ]
     30        <BOUCLE_roles_un(CONDITION){si #GET{nb_roles}|<={1}}>
     31        #SET{role,#ENV{roles_attribuables/0}}
     32        <label><:roles_documents:champ_role_label:> : [(#GET{role}|role{document})]
     33        </label>
     34        <input
     35                type="hidden"
     36                id="champ_roles"
     37                name="roles"
     38                value="#GET{role}"
     39        >
     40        </BOUCLE_roles_un>
     41
     42
     43        [(#REM) Cas 2 : plusieurs rôles attribuables ]
     44        <label><:roles_documents:champ_roles_label:></label>
     45
     46
     47        [(#REM) Cas 2.1 : moins de 5 rôles -> radio ou checkbox ]
     48        <BOUCLE_roles_peu(DATA)
     49                {source table, #ENV{roles_attribuables}}
     50                {si #GET{nb_roles}|<{5}}
     51        >
     52        #SET{type,#GET{multiple}|?{checkbox,radio}}
    2653        #SET{checked, #VALEUR|=={#ENV{role}}|ou{#ENV{role}|non|et{#COMPTEUR_BOUCLE|=={1}}}|?{checked}}
    2754        <div class="choix">
    28                 <input type="#GET{type}" id="champ_roles_#COMPTEUR_BOUCLE" name="roles" value="#VALEUR"[ checked="(#GET{checked})"][ readonly="(#GET{readonly})"]>
     55                <input
     56                        type="#GET{type}"
     57                        class="#GET{type}"
     58                        id="champ_roles_#COMPTEUR_BOUCLE"
     59                        name="roles"
     60                        value="#VALEUR"
     61                        [checked="(#GET{checked})"]
     62                        [readonly="(#GET{readonly})"]
     63                >
    2964                <label for="champ_roles_#COMPTEUR_BOUCLE">[(#VALEUR|role{document})]</label>
    3065        </div>
    31         </BOUCLE_selecteur_roles>
     66        </BOUCLE_roles_peu>
     67
     68
     69        [(#REM) Cas 2.2 : plus de 5 rôles -> select ]
     70        <B_roles_beaucoup>
     71        <select
     72                class="select chosen"
     73                id="champ_roles"
     74                name="roles[(#GET{multiple}|oui)\[\]]"
     75                [multiple="(#GET{multiple})"]
     76        >
     77                <BOUCLE_roles_beaucoup(DATA)
     78                        {source table, #ENV{roles_attribuables}}
     79                        {si #GET{nb_roles}|>={5}}
     80                >
     81                #SET{selected, #VALEUR|=={#ENV{role}}|ou{#ENV{role}|non|et{#COMPTEUR_BOUCLE|=={1}}}|?{selected}}
     82                <option value="#VALEUR"[ selected="(#GET{selected})"]>[(#VALEUR|role{document})]</option>
     83                </BOUCLE_roles_beaucoup>
     84        </select>
     85        </B_roles_beaucoup>
     86
     87        <//B_roles_un>
    3288
    3389</div>
    34 </B_selecteur_roles>
  • _plugins_/roles_documents/trunk/paquet.xml

    r109744 r110029  
    22        prefix="roles_documents"
    33        categorie="edition"
    4         version="1.2.9"
     4        version="1.2.10"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
  • _plugins_/roles_documents/trunk/roles_documents_pipelines.php

    r109744 r110029  
    331331                                $roles['possibles']
    332332                        );
     333                $multiple = $editer_logo ? null : (count($roles_attribuables) > 1 ? 'oui' : null);
    333334                $contexte = array(
    334335                        'roles'              => $flux['args']['contexte']['roles'],
    335336                        'roles_attribuables' => $roles_attribuables,
     337                        'multiple'           => $multiple,
    336338                );
    337339
Note: See TracChangeset for help on using the changeset viewer.