Changeset 91599 in spip-zone for _plugins_/plan
- Timestamp:
- Sep 3, 2015, 1:08:07 AM (6 years ago)
- Location:
- _plugins_/plan/branches/v1
- Files:
-
- 7 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/plan/branches/v1
- Property svn:mergeinfo changed
/_plugins_/plan/trunk merged: 91592,91595-91596,91598
- Property svn:mergeinfo changed
-
_plugins_/plan/branches/v1/action/deplacer_objets.php
r91527 r91599 18 18 include_spip('inc/autoriser'); 19 19 if (!autoriser('ecrire')) { 20 return plan_json_erreur( "Authorization failed");20 return plan_json_erreur(_T("plan:erreur_autorisation_insuffisante") . " " . _T("plan:erreur_deplacement_impossible")); 21 21 } 22 22 … … 32 32 33 33 if (!is_array($ids) or !$objet) { 34 return plan_json_erreur( "Aucun identifiant");34 return plan_json_erreur(_T("plan:erreur_aucun_identifiant") . " " . _T("plan:erreur_deplacement_impossible")); 35 35 } 36 36 if ($id_rubrique_old == $id_rubrique_new) { 37 return plan_json_erreur( "Rubriques parentes incorrectes");37 return plan_json_erreur(_T("plan:erreur_rubriques_parentes_incorrectes") . " " . _T("plan:erreur_deplacement_impossible")); 38 38 } 39 39 if ($objet != 'rubrique' and !$id_rubrique_new) { 40 return plan_json_erreur( "Rubriques parentes incorrectes");40 return plan_json_erreur(_T("plan:erreur_rubriques_parentes_incorrectes") . " " . _T("plan:erreur_deplacement_impossible")); 41 41 } 42 42 … … 55 55 include_spip('action/editer_objet'); 56 56 57 $err eurs = array();57 $errors = $success = array(); 58 58 $modifs = array('id_parent' => $id_rubrique_new); 59 59 … … 61 61 if (autoriser('modifier', $objet, $id)) { 62 62 if ($err = objet_modifier($objet, $id, $modifs)) { 63 $erreurs[] = $err; 63 $errors["$objet-$id"] = $err; 64 } else { 65 $success["$objet-$id"] = true; 66 } 67 } else { 68 $errors["$objet-$id"] = _T("plan:erreur_autorisation_insuffisante") . " " . _T("plan:erreur_deplacement_impossible"); 69 } 70 } 71 72 // dans certains cas… on ne reçoit pas d'erreur… et pourtant ! 73 if (!$errors) { 74 // on verifie qu'il n'y a plus d'objets à l'ancien emplacement 75 $ids = sql_allfetsel($_id_table, $table, array(sql_in($_id_table, $ids), $champ . '=' . sql_quote($id_rubrique_old))); 76 $ids = array_map('array_shift', $ids); 77 if ($ids) { 78 foreach ($ids as $id) { 79 $errors["$objet-$id"] = _T("plan:erreur_deplacement"); 80 unset($success["$objet-$id"]); 64 81 } 65 82 } … … 67 84 68 85 return plan_json_envoi(array( 69 'success' => true, 70 'messages' => $erreurs 86 'done' => true, 87 'success' => $success, 88 'errors' => $errors, 71 89 )); 72 90 } … … 78 96 79 97 function plan_json_erreur($msg) { 80 return plan_json_envoi(array('erreur' => $msg)); 98 return plan_json_envoi(array( 99 'done' => false, 100 'success' => array(), 101 'errors' => array($msg) 102 )); 81 103 } -
_plugins_/plan/branches/v1/css/plan_prive.css.html
r91585 r91599 3 3 #HTTP_HEADER{Vary: Accept-Encoding} 4 4 5 .plan #contenu p.removable { cursor:pointer; } 6 .plan #contenu p.removable:hover { opacity:.6; } 5 7 #mytree_actions { margin-bottom:1em; margin-top:1em; } 6 8 #mytree_actions input, … … 43 45 background:url([(#VAL{rubrique}|objet_icone{16}|extraire_attribut{src})]) center left no-repeat; 44 46 } 47 .plan .jstree .puce_objet { margin-right:2px; } 48 .plan .jstree.drag .item .jstree-icon { 49 cursor: move; 50 } 45 51 <BOUCLE_icone_objets(DATA){source table, #REM|plan_lister_objets_rubrique}> 46 52 .plan .jstree-icon.[(#VALEUR|objet_type)] { -
_plugins_/plan/branches/v1/lang/plan_fr.php
r91551 r91599 6 6 $GLOBALS[$GLOBALS['idx_lang']] = array( 7 7 8 // T 9 'tous_les_statuts' => 'Tous les statuts', 8 // C 9 'confirmer_deplacement' => 'Êtes-vous sûr de vouloir déplacer ces éléments ?', 10 11 // D 12 'deplacement_reussi' => 'Déplacement réussi.', 13 'deplacements_reussis' => '@nb@ déplacements réussis.', 14 'deplacement_en_echec' => "Échec d'un déplacement.", 15 'deplacements_en_echec' => '@nb@ déplacements en échec.', 16 17 18 // E 19 'erreur_deplacement_impossible' => "Déplacement impossible !", 20 'erreur_autorisation_insuffisante' => "Autorisation insuffisante.", 21 'erreur_aucun_identifiant' => "Aucun identifiant d'objet.", 22 'erreur_rubriques_parentes_incorrectes' => "Rubriques parentes incorrectes.", 23 'erreur_deplacement' => "Déplacement non effectué.", 10 24 11 25 // P 12 26 'plan_titre' => 'Plan du site dans l’espace privé', 13 27 28 // T 29 'tous_les_statuts' => 'Tous les statuts', 30 31 14 32 ); -
_plugins_/plan/branches/v1/paquet.xml
r91594 r91599 2 2 prefix="plan" 3 3 categorie="navigation" 4 version="1.2. 4"4 version="1.2.5" 5 5 etat="test" 6 6 compatibilite="[3.0.0;3.0.*]" -
_plugins_/plan/branches/v1/prive/javascript/spiptree.js
r91533 r91599 21 21 } 22 22 } 23 24 options.confirm = { 25 move: null 26 }; 23 27 24 28 $.each(options.objets, function(nom, desc) { … … 41 45 "core" : { 42 46 "animation" : 0, 43 "check_callback" : true, 47 "check_callback" : function (op, node, par, pos, more) { 48 if (op === "move_node") { 49 // à la fin d'un déplacement, demander 1 fois (et 1 seule) 50 // une confirmation, même si on déplace 5 items d'un coup 51 if (more && more.core) { 52 if (options.confirm.move === null) { 53 options.confirm.move = confirm( options.textes.deplacement.confirmation ); 54 } 55 return options.confirm.move; 56 } else { 57 // redemander la confirmation au prochain tour 58 options.confirm.move = null; 59 } 60 } 61 return true; 62 }, 44 63 "data" : function (node, cb) { 45 64 // on est obligé de tout charger en ajax (même la racine) … … 77 96 }); 78 97 98 if (options.drag) { 99 $mytree.addClass('drag'); 100 } 101 79 102 // un clic d'une feuille amène sur son lien 80 103 // mais… éviter que le plugin 'state' clique automatiquement lorsqu'il restaure … … 85 108 var node = data.instance.get_node(data.node, true); 86 109 if (node) { 87 location.href = node.children('a').attr('href'); 110 var lien = node.children('a').attr('href'); 111 if (lien && !(options.drag && $(data.event.target).hasClass('jstree-icon'))) { 112 location.href = lien; 113 } 88 114 } 89 115 }); 90 116 }); 91 117 118 var recharge_plan = false; 92 119 // lorsqu'on déplace un nœud 93 120 $mytree.on("move_node.jstree", function(event, data) { 94 121 // si les parents sont identiques : pas de changement, 95 122 // on ne peut/veut pas gérer ici les positionnements 96 97 // console.log(data);98 123 99 124 if (data.old_parent == data.parent) { … … 145 170 cache: false, 146 171 }).done(function(response) { 147 // console.log('done', response); 148 ajaxReload('contenu'); 172 173 if (response) { 174 var nb_success = Object.keys(response.success).length; 175 var nb_errors = Object.keys(response.errors).length; 176 if (nb_success) { 177 $("#contenu #mytree_actions").after( 178 "<p class='success removable' onClick='$(this).remove();'>" + 179 ((nb_success == 1) 180 ? options.textes.deplacement.reussi 181 : options.textes.deplacement.reussis.replace('@nb@', nb_success)) + 182 "</p>" 183 ); 184 } 185 if (nb_errors) { 186 var texte = ((nb_errors == 1) 187 ? options.textes.deplacement.echec 188 : options.textes.deplacement.echecs.replace('@nb@', nb_errors)); 189 $.each(response.errors, function(i, error) { 190 texte += "<br />[ " + i + "] " + error; 191 }); 192 $("#contenu #mytree_actions").after( 193 "<p class='error removable' onClick='$(this).remove();'>" + texte + "</p>" 194 ); 195 } 196 } 197 198 if (recharge_plan) { 199 clearTimeout(recharge_plan); 200 } 201 recharge_plan = setTimeout(function () { 202 ajaxReload('plan'); 203 }, 500); 149 204 }); 150 205 -
_plugins_/plan/branches/v1/prive/squelettes/contenu/plan.html
r91591 r91599 7 7 (function($){ 8 8 $(document).ready(function(){ 9 $('body.plan #contenu #racine').spiptree({10 drag: [(#AUTORISER{configurer}|?{true,false})],11 statut: "#ENV{statut}",12 urls: {13 plan: "[(#VAL{plan}|generer_url_action{"", 1})]",14 deplacer: "[(#VAL{deplacer_objets}|generer_url_action{"", 1})]"15 },16 default: {17 icon: "[(#VAL{rubrique}|objet_icone{16}|extraire_attribut{src})]"18 },19 objets: [20 <BOUCLE_objets(DATA){source table,#REM|plan_lister_objets_rubrique}{", "}>21 {22 icon: "[(#VALEUR|objet_icone{16}|extraire_attribut{src})]",23 type: "[(#VALEUR|objet_type)]"24 }25 </BOUCLE_objets>26 ]27 });28 9 $('body.plan #contenu #mytree_actions .pliage').html( 29 10 "<a href=\"#\" onClick=\"My_jQuery('#racine').jstree('open_all'); return false;\"><:lien_tout_deplier:></a> | " + … … 68 49 69 50 #BOITE_OUVRIR{'', simple} 70 <div id="racine"> 71 <INCLURE{fond=prive/squelettes/inclure/plan-rubriques, id_parent=0, statut=#GET{statut}, objet=#GET{objet}, lister}> 72 </div> 51 <INCLURE{fond=prive/squelettes/inclure/plan, statut=#GET{statut}, objet=#GET{objet}, lister, ajax=plan}> 73 52 #BOITE_FERMER -
_plugins_/plan/branches/v1/prive/squelettes/inclure/plan.html
r91595 r91599 5 5 drag: [(#AUTORISER{configurer}|?{true,false})], 6 6 statut: "#ENV{statut}", 7 textes: { 8 deplacement: { 9 confirmation: <:plan:confirmer_deplacement|json_encode:>, 10 reussi: <:plan:deplacement_reussi|json_encode:>, 11 reussis: <:plan:deplacements_reussis|json_encode:>, 12 echec: <:plan:deplacement_en_echec|json_encode:>, 13 echecs: <:plan:deplacements_en_echec|json_encode:>, 14 } 15 }, 7 16 urls: { 8 17 plan: "[(#VAL{plan}|generer_url_action{"", 1})]", … … 22 31 }); 23 32 }); 24 })( jQuery);33 })(My_jQuery); 25 34 </script> 26 35
Note: See TracChangeset
for help on using the changeset viewer.