2012-06-03 09:43:49 +02:00
|
|
|
{% extends "admin/change_list.html" %}
|
|
|
|
|
|
|
|
{% load url from future %}
|
|
|
|
|
|
|
|
{% block object-tools %}
|
|
|
|
<div>
|
|
|
|
<span id="task_selector"></span>
|
|
|
|
<form id="task_data"></form>
|
|
|
|
<a href="#" id="task_launch">Launch task</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
(function($){
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
|
|
|
$.get("{% url "registered_tasks" %}", function (data) {
|
|
|
|
var selector = $("<select/>");
|
|
|
|
selector.append(
|
|
|
|
$("<option/>").text("-------------").attr("selected", "selected")
|
|
|
|
);
|
2012-06-03 17:38:51 +02:00
|
|
|
$.each(data.tasks, function(task) {
|
2012-06-03 09:43:49 +02:00
|
|
|
var t = data["tasks"][task];
|
|
|
|
selector.append(
|
|
|
|
$("<option/>").val(task).text(task)
|
|
|
|
)
|
2012-06-03 17:38:51 +02:00
|
|
|
});
|
2012-06-03 09:43:49 +02:00
|
|
|
|
|
|
|
selector.change(function() {
|
|
|
|
var task = data["tasks"][$(this).val()];
|
2012-06-03 17:38:51 +02:00
|
|
|
$("#task_data").empty();
|
|
|
|
|
2012-06-03 09:43:49 +02:00
|
|
|
if (task.args) {
|
2012-06-03 17:38:51 +02:00
|
|
|
$.each(task.args, function(i) {
|
|
|
|
var arg = task.args[i]
|
|
|
|
, arg_input = $("<input/>").attr("name", arg)
|
|
|
|
, default_arg;
|
2012-06-03 09:43:49 +02:00
|
|
|
|
|
|
|
if (task.defaults) {
|
|
|
|
var default_arg_i = task.args.length - 1 - i;
|
|
|
|
if (task.defaults[default_arg_i] !== undefined) {
|
|
|
|
default_arg = task.defaults[default_arg_i];
|
2012-06-08 14:23:37 +02:00
|
|
|
arg_input.val(default_arg);
|
|
|
|
|
2012-06-03 09:43:49 +02:00
|
|
|
if (task.defaults_types && task.defaults_types[default_arg_i] === "bool") {
|
2012-06-08 14:23:37 +02:00
|
|
|
arg_input.attr("type", "checkbox").attr("checked", default_arg).val("true");
|
2012-06-03 09:43:49 +02:00
|
|
|
}
|
|
|
|
else {
|
2012-06-03 17:38:51 +02:00
|
|
|
return true;
|
2012-06-03 09:43:49 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$("#task_data").append(
|
|
|
|
$("<label/>").text(arg + ": ").attr("for", arg)
|
|
|
|
).append(
|
|
|
|
arg_input
|
|
|
|
);
|
2012-06-03 17:38:51 +02:00
|
|
|
});
|
2012-06-03 09:43:49 +02:00
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
$("#task_selector").append(selector);
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#task_launch").click(function() {
|
|
|
|
var task_name = $("#task_selector").find("select").val();
|
|
|
|
var data = $("#task_data").serialize();
|
|
|
|
var url = "{% url "apply_task" "task_name" %}";
|
|
|
|
|
|
|
|
$.post(url.replace("task_name", task_name), data, function() {
|
2012-06-08 14:43:18 +02:00
|
|
|
alert("Submitted!");
|
|
|
|
location.reload();
|
2012-06-03 09:43:49 +02:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2012-06-27 10:15:30 +02:00
|
|
|
setTimeout(location.reload, 30000);
|
2012-06-08 14:43:18 +02:00
|
|
|
|
2012-06-03 09:43:49 +02:00
|
|
|
});
|
|
|
|
})(django.jQuery);
|
|
|
|
</script>
|
|
|
|
{% endblock %}
|