Changeset 488

Show
Ignore:
Timestamp:
05/14/08 14:52:22 (7 months ago)
Author:
aarkerio
Message:

Message interfase

Location:
trunk/app
Files:
2 added
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/app/controllers/messages_controller.php

    r487 r488  
    1212 public $helpers       = array('Javascript', 'Ajax', 'Fck', 'Time', 'Gags'); 
    1313  
    14  public $components    = array('Portal', 'Security', 'Email', 'Session', 'Edublog', 'Autocomplete'); 
     14 public $components    = array('Portal', 'Email', 'Session', 'Edublog'); 
    1515  
    1616 public function beforeFilter()  
    1717 { 
    18     $this->Auth->allow(array('message', 'deliver', 'listing', 'compose', 'display', 'add', 'send', 'autocomplete')); 
    19     parent::beforeFilter(); 
     18   if ( $this->Auth->user() ): 
     19         $this->Auth->allow(array('message','deliver','listing','compose','display','add','send','autocomplete','sentmessages')); 
     20   else: 
     21         $this->redirect('/users/login'); 
     22         return false; 
     23   endif; 
     24   parent::beforeFilter(); 
    2025 } 
    2126 
     
    3641        $this->pageTitle = 'Contact'; 
    3742         
    38         $user_id = $this->Message->User->field('id', array('username'=>$username)); 
     43    $user_id = $this->Message->User->field('id', array('username'=>$username)); 
    3944         
    4045        $this->layout    = $this->Edublog->layout($user_id); 
     
    7277 public function deliver() 
    7378 { 
    74     $this->layout = 'ajax'; 
    75      
    76     if (!empty($this->data["Message"])) 
    77     { 
     79     
     80    if (!empty($this->data['Message'])): 
     81       
    7882           $this->Sanitize = new Sanitize; 
    7983            
    80            $this->Sanitize->html($this->data["Message"]["title"]); 
    81             
    82            $this->Sanitize->html($this->data["Message"]["body"]); 
    83             
     84           $this->Sanitize->html($this->data['Message']['title']); 
     85            
     86           $this->Sanitize->html($this->data['Message']['body']); 
     87            
     88           $this->data['Message']['sender']   = $this->Auth->user('id');  
     89           $this->data['Message']['username'] = $this->Auth->user('username'); 
     90 
     91           $user_id = $this->Message->User->field('User.id', array('User.username'=>trim($this->data['Message']['sendern']))); 
     92            
     93           $this->data['Message']['user_id'] = $user_id; 
     94  
     95           //die(debug($this->data['Message']));      
     96 
    8497           $this->Message->create(); 
    8598            
    86            if ($this->Message->save($this->data["Message"])): 
    87  
    88              $this->__sendMail($this->data["Message"]["user_id"], $this->data["Message"]["username"], $this->data["Message"]["title"]); 
    89                  
    90          if ( isset($this->data["Message"]["admin"])): 
    91                       $this->render('sentadmin','ajax'); 
    92              else: 
    93                         $this->render('sent', 'ajax'); 
    94          endif; 
    95      endif; 
    96      } 
     99           if ( $this->Message->save($this->data['Message']) ): 
     100                $this->__sendMail($user_id); 
     101            $this->msgFlash('Message sent', '/messages/listing'); 
     102           endif; 
     103   endif; 
    97104 } 
    98105 
    99106 public function listing() 
    100107 { 
    101    if ( !$this->Auth->user() ): 
    102          $this->redirect('/users/login'); 
    103          return false;         
    104    endif; 
    105  
    106108   $this->layout    = 'portal'; 
    107109       
     
    112114   $this->Portal->statics(); // Charge Portal components aka Sidebars 
    113115 } 
     116  
     117 public function sentmessages() 
     118 { 
     119   $this->layout    = 'portal'; 
     120       
     121   $this->pageTitle = 'Messages'; 
     122    
     123   $this->set('data', $this->Message->sentmessages($this->Auth->user('id')));     
     124  
     125   $this->Portal->statics(); // Charge Portal components aka Sidebars 
     126 } 
    114127 
    115128 public function autocomplete() 
     
    117130    //Partial strings will come from the autocomplete field as 
    118131    //$this->data['Post']['subject']  
    119  
     132    $fields = array('id', 'username'); 
     133    $this->Message->User->unbindAll(); 
     134    $data = $this->Message->User->findAll("username LIKE 'aa%'", $fields); 
     135    //die(debug($data)); 
    120136    $this->set('users',  $this->Message->User->findAll("username LIKE '{$this->data['Message']['sendern']}%'")); 
    121137      
     
    152168 public function display($message_id) 
    153169 { 
    154  
    155    if ( !$this->Auth->user() ): 
    156          $this->redirect('/users/login'); 
    157          return false;         
    158    endif; 
    159  
    160170   $this->layout    = 'portal'; 
    161171 
     
    165175 
    166176   $this->Portal->statics(); // Charge Portal components aka Sidebars 
    167   } 
     177 } 
    168178 
    169179  /* == PRIVATE == **/ 
     
    336346    $this->set('admin_reply', 'ajax'); 
    337347 } 
     348 
     349 public function admin_deliver() 
     350 { 
     351    $this->layout = 'ajax'; 
     352     
     353    if (!empty($this->data["Message"])): 
     354 
     355           $this->Sanitize = new Sanitize; 
     356            
     357           $this->Sanitize->html($this->data["Message"]["title"]); 
     358            
     359           $this->Sanitize->html($this->data["Message"]["body"]); 
     360            
     361           $this->Message->create(); 
     362            
     363           if ($this->Message->save($this->data["Message"])): 
     364                $this->__sendMail($this->data["Message"]["user_id"]); 
     365           endif; 
     366   endif; 
     367 } 
    338368  
    339369 public function admin_add() 
     
    416446 } 
    417447 
    418  public function admin_deliver() 
    419  {   
    420     if (!empty($this->data['Message'])) 
    421     { 
    422       $this->Sanitize = new Sanitize; 
    423             
    424       $this->Sanitize->html($this->data['Message']['title']); 
    425             
    426       $this->Sanitize->html($this->data['Message']['body']); 
    427  
    428       $this->data['Message']['sender'] = $this->Auth->user('id'); 
    429       //die(debug($this->data)); 
    430       $this->Message->create(); 
    431             
    432       if ($this->Message->save($this->data['Message'])) 
    433       { 
    434       $email = $this->Message->User->field('email', array('id'=>$this->data['Message']['user_id'])); 
    435       if ( $this->__sendMail($email) ) 
    436       { 
    437                $this->msgFlash('Message sent','/admin/messages/listing'); 
    438       } 
    439       } 
    440     } 
    441  } 
    442  
    443  private function _sendMessage($email, $vclassroom_id) 
     448 private function __sendMessage($email, $vclassroom_id) 
    444449 {    
    445450  $this->layout          = 'message_class'; 
     
    468473 } 
    469474 
     475/*   
     476 *  Delete one or several messages 
     477 *   
     478 */ 
    470479 public function admin_delete($id=null) 
    471480 { 
    472    if ( isset($this->data['Message']['several']) ) 
    473    {    
    474             //exit(print_r($this->data['Message']["id"])); 
    475             foreach ($this->data['Message']['id'] as $v) 
    476             { 
    477                if ( $v != 0) 
    478                { 
     481   if ( isset($this->data['Message']['several']) ):    
     482     //exit(debug($this->data['Message']["id"])); 
     483     foreach ($this->data['Message']['id'] as $v): 
     484         if ( $v != 0): 
    479485                    $this->Message->del($v); 
    480                } 
    481             } 
     486         endif; 
     487     endforeach; 
    482488             
    483             $this->msgFlash('The message has been deleted.','/admin/messages/listing'); 
    484    } 
    485    else 
    486    { 
     489     $this->msgFlash('The message has been deleted.','/admin/messages/listing'); 
     490 
     491  else: 
    487492          if ( isset( $this->data['Message']['id'] ) ): 
    488493               $id = $this->data['Message']['id']; 
     
    490495            
    491496       $this->Message->del($id); 
    492   } 
    493      $this->msgFlash('Message has been deleted.','/admin/messages/listing'); 
    494   } 
     497   
     498           $this->msgFlash('Message has been deleted.','/admin/messages/listing'); 
     499  endif; 
     500 } 
    495501} 
    496502?> 
  • trunk/app/views/messages/admin_compose.ctp

    r330 r488  
    11 
    2 <br /> 
    32<div class="barra">Write message to another MonoNeuron</div> 
    43 
    5 <div id="charging" style="display:none;"><?php echo $html->image('static/loading.gif', array("alt"=>"Loading")); ?></div> 
    6  
    7 <div id="already"> 
    8  
    9 <?php 
    10 if ( !$othAuth->user('username') ) 
    11 {  
    12     $html->link('You are not logged in', '/users/login'); 
    13     exit(); 
    14 } 
    15  
    16  echo $html->formTag(null, 'post', array('onsubmit'=>'return false')); 
    17   
    18  echo $form->labelTag('Message/string', 'Search user:' ). '<br />'; 
    19   
    20  echo $html->input('Message/string', array("size" => 30, "maxlength" => 45)); 
    21   
    22  echo $ajax->submit('Search', array("url" => "/messages/search/",  
    23                                          "update"=>"updater", 
    24                                          "loading" => "Element.show('charging');Element.hide('updater')", 
    25                                          "complete" => "Element.hide('charging');Effect.Appear('updater')" 
    26         )); 
    27 ?> 
    28 </form> 
    29  
    30 <br /><br /> 
    314 
    325 
  • trunk/app/views/messages/compose.ctp

    r487 r488  
    1 <div class="barra">Compose new message</div> 
     1<?php 
     2echo $javascript->link('controls'); 
     3?> 
     4<style type="text/css"> 
     5div.auto_complete { 
     6  position         :absolute; 
     7  width            :120px; 
     8  background-color :white; 
     9  border           :1px solid #888; 
     10  margin           :0; 
     11  padding          :0; 
     12} 
     13 
     14div.auto_complete li { 
     15   margin     : 0; 
     16   padding    : 0; 
     17   color:#000; 
     18   list-style : none; 
     19   font-weight:bold; 
     20} 
     21li.selected { background-color: orange; } 
     22</style> 
    223 
    324<?php         
    4   echo $form->create('Message', array('onsubmit'=>'return false'));  
    5   echo $form->hidden('Message.sender_id',  array("value"=>$cU['User']['id'])); 
    6   echo $form->hidden('Message.username', array("value"=>$cU['User']['username'] )); 
     25  e($html->div('barra', 'Compose new message')); 
     26  e($form->create('Message', array('action'=>'deliver','onsubmit'=>'return validateForm()')));  
    727?> 
    828<fieldset> 
     
    1030<?php  
    1131  echo $form->label('Message.user_id', 'Send message to:' ) . '<br />'; 
    12    echo $ajax->autoComplete('Message.sendern', '/messages/autocomplete') .'<br />';   
    13   echo $cU['User']['username'] . "  escribe: <br />"; 
    14   echo $form->input('Message.title', array("size" => 35, "maxlength" => 50)) . "<br />"; 
     32  echo $ajax->autoComplete('Message.sendern', '/messages/autocomplete') .'<br />';   
     33  echo $cU['User']['username'] . "  writes: <br />"; 
     34 
     35  echo $form->input('Message.title', array("size"=>25, "maxlength"=>50)) . '<br />'; 
    1536 
    1637  echo $form->label('Message.body', 'Message:' ) . '<br />'; 
     
    1940?> 
    2041</fieldset> 
     42 
     43<script type="text/javascript"> 
     44function validateForm() 
     45{  
     46  var title     = document.getElementById("MessageTitle"); 
     47  var body      = document.getElementById("MessageBody"); 
     48  var email     = document.getElementById("MessageEmail"); 
     49  
     50  if (name.value.length < 5) 
     51  { 
     52    alert('Name must have five letters at least'); 
     53    name.focus(); 
     54    return false; 
     55  
     56  } 
     57 
     58  if (username.value.length < 5) 
     59  { 
     60    alert('Username must have five letters at least'); 
     61    username.focus(); 
     62    return false; 
     63  } 
     64 
     65  var space = username.value.indexOf(" "); 
     66   
     67  //alert('at: ' + atpos); 
     68   
     69  if ( space > 0 )  
     70  { 
     71    alert('Username can not contain spaces'); 
     72    username.focus(); 
     73    return false;    
     74  }   
     75 
     76  //check email 
     77  var atpos  = email.value.indexOf("@");    //indexOf find something in your JavaScript string 
     78  var dotpos = email.value.indexOf("."); 
     79   
     80  //alert('at: ' + atpos); 
     81   
     82  if ( atpos < 1 || dotpos < 1 || email.value.length < 5)  
     83  { 
     84    alert('Mmmm, this email ' + email.value + ' does not look as a valid email'); 
     85    email.focus(); 
     86    return false; 
     87  } 
     88 
     89  if (agree.checked == false) 
     90  { 
     91    alert('You must do agree'); 
     92    return false; 
     93  } 
     94 
     95  return true; 
     96} 
     97</script> 
  • trunk/app/views/messages/listing.ctp

    r485 r488  
    22// die(debug($data)); 
    33echo $html->link($html->image('admin/compose_on.gif', array("alt"=>"Compose New Message", "title"=>"Compose New Message")),  
    4 '/messages/compose', null, false, false); 
     4'/messages/compose', null, false, false) . '  '; 
     5 
     6echo $html->link($html->image('static/sent_icon.gif', array("alt"=>"Sent Messages", "title"=>"Sent Messages")),  
     7'/messages/sentmessages', null, false, false); 
    58 
    69echo $form->create('Message', array('delete', 'onsubmit'=>'return chkList();', 'name'=>'privmsg_list'));