From 667cab34a4b484d9869e6c94c5e2a7b864c90a9c Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Tue, 18 Apr 2006 21:40:16 +0000
Subject: [PATCH] =?UTF-8?q?des=20petits=20bugs=20de=20html=20et=20un=20tes?=
 =?UTF-8?q?t=20d'interface=20:=20lorsqu'on=20modifie=20le=20contenu=20d'un?=
 =?UTF-8?q?=20article,=20on=20"g=C3=A8le"=20les=20formulaires=20d'ajout=20?=
 =?UTF-8?q?de=20document/image=20=C3=A0=20tester,=20mais=20je=20pense=20qu?=
 =?UTF-8?q?'en=20fait=20=C3=A7a=20risque=20d'=C3=AAtre=20assez=20aga=C3=A7?=
 =?UTF-8?q?ant...=20cf.=20ticket=20#74?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/articles_edit.php   |  8 ++++++--
 ecrire/img_pack/presentation.js | 14 ++++++++++++++
 ecrire/inc/documents.php        |  4 ++--
 ecrire/inc/layer.php            |  2 +-
 ecrire/inc/minipres.php         |  4 ++--
 ecrire/inc/presentation.php     | 10 +++++-----
 6 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/ecrire/exec/articles_edit.php b/ecrire/exec/articles_edit.php
index 0e1e5c4702..1787be9162 100644
--- a/ecrire/exec/articles_edit.php
+++ b/ecrire/exec/articles_edit.php
@@ -147,7 +147,7 @@ echo "<P><HR><P>";
 	// (et donc: pas de lien de traduction)
 	if ($lier_trad) $id_article = "";
 	
-	echo generer_url_post_ecrire("articles", ($id_article ? "id_article=$id_article" : ""),'formulaire');
+	echo generer_url_post_ecrire("articles", ($id_article ? "id_article=$id_article" : ""),'formulaire','',' onchange="disable_other_forms(this);"');
 
 	if ($new == 'oui')
 		echo "<INPUT TYPE='Hidden' NAME='new' VALUE='oui'>";
@@ -160,7 +160,11 @@ echo "<P><HR><P>";
 	if (($options == "avancees" AND $articles_surtitre) OR $surtitre) {
 		echo "<B>"._T('texte_sur_titre')."</B>";
 		echo aide ("arttitre");
-		echo "<BR><INPUT TYPE='text' NAME='surtitre' CLASS='forml' VALUE=\"$surtitre\" SIZE='40'><P>";
+		echo "<BR><INPUT TYPE='text' NAME='surtitre' CLASS='forml' VALUE=\"$surtitre\" SIZE='40'"
+// Pour faire fonctionner le onchange sur Safari il faudrait modifier
+// chaque input. Conclusion : c'est la mauvaise methode.
+// .' onchange="disable_other_forms(this.parentNode);"'.
+."><P>";
 	}
 	else {
 		echo "<INPUT TYPE='hidden' NAME='surtitre' VALUE=\"$surtitre\" >";
diff --git a/ecrire/img_pack/presentation.js b/ecrire/img_pack/presentation.js
index 2b1a4f63e5..cfd7ef4b75 100644
--- a/ecrire/img_pack/presentation.js
+++ b/ecrire/img_pack/presentation.js
@@ -254,3 +254,17 @@ function puce_statut(selection){
 		return "puce-poubelle.gif";
 	}
 }
+
+// lorsqu'on touche a un formulaire, desactiver les autres
+// (a voir : onchange=... fonctionne sous FF, mais pas Safari)
+function disable_other_forms(me) {
+	var items = document.getElementsByTagName('form');
+	for (var j = 0; j < items.length; j++) {
+		if (items[j] != me) {
+			var fields = items[j].getElementsByTagName('input');
+			for (var k = 0; k < fields.length; k++) {
+				fields[k].disabled=true;
+			}
+		}
+	}
+}
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 340dd52a70..b337bb1e8a 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -581,7 +581,8 @@ function construire_upload($corps, $args, $enctype='')
 	return "\n<form method='post' action='" . generer_url_action('joindre') .
 	  "'" .
 	  (!$enctype ? '' : " enctype='$enctype'") .
-	  " style='border: 0px; margin: 0px;'>\n" .
+	  " style='border: 0px; margin: 0px;'
+	  >\n" .
 	  "<div>" .
   	  "\n<input type='hidden' name='action' value='joindre' />" .
 	  $res . $corps . "</div></form>";
