Changeset 112345 in spip-zone


Ignore:
Timestamp:
Nov 6, 2018, 5:12:59 PM (7 months ago)
Author:
pierre.troller@…
Message:

afficher les 5O derniers messages, ça suffit

Location:
_plugins_/chatbox2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/chatbox2/formulaires/editer_message_chat.html

    r112341 r112345  
    1 
    21<style>
    3 
    4 .contenu_chatbox2 {
    5      position:relative;
    6      max-height: 300px;
    7      width:100%;
    8      overflow:auto;
    9     top: -7px;
    10 }
    11 
    12 
    13 .formulaire_editer_message_chat label[for='texte'] {
    14 display:none
    15 }
    16 .formulaire_editer_message_chat .editer_destinataires,
    17 .formulaire_editer_message_chat .editer_titre,
    18 .formulaire_editer_message_chat .editer_rv,
    19 .formulaire_editer_message_chat .brouillon,
    20 .formulaire_editer_message_chat .draft,
    21 .formulaire_editer_message_chat .boutons {
    22 position:absolute;
    23 top:-2000px;
    24 padding:0;
    25 margin:0;
    26 }
    27 
    28 .formulaire_editer_message_chat .cs_blocs {
    29 padding:0;
    30 margin:0;
    31 }
    32 .formulaire_editer_message_chat h4.cs_done {
    33 padding:0;
    34 margin:0;
    35 }
    36 .formulaire_editer_message_chat form {
    37 padding:0;
    38 margin:0;
    39 }
    40 .no_message{
    41 text-align:center;
    42 color:#333;
    43 letter-spacing:0;
    44 }
    45 .formulaire_editer_message_chat textarea {
    46 padding:0.35em 0 0.15em 0.3em;
    47 line-height:1.2em;
    48 min-height:1.2em;
    49 font-size:0.95em;
    50 border:1px solid #ccc;
    51 color:#333;
    52 /*background-color: rgba(18, 23, 70, 1);*/
    53 }
    54 /*position:absolute;bottom:0;*/
    55 table.formulaire_chat {width:100%;background:transparent;border-collapse: collapse;border:0;font-weight:normal;margin:0;}
    56 table.formulaire_chat tr, table.formulaire_chat td {border:0;padding:0;vertical-align:top;line-height:1.2em;}
    57 
    58 table.formulaire_chat td.tdsubmit {
    59 width:30px;
    60 font-size:1em;
    61 padding-right:1px:
    62 }
    63 
    64 td.tdDraft {
    65 width:33px;
    66 }
    67 .camera {
    68 position:relative;
    69 }
    70 input.draft {
    71 width:33px;
    72 padding: 0.2em 1em;
    73 font-size:1em;
    74 line-height:1em;
    75 height:1.9em;
    76 border:0;
    77 background-color:rgba(52, 53, 90, 0.8);
    78 
    79 }
    80 .camera i {
    81 position:absolute;
    82 left:10px;
    83 top:5px;
    84 z-index:-1;
    85 color:rgba(52, 53, 90, 0.8);
    86 }
    87 
    88 .formulaire_editer_message_chat {
    89 padding:0;margin:0;
    90 }
    91 
    92 .formulaire_editer_message_chat button.send {
    93 width:100%;
    94 border-radius:3px;
    95 
    96 outline:none;
    97 padding: 0.35em 0.8em;
    98 height: 1.85em;
    99 background-color: rgba(52, 53, 90, 0.8);
    100 }
    101 
    102 .formulaire_editer_message_chat .send:hover,btn-default:hover{color:#fff;border:#00b0ff}
    103 
    104 .smileys  {
    105 dispaly:block;
    106 }
    107 
    108 
    109 
    110 
     2    .contenu_chatbox2 {
     3         position:relative;
     4         max-height: 300px;
     5         width:100%;
     6         overflow:auto;
     7        top: -7px;
     8    }
     9   
     10   
     11    .formulaire_editer_message_chat label[for='texte'] {
     12    display:none
     13    }
     14    .formulaire_editer_message_chat .editer_destinataires,
     15    .formulaire_editer_message_chat .editer_titre,
     16    .formulaire_editer_message_chat .editer_rv,
     17    .formulaire_editer_message_chat .brouillon,
     18    .formulaire_editer_message_chat .draft,
     19    .formulaire_editer_message_chat .boutons {
     20    position:absolute;
     21    top:-2000px;
     22    padding:0;
     23    margin:0;
     24    }
     25   
     26    .formulaire_editer_message_chat .cs_blocs {
     27    padding:0;
     28    margin:0;
     29    }
     30    .formulaire_editer_message_chat h4.cs_done {
     31    padding:0;
     32    margin:0;
     33    }
     34    .formulaire_editer_message_chat form {
     35    padding:0;
     36    margin:0;
     37    }
     38    .no_message{
     39    text-align:center;
     40    color:#333;
     41    letter-spacing:0;
     42    }
     43    .formulaire_editer_message_chat textarea {
     44    padding:0.35em 0 0.15em 0.3em;
     45    line-height:1.2em;
     46    min-height:1.2em;
     47    font-size:0.95em;
     48    border:1px solid #ccc;
     49    color:#333;
     50    /*background-color: rgba(18, 23, 70, 1);*/
     51    }
     52    /*position:absolute;bottom:0;*/
     53    table.formulaire_chat {width:100%;background:transparent;border-collapse: collapse;border:0;font-weight:normal;margin:0;}
     54    table.formulaire_chat tr, table.formulaire_chat td {border:0;padding:0;vertical-align:top;line-height:1.2em;}
     55   
     56    table.formulaire_chat td.tdsubmit {
     57    width:30px;
     58    font-size:1em;
     59    padding-right:1px:
     60    }
     61   
     62    td.tdDraft {
     63    width:33px;
     64    }
     65    .camera {
     66    position:relative;
     67    }
     68    input.draft {
     69    width:33px;
     70    padding: 0.2em 1em;
     71    font-size:1em;
     72    line-height:1em;
     73    height:1.9em;
     74    border:0;
     75    background-color:rgba(52, 53, 90, 0.8);
     76   
     77    }
     78    .camera i {
     79    position:absolute;
     80    left:10px;
     81    top:5px;
     82    z-index:-1;
     83    color:rgba(52, 53, 90, 0.8);
     84    }
     85   
     86    .formulaire_editer_message_chat {
     87    padding:0;margin:0;
     88    }
     89   
     90    .formulaire_editer_message_chat button.send {
     91    width:100%;
     92    border-radius:3px;
     93   
     94    outline:none;
     95    padding: 0.35em 0.8em;
     96    height: 1.85em;
     97    background-color: rgba(52, 53, 90, 0.8);
     98    }
     99   
     100    .formulaire_editer_message_chat .send:hover,btn-default:hover{color:#fff;border:#00b0ff}
     101   
     102    .smileys  {
     103    dispaly:block;
     104    }
    111105</style>
    112106
    113         #SET{dests,#ARRAY}
    114         <BOUCLE_d(POUR){tableau #ENV{destinataires}}>
    115         #SET{dests,#GET{dests}|push{#VALEUR}}
    116         </BOUCLE_d>
    117 
    118 
    119 <div class="ajax formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}" id="#formulaire_chatbox_[(#GET{dests}|implode{''})]">
    120 
    121 
    122 <div class="contenu_chatbox2" id="contenu_chatbox2_[(#GET{dests}|implode{''})]">
    123 #INCLURE{fond=inc-chatbox,dests=#GET{dests}|implode{","}}
    124 </div>
    125 
    126 
    127 
    128 [(#REM)[(#ENV**{message_ok}|oui)
    129 <p class="reponse_formulaire reponse_formulaire_ok"><:organiseur_public:info_1_message_envoye:></p>
    130 ]]
    131 
    132         [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    133 
    134 
    135 
    136         <form method='post' action='#ENV{action}'><div>
    137 
    138                 [(#REM) declarer les hidden qui declencheront le service du formulaire
    139                 parametre : url d'action ]
    140                 #ACTION_FORMULAIRE
    141                 #SET{fl,organiseur_public}
    142 
    143                 <input type="hidden" class="text" name="id_message_origine" value="#ENV*{id_message_origine}" />
    144 
    145                 <div class="editer-groupe" style="padding:0;margin:0;">
    146                         [(#ENV{_destiner}|oui)
    147                         #SET{name,destinataires}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    148                         <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    149                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)] <span class="small normal">(autocomplete, type 2 letters min)</span></label>[
    150                                 <span class='erreur_message'>(#GET{erreurs})</span>
    151                                 ]
    152                                 #INCLURE{fond=formulaires/inc-destinataires-message,name=#GET{name},env}
    153                         </div>
    154                         ]
    155                         #SET{name,titre}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    156                         <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    157                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    158                                 <span class='erreur_message'>(#GET{erreurs})</span>
    159                                 ]
    160 
    161 [(#REM)titre]
    162                         <input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required="required"] />
    163                         </div>
    164                         <div class="editer editer_rv[ (#ENV**{erreurs}|table_valeur{rv}|oui)erreur]">
    165                                 <div class="choix">
    166                                         <input type='checkbox' name='rv' id='rv' value='oui' [(#ENV{rv}|=={oui}|oui)checked='checked']
    167                                                 onclick="if (this.checked==true) { $('.editer_date_debut_fin').show('fast');} else {$('.editer_date_debut_fin').hide('fast');}" />
    168                                         <label for="rv"><:item_afficher_calendrier:></label>[
    169                                 <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{rv})</span>
    170                                 ]
    171                                 </div>
    172                         </div>
    173                         <div class="editer editer_date_debut editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
    174                                 <label for="date_debut"><:organiseur:info_message_date_debut:></label>[
    175                                 <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span>
    176                                 ]<input type='text' class='text date' name='date_debut' id='date_debut' size='10' maxlength='10' value="[(#ENV{date_debut})]" />
    177                                 <input type='text' class='text heure' name='heure_debut' id='heure_debut' size='4' maxlength='5' value="[(#ENV{heure_debut})]"
    178                                 />
    179                         </div>
    180                         <div class="editer editer_date_fin editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
    181                                 <label for="date_fin" class='date_fin'><:organiseur:info_message_date_fin:></label>[
    182                                 <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_fin})</span>
    183                                 ]<input type='text' class='text date' name='date_fin' id='date_fin' size='10' maxlength='10' value="[(#ENV{date_fin})]" />
    184                                 <input type='text' class='text heure' name='heure_fin' id='heure_fin' size='4' maxlength='5' value="[(#ENV{heure_fin})]" />
    185                         </div>
    186 
    187 [(#REM)///////////////////////////texte////////////////////////////////////////////
    188 //////////////////////////////////////////////////////////////////////////////////////////////////]
    189                         #SET{name,texte}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    190                         <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]" style="padding:0;margin:0;">
    191                                 <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
    192                                 <span class='erreur_message'>(#GET{erreurs})</span>
    193                                 ]
    194 
    195 [(#REM)/////////////////////////// champs ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////]
    196 
    197 #SET{form_id, textarea_#GET{dests}|implode{"_"}}
    198 <table class="formulaire_chat">
    199         <tr>
    200                 <td class="tdDraft">
    201         <div class="camera"><i class="fa fa-camera" aria-hidden="true"></i>
    202 [(#REM) <input type="submit" class="draft" name="draft" value="&nbsp;" />]
    203         </div>
    204                 </td>
    205                 <td>
    206                 <textarea placeholder="chat..." name="#GET{name}" class="no_barre" style="" id="#GET{form_id}"></textarea>
    207                 </td>
    208                 <td class="tdsubmit">
    209                 <button type="submit" name="send" class="btn spip send"><i class="fa fa-send fa-2" aria-hidden="true"></i></button>
    210                 </td>
    211         </tr>
    212 </table>
    213 <script type="text/javascript">
    214 (function($, window) {
    215 $('##GET{form_id}').keyup(function (e) {
    216     autoheight(this);
    217 });
    218 
    219 function autoheight(a) {
    220     if (!$(a).prop('scrollTop')) {
    221         do {
    222             var b = $(a).prop('scrollHeight');
    223             var h = $(a).height();
    224             $(a).height(h - 5);
    225         }
    226         while (b && (b != $(a).prop('scrollHeight')));
    227     };
    228     $(a).height($(a).prop('scrollHeight') + 20);
    229 }
    230 autoheight($('##GET{form_id}'));
    231 })(jQuery, window);
    232 </script>
    233                         </div>
    234 
    235                         [(#REM) Piege a robots spammeurs ]
    236                         #SET{name,antispam}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    237                         <div class="editer none editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    238                                 <label for="nobotnobot-#ID"><:antispam_champ_vide:></label>[
    239                                 <span class='erreur_message'>(#GET{erreurs})</span>
    240                                 ]<input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="nobotnobot-#ID" />
    241                         </div>
    242 
    243         </div>[(#REM)editer_groupe]
    244 
    245 
    246 [(#REM)                 <input type='submit' class='btn fa send' name="send" title="<:organiseur_public:bouton_envoyer_message:>" value="&#xf1d8;" />]
    247 
    248           <div class='boutons'>
    249           <!--extra-->
    250                 <span class='image_loading'>&nbsp;</span>
    251                         <input type='submit' class='btn spip brouillon' name="draft" value='<:organiseur_public:bouton_enregistrer_brouillon:>' />
    252                         <input type='submit' class='btn spip draft' name="draft" value='<:titre_joindre_document:>' />
    253                 </div>
    254         </div>
    255 
    256 </form>
    257 
    258 
    259 </div>
    260 
    261 
    262 
    263 
    264 
    265 
    266 
    267 
    268 
    269 
    270 <script>
    271 (function($, window) {
    272 $("#contenu_chatbox2_[(#GET{dests}|implode{''})]").animate({ scrollTop: $(document).height() }, "slow");
    273  return false;
    274 })(jQuery, window);
    275 </script>
    276 
    277 
    278 
    279 
    280 <script type='text/javascript' src='#CHEMIN{js/jquery.labelhide.js}'></script>
    281 <script type='text/javascript'><!--
    282 if (window.jQuery) (function($){
    283         // adresse du fragment ajax
    284         var url = 'spip.php?page=inc-chatbox\x26dests=[(#GET{dests}|implode{','})]\x26nb_messages_recus=[(#GET{nb_messages_recus})]';
    285 //      var url = 'spip.php?page=compteur_messages_chat\x26dests=[(#GET{dests}|implode{','})]\x26nb_messages_affiches=[(#GET{nb_messages_affiches})]';
    286         // reload : au debut, toutes les 20s, puis 22, 24... 60s
    287         // si on participe on revient a 5s, puis 7, 9... 60s
    288         var r = 10;
    289         var reload = function() {
    290         $("#contenu_chatbox2_[(#GET{dests}|implode{''})]")
    291                 .load(url,function(){setTimeout(reload,1000*(r=Math.min(r+2,60)));});
    292         }
    293         setTimeout(reload, r);
    294 
    295         $("#formulaire_chatbox_[(#GET{dests}|implode{''})] form")
    296         .ajaxForm({
    297                 url: url,
    298                 target: "#contenu_chatbox2_[(#GET{dests}|implode{''})]",
    299                 beforeSubmit: function(){
    300 //                      $("#chatbox_[(#GET{dests}|implode{''})]").val('');
    301 //                      $("#chatbox_nick_[(#GET{dests}|implode{''})]").blur();
    302                         $("#contenu_chatbox2_[(#GET{dests}|implode{''})]")
    303                         .css('opacity', 0.5);
    304                 },
    305                 success: function(){
    306                         $("#contenu_chatbox2_[(#GET{dests}|implode{''})]")
    307                         .css('opacity', 1);
    308                         r = 5;
    309 //                      $("input#chatbox_[(#GET{dests}|implode{''})]").focus();
    310                 }
    311         });
    312 
    313         // Masquer le champ de saisie du nick sous son label
    314         $('label.labelhide').labelhide();
    315 
    316 })(jQuery);
    317 // --></script>
    318 
    319 
    320 
    321 
    322 
     107#SET{dests,#ARRAY}
     108<BOUCLE_d(POUR){tableau #ENV{destinataires}}>
     109    #SET{dests,#GET{dests}|push{#VALEUR}}
     110    </BOUCLE_d>
     111
     112    <div class="ajax formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}" id="#formulaire_chatbox_[(#GET{dests}|implode{''})]">
     113
     114        <div class="contenu_chatbox2" id="contenu_chatbox2_[(#GET{dests}|implode{''})]">
     115            #INCLURE{fond=inc-chatbox,dests=#GET{dests}|implode{","}}
     116        </div>
     117
     118        [(#REM)[(#ENV**{message_ok}|oui)
     119        <p class="reponse_formulaire reponse_formulaire_ok">
     120            <:organiseur_public:info_1_message_envoye:>
     121        </p>
     122        ]] [
     123
     124        <p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     125
     126        <form method='post' action='#ENV{action}'>
     127            <div>
     128                [(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ] #ACTION_FORMULAIRE #SET{fl,organiseur_public}
     129
     130                <input type="hidden" class="text" name="id_message_origine" value="#ENV*{id_message_origine}" />
     131
     132                <div class="editer-groupe" style="padding:0;margin:0;">
     133                    [(#ENV{_destiner}|oui) #SET{name,destinataires}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     134                    <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     135                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)] <span class="small normal">(autocomplete, type 2 letters min)</span></label>[
     136                        <span class='erreur_message'>(#GET{erreurs})</span> ] #INCLURE{fond=formulaires/inc-destinataires-message,name=#GET{name},env}
     137                    </div>
     138                    ] #SET{name,titre}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     139                    <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     140                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     141                        <span class='erreur_message'>(#GET{erreurs})</span> ] [(#REM)titre]
     142                        <input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required="required" ] />
     143                    </div>
     144                    <div class="editer editer_rv[ (#ENV**{erreurs}|table_valeur{rv}|oui)erreur]">
     145                        <div class="choix">
     146                            <input type='checkbox' name='rv' id='rv' value='oui' [(#ENV{rv}|=={oui}|oui)checked='checked' ] onclick="if (this.checked==true) { $('.editer_date_debut_fin').show('fast');} else {$('.editer_date_debut_fin').hide('fast');}" />
     147                            <label for="rv"><:item_afficher_calendrier:></label>[
     148                            <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{rv})</span> ]
     149                        </div>
     150                    </div>
     151                    <div class="editer editer_date_debut editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
     152                        <label for="date_debut"><:organiseur:info_message_date_debut:></label>[
     153                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span> ]
     154                        <input type='text' class='text date' name='date_debut' id='date_debut' size='10' maxlength='10' value="[(#ENV{date_debut})]" />
     155                        <input type='text' class='text heure' name='heure_debut' id='heure_debut' size='4' maxlength='5' value="[(#ENV{heure_debut})]" />
     156                    </div>
     157                    <div class="editer editer_date_fin editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur][(#ENV{rv}|=={oui}|non)none]">
     158                        <label for="date_fin" class='date_fin'><:organiseur:info_message_date_fin:></label>[
     159                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_fin})</span> ]
     160                        <input type='text' class='text date' name='date_fin' id='date_fin' size='10' maxlength='10' value="[(#ENV{date_fin})]" />
     161                        <input type='text' class='text heure' name='heure_fin' id='heure_fin' size='4' maxlength='5' value="[(#ENV{heure_fin})]" />
     162                    </div>
     163
     164                    [(#REM)///////////////////////////texte//////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////] #SET{name,texte}#SET{obli,'obligatoire'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     165                    <div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]" style="padding:0;margin:0;">
     166                        <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
     167                        <span class='erreur_message'>(#GET{erreurs})</span> ] [(#REM)/////////////////////////// champs ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////] #SET{form_id, textarea_#GET{dests}|implode{"_"}}
     168                        <table class="formulaire_chat">
     169                            <tr>
     170                                <td class="tdDraft">
     171                                    <div class="camera"><i class="fa fa-camera" aria-hidden="true"></i> [(#REM) <input type="submit" class="draft" name="draft" value="&nbsp;" />]
     172                                    </div>
     173                                </td>
     174                                <td>
     175                                    <textarea placeholder="chat..." name="#GET{name}" class="no_barre" style="" id="#GET{form_id}"></textarea>
     176                                </td>
     177                                <td class="tdsubmit">
     178                                    <button type="submit" name="send" class="btn spip send"><i class="fa fa-send fa-2" aria-hidden="true"></i></button>
     179                                </td>
     180                            </tr>
     181                        </table>
     182                        <script type="text/javascript">
     183                            (function($, window) {
     184                            $('##GET{form_id}').keyup(function (e) {
     185                                autoheight(this);
     186                            });
     187                           
     188                            function autoheight(a) {
     189                                if (!$(a).prop('scrollTop')) {
     190                                    do {
     191                                        var b = $(a).prop('scrollHeight');
     192                                        var h = $(a).height();
     193                                        $(a).height(h - 5);
     194                                    }
     195                                    while (b && (b != $(a).prop('scrollHeight')));
     196                                };
     197                                $(a).height($(a).prop('scrollHeight') + 20);
     198                            }
     199                            autoheight($('##GET{form_id}'));
     200                            })(jQuery, window);
     201                        </script>
     202
     203                    </div>
     204
     205                    [(#REM) Piege a robots spammeurs ] #SET{name,antispam}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     206                    <div class="editer none editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
     207                        <label for="nobotnobot-#ID"><:antispam_champ_vide:></label>[
     208                        <span class='erreur_message'>(#GET{erreurs})</span> ]
     209                        <input type="text" class="text" name="#GET{name}" value="#ENV*{#GET{name}}" id="nobotnobot-#ID" />
     210                    </div>
     211
     212                </div>
     213
     214                <div class='boutons'>
     215                    <!--extra-->
     216                    <span class='image_loading'>&nbsp;</span>
     217                    <input type='submit' class='btn spip brouillon' name="draft" value='<:organiseur_public:bouton_enregistrer_brouillon:>' />
     218                    <input type='submit' class='btn spip draft' name="draft" value='<:titre_joindre_document:>' />
     219                </div>
     220
     221            </div>
     222        </form>
     223    </div>
     224
     225    <script>
     226        (function($, window) {
     227        $("#contenu_chatbox2_[(#GET{dests}|implode{''})]").animate({ scrollTop: $(document).height() }, "slow");
     228         return false;
     229        })(jQuery, window);
     230    </script>
     231
     232    <script type='text/javascript' src='#CHEMIN{js/jquery.labelhide.js}'></script>
     233    <script type='text/javascript'>
     234        <!--
     235        if (window.jQuery) (function($){
     236                // adresse du fragment ajax
     237                var url = 'spip.php?page=inc-chatbox\x26dests=[(#GET{dests}|implode{','})]\x26nb_messages_recus=[(#GET{nb_messages_recus})]';
     238        //      var url = 'spip.php?page=compteur_messages_chat\x26dests=[(#GET{dests}|implode{','})]\x26nb_messages_affiches=[(#GET{nb_messages_affiches})]';
     239                // reload : au debut, toutes les 20s, puis 22, 24... 60s
     240                // si on participe on revient a 5s, puis 7, 9... 60s
     241                var r = 10;
     242                var reload = function() {
     243                $("#contenu_chatbox2_[(#GET{dests}|implode{''})]")
     244                        .load(url,function(){setTimeout(reload,1000*(r=Math.min(r+2,60)));});
     245                }
     246                setTimeout(reload, r);
     247       
     248                $("#formulaire_chatbox_[(#GET{dests}|implode{''})] form")
     249                .ajaxForm({
     250                        url: url,
     251                        target: "#contenu_chatbox2_[(#GET{dests}|implode{''})]",
     252                        beforeSubmit: function(){
     253        //                      $("#chatbox_[(#GET{dests}|implode{''})]").val('');
     254        //                      $("#chatbox_nick_[(#GET{dests}|implode{''})]").blur();
     255                                $("#contenu_chatbox2_[(#GET{dests}|implode{''})]")
     256                                .css('opacity', 0.5);
     257                        },
     258                        success: function(){
     259                                $("#contenu_chatbox2_[(#GET{dests}|implode{''})]")
     260                                .css('opacity', 1);
     261                                r = 5;
     262        //                      $("input#chatbox_[(#GET{dests}|implode{''})]").focus();
     263                        }
     264                });
     265       
     266                // Masquer le champ de saisie du nick sous son label
     267                $('label.labelhide').labelhide();
     268       
     269        })(jQuery);
     270        // -->
     271    </script>
  • _plugins_/chatbox2/inc-chatbox.html

    r112340 r112345  
    3636
    3737.texte_message {
    38    line-height:1.25em;
    39     font-size: 13px;
     38line-height:1.25em;
     39font-size: 13px;
    4040padding:0;
    4141margin:0;
     
    6161
    6262
    63 <BOUCLE_messages(MESSAGES auteurs){type=chat}{id_message IN (#GET{les_messages})}{par date}>
     63<BOUCLE_messages(MESSAGES auteurs){type=chat}{id_message IN (#GET{les_messages})}{par date}{0,50}>
    6464
    6565<BOUCLE_auteur(auteurs){id_auteur}>
Note: See TracChangeset for help on using the changeset viewer.