From 3dca7d03e80516a468f851e9e80e43261a6f4f09 Mon Sep 17 00:00:00 2001
From: "cedric@yterium.com" <>
Date: Sat, 29 Jan 2011 16:04:31 +0000
Subject: [PATCH] debug de la colonne document, qui passe en deux parties
 separee (formulaire + liste de documents en ajax), comme le reste. Il manque
 la possibilite d'une callback sur ajaxReload, ce qui est genant (pour mettre
 le focus sur le lien ''modifier" ici, ou autre operation qui depend du
 rechargement en general)

---
 .gitattributes                                |  2 +-
 formulaires/inc-upload_document.html          | 78 +++++++++----------
 formulaires/joindre_document.php              | 19 +++--
 inc/documents.php                             |  4 +-
 prive/editer/colonne_document.html            |  3 +-
 .../squelettes/inclure/colonne-documents.html |  0
 6 files changed, 54 insertions(+), 52 deletions(-)
 rename formulaires/inc-colonne_documents.html => prive/squelettes/inclure/colonne-documents.html (100%)

diff --git a/.gitattributes b/.gitattributes
index 7c6716be..13761c17 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -18,7 +18,6 @@ formulaires/editer_document.html -text
 formulaires/editer_document.php -text
 formulaires/illustrer_document.html -text
 formulaires/illustrer_document.php -text
-formulaires/inc-colonne_documents.html -text
 formulaires/inc-lister_archive_jointe.html -text
 formulaires/inc-upload_document.html -text
 formulaires/joindre_document.html -text
@@ -88,6 +87,7 @@ prive/squelettes/contenu/document_edit.html -text
 prive/squelettes/contenu/mediatheque.html -text
 prive/squelettes/inclure/ajouter-documents.html -text
 prive/squelettes/inclure/bouton-supprimer-orphelins.html -text
+prive/squelettes/inclure/colonne-documents.html -text
 prive/squelettes/inclure/document_infos.html -text
 prive/squelettes/inclure/mediatheque-galerie.html -text
 prive/squelettes/inclure/mediatheque-navigation.html -text
diff --git a/formulaires/inc-upload_document.html b/formulaires/inc-upload_document.html
index 86882f1c..52440efe 100644
--- a/formulaires/inc-upload_document.html
+++ b/formulaires/inc-upload_document.html
@@ -1,9 +1,15 @@
 #SET{domid,_#ENV{mode}|concat{'_',#ENV{id,new}}}
