Skip to content
Snippets Groups Projects
Commit 4fff1e34 authored by Jared Hancock's avatar Jared Hancock
Browse files

forms: Fix poor form rendering on new ticket by staff

Also fix a crash when re-rendering the new ticket by staff page after a
validation error.
parent de30249b
Branches
Tags
No related merge requests found
......@@ -24,8 +24,18 @@ class DynamicFormsAjaxAPI extends AjaxController {
$_SESSION[':form-data'] = array_merge($_SESSION[':form-data'], $_GET);
}
if ($form = $topic->getForm())
if ($form = $topic->getForm()) {
ob_start();
$form->getForm($_SESSION[':form-data'])->render(!$client);
$html = ob_get_clean();
ob_start();
print $form->getMedia();
$media = ob_get_clean();
}
return $this->encode(array(
'media' => $media,
'html' => $html,
));
}
function getClientFormsForHelpTopic($topic_id) {
......
......@@ -34,9 +34,16 @@ if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) {
<td>
<select id="topicId" name="topicId" onchange="javascript:
var data = $(':input[name]', '#dynamic-form').serialize();
$('#dynamic-form').load(
'ajax.php/form/help-topic/' + this.value, data);
">
$.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">&mdash; <?php echo __('Select a Help Topic');?> &mdash;</option>
<?php
if($topics=Topic::getPublicHelpTopics()) {
......
......@@ -7,8 +7,6 @@ if (isset($options['entry']) && $options['mode'] == 'edit'
)
return;
print $form->getMedia();
if (isset($options['entry']) && $options['mode'] == 'edit') { ?>
<tbody>
<?php } ?>
......
......@@ -134,6 +134,7 @@ if ($_POST)
<?php if ($forms)
foreach ($forms as $form) {
$form->render(true, false, array('mode'=>'edit','width'=>160,'entry'=>$form));
print $form->getForm()->getMedia();
} ?>
</table>
<table class="form_table" width="940" border="0" cellspacing="0" cellpadding="2">
......
......@@ -132,9 +132,16 @@ if ($_POST)
<td>
<select name="topicId" onchange="javascript:
var data = $(':input[name]', '#dynamic-form').serialize();
$('#dynamic-form').load(
'ajax.php/form/help-topic/' + this.value, data);
">
$.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);
}
});">
<?php
if ($topics=Topic::getHelpTopics()) {
if (count($topics) == 1)
......@@ -252,6 +259,7 @@ if ($_POST)
<tbody id="dynamic-form">
<?php
if ($form) {
print $form->getForm()->getMedia();
include(STAFFINC_DIR . 'templates/dynamic-form.tmpl.php');
}
?>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment