PHRAS-978 - fix task management form

This commit is contained in:
Florian BLOUET
2016-02-17 18:31:04 +01:00
parent dc7cfacc8c
commit 392f5bea7d
3 changed files with 94 additions and 77 deletions

View File

@@ -264,7 +264,6 @@ class TaskManagerController extends Controller
return $this->app->json(['success' => true]); return $this->app->json(['success' => true]);
} }
return $this->app->json([ return $this->app->json([
'success' => false, 'success' => false,
'message' => implode("\n", iterator_to_array($form->getErrors())), 'message' => implode("\n", iterator_to_array($form->getErrors())),

View File

@@ -68,7 +68,7 @@
<tr> <tr>
<td class="menu"> <td class="menu">
<div class="btn-group dropdown"> <div class="btn-group dropdown">
<a class="btn btn-mini dropdown-toggle" data-toggle="dropdown" href="#"> <a class="btn btn-mini dropdown-toggle disabled" data-toggle="dropdown" href="#">
<span class="caret"></span> <span class="caret"></span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">

View File

@@ -1,15 +1,53 @@
<div id="taskBody"> <div id="taskBody">
{% block css %}{% endblock %} {% block css %}{% endblock %}
<div> <form
name="task-edit"
method="POST"
action="{{ path('admin_tasks_task_save', {'task' : task.getId()}) }}"
class="form-horizontal no-ajax">
{% if form.vars.errors|length > 0 %}
{{ form_errors(form) }}
{% endif %}
<fieldset>
<legend>{{ 'Task Edition' | trans }}</legend>
<div class="control-group">
<label class="control-label">{{ form_label(form.name) }} {{ form_errors(form.name) }}</label>
<div class="controls">
{{ form_widget(form.name) }}
</div>
</div>
<div class="control-group">
<div> <label class="control-label">{{ form_label(form.period) }} {{ form_errors(form.period) }}</label>
{{ 'admin::tasks: Nombre de crashes :' | trans }} <span id="crash-counter">{{ task.getCrashed() }}</span> <div class="controls">
<button class="btn btn-success" id="taskResetCrashCounterButton"> {{ form_widget(form.period) }}
</div>
</div>
<div class="control-group">
<label class="control-label">{{ form_label(form.status) }} {{ form_errors(form.status) }}</label>
<div class="controls">
{{ form_widget(form.status) }}
</div>
</div>
{{ form_rest(form) }}
</fieldset>
</form>
<div class="form-horizontal">
<div class="control-group">
<label class="control-label">{{ 'admin::tasks: Nombre de crashes :' | trans }}</label>
<div class="controls">
<input class="formElem input-mini" type="text" name="crash-counter" value="{{ task.getCrashed() }}" readonly>
<button class="btn btn-success btn-mini" id="taskResetCrashCounterButton">
{{ 'admin::tasks: reinitialiser el compteur de crashes' | trans }} {{ 'admin::tasks: reinitialiser el compteur de crashes' | trans }}
</button> </button>
</div> </div>
</div> </div>
</div>
<div id="taskTabs"> <div id="taskTabs">
<ul> <ul>
@@ -31,27 +69,14 @@
{% endblock %} {% endblock %}
</div> </div>
</div> </div>
<form
name="task-edit"
method="POST"
action="{{ path('admin_tasks_task_save', {'task' : task.getId()}) }}"
class="form-inline no-ajax"
>
{% if form.vars.errors|length > 0 %}
{{ form_errors(form) }}
{% endif %}
{{ form_rest(form) }}
<div class="form-actions"> <div class="form-actions">
<button type="submit" class="btn btn-primary btn-trigger " id="taskSaveButton" form="task-edit">
<button type="submit" class="btn btn-primary btn-trigger " id="taskSaveButton">
{{ "Save" | trans }} {{ "Save" | trans }}
</button> </button>
<a href="{{ path('admin_tasks_list') }}">{{ 'Cancel' | trans }}</a> <a href="{{ path('admin_tasks_list') }}">{{ 'Cancel' | trans }}</a>
</div> </div>
</form>
{% block javascript %} {% block javascript %}
<script type="text/javascript"> <script type="text/javascript">
@@ -68,9 +93,9 @@
} }
, ,
beforeActivate: function (event, ui) { beforeActivate: function (event, ui) {
switch($(ui.newPanel).attr("id")) switch ($(ui.newPanel).attr("id")) {
{
case "taskGuiTab": case "taskGuiTab":
var validated = false; var validated = false;
// click on gui tab : fill the gui from xml, then switch to the gui view // click on gui tab : fill the gui from xml, then switch to the gui view
$.ajax({ $.ajax({
@@ -104,8 +129,7 @@
} }
}); });
$("#taskResetCrashCounterButton").click(function() $("#taskResetCrashCounterButton").click(function () {
{
$.ajax({ $.ajax({
"url": "{{ path('admin_tasks_task_reset', {'task' : task.getId()}) }}", "url": "{{ path('admin_tasks_task_reset', {'task' : task.getId()}) }}",
"dataType": "json", "dataType": "json",
@@ -114,7 +138,7 @@
if (!data.success) { if (!data.success) {
//todo add notification and loader //todo add notification and loader
} else { } else {
$("#crash-counter").html("0"); $("input[name='crash-counter']").val("0");
} }
} }
}); });
@@ -123,7 +147,8 @@
function xmlFromForm(callback) { function xmlFromForm(callback) {
var formData = $("#graphicForm").serializeArray(); var formData = $("#graphicForm").serializeArray();
formData.push({"name": "xml", "value": $("#txtareaxml").val()}); formData.push({"name": "xml", "value": $("#txtareaxml").val()});
$.ajax({ url: "{{ path('admin_tasks_xml_from_form', {'task' : task.getId()}) }}" $.ajax({
url: "{{ path('admin_tasks_xml_from_form', {'task' : task.getId()}) }}"
, data: formData , data: formData
, dataType: 'text' , dataType: 'text'
, type: "POST" , type: "POST"
@@ -140,8 +165,11 @@
}); });
} }
$("form[name='task-edit']").on('submit', function() $('#taskSaveButton').on('click', function () {
{ $("form[name='task-edit']").submit();
});
$("form[name='task-edit']").on('submit', function () {
xmlFromForm(function (data) { xmlFromForm(function (data) {
$("form[name='task-edit'] input[name='settings']").val(data); $("form[name='task-edit'] input[name='settings']").val(data);
formData = $("form[name='task-edit']").serializeArray(); formData = $("form[name='task-edit']").serializeArray();
@@ -154,21 +182,11 @@
, success: function (data) { , success: function (data) {
if (data.success) { if (data.success) {
console.log('should go back to list'); console.log('should go back to list');
//loadRightAjax("{{ path('admin_tasks_list') }}");
/* var $this = $(this);
$('#right-ajax').empty().addClass('loading').parent().show(); $('#right-ajax').empty().addClass('loading').parent().show();
$('#right').hide(); $('#right').hide();
$.get($this.attr('href'), function (data) { $.get("{{ path('admin_tasks_list') }}", function (data) {
$('#right-ajax').removeClass('loading').html(data); $('#right-ajax').removeClass('loading').html(data);
}); });
return false;
*/
} else { } else {
if (window.console) { if (window.console) {
console.log(data.message); console.log(data.message);