Ignore:
Timestamp:
07/16/10 14:19:10 (22 months ago)
Author:
dart
Message:

LoReality?:
o Messsager is now full ajax. Can reply to a mail now.

File:
1 edited

Legend:

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

    r2113 r2114  
    11<%inherit file="/base/index.html"/> 
    2  
    3 <script> 
    4 /*-------------------------------------*/ 
    5 function 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 /*-------------------------------------*/ 
    21 function helloError(data, ioArgs) { 
    22     alert('Error when retrieving data from the server!'); 
    23 } 
    24 /*-------------------------------------*/ 
    25 function 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 } 
    33 dojo.addOnLoad( loadMsg ); 
    34 /*-------------------------------------*/ 
    35 function fillMessages(data,ioArgs) { 
    36     if( data == "Error"){ 
    37         alert("Error"); 
    38         }else{ 
    39         objects = dojox.json.ref.fromJson(data); 
    40         messages = objects['messages']; 
    41  
    42         var buffer = ""; 
    43         for (i = 0; i < messages.length; i += 1) { 
    44             msg = messages[i]; 
    45             buffer += "<tr><td>" + msg['date'] + '</td><td>' + msg['from'] + '</td><td>' + msg['subject'] +"</td></tr>"  
    46         } 
    47         dojo.html.set("message_table", buffer); 
    48  
    49     } 
    50 } 
    51 </script> 
    52  
     2${ h.javascript_link( '/js/messager.js') } 
    533<h2>Messager</h2> 
    54 % for message in c.messages: 
    55 <div class="message"> 
    56     <a href=${h.url_for(controller='messager', action='delete',id=message.id) } class="action">[Delete]</a> 
    57  <button dojoType="dijit.form.ToggleButton"> 
    58     <span  
    59         %if message.unread: 
    60         class="unread" 
    61         %else: 
    62         class="read" 
    63         %endif 
    64         id="span-${message.id}" >${h.msg.get_from(message)} | ${message.date.strftime("%c")} | <span id="subject"> ${message.subject}</span></span> 
    65  
    66       <script type="dojo/method" event="onChange"> 
    67           node = "span-${message.id}"; 
    68           if( this.checked ) 
    69           { 
    70               if( dojo.hasClass( node, "unread") ) 
    71               { 
    72                   dojo.removeClass( node, "unread"); 
    73                   dojo.addClass( node, "read"); 
    74               } 
    75               dojo.xhrGet({ 
    76                   url: '${h.url_for(controller='messager', action='getmsg',id=message.id) }', 
    77                   load: showMessage, 
    78                   error: helloError, 
    79                   }).play(); 
    80           }else{ 
    81           dojo.fx.wipeOut({ 
    82               node:"message-${message.id}", 
    83               }).play(); 
    84           } 
    85       </script> 
    86   </button> 
    87 </div> 
    88   <div id="message-${message.id}" class='message_open' style="display: none;"> 
    89   <button dojoType="dijit.form.Button">Reply 
    90       <script type="dojo/method" event="onClick"> 
    91       </script> 
    92   </button> 
    93   <p id="message-txt-${message.id}"></p> 
    94   </div> 
    95 <br/> 
    96 % endfor 
    97 <h2>New one</h2> 
    984<div id="message_list"> 
    995    <table id="message_table"> 
Note: See TracChangeset for help on using the changeset viewer.