Changeset 122375 in spip-zone


Ignore:
Timestamp:
Feb 11, 2020, 5:13:05 PM (2 weeks ago)
Author:
Cerdic
Message:

Interface de confirmation quand on modifie un evenement source ou une repetition (et on ne peut pas saisir des repetitions sur une repetition)

Location:
_plugins_/agenda/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/agenda/trunk

    • Property subgit:lock:9909d5f8dc077a1ab4e0224d9247addad673f2c4 deleted
    • Property subgit:lock:fb7bd22db5bbc304777ce866c345dd3deee688a1 set to 2020-02-11T18:13:13.430
  • _plugins_/agenda/trunk/formulaires/editer_evenement.html

    r122374 r122375  
    5353                                </fieldset>
    5454                        </div>
     55                        [(#ENV{id_evenement_source}|non)
    5556                        <div class="editer pleine_largeur editer_repetitions[ (#ENV**{erreurs}|table_valeur{repetitions}|oui)erreur]">#SET{show_repet,'1'}
    5657                                <label for="repetitions"><:agenda:evenement_repetitions:></label>[#SET{show_repet,'0'}
     
    6263                                </div>
    6364                        </div>
     65                        ][(#ENV{id_evenement_source}|oui)
     66                        <div class="editer pleine_largeur editer_repetitions">
     67                                <div class="info"><:agenda:info_evenement_repetition:></div>
     68                        </div>]
    6469                        <div class="editer editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
    6570                                <label for="descriptif"><:agenda:evenement_descriptif:></label>[
     
    8994                                ]<textarea name='adresse' rows='3' id='adresse'>[(#ENV{adresse})]</textarea>
    9095                        </div>
     96                        [#SET{name,modif_synchro_source}#SET{obli,''}#SET{defaut,'1'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     97                        <div class="editer pleine_largeur editer_modif_synchro_source">
     98                                <div class="warning">
     99                                        (#ENV**{erreurs}|table_valeur{modif_synchro_source})
     100                                        #SET{val,1}
     101                                        <div class="choix">
     102                                                <input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}" aria-describedby="#GET{name}_explication" [(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
     103                                                <label for="#GET{name}_#GET{val}"><:agenda:label_modif_synchro_source_1:></label>
     104                                        </div>
     105                                        #SET{val,0}
     106                                        <div class="choix">
     107                                                <input type="radio" name="#GET{name}" class="radio" id="#GET{name}_#GET{val}" value="#GET{val}" aria-describedby="#GET{name}_explication" [(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
     108                                                <label for="#GET{name}_#GET{val}"><:agenda:label_modif_synchro_source_0:></label>
     109                                        </div>
     110                                </div>
     111                        </div>]
    91112                </div>
    92113                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    93114                <!--extra-->
    94                 <p class='boutons'><input type='submit' class='submit' value='[(#ENV{id_evenement}|?{<:bouton_enregistrer:>,<:bouton_ajouter:>})]' /></p>
     115                <p class='boutons'><input type='submit' class='submit noscroll' value='[(#ENV{id_evenement}|?{<:bouton_enregistrer:>,<:bouton_ajouter:>})]' /></p>
    95116        </div></form>
    96117        #INCLURE{fond=formulaires/dateur/inc-dateur}
  • _plugins_/agenda/trunk/formulaires/editer_evenement.php

    r122372 r122375  
    136136        }
    137137
     138        if (!count($erreurs)
     139                and is_null(_request('modif_synchro_source'))
     140          and $impact = formulaires_editer_evenement_verifier_modifie_evenements_lies($id_evenement, $id_article)) {
     141
     142                $erreurs['modif_synchro_source'] = _T('agenda:confirm_evenement_modifie_' . $impact);
     143                $erreurs['message_erreur'] = '';
     144        }
     145
    138146        #if (!count($erreurs))
    139147        #       $erreurs['message_erreur'] = 'ok?';
    140148        return $erreurs;
    141149}
     150
     151
     152function formulaires_editer_evenement_verifier_modifie_evenements_lies($id_evenement, $id_article) {
     153        // c'est une creation : aucun impact
     154        if (!intval($id_evenement)) {
     155                return false;
     156        }
     157        $valeurs = formulaires_editer_evenement_charger_dist($id_evenement, $id_article);
     158        // n'a pas de repetitions et ce n'est pas une repetitions, donc aucun impact
     159        if ($valeurs['id_evenement_source'] == 0 and !$valeurs['repetitions']) {
     160                return false;
     161        }
     162        // on est deja desynchronise des autres repetitions, donc aucun impact
     163        if ($valeurs['modif_synchro_source'] == 0) {
     164                return false;
     165        }
     166
     167        foreach ($valeurs as $k => $v) {
     168                if (!in_array($k, array('repetitions'))
     169                  and strpos($k ,'_') !== 0
     170                        and !is_null($p = _request($k))
     171                  and $p != $v) {
     172                        return ($valeurs['id_evenement_source'] ? 'est_une_repetition' : 'a_des_repetitions');
     173                }
     174        }
     175
     176        return false;
     177}
     178
    142179
    143180function formulaires_editer_evenement_traiter_dist($id_evenement = 'new', $id_article = 0, $retour = '', $lier_trad = 0, $config_fonc = 'evenements_edit_config', $row = array(), $hidden = '') {
  • _plugins_/agenda/trunk/lang/agenda_fr.php

    r122368 r122375  
    3232        'confirm_suppression_inscription' => 'Voulez-vous vraiment supprimer cette inscription ?',
    3333        'confirm_suppression_inscription_toutes' => 'Voulez-vous vraiment supprimer toutes les inscriptions ?',
     34        'confirm_evenement_modifie_a_des_repetitions' => 'Vous avez modifié cet événement qui a des répétitions :',
     35        'confirm_evenement_modifie_est_une_repetition' => 'Vous avez modifié cet événement qui fait partie d\'une série répétitions :',
    3436        'connexion_necessaire_pour_inscription' => 'Merci de vous connecter pour pouvoir vous inscrire à cet événement.',
    3537        'creer_evenement' => 'Créer un événement',
     
    9698        'info_evenements_prop' => 'Proposés',
    9799        'info_evenements_publie' => 'Publiés',
     100        'info_evenement_repetition' => 'Cet événement est une répétition',
    98101        'info_evenements_tout' => 'Tous les événements',
    99102        'info_inscription' => 'Inscription en ligne :',
     
    127130        'label_reponse_jyparticipe_peutetre' => 'J’y serai peut-être',
    128131        'label_vous_inscrire' => 'Votre participation',
     132        'label_modif_synchro_source_1' => 'Modifier toutes les occurences',
     133        'label_modif_synchro_source_0' => 'Modifier uniquement cette occurence',
    129134        'lien_desinscrire' => 'Supprimer',
    130135        'lien_desinscrire_tous' => 'Supprimer toutes les inscriptions',
Note: See TracChangeset for help on using the changeset viewer.