touch_start_y = null;
}
+function sort_natural(a, b) {
+ a = a.toString();
+ b = b.toString();
+ return a.localeCompare(b, undefined, {numeric: true});
+}
+
$(function() {
W3SideBar.init();
set_sbbr_compatibility();
<th><%[ Actions ]%></th>
</tr>
</thead>
- <tbody id="client_list_body">
- </tbody>
+ <tbody id="client_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th>ClientId</th>
+ <th><%[ Name ]%></th>
+ <th><%[ Uname ]%></th>
+ <th><%[ AutoPrune ]%></th>
+ <th><%[ Job retention ]%></th>
+ <th><%[ File retention ]%></th>
+ <th><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
data: 'jobretention',
render: function (data, type, row) {
var ret;
- if (type == 'display') {
+ if (type == 'display' || type == 'filter') {
var time = Units.format_time_period(data);
ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
} else {
data: 'fileretention',
render: function (data, type, row) {
var ret;
- if (type == 'display') {
+ if (type == 'display' || type == 'filter') {
var time = Units.format_time_period(data);
ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
} else {
className: "dt-center",
targets: [ 1, 4, 5, 6, 7 ]
}],
- order: [2, 'asc']
+ order: [2, 'asc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 5, 6]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 5 || column[0][0] == 6) {
+ column.data().unique().sort(sort_natural).each(function (d, j) {
+ var time = Units.format_time_period(d);
+ var time_f = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
+ select.append('<option value="' + time_f + '">' + time_f + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ if (d) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
+ });
+ }
+ });
+ }
});
}
};
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
- <tbody id="job_for_client_list_body">
- </tbody>
+ <tbody id="job_for_client_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ JobId ]%></th>
+ <th><%[ Name ]%></th>
+ <th><%[ Type ]%></th>
+ <th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center"><%[ Start time ]%></th>
+ <th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Job status ]%></th>
+ <th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Action ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
className: "dt-body-right",
targets: [ 8 ]
}],
- order: [1, 'desc']
+ order: [1, 'desc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 7]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 7) {
+ column.data().unique().sort().each(function (d, j) {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
</tr>
</thead>
<tbody id="fileset_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ Name ]%></th>
+ <th><%[ Director ]%></th>
+ <th class="w3-center"><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
className: "dt-center",
targets: [ 3 ]
}],
- order: [1, 'asc']
+ order: [1, 'asc'],
+ initComplete: function () {
+ this.api().columns([1, 2]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ });
+ }
});
}
};
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
- <tbody id="job_list_body">
- </tbody>
+ <tbody id="job_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ JobId ]%></th>
+ <th><%[ Name ]%></th>
+ <th><%[ Type ]%></th>
+ <th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center"><%[ Start time ]%></th>
+ <th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Job status ]%></th>
+ <th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Action ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<com:Application.Web.Portlets.RunJob ID="RunJobModal" />
data: 'jobid',
render: function (data, type, row) {
var container = document.createElement('DIV');
-
- // job details button
- var btn = document.createElement('BUTTON');
- btn.className = 'w3-button w3-green w3-right';
- btn.type = 'button';
- var i = document.createElement('I');
- i.className = 'fa fa-list-ul';
- btn.title = '<%[ Details ]%>';
- btn.appendChild(i);
- btn.innerHTML += ' ';
- btn.setAttribute('onclick', "document.location.href = '/web/job/history/" + data + "/'");
- container.appendChild(btn);
+ var btn, i;
if (['C', 'R'].indexOf(row.jobstatus) === -1) {
// rerun job button
btn = document.createElement('BUTTON');
- btn.className = 'w3-button w3-green w3-right';
+ btn.className = 'w3-button w3-green';
btn.type = 'button';
i = document.createElement('I');
btn.title = '<%[ Run job again ]%>';
} else {
// cancel job button
btn = document.createElement('BUTTON');
- btn.className = 'w3-button w3-green w3-right';
+ btn.className = 'w3-button w3-green';
btn.type = 'button';
i = document.createElement('I');
btn.title = '<%[ Cancel job ]%>';
btn.setAttribute('onclick', 'cancel_job_callback.setCallbackParameter(' + data + '); cancel_job_callback.dispatch();');
}
container.appendChild(btn);
+ var space = document.createTextNode(' ');
+ container.appendChild(space);
+
+ // job details button
+ btn = document.createElement('BUTTON');
+ btn.className = 'w3-button w3-green';
+ btn.type = 'button';
+ i = document.createElement('I');
+ i.className = 'fa fa-list-ul';
+ btn.title = '<%[ Details ]%>';
+ btn.appendChild(i);
+ btn.innerHTML += ' ';
+ btn.setAttribute('onclick', "document.location.href = '/web/job/history/" + data + "/'");
+ container.appendChild(btn);
return container.outerHTML;
}
}
className: "dt-body-right",
targets: [ 8 ]
}],
- order: [1, 'desc']
+ order: [1, 'desc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 7]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 7) {
+ column.data().unique().sort().each(function (d, j) {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<th><%[ Actions ]%></th>
</tr>
</thead>
- <tbody id="job_history_list_body">
- </tbody>
+ <tbody id="job_history_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ Name ]%></th>
+ <th><%[ Director ]%></th>
+ <th><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<com:Application.Web.Portlets.RunJob ID="RunJobModal" />
className: "dt-center",
targets: [ 3 ]
}],
- order: [1, 'asc']
+ order: [1, 'asc'],
+ initComplete: function () {
+ this.api().columns([1, 2]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ column.data().unique().sort().each(function (d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ });
+ }
});
}
};
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
- <tbody id="job_history_list_body">
- </tbody>
+ <tbody id="job_history_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ JobId ]%></th>
+ <th><%[ Name ]%></th>
+ <th><%[ Type ]%></th>
+ <th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center"><%[ Start time ]%></th>
+ <th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Job status ]%></th>
+ <th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Action ]%></th>
+ </tr>
+ </tfoot>
</table>
<script type="text/javascript">
var oJobHistoryList = {
className: "dt-body-right",
targets: [ 8 ]
}],
- order: [1, 'desc']
+ order: [1, 'desc'],
+ initComplete: function () {
+ this.api().columns([3, 4, 7]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 7) {
+ column.data().unique().sort().each(function (d, j) {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<th><%[ Actions ]%></th>
</tr>
</thead>
- <tbody id="pool_list_body">
- </tbody>
+ <tbody id="pool_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th>PoolId</th>
+ <th><%[ Name ]%></th>
+ <th><%[ No. vols ]%></th>
+ <th><%[ Max. vols ]%></th>
+ <th><%[ Vol. retention ]%></th>
+ <th><%[ AutoPrune ]%></th>
+ <th><%[ Recycle ]%></th>
+ <th><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
data: 'volretention',
render: function (data, type, row) {
var ret;
- if (type == 'display') {
+ if (type == 'display' || type == 'filter') {
var time = Units.format_time_period(data);
ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
} else {
className: "dt-center",
targets: [ 1, 3, 4, 6, 7, 8 ]
}],
- order: [2, 'asc']
+ order: [2, 'asc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 5, 6, 7]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if ([3, 4].indexOf(column[0][0]) !== -1) {
+ column.cells('', column[0]).render('display').unique().sort(sort_natural).each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ } else if (column[0][0] == 5) {
+ column.data().unique().sort(sort_natural).each(function (d, j) {
+ var time = Units.format_time_period(d);
+ var time_f = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
+ select.append('<option value="' + time_f + '">' + time_f + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<th><%[ Actions ]%></th>
</tr>
</thead>
- <tbody id="volume_list_body">
- </tbody>
+ <tbody id="volume_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th>MediaId</th>
+ <th><%[ Name ]%></th>
+ <th><%[ Slot ]%></th>
+ <th>InChanger</th>
+ <th><%[ Vol. status ]%></th>
+ <th>MediaType</th>
+ <th><%[ Last written ]%></th>
+ <th><%[ Vol. jobs ]%></th>
+ <th><%[ Vol. bytes ]%></th>
+ <th><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<div class="w3-container tab_item" id="pool_config" style="display: none">
data: 'volbytes',
render: function (data, type, row) {
var s;
- if (type == 'display') {
+ if (type == 'display' || type == 'filter') {
s = Units.get_formatted_size(data)
} else {
s = data;
className: "dt-body-right",
targets: [ 9 ]
}],
- order: [3, 'asc']
+ order: [3, 'asc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 5, 6]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 3) {
+ column.cells('', column[0]).render('display').unique().sort(sort_natural).each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<p><%[ Backup for restore: ]%></p>
<table id="job_to_restore_list" style="width: 100%">
<thead>
- <th></th>
- <th>JobId</th>
- <th><%[ Job name ]%></th>
- <th><%[ Type ]%></th>
- <th><%[ Level ]%></th>
- <th><%[ Job status ]%></th>
- <th><%[ Size ]%></th>
- <th><%[ Files ]%></th>
- <th><%[ End time ]%></th>
- <th><%[ Select ]%></th>
+ <tr>
+ <th></th>
+ <th>JobId</th>
+ <th><%[ Job name ]%></th>
+ <th><%[ Type ]%></th>
+ <th><%[ Level ]%></th>
+ <th><%[ Job status ]%></th>
+ <th><%[ Size ]%></th>
+ <th><%[ Files ]%></th>
+ <th><%[ End time ]%></th>
+ <th><%[ Select ]%></th>
+ </tr>
</thead>
- <tbody id="job_to_restore_list_body">
- </tbody>
+ <tbody id="job_to_restore_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th>JobId</th>
+ <th><%[ Job name ]%></th>
+ <th><%[ Type ]%></th>
+ <th><%[ Level ]%></th>
+ <th><%[ Job status ]%></th>
+ <th><%[ Size ]%></th>
+ <th><%[ Files ]%></th>
+ <th><%[ End time ]%></th>
+ <th><%[ Select ]%></th>
+ </tr>
+ </tfoot>
</table>
<script type="text/javascript">
var oJobsToRestoreList = {
data: 'name',
responsivePriority: 3,
render: function(data, type, row) {
- var i = document.createElement('I');
- i.className = 'fa fa-external-link-alt fa-xs';
- var a = document.createElement('A');
- a.href = '/web/job/' + encodeURIComponent(data) + '/';
- a.appendChild(i);
- a.title = '<%[ Go to job %job ]%>'.replace('%job', data);
- return (data + ' ' + a.outerHTML);
+ var ret;
+ if (type == 'display') {
+ var i = document.createElement('I');
+ i.className = 'fa fa-external-link-alt fa-xs';
+ var a = document.createElement('A');
+ a.href = '/web/job/' + encodeURIComponent(data) + '/';
+ a.appendChild(i);
+ a.title = '<%[ Go to job %job ]%>'.replace('%job', data);
+ ret = (data + ' ' + a.outerHTML);
+ } else {
+ ret = data;
+ }
+ return ret;
}
},
{
className: "dt-body-right",
targets: [ 6 ]
}],
- order: [1, 'desc']
+ order: [1, 'desc'],
+ initComplete: function () {
+ this.api().columns([2, 4, 5]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] === 2 || column[0][0] == 5) {
+ column.data().unique().sort().each(function (d, j) {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<th class="w3-center"><%[ Actions ]%></th>
</tr>
</thead>
- <tbody id="storage_list_body">
- </tbody>
+ <tbody id="storage_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th>StorageId</th>
+ <th><%[ Name ]%></th>
+ <th><%[ Autochanger ]%></th>
+ <th class="w3-center"><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
className: "dt-center",
targets: [ 1, 3, 4 ]
}],
- order: [1, 'asc']
+ order: [1, 'asc'],
+ initComplete: function () {
+ this.api().columns([2, 3]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ });
+ }
});
}
};
<th><%[ Actions ]%></th>
</tr>
</thead>
- <tbody id="pool_list_body">
- </tbody>
+ <tbody id="pool_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th>MediaId</th>
+ <th><%[ Name ]%></th>
+ <th><%[ Slot ]%></th>
+ <th>InChanger</th>
+ <th><%[ Vol. status ]%></th>
+ <th>MediaType</th>
+ <th><%[ Last written ]%></th>
+ <th><%[ Vol. bytes ]%></th>
+ <th><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
className: "dt-body-right",
targets: [ 8 ]
}],
- order: [3, 'asc']
+ order: [3, 'asc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 5, 6]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 3) {
+ column.cells('', column[0]).render('display').unique().sort(sort_natural).each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
- <tbody id="jobs_on_volume_list_body">
- </tbody>
+ <tbody id="jobs_on_volume_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ JobId ]%></th>
+ <th><%[ Name ]%></th>
+ <th><%[ Type ]%></th>
+ <th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center"><%[ Start time ]%></th>
+ <th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Job status ]%></th>
+ <th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Action ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<div class="w3-container tab_item" id="volume_config" style="display: none">
className: "dt-body-right",
targets: [ 8 ]
}],
- order: [1, 'desc']
+ order: [1, 'desc'],
+ initComplete: function () {
+ this.api().columns([2, 3, 4, 7]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 7) {
+ column.data().unique().sort().each(function (d, j) {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
<th><%[ Schedule ]%></th>
</tr>
</thead>
- <tbody id="schedule_list_body">
- </tbody>
+ <tbody id="schedule_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ Level ]%></th>
+ <th><%[ Type ]%></th>
+ <th><%[ Priority ]%></th>
+ <th><%[ Scheduled ]%></th>
+ <%=empty($this->Job) ? '<th>' . Prado::localize('Job name') . '</th>': ''%>
+ <th><%[ Client ]%></th>
+ <th><%[ FileSet ]%></th>
+ <th><%[ Schedule ]%></th>
+ </tr>
+ </tfoot>
</table>
</div>
<script type="text/javascript">
responsivePriority: 5,
targets: 2
}],
- order: [4, 'asc']
+ order: [4, 'asc'],
+ initComplete: function () {
+ this.api().columns().every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = $.fn.dataTable.util.escapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ if (column[0][0] == 3) {
+ column.cells('', column[0]).render('display').unique().sort(sort_natural).each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ } else {
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ });
+ }
+ });
+ }
});
}
};
border-bottom: none !important;
}
+table.dataTable tbody td {
+ vertical-align: middle;
+}
+
table.dataTable.no-footer {
border-bottom: none !important;
}
}
th.action_col, td.action_col {
- width: 90px !important;
+ width: 110px !important;
}
td.action_col button {
- margin-right: 3px;
+ display: inline-block;
+ margin: 0 auto;
}
.hide {