You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
6.1 KiB
188 lines
6.1 KiB
<?php
|
|
// Tasks' mass actions based on logged in agent
|
|
|
|
$actions = array();
|
|
|
|
if ($agent->hasPerm(Task::PERM_CLOSE, false)) {
|
|
|
|
if (isset($options['status'])) {
|
|
$status = $options['status'];
|
|
|
|
if (strpos($status, 'closed') !== false) {
|
|
$actions += array(
|
|
'reopen' => array(
|
|
'icon' => 'icon-undo',
|
|
'action' => __('Reopen')
|
|
));
|
|
}
|
|
|
|
|
|
if (strpos($status, 'open') !== false) {
|
|
$actions += array(
|
|
'close' => array(
|
|
'icon' => 'icon-ok-circle',
|
|
'action' => __('Close')
|
|
));
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($agent->hasPerm(Task::PERM_ASSIGN, false)) {
|
|
$actions += array(
|
|
'claim' => array(
|
|
'icon' => 'icon-user',
|
|
'action' => __('Claim')
|
|
));
|
|
$actions += array(
|
|
'assign/agents' => array(
|
|
'icon' => 'icon-user',
|
|
'action' => __('Assign to Agent')
|
|
));
|
|
$actions += array(
|
|
'assign/teams' => array(
|
|
'icon' => 'icon-group',
|
|
'action' => __('Assign to Team')
|
|
));
|
|
}
|
|
|
|
if ($agent->hasPerm(Task::PERM_TRANSFER, false)) {
|
|
$actions += array(
|
|
'transfer' => array(
|
|
'icon' => 'icon-share',
|
|
'action' => __('Transfer')
|
|
));
|
|
}
|
|
|
|
if ($agent->hasPerm(Task::PERM_DELETE, false)) {
|
|
$actions += array(
|
|
'delete' => array(
|
|
'class' => 'danger',
|
|
'icon' => 'icon-trash',
|
|
'action' => __('Delete')
|
|
));
|
|
}
|
|
if ($actions && isset($options['status'])) {
|
|
$more = $options['morelabel'] ?: __('More');
|
|
?>
|
|
<span
|
|
class="action-button"
|
|
data-dropdown="#action-dropdown-moreoptions">
|
|
<i class="icon-caret-down pull-right"></i>
|
|
<a class="tasks-action"
|
|
href="#moreoptions"><i
|
|
class="icon-reorder"></i> <?php
|
|
echo $more; ?></a>
|
|
</span>
|
|
<div id="action-dropdown-moreoptions"
|
|
class="action-dropdown anchor-right">
|
|
<ul>
|
|
<?php foreach ($actions as $a => $action) { ?>
|
|
<li <?php
|
|
if ($action['class'])
|
|
echo sprintf("class='%s'", $action['class']); ?> >
|
|
<a class="no-pjax tasks-action"
|
|
<?php
|
|
if ($action['dialog'])
|
|
echo sprintf("data-dialog-config='%s'", $action['dialog']);
|
|
if ($action['redirect'])
|
|
echo sprintf("data-redirect='%s'", $action['redirect']);
|
|
?>
|
|
href="<?php
|
|
echo sprintf('#tasks/mass/%s', $a); ?>"
|
|
><i class="icon-fixed-width <?php
|
|
echo $action['icon'] ?: 'icon-tag'; ?>"></i> <?php
|
|
echo $action['action']; ?></a>
|
|
</li>
|
|
<?php
|
|
} ?>
|
|
</ul>
|
|
</div>
|
|
<?php
|
|
} else {
|
|
// Mass Claim/Assignment
|
|
if ($agent->hasPerm(Task::PERM_ASSIGN, false)) {?>
|
|
<span
|
|
class="action-button" data-placement="bottom"
|
|
data-dropdown="#action-dropdown-assign" data-toggle="tooltip" title=" <?php
|
|
echo __('Assign'); ?>">
|
|
<i class="icon-caret-down pull-right"></i>
|
|
<a class="tasks-action" id="tasks-assign"
|
|
href="#tasks/mass/assign"><i class="icon-user"></i></a>
|
|
</span>
|
|
<div id="action-dropdown-assign" class="action-dropdown anchor-right">
|
|
<ul>
|
|
<li><a class="no-pjax tasks-action"
|
|
href="#tasks/mass/claim"><i
|
|
class="icon-chevron-sign-down"></i> <?php echo __('Claim'); ?></a>
|
|
<li><a class="no-pjax tasks-action"
|
|
href="#tasks/mass/assign/agents"><i
|
|
class="icon-user"></i> <?php echo __('Agent'); ?></a>
|
|
<li><a class="no-pjax tasks-action"
|
|
href="#tasks/mass/assign/teams"><i
|
|
class="icon-group"></i> <?php echo __('Team'); ?></a>
|
|
</ul>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
// Mass Transfer
|
|
if ($agent->hasPerm(Task::PERM_TRANSFER, false)) {?>
|
|
<span class="action-button">
|
|
<a class="tasks-action" id="tasks-transfer" data-placement="bottom"
|
|
data-toggle="tooltip" title="<?php echo __('Transfer'); ?>"
|
|
href="#tasks/mass/transfer"><i class="icon-share"></i></a>
|
|
</span>
|
|
<?php
|
|
}
|
|
|
|
|
|
// Mass Delete
|
|
if ($agent->hasPerm(Task::PERM_DELETE, false)) {?>
|
|
<span class="red button action-button">
|
|
<a class="tasks-action" id="tasks-delete" data-placement="bottom"
|
|
data-toggle="tooltip" title="<?php echo __('Delete'); ?>"
|
|
href="#tasks/mass/delete"><i class="icon-trash"></i></a>
|
|
</span>
|
|
<?php
|
|
}
|
|
} ?>
|
|
|
|
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
$(document).off('.tasks-actions');
|
|
$(document).on('click.tasks-actions', 'a.tasks-action', function(e) {
|
|
e.preventDefault();
|
|
var $form = $('form#tasks');
|
|
var count = checkbox_checker($form, 1);
|
|
if (count) {
|
|
var tids = $('.ckb:checked', $form).map(function() {
|
|
return this.value;
|
|
}).get();
|
|
var url = 'ajax.php/'
|
|
+$(this).attr('href').substr(1)
|
|
+'?count='+count
|
|
+'&tids='+tids.join(',')
|
|
+'&_uid='+new Date().getTime();
|
|
var $redirect = $(this).data('redirect');
|
|
$.dialog(url, [201], function (xhr) {
|
|
$.pjax.defaults.timeout = 30000;
|
|
if (!!$redirect)
|
|
$.pjax({url: $redirect, container:'#pjax-container'});
|
|
else
|
|
<?php
|
|
if (isset($options['callback_url']))
|
|
echo sprintf("$.pjax({url: '%s', container: '%s', push: false});",
|
|
$options['callback_url'],
|
|
@$options['container'] ?: '#pjax-container'
|
|
);
|
|
else
|
|
echo sprintf("$.pjax.reload('%s');",
|
|
@$options['container'] ?: '#pjax-container');
|
|
?>
|
|
});
|
|
}
|
|
return false;
|
|
});
|
|
});
|
|
</script>
|