Newer
Older
<?php
if(!defined('OSTSCPINC') || !$thisstaff) die('Access Denied');
$select = 'SELECT org.*
,COALESCE(team.name,
IF(staff.staff_id, CONCAT_WS(" ", staff.firstname, staff.lastname), NULL)
) as account_manager ';
$from = 'FROM '.ORGANIZATION_TABLE.' org '
.'LEFT JOIN '.STAFF_TABLE.' staff ON (
LEFT(org.manager, 1) = "s" AND staff.staff_id = SUBSTR(org.manager, 2)) '
.'LEFT JOIN '.TEAM_TABLE.' team ON (
LEFT(org.manager, 1) = "t" AND team.team_id = SUBSTR(org.manager, 2)) ';
$where = ' WHERE 1 ';
if ($_REQUEST['query']) {
$from .=' LEFT JOIN '.FORM_ENTRY_TABLE.' entry
ON (entry.object_type=\'O\' AND entry.object_id = org.id)
LEFT JOIN '.FORM_ANSWER_TABLE.' value
ON (value.entry_id=entry.id) ';
$search = db_input(strtolower($_REQUEST['query']), false);
$where .= ' AND (
org.name LIKE \'%'.$search.'%\' OR value.value LIKE \'%'.$search.'%\'
)';
}
$sortOptions = array('name' => 'org.name',
'users' => 'users',
'create' => 'org.created',
'update' => 'org.updated');
$orderWays = array('DESC'=>'DESC','ASC'=>'ASC');
$sort= ($_REQUEST['sort'] && $sortOptions[strtolower($_REQUEST['sort'])]) ? strtolower($_REQUEST['sort']) : 'name';
//Sorting options...
if ($sort && $sortOptions[$sort])
$order_column =$sortOptions[$sort];
$order_column = $order_column ?: 'org.name';
if ($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])])
$order = $orderWays[strtoupper($_REQUEST['order'])];
$order=$order ?: 'ASC';
if ($order_column && strpos($order_column,','))
$order_column = str_replace(','," $order,",$order_column);
$x=$sort.'_sort';
$$x=' class="'.strtolower($order).'" ';
$order_by="$order_column $order ";
$total=db_count('SELECT count(DISTINCT org.id) '.$from.' '.$where);
$page=($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1;
$pageNav=new Pagenate($total,$page,PAGE_LIMIT);
$qstr = '&'. Http::build_query($qs);
$qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']);
$pageNav->setURL('orgs.php', $qs);
$qstr.='&order='.($order=='DESC' ? 'ASC' : 'DESC');
$select .= ', count(DISTINCT user.id) as users ';
$from .= ' LEFT JOIN '.USER_TABLE.' user ON (user.org_id = org.id) ';
$query="$select $from $where GROUP BY org.id ORDER BY $order_by LIMIT ".$pageNav->getStart().",".$pageNav->getLimit();
//echo $query;
$qhash = md5($query);
$_SESSION['orgs_qs_'.$qhash] = $query;
<h2><?php echo __('Organizations'); ?></h2>
<div class="pull-left">
<form action="orgs.php" method="get">
<?php csrf_token(); ?>
<input type="hidden" name="a" value="search">
<table>
<tr>
<td><input type="text" id="basic-org-search" name="query" size=30 value="<?php echo Format::htmlchars($_REQUEST['query']); ?>"
autocomplete="off" autocorrect="off" autocapitalize="off"></td>
<td><input type="submit" name="basic_search" class="button" value="<?php echo __('Search'); ?>"></td>
<!-- <td> <a href="" id="advanced-user-search">[advanced]</a></td> -->
</tr>
</table>
</form>
</div>
<div class="pull-right">
<a class="action-button add-org"
href="#">
<i class="icon-plus-sign"></i>
<?php echo __('Add Organization'); ?>
</a>
<span class="action-button" data-dropdown="#action-dropdown-more"
style="/*DELME*/ vertical-align:top; margin-bottom:0">
<i class="icon-caret-down pull-right"></i>
<span ><i class="icon-cog"></i> <?php echo __('More');?></span>
</span>
<div id="action-dropdown-more" class="action-dropdown anchor-right">
<ul>
<li><a class="orgs-action" href="#delete">
<i class="icon-trash icon-fixed-width"></i>
<?php echo __('Delete'); ?></a></li>
</ul>
</div>
</div>
$showing = $search ? __('Search Results').': ' : '';
$res = db_query($query);
if($res && ($num=db_num_rows($res)))
$showing .= $pageNav->showing();
else
$showing .= __('No organizations found!');
<form id="orgs-list" action="orgs.php" method="POST" name="staff" >
<input type="hidden" name="a" value="mass_process" >
<input type="hidden" id="action" name="do" value="" >
<input type="hidden" id="selected-count" name="count" value="" >
<table class="list" border="0" cellspacing="1" cellpadding="0" width="940">
<caption><?php echo $showing; ?></caption>
<thead>
<tr>
<th width="400"><a <?php echo $name_sort; ?> href="orgs.php?<?php echo $qstr; ?>&sort=name"><?php echo __('Name'); ?></a></th>
<th width="100"><a <?php echo $users_sort; ?> href="orgs.php?<?php echo $qstr; ?>&sort=users"><?php echo __('Users'); ?></a></th>
<th width="150"><a <?php echo $create_sort; ?> href="orgs.php?<?php echo $qstr; ?>&sort=create"><?php echo __('Created'); ?></a></th>
<th width="145"><a <?php echo $update_sort; ?> href="orgs.php?<?php echo $qstr; ?>&sort=update"><?php echo __('Last Updated'); ?></a></th>
</tr>
</thead>
<tbody>
<?php
if($res && db_num_rows($res)):
$ids=($errors && is_array($_POST['ids']))?$_POST['ids']:null;
while ($row = db_fetch_array($res)) {
$sel=false;
if($ids && in_array($row['id'], $ids))
$sel=true;
?>
<tr id="<?php echo $row['id']; ?>">
<input type="checkbox" value="<?php echo $row['id']; ?>" class="ckb mass nowarn"/>
<td> <a href="orgs.php?id=<?php echo $row['id']; ?>"><?php echo $row['name']; ?></a> </td>
<td> <?php echo $row['users']; ?></td>
<td><?php echo Format::db_date($row['created']); ?></td>
<td><?php echo Format::db_datetime($row['updated']); ?> </td>
</tr>
<?php
} //end of while.
endif; ?>
<tfoot>
<tr>
<td colspan="7">
<?php if ($res && $num) { ?>
<?php echo __('Select');?>:
<a id="selectAll" href="#ckb"><?php echo __('All');?></a>
<a id="selectNone" href="#ckb"><?php echo __('None');?></a>
<a id="selectToggle" href="#ckb"><?php echo __('Toggle');?></a>
<?php }else{
echo '<i>';
echo __('Query returned 0 results.');
echo '</i>';
} ?>
</td>
</tr>
</tfoot>
</table>
<?php
if($res && $num): //Show options..
echo sprintf('<div> %s: %s <a class="no-pjax"
href="orgs.php?a=export&qh=%s">%s</a></div>',
__('Page'),
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
endif;
?>
</form>
<script type="text/javascript">
$(function() {
$('input#basic-org-search').typeahead({
source: function (typeahead, query) {
$.ajax({
url: "ajax.php/orgs/search?q="+query,
dataType: 'json',
success: function (data) {
typeahead.process(data);
}
});
},
onselect: function (obj) {
window.location.href = 'orgs.php?id='+obj.id;
},
property: "/bin/true"
});
$(document).on('click', 'a.add-org', function(e) {
e.preventDefault();
$.orgLookup('ajax.php/orgs/add', function (org) {
window.location.href = 'orgs.php?id='+org.id;
});
return false;
});
var goBaby = function(action) {
var ids = [],
$form = $('form#orgs-list');
$(':checkbox.mass:checked', $form).each(function() {
ids.push($(this).val());
});
if (ids.length) {
var submit = function() {
$form.find('#action').val(action);
$.each(ids, function() { $form.append($('<input type="hidden" name="ids[]">').val(this)); });
$form.find('#selected-count').val(ids.length);
$form.submit();
};
$.confirm(__('You sure?')).then(submit);
}
else if (!ids.length) {
$.sysAlert(__('Oops'),
__('You need to select at least one item'));
}
};
$(document).on('click', 'a.orgs-action', function(e) {
e.preventDefault();
goBaby($(this).attr('href').substr(1));
return false;
});