home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / groupoffice-com-2.01 / modules / addressbook / search.inc < prev    next >
Text File  |  2004-03-08  |  14KB  |  379 lines

  1. <input type="hidden" name="post_action" value="search" />
  2. <input type="hidden" name="task" />
  3.  
  4. <br />
  5. <table border="0" cellpadding="0" cellspacing="3">
  6. <tr height="30">
  7.     <td nowrap>
  8.     <h2>
  9.     <a href="javascript:letter_click('A')">A</a>  
  10.     <a href="javascript:letter_click('B')">B</a>  
  11.     <a href="javascript:letter_click('C')">C</a>  
  12.     <a href="javascript:letter_click('D')">D</a>  
  13.     <a href="javascript:letter_click('E')">E</a>  
  14.     <a href="javascript:letter_click('F')">F</a>  
  15.     <a href="javascript:letter_click('G')">G</a>  
  16.     <a href="javascript:letter_click('H')">H</a>  
  17.     <a href="javascript:letter_click('I')">I</a>  
  18.     <a href="javascript:letter_click('J')">J</a>  
  19.     <a href="javascript:letter_click('K')">K</a>  
  20.     <a href="javascript:letter_click('L')">L</a>  
  21.     <a href="javascript:letter_click('M')">M</a>  
  22.     <a href="javascript:letter_click('N')">N</a>  
  23.     <a href="javascript:letter_click('O')">O</a>  
  24.     <a href="javascript:letter_click('P')">P</a>  
  25.     <a href="javascript:letter_click('Q')">Q</a>  
  26.     <a href="javascript:letter_click('R')">R</a>  
  27.     <a href="javascript:letter_click('S')">S</a>  
  28.     <a href="javascript:letter_click('T')">T</a>  
  29.     <a href="javascript:letter_click('U')">U</a>  
  30.     <a href="javascript:letter_click('V')">V</a>  
  31.     <a href="javascript:letter_click('W')">W</a>  
  32.     <a href="javascript:letter_click('X')">X</a>  
  33.     <a href="javascript:letter_click('Y')">Y</a>  
  34.     <a href="javascript:letter_click('Z')">Z</a>  
  35.     </h2>
  36.     </td>
  37. </tr>
  38. <tr>
  39.     <td>
  40.     <?php
  41.     echo '<table border="0"><tr><td>'.$ab_search_for.':</td><td><table border="0" cellpadding="0" cellspacing="0"><tr><td>';
  42.  
  43.     $_COOKIE['ab_search_type'] = isset($_COOKIE['ab_search_type']) ? $_COOKIE['ab_search_type'] : 'contacts';
  44.     $search_type = isset($_POST['search_type']) ? $_POST['search_type'] : $_COOKIE['ab_search_type'];
  45.  
  46.     $dropbox = new dropbox();
  47.     $dropbox->add_value('contacts', $contacts_contacts);
  48.     $dropbox->add_value('companies', $ab_companies);
  49.     $dropbox->add_value('users', $contacts_members);
  50.     $dropbox->print_dropbox('search_type', $search_type, 'onchange="javascript:document.forms[0].submit()"');
  51.     echo '</td>';
  52.  
  53.     $_COOKIE['ab_search_addressbook_id'] = isset($_COOKIE['ab_search_addressbook_id']) ? $_COOKIE['ab_search_addressbook_id'] : '0';
  54.     $search_addressbook_id = isset($_REQUEST['search_addressbook_id']) ? $_REQUEST['search_addressbook_id'] : $_COOKIE['ab_search_addressbook_id'];
  55.     if ($search_type != 'users' && $ab->get_subscribed_addressbooks($GO_SECURITY->user_id) > 1)
  56.     {
  57.         $subscribed_addressbooks = new dropbox();
  58.  
  59.         $subscribed_addressbooks->add_value('0', $ab_all_your_addressbooks);
  60.  
  61.         while ($ab->next_record())
  62.         {
  63.             $subscribed_addressbooks->add_value($ab->f('id'), $ab->f('name'));
  64.         }
  65.         echo '<td>'.$ab_search_in.' </td><td>';
  66.         $subscribed_addressbooks->print_dropbox('search_addressbook_id', $search_addressbook_id);
  67.         echo '</td>';
  68.     }else
  69.     {
  70.         echo '<input type="hidden" name="search_addressbook_id" value="'.$search_addressbook_id.'" />';
  71.     }
  72.  
  73.     $_COOKIE['ab_search_companies_field'] = isset($_COOKIE['ab_search_companies_field']) ? $_COOKIE['ab_search_companies_field'] : 'name';
  74.     $_COOKIE['ab_search_contacts_field'] = isset($_COOKIE['ab_search_contacts_field']) ? $_COOKIE['ab_search_contacts_field'] : 'first_name';
  75.  
  76.     $search_field = ($search_type == 'contacts' || $search_type == 'users') ? $_COOKIE['ab_search_contacts_field'] : $_COOKIE['ab_search_companies_field'];
  77.  
  78.     $dropbox = new dropbox();
  79.  
  80.     if ($search_type == 'companies')
  81.     {
  82.         $dropbox->add_value('name', $strName);
  83.         $dropbox->add_value('email', $strEmail);
  84.         $dropbox->add_value('address',$strAddress);
  85.         $dropbox->add_value('city', $strCity);
  86.         $dropbox->add_value('zip',$strZip);
  87.         $dropbox->add_value('state',$strState);
  88.         $dropbox->add_value('country', $strCountry);
  89.  
  90.     }else
  91.     {
  92.         $dropbox->add_value('first_name', $strFirstName);
  93.         $dropbox->add_value('last_name', $strLastName);
  94.         $dropbox->add_value('email', $strEmail);
  95.         $dropbox->add_value('department',$strDepartment);
  96.         $dropbox->add_value('function',$strFunction);
  97.         $dropbox->add_value('address',$strAddress);
  98.         $dropbox->add_value('city', $strCity);
  99.         $dropbox->add_value('zip',$strZip);
  100.         $dropbox->add_value('state',$strState);
  101.         $dropbox->add_value('country', $strCountry);
  102.         $dropbox->add_value('comment', $ab_comment);
  103.     }
  104.     echo '<td>'.$ab_search_on.' </td><td>';
  105.     $dropbox->print_dropbox('search_field', $search_field);
  106.     echo '</td></tr></table></tr></td>';
  107.     ?>
  108.     <tr>
  109.         <td><?php echo $ab_search_keyword; ?>:</td>
  110.         <td colspan="3"><input type="text" name="query" size="31" maxlength="255" class="textbox" value="<?php if (isset($_POST['query'])) echo $_POST['query']; ?>">
  111.         <?php echo $ab_wildcard; ?>
  112.         </td>
  113.     </tr>
  114.     </table>
  115.     <br />
  116.     <?php
  117.     $button = new button($cmdSearch, "javascript:document.forms[0].task.value='search';document.forms[0].submit()");
  118.     ?>
  119.     </td>
  120. </tr>
  121. </table>
  122.  
  123. <?php
  124. if ($task=='search' || $task == 'show_letter')
  125. {
  126.     if (isset($_POST['contact']))
  127.     {
  128.         for ($i=0;$i<sizeof($_POST['contact']);$i++)
  129.         {
  130.             $contact = $ab->get_contact($_POST['contact'][$i]);
  131.  
  132.             if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $contact['acl_write']))
  133.             {
  134.                 $ab->delete_contact($_POST['contact'][$i]);
  135.                 $GO_SECURITY->delete_acl($contact['acl_write']);
  136.                 $GO_SECURITY->delete_acl($contact['acl_read']);
  137.             }
  138.         }
  139.     }
  140.  
  141.     if (isset($_POST['companies']))
  142.     {
  143.         for ($i=0;$i<sizeof($_POST['companies']);$i++)
  144.         {
  145.             $company = $ab->get_company($_POST['companies'][$i]);
  146.  
  147.             if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $company['acl_write']))
  148.             {
  149.                 $ab->delete_company($_POST['companies'][$i]);
  150.                 $GO_SECURITY->delete_acl($company['acl_write']);
  151.                 $GO_SECURITY->delete_acl($company['acl_read']);
  152.             }
  153.         }
  154.     }
  155.  
  156.     if ($_POST['task'] != 'show_letter')
  157.     {
  158.         $query = '%'.$_POST['query'].'%';
  159.     }else
  160.     {
  161.         $query = $_POST['query'].'%';
  162.     }
  163.  
  164.     $count = 0;
  165.     $results = '';
  166.     switch($search_type)
  167.     {
  168.         case 'contacts':
  169.  
  170.             $ab->search_contacts($GO_SECURITY->user_id, $query, $search_field, $search_addressbook_id);
  171.  
  172.             while ($ab->next_record())
  173.             {
  174.                 if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $ab->f('acl_write')) || $GO_SECURITY->has_permission($GO_SECURITY->user_id, $ab->f('acl_read')))
  175.                 {
  176.                     $count++;
  177.                     if ($ab->f('color') != '')
  178.                     {
  179.                         $style = ' style="color: '.$ab->f('color').';"';
  180.                     }else
  181.                     {
  182.                         $style = '';
  183.                     }
  184.  
  185.                     $middle_name = $ab->f('middle_name') == '' ? '' : $ab->f('middle_name').' ';
  186.                     $name = $ab->f('first_name').' '.$middle_name.$ab->f('last_name');
  187.  
  188.                     $results .= '<tr height="20" id="'.$ab->f('id').'">';
  189.                     $results .= '<td><input id="'.$name.'" type="checkbox" onclick="javacript:item_click(this)" name="contact[]" value="'.$ab->f("id").'" /></td>';
  190.                     $results .= "<td nowrap><a".$style." class=\"normal\" href=\"contact.php?contact_id=".$ab->f("id")."&return_to=".$GO_MODULES->url."index.php\" title=\"".$strShowProfile."\">".empty_to_stripe($name)."</a>  </td>\n";
  191.                     $results .= "<td>".mail_to(empty_to_stripe($ab->f("email")), empty_to_stripe($ab->f("email")),'normal',true, $ab->f("id"))."  </td>\n";
  192.                     $results .= '<td>'.empty_to_stripe($ab->f('home_phone')).'  </td>';
  193.                     $results .= '<td>'.empty_to_stripe($ab->f('work_phone')).'  </td>';
  194.                     $results .= "</tr>\n";
  195.                     $results .= '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
  196.                 }
  197.             }
  198.  
  199.             $result_str =  ($count == 1) ? $count.' '.$contacts_result : $count.' '.$contacts_results;
  200.             echo '<br /><h2>'.$result_str.'</h2>';
  201.  
  202.             if ($count > 0)
  203.             {
  204.                 echo '<table border="0" cellpadding="0" cellspacing="0" width="600">';
  205.                 echo '<tr>';
  206.                 echo '<td class="TableHead2" width="16"><input type="checkbox" name="dummy" value="dummy" onclick="javascript:invert_selection()" /></td>';
  207.                 echo '<td class="TableHead2">'.$strName.'</td>';
  208.                 echo '<td class="TableHead2">'.$strEmail.'</td>';
  209.                 echo '<td class="TableHead2">'.$strPhone.'</td>';
  210.                 echo '<td class="TableHead2">'.$strWorkphone.'</td>';
  211.                 echo '</tr>';
  212.  
  213.                 echo $results;
  214.  
  215.                 echo '</table>';
  216.             }
  217.         break;
  218.  
  219.         case 'companies':
  220.  
  221.             $ab->search_companies($GO_SECURITY->user_id, $query, $search_field, $search_addressbook_id);
  222.  
  223.             while ($ab->next_record())
  224.             {
  225.                 if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $ab->f('acl_write')) || $GO_SECURITY->has_permission($GO_SECURITY->user_id, $ab->f('acl_read')))
  226.                 {
  227.                     $count++;
  228.  
  229.                     $results .= '<tr height="20" id="'.$ab->f('id').'">';
  230.                     $results .= '<td><input id="'.$ab->f('name').'" type="checkbox" onclick="javacript:item_click(this)" name="companies[]" value="'.$ab->f("id").'" /></td>';
  231.                     $results .= '<td nowrap><a class="normal" href="'.$GO_MODULES->url.'company.php?company_id='.$ab->f('id').'&return_to='.rawurlencode($link_back).'" title="'.$strShowProfile.'">'.$ab->f('name').'</a>  </td>';
  232.                     $results .= '<td>'.empty_to_stripe($ab->f('city')).'  </td>';
  233.                     $results .= "<td>".mail_to(empty_to_stripe($ab->f("email")), empty_to_stripe($ab->f("email")),'normal',true, $ab->f("id"))."  </td>\n";
  234.                     $results .= '<td>'.empty_to_stripe($ab->f('phone')).'  </td>';
  235.                     $results .=  '<td><a class="normal" target="_blank" href="'.$ab->f('homepage').'">'.$ab->f('homepage').'</a>  </td>';
  236.                     $results .= "</tr>\n";
  237.                     $results .= '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
  238.                 }
  239.             }
  240.  
  241.             $result_str =  ($count == 1) ? $count.' '.$contacts_result : $count.' '.$contacts_results;
  242.             echo '<br /><h2>'.$result_str.'</h2>';
  243.  
  244.             if ($count > 0)
  245.             {
  246.                 echo '<table border="0" cellpadding="0" cellspacing="0" width="600">';
  247.                 echo '<tr>';
  248.                 echo '<td class="TableHead2" width="16"><input type="checkbox" name="dummy" value="dummy" onclick="javascript:invert_selection()" /></td>';
  249.                 echo '<td class="TableHead2">'.$strName.'</td>';
  250.                 echo '<td class="TableHead2">'.$strCity.'</td>';
  251.                 echo '<td class="TableHead2">'.$strEmail.'</td>';
  252.                 echo '<td class="TableHead2">'.$strPhone.'</td>';
  253.                 echo '<td class="TableHead2">'.$strHomepage.'</td>';
  254.                 echo '</tr>';
  255.  
  256.                 echo $results;
  257.  
  258.                 echo '</table>';
  259.             }
  260.         break;
  261.  
  262.         case 'users':
  263.             require_once($GO_CONFIG->class_path.'users.class.inc');
  264.             $users = new users();
  265.             $users->search($query, $search_field, $GO_SECURITY->user_id);
  266.  
  267.             while ($users->next_record())
  268.             {
  269.                 if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $users->f('acl_id')))
  270.                 {
  271.                     $middle_name = $users->f('middle_name') == '' ? '' : $users->f('middle_name').' ';
  272.                     $name = $users->f('first_name').' '.$middle_name.$users->f('last_name');
  273.  
  274.                     $results .= '<tr height="20"><td><a href="" class="normal">'.show_profile($users->f('id'), $name).'</a> </td>';
  275.                     $results .= "<td>".mail_to(empty_to_stripe($users->f("email")))." </td>\n";
  276.                     $results .= "</tr>\n";
  277.                     $results .= '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
  278.                     $count++;
  279.                 }
  280.             }
  281.  
  282.             $result_str =  ($count == 1) ? $count.' '.$contacts_result : $count.' '.$contacts_results;
  283.             echo '<br /><h2>'.$result_str.'</h2>';
  284.  
  285.             if ($count > 0)
  286.             {
  287.                 echo '<table border="0" cellpadding="0" cellspacing="0" width="600">';
  288.                 echo '<tr>';
  289.                 echo '<td class="TableHead2">'.$strName.'</td>';
  290.                 echo '<td class="TableHead2">'.$strEmail.'</td>';
  291.                 echo '<td class="TableHead2">'.$strPhone.'</td>';
  292.                 echo '<td class="TableHead2">'.$strWorkphone.'</td>';
  293.                 echo '</tr>';
  294.  
  295.                 echo $results;
  296.  
  297.                 echo '</table>';
  298.             }
  299.  
  300.         break;
  301.     }
  302. }
  303. ?>
  304.  
  305.  
  306. <script type="text/javascript">
  307. document.forms[0].query.focus();
  308.  
  309. function letter_click(letter)
  310. {
  311.     document.forms[0].task.value='show_letter';
  312.     document.forms[0].query.value=letter;
  313.     document.forms[0].submit();
  314. }
  315.  
  316. function item_click(check_box)
  317. {
  318.     var item = get_object(check_box.value);
  319.     if (check_box.checked)
  320.     {
  321.         item.className = 'Table2';
  322.     }else
  323.     {
  324.         item.className = 'Table1';
  325.     }
  326. }
  327.  
  328. function invert_selection()
  329. {
  330.     for (var i=0;i<document.forms[0].elements.length;i++)
  331.     {
  332.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  333.         {
  334.             document.forms[0].elements[i].checked = !(document.forms[0].elements[i].checked);
  335.             item_click(document.forms[0].elements[i]);
  336.         }
  337.     }
  338. }
  339.  
  340. function confirm_delete()
  341. {
  342.     var count = 0;
  343.     var name = new String;
  344.  
  345.     for (var i=0;i<document.forms[0].elements.length;i++)
  346.     {
  347.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  348.         {
  349.             if (document.forms[0].elements[i].checked == true)
  350.             {
  351.                 count++;
  352.                 name = document.forms[0].elements[i].id;
  353.             }
  354.         }
  355.     }
  356.     switch (count)
  357.     {
  358.         case 0:
  359.             alert("<?php echo $contacts_no_select; ?>");
  360.         break;
  361.  
  362.         case 1:
  363.             if (confirm("<?php echo $strDeletePrefix; ?> '"+name+"' <?php echo $strDeleteSuffix; ?>"))
  364.             {
  365.                 document.forms[0].task.value='<?php echo $task; ?>';
  366.                 document.forms[0].submit();
  367.             }
  368.         break;
  369.  
  370.         default:
  371.             if (confirm("<?php echo $strDeletePrefix.$strThis; ?> "+count+" <?php echo $contacts_contacts.$strDeleteSuffix; ?>"))
  372.             {
  373.                 document.forms[0].task.value='<?php echo $task; ?>';
  374.                 document.forms[0].submit();
  375.             }
  376.         break;
  377.     }
  378. }
  379. </script>