Ignore:
Timestamp:
07/15/10 14:51:39 (22 months ago)
Author:
dart
Message:

LoReality?:
o AJAX work for message

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loreality/loreality/templates/derived/page/messager.html

    r2111 r2112  
    11<%inherit file="/base/index.html"/> 
     2 
     3<script> 
     4/*-------------------------------------*/ 
     5function showMessage(data,ioArgs) { 
     6    if( data == "Error"){ 
     7        alert("Error"); 
     8        }else{ 
     9        d = data.split('|'); 
     10        dojo.fx.wipeIn({ 
     11            node:"message-" + d[0], 
     12            beforeBegin: function(n){ 
     13                dojo.byId("message-txt-"+d[0]).innerHTML = d[1]; 
     14            } 
     15        }).play(); 
     16        dojo.byId( "nb_msg_unread").innerHTML = d[2]; 
     17    } 
     18 
     19} 
     20/*-------------------------------------*/ 
     21function helloError(data, ioArgs) { 
     22    alert('Error when retrieving data from the server!'); 
     23} 
     24/*-------------------------------------*/ 
     25function loadMsg() { 
     26    dojo.empty("message_table"); 
     27    dojo.xhrGet({ 
     28        url: '${h.url_for(controller='messager', action='getallmsgs') }', 
     29        load: fillMessages, 
     30        error: helloError, 
     31    }).play(); 
     32} 
     33dojo.addOnLoad( loadMsg ); 
     34/*-------------------------------------*/ 
     35function fillMessages(data,ioArgs) { 
     36    if( data == "Error"){ 
     37        alert("Error"); 
     38        }else{ 
     39        var buffer = ""; 
     40        messages = data.split("|"); 
     41        for (i = 0; i < messages.length; i += 1) { 
     42            buffer += "<tr>"; 
     43            elements = messages[i].split("#"); 
     44            for (n = 0; n < elements.length; n += 1 ){ 
     45                buffer += "<td>" + elements[n] + "</td>"  
     46            } 
     47            buffer += "</tr>"; 
     48        } 
     49        dojo.html.set("message_table", buffer); 
     50 
     51    } 
     52} 
     53</script> 
    254 
    355<h2>Messager</h2> 
    456% for message in c.messages: 
    5 % if message.id == c.message_open: 
    6 <div class="message_open"> 
    7 % else: 
    857<div class="message"> 
    9 % endif 
    1058    <a href=${h.url_for(controller='messager', action='delete',id=message.id) } class="action">[Delete]</a> 
    11 % if message.id == c.message_open: 
    12 <span><a href=${h.url_for(controller='messager', action='index',id=message.id) } class="action">${h.msg.get_from(message)} | ${message.date.strftime("%c")}  <span id="subject">${message.subject}</span></a></span> 
    13     <div id="text">${h.literal(message.text)}</div> 
    14     <a href=${h.url_for(controller='messager', action='create',id=message.id) } class="action">[Reply]</a> 
    15 % else: 
    16     % if message.unread: 
    17         <span class="unread"><a href=${h.url_for(controller='messager', action='open',id=message.id) } class="action">${h.msg.get_from(message)} | ${message.date.strftime("%c")} | <span id="subject"> ${message.subject}</span></a></span> 
    18     %else: 
    19         <span><a href=${h.url_for(controller='messager', action='open',id=message.id) } class="action">${h.msg.get_from(message)} | ${message.date.strftime("%c")} | <span id="subject"> ${message.subject}</span></a></span> 
    20     % endif 
    21 % endif 
     59 <button dojoType="dijit.form.ToggleButton"> 
     60    <span  
     61        %if message.unread: 
     62        class="unread" 
     63        %else: 
     64        class="read" 
     65        %endif 
     66        id="span-${message.id}" >${h.msg.get_from(message)} | ${message.date.strftime("%c")} | <span id="subject"> ${message.subject}</span></span> 
     67 
     68      <script type="dojo/method" event="onChange"> 
     69          node = "span-${message.id}"; 
     70          if( this.checked ) 
     71          { 
     72              if( dojo.hasClass( node, "unread") ) 
     73              { 
     74                  dojo.removeClass( node, "unread"); 
     75                  dojo.addClass( node, "read"); 
     76              } 
     77              dojo.xhrGet({ 
     78                  url: '${h.url_for(controller='messager', action='getmsg',id=message.id) }', 
     79                  load: showMessage, 
     80                  error: helloError, 
     81                  }).play(); 
     82          }else{ 
     83          dojo.fx.wipeOut({ 
     84              node:"message-${message.id}", 
     85              }).play(); 
     86          } 
     87      </script> 
     88  </button> 
    2289</div> 
     90  <div id="message-${message.id}" class='message_open' style="display: none;"> 
     91  <button dojoType="dijit.form.Button">Reply 
     92      <script type="dojo/method" event="onClick"> 
     93      </script> 
     94  </button> 
     95  <p id="message-txt-${message.id}"></p> 
     96  </div> 
    2397<br/> 
    2498% endfor 
    25  
     99<h2>New one</h2> 
     100<div id="message_list"> 
     101    <table id="message_table"> 
     102    </table> 
     103</div> 
    26104<a href=${h.url_for(controller='messager', action='create', id=None)}>[New message]</a> 
    27105 
Note: See TracChangeset for help on using the changeset viewer.