Changeset 96366 in spip-zone


Ignore:
Timestamp:
Apr 1, 2016, 8:55:53 AM (3 years ago)
Author:
marcimat@…
Message:

Recharger le bloc des documents après avoir modifié un rôle. Cela permet
entre autres d'enlever un document de la liste lorsqu'on lui retire son
dernier rôle.

Location:
_plugins_/roles_documents/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/roles_documents/trunk/formulaires/editer_roles_objet_lie.html

    r88666 r96366  
    11<div class="formulaire_spip formulaire_editer_roles_objet_lie">
     2        [<div class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</div>]
     3        [<div class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</div>]
    24        <form action="#ENV{action}" method="post"><div class="spip roles roles-documents">
    35                #ACTION_FORMULAIRE{#ENV{action}}
  • _plugins_/roles_documents/trunk/formulaires/editer_roles_objet_lie.php

    r88659 r96366  
    1111 * Chargement du formulaire d'édition de rôles de liens
    1212 *
    13  * #FORMULAIRE_EDITER_ROLES_OBJET_LIE{document,2,article,3}
    14  *   pour editer les roles du document 2 lié à l'article 3
     13 * `#FORMULAIRE_EDITER_ROLES_OBJET_LIE{document,2,article,3}`
     14 * pour editer les roles du document 2 lié à l'article 3
    1515 *
    1616 * @param string $objet_source
    17  *              objet étant associé
     17 *     objet étant associé
    1818 * @param string|int $id_objet_source
    19  *              identifiant de l'objet associé
     19 *     identifiant de l'objet associé
    2020 * @param string $objet
    2121 * @param int|string $id_objet
     22 * @param array $options
     23 *     tableau d'options, à toutes fins utiles
    2224 * @return array
    2325 */
    24 function formulaires_editer_roles_objet_lie_charger_dist($objet_source,$id_objet_source,$objet,$id_objet){
     26function formulaires_editer_roles_objet_lie_charger_dist($objet_source, $id_objet_source, $objet, $id_objet, $options=array()){
    2527
    2628        // retourner les valeurs de editer_liens
    2729        $table_source = table_objet($objet_source);
    28         $editer_liens_charger = charger_fonction('charger','formulaires/editer_liens');
    29         $valeurs = $editer_liens_charger($table_source,$objet,$id_objet); // documents, article, 2
     30        $editer_liens_charger = charger_fonction('charger', 'formulaires/editer_liens');
     31        $valeurs = $editer_liens_charger($table_source, $objet, $id_objet); // documents, article, 2
    3032
    3133        // on a besoin de id_objet_source (= document) pour inc-editer_liens_actions_roles
    3234        if (is_array($valeurs)) {
    33                 $valeurs = array_merge($valeurs,array('id_objet_source'=>$id_objet_source));
     35                $valeurs = array_merge($valeurs, array('id_objet_source' => $id_objet_source));
    3436        }
    3537
     
    4042 * Traiter le post des informations d'édition de rôles de liens
    4143 *
     44 * @param string $objet_source
     45 *     objet étant associé
     46 * @param string|int $id_objet_source
     47 *     identifiant de l'objet associé
     48 * @param string $objet
     49 * @param int|string $id_objet
     50 * @param array $options
     51 *     tableau d'options, à toutes fins utiles
     52 * @return array
    4253 */
    43 function formulaires_editer_roles_objet_lie_traiter_dist($objet_source,$id_objet_source,$objet,$id_objet){
     54function formulaires_editer_roles_objet_lie_traiter_dist($objet_source, $id_objet_source, $objet, $id_objet, $options=array()){
    4455
    4556        // retourner les traitements de editer_liens
    4657        $table_source = table_objet($objet_source);
    4758        $editer_liens_traiter = charger_fonction('traiter','formulaires/editer_liens');
    48         $res = $editer_liens_traiter($table_source,$objet,$id_objet); // documents, article, 2
     59        $res = $editer_liens_traiter($table_source, $objet, $id_objet); // documents, article, 2
     60
     61        // pour rechercher un ou plusieurs blocs après modification des roles
     62        // ajaxReload est un sélecteur css, tel que '#documents'
     63        if (!empty($options['ajaxReload'])) {
     64                $js = 'if (window.jQuery) jQuery("' . $options['ajaxReload'] . '").ajaxReload();';
     65                $js = "<script type='text/javascript'>$js</script>";
     66
     67                if (isset($res['message_erreur'])) {
     68                        $res['message_erreur'] .= $js;
     69                } elseif (isset($res['message_ok'])) {
     70                        $res['message_ok'] .= $js;
     71                } else {
     72                        $res['message_ok'] = $js;
     73                }
     74        }
    4975
    5076        return $res;
  • _plugins_/roles_documents/trunk/paquet.xml

    r95756 r96366  
    22        prefix="roles_documents"
    33        categorie="edition"
    4         version="0.1.13"
     4        version="0.2.0"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/roles_documents/trunk/prive/squelettes/inclure/editer_roles_objet_lie.html

    r88659 r96366  
    1 <div class="ajax">#FORMULAIRE_EDITER_ROLES_OBJET_LIE{#ENV{objet_source},#ENV{id_objet_source},#ENV{objet},#ENV{id_objet}}</div>
     1<div class="ajax">#FORMULAIRE_EDITER_ROLES_OBJET_LIE{#ENV{objet_source},#ENV{id_objet_source},#ENV{objet},#ENV{id_objet},#ENV{options,#ARRAY}}</div>
  • _plugins_/roles_documents/trunk/roles_documents_pipelines.php

    r95158 r96366  
    4545                                'id_objet_source' => $id_document,
    4646                                'objet' => $objet,
    47                                 'id_objet' => $id_objet
     47                                'id_objet' => $id_objet,
     48                                'options' => array(
     49                                        'ajaxReload' => '#documents',
     50                                ),
    4851                        )
    4952                );
  • _plugins_/roles_documents/trunk/todo.md

    r89267 r96366  
    2121- Chaque rôle donné à un document crée une nouvelle ligne dans la table `spip_documents_liens`, donc si on boucle sur cette table pour afficher les documents liés à un objet, le même document ressortira autant de fois qu'il a de rôles (cf. `documents_colonne.html` du plugins Médias).
    2222- Le critère `{vu}` est inopérant puisqu'un même document peut se retrouver à la fois vu et non vu après plusieurs manoeuvres. Pistes pour résoudre ça : une seul ligne par document lié, avec plusieurs rôles séparés par des virgules ? Ou alors par défaut faire en sorte que la boucle documents ne retourne qu'une seule fois un doc lié ayant plusieurs rôles ?
    23 - On ne peux pas détacher un document qui possède un rôle déclaré par un plugin désactivé.
Note: See TracChangeset for help on using the changeset viewer.