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.
128 lines
4.8 KiB
128 lines
4.8 KiB
<?php
|
|
if(!defined('OSTCLIENTINC')) die('Access Denied!');
|
|
$info=array();
|
|
if($thisclient && $thisclient->isValid()) {
|
|
$info=array('name'=>$thisclient->getName(),
|
|
'email'=>$thisclient->getEmail(),
|
|
'phone'=>$thisclient->getPhoneNumber());
|
|
}
|
|
|
|
$info=($_POST && $errors)?Format::htmlchars($_POST):$info;
|
|
|
|
$form = null;
|
|
if (!$info['topicId']) {
|
|
if (array_key_exists('topicId',$_GET) && preg_match('/^\d+$/',$_GET['topicId']) && Topic::lookup($_GET['topicId']))
|
|
$info['topicId'] = intval($_GET['topicId']);
|
|
else
|
|
$info['topicId'] = $cfg->getDefaultTopicId();
|
|
}
|
|
|
|
$forms = array();
|
|
if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) {
|
|
foreach ($topic->getForms() as $F) {
|
|
if (!$F->hasAnyVisibleFields())
|
|
continue;
|
|
if ($_POST) {
|
|
$F = $F->instanciate();
|
|
$F->isValidForClient();
|
|
}
|
|
$forms[] = $F->getForm();
|
|
}
|
|
}
|
|
|
|
?>
|
|
<h1><?php echo __('Open a New Ticket');?></h1>
|
|
<p><?php echo __('Please fill in the form below to open a new ticket.');?></p>
|
|
<form id="ticketForm" method="post" action="open.php" enctype="multipart/form-data">
|
|
<?php csrf_token(); ?>
|
|
<input type="hidden" name="a" value="open">
|
|
<table width="800" cellpadding="1" cellspacing="0" border="0">
|
|
<tbody>
|
|
<?php
|
|
if (!$thisclient) {
|
|
$uform = UserForm::getUserForm()->getForm($_POST);
|
|
if ($_POST) $uform->isValid();
|
|
$uform->render(array('staff' => false, 'mode' => 'create'));
|
|
}
|
|
else { ?>
|
|
<tr><td colspan="2"><hr /></td></tr>
|
|
<tr><td><?php echo __('Email'); ?>:</td><td><?php
|
|
echo $thisclient->getEmail(); ?></td></tr>
|
|
<tr><td><?php echo __('Client'); ?>:</td><td><?php
|
|
echo Format::htmlchars($thisclient->getName()); ?></td></tr>
|
|
<?php } ?>
|
|
</tbody>
|
|
<tbody>
|
|
<tr><td colspan="2"><hr />
|
|
<div class="form-header" style="margin-bottom:0.5em">
|
|
<b><?php echo __('Help Topic'); ?></b>
|
|
</div>
|
|
</td></tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<select id="topicId" name="topicId" onchange="javascript:
|
|
var data = $(':input[name]', '#dynamic-form').serialize();
|
|
$.ajax(
|
|
'ajax.php/form/help-topic/' + this.value,
|
|
{
|
|
data: data,
|
|
dataType: 'json',
|
|
success: function(json) {
|
|
$('#dynamic-form').empty().append(json.html);
|
|
$(document.head).append(json.media);
|
|
}
|
|
});">
|
|
<option value="" selected="selected">— <?php echo __('Select a Help Topic');?> —</option>
|
|
<?php
|
|
if($topics=Topic::getPublicHelpTopics()) {
|
|
foreach($topics as $id =>$name) {
|
|
echo sprintf('<option value="%d" %s>%s</option>',
|
|
$id, ($info['topicId']==$id)?'selected="selected"':'', $name);
|
|
}
|
|
} ?>
|
|
</select>
|
|
<font class="error">* <?php echo $errors['topicId']; ?></font>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody id="dynamic-form">
|
|
<?php
|
|
$options = array('mode' => 'create');
|
|
foreach ($forms as $form) {
|
|
include(CLIENTINC_DIR . 'templates/dynamic-form.tmpl.php');
|
|
} ?>
|
|
</tbody>
|
|
<tbody>
|
|
<?php
|
|
if($cfg && $cfg->isCaptchaEnabled() && (!$thisclient || !$thisclient->isValid())) {
|
|
if($_POST && $errors && !$errors['captcha'])
|
|
$errors['captcha']=__('Please re-enter the text again');
|
|
?>
|
|
<tr class="captchaRow">
|
|
<td class="required"><?php echo __('CAPTCHA Text');?>:</td>
|
|
<td>
|
|
<span class="captcha"><img src="captcha.php" border="0" align="left"></span>
|
|
|
|
<input id="captcha" type="text" name="captcha" size="6" autocomplete="off">
|
|
<em><?php echo __('Enter the text shown on the image.');?></em>
|
|
<font class="error">* <?php echo $errors['captcha']; ?></font>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
} ?>
|
|
<tr><td colspan=2> </td></tr>
|
|
</tbody>
|
|
</table>
|
|
<hr/>
|
|
<p class="buttons" style="text-align:center;">
|
|
<input type="submit" value="<?php echo __('Create Ticket');?>">
|
|
<input type="reset" name="reset" value="<?php echo __('Reset');?>">
|
|
<input type="button" name="cancel" value="<?php echo __('Cancel'); ?>" onclick="javascript:
|
|
$('.richtext').each(function() {
|
|
var redactor = $(this).data('redactor');
|
|
if (redactor && redactor.opts.draftDelete)
|
|
redactor.plugin.draft.deleteDraft();
|
|
});
|
|
window.location.href='index.php';">
|
|
</p>
|
|
</form>
|