+#SET{methode,upload}
+[(#ENV{joindre_mediatheque}|oui)#SET{methode,mediatheque}]
+[(#ENV{joindre_distant}|oui)#SET{methode,distant}]
+[(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
+
+<div id="defaultsubmit#GET{domid}"></div>
 [
 
 
 (#REM) Formulaire d'upload de fichier
-]<div class='joindre_mode#GET{domid}' id='joindre_upload#GET{domid}'>
+]<div class='joindre_mode#GET{domid}[(#GET{methode}|=={upload}|non)jsnone]' id='joindre_upload#GET{domid}'>
 	<ul>
 		<li class='editer_fichier_upload[ (#ENV**{erreurs}|table_valeur{fichier_upload}|oui)erreur]'>
 			<label for='fichier_upload#GET{domid}'><:info_telecharger:></label>[
@@ -15,10 +21,10 @@
 		<:medias:bouton_download_depuis:>
 		<:medias:bouton_download_local:>
 		[(#ENV{mediatheque,''}|oui)
-		| <a href='#' onclick="if (jQuery('#joindre_media#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_media#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_par_mediatheque:></a>]
+		| <a href='#' onclick="change_methode('mediatheque');return false;"><:medias:bouton_download_par_mediatheque:></a>]
 		[(#ENV{proposer_ftp,''}|oui)
-		| <a href='#' onclick="if (jQuery('#joindre_ftp#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_ftp#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_par_ftp:></a>]
-		| <a href='#' onclick="if (jQuery('#joindre_distant#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_distant#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_sur_le_web:></a>
+		| <a href='#' onclick="change_methode('ftp');return false;"><:medias:bouton_download_par_ftp:></a>]
+		| <a href='#' onclick="change_methode('distant');return false;"><:medias:bouton_download_sur_le_web:></a>
 	</div>
 	<p class='boutons'><input class='submit' type="submit" name="joindre_upload" value="<:medias:bouton_upload:>"/></p>
 </div>[
@@ -28,7 +34,7 @@
 
 (#REM) Formulaire pour document dans mediatheque
 ][(#ENV{mediatheque,''}|oui)
-<div class='joindre_mode#GET{domid}' id='joindre_media#GET{domid}'>
+<div class='joindre_mode#GET{domid}[(#GET{methode}|=={mediatheque}|non)jsnone]' id='joindre_mediatheque#GET{domid}'>
 	<ul>
 		<li class='editer_refdoc_joindre[ (#ENV**{erreurs}|table_valeur{refdoc_joindre}|oui)erreur]'>
 			<label for='refdoc_joindre#GET{domid}'><:medias:label_refdoc_joindre:></label>[
@@ -50,11 +56,11 @@
 	</script>
 	<div class='sourceup'>
 		<:medias:bouton_download_depuis:>
-		<a href='#' onclick="if (jQuery('#joindre_upload#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_upload#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_local:></a>
+			<a href='#' onclick="change_methode('upload');return false;"><:medias:bouton_download_local:></a>
 		| <:medias:bouton_download_par_mediatheque:>
 		[(#ENV{proposer_ftp,''}|oui)
-		| <a href='#' onclick="if (jQuery('#joindre_ftp#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_ftp#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_par_ftp:></a>]
-		| <a href='#' onclick="if (jQuery('#joindre_distant#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_distant#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_sur_le_web:></a>
+		| <a href='#' onclick="change_methode('ftp');return false;"><:medias:bouton_download_par_ftp:></a>]
+		| <a href='#' onclick="change_methode('distant');return false;"><:medias:bouton_download_sur_le_web:></a>
 	</div>
 	<p class='boutons'><input class='submit' type="submit" name="joindre_mediatheque" value="<:medias:bouton_attacher_document:>"/></p>
 </div>
@@ -65,7 +71,7 @@
 
 (#REM) Formulaire pour upload ftp
 ][(#ENV{proposer_ftp,''}|oui)
-<div class='joindre_mode#GET{domid}' id='joindre_ftp#GET{domid}'>
+<div class='joindre_mode#GET{domid}[(#GET{methode}|=={ftp}|non)jsnone]' id='joindre_ftp#GET{domid}'>
 	[
 	<ul>
 		<li class='editer_cheminftp[ (#ENV**{erreurs}|table_valeur{cheminftp}|oui)erreur]'>
@@ -77,21 +83,23 @@
 			</select>
 		</li>
 	</ul>][(#ENV{_dir_upload_ftp}|et{#ENV{_options_upload_ftp}|non}|oui)
-	<div class="infos">
+	<p class="infos">
 	[(#VAL{info_installer_ftp}|_T{#ARRAY{upload,#ENV*{_dir_upload_ftp}}})] #AIDER{ins_upload}
-	</div>
+	</p>
 	]
 	<div class='sourceup'>
 		<:medias:bouton_download_depuis:>
-		<a href='#' onclick="if (jQuery('#joindre_upload#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_upload#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_local:></a>
+		<a href='#' onclick="change_methode('upload');return false;"><:medias:bouton_download_local:></a>
 		[(#ENV{mediatheque,''}|oui)
-		| <a href='#' onclick="if (jQuery('#joindre_media#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_media#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_par_mediatheque:></a>]
+		| <a href='#' onclick="change_methode('mediatheque');return false;"><:medias:bouton_download_par_mediatheque:></a>]
 		| <:medias:bouton_download_par_ftp:>
-		| <a href='#' onclick="if (jQuery('#joindre_distant#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_distant#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_sur_le_web:></a>
+		| <a href='#' onclick="change_methode('distant');return false;"><:medias:bouton_download_sur_le_web:></a>
 	</div>
-	[(#ENV*{_options_upload_ftp}|oui)
-	<p class='boutons'><input class='submit' type="submit" name="joindre_ftp" value="<:bouton_choisir:>"/></p>
-	]
+	<p class='boutons'>
+		[(#ENV*{_options_upload_ftp}|oui)
+		<input class='submit' type="submit" name="joindre_ftp" value="<:bouton_choisir:>"/>
+		]
+	</p>
 </div>
 ][
 
@@ -99,7 +107,7 @@
 
 
 (#REM) Formulaire pour document distant
-]<div class='joindre_mode#GET{domid}' id='joindre_distant#GET{domid}'>
+]<div class='joindre_mode#GET{domid}[(#GET{methode}|=={distant}|non)jsnone]' id='joindre_distant#GET{domid}'>
 	<ul>
 		<li class='editer_url[ (#ENV**{erreurs}|table_valeur{url}|oui)erreur]'>
 			<label for='url#GET{domid}'><:info_referencer_doc_distant:></label>[
@@ -109,11 +117,11 @@
 	</ul>
 	<div class='sourceup'>
 		<:medias:bouton_download_depuis:>
-		<a href='#' onclick="if (jQuery('#joindre_upload#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_upload#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_local:></a>
+			<a href='#' onclick="change_methode('upload');return false;"><:medias:bouton_download_local:></a>
 		[(#ENV{mediatheque,''}|oui)
-		| <a href='#' onclick="if (jQuery('#joindre_media#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_media#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_par_mediatheque:></a>]
+		| <a href='#' onclick="change_methode('mediatheque');return false;"><:medias:bouton_download_par_mediatheque:></a>]
 		[(#ENV{proposer_ftp,''}|oui)
-		| <a href='#' onclick="if (jQuery('#joindre_ftp#GET{domid}').is(':hidden')) {jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');jQuery('#joindre_ftp#GET{domid}').slideDown('fast');}return false;"><:medias:bouton_download_par_ftp:></a>]
+		| <a href='#' onclick="change_methode('ftp');return false;"><:medias:bouton_download_par_ftp:></a>]
 		| <:medias:bouton_download_sur_le_web:>
 	</div>
 	<p class='boutons'><input class='submit' type="submit" name="joindre_distant" value="<:bouton_choisir:>"/></p>
@@ -126,24 +134,14 @@
 ][<ul><li class='fieldset deballer_zip'>(#ENV**{erreurs}|table_valeur{lister_contenu_archive})</li></ul>]
 
 <script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
-setTimeout(function(){
-if (window.jQuery){
-jQuery(document).ready(function(){
-	[(#ENV{joindre_upload}|oui) 
-	jQuery('.joindre_mode#GET{domid}:not(#joindre_upload#GET{domid})').hide();
-	]
-	[(#ENV{joindre_mediatheque}|oui)
-	jQuery('.joindre_mode#GET{domid}:not(#joindre_media#GET{domid})').hide();
-	]
-	[(#ENV{joindre_distant}|oui)
-	jQuery('.joindre_mode#GET{domid}:not(#joindre_distant#GET{domid})').hide();
-	]
-	[(#ENV{joindre_ftp}|oui)
-	jQuery('.joindre_mode#GET{domid}:not(#joindre_ftp#GET{domid})').hide();
-	]
-	if (jQuery('.joindre_mode#GET{domid}:visible').length>1)
-		jQuery('.joindre_mode#GET{domid}:not(#joindre_upload#GET{domid})').hide();
-});
+function change_methode(methode){
+	var id = "#joindre_"+methode+"#GET{domid}";
+	if (jQuery(id).is(':hidden')) {
+		jQuery('div.joindre_mode#GET{domid}:visible').slideUp('fast');
+		jQuery(id).slideDown('fast');
+	}
+	// placer en haut du formulaire les boutons submit par defaut correspondant a la methode active
+	jQuery("#defaultsubmit#GET{domid}").html('').append(jQuery(id).find('.boutons').eq(-1).find('input').clone(true));
 }
-},10);
+jQuery(function(){change_methode('#GET{methode}');});
 /*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
diff --git a/formulaires/joindre_document.php b/formulaires/joindre_document.php
index 69f25c34..1289d2cc 100644
--- a/formulaires/joindre_document.php
+++ b/formulaires/joindre_document.php
@@ -73,7 +73,9 @@ function formulaires_joindre_document_charger_dist($id_document='new',$id_objet=
 	$valeurs['proposer_ftp'] = ($valeurs['_options_upload_ftp'] or $valeurs['_dir_upload_ftp']);
 	
 	if ($galerie){
-		# colonne documents ou portfolio ?
+		# passer optionnellement une galerie jointe au form
+		# plus utilise nativement, on prefere la mise a jour
+		# apres upload par ajaxReload('documents')
 		$valeurs['_galerie'] = $galerie;
 	}
 	if ($objet AND $id_objet){
@@ -187,17 +189,20 @@ function formulaires_joindre_document_traiter_dist($id_document='new',$id_objet=
 		if (count($messages_erreur))
 			$res['message_erreur'] = implode('<br />',$messages_erreur);
 		if ($nb_docs){
-			$sel = "#doc".implode(",#doc",$sel);
-			$js = "if (window.jQuery) jQuery(function(){ajaxReload('documents');});";
-			if ($nb_docs==1)
-				$js .= "setTimeout(function(){if (window.jQuery) jQuery('#doc$ancre a.editbox').get(0).focus();},30);";
-			$js = "<script type='text/javascript'>$js</script>";
+			#$sel = "#doc".implode(",#doc",$sel);
 			$res['message_ok'] = singulier_ou_pluriel($nb_docs,'medias:document_installe_succes','medias:nb_documents_installe_succes').$js;
 		}
 		if ($ancre)
 			$res['redirect'] = "#doc$ancre";
 	}
-	
+	if (isset($res['message_ok'])){
+		$js = "if (window.jQuery) jQuery(function(){ajaxReload('documents');});";
+		if ($ancre)
+			$js .= "setTimeout(function(){if (window.jQuery) jQuery('#doc$ancre a.editbox').get(0).focus();},900);";
+		$js = "<script type='text/javascript'>$js</script>";
+	  $res['message_ok'] .= $js;
+	}
+
 	return $res;
 }
 
diff --git a/inc/documents.php b/inc/documents.php
index 9409876c..1c34b9ba 100644
--- a/inc/documents.php
+++ b/inc/documents.php
@@ -195,9 +195,7 @@ function affiche_raccourci_doc($doc, $id, $align) {
 		$align='center';
 	}
 
-	return
-	  ((++$num > 1) ? "" : http_script('',  "spip_barre.js"))
-		. "\n<div style='text-align: $align'$onclick>&lt;$doc$id$pipe&gt;</div>\n";
+	return "\n<div style='text-align: $align'$onclick>&lt;$doc$id$pipe&gt;</div>\n";
 }
 
 ?>
diff --git a/prive/editer/colonne_document.html b/prive/editer/colonne_document.html
index 46416b45..1103714c 100644
--- a/prive/editer/colonne_document.html
+++ b/prive/editer/colonne_document.html
@@ -1,6 +1,7 @@
 <div class='ajax'>
-#FORMULAIRE_JOINDRE_DOCUMENT{new,#ENV{id_objet},#ENV{objet},'auto','formulaires/inc-colonne_documents'}
+#FORMULAIRE_JOINDRE_DOCUMENT{new,#ENV{id_objet},#ENV{objet}}
 </div>
+<INCLURE{fond=prive/squelettes/inclure/colonne-documents,env,ajax=documents}>
 [<script type="text/javascript" src='(#CHEMIN{javascript/jquery.MultiFile.js})'></script>
 <script type='text/javascript'>
 jQuery.MultiFile();
diff --git a/formulaires/inc-colonne_documents.html b/prive/squelettes/inclure/colonne-documents.html
similarity index 100%
rename from formulaires/inc-colonne_documents.html
rename to prive/squelettes/inclure/colonne-documents.html
-- 
GitLab