@@ -991,7 +992,6 @@ function afficher_documents_colonne($id, $type="article", $flag_modif = true) {
 	echo "<a name='images'></a>\n";
 	$titre_cadre = _T('bouton_ajouter_image').aide("ins_img");
 	debut_cadre_relief("image-24.gif", false, "creer.gif", $titre_cadre);
-
 	echo afficher_upload($id, _T('info_telecharger'),'','vignette',$type);
 
 	fin_cadre_relief();
diff --git a/ecrire/inc/layer.php b/ecrire/inc/layer.php
index 75ef646179..f2f4d2ee5a 100644
--- a/ecrire/inc/layer.php
+++ b/ecrire/inc/layer.php
@@ -32,7 +32,7 @@ function debut_block_invisible($nom_block){
 	}
 	
 	return http_script("vis['".$numero_block["$nom_block"]."'] = 'hide';
-document.write('<div id=\"Layer".$numero_block["$nom_block"]."\" style=\"display: none; margin-top: 1;\">');",
+document.write('<div id=\"Layer".$numero_block["$nom_block"]."\" style=\"display: none; margin-top: 1px;\">');",
 			      '',
 			   "<div id='Layer".$numero_block["$nom_block"]."' style='display: block;'>");
 
diff --git a/ecrire/inc/minipres.php b/ecrire/inc/minipres.php
index eeca797b8f..4d24104843 100644
--- a/ecrire/inc/minipres.php
+++ b/ecrire/inc/minipres.php
@@ -192,11 +192,11 @@ function http_style_background($img, $att='')
 
 // Attention: generer_url_ecrire peut rajouter des args
 
-function generer_url_post_ecrire($script, $args='', $name='', $ancre='') {
+function generer_url_post_ecrire($script, $args='', $name='', $ancre='', $onchange='') {
 	include_spip('inc/filtres');
 	$action = generer_url_ecrire($script, $args);
 	if ($name) $name = " name='$name'";
-	return "\n<form action='$action$ancre'$name method='post'>"
+	return "\n<form action='$action$ancre'$name method='post'$onchange>"
 	.form_hidden($action);
 }
 
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 0d0b6fca15..f15f1655a2 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -98,7 +98,7 @@ function debut_cadre($style, $icone = "", $fonction = "", $titre = "") {
 	if ($spip_display != 1 AND $spip_display != 4 AND strlen($icone) > 1) {
 		$ret .= "<div style='position: absolute; top: -16px; $spip_lang_left: 10px;'>";
 		if ($fonction) {
-			$ret .= "<div " . http_style_background($icone, "no-repeat; padding: 0px; margin: 0px");
+			$ret .= "<div " . http_style_background($icone, "no-repeat; padding: 0px; margin: 0px") . ">";
 			$ret .= http_img_pack($fonction, "", "");
 			$ret .= "</div>";
 		}
@@ -2036,8 +2036,8 @@ function init_body($rubrique='asuivre', $sous_rubrique='asuivre', $onLoad='', $i
 	$id_rubrique = intval($id_rubrique);
 
 	echo pipeline('body_prive',"<body ". _ATTRIBUTES_BODY
-		. 'onLoad="'
-		. "setActiveStyleSheet('invisible');$browser_verifForm$onLoad"
+		. ' onLoad="'
+		. "forms_manager();setActiveStyleSheet('invisible');$browser_verifForm$onLoad"
 		. '">');
 
 	if ($spip_ecran == "large") $largeur = 974;
@@ -2313,7 +2313,7 @@ if (true /*$gadgets*/) {
 		if (spip_num_rows($vos_articles) > 0) {
 			$gadget .= "<div>&nbsp;</div>";
 			$gadget .= "<div class='bandeau_rubriques' style='z-index: 1;'>";
-			$gadget .= bandeau_titre_boite2(afficher_plus(generer_url_ecrire("articles_page",""))._T('info_en_cours_validation'), "article-24.gif", '', '', false);
+			$gadget .= bandeau_titre_boite2(afficher_plus(generer_url_ecrire("articles_page",""))._T('info_en_cours_validation'), "article-24.gif", $couleur_foncee, 'white', false);
 			$gadget .= "\n<div class='plan-articles'>\n";
 			while($row = spip_fetch_array($vos_articles)) {
 				$id_article = $row['id_article'];
@@ -2330,7 +2330,7 @@ if (true /*$gadgets*/) {
 		if (spip_num_rows($vos_articles) > 0) {
 			$gadget .= "<div>&nbsp;</div>";
 			$gadget .= "<div class='bandeau_rubriques' style='z-index: 1;'>";
-			$gadget .= bandeau_titre_boite2(afficher_plus('./')._T('info_articles_proposes'), "article-24.gif", '', '', false);
+			$gadget .= bandeau_titre_boite2(afficher_plus('./')._T('info_articles_proposes'), "article-24.gif", $couleur_foncee, 'white', false);
 			$gadget .= "<div class='plan-articles'>";
 			while($row = spip_fetch_array($vos_articles)) {
 				$id_article = $row['id_article'];
-- 
GitLab