Skip to content
Extraits de code Groupes Projets
Valider b6e8caa3 rédigé par esj's avatar esj
Parcourir les fichiers

Suite de [8542]: le test sur les touches lors d'un envoi Ajax en Post exige...

Suite de [8542]: le test sur les touches lors d'un envoi Ajax en Post exige qu''''AjaxSqueeze''' soit déclenchée par un '''onclick''' sur le bouton de soumission, et non par un '''onsubmit''' sur la balise '''form''', car cet événement ne donne pas l'état du clavier. Donc, introduction de '''ajax_action_post''',  clone de '''ajax_action_auteur''', traitant en exclusivité les Ajax en Post avec le bouton de soumission approprié. Bonne occasion d'évacuer quelques attributs '''align''' avant que le validateur XHTML strict ne les signale.

Reste à transformer un appel dont le formulaire est le changement de langues (qui a beaucoup de cas d'appel autres) et à réécrire AjaxSqueeze et ses sbires pour obtenir la fonctionnalite [8542] en Post.
parent 34592687
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -246,7 +246,7 @@ function boites_de_config_articles($id_article)
{
if (autoriser('modererforum', 'article', $id_article)) {
$regler_moderation = charger_fonction('regler_moderation', 'inc');
$regler = $regler_moderation($id_article,"articles","id_article=$id_article");
$regler = $regler_moderation($id_article,"articles","id_article=$id_article") . '<br />';
}
if (autoriser('modererpetition', 'article', $id_article)) {
......
......@@ -101,6 +101,49 @@ function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args
}
}
function ajax_action_post($action, $arg, $retour, $gra, $corps, $clic, $atts, $args_ajax='')
{
if (strpos($args,"#")===FALSE)
$ancre = "$action-" . intval($arg);
else {
$ancre = explode("#",$args);
$args = $ancre[0];
$ancre = $ancre[1];
}
if (_SPIP_AJAX !== 1) {
return redirige_action_auteur($action, $arg, $retour,
($gra . '#' . $ancre),
("<div>"
. $corps
. "<span"
. $atts
. "><input type='submit' class='fondo' value='"
. $clic
."' /></span></div>"),
"\nmethod='post'");
} else {
if ($gra AND !$args_ajax) $args_ajax = "&$gra";
$corps = "<div>"
. $corps
. "<input type='submit' value='"
. $clic
. "' onclick="
. ajax_action_declencheur('this.form', $ancre)
. " $atts/></div>";
return redirige_action_auteur($action,
$arg,
$action,
"var_ajaxcharset=utf-8&script=$retour$args_ajax",
$corps ,
" method='post'");
}
}
//
// Attention pour que Safari puisse manipuler cet evenement
// il faut onsubmit="return AjaxSqueeze(x,'truc',...)"
......@@ -108,7 +151,7 @@ function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args
//
// http://doc.spip.org/@ajax_action_declencheur
function ajax_action_declencheur($request, $noeud, $fct_ajax='') {
if ($request != 'this')
if (strpos($request, 'this') !== 0)
$request = "'".$request."'";
return '"return AjaxSqueeze('
......
......@@ -55,28 +55,29 @@ onchange=\"findObj_forcer('valider_date').style.visibility='visible';\"";
. "</b>"
. aide('artdate');
$masque = "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>"
. afficher_jour($jour, "name='jour' $js", true)
$masque =
afficher_jour($jour, "name='jour' $js", true)
. afficher_mois($mois, "name='mois' $js", true)
. afficher_annee($annee, "name='annee' $js")
. (($type != 'article')
? ''
: (' - '
. afficher_heure($heure, "name='heure' $js")
. afficher_minute($minute, "name='minute' $js")))
. "<span class='visible_au_chargement' id='valider_date'>"
. " &nbsp;\n<input type='submit' class='fondo' value='"
. _T('bouton_changer')."' />"
. "</span>"
. afficher_minute($minute, "name='minute' $js")))
. "&nbsp;\n";
$res = "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>"
. ajax_action_post("dater",
"$id/$type",
$script,
"id_$type=$id",
$masque,
_T('bouton_changer'),
" class='fondo visible_au_chargement' id='valider_date'",
"&id=$id&type=$type")
. "</div>";
$bloc = block_parfois_visible('datepub', $invite, $masque, 'text-align: left');
$res = ajax_action_auteur("dater",
"$id/$type",
$script,
"id_$type=$id",
$bloc,
"&id=$id&type=$type");
$res = block_parfois_visible('datepub', $invite, $res, 'text-align: left');
} else {
$res = "\n<div><b> <span class='verdana1'>"
......@@ -107,9 +108,7 @@ onchange=\"findObj_forcer('valider_date').style.visibility='visible';\"";
. "</b>";
$masque =
"<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
'<table cellpadding="0" cellspacing="0" border="0" width="100%">' .
"<tr><td align='$spip_lang_left'>" .
"<div style='float: $spip_lang_left; width: 80%;'>" .
'<input type="radio" name="avec_redac" value="non" id="avec_redac_on"' .
($possedeDateRedac ? '' : ' checked="checked"') .
" onclick=$js" .
......@@ -124,26 +123,24 @@ onchange=\"findObj_forcer('valider_date').style.visibility='visible';\"";
afficher_jour($jour_redac, "name='jour_redac' class='fondl' onchange=$js", true) .
afficher_mois($mois_redac, "name='mois_redac' class='fondl' onchange=$js", true) .
"<input type='text' name='annee_redac' class='fondl' value='".$annee_redac."' size='5' maxlength='4' onclick=$js />" .
'<div align="center">' .
'<div style="text-align: center; width: 80%;">' .
afficher_heure($heure_redac, "name='heure_redac' class='fondl' onchange=$js", true) .
afficher_minute($minute_redac, "name='minute_redac' class='fondl' onchange=$js", true) .
"</div>\n" .
"</td><td align='$spip_lang_right'>" .
"<span class='visible_au_chargement' id='valider_date_redac'>" .
'<input type="submit" class="fondo" value="'.
_T('bouton_changer').'" />' .
"</span>" .
'</td></tr>' .
'</table>' .
'</div>';
$bloc = block_parfois_visible('dateredac', $invite, $masque, 'text-align: left');
$res .= ajax_action_auteur("dater",
"$id/$type",
$script,
"id_$type=$id",
$bloc,
"&id=$id&type=$type");
"</div></div>";
$masque = "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
ajax_action_post("dater",
"$id/$type",
$script,
"id_$type=$id",
$masque,
_T('bouton_changer'),
" style='float: $spip_lang_right; margin-top: 20px;' class='fondo visible_au_chargement' id='valider_date_redac'",
"&id=$id&type=$type")
. '</div>';
$res .= block_parfois_visible('dateredac', $invite, $masque, 'text-align: left');
}
} else {
......
......@@ -267,22 +267,20 @@ function ajouter_auteurs_objet($type, $id, $cond_les_auteurs,$script_edit, $arg_
. _T('titre_cadre_ajouter_auteur')
. "</b></span>\n";
$sel = (($num <= _SPIP_SELECT_MIN_AUTEURS)
? ("$text<select name='nouv_auteur' size='1' style='width:150px;' class='fondl' onchange=\"$js\">" .
if ($num <= _SPIP_SELECT_MIN_AUTEURS){
$sel = "$text<select name='nouv_auteur' size='1' style='width:150px;' class='fondl' onchange=\"$js\">" .
objet_auteur_select($query) .
"</select>" .
"<span class='visible_au_chargement' id='valider_ajouter_auteur'>" .
" <input type='submit' value='"._T('bouton_ajouter')."' class='fondo' />" .
"</span>")
: (((_SPIP_AJAX < 1) OR
($num >= _SPIP_SELECT_MAX_AUTEURS))
? ("$text <input type='text' name='cherche_auteur' onclick=\"$js\" class='fondl' value='' size='20' /><span class='visible_au_chargement' id='valider_ajouter_auteur'>\n<input type='submit' value='"._T('bouton_chercher')."' class='fondo' /></span>")
: (selecteur_auteur_ajax($type, $id, $js, $text)
. "<span class='visible_au_chargement' id='valider_ajouter_auteur'>"
. " <input type='submit' value='"._T('bouton_ajouter')."' class='fondo' />"
. "</span>")));
return ajax_action_auteur('editer_auteurs', "$id,$type",$script_edit, "id_{$type}=$id", $sel,$arg_ajax);
"</select>";
$clic = _T('bouton_ajouter');
} else if ((_SPIP_AJAX < 1) OR ($num >= _SPIP_SELECT_MAX_AUTEURS)) {
$sel = "$text <input type='text' name='cherche_auteur' onclick=\"$js\" class='fondl' value='' size='20' />";
$clic = _T('bouton_chercher');
} else {
$sel = selecteur_auteur_ajax($type, $id, $js, $text);
$clic = _T('bouton_ajouter');
}
return ajax_action_post('editer_auteurs', "$id,$type", $script_edit, "id_{$type}=$id", $sel, $clic, "class='fondo visible_au_chargement' id='valider_ajouter_auteur'", $arg_ajax);
}
// http://doc.spip.org/@objet_auteur_select
......
......@@ -246,23 +246,22 @@ function formulaire_mot_remplace($id_groupe, $id_mot, $url_base, $table, $table_
$id = $row_autres['id_mot'];
$le_titre_mot = supprimer_tags(typo($row_autres['titre']));
$selected = ($id == $id_mot) ? " selected='selected'" : "";
$s .= "<option value='$id'$selected> $le_titre_mot</option>";
$s .= "\n<option value='$id'$selected> $le_titre_mot</option>";
}
$ancre = "valider_groupe_$id_groupe";
// forcer le recalcul du noeud car on est en Ajax
$jscript1 = "findObj_forcer('$ancre').style.visibility='visible';";
return ajax_action_auteur('editer_mot', "$id_objet,$id_mot,$table,$table_id,$objet", $url_base, "$table_id=$id_objet", (
"<select name='nouv_mot' onchange=\"$jscript1\""
$corps = "<select name='nouv_mot' onchange=\"$jscript1\""
. " class='fondl spip_xx-small' style='width:90px;'>"
. $s
. "</select>"
. "<span class='visible_au_chargement' id='$ancre'>"
. "\n&nbsp; <input type='submit' value='"
. _T('bouton_changer')
. "' class='fondo spip_xx-small' />"
. "</span>"),"&id_objet=$id_objet&objet=$objet");
. "</select>"
. "<span >\n&nbsp;" ;
$t = _T('bouton_changer');
return ajax_action_post('editer_mot', "$id_objet,$id_mot,$table,$table_id,$objet", $url_base, "$table_id=$id_objet",$corps, $t, " class='fondo spip_xx-small visible_au_chargement' id='$ancre'", "&id_objet=$id_objet&objet=$objet");
}
......@@ -306,15 +305,17 @@ function formulaire_mots_cles($id_groupes_vus, $id_objet, $les_mots, $table, $ta
$ajouter ='';
while ($row = spip_fetch_array($result_groupes)) {
if ($menu = menu_mots($row, $id_groupes_vus, $les_mots)) {
$menu = ajax_action_auteur('editer_mot',
$id_groupe = $row['id_groupe'];
list($corps, $clic) = $menu;
$ajouter .= ajax_action_post('editer_mot',
"$id_objet,,$table,$table_id,$objet",
$url_base,
"$table_id=$id_objet",
$menu,
"&id_objet=$id_objet&objet=$objet&select_groupe="
.$row['id_groupe']
);
$ajouter .= "<div>$menu</div>\n";
$corps,
$clic,
" class='visible_au_chargement fondo spip_xx-small'' id='valider_groupe_$id_groupe'",
"&id_objet=$id_objet&objet=$objet&select_groupe=$id_groupe");
}
}
if ($ajouter) {
......@@ -374,10 +375,8 @@ function menu_mots($row, $id_groupes_vus, $les_mots)
else
$res .= "<input type='text' name='cherche_mot' class='fondl' style='width: 180px; ' value=\"$titre_groupe\" size='20' $jscript />";
$res .= "<input type='hidden' name='select_groupe' value='$id_groupe' />";
$res .= "<span class='visible_au_chargement' id='$ancre'>";
$res .= " <input type='submit' value='"._T('bouton_chercher')."' class='fondo spip_xx-small' />";
$res .= "</span>";
$res .= "<input type='hidden' name='select_groupe' value='$id_groupe' />&nbsp;";
return array($res, _T('bouton_chercher'));
} else {
$jscript = "onchange=\"$jscript1\"";
......@@ -396,12 +395,9 @@ function menu_mots($row, $id_groupes_vus, $les_mots)
textebrut(typo($row['titre'])) .
"</option>";
}
$res .= "</select>";
$res .= "<span class='visible_au_chargement' id='$ancre'>";
$res .= "\n&nbsp;<input type='submit' value='"._T('bouton_choisir')."' class='fondo' />";
$res .= "</span>";
$res .= "</select>&nbsp;";
return array($res, _T('bouton_choisir'));
}
return $res;
}
?>
......@@ -100,14 +100,8 @@ function inc_instituer_auteur_dist($id_auteur, $statut, $url_self)
$res = "<b>"._T('info_statut_auteur')." </b> "
. choix_statut_auteur($statut, "$ancre-aff")
. "<div id='$ancre-aff'$vis>"
. $res
. "</div><div align='"
. $spip_lang_right
. "'><input type='submit' class='fondo' value=\""
. _T('bouton_valider')
. "\" /></div>";
$res = ajax_action_auteur('instituer_auteur', $id_auteur, $url_self, (!$id_auteur ? "" : "id_auteur=$id_auteur"), $res);
. ajax_action_post('instituer_auteur', $id_auteur, $url_self, (!$id_auteur ? "" : "id_auteur=$id_auteur"), $res, _T('bouton_valider'), " style='float: $spip_lang_right' class='fondo'")
. "</div>";
}
return (_request('var_ajaxcharset'))
......
......@@ -89,17 +89,15 @@ function inc_legender_dist($id_document, $document, $script, $type, $id, $ancre,
"<textarea name='descriptif_document' rows='4' class='formo' cols='*' onfocus=\"changeVisible(true, 'valider_doc$id_document', 'block', 'block');\">" .
entites_html($descriptif) .
"</textarea>\n" .
$taille .
"\n<div " .
($flag == 'ajax' ? '' : "class='display_au_chargement' ") .
"id='valider_doc$id_document' align='".
$GLOBALS['spip_lang_right'].
"'>\n<input class='fondo spip_xx-small' value='".
_T('bouton_enregistrer') .
"' type='submit' />" .
"</div>\n";
$corps = ajax_action_auteur("legender", $id_document, $script, "show_docs=$id_document&id_$type=$id#legender-$id_document", $corps, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre")
$taille;
$att = " class='fondo spip_xx-small"
. ($flag == 'ajax' ? '' : " display_au_chargement")
. "' id='valider_doc$id_document' style='float: "
. $GLOBALS['spip_lang_right']
. "'";
$corps = ajax_action_post("legender", $id_document, $script, "show_docs=$id_document&id_$type=$id#legender-$id_document", $corps, _T('bouton_enregistrer'), $att, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre")
. $vignette . "\n\n";
$texte = _T('icone_supprimer_document');
......
......@@ -166,11 +166,11 @@ function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect
$corps .= fin_cadre_relief(true)
. "<br />"
. (!$setconnecte ? '' : apparait_auteur_infos($id_auteur, $auteur))
. "\n<div align='right'>"
. "\n<input type='submit' class='fondo' value='"
. _T('bouton_enregistrer')
. "' /></div>";
. (!$setconnecte ? '' : apparait_auteur_infos($id_auteur, $auteur));
$att = " style='float: "
. $GLOBALS['spip_lang_right']
. "' class='fondo'";
$arg = intval($id_auteur) . '/';
......@@ -179,7 +179,7 @@ function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect
. debut_cadre_relief("fiche-perso-24.gif", true, "", _T("icone_informations_personnelles"))
. ($redirect
? generer_action_auteur('legender_auteur', $arg, $redirect, $corps)
: ajax_action_auteur('legender_auteur', $arg, 'auteur_infos', "id_auteur=$id_auteur&initial=-1&retour=$redirect", $corps))
: ajax_action_post('legender_auteur', $arg, 'auteur_infos', "id_auteur=$id_auteur&initial=-1&retour=$redirect", $corps, _T('bouton_enregistrer'), $att))
. fin_cadre_relief(true)
. '</div>';
}
......
......@@ -93,12 +93,12 @@ function inc_petitionner_dist($id_article, $script, $args)
$res .="<textarea name='texte_petition' class='forml' rows='4' cols='10'>";
$res .=entites_html($texte_petition);
$res .="</textarea>\n";
$class = '';
} else $class =" visible_au_chargement";
$res .="<span align='$spip_lang_right'>";
} else $res .="<span class='visible_au_chargement' id='valider_petition'>";
$res .="<input type='submit' class='fondo spip_xx-small' value='"._T('bouton_changer')."' />";
$res .="</span>";
$res = ajax_action_auteur('petitionner', $id_article, $script, $args, $res);
$atts .= " class='fondo spip_xx-small$class' style='float: $spip_lang_right;' id='valider_petition'";
$res = ajax_action_post('petitionner', $id_article, $script, $args, $res,_T('bouton_changer'), $atts);
return ajax_action_greffe("petitionner-$id_article", $res);
}
......
......@@ -85,12 +85,14 @@ function inc_referencer_traduction_dist($id_article, $flag, $id_rubrique, $id_tr
if ($flag AND $options == "avancees" AND !$table) {
// Formulaire pour lier a un article
$form .= "<td style='width: 60%' class='arial2'>"
. ajax_action_auteur("referencer_traduction",
. ajax_action_post("referencer_traduction",
$id_article,
'articles',
"id_article=$id_article",
(_T('trad_lier') .
"\n<input type='text' class='fondl' name='lier_trad' size='5' />\n<input type='submit' value='"._T('bouton_valider')."' class='fondl' />"))
"\n<input type='text' class='fondl' name='lier_trad' size='5' />\n"),
_T('bouton_valider'),
" class='fondl'")
. "</td>\n"
. "<td style='width: 10px'> &nbsp; </td>"
. "<td style='width: 2px; background: url(" . _DIR_IMG_PACK . "tirets-separation.gif)'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
......
......@@ -69,15 +69,11 @@ function inc_regler_moderation_dist($id_article, $script, $args) {
$r .= " selected='selected'";
$r .= " value='$val'>".$desc."</option>";
}
$r .= "\n\t</select>\n";
$r .= "\n\t</select><br />\n";
$r .= "<div align='$spip_lang_right' id='valider_regler_moderation_$id_article'"
. " class='visible_au_chargement'"
. ">\n\t<input type='submit' class='fondo spip_xx-small' value='"
. _T('bouton_changer')
. "' /></div>\n";
$atts = " style='float: $spip_lang_right' id='valider_regler_moderation_$id_article' class='fondo visible_au_chargement spip_xx-small'";
$r = ajax_action_auteur('regler_moderation', $id_article, $script, $args, $r);
$r = ajax_action_post('regler_moderation', $id_article, $script, $args, $r,_T('bouton_changer'), $atts);
return ajax_action_greffe("regler_moderation-$id_article", $r);
}
......
......@@ -21,18 +21,17 @@ function inc_virtualiser_dist($id_article, $flag, $virtuel, $script, $args)
if (!($options == "avancees" && $connect_statut=='0minirezo' && $flag))
return '';
$http = ($virtuel ? "" : "http://");
$t = _T('texte_reference_mais_redirige');
$res = "<input type='text' name='virtuel' class='formo spip_xx-small' value='"
. $http
. ($virtuel ? "" : "http://")
. $virtuel
. "' size='40' /><br />\n"
. "<span class='verdana1 spip_small'>(<b>"._T('texte_article_virtuel') . "&nbsp;:</b>$t)</span>"
. "\n<div align='$spip_lang_right'><input type='submit' class='fondo spip_xx-small' value='"
. _T('bouton_changer')
. "' /></div>";
. "<span class='verdana1 spip_x-small'>(<b>"
. _T('texte_article_virtuel')
. "&nbsp;:</b>"
. _T('texte_reference_mais_redirige')
. ")</span><br />";
$res = ajax_action_auteur('virtualiser', $id_article, $script, $args, $res);
$res = ajax_action_post('virtualiser', $id_article, $script, $args, $res, _T('bouton_changer'), " class='fondo spip_xx-small' style='float: $spip_lang_right'");
return ajax_action_greffe("virtualiser-$id_article", $res);
}
?>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter