Add Ftp job

This commit is contained in:
Romain Neutron
2013-09-05 14:15:39 +02:00
parent b9fc068a29
commit c2ac476240
4 changed files with 628 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
{% extends 'admin/task-manager/task-editor/task.html.twig' %}
{% block form %}
<div class="control-group">
<label class="control-label">{% trans 'task::ftp:proxy' %}</label>
<div class="controls">
<input class="formElem" type="text" name="proxy" />
</div>
</div>
<div class="control-group">
<label class="control-label">{% trans 'task::ftp:proxy port' %}</label>
<div class="controls">
<input class="formElem" type="text" name="proxyport" />
</div>
</div>
{% endblock %}
{% block javascript %}
function taskFillGraphic(xml)
{
if (xml) {
xml = $.parseXML(xml);
xml = $(xml);
with(document.forms['graphicForm'])
{
proxy.value = xml.find("proxy").text();
proxyport.value = xml.find("proxyport").text();
}
}
}
{% endblock %}

View File

@@ -0,0 +1,178 @@
<div id="taskBody">
{% block css %}{% endblock %}
<div>
<form
name="passwordRenewForm"
method="POST"
action="{{ path('admin_tasks_task_save2', {'id' : task.getId()}) }}"
onsubmit="return(false);"
class="form-inline"
>
{% if form.vars.errors|length > 0 %}
{{ form_errors(form) }}
{% endif %}
{{ form_rest(form) }}
<a href="{{ path('admin_tasks_list2') }}">{% trans 'Cancel' %}</a>
<button type="submit" class="btn btn-success btn-trigger " id="taskSaveButton">
{% trans "Save" %}
</button>
</form>
<div>
{% trans 'admin::tasks: Nombre de crashes : ' %} <span id="crash-counter">{{ task.getCrashed() }}</span>
<button class="btn btn-success" id="taskResetCrashCounterButton">
{% trans 'admin::tasks: reinitialiser el compteur de crashes' %}
</button>
</div>
</div>
<div id="taskTabs">
<ul>
<li><a href="#taskXmlTab">{% trans 'boutton::vue xml' %}</a></li>
<li><a href="#taskGuiTab">{% trans 'boutton::vue graphique' %}</a></li>
</ul>
<div id="taskGuiTab" >
<form id="graphicForm" name="graphicForm" class="form-horizontal" onsubmit="return(false);" method="post">
{% block form %}{% endblock %}
</form>
</div>
<div id="taskXmlTab">
{% block xml_settings %}
<form onsubmit="return(false);" name="fxml" method="post">
<textarea nowrap id="txtareaxml" style="white-space:pre; width:100%; height:250px" name="txtareaxml" >{{task.getSettings()}}</textarea>
</form>
{% endblock %}
</div>
</div>
<script type="text/javascript">
{% block javascript %}
function taskFillGraphic(xml) { };
{% endblock %}
</script>
</div>
<script type="text/javascript">
(function( $ ){
$.fn.serializeJSON=function() {
var json = {};
jQuery.map($(this).serializeArray(), function(n, i){
json[n['name']] = n['value'];
});
return json;
};
})( jQuery );
$(document).ready(function(){
$("#taskTabs").tabs({
create: function(event, ui) {
$("#taskTabs").tabs({ active: 1 });
}
,
beforeActivate: function(event, ui) {
switch($(ui.newPanel).attr("id"))
{
case "taskGuiTab":
var validated = false;
// click on gui tab : fill the gui from xml, then switch to the gui view
$.ajax({
"url" : "{{ path('admin_tasks_validate_xml') }}",
"data" : $("#txtareaxml").val(),
"processData" : false,
"dataType" : "text",
"type" : "POST",
"async" : false,
success : function(data) {
var x = $("#txtareaxml").val();
try {
taskFillGraphic(x);
validated = true;
} catch(e) {
// todo add notification
console.log(e);
}
},
error:function(jqXHR, textStatus, errorThrown) {
// todo add notification
}
});
return validated;
break;
case "taskXmlTab":
xmlFromForm();
break;
}
}
});
$("#taskResetCrashCounterButton").click(function()
{
$.ajax({
"url" : "{{ path('admin_tasks_task_reset2', {'id' : task.getId()}) }}",
"dataType" : "json",
"type" : "POST",
success:function(data) {
if(!data.success) {
//todo add notification and loader
} else {
$("#crash-counter").html("0");
}
}
});
});
function xmlFromForm(callback) {
var data = $("#graphicForm").serializeJSON();
data["xml"] = $("#txtareaxml").val();
$.ajax({ url: "{{ path('admin_tasks_xml_from_form', {'id' : task.getId()}) }}"
, data: data
, dataType:'text'
, type:"POST"
, success:function(data) {
$("#txtareaxml").val(data);
if (typeof callback === 'function') {
callback(data);
}
}
, error:function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
// todo add a notification message
}
});
}
$("#taskSaveButton").click(function()
{
xmlFromForm(function () {
$.ajax({ url: "../admin/task-manager2/task/{{task.getID()}}/save/"
, data: {
title:$("#taskTaskname").val(),
active:!!$("#taskTaskActive").attr("checked"),
xml:data
}
, dataType:'json'
, type:"POST"
, async:false
, success:function(data) {
if (data.success) {
$("#taskFormByeBye").submit();
} else {
if (window.console) {
console.log(data.message);
}
alert("{% trans %}An error occured{% endtrans %}");
}
}
, error:function(jqXHR, textStatus, errorThrown) {
alert("Erreur XML:\n\n" + jqXHR.responseText);
}
});
});
});
});
</script>