diff --git a/include/class.forms.php b/include/class.forms.php index 0cbabf90b238cd0fd84fb6fa71fe4bbdca9f2f83..5bde407eadc2cc7dde542c2eac8055ca74842b77 100644 --- a/include/class.forms.php +++ b/include/class.forms.php @@ -1980,6 +1980,24 @@ class ChoiceField extends FormField { } function applyQuickFilter($query, $qf_value, $name=false) { + global $thisstaff; + + //special assignment quick filters + switch (true) { + case ($qf_value == 'assigned'): + case ($qf_value == '!assigned'): + $result = AssigneeChoiceField::getSearchQ($qf_value, $qf_value); + return $query->filter($result); + case (strpos($qf_value, 's') !== false): + case (strpos($qf_value, 't') !== false): + case ($qf_value == 'M'): + case ($qf_value == 'T'): + $value = array($qf_value => $qf_value); + $result = AssigneeChoiceField::getSearchQ('includes', $value); + return $query->filter($result); + break; + } + return $query->filter(array( $name ?: $this->get('name') => $qf_value, )); diff --git a/include/class.search.php b/include/class.search.php index f2a77955b536dd165f28a333ffbd7e261a314e0b..ac7a8df2d1bd2fcdfe5024651b4b64c923b312e4 100755 --- a/include/class.search.php +++ b/include/class.search.php @@ -1308,6 +1308,13 @@ class AssigneeChoiceField extends ChoiceField { class AssignedField extends AssigneeChoiceField { + function getChoices($verbose=false) { + return array( + 'assigned' => __('Assigned'), + '!assigned' => __('Unassigned'), + ); + } + function getSearchMethods() { return array( 'assigned' => __('assigned'), @@ -1399,8 +1406,14 @@ class DepartmentManagerSelectionField extends AgentSelectionField { static $_members; function getChoices($verbose=false) { - if (isset($this->_members)) - $this->_members = Staff::getStaffMembers(); + if (!isset($this->_members)) { + $managers = array(); + $staff = Staff::objects()->filter(array('dept__manager_id__gt' => 0)); + foreach ($staff as $s) { + $managers['s'.$s->getId()] = $s->getName()->name; + } + $this->_members = $managers; + } return $this->_members; } @@ -1414,9 +1427,9 @@ class TeamSelectionField extends AdvancedSearchSelectionField { static $_teams; function getChoices($verbose=false) { - if (!isset($this->_teams)) + if (!isset($this->_teams) && $teams = Team::getTeams()) $this->_teams = array('T' => __('One of my teams')) + - Team::getTeams(); + $teams; return $this->_teams; } diff --git a/include/staff/templates/queue-quickfilter.tmpl.php b/include/staff/templates/queue-quickfilter.tmpl.php index 6046f7ae21af25a8c491a2abd774c4612eba1c10..996a6fc38c5727c162d86901f151681c8469f091 100644 --- a/include/staff/templates/queue-quickfilter.tmpl.php +++ b/include/staff/templates/queue-quickfilter.tmpl.php @@ -37,16 +37,24 @@ $.pjax({ timeout: 2000, container: '#pjax-container'}); return false;"> - <ul <?php if (count($choices) > 20) echo 'style="height:500px;overflow-x:hidden;overflow-y:scroll;"'; ?>> - <?php foreach ($choices as $k=>$desc) { - $selected = isset($quick_filter) && $quick_filter == $k; - ?> - <li <?php - if ($selected) echo 'class="active"'; - ?>> - <a href="#" data-value="<?php echo Format::htmlchars($k); ?>"> - <?php echo Format::htmlchars($desc); ?></a> - </li> - <?php } ?> - </ul> +<ul <?php if ($choices && count($choices) > 20) echo 'style="height:500px;overflow-x:hidden;overflow-y:scroll;"'; ?>> + <?php if ($choices) { + foreach ($choices as $k=>$desc) { + $selected = isset($quick_filter) && $quick_filter == $k; + ?> + <li <?php + if ($selected) echo 'class="active"'; + ?>> + <a href="#" data-value="<?php echo Format::htmlchars($k); ?>"> + <?php echo Format::htmlchars($desc); ?></a> + </li> + <?php } + } else { ?> + <li> + <a href="#" data-value="0"> + <?php echo __('None'); ?></a> + </li> + <?php } + ?> +</ul> </div>