Skip to content
Snippets Groups Projects
tasks.js 1.6 KiB
Newer Older
$(document).ready(function () {
  function render_task_link(data) {
    // render funtion to create link to Task view page
    if (data === null) {
      return data;
    }
    var url = $SCRIPT_ROOT + "/task/tasks/view/" + data;
    return '<a href="' + url + '">' + data + "</a>";
  $("#allTasks").on("change", function () {
    // reload the data from the Ajax source
    tasks_table.ajax.reload();
  });

  var tasks_table = $("#tasks_table").DataTable({
    ajax: function (data, callback, settings) {
      var allTasks = $("#allTasks").prop("checked");
Benjamin Bertrand's avatar
Benjamin Bertrand committed
      $.getJSON(
        $SCRIPT_ROOT + "/task/_retrieve_tasks?all=" + allTasks,
        function (json) {
Benjamin Bertrand's avatar
Benjamin Bertrand committed
          callback(json);
Benjamin Bertrand's avatar
Benjamin Bertrand committed
    },
    pagingType: "full_numbers",
    pageLength: 20,
    lengthMenu: [
      [20, 50, 100, -1],
      [20, 50, 100, "All"],
    ],
    order: [[2, "desc"]],
    columns: [
      {
        data: "id",
        render: function (data, type, row) {
          return render_task_link(data);
      { data: "name" },
      { data: "created_at" },
      { data: "ended_at" },
      { data: "status" },
      {
        data: null,
        render: function (data, type, row) {
          // render link to AWX job
          if (row.awx_job_id === null) {
            return null;
          }
          return '<a href="' + row.awx_job_url + '">' + row.awx_job_id + "</a>";
      {
        data: "depends_on",
        render: function (data, type, row) {
          return render_task_link(data);
      { data: "command" },
      { data: "user" },
    ],
Benjamin Bertrand's avatar
Benjamin Bertrand committed
  });
});