$()

in alpha/alpha-ui/src/main/resources/static/js/alpha-transaction.js [18:109]


$(document).ready(function () {

  function datatablesRequest(data) {
    for (var i = 0; i < data.columns.length; i++) {
      column = data.columns[i];
      column.searchRegex = column.search.regex;
      column.searchValue = column.search.value;
      delete (column.search);
    }

    // set query parameters
    var queryValue = $('#transaction_config').attr('query');
    if (typeof queryValue !== typeof undefined && queryValue !== false) {
      data.query = queryValue;
    }

    if($('select[name="state_select"]').find('option:selected').text() != 'ALL'){
      data.state = $('select[name="state_select"]').find('option:selected').text()
    }
  }

  var transaction_table = $('#dataTable').DataTable({
    pagingType: "simple_numbers",
    info: true,
    filter: false,
    lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]],
    processing: true,
    serverSide: true,
    order: [[4, "desc"]],
    ajax: {
      url: $('#transaction_config').attr('ajax'),
      type: 'POST',
      data: function (data) {
        datatablesRequest(data);
      }
    },
    language: {
      lengthMenu: "_MENU_",
    },
    columns: [
      {"data": "serviceName"},
      {"data": "instanceId"},
      {"data": "globalTxId"},
      {"data": "subTxSize"},
      {"data": "beginTime"},
      {"data": "durationTime"},
      {"data": "state"}
    ],
    columnDefs: [
      {
        render: function (data, type, row) {
          if (data == 'COMMITTED') {
            return '<span class="text-success">' + data + '</span>'
          } else if (data == 'SUSPENDED') {
            return '<span class="text-danger">' + data + '</span>'
          } else if (data == 'COMPENSATED') {
            return '<span class="text-warning">' + data + '</span>'
          } else {
            return data;
          }
        },
        width: "50px",
        targets: 6
      },{
        render: function (data, type, row) {
          return moment(data).format('LLL');
        },
        targets: 4
      }
    ]
  });

  $('#dataTable tbody').on("click", "tr", function (_event) {
    var data = transaction_table.row(this).data();
    window.location.href = "/ui/transaction/" + data.globalTxId
  });

  // table toolbar add state select & custom layout
  $('#dataTable_wrapper .row:first div:first').removeClass(
      "col-sm-12 col-md-6");
  $('#dataTable_wrapper .row:first div:last').removeClass("col-sm-12 col-md-6");
  $('#dataTable_wrapper .row:first div:first').addClass("col-sm-18 col-md-9");
  $('#dataTable_wrapper .row:first div:last').addClass("col-sm-6 col-md-3");
  var stateSelect = $('#dataTable_wrapper .row:first div:last').append(
      '<select name="state_select" class="custom-select custom-select-sm form-control form-control-sm">'
      + '<option value="ALL">ALL</option><option value="COMMITTED">COMMITTED</option>'
      + '<option value="COMPENSATED">COMPENSATED</option>'
      + '<option value="SUSPENDED">SUSPENDED</option></select>');
  stateSelect.on('change',function(){
    transaction_table.ajax.reload();
  })
});