Newer
Older
if(!defined('OSTADMININC') || !$thisstaff || !$thisstaff->isAdmin()) die('Access Denied');
$submit_text=__('Save Changes');
$info = $dept->getInfo();
$info['id'] = $dept->getId();
if (!$dept)
$dept = Dept::create();
$title=__('Add New Department');
$submit_text=__('Create Dept');
$info['ispublic']=isset($info['ispublic'])?$info['ispublic']:1;
$info['ticket_auto_response']=isset($info['ticket_auto_response'])?$info['ticket_auto_response']:1;
$info['message_auto_response']=isset($info['message_auto_response'])?$info['message_auto_response']:1;
if (!isset($info['group_membership']))
$info['group_membership'] = 1;
$info = Format::htmlchars(($errors && $_POST) ? $_POST : $info);
<form action="departments.php?<?php echo Http::build_query($qs); ?>" method="post" id="save">
<input type="hidden" name="do" value="<?php echo $action; ?>">
<input type="hidden" name="a" value="<?php echo Format::htmlchars($_REQUEST['a']); ?>">
<input type="hidden" name="id" value="<?php echo $info['id']; ?>">
<h2><?php echo __('Department');?></h2>
<li class="active"><a href="#settings">
<i class="icon-file"></i> <?php echo __('Settings'); ?></a></li>
<li><a href="#access">
<i class="icon-user"></i> <?php echo __('Access'); ?></a></li>
</ul>
<div id="settings" class="tab_content">
<table class="form_table" width="940" border="0" cellspacing="0" cellpadding="2">
<thead>
<tr>
<th colspan="2">
<h4><?php echo $title; ?></h4>
<em><?php echo __('Department Information');?></em>
<tr>
<td width="180">
<?php echo __('Parent');?>:
</td>
<td>
<select name="pid">
<option value="">— <?php echo __('Top-Level Deptartment'); ?> —</option>
<?php foreach (Dept::getDepartments() as $id=>$name) {
if ($info['id'] && $id == $info['id'])
continue; ?>
<option value="<?php echo $id; ?>" <?php
if ($info['pid'] == $id) echo 'selected="selected"';
?>><?php echo $name; ?></option>
<?php } ?>
</select>
</td>
</tr>
<input data-translate-tag="<?php echo $dept ? $dept->getTranslateTag() : '';
?>" type="text" size="30" name="name" value="<?php echo $info['name']; ?>"
autofocus>
<span class="error">* <?php echo $errors['name']; ?></span>
</td>
</tr>
<tr>
<td width="180" class="required">
<input type="radio" name="ispublic" value="1" <?php echo $info['ispublic']?'checked="checked"':''; ?>><strong><?php echo __('Public');?></strong>
<input type="radio" name="ispublic" value="0" <?php echo !$info['ispublic']?'checked="checked"':''; ?>><strong><?php echo __('Private');?></strong> <?php echo mb_convert_case(__('(internal)'), MB_CASE_TITLE);?>
<i class="help-tip icon-question-sign" href="#type"></i>
<option value="0">— <?php echo __('System Default'); ?> —</option>
if($slas=SLA::getSLAs()) {
foreach($slas as $id =>$name) {
echo sprintf('<option value="%d" %s>%s</option>',
$id, ($info['sla_id']==$id)?'selected="selected"':'',$name);
<span class="error"><?php echo $errors['sla_id']; ?></span> <i class="help-tip icon-question-sign" href="#sla"></i>
<option value="0">— <?php echo __('None'); ?> —</option>
$sql='SELECT staff_id,CONCAT_WS(", ",lastname, firstname) as name '
.' FROM '.STAFF_TABLE.' staff '
.' ORDER by name';
if(($res=db_query($sql)) && db_num_rows($res)) {
while(list($id,$name)=db_fetch_row($res)){
$selected=($info['manager_id'] && $id==$info['manager_id'])?'selected="selected"':'';
echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$name);
}
}
?>
</select>
<span class="error"><?php echo $errors['manager_id']; ?></span>
<i class="help-tip icon-question-sign" href="#manager"></i>
</span>
<td><?php echo __('Ticket Assignment'); ?>:</td>
<input type="checkbox" name="assign_members_only" <?php echo
$info['assign_members_only']?'checked="checked"':''; ?>>
<?php echo __('Restrict ticket assignment to department members'); ?>
<i class="help-tip icon-question-sign" href="#sandboxing"></i>
</span>
<em><strong><?php echo __('Outgoing Email Settings'); ?></strong>:</em>
</th>
</tr>
<tr>
<td width="180">
<?php echo __('Outgoing Email'); ?>:
</td>
<td>
<select name="email_id">
<option value="0">— <?php echo __('System Default'); ?> —</option>
<?php
$sql='SELECT email_id,email,name FROM '.EMAIL_TABLE.' email ORDER by name';
if(($res=db_query($sql)) && db_num_rows($res)){
while(list($id,$email,$name)=db_fetch_row($res)){
$selected=($info['email_id'] && $id==$info['email_id'])?'selected="selected"':'';
if($name)
$email=Format::htmlchars("$name <$email>");
echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$email);
}
}
?>
</select>
<span class="error"> <?php echo $errors['email_id']; ?></span> <i class="help-tip icon-question-sign" href="#email"></i>
</td>
</tr>
<tr>
<td width="180">
<?php echo __('Template Set'); ?>:
<option value="0">— <?php echo __('System Default'); ?> —</option>
<?php
$sql='SELECT tpl_id,name FROM '.EMAIL_TEMPLATE_GRP_TABLE.' tpl WHERE isactive=1 ORDER by name';
if(($res=db_query($sql)) && db_num_rows($res)){
while(list($id,$name)=db_fetch_row($res)){
$selected=($info['tpl_id'] && $id==$info['tpl_id'])?'selected="selected"':'';
echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$name);
}
}
?>
</select>
<span class="error"> <?php echo $errors['tpl_id']; ?></span> <i class="help-tip icon-question-sign" href="#template"></i>
<em><strong><?php echo __('Autoresponder Settings'); ?></strong>:
<i class="help-tip icon-question-sign" href="#auto_response_settings"></i></em>
<input type="checkbox" name="ticket_auto_response" value="0" <?php echo !$info['ticket_auto_response']?'checked="checked"':''; ?> >
<?php echo __('<strong>Disable</strong> for this Department'); ?>
<i class="help-tip icon-question-sign" href="#new_ticket"></i>
<input type="checkbox" name="message_auto_response" value="0" <?php echo !$info['message_auto_response']?'checked="checked"':''; ?> >
<?php echo __('<strong>Disable</strong> for this Department'); ?>
<i class="help-tip icon-question-sign" href="#new_message"></i>
<?php echo __('Auto-Response Email'); ?>:
<option value="0" selected="selected">— <?php echo __('Department Email'); ?> —</option>
<?php
$sql='SELECT email_id,email,name FROM '.EMAIL_TABLE.' email ORDER by name';
if(($res=db_query($sql)) && db_num_rows($res)){
while(list($id,$email,$name)=db_fetch_row($res)){
$selected = (isset($info['autoresp_email_id'])
&& $id == $info['autoresp_email_id'])
? 'selected="selected"' : '';
if($name)
$email=Format::htmlchars("$name <$email>");
echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$email);
}
}
?>
</select>
<span class="error"><?php echo $errors['autoresp_email_id']; ?></span>
<i class="help-tip icon-question-sign" href="#auto_response_email"></i>
</span>
</td>
</tr>
<tr>
<th colspan="2">
<em><strong><?php echo __('Alerts and Notices'); ?>:</strong>
<i class="help-tip icon-question-sign" href="#group_membership"></i></em>
</th>
</tr>
<tr>
<td width="180">
</td>
<td>
<span>
<select name="group_membership">
<?php foreach (array(
Dept::ALERTS_DISABLED => __("No one (disable Alerts and Notices)"),
Dept::ALERTS_DEPT_ONLY => __("Department members only"),
Dept::ALERTS_DEPT_AND_GROUPS => __("Department and Group members"),
) as $mode=>$desc) { ?>
<option value="<?php echo $mode; ?>" <?php
if ($info['group_membership'] == $mode) echo 'selected="selected"';
?>><?php echo $desc; ?></option><?php
} ?>
</select>
<i class="help-tip icon-question-sign" href="#group_membership"></i>
</span>
<em><strong><?php echo __('Department Signature'); ?></strong>:
<span class="error"> <?php echo $errors['signature']; ?></span>
<i class="help-tip icon-question-sign" href="#department_signature"></i></em>
<textarea class="richtext no-bar" name="signature" cols="21"
rows="5" style="width: 60%;"><?php echo $info['signature']; ?></textarea>
<div id="access" class="hidden tab_content">
<table class="two-column table" width="100%">
<tbody>
<tr class="header">
<td colspan="2">
<?php echo __('Department Members'); ?>
<div><small>
<?php echo __('Agents who are primary members of this department'); ?>
</small></div>
</td>
</tr>
<?php
$agents = Staff::getStaffMembers();
foreach ($dept->getMembers() as $member) {
unset($agents[$member->getId()]);
} ?>
<tr id="add_extended_access">
<td colspan="2">
<i class="icon-plus-sign"></i>
<select id="add_access" data-quick-add="staff">
<option value="0">— <?php echo __('Select Agent');?> —</option>
<?php
foreach ($agents as $id=>$name) {
echo sprintf('<option value="%d">%s</option>',$id,Format::htmlchars($name));
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
}
?>
<option value="0" data-quick-add>— <?php echo __('Add New');?> —</option>
</select>
<button type="button" class="action-button">
<?php echo __('Add'); ?>
</button>
</td>
</tr>
</tbody>
<tbody>
<tr id="member_template" class="hidden">
<td>
<input type="hidden" data-name="members[]" value="" />
</td>
<td>
<select data-name="member_role" data-quick-add="role">
<option value="0">— <?php echo __('Select Role');?> —</option>
<?php
foreach (Role::getRoles() as $id=>$name) {
echo sprintf('<option value="%d" %s>%s</option>',$id,$sel,$name);
}
?>
<option value="0" data-quick-add>— <?php echo __('Add New');?> —</option>
</select>
<span style="display:inline-block;width:60px"> </span>
<label>
<input type="checkbox" data-name="member_alerts" value="1" />
<?php echo __('Alerts'); ?>
</label>
<a href="#" class="pull-right drop-membership" title="<?php echo __('Delete');
?>"><i class="icon-trash"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
<input type="submit" name="submit" value="<?php echo $submit_text; ?>">
<input type="reset" name="reset" value="<?php echo __('Reset');?>">
<input type="button" name="cancel" value="<?php echo __('Cancel');?>"
onclick='window.location.href="?"'>
<script type="text/javascript">
var addAccess = function(staffid, name, role, alerts, primary, error) {
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
var copy = $('#member_template').clone();
copy.find('td:first').append(document.createTextNode(name));
if (primary) {
copy.find('td:first').append($('<span class="faded">').text(primary));
copy.find('td:last').empty();
}
else {
copy.find('[data-name^=member_alerts]')
.attr('name', 'member_alerts['+staffid+']')
.prop('checked', alerts);
copy.find('[data-name^=member_role]')
.attr('name', 'member_role['+staffid+']')
.val(role || 0);
copy.find('[data-name=members\\[\\]]')
.attr('name', 'members[]')
.val(staffid);
}
copy.attr('id', '').show().insertBefore($('#add_extended_access'));
copy.removeClass('hidden')
if (error)
$('<div class="error">').text(error).appendTo(copy.find('td:last'));
};
$('#add_extended_access').find('button').on('click', function() {
var selected = $('#add_access').find(':selected');
addAccess(selected.val(), selected.text(), 0, true);
selected.remove();
return false;
});
$(document).on('click', 'a.drop-membership', function() {
var tr = $(this).closest('tr');
$('#add_access').append(
$('<option>')
.attr('value', tr.find('input[name^=members][type=hidden]').val())
.text(tr.find('td:first').text())
);
tr.fadeOut(function() { $(this).remove(); });
return false;
});
<?php
if ($dept) {
$members = $dept->members->all();
foreach ($dept->extended as $x) {
$members[] = new AnnotatedModel($x->staff, array(
'alerts' => $x->isAlertsEnabled(),
'role_id' => $x->role_id,
));
}
usort($members, function($a, $b) { return strcmp($a->getName(), $b->getName()); });
foreach ($members as $member) {
$primary = $member->dept_id == $info['id'];
echo sprintf('addAccess(%d, %s, %d, %d, %s, %s);',
$member->getId(),
JsonDataEncoder::encode((string) $member->getName()),
$member->role_id,
$member->get('alerts', 0),
JsonDataEncoder::encode($primary ? ' — '.__('Primary') : ''),
JsonDataEncoder::encode($errors['members'][$member->staff_id])
);
}
}
?>
</script>