Overview

Packages

  • Horde
    • Form
    • MIME
      • Viewer
    • Scheduler
  • None
  • Whups
    • UnitTests

Classes

  • Horde_Core_Ui_VarRenderer_whups
  • Whups
  • Whups_Ajax_Imple_ContactAutoCompleter
  • Whups_Api
  • Whups_Driver
  • Whups_Driver_Sql
  • Whups_Form_AddComment
  • Whups_Form_Admin_AddAttribute
  • Whups_Form_Admin_AddPriority
  • Whups_Form_Admin_AddQueue
  • Whups_Form_Admin_AddReply
  • Whups_Form_Admin_AddState
  • Whups_Form_Admin_AddType
  • Whups_Form_Admin_AddUser
  • Whups_Form_Admin_AddVersion
  • Whups_Form_Admin_CloneType
  • Whups_Form_Admin_DefaultPriority
  • Whups_Form_Admin_DefaultState
  • Whups_Form_Admin_DeleteAttribute
  • Whups_Form_Admin_DeletePriority
  • Whups_Form_Admin_DeleteQueue
  • Whups_Form_Admin_DeleteReply
  • Whups_Form_Admin_DeleteState
  • Whups_Form_Admin_DeleteType
  • Whups_Form_Admin_DeleteVersion
  • Whups_Form_Admin_EditAttributeStepOne
  • Whups_Form_Admin_EditAttributeStepTwo
  • Whups_Form_Admin_EditPriorityStepOne
  • Whups_Form_Admin_EditPriorityStepTwo
  • Whups_Form_Admin_EditQueueStepOne
  • Whups_Form_Admin_EditQueueStepTwo
  • Whups_Form_Admin_EditReplyStepOne
  • Whups_Form_Admin_EditReplyStepTwo
  • Whups_Form_Admin_EditStateStepOne
  • Whups_Form_Admin_EditStateStepTwo
  • Whups_Form_Admin_EditTypeStepOne
  • Whups_Form_Admin_EditTypeStepTwo
  • Whups_Form_Admin_EditUser
  • Whups_Form_Admin_EditVersionStepOne
  • Whups_Form_Admin_EditVersionStepTwo
  • Whups_Form_InsertBranch
  • Whups_Form_Query_AttributeCriterion
  • Whups_Form_Query_ChooseNameForLoad
  • Whups_Form_Query_ChooseNameForSave
  • Whups_Form_Query_DateCriterion
  • Whups_Form_Query_Delete
  • Whups_Form_Query_GroupCriterion
  • Whups_Form_Query_Parameter
  • Whups_Form_Query_PropertyCriterion
  • Whups_Form_Query_TextCriterion
  • Whups_Form_Query_UserCriterion
  • Whups_Form_Renderer_Comment
  • Whups_Form_Search
  • Whups_Form_SendReminder
  • Whups_Form_Ticket_CreateStepFour
  • Whups_Form_Ticket_CreateStepOne
  • Whups_Form_Ticket_CreateStepThree
  • Whups_Form_Ticket_CreateStepTwo
  • Whups_Form_Ticket_Edit
  • Whups_Form_TicketDetails
  • Whups_LoginTasks_SystemTask_Upgrade
  • Whups_Mail
  • Whups_Query
  • Whups_Query_Manager
  • Whups_Reports
  • Whups_Ticket
  • Whups_View_Base
  • Whups_View_Results
  • Whups_View_SavedQueries
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Whups_Form_Search Class.
  4:  *
  5:  * @author  Robert E. Coyle <robertecoyle@hotmail.com>
  6:  * @package Whups
  7:  */
  8: class Whups_Form_Search extends Horde_Form
  9: {
 10:     protected $_useFormToken = false;
 11: 
 12:     public function __construct(&$vars)
 13:     {
 14:         parent::__construct($vars);
 15: 
 16:         $this->setButtons(true);
 17:         $this->appendButtons(_("Save as Query"));
 18:         $this->setSection('attributes', _("Attributes"));
 19: 
 20:         $queues = Whups::permissionsFilter(
 21:             $GLOBALS['whups_driver']->getQueues(), 'queue', Horde_Perms::READ);
 22:         $queue_count = count($queues);
 23:         $types = array();
 24:         if ($queue_count == 1) {
 25:             $types = $GLOBALS['whups_driver']->getTypes(key($queues));
 26:             $this->addHidden('', 'queue', 'int', false, true);
 27:             $vars->set('queue', key($queues));
 28:         } else {
 29:             if ($queue_count > 0) {
 30:                 $modtype = 'enum';
 31:                 $queue_params = array(array('0' => _("Any")) + $queues);
 32:                 foreach ($queues as $queueID => $name) {
 33:                     $types = $types + $GLOBALS['whups_driver']->getTypes($queueID);
 34:                 }
 35:             } else {
 36:                 $modtype = 'invalid';
 37:                 $queue_params = array(_("There are no queues which you can search."));
 38:             }
 39:             $this->addVariable(
 40:                 _("Queue"), 'queue', $modtype, false, false, null, $queue_params);
 41:         }
 42: 
 43:         $this->addVariable(_("Summary like"), 'summary', 'text', false);
 44: 
 45:         $states = array();
 46:         foreach ($types as $typeID => $typeName) {
 47:             $states = $GLOBALS['whups_driver']->getAllStateInfo($typeID);
 48:             $list = $default = array();
 49:             foreach ($states as $state) {
 50:                 $list[$state['state_id']] = $state['state_name'];
 51:                 if ($state['state_category'] != 'resolved') {
 52:                     $default[] = $state['state_id'];
 53:                 }
 54:             }
 55:             $v = $this->addVariable(
 56:                 $typeName, "states[$typeID]", 'multienum', false, false, null,
 57:                 array ($list, 4));
 58:             if (!$this->isSubmitted()) {
 59:                 $v->setDefault($default);
 60:             }
 61:         }
 62: 
 63:         $this->setSection('dates', _("Dates"));
 64:         $this->addVariable(
 65:             _("Created from"), 'ticket_timestamp[from]', 'monthdayyear', false,
 66:             false, null, array(date('Y') - 10));
 67:         $this->addVariable(
 68:             _("to"), 'ticket_timestamp[to]', 'monthdayyear', false, false, null,
 69:             array(date('Y') - 10));
 70:         $this->addVariable(
 71:             _("Updated from"), 'date_updated[from]', 'monthdayyear', false,
 72:              false, null, array(date('Y') - 10));
 73:         $this->addVariable(
 74:             _("to"), 'date_updated[to]', 'monthdayyear', false, false, null,
 75:             array(date('Y') - 10));
 76:         $this->addVariable(
 77:             _("Resolved from"), 'date_resolved[from]', 'monthdayyear', false,
 78:             false, null, array(date('Y') - 10));
 79:         $this->addVariable(
 80:             _("to"), 'date_resolved[to]', 'monthdayyear', false, false, null,
 81:             array(date('Y') - 10));
 82:         $this->addVariable(
 83:             _("Assigned from"), 'date_assigned[from]', 'monthdayyear', false,
 84:             false, null, array(date('Y') - 10));
 85:         $this->addVariable(
 86:             _("to"), 'date_assigned[to]', 'monthdayyear', false, false, null,
 87:             array(date('Y') - 10));
 88:         $this->addVariable(
 89:             _("Due from"), 'ticket_due[from]', 'monthdayyear', false, false,
 90:             null, array(date('Y') - 10));
 91:         $this->addVariable(
 92:             _("to"), 'ticket_due[to]', 'monthdayyear', false, false, null,
 93:             array(date('Y') - 10));
 94:     }
 95: 
 96:     /**
 97:      * Fetch the field values of the submitted form.
 98:      *
 99:      * @param Horde_Variables $vars  A Horde_Variables instance, optional since Horde 3.2.
100:      * @param array           $info  Array to be filled with the submitted field
101:      *                               values.
102:      */
103:     public function getInfo($vars, &$info)
104:     {
105:         parent::getInfo($vars, $info);
106: 
107:         if (empty($info['queue'])) {
108:             $info['queue'] = array_keys(
109:                 Whups::permissionsFilter(
110:                     $GLOBALS['whups_driver']->getQueues(),
111:                     'queue',
112:                     Horde_Perms::READ,
113:                     $GLOBALS['registry']->getAuth(),
114:                     $GLOBALS['registry']->getAuth()));
115:         } else {
116:             $info['queue'] = array($info['queue']);
117:         }
118: 
119:         if (empty($info['states'])) {
120:             unset($info['states']);
121:         }
122: 
123:         // ... if we were given a set of states
124:         if (isset($info['states'])) {
125:             // collect them into a list of state_id
126:             $info['state_id'] = array();
127:             foreach ($info['states'] as $states) {
128:                 if (isset($states)) {
129:                     // because null === array_merge(array, null)
130:                     $info['state_id'] = array_merge($info['state_id'], $states);
131:                 }
132:             }
133:             unset($info['states']);
134:         }
135: 
136:         // Remove any queues that don't have a state selected.
137:         $types = array();
138:         foreach ($info['queue'] as $queue) {
139:             foreach ($GLOBALS['whups_driver']->getTypeIds($queue) as $type) {
140:                 $types[$type][$queue] = true;
141:             }
142:         }
143:         $queues = array();
144:         foreach ($info['state_id'] as $stateId) {
145:             $state = $GLOBALS['whups_driver']->getState($stateId);
146:             if (isset($types[$state['type']])) {
147:                 $queues = array_merge($queues, array_keys($types[$state['type']]));
148:             }
149:         }
150:         $info['queue'] = array_intersect($info['queue'], $queues);
151:     }
152: }
153: 
API documentation generated by ApiGen