Merge branch 'owenleonard/ht_sandbox' of git@github.com:apippin/tc into ht_sandbox owenleonard/ht_sandbox
authorOwen Leonard <owen@balawis.leonard.fam>
Thu, 28 Oct 2010 15:42:33 +0000 (09:42 -0600)
committerOwen Leonard <owen@balawis.leonard.fam>
Thu, 28 Oct 2010 15:42:33 +0000 (09:42 -0600)
1  2 
inc/class.tc.inc.php

diff --combined inc/class.tc.inc.php
index 630fe14ec1526a47f9d7aad2c2294454df6a10d7,8573136b059303dd74be446a27c98ae3234620f5..8b435da2e86976cd158a45aad9f6c99bd59c706b
@@@ -79,6 -79,9 +79,9 @@@ class t
                        include("setup/tc_config");
                }
  
+               $this->jquery_url = $GLOBALS['phpgw']->link('inc/jquery/jquery.js');
+               $this->jquery_tablesorter_url = $GLOBALS['phpgw']->link('inc/jquery/jquery.tablesorter.js');
+               
                $this->script_path = "$this->application_path"."/bin";
                $this->max_presidency_members = 99;
                $this->max_appointments = 32768;
                $this->grants     = $GLOBALS['phpgw']->acl->get_grants('tc');
                $this->grants[$this->account] = PHPGW_ACL_READ + PHPGW_ACL_ADD + PHPGW_ACL_EDIT + PHPGW_ACL_DELETE;
  
+               $GLOBALS['phpgw_info']['flags']['css'] .= "-->\n</style>\n"
+                  . '<link rel="stylesheet" type="text/css" media="all" href="'
+                  . $GLOBALS['phpgw']->link('inc/jquery/jquery.tablesorter.css').'"/>'
+                  . "\n<style type=\"text/css\">\n<!--\n";
                $this->jscal = CreateObject('tc.jscalendar');   // before phpgw_header() !!!
                $this->cal_options = 'daFormat    : "%Y-%m-%d",
                                      ifFormat    : "%Y-%m-%d",
                $this->t->set_block('ht_sandbox_t','companionship_table_list','ct_list');
  
                $this->t->set_var('submit_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox&action=add'));
-           $this->t->set_var('jquery_url',$GLOBALS['phpgw']->link('inc/jquery.js'));
+           $this->t->set_var('jquery_url',$this->jquery_url);
                 
            $action = get_var('action',array('GET','POST'));
  
                                        $this->db3->query($sql,__LINE__,__FILE__);
                                }
                        }
 +              } else if ($_POST['changes']) {
 +                      $this->ht_sandbox_changes();
                }
                
                // get list of companionships
                $this->t->pfp('out','ht_sandbox_t');
                $this->save_sessiondata();
        }
 -      
 +
 +      function ht_sandbox_changes()
 +      {
 +              $email_contents = "Please review the following changes to home teaching.\r\n\r\n";
 +              // list all companionships deleted
 +              $email_contents .= "Removed Companionships\r\n\r\n";
 +              $sql = "SELECT * FROM tc_companionship WHERE companionship NOT IN (SELECT tc_companionship FROM tc_companionship_sandbox) AND valid=1";
 +              $this->db->query($sql,__LINE__,__FILE__);
 +              while ($this->db->next_record()) {
 +                      $companionship = $this->db->f('companionship');
 +                      $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND tc.companionship=$companionship";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      $companion_names = "";
 +                      while ($this->db2->next_record()) {
 +                              if ($companion_names == "") {
 +                                      $companion_names .= $this->db2->f('name');
 +                              } else {
 +                                      $companion_names .= " / " . $this->db2->f('name');
 +                              }
 +                      }
 +                      $email_contents .= "\t$companion_names\r\n";
 +              }
 +              $email_contents .= "\r\n";
 +              
 +              // list all companionships added
 +              $email_contents .= "New Companionships\r\n\r\n";
 +              $sql = "SELECT * FROM tc_companionship_sandbox WHERE tc_companionship=0";
 +              $this->db->query($sql,__LINE__,__FILE__);
 +              while ($this->db->next_record()) {
 +                      $companionship = $this->db->f('companionship');
 +                      $sql = "SELECT * FROM tc_companion_sandbox AS tcs JOIN tc_individual AS ti WHERE tcs.individual=ti.individual AND tcs.companionship=$companionship";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      $companion_names = "";
 +                      while ($this->db2->next_record()) {
 +                              if ($companion_names == "") {
 +                                      $companion_names .= $this->db2->f('name');
 +                              } else {
 +                                      $companion_names .= " / " . $this->db2->f('name');
 +                              }
 +                      }
 +                      $email_contents .= "\t$companion_names\r\n";
 +                      $sql = "SELECT * FROM tc_family_sandbox AS tfs JOIN tc_individual AS ti WHERE tfs.individual=ti.individual AND companionship=$companionship";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      while ($this->db2->next_record()) {
 +                              $family_name = $this->db2->f('name') . " Family";
 +                              $email_contents .= "\t\t$family_name\r\n";
 +                      }
 +              }
 +              $email_contents .= "\r\n";
 +              
 +              // list all companionships with changes
 +              $email_contents .= "Modified Companionships\r\n\r\n";
 +              $sql = "SELECT tcps.* FROM tc_companionship AS tc JOIN tc_companionship_sandbox AS tcps WHERE tc.companionship=tcps.tc_companionship AND tc.valid=1";
 +              $this->db->query($sql,__LINE__,__FILE__);
 +              while ($this->db->next_record()) {
 +                      $companionship = $this->db->f('companionship');
 +                      $tc_companionship = $this->db->f('tc_companionship');
 +                      $companionship_changed = 0;
 +                      
 +                      // get current companion list
 +                      $sql = "SELECT * FROM tc_companion_sandbox AS tc JOIN tc_individual AS ti WHERE tc.companionship=$companionship AND tc.individual=ti.individual";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      $companion_names = "";
 +                      while ($this->db2->next_record()) {
 +                              if ($companion_names == "") {
 +                                      $companion_names .= $this->db2->f('name');
 +                              } else {
 +                                      $companion_names .= " / " . $this->db2->f('name');
 +                              }
 +                      }
 +                      
 +                      // list removed companions
 +                      $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.companionship=$tc_companionship AND tc.individual=ti.individual AND tc.individual NOT IN (SELECT individual FROM tc_companion_sandbox WHERE companionship=$companionship)";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      while ($this->db2->next_record()) {
 +                              if ($companionship_changed == 0) {
 +                                      $companionship_changed = 1;
 +                                      $email_contents .= "\t$companion_names\r\n";
 +                              }
 +                              $name = $this->db2->f('name');
 +                              $email_contents .= "\t\tremoved $name as a companion\r\n";
 +                      }
 +                      
 +                      // list added companions
 +                      $sql = "SELECT * FROM tc_companion_sandbox AS tcs JOIN tc_individual AS ti WHERE tcs.companionship=$companionship AND tcs.individual=ti.individual AND tcs.individual NOT IN (SELECT individual FROM tc_companion WHERE companionship=$tc_companionship)";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      while ($this->db2->next_record()) {
 +                              if ($companionship_changed == 0) {
 +                                      $companionship_changed = 1;
 +                                      $email_contents .= "\t$companion_names\r\n";
 +                              }
 +                              $name = $this->db2->f('name');
 +                              $email_contents .= "\t\tadded $name as a companion\r\n";
 +                      }
 +                      
 +                      // list removed families
 +                      $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.companionship=$tc_companionship AND tf.family NOT IN (SELECT tc_family FROM tc_family_sandbox WHERE companionship=$companionship)";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      while ($this->db2->next_record()) {
 +                              if ($companionship_changed == 0) {
 +                                      $companionship_changed = 1;
 +                                      $email_contents .= "\t$companion_names\r\n";
 +                              }
 +                              $name = $this->db2->f('name');
 +                              $email_contents .= "\t\tremoved $name Family\r\n";
 +                      }
 +                      
 +                      // list added families
 +                      $sql = "SELECT * FROM tc_family_sandbox AS tfs JOIN tc_individual AS ti WHERE tfs.individual=ti.individual AND tfs.companionship=$companionship AND tfs.individual NOT IN (SELECT individual FROM tc_family WHERE companionship=$tc_companionship)";
 +                      $this->db2->query($sql,__LINE__,__FILE__);
 +                      while ($this->db2->next_record()) {
 +                              if ($companionship_changed == 0) {
 +                                      $companionship_changed = 1;
 +                                      $email_contents .= "\t$companion_names\r\n";
 +                              }
 +                              $name = $this->db2->f('name');
 +                              $email_contents .= "\t\tadded $name Family\r\n";
 +                      }
 +              }
 +              $email_contents .= "\r\n";
 +              
 +              // email changes to presidency
 +              $sql = "SELECT DISTINCT tp.email AS email1, ti.email AS email2 FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND (tp.president=1 OR tp.counselor=1 OR tp.secretary=1) AND tp.valid=1";
 +              $this->db->query($sql,__LINE__,__FILE__);
 +              while ($this->db->next_record()) {
 +                      $email = "";
 +                      if ($this->db->f('email1') != "") {
 +                              $email = $this->db->f('email1');
 +                      } else { 
 +                              $email = $this->db->f('email2');
 +                      }
 +                      if ($to == "") {
 +                              $to .= $email;
 +                      } else {
 +                              $to .= ", $email";
 +                      }
 +              }
 +              $sql = "SELECT DISTINCT tp.email AS email1, ti.email AS email2 FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.president=1 AND tp.valid=1";
 +              $this->db->query($sql,__LINE__,__FILE__);
 +              if ($this->db->next_record()) {
 +                      if ($this->db->f('email1') != "") {
 +                              $from = $this->db->f('email1');
 +                      } else { 
 +                              $from = $this->db->f('email2');
 +                      }
 +              } else {
 +                      $from = "president@3rdcounselor";
 +              }
 +              $subject = "HomeTeaching Changes";
 +              $message .= "$email_contents";
 +              $headers = "From: $from\r\n" .
 +                         "Reply-To: $from\r\n" .
 +                         "X-Mailer: PHP/" . phpversion();
 +
 +              mail($to, $subject, $message, $headers);
 +      }
  
        function ht_update()
        {
        function org_view()
        {
                $this->t->set_file(array('org_view_t' => 'org_view.tpl'));
-               $this->t->set_block('org_view_t','calling_list','list1');
-               $this->t->set_block('org_view_t','org_list','list2');
-               # Display a list ordered alphabetically
-               $sql = "SELECT * FROM tc_calling AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual ORDER BY name ASC";
-               $this->db->query($sql,__LINE__,__FILE__);
-               $i=0;
-               while ($this->db->next_record()) {
-                       $calling[$i]['name'] = $this->db->f('name');
-                       $calling[$i]['position'] = $this->db->f('position');
-                       $calling[$i]['sustained'] = $this->db->f('sustained');
-                       $calling[$i]['organization'] = $this->db->f('organization');
-                       $i++;
-               }   
-               for ($i=0; $i < count($calling); $i++) {
-                       $name = $calling[$i]['name'];
-                       $position = $calling[$i]['position'];
-                       $sustained = $calling[$i]['sustained'];
-                       $organization = $calling[$i]['organization'];
-                       $this->t->set_var('name', $name);
-                       $this->t->set_var('position', $position);
-                       $this->t->set_var('sustained', $sustained);
-                       $this->t->set_var('organization', $organization);
-                       $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
-                       $this->t->set_var('tr_color',$tr_color);
-                       $this->t->fp('list1','calling_list',True);
-               }
+               $this->t->set_block('org_view_t','calling_list','list');
+           $this->t->set_var('jquery_url',$this->jquery_url);
+           $this->t->set_var('jquery_tablesorter_url',$this->jquery_tablesorter_url);
  
-               # Display a list ordered by organization
-               $sql = "SELECT * FROM tc_calling AS tc JOIN tc_individual AS ti where tc.individual=ti.individual ORDER BY organization ASC";
+               $sql = "SELECT * FROM tc_calling AS tc JOIN tc_individual AS ti where tc.individual=ti.individual ORDER BY name ASC";
                $this->db->query($sql,__LINE__,__FILE__);
                $i=0;
                while ($this->db->next_record()) {
                        $this->t->set_var('organization', $organization);
                        $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
                        $this->t->set_var('tr_color',$tr_color);
-                       $this->t->fp('list2','org_list',True);
+                       $this->t->fp('list','calling_list',True);
                }
  
                $this->t->pfp('out','org_view_t');