mirror of
https://github.com/Mibew/design.git
synced 2025-01-23 02:20:34 +03:00
Added sorting at groups page
This commit is contained in:
parent
6a594f7f72
commit
b006c39c40
@ -450,9 +450,28 @@ function get_sorted_child_groups_($groupslist, $skipgroups = array(), $maxlevel
|
|||||||
return $child_groups;
|
return $child_groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_groups_($link, $operator, $checkaway)
|
function get_groups_($link, $checkaway, $operator, $order = NULL)
|
||||||
{
|
{
|
||||||
global $mysqlprefix;
|
global $mysqlprefix;
|
||||||
|
|
||||||
|
if($order){
|
||||||
|
switch($order['by']){
|
||||||
|
case 'weight':
|
||||||
|
$orderby = "iweight";
|
||||||
|
break;
|
||||||
|
case 'lastseen':
|
||||||
|
$orderby = "ilastseen";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$orderby = "${mysqlprefix}chatgroup.vclocalname";
|
||||||
|
}
|
||||||
|
$orderby = sprintf(" IF(ISNULL(${mysqlprefix}chatgroup.parent),CONCAT('_',%s),'') %s, ${mysqlprefix}chatgroup.iweight ",
|
||||||
|
$orderby,
|
||||||
|
($order['desc']?'DESC':'ASC'));
|
||||||
|
}else{
|
||||||
|
$orderby = "iweight, vclocalname";
|
||||||
|
}
|
||||||
|
|
||||||
$query = "select ${mysqlprefix}chatgroup.groupid as groupid, ${mysqlprefix}chatgroup.parent as parent, vclocalname, vclocaldescription, iweight" .
|
$query = "select ${mysqlprefix}chatgroup.groupid as groupid, ${mysqlprefix}chatgroup.parent as parent, vclocalname, vclocaldescription, iweight" .
|
||||||
", (SELECT count(*) from ${mysqlprefix}chatgroupoperator where ${mysqlprefix}chatgroup.groupid = " .
|
", (SELECT count(*) from ${mysqlprefix}chatgroupoperator where ${mysqlprefix}chatgroup.groupid = " .
|
||||||
"${mysqlprefix}chatgroupoperator.groupid) as inumofagents" .
|
"${mysqlprefix}chatgroupoperator.groupid) as inumofagents" .
|
||||||
@ -474,18 +493,23 @@ function get_groups_($link, $operator, $checkaway)
|
|||||||
"where ${mysqlprefix}chatgroup.groupid = i.parent or ${mysqlprefix}chatgroup.parent = i.parent "
|
"where ${mysqlprefix}chatgroup.groupid = i.parent or ${mysqlprefix}chatgroup.parent = i.parent "
|
||||||
: ""
|
: ""
|
||||||
) .
|
) .
|
||||||
" order by iweight, vclocalname";
|
" order by " . $orderby;
|
||||||
return get_sorted_child_groups_(select_multi_assoc($query, $link));
|
return get_sorted_child_groups_(select_multi_assoc($query, $link));
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_groups($link, $checkaway)
|
function get_groups($link, $checkaway)
|
||||||
{
|
{
|
||||||
return get_groups_($link, NULL, $checkaway);
|
return get_groups_($link, $checkaway, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_groups_for_operator($link, $operator, $checkaway)
|
function get_groups_for_operator($link, $operator, $checkaway)
|
||||||
{
|
{
|
||||||
return get_groups_($link, $operator, $checkaway);
|
return get_groups_($link, $checkaway, $operator);
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_sorted_groups($link, $order)
|
||||||
|
{
|
||||||
|
return get_groups_($link, true, NULL, $order);
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_operator_groupids($operatorid)
|
function get_operator_groupids($operatorid)
|
||||||
|
@ -301,6 +301,10 @@ page.groups.intro=This page displays a list of groups. Each group can have separ
|
|||||||
page.groups.isaway=Away
|
page.groups.isaway=Away
|
||||||
page.groups.isonline=Online
|
page.groups.isonline=Online
|
||||||
page.groups.new=Create new group
|
page.groups.new=Create new group
|
||||||
|
page.groups.sort=Sort by:
|
||||||
|
page.groups.sortdirection=Sort direction:
|
||||||
|
page.groups.sortdirection.desc=descending
|
||||||
|
page.groups.sortdirection.asc=ascending
|
||||||
page.groups.title=Groups
|
page.groups.title=Groups
|
||||||
page.groups.weight=Weight
|
page.groups.weight=Weight
|
||||||
page.preview.agentchat=Chat window (operator-mode)
|
page.preview.agentchat=Chat window (operator-mode)
|
||||||
|
@ -299,6 +299,10 @@ page.groups.intro=
|
|||||||
page.groups.isaway=Away
|
page.groups.isaway=Away
|
||||||
page.groups.isonline=Äîñòóïíà
|
page.groups.isonline=Äîñòóïíà
|
||||||
page.groups.new=Äîáàâèòü ãðóïïó...
|
page.groups.new=Äîáàâèòü ãðóïïó...
|
||||||
|
page.groups.sort=Ñîðòèðîâàòü ïî:
|
||||||
|
page.groups.sortdirection=Íàïðàâëåíèå ñîðòèðîâêè:
|
||||||
|
page.groups.sortdirection.desc=ïî óáûâàíèþ
|
||||||
|
page.groups.sortdirection.asc=ïî âîçðàñòàíèþ
|
||||||
page.groups.title=Ãðóïïû
|
page.groups.title=Ãðóïïû
|
||||||
page.groups.weight=Âåñ
|
page.groups.weight=Âåñ
|
||||||
page.preview.agentchat=Îêíî ÷àòà (ñî ñòîðîíû îïåðàòîðà)
|
page.preview.agentchat=Îêíî ÷àòà (ñî ñòîðîíû îïåðàòîðà)
|
||||||
|
@ -61,10 +61,23 @@ function is_away($group)
|
|||||||
|
|
||||||
|
|
||||||
$page = array();
|
$page = array();
|
||||||
|
$sort['by'] = verifyparam("sortby", "/^(name|lastseen|weight)$/", "name");
|
||||||
|
$sort['desc'] = (verifyparam("sortdirection", "/^(desc|asc)$/", "desc") == "desc");
|
||||||
$link = connect();
|
$link = connect();
|
||||||
$page['groups'] = get_groups($link, true);
|
$page['groups'] = get_sorted_groups($link, $sort);
|
||||||
close_connection($link);
|
close_connection($link);
|
||||||
|
$page['formsortby'] = $sort['by'];
|
||||||
|
$page['formsortdirection'] = $sort['desc']?'desc':'asc';
|
||||||
$page['canmodify'] = is_capable($can_administrate, $operator);
|
$page['canmodify'] = is_capable($can_administrate, $operator);
|
||||||
|
$page['availableOrders'] = array(
|
||||||
|
array('id' => 'name', 'name' => getlocal('form.field.groupname')),
|
||||||
|
array('id' => 'lastseen', 'name' => getlocal('page_agents.status')),
|
||||||
|
array('id' => 'weight', 'name' => getlocal('page.groups.weight'))
|
||||||
|
);
|
||||||
|
$page['availableDirections'] = array(
|
||||||
|
array('id' => 'desc', 'name' => getlocal('page.groups.sortdirection.desc')),
|
||||||
|
array('id' => 'asc', 'name' => getlocal('page.groups.sortdirection.asc')),
|
||||||
|
);
|
||||||
|
|
||||||
prepare_menu($operator);
|
prepare_menu($operator);
|
||||||
start_html_output();
|
start_html_output();
|
||||||
|
@ -49,6 +49,33 @@ require_once('inc_errors.php');
|
|||||||
<br clear="all"/>
|
<br clear="all"/>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
||||||
|
<form name="groupsForm" method="get" action="<?php echo $webimroot ?>/operator/groups.php">
|
||||||
|
|
||||||
|
<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner">
|
||||||
|
|
||||||
|
<div class="packedFormField">
|
||||||
|
<?php echo getlocal("page.groups.sort") ?><br/>
|
||||||
|
<select name="sortby" onchange="this.form.submit();"><?php
|
||||||
|
foreach($page['availableOrders'] as $k) {
|
||||||
|
echo "<option value=\"".$k['id']."\"".($k['id'] == form_value("sortby") ? " selected=\"selected\"" : "").">".$k['name']."</option>";
|
||||||
|
} ?></select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="packedFormField">
|
||||||
|
<?php echo getlocal("page.groups.sortdirection") ?><br/>
|
||||||
|
<select name="sortdirection" onchange="this.form.submit();"><?php
|
||||||
|
foreach($page['availableDirections'] as $k) {
|
||||||
|
echo "<option value=\"".$k['id']."\"".($k['id'] == form_value("sortdirection") ? " selected=\"selected\"" : "").">".$k['name']."</option>";
|
||||||
|
} ?></select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br clear="all"/>
|
||||||
|
|
||||||
|
</div><div class="formbottom"><div class="formbottomi"></div></div></div>
|
||||||
|
</form>
|
||||||
|
|
||||||
<table class="list">
|
<table class="list">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="header">
|
<tr class="header">
|
||||||
|
Loading…
Reference in New Issue
Block a user