Changeset 61749 in spip-zone


Ignore:
Timestamp:
May 27, 2012, 3:58:31 PM (7 years ago)
Author:
kent1@…
Message:

Un début de vérification du formulaire avant traitement...

On utilise le plugin d'API de vérification pour ce faire

Grosse amélioration des inputs pour recadrer, si on en modifie 1, il devrait modifier les autres dynamiquement.

On évite des erreurs js et on enlève les console.log qui trainaient

Passage en version 0.3.4, on se rapproche de quelque chose réellement utilisable

Location:
_plugins_/photospip/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/photospip/trunk/formulaires/editer_image.html

    r61741 r61749  
    2424        [(#SET{largeur_reduit,[(#FICHIER|image_reduire{#GET{largeur_max},#GET{hauteur_max}}|extraire_attribut{width})]})]
    2525        #SET{ratio,#LARGEUR|div{#GET{largeur_reduit}}}
     26        #SET{largeur_image,#LARGEUR}
     27        #SET{hauteur_image,#HAUTEUR}
    2628        <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
    2729                [(#REM) declarer les hidden qui declencheront le service du formulaire
     
    135137         <script type="text/javascript"><!--
    136138                        [(#CONFIG{photospip/image_recadre,on}|=={on}|oui)
    137                                 var x1, y1, x2, y2, w, h, ias,ratio;
     139                                var x1, y1, x2, y2, w, h, ias,ratio,largeur,hauteur;
    138140                                var ratio = parseFloat([(#GET{ratio})]);
     141                                var largeur = #GET{largeur_image};
     142                                var hauteur = #GET{hauteur_image};
    139143                                function crop_selectchange(img, selection){
    140144                                        // Le ratio est la relation entre notre image normale et la prévisualisation
     
    180184                               
    181185                                var image_crop_close = function(){
    182                                         ias.remove();
     186                                        if(typeof(ias) == 'object')
     187                                                ias.remove();
    183188                                }
    184189                        ]
     
    188193                                        min: -180,
    189194                                        max: 180,
    190                                         value: #ENV{params_image_rotation,45},
     195                                        value: [(#ENV{params_image_rotation}|intval|sinon{45})],
    191196                                        slide: function( event, ui ) {
    192197                                                jQuery(this).parent().find('input').val(ui.value.toFixed(0));
     
    200205                                        min: -254,
    201206                                        max: 254,
    202                                         value: #ENV{params_image_gamma,10},
     207                                        value: [(#ENV{params_image_gamma}|intval|sinon{10})],
    203208                                        slide: function( event, ui ) {
    204209                                                jQuery(this).parent().find('input').val(ui.value.toFixed(0));
     
    213218                                        min: 1,
    214219                                        max: 11,
    215                                         value : #ENV{param_image_flou,3},
     220                                        value : [(#ENV{param_image_flou}|intval|sinon{3})],
    216221                                        slide: function( event, ui ) {
    217222                                                jQuery(this).parent().find('input').val(ui.value.toFixed(0));
     
    224229                        }
    225230                       
     231                        if(typeof(jQuery) == 'function'){
    226232                        jQuery(document).ready(function() {
    227233                                activatesliders();
     234                                /**
     235                                 * On cache les options des filtres
     236                                 */
    228237                                jQuery('.cache').hide();
    229                                 jQuery('input[name=filtre]:checked').parent().find('.cache').show();
    230                                 jQuery('#navigation .version').hover(function(){
    231                                         jQuery(this).find('label img').fadeTo('fast',.1,function(){
    232                                                 jQuery(this).parent().parent().find('input').attr({
    233                                                         checked: "checked"
    234                                                 });
    235                                                 jQuery(this).parent().parent().find('.revenir_version, .delete_version').show();       
    236                                         });     
    237                                 },function(){
    238                                         jQuery(this).find('label img').fadeTo('fast',1,function(){
    239                                                 jQuery(this).parent().parent().find('.revenir_version, .delete_version').hide();
    240                                         });     
    241                                 });
     238                                /**
     239                                 * On affiche les options du filtre sélectionné
     240                                 */
     241                                jQuery('input[name=filtre]:checked').parent().find('.cache').addClass('visible').show();
    242242                                jQuery('form input[type=radio]').unbind().click(function(){
    243243                                        if(jQuery(this).next().next('.cache').is(':hidden')){
     
    269269                                                var ias_selection = ias.getSelection();
    270270                                                if($(this).is('#recadre_width')){
    271                                                         var width_ratio = (parseFloat($(this).val())/ratio).toFixed(0);
    272                                                         ias_selection.x2 = parseInt(ias_selection.x1)+parseInt(width_ratio);
     271                                                        if($(this).val() <= largeur){
     272                                                                var width_ratio = (parseInt($(this).val()/ratio));
     273                                                                ias_selection.x2 = parseInt(ias_selection.x1)+width_ratio;
     274                                                                if(ias_selection.x2 > (parseInt(largeur/ratio))){
     275                                                                        ias_selection.x1 = parseInt((parseInt(largeur)/ratio) - parseInt(width_ratio));
     276                                                                        ias_selection.x2 = parseInt(parseInt(ias_selection.x1)+parseInt(width_ratio));
     277                                                                }
     278                                                        }
    273279                                                }
    274280                                                else if($(this).is('#recadre_height')){
    275                                                         var height_ratio = (parseFloat($(this).val())/ratio).toFixed(0);
    276                                                         ias_selection.y2 = parseInt(ias_selection.y1)+parseInt(height_ratio);
     281                                                        if($(this).val() <= hauteur){
     282                                                                var height_ratio = parseInt($(this).val()/ratio);
     283                                                                ias_selection.y2 = parseInt(ias_selection.y1)+height_ratio;
     284                                                                if(ias_selection.y2 > (parseInt(hauteur/ratio))){
     285                                                                        ias_selection.y1 = parseInt((parseInt(hauteur)/ratio) - parseInt(height_ratio));
     286                                                                        ias_selection.y2 = parseInt(parseInt(ias_selection.y1)+parseInt(height_ratio));
     287                                                                }
     288                                                        }
    277289                                                }
    278290                                                else{
    279291                                                        var width = parseFloat(ias_selection.x2)-parseFloat(ias_selection.x1);
    280                                                         console.log(width);
    281292                                                        var height = parseFloat(ias_selection.y2)-parseFloat(ias_selection.y1);
    282                                                         console.log(height);
    283293                                                        if($(this).is('#recadre_x1')){
    284294                                                                var x1_ratio = (parseFloat($(this).val())/ratio).toFixed(0);
     
    314324                                });
    315325                        });
     326                        }
    316327                        // -->
    317328        </script>
  • _plugins_/photospip/trunk/formulaires/editer_image.php

    r61741 r61749  
    101101                 * On test uniquement
    102102                 */
    103                 elseif(_request('tester')){
     103                else{
     104                        $verifier = charger_fonction('verifier','inc');
     105                        $params = photospip_recuperer_params_form($var_filtre);
     106                        if(in_array($var_filtre,array('image_reduire','image_passe_partout'))){
     107                                if((strlen($params[0]) && strlen($erreur_param0 = $verifier($params[0],'entier'))) OR (strlen($params[1]) && strlen($erreur_param1 = $verifier($params[1],'entier')))){
     108                                        $erreurs[$var_filtre] = _T('photospip:erreur_valeurs_numeriques');
     109                                }
     110                        }
     111                        if(in_array($var_filtre,array('image_rotation','image_gamma','image_flou'))){
     112                                if(strlen($params[0]) && strlen($erreur_param0 = $verifier($params[0],'entier')))
     113                                        $erreurs[$var_filtre] = _T('photospip:erreur_valeur_numerique');
     114                                elseif($var_filtre == 'image_rotation' && $erreur_param0 = $verifier($params[0],'entier',array('min'=>'-180','max'=>'180'))){
     115                                        $erreurs[$var_filtre] = $erreur_param0;
     116                                }
     117                                elseif($var_filtre == 'image_gamma' && $erreur_param0 = $verifier($params[0],'entier',array('min'=>'-254','max'=>'254'))){
     118                                        $erreurs[$var_filtre] = $erreur_param0;
     119                                }
     120                                elseif($var_filtre == 'image_flou' && $erreur_param0 = $verifier($params[0],'entier',array('min'=>'1','max'=>'11'))){
     121                                        $erreurs[$var_filtre] = $erreur_param0;
     122                                }
     123                        }
     124                }
     125                if(count($erreurs) == 0 && _request('tester')){
    104126                        if(in_array($var_filtre,array('tourner','image_recadre'))){
    105127                                $erreurs['message_erreur'] = _T('photospip:erreur_form_filtre_sstest');
  • _plugins_/photospip/trunk/formulaires/editer_image_couleurs.html

    r61674 r61749  
    11[(#CONFIG{photospip/image_nb}|=={on}|oui)
    2 <li class="editer editer_nb">
     2<li class="editer editer_nb[ (#ENV**{erreurs}|table_valeur{image_nb}|oui)erreur]">
    33        <input type="radio" name="filtre" id="filtre_nb" value="image_nb"[(#ENV{filtre}|=={image_nb}|oui)checked="checked"] />
    44        <label for="filtre_nb"><:photospip:label_image_nb:></label>
    55        <div class="cache params_filtre">
     6                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_nb})</span>]
    67                <p class="explication"><:photospip:explication_image_nb:></p>
    78        </div>
    89</li>]
    910[(#CONFIG{photospip/image_gamma}|=={on}|oui)
    10 <li class="editer editer_gamma">
     11<li class="editer editer_gamma[ (#ENV**{erreurs}|table_valeur{image_gamma}|oui)erreur]">
    1112        <input type="radio" name="filtre" id="filtre_gamma" value="image_gamma"[(#ENV{filtre}|=={image_gamma}|oui)checked="checked"] />
    1213        <label for="filtre_gamma"><:photospip:label_image_gamma:></label>
    1314        <div class="cache params_filtre">
     15                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_gamma})</span>]
    1416                <p class="explication"><:photospip:explication_image_gamma:></p>
    1517                <div id='slidergamma'> </div>
     
    2325</li>]
    2426[(#CONFIG{photospip/image_flou}|=={on}|oui)
    25 <li class="editer editer_flou">
     27<li class="editer editer_flou[ (#ENV**{erreurs}|table_valeur{image_flou}|oui)erreur]">
    2628        <input type="radio" name="filtre" id="filtre_flou" value="image_flou"[(#ENV{filtre}|=={image_flou}|oui)checked="checked"] />
    2729        <label for="filtre_flou"><:photospip:label_image_flou:></label>
    2830        <div class="cache params_filtre">
     31                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_flou})</span>]
    2932                <p class="explication"><:photospip:explication_image_flou:></p>
    3033                <div id='sliderflou'> </div>
     
    3841</li>]
    3942[(#CONFIG{photospip/image_sepia}|=={on}|oui)
    40 <li class="editer editer_image_sepia">
     43<li class="editer editer_image_sepia[ (#ENV**{erreurs}|table_valeur{image_sepia}|oui)erreur]">
    4144        <input type="radio" name="filtre" id="filtre_sepia" value="image_sepia"[(#ENV{filtre}|=={image_sepia}|oui)checked="checked"] />
    4245        <label for="filtre_sepia"><:photospip:label_image_sepia:></label>
    4346        <div class="cache params_filtre">
     47                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_sepia})</span>]
    4448                <ul>
    4549                        <li class="editer_param_image_sepia">
     
    5155</li>]
    5256[(#CONFIG{photospip/image_niveau_de_gris_auto}|=={on}|oui)
    53 <li class="editer editer_niveaux_auto">
     57<li class="editer editer_niveaux_auto[ (#ENV**{erreurs}|table_valeur{image_niveaux_gris_auto}|oui)erreur]">
    5458        <input type="radio" name="filtre" id="filtre_niveaux_auto" value="image_niveaux_gris_auto"[(#ENV{filtre}|=={image_niveaux_gris_auto}|oui)checked="checked"] />
    5559        <label for="filtre_niveaux_auto"><:photospip:label_image_niveau_de_gris_auto:></label>
    5660        <div class="cache params_filtre explications">
     61                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_niveaux_gris_auto})</span>]
    5762                <p class="explication"><:photospip:explication_image_niveau_de_gris_auto:></p>
    5863        </div>
     
    6065[(#GET{fonctions_images}|=={on}|oui)
    6166[(#CONFIG{photospip/image_sincity}|=={on}|oui)
    62 <li class="editer editer_sincity">
     67<li class="editer editer_sincity[ (#ENV**{erreurs}|table_valeur{image_sincity}|oui)erreur]">
    6368        <input type="radio" name="filtre" id="filtre_sincity" value="image_sincity"[(#ENV{filtre}|=={image_sincity}|oui)checked="checked"] />
    6469        <label for="filtre_sincity"><:photospip:label_image_sincity:></label>
    6570        <div class="cache params_filtre explications">
     71                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_sincity})</span>]
    6672                <p class="explication"><:photospip:explication_image_sincity:></p>
    6773        </div>
    6874</li>]
    6975[(#CONFIG{photospip/image_contour_alpha}|=={on}|oui)
    70 <li class="editer editer_contour_alpha">
     76<li class="editer editer_contour_alpha[ (#ENV**{erreurs}|table_valeur{image_contour_alpha}|oui)erreur]">
    7177        <input type="radio" name="filtre" id="filtre_contour_alpha" value="image_contour_alpha"[(#ENV{filtre}|=={image_contour_alpha}|oui)checked="checked"] />
    7278        <label for="filtre_contour_alpha"><:photospip:label_image_contour_alpha:></label>
    7379        <div class="cache params_filtre explications">
     80                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_contour_alpha})</span>]
    7481                <p class="explication"><:photospip:explication_image_contour_alpha:></p>
    7582        </div>
    7683</li>]
    7784[(#CONFIG{photospip/image_saturer}|=={on}|oui)
    78 <li class="editer editer_saturer">
     85<li class="editer editer_saturer[ (#ENV**{erreurs}|table_valeur{image_saturer}|oui)erreur]">
    7986        <input type="radio" name="filtre" id="filtre_saturer" value="image_saturer"[(#ENV{filtre}|=={image_saturer}|oui)checked="checked"] />
    8087        <label for="filtre_saturer"><:photospip:label_image_saturation_desaturation:></label>
    8188        <div class="cache params_filtre explications">
     89                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_saturer})</span>]
    8290                <p class="explication"><:photospip:explication_image_saturation_desaturation:></p>
    8391                <div id='slidersaturer'> </div>
  • _plugins_/photospip/trunk/formulaires/editer_image_format.html

    r61674 r61749  
    11<BOUCLE_doc(DOCUMENTS){id_document}{mode IN vignette,image,document}{tout}>
    22[(#CONFIG{photospip/image_reduire,on}|=={on}|oui)
    3 <li class="editer editer_reduire">
     3<li class="editer editer_reduire[ (#ENV**{erreurs}|table_valeur{image_reduire}|oui)erreur]">
    44        <input type="radio" name="filtre" id="image_reduire" value="image_reduire"[(#ENV{filtre}|=={image_reduire}|oui)checked="checked"] />
    55        <label for="image_reduire"><:photospip:label_image_reduire:></label>
    66        <div class="cache params_filtre image_reduire">
     7                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_reduire})</span>]
    78                <p class="explication">
    89                        <:photospip:explication_image_reduire:><br />
     
    2223</li>]
    2324[(#CONFIG{photospip/image_passe_partout,on}|=={on}|oui)
    24 <li class="editer editer_passe_partout">
     25<li class="editer editer_passe_partout[ (#ENV**{erreurs}|table_valeur{image_passe_partout}|oui)erreur]">
    2526        <input type="radio" name="filtre" id="image_passe_partout" value="image_passe_partout"[(#ENV{filtre}|=={image_passe_partout}|oui)checked="checked"] />
    2627        <label for="image_passe_partout"><:photospip:label_image_passe_partout:></label>
    2728        <div class="cache params_filtre image_passe_partout">
     29                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_passe_partout})</span>]
    2830                <p class="explication">
    2931                        <:photospip:explication_image_passe_partout:><br />
     
    4345</li>]
    4446[(#CONFIG{photospip/image_recadre,on}|=={on}|oui)
    45 <li class="editer editer_recadre">
     47<li class="editer editer_recadre[ (#ENV**{erreurs}|table_valeur{image_recadre}|oui)erreur]">
    4648        <input type="radio" name="filtre" id="image_recadre" value="image_recadre"[(#ENV{filtre}|=={image_recadre}|oui)checked="checked"] />
    4749        <label for="image_recadre"><:photospip:label_image_recadre:></label>
    4850        <div class="cache params_filtre image_recadre">
     51                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_recadre})</span>]
    4952                <p class="explication">
    5053                        <:photospip:explication_image_recadre:>
     
    105108</li>]
    106109[(#CONFIG{photospip/tourner,oui}|=={on}|oui)
    107 <li class="editer editer_tourner">
     110<li class="editer editer_tourner[ (#ENV**{erreurs}|table_valeur{tourner}|oui)erreur]">
    108111        <input type="radio" name="filtre" id="tourner" value="tourner"[(#ENV{filtre}|=={tourner}|oui)checked="checked"] />
    109112        <label for="tourner"><:photospip:label_tourner:></label>
    110113        <div class="cache params_filtre">
     114                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_passe_partout})</span>]
    111115                <p class="explication"><:photospip:explication_tourner:></p>
    112116                <ul>
     
    130134</li>]
    131135[(#CONFIG{photospip/image_rotation}|=={on}|oui)
    132 <li class="editer editer_rotation">
     136<li class="editer editer_rotation[ (#ENV**{erreurs}|table_valeur{image_rotation}|oui)erreur]">
    133137        <input type="radio" name="filtre" id="image_rotation" value="image_rotation"[(#ENV{filtre}|=={image_rotation}|oui)checked="checked"] />
    134138        <label for="image_rotation"><:photospip:label_image_rotation:></label>`
    135139        <div class="cache params_filtre">
     140                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_rotation})</span>]
    136141                <p class="explication"><:photospip:explication_image_rotation:></p>
    137142                <div id='sliderrotation'>
     
    147152</li>]
    148153[(#CONFIG{photospip/image_flip_vertical}|=={on}|oui)
    149 <li class="editer editer_flip_vertical">
     154<li class="editer editer_flip_vertical[ (#ENV**{erreurs}|table_valeur{image_flip_vertical}|oui)erreur]">
    150155        <input type="radio" name="filtre" id="image_flip_vertical" value="image_flip_vertical"[(#ENV{filtre}|=={image_flip_vertical}|oui)checked="checked"] />
    151156        <label for="image_flip_vertical"><:photospip:label_image_flip_vertical:></label>
    152157        <div class="cache params_filtre">
     158                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_flip_vertical})</span>]
    153159                <p class="explication"><:photospip:explication_image_flip_vertical:></p>
    154160        </div>
    155161</li>]
    156162[(#CONFIG{photospip/image_flip_horizontal}|=={on}|oui)
    157 <li class="editer editer_flip_horizontal">
     163<li class="editer editer_flip_horizontal[ (#ENV**{erreurs}|table_valeur{image_flip_horizontal}|oui)erreur]">
    158164        <input type="radio" name="filtre" id="image_flip_horizontal" value="image_flip_horizontal"[(#ENV{filtre}|=={image_flip_horizontal}|oui)checked="checked"] />
    159165        <label for="image_flip_horizontal"><:photospip:label_image_flip_horizontal:></label>
    160166        <div class="cache params_filtre">
     167                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{image_flip_horizontal})</span>]
    161168                <p class="explication"><:photospip:explication_image_flip_horizontal:></p>
    162169        </div>
  • _plugins_/photospip/trunk/lang/photospip_fr.php

    r61741 r61749  
    4242        'erreur_sanstest' => 'Le filtre que vous avez essayé ne permet pas d\'&ecirc;tre testé. Vous ne pouvez que l\'appliquer.',
    4343        'erreur_selectionner_au_moins_une_valeur' => 'Vous devez sélectionner au moins une valeur',
     44        'erreur_valeur_numerique' => 'Ce filtre nécessite une valeur numérique comme paramètre',
     45        'erreur_valeurs_numeriques' => 'Ce filtre nécessite des valeurs numériques',
    4446        'explication_image_flip_horizontal' => 'Appliquer un effet de « miroir » selon un axe horizontal (Aucun réglage nécessaire).',
    4547        'explication_image_flip_vertical' => 'Appliquer un effet de « miroir » selon un axe vertical (Aucun réglage nécessaire).',     
  • _plugins_/photospip/trunk/plugin.xml

    r61741 r61749  
    44_ © 2008-2012 - Distribué sous licence GNU/GPL
    55        </auteur>
    6         <version>0.3.3</version>
     6        <version>0.3.4</version>
    77        <version_base>0.4</version_base>
    88        <prefix>photospip</prefix>
     
    5353        <necessite id="spip_bonux" version='[2.3.0;]' />
    5454        <necessite id="images" version='[1.0.1;]' />
     55        <necessite id="verifier" version='[0.1.14;]' />
    5556        <necessite id="SPIP" version='[2.1.10;2.1.99]' />
    5657        <necessite id="lib:jquery.imgareaselect-0.9.8" src="http://odyniec.net/projects/imgareaselect/jquery.imgareaselect-0.9.8.zip" />
Note: See TracChangeset for help on using the changeset viewer.