Changeset 83982 in spip-zone


Ignore:
Timestamp:
Aug 1, 2014, 1:39:22 PM (7 years ago)
Author:
teddy.spip@…
Message:
  • On revoit un peu l'esthétique les pages organisation.html et contact.html
  • On déplace le bouton "supprimer le contact" dans la boite info tout en gardant le message de confirmation et le style de cette boite. Fun.
  • Pas la peine d'avoir un bouton "supprimer le contact" dans le tableaux de listing des contacts. Par contre, il faudra voir la règle pour "organisations" aussi. Sous quelle condition peut-on supprimer une organisation ? Pas de liaison uniquement ? Ou à tout moment ?
  • Ajout de l'autorisation propre à contact sur le même principe que modifier.
Location:
_plugins_/contacts_et_organisations/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/contacts_et_organisations/trunk/contacts_autoriser.php

    r77219 r83982  
    6262
    6363/**
     64 * Autorisation de supprimer un contact
     65 *
     66 * Seuls les admins et l'auteur lié s'il existe peuvent supprimer le contact
     67 *
     68 * @param  string $faire Action demandée
     69 * @param  string $type  Type d'objet sur lequel appliquer l'action
     70 * @param  int    $id    Identifiant de l'objet
     71 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     72 * @param  array  $opt   Options de cette autorisation
     73 * @return bool          true s'il a le droit, false sinon
     74**/
     75function autoriser_contact_supprimer_dist($faire, $type, $id, $qui, $opt){
     76        return autoriser('configurer')
     77                or (
     78                        $id_auteur = sql_getfetsel('id_auteur', 'spip_contacts', 'id_contact = '.intval($id))
     79                        and $id_auteur > 0
     80                        and $id_auteur == $qui['id_auteur']
     81                );
     82}
     83
     84/**
    6485 * Autorisation de créer un annuaire
    6586 *
  • _plugins_/contacts_et_organisations/trunk/lang/contacts_fr.php

    r77329 r83982  
    138138        // L
    139139        'label_activite' => 'Activité',
     140        'label_auteur_associe' => 'Auteur associé',
    140141        'label_civilite' => 'Civilité',
    141142        'label_date_creation' => 'Date de création',
  • _plugins_/contacts_et_organisations/trunk/paquet.xml

    r83082 r83982  
    22        prefix="contacts"
    33        categorie="auteur"
    4         version="2.10.5"
     4        version="2.10.6"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
     
    3232
    3333        <necessite nom="saisies" compatibilite="[1.15.3;[" />
    34         <necessite nom="medias" compatibilite="[1.6;[" />
    35         <necessite nom="editer_liens_simples" compatibilite="[1.0;[" />
     34        <necessite nom="medias" compatibilite="[1.6.0;[" />
     35        <necessite nom="editer_liens_simples" compatibilite="[1.0.0;[" />
    3636
    3737        <utilise nom="coordonnees" compatibilite="[1.2.0;[" />
  • _plugins_/contacts_et_organisations/trunk/prive/objets/contenu/contact.html

    r69823 r83982  
    11<BOUCLE_contact(CONTACTS){id_contact}>
    22[<div class="champ contenu_civilite[ (#CIVILITE*|strlen|?{'',vide})]">
    3         <label><:contacts:label_civilite:> : </label>
    4         <span dir='#LANG_DIR' class='#EDIT{civilite} civilite'>(#CIVILITE)</span>
     3        <div class="label visible"><:contacts:label_civilite:> : </div>
     4        <div dir='#LANG_DIR' class='span #EDIT{civilite} civilite'>(#CIVILITE)</div>
    55</div>]
    66[<div class="champ contenu_prenom[ (#PRENOM*|strlen|?{'',vide})]">
    7         <label><:contacts:label_prenom:> : </label>
    8         <span dir='#LANG_DIR' class='#EDIT{prenom} prenom'>(#PRENOM)</span>
     7        <div class="label visible"><:contacts:label_prenom:> : </div>
     8        <div dir='#LANG_DIR' class='span #EDIT{prenom} prenom'>(#PRENOM)</div>
    99</div>]
    1010[<div class="champ contenu_nom[ (#NOM*|strlen|?{'',vide})]">
    11         <label><:contacts:label_nom:> : </label>
    12         <span dir='#LANG_DIR' class='#EDIT{nom} nom'>(#NOM)</span>
     11        <div class="label visible"><:contacts:label_nom:> : </div>
     12        <div dir='#LANG_DIR' class='span #EDIT{nom} nom'>(#NOM)</div>
    1313</div>]
    1414[<div class="champ contenu_fonction[ (#FONCTION*|strlen|?{'',vide})]">
    15         <label><:contacts:label_fonction:> : </label>
    16         <span dir='#LANG_DIR' class='#EDIT{fonction} fonction'>(#FONCTION)</span>
     15        <div class="label visible"><:contacts:label_fonction:> : </div>
     16        <div dir='#LANG_DIR' class='span #EDIT{fonction} fonction'>(#FONCTION)</div>
    1717</div>]
    1818[<div class="champ contenu_date_naissance[ (#DATE_NAISSANCE*|!={0000-00-00 00:00:00}|?{'',vide})]">
    19         <label><:contacts:label_date_naissance:> : </label>
    20         <span dir='#LANG_DIR' class='#EDIT{date_naissance} date_naissance'>(#DATE_NAISSANCE|=={0000-00-00 00:00:00}|?{'',[(#DATE_NAISSANCE|affdate)]})</span>
     19        <div class="label visible"><:contacts:label_date_naissance:> : </div>
     20        <div dir='#LANG_DIR' class='span #EDIT{date_naissance} date_naissance'>(#DATE_NAISSANCE|=={0000-00-00 00:00:00}|?{'',[(#DATE_NAISSANCE|affdate)]})</div>
    2121</div>]
    2222[<div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
    23         <label><:contacts:label_descriptif:> : </label>
    24         <span dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</span>
     23        <div class="label visible"><:contacts:label_descriptif:> : </div>
     24        <div dir='#LANG_DIR' class='span #EDIT{descriptif} descriptif'>(#DESCRIPTIF)</div>
    2525</div>]
    2626</BOUCLE_contact>
  • _plugins_/contacts_et_organisations/trunk/prive/objets/contenu/organisation.html

    r71855 r83982  
    11<BOUCLE_organisation(ORGANISATIONS){id_organisation?}{id_auteur?}>
    22[<div class="champ invisible contenu_nom[ (#NOM*|strlen|?{'',vide})]">
    3         <label><:contacts:label_nom:> : </label>
    4         <span dir='#LANG_DIR' class='#EDIT{nom} nom'>(#NOM)</span>
     3        <div class="label visible"><:contacts:label_nom:> : </div>
     4        <div dir='#LANG_DIR' class='span #EDIT{nom} nom'>(#NOM)</div>
    55</div>]
    66[<div class="champ contenu_statut_juridique[ (#STATUT_JURIDIQUE*|strlen|?{'',vide})]">
    7         <label><:contacts:label_statut_juridique:> : </label>
    8         <span dir='#LANG_DIR' class='#EDIT{statut_juridique} statut_juridique'>(#STATUT_JURIDIQUE)</span>
     7        <div class="label visible"><:contacts:label_statut_juridique:> : </div>
     8        <div dir='#LANG_DIR' class='span #EDIT{statut_juridique} statut_juridique'>(#STATUT_JURIDIQUE)</div>
    99</div>]
    1010[<div class="champ contenu_identification[ (#IDENTIFICATION*|strlen|?{'',vide})]">
    11         <label><:contacts:label_identification:> : </label>
    12         <span dir='#LANG_DIR' class='#EDIT{identification} identification'>(#IDENTIFICATION)</span>
     11        <div class="label visible"><:contacts:label_identification:> : </div>
     12        <div dir='#LANG_DIR' class='span #EDIT{identification} identification'>(#IDENTIFICATION)</div>
    1313</div>]
    1414[<div class="champ contenu_activite[ (#ACTIVITE*|strlen|?{'',vide})]">
    15         <label><:contacts:label_activite:> : </label>
    16         <span dir='#LANG_DIR' class='#EDIT{activite} activite'>(#ACTIVITE)</span>
     15        <div class="label visible"><:contacts:label_activite:> : </div>
     16        <div dir='#LANG_DIR' class='span #EDIT{activite} activite'>(#ACTIVITE)</div>
    1717</div>]
    1818[<div class="champ contenu_date_creation[ (#DATE_CREATION*|!={0000-00-00 00:00:00}|?{'',vide})]">
    19         <label><:contacts:label_date_creation:> : </label>
    20         <span dir='#LANG_DIR' class='#EDIT{date_creation} date_creation'>(#DATE_CREATION|=={0000-00-00 00:00:00}|?{'',[(#DATE_CREATION|affdate)]})</span>
     19        <div class="label visible"><:contacts:label_date_creation:> : </div>
     20        <div dir='#LANG_DIR' class='span #EDIT{date_creation} date_creation'>(#DATE_CREATION|=={0000-00-00 00:00:00}|?{'',[(#DATE_CREATION|affdate)]})</div>
    2121</div>]
    2222[<div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
    23         <label><:contacts:label_descriptif:> : </label>
    24         <span dir='#LANG_DIR' class='#EDIT{descriptif} descriptif'>(#DESCRIPTIF)</span>
     23        <div class="label visible"><:contacts:label_descriptif:> : </div>
     24        <div dir='#LANG_DIR' class='span #EDIT{descriptif} descriptif'>(#DESCRIPTIF)</div>
    2525</div>]
    2626</BOUCLE_organisation>
  • _plugins_/contacts_et_organisations/trunk/prive/objets/infos/contact.html

    r74555 r83982  
    33<div class='numero'><:contacts:contact_numero:><p>#ID_CONTACT</p></div>
    44
    5 <BOUCLE_si_auteurs(CONDITION){si #CONFIG{contacts_et_organisations/associer_aux_auteurs}}>
    6         <BOUCLE_auteur_lie(AUTEURS){id_auteur}{tout}{statut==.*}{si #ID_AUTEUR}>
     5<BOUCLE_si_auteurs (CONDITION){si #CONFIG{contacts_et_organisations/associer_aux_auteurs}}>
     6        <BOUCLE_auteur_lie (AUTEURS){id_auteur}{tout}{statut==.*}{si #ID_AUTEUR}>
    77        <div class="numero">
    88                <div class='num'>
     
    5050
    5151[(#REM)
    52 
    5352        Bouton voir en ligne
    54 
    5553]
    5654[(#VAL{redirect}
     
    5957        |icone_horizontale{<:icone_voir_en_ligne:>,racine})]
    6058
     59[(#AUTORISER{supprimer, contact, #ID_CONTACT}|oui)
     60        [(#BOUTON_ACTION{[(#CHEMIN_IMAGE{contact-del-24.png}
     61                |balise_img{<:contacts:supprimer_contact:>}|inserer_attribut{class,co_middle}
     62                |concat{' ',<:contacts:supprimer_contact:>})],
     63                [(#URL_ACTION_AUTEUR{supprimer_contact,#ID_CONTACT,#URL_ECRIRE{contacts}})],
     64                ajax icone s24 horizontale danger contact-del-24,<:contacts:confirmer_supprimer_contact:>\n\n<:contacts:explication_supprimer_contact:>})]
     65]
     66
     67
    6168</BOUCLE_contact>
  • _plugins_/contacts_et_organisations/trunk/prive/objets/liste/contacts.html

    r77227 r83982  
    4141                        <th class="nom">[(#TRI{nom,<:contacts:label_prenom_nom:>,ajax})]</th>
    4242                        <th class="organisation"><:contacts:label_organisation:></th>
    43                         <th class='action'></th>
     43                        <th class='auteur'><:contacts:label_auteur_associe:></th>
    4444                </tr>
    4545        </thead>
     
    5656                        <//BOUCLE_lien_contact>
    5757                        <td class="picto"><a href="[(#GET{url})]">#INCLURE{fond=logo/contact, id_contact}</a></td>
    58                         <td class='nom'><a href="[(#ID_CONTACT|generer_url_entite{contact})]">[<span class="#EDIT{prenom}">(#PRENOM)</span> ]#NOM</a></td>
    59                         <td class='organisation'>#ORGANISATIONS</td>
    60                         <td class='action'>[(#AUTORISER{modifier, contact, #ID_CONTACT}|oui)
    61                                 [(#BOUTON_ACTION{
    62                                         [(#CHEMIN_IMAGE{contact-del-16.png}|balise_img{<:contacts:supprimer_contact:>})],
    63                                         [(#URL_ACTION_AUTEUR{supprimer_contact,[contact/(#ID_CONTACT)],[(#ENV{redirect,#SELF})]})],
    64                                         ajax,<:contacts:confirmer_supprimer_contact:>})]
    65                         ]</td>
     58                        <td class='nom'><a href="[(#ID_CONTACT|generer_url_entite{contact})]" title="<:contacts:contact_voir|attribut_html:>">[<span class="#EDIT{prenom}">(#PRENOM)</span> ]#NOM</a></td>
     59                        <td class='organisation'>[(#ORGANISATIONS|sinon{-})]</td>
     60                        <td class='auteur'>
     61                        <BOUCLE_auteur (AUTEURS) {id_auteur}>
     62                                <a href="(#URL_ECRIRE{auteur}|parametre_url{id_auteur,#ID_AUTEUR})">#NOM</a>
     63                        </BOUCLE_auteur></B_auteur>-<//B_auteur>
     64                        </td>
    6665                </tr>
    6766        </BOUCLE_liste_contacts>
  • _plugins_/contacts_et_organisations/trunk/prive/squelettes/contenu/contact.html

    r58271 r83982  
    4343
    4444
    45 [(#BOUTON_ACTION{[(#CHEMIN_IMAGE{contact-del-24.png}
    46         |balise_img{<:contacts:supprimer_contact:>}|inserer_attribut{class,co_middle}
    47         |concat{' ',<:contacts:supprimer_contact:>})],
    48         [(#URL_ACTION_AUTEUR{supprimer_contact,contact/#ID_CONTACT,#URL_ECRIRE{contacts}})],
    49         ajax,<:contacts:confirmer_supprimer_contact:>\n\n<:contacts:explication_supprimer_contact:>})]
    50 
    51 
    5245[(#EVAL{_AJAX}|oui)
    5346        <script type="text/javascript">/*<!\[CDATA\[*/reloadExecPage('#ENV{exec}','#navigation');/*\]\]>*/</script>
  • _plugins_/contacts_et_organisations/trunk/prive/squelettes/contenu/contacts.html

    r58266 r83982  
    1 
    21[(#VAL{contacts}|barre_onglets{contacts})]
    32
    4 <h1 class="grostitre"><:contacts:contacts:></h1>
     3<h1><:contacts:contacts:></h1>
    54
    65#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
  • _plugins_/contacts_et_organisations/trunk/prive/style_prive_plugin_contacts.html

    r71901 r83982  
    1414#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
    1515#HTTP_HEADER{Vary: Accept-Encoding}
     16/* #SQUELETTE */
     17/*
     18Valeurs par defaut :
     19#SET{claire,##ENV{couleur_claire,edf3fe}} [claire: (#GET{claire});]
     20#SET{foncee,##ENV{couleur_foncee,3874b0}} [foncee: (#GET{foncee});]
     21#SET{left,#ENV{ltr}|choixsiegal{left,left,right}} [left: (#GET{left});]
     22#SET{right,#ENV{ltr}|choixsiegal{left,right,left}} [right: (#GET{right});]
     23#SET{rtl,#ENV{ltr}|choixsiegal{left,'',_rtl}} [rtl: (#GET{rtl});]
     24#SET{dir,#ENV{ltr}|choixsiegal{left,ltr,rtl}} [dir: (#GET{dir});]
     25
     26#SET{font-size,#ENV{font-size,0.8125em}} [font-size: (#GET{font-size});]
     27#SET{line-height,#ENV{line-height,1.385em}} [line-height: (#GET{line-height});]
     28#SET{margin-bottom,#ENV{margin-bottom,#GET{line-height}}} [margin-bottom: (#GET{margin-bottom});]
     29#SET{text-indent,#ENV{text-indent,50px}} [text-indent: (#GET{text-indent});]
     30#SET{font-family,#ENV*{font-family,'Helvetica, Arial, sans-serif'}} [font-family: (#GET{font-family});]
     31#SET{background-color,#ENV{background-color,#F8F7F3}} [background-color : (#GET{background-color});]
     32#SET{color,#ENV{color,#000000}} [color: (#GET{color});]
     33*/
     34
    1635
    1736img.co_middle {vertical-align:middle;}
     
    6483
    6584.changer_selection_organisation {float:right;}
     85
     86body.contact #contenu .fiche_objet #wysiwyg .champ,
     87body.organisation #contenu .fiche_objet #wysiwyg .champ {
     88    margin-bottom: 1em;
     89    overflow: hidden;
     90    padding-top: 0.5em;
     91    border-top: 1px solid #GET{claire};
     92}
     93body.contact #contenu .fiche_objet #wysiwyg .champ .label.visible,
     94body.organisation #contenu .fiche_objet #wysiwyg .champ .label.visible {
     95    display: block;
     96    width: 30%;
     97    margin-top:0;
     98    float: left;
     99    font-weight: bold;
     100    color: #GET{color};
     101}
     102body.contact #contenu .fiche_objet #wysiwyg .champ .span,
     103body.organisation #contenu .fiche_objet #wysiwyg .champ .span {
     104    display:block;
     105    width: 69%;
     106    float: right;
     107}
     108body.contact #contenu .fiche_objet #wysiwyg .fieldset,
     109body.organisation #contenu .fiche_objet #wysiwyg .fieldset {
     110    margin-top: 2em;
     111}
     112body.contact #contenu .fiche_objet #wysiwyg .fieldset + .liste-objets,
     113body.organisation #contenu .fiche_objet #wysiwyg .fieldset + .liste-objets {
     114    margin-top: 1em;
     115}
     116body.contact #contenu .fiche_objet #wysiwyg .fieldset .titrem,
     117body.organisation #contenu .fiche_objet #wysiwyg .fieldset .titrem {
     118    display: block;
     119    font-weight: bold;
     120    padding: 7px 5px 7px 10px;
     121    border-top: 1px solid #GET{color};
     122    background-color: #GET{background-color};
     123    color: #GET{foncee};
     124}
Note: See TracChangeset for help on using the changeset viewer.