}
}
+/**
+ * Used to escape values before putting them into regular expression.
+ * Dedicated to use in table values.
+ */
+dtEscapeRegex = function(value) {
+ if (typeof(value) != 'string' && typeof(value.toString) == 'function') {
+ value = value.toString();
+ }
+ return $.fn.dataTable.util.escapeRegex(value);
+};
+
$(function() {
W3SideBar.init();
set_sbbr_compatibility();
msgid "The resource has been created successfully."
msgstr "The resource has been created successfully."
+
+msgid "Scheduled time"
+msgstr "Scheduled time"
+
+msgid "Real end time"
+msgstr "Real end time"
+
+msgid "Read bytes"
+msgstr "Read bytes"
+
+msgid "Job errors"
+msgstr "Job errors"
+
+msgid "Job missing files"
+msgstr "Job missing files"
+
+msgid "Purged files"
+msgstr "Purged files"
+
+msgid "Has base"
+msgstr "Has base"
+
+msgid "Reviewed"
+msgstr "Reviewed"
+
+msgid "Comment"
+msgstr "Comment"
+
+msgid "File table"
+msgstr "File table"
+
+msgid "Label date"
+msgstr "Label date"
+
+msgid "Vol. blocks"
+msgstr "Vol. blocks"
+
+msgid "Vol. abytes"
+msgstr "Vol. abytes"
+
+msgid "Vol. apadding"
+msgstr "Vol. apadding"
+
+msgid "Vol. hole bytes"
+msgstr "Vol. hole bytes"
+
+msgid "Vol. holes"
+msgstr "Vol. holes"
+
+msgid "Vol. parts"
+msgstr "Vol. parts"
+
+msgid "Vol. writes"
+msgstr "Vol. writes"
+
+msgid "Vol. capacity bytes"
+msgstr "Vol. capacity bytes"
+
+msgid "Storage"
+msgstr "Storage"
+
+msgid "Media addressing"
+msgstr "Media addressing"
+
+msgid "Vol. read time"
+msgstr "Vol. read time"
+
+msgid "Vol. write time"
+msgstr "Vol. write time"
+
+msgid "End file"
+msgstr "End file"
+
+msgid "End block"
+msgstr "End block"
+
+msgid "Initial write"
+msgstr "Initial write"
+
+msgid "Vol. type"
+msgstr "Vol. type"
+
+msgid "Vol. cloud parts"
+msgstr "Vol. cloud parts"
+
+msgid "Last part bytes"
+msgstr "Last part bytes"
+
+msgid "Cache retention"
+msgstr "Cache retention"
msgid "The resource has been created successfully."
msgstr "The resource has been created successfully."
+
+msgid "Scheduled time"
+msgstr "Scheduled time"
+
+msgid "Real end time"
+msgstr "Real end time"
+
+msgid "Read bytes"
+msgstr "Read bytes"
+
+msgid "Job errors"
+msgstr "Job errors"
+
+msgid "Job missing files"
+msgstr "Job missing files"
+
+msgid "Purged files"
+msgstr "Purged files"
+
+msgid "Has base"
+msgstr "Has base"
+
+msgid "Reviewed"
+msgstr "Reviewed"
+
+msgid "Comment"
+msgstr "Comment"
+
+msgid "File table"
+msgstr "File table"
+
+msgid "Label date"
+msgstr "Label date"
+
+msgid "Vol. blocks"
+msgstr "Vol. blocks"
+
+msgid "Vol. abytes"
+msgstr "Vol. abytes"
+
+msgid "Vol. apadding"
+msgstr "Vol. apadding"
+
+msgid "Vol. hole bytes"
+msgstr "Vol. hole bytes"
+
+msgid "Vol. holes"
+msgstr "Vol. holes"
+
+msgid "Vol. parts"
+msgstr "Vol. parts"
+
+msgid "Vol. writes"
+msgstr "Vol. writes"
+
+msgid "Vol. capacity bytes"
+msgstr "Vol. capacity bytes"
+
+msgid "Storage"
+msgstr "Storage"
+
+msgid "Media addressing"
+msgstr "Media addressing"
+
+msgid "Vol. read time"
+msgstr "Vol. read time"
+
+msgid "Vol. write time"
+msgstr "Vol. write time"
+
+msgid "End file"
+msgstr "End file"
+
+msgid "End block"
+msgstr "End block"
+
+msgid "Initial write"
+msgstr "Initial write"
+
+msgid "Vol. type"
+msgstr "Vol. type"
+
+msgid "Vol. cloud parts"
+msgstr "Vol. cloud parts"
+
+msgid "Last part bytes"
+msgstr "Last part bytes"
+
+msgid "Cache retention"
+msgstr "Cache retention"
msgid "The resource has been created successfully."
msgstr "Zasób został utworzony pomyślnie."
+msgid "Scheduled time"
+msgstr "Scheduled time"
+
+msgid "Real end time"
+msgstr "Real end time"
+
+msgid "Read bytes"
+msgstr "Przeczyt. bajtów"
+
+msgid "Job errors"
+msgstr "Błędy zadania"
+
+msgid "Job missing files"
+msgstr "Brak. pliki zad."
+
+msgid "Purged files"
+msgstr "Wyczy. plików"
+
+msgid "Has base"
+msgstr "Ma bazę"
+
+msgid "Reviewed"
+msgstr "Przejrzane"
+
+msgid "Comment"
+msgstr "Komentarz"
+
+msgid "File table"
+msgstr "Tabela plików"
+
+msgid "Label date"
+msgstr "Data etykiety"
+
+msgid "Vol. blocks"
+msgstr "Bloki wol."
+
+msgid "Vol. abytes"
+msgstr "abytes wol."
+
+msgid "Vol. apadding"
+msgstr "Apadding wol."
+
+msgid "Vol. hole bytes"
+msgstr "Bajtów dziur wol."
+
+msgid "Vol. holes"
+msgstr "Dziur wol."
+
+msgid "Vol. parts"
+msgstr "Części wol."
+
+msgid "Vol. writes"
+msgstr "Zapisów wol."
+
+msgid "Vol. capacity bytes"
+msgstr "Pojemność wol."
+
+msgid "Storage"
+msgstr "Magazyn"
+
+msgid "Media addressing"
+msgstr "Adresowanie mediów"
+
+msgid "Vol. read time"
+msgstr "Czas czytania wol."
+
+msgid "Vol. write time"
+msgstr "Czas zapisu na wol."
+
+msgid "End file"
+msgstr "Koniec pliku"
+
+msgid "End block"
+msgstr "Koniec bloku"
+
+msgid "Initial write"
+msgstr "Wstępny zapis"
+
+msgid "Vol. type"
+msgstr "Typ wol."
+
+msgid "Vol. cloud parts"
+msgstr "Części wol. cloud"
+
+msgid "Last part bytes"
+msgstr "Bajtów ostatniej części"
+
+msgid "Cache retention"
+msgstr "Retencja cache"
msgid "The resource has been created successfully."
msgstr "O recurso foi criado com sucesso."
+msgid "Scheduled time"
+msgstr "Scheduled time"
+
+msgid "Real end time"
+msgstr "Real end time"
+
+msgid "Read bytes"
+msgstr "Read bytes"
+
+msgid "Job errors"
+msgstr "Job errors"
+
+msgid "Job missing files"
+msgstr "Job missing files"
+
+msgid "Purged files"
+msgstr "Purged files"
+
+msgid "Has base"
+msgstr "Has base"
+
+msgid "Reviewed"
+msgstr "Reviewed"
+
+msgid "Comment"
+msgstr "Comment"
+
+msgid "File table"
+msgstr "File table"
+
+msgid "Label date"
+msgstr "Label date"
+
+msgid "Vol. blocks"
+msgstr "Vol. blocks"
+
+msgid "Vol. abytes"
+msgstr "Vol. abytes"
+
+msgid "Vol. apadding"
+msgstr "Vol. apadding"
+
+msgid "Vol. hole bytes"
+msgstr "Vol. hole bytes"
+
+msgid "Vol. holes"
+msgstr "Vol. holes"
+
+msgid "Vol. parts"
+msgstr "Vol. parts"
+
+msgid "Vol. writes"
+msgstr "Vol. writes"
+
+msgid "Vol. capacity bytes"
+msgstr "Vol. capacity bytes"
+
+msgid "Storage"
+msgstr "Storage"
+
+msgid "Media addressing"
+msgstr "Media addressing"
+
+msgid "Vol. read time"
+msgstr "Vol. read time"
+
+msgid "Vol. write time"
+msgstr "Vol. write time"
+
+msgid "End file"
+msgstr "End file"
+
+msgid "End block"
+msgstr "End block"
+
+msgid "Initial write"
+msgstr "Initial write"
+
+msgid "Vol. type"
+msgstr "Vol. type"
+
+msgid "Vol. cloud parts"
+msgstr "Vol. cloud parts"
+
+msgid "Last part bytes"
+msgstr "Last part bytes"
+
+msgid "Cache retention"
+msgstr "Cache retention"
var table = $('#' + this.ids.client_list).DataTable({
data: oData.clients,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function () {
- var val = $.fn.dataTable.util.escapeRegex(
+ var val = dtEscapeRegex(
$(this).val()
);
column
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>');
+ if (column.search() == '^' + dtEscapeRegex(time_f) + '$') {
+ select.append('<option value="' + time_f + '" selected>' + time_f + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
}
});
}
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</tfoot>
this.table = $('#' + this.ids.job_list).DataTable({
data: this.data,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
{
data: 'level',
render: function(data, type, row) {
- return JobLevel.get_level(data);
+ return (['R', 'D'].indexOf(row.type) === -1 ? JobLevel.get_level(data) : '-');
}
},
+ {
+ data: 'clientid',
+ visible: false
+ },
+ {
+ data: 'client',
+ visible: false
+ },
+ {
+ data: 'schedtime',
+ visible: false
+ },
{data: 'starttime'},
{data: 'endtime'},
+ {
+ data: 'realendtime',
+ visible: false
+ },
+ {
+ data: 'jobtdate',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'volsessionid',
+ visible: false
+ },
+ {
+ data: 'volsessiontime',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
{
data: 'jobstatus',
render: function (data, type, row) {
return s;
}
},
+ {
+ data: 'readbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
{data: 'jobfiles'},
+ {
+ data: 'joberrors',
+ visible: false
+ },
+ {
+ data: 'jobmissingfiles',
+ visible: false
+ },
+ {
+ data: 'poolid',
+ visible: false
+ },
+ {
+ data: 'pool',
+ visible: false
+ },
+ {
+ data: 'filesetid',
+ visible: false
+ },
+ {
+ data: 'fileset',
+ visible: false
+ },
+ {
+ data: 'priorjobid',
+ visible: false
+ },
+ {
+ data: 'purgedfiles',
+ visible: false
+ },
+ {
+ data: 'hasbase',
+ visible: false
+ },
+ {
+ data: 'reviewed',
+ visible: false
+ },
+ {
+ data: 'comment',
+ visible: false
+ },
+ {
+ data: 'filetable',
+ visible: false
+ },
{
data: 'jobid',
render: function (data, type, row) {
orderable: false,
targets: 0
},
+ {
+ className: 'action_col',
+ orderable: false,
+ targets: [ 30 ]
+ },
{
className: "dt-center",
- targets: [ 1, 3, 4, 5, 6, 7, 9, 10 ]
+ targets: [ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ]
},
{
className: "dt-body-right",
- targets: [ 8 ]
+ targets: [ 15, 16 ]
}],
order: [1, 'desc'],
initComplete: function () {
- this.api().columns([2, 3, 4, 7]).every(function () {
+ this.api().columns([2, 3, 4, 14]).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(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
- if (column[0][0] == 7) {
+ if (column[0][0] == 14) {
column.data().unique().sort().each(function (d, j) {
- select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
<button type="button" class="w3-button w3-green<%=empty($_SESSION['dir']) ? ' hide': ''%>" onclick="document.location.href='<%=$this->Service->constructUrl('NewResource', array('component_type' => 'dir', 'component_name' => $_SESSION['dir'], 'resource_type' => 'Fileset'))%>';"><i class="fa fa-plus"></i> <%[ Add fileset ]%></button>
</div>
<div class="w3-container">
- <table id="fileset_list" class="w3-table w3-striped w3-hoverable w3-white w3-margin-bottom">
+ <table id="fileset_list" class="w3-table w3-striped w3-hoverable w3-white w3-margin-bottom" style="width: 100%">
<thead>
<tr>
<th></th>
var table = $('#' + this.ids.fileset_list).DataTable({
data: <%=json_encode($this->filesets)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function () {
- var val = $.fn.dataTable.util.escapeRegex(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.draw();
});
column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
- select.append('<option value="' + d + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
});
}
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</tfoot>
this.table = $('#' + this.ids.job_list).DataTable({
data: this.data,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
return (['R', 'D'].indexOf(row.type) === -1 ? JobLevel.get_level(data) : '-');
}
},
+ {
+ data: 'clientid',
+ visible: false
+ },
+ {
+ data: 'client',
+ visible: false
+ },
+ {
+ data: 'schedtime',
+ visible: false
+ },
{data: 'starttime'},
{data: 'endtime'},
+ {
+ data: 'realendtime',
+ visible: false
+ },
+ {
+ data: 'jobtdate',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'volsessionid',
+ visible: false
+ },
+ {
+ data: 'volsessiontime',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
{
data: 'jobstatus',
render: function (data, type, row) {
return s;
}
},
+ {
+ data: 'readbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
{data: 'jobfiles'},
+ {
+ data: 'joberrors',
+ visible: false
+ },
+ {
+ data: 'jobmissingfiles',
+ visible: false
+ },
+ {
+ data: 'poolid',
+ visible: false
+ },
+ {
+ data: 'pool',
+ visible: false
+ },
+ {
+ data: 'filesetid',
+ visible: false
+ },
+ {
+ data: 'fileset',
+ visible: false
+ },
+ {
+ data: 'priorjobid',
+ visible: false
+ },
+ {
+ data: 'purgedfiles',
+ visible: false
+ },
+ {
+ data: 'hasbase',
+ visible: false
+ },
+ {
+ data: 'reviewed',
+ visible: false
+ },
+ {
+ data: 'comment',
+ visible: false
+ },
+ {
+ data: 'filetable',
+ visible: false
+ },
{
data: 'jobid',
render: function (data, type, row) {
{
className: 'action_col',
orderable: false,
- targets: [ 10 ]
+ targets: [ 30 ]
},
{
className: "dt-center",
- targets: [ 1, 3, 4, 5, 6, 7, 9, 10 ]
+ targets: [ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ]
},
{
className: "dt-body-right",
- targets: [ 8 ]
+ targets: [ 15, 16 ]
}],
order: [1, 'desc'],
initComplete: function () {
- this.api().columns([2, 3, 4, 7]).every(function () {
+ this.api().columns([2, 3, 4, 5, 14]).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(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
- if (column[0][0] == 7) {
+ if (column[0][0] == 14) {
column.data().unique().sort().each(function (d, j) {
- select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
var table = $('#' + this.ids.job_history_list).DataTable({
data: <%=json_encode($this->jobs)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function () {
- var val = $.fn.dataTable.util.escapeRegex(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.draw();
});
column.data().unique().sort().each(function (d, j) {
- select.append('<option value="' + d + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
});
}
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</tfoot>
this.table = $('#' + this.ids.job_list).DataTable({
data: this.data,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
{
data: 'level',
render: function(data, type, row) {
- return JobLevel.get_level(data);
+ return (['R', 'D'].indexOf(row.type) === -1 ? JobLevel.get_level(data) : '-');
}
},
+ {
+ data: 'clientid',
+ visible: false
+ },
+ {
+ data: 'client',
+ visible: false
+ },
+ {
+ data: 'schedtime',
+ visible: false
+ },
{data: 'starttime'},
{data: 'endtime'},
+ {
+ data: 'realendtime',
+ visible: false
+ },
+ {
+ data: 'jobtdate',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'volsessionid',
+ visible: false
+ },
+ {
+ data: 'volsessiontime',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
{
data: 'jobstatus',
render: function (data, type, row) {
return s;
}
},
+ {
+ data: 'readbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
{data: 'jobfiles'},
+ {
+ data: 'joberrors',
+ visible: false
+ },
+ {
+ data: 'jobmissingfiles',
+ visible: false
+ },
+ {
+ data: 'poolid',
+ visible: false
+ },
+ {
+ data: 'pool',
+ visible: false
+ },
+ {
+ data: 'filesetid',
+ visible: false
+ },
+ {
+ data: 'fileset',
+ visible: false
+ },
+ {
+ data: 'priorjobid',
+ visible: false
+ },
+ {
+ data: 'purgedfiles',
+ visible: false
+ },
+ {
+ data: 'hasbase',
+ visible: false
+ },
+ {
+ data: 'reviewed',
+ visible: false
+ },
+ {
+ data: 'comment',
+ visible: false
+ },
+ {
+ data: 'filetable',
+ visible: false
+ },
{
data: 'jobid',
render: function (data, type, row) {
orderable: false,
targets: 0
},
+ {
+ className: 'action_col',
+ orderable: false,
+ targets: [ 30 ]
+ },
{
className: "dt-center",
- targets: [ 1, 3, 4, 5, 6, 7, 9, 10 ]
+ targets: [ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ]
},
{
className: "dt-body-right",
- targets: [ 8 ]
+ targets: [ 15, 16 ]
}],
order: [1, 'desc'],
initComplete: function () {
- this.api().columns([3, 4, 7]).every(function () {
+ this.api().columns([3, 4, 5, 14]).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(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
- if (column[0][0] == 7) {
+ if (column[0][0] == 14) {
column.data().unique().sort().each(function (d, j) {
- select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
var table = $('#' + this.ids.pool_list).DataTable({
data: oData.pools,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function () {
- var val = $.fn.dataTable.util.escapeRegex(
+ var val = dtEscapeRegex(
$(this).val()
);
column
});
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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(time_f) + '$') {
+ select.append('<option value="' + time_f + '" selected>' + time_f + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
<th>MediaId</th>
<th><%[ Name ]%></th>
<th><%[ Slot ]%></th>
+ <th>PoolId</th>
+ <th><%[ Pool ]%></th>
<th>InChanger</th>
+ <th>StorageId</th>
+ <th><%[ Storage ]%></th>
+ <th>DeviceId</th>
<th><%[ Vol. status ]%></th>
+ <th><%[ Enabled ]%></th>
+ <th><%[ Recycle ]%></th>
<th>MediaType</th>
+ <th>MediaTypeId</th>
+ <th>LabelType</th>
+ <th><%[ First written ]%></th>
<th><%[ Last written ]%></th>
- <th><%[ Vol. jobs ]%></th>
<th><%[ Vol. bytes ]%></th>
+ <th><%[ Max. vol. bytes ]%></th>
+ <th><%[ Max. vol. jobs ]%></th>
+ <th><%[ Max. vol. files ]%></th>
+ <th><%[ Vol. capacity bytes ]%></th>
+ <th><%[ Vol. abytes ]%></th>
+ <th><%[ Vol. apadding ]%></th>
+ <th><%[ Vol. hole bytes ]%></th>
+ <th><%[ Vol. holes ]%></th>
+ <th><%[ Vol. parts ]%></th>
+ <th><%[ Vol. errors ]%></th>
+ <th><%[ Vol. writes ]%></th>
+ <th><%[ Label date ]%></th>
+ <th><%[ Vol. jobs ]%></th>
+ <th><%[ Vol. files ]%></th>
+ <th><%[ Vol. blocks ]%></th>
+ <th><%[ Vol. mounts ]%></th>
+ <th><%[ Action on purge ]%></th>
+ <th><%[ Vol. retention ]%></th>
+ <th><%[ Cache retention ]%></th>
+ <th><%[ Vol. use duration ]%></th>
+ <th><%[ Media addressing ]%></th>
+ <th><%[ Vol. read time ]%></th>
+ <th><%[ Vol. write time ]%></th>
+ <th><%[ Vol. type ]%></th>
+ <th><%[ Vol. cloud parts ]%></th>
+ <th><%[ Last part bytes ]%></th>
+ <th><%[ End file ]%></th>
+ <th><%[ End block ]%></th>
+ <th>LocationId</th>
+ <th><%[ Recycle count ]%></th>
+ <th><%[ Initial write ]%></th>
+ <th>ScratchPoolId</th>
+ <th><%[ Scratch pool ]%></th>
+ <th>RecyclePoolId</th>
+ <th><%[ Recycle pool ]%></th>
+ <th><%[ Comment ]%></th>
+ <th><%[ When expire ]%></th>
<th><%[ Actions ]%></th>
</tr>
</thead>
<th>MediaId</th>
<th><%[ Name ]%></th>
<th><%[ Slot ]%></th>
+ <th>PoolId</th>
+ <th><%[ Pool ]%></th>
<th>InChanger</th>
+ <th>StorageId</th>
+ <th><%[ Storage ]%></th>
+ <th>DeviceId</th>
<th><%[ Vol. status ]%></th>
+ <th><%[ Enabled ]%></th>
+ <th><%[ Recycle ]%></th>
<th>MediaType</th>
+ <th>MediaTypeId</th>
+ <th>LabelType</th>
+ <th><%[ First written ]%></th>
<th><%[ Last written ]%></th>
- <th><%[ Vol. jobs ]%></th>
<th><%[ Vol. bytes ]%></th>
+ <th><%[ Max. vol. bytes ]%></th>
+ <th><%[ Max. vol. jobs ]%></th>
+ <th><%[ Max. vol. files ]%></th>
+ <th><%[ Vol. capacity bytes ]%></th>
+ <th><%[ Vol. abytes ]%></th>
+ <th><%[ Vol. apadding ]%></th>
+ <th><%[ Vol. hole bytes ]%></th>
+ <th><%[ Vol. holes ]%></th>
+ <th><%[ Vol. parts ]%></th>
+ <th><%[ Vol. errors ]%></th>
+ <th><%[ Vol. writes ]%></th>
+ <th><%[ Label date ]%></th>
+ <th><%[ Vol. jobs ]%></th>
+ <th><%[ Vol. files ]%></th>
+ <th><%[ Vol. blocks ]%></th>
+ <th><%[ Vol. mounts ]%></th>
+ <th><%[ Action on purge ]%></th>
+ <th><%[ Vol. retention ]%></th>
+ <th><%[ Cache retention ]%></th>
+ <th><%[ Vol. use duration ]%></th>
+ <th><%[ Media addressing ]%></th>
+ <th><%[ Vol. read time ]%></th>
+ <th><%[ Vol. write time ]%></th>
+ <th><%[ Vol. type ]%></th>
+ <th><%[ Vol. cloud parts ]%></th>
+ <th><%[ Last part bytes ]%></th>
+ <th><%[ End file ]%></th>
+ <th><%[ End block ]%></th>
+ <th>LocationId</th>
+ <th><%[ Recycle count ]%></th>
+ <th><%[ Initial write ]%></th>
+ <th>ScratchPoolId</th>
+ <th><%[ Scratch pool ]%></th>
+ <th>RecyclePoolId</th>
+ <th><%[ Recycle pool ]%></th>
+ <th><%[ Comment ]%></th>
+ <th><%[ When expire ]%></th>
<th><%[ Actions ]%></th>
</tr>
</tfoot>
this.table = $('#' + this.ids.volume_list).DataTable({
data: <%=json_encode($this->volumes_in_pool)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
},
{data: 'mediaid'},
{data: 'volumename'},
+ {data: 'slot'},
{
- data: 'slot'
+ data: 'poolid',
+ visible: false
+ },
+ {
+ data: 'pool',
+ visible: false
},
{
data: 'inchanger',
return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
}
},
+ {
+ data: 'storageid',
+ visible: false
+ },
+ {
+ data: 'storage',
+ visible: false
+ },
+ {
+ data: 'deviceid',
+ visible: false
+ },
{data: 'volstatus'},
+ {
+ data: 'enabled',
+ render: function(data, type, row) {
+ return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
+ },
+ visible: false
+ },
+ {
+ data: 'recycle',
+ render: function(data, type, row) {
+ return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
+ },
+ visible: false
+ },
{data: 'mediatype'},
+ {
+ data: 'mediatypeid',
+ visible: false
+ },
+ {
+ data: 'labeltype',
+ visible: false
+ },
+ {
+ data: 'firstwritten',
+ visible: false
+ },
{data: 'lastwritten'},
- {data: 'voljobs'},
{
data: 'volbytes',
render: function (data, type, row) {
var s;
- if (type == 'display' || type == 'filter') {
+ if (type == 'display') {
s = Units.get_formatted_size(data)
} else {
s = data;
return s;
}
},
+ {
+ data: 'maxvolbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'maxvoljobs',
+ visible: false
+ },
+ {
+ data: 'maxvolfiles',
+ visible: false
+ },
+ {
+ data: 'volcapacitybytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'volabytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'volapadding',
+ visible: false
+ },
+ {
+ data: 'volholebytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'volholes',
+ visible: false
+ },
+ {
+ data: 'volparts',
+ visible: false
+ },
+ {
+ data: 'volerrors',
+ visible: false
+ },
+ {
+ data: 'volwrites',
+ visible: false
+ },
+ {
+ data: 'labeldate',
+ visible: false
+ },
+ {
+ data: 'voljobs',
+ visible: false
+ },
+ {
+ data: 'volfiles',
+ visible: false
+ },
+ {
+ data: 'volblocks',
+ visible: false
+ },
+ {
+ data: 'volmounts',
+ visible: false
+ },
+ {
+ data: 'actiononpurge',
+ render: function(data, type, row) {
+ return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
+ },
+ visible: false
+ },
+ {
+ data: 'volretention',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'cacheretention',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'voluseduration',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'mediaaddressing',
+ visible: false
+ },
+ {
+ data: 'volreadtime',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'volwritetime',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'voltype',
+ visible: false
+ },
+ {
+ data: 'volcloudparts',
+ visible: false
+ },
+ {
+ data: 'lastpartbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'endfile',
+ visible: false
+ },
+ {
+ data: 'endblock',
+ visible: false
+ },
+ {
+ data: 'locationid',
+ visible: false
+ },
+ {
+ data: 'recyclecount',
+ visible: false
+ },
+ {
+ data: 'initialwrite',
+ visible: false
+ },
+ {
+ data: 'scratchpoolid',
+ visible: false
+ },
+ {
+ data: 'scratchpool',
+ visible: false
+ },
+ {
+ data: 'recyclepoolid',
+ visible: false
+ },
+ {
+ data: 'recyclepool',
+ visible: false
+ },
+ {
+ data: 'comment',
+ visible: false
+ },
+ {
+ data: 'whenexpire',
+ visible: false
+ },
{
data: 'mediaid',
render: function(data, type, row) {
},
{
className: "dt-center",
- targets: [ 1, 3, 4, 5, 7, 8, 10 ]
+ targets: [ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ]
},
{
className: "dt-body-right",
- targets: [ 9 ]
+ targets: [ 18 ]
}],
order: [3, 'asc'],
initComplete: function () {
- this.api().columns([2, 3, 4, 5, 6]).every(function () {
+ this.api().columns([2, 3, 6, 10, 13]).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(
+ var val = dtEscapeRegex(
$(this).val()
);
column
});
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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
</tr>
</thead>
<tbody id="schedule_list_body"></tbody>
+ <tfoot>
+ <tr>
+ <th></th>
+ <th><%[ Name ]%></th>
+ <th class="w3-center"><%[ Actions ]%></th>
+ </tr>
+ </tfoot>
</table>
</table>
</div>
var table = $('#' + this.ids.schedule_list).DataTable({
data: <%=json_encode($this->schedules)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
className: "dt-center",
targets: [ 2 ]
}],
- order: [1, 'asc']
+ order: [1, 'asc'],
+ initComplete: function () {
+ this.api().columns([1]).every(function () {
+ var column = this;
+ var select = $('<select><option value=""></option></select>')
+ .appendTo($(column.footer()).empty())
+ .on('change', function () {
+ var val = dtEscapeRegex(
+ $(this).val()
+ );
+ column
+ .search(val ? '^' + val + '$' : '', true, false)
+ .draw();
+ });
+ column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
+ });
+ });
+ }
});
}
};
<button type="button" class="w3-button w3-margin-bottom w3-green<%=empty($_SESSION['sd']) ? ' hide': ''%>" onclick="document.location.href='<%=$this->Service->constructUrl('NewResource', array('component_type' => 'sd', 'component_name' => $_SESSION['sd'], 'resource_type' => 'Autochanger'))%>';"><i class="fa fa-plus"></i> <%[ Add autochanger ]%></button>
</div>
<div class="w3-container">
- <table id="storage_list" class="w3-table w3-striped w3-hoverable w3-white w3-margin-bottom">
+ <table id="storage_list" class="w3-table w3-striped w3-hoverable w3-white w3-margin-bottom" style="width: 100%">
<thead>
<tr>
<th></th>
var table = $('#' + this.ids.storage_list).DataTable({
data: <%=json_encode($this->storages)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function () {
- var val = $.fn.dataTable.util.escapeRegex(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.draw();
});
column.cells('', column[0]).render('display').unique().sort().each(function(d, j) {
- select.append('<option value="' + d + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
});
}
<th>MediaId</th>
<th><%[ Name ]%></th>
<th><%[ Slot ]%></th>
+ <th>PoolId</th>
+ <th><%[ Pool ]%></th>
<th>InChanger</th>
+ <th>StorageId</th>
+ <th><%[ Storage ]%></th>
+ <th>DeviceId</th>
<th><%[ Vol. status ]%></th>
+ <th><%[ Enabled ]%></th>
+ <th><%[ Recycle ]%></th>
<th>MediaType</th>
+ <th>MediaTypeId</th>
+ <th>LabelType</th>
+ <th><%[ First written ]%></th>
<th><%[ Last written ]%></th>
<th><%[ Vol. bytes ]%></th>
+ <th><%[ Max. vol. bytes ]%></th>
+ <th><%[ Max. vol. jobs ]%></th>
+ <th><%[ Max. vol. files ]%></th>
+ <th><%[ Vol. capacity bytes ]%></th>
+ <th><%[ Vol. abytes ]%></th>
+ <th><%[ Vol. apadding ]%></th>
+ <th><%[ Vol. hole bytes ]%></th>
+ <th><%[ Vol. holes ]%></th>
+ <th><%[ Vol. parts ]%></th>
+ <th><%[ Vol. errors ]%></th>
+ <th><%[ Vol. writes ]%></th>
+ <th><%[ Label date ]%></th>
+ <th><%[ Vol. jobs ]%></th>
+ <th><%[ Vol. files ]%></th>
+ <th><%[ Vol. blocks ]%></th>
+ <th><%[ Vol. mounts ]%></th>
+ <th><%[ Action on purge ]%></th>
+ <th><%[ Vol. retention ]%></th>
+ <th><%[ Cache retention ]%></th>
+ <th><%[ Vol. use duration ]%></th>
+ <th><%[ Media addressing ]%></th>
+ <th><%[ Vol. read time ]%></th>
+ <th><%[ Vol. write time ]%></th>
+ <th><%[ Vol. type ]%></th>
+ <th><%[ Vol. cloud parts ]%></th>
+ <th><%[ Last part bytes ]%></th>
+ <th><%[ End file ]%></th>
+ <th><%[ End block ]%></th>
+ <th>LocationId</th>
+ <th><%[ Recycle count ]%></th>
+ <th><%[ Initial write ]%></th>
+ <th>ScratchPoolId</th>
+ <th><%[ Scratch pool ]%></th>
+ <th>RecyclePoolId</th>
+ <th><%[ Recycle pool ]%></th>
+ <th><%[ Comment ]%></th>
+ <th><%[ When expire ]%></th>
<th><%[ Actions ]%></th>
</tr>
</thead>
<th>MediaId</th>
<th><%[ Name ]%></th>
<th><%[ Slot ]%></th>
+ <th>PoolId</th>
+ <th><%[ Pool ]%></th>
<th>InChanger</th>
+ <th>StorageId</th>
+ <th><%[ Storage ]%></th>
+ <th>DeviceId</th>
<th><%[ Vol. status ]%></th>
+ <th><%[ Enabled ]%></th>
+ <th><%[ Recycle ]%></th>
<th>MediaType</th>
+ <th>MediaTypeId</th>
+ <th>LabelType</th>
+ <th><%[ First written ]%></th>
<th><%[ Last written ]%></th>
<th><%[ Vol. bytes ]%></th>
+ <th><%[ Max. vol. bytes ]%></th>
+ <th><%[ Max. vol. jobs ]%></th>
+ <th><%[ Max. vol. files ]%></th>
+ <th><%[ Vol. capacity bytes ]%></th>
+ <th><%[ Vol. abytes ]%></th>
+ <th><%[ Vol. apadding ]%></th>
+ <th><%[ Vol. hole bytes ]%></th>
+ <th><%[ Vol. holes ]%></th>
+ <th><%[ Vol. parts ]%></th>
+ <th><%[ Vol. errors ]%></th>
+ <th><%[ Vol. writes ]%></th>
+ <th><%[ Label date ]%></th>
+ <th><%[ Vol. jobs ]%></th>
+ <th><%[ Vol. files ]%></th>
+ <th><%[ Vol. blocks ]%></th>
+ <th><%[ Vol. mounts ]%></th>
+ <th><%[ Action on purge ]%></th>
+ <th><%[ Vol. retention ]%></th>
+ <th><%[ Cache retention ]%></th>
+ <th><%[ Vol. use duration ]%></th>
+ <th><%[ Media addressing ]%></th>
+ <th><%[ Vol. read time ]%></th>
+ <th><%[ Vol. write time ]%></th>
+ <th><%[ Vol. type ]%></th>
+ <th><%[ Vol. cloud parts ]%></th>
+ <th><%[ Last part bytes ]%></th>
+ <th><%[ End file ]%></th>
+ <th><%[ End block ]%></th>
+ <th>LocationId</th>
+ <th><%[ Recycle count ]%></th>
+ <th><%[ Initial write ]%></th>
+ <th>ScratchPoolId</th>
+ <th><%[ Scratch pool ]%></th>
+ <th>RecyclePoolId</th>
+ <th><%[ Recycle pool ]%></th>
+ <th><%[ Comment ]%></th>
+ <th><%[ When expire ]%></th>
<th><%[ Actions ]%></th>
</tr>
</tfoot>
var table = $('#' + this.ids.volume_list).DataTable({
data: <%=json_encode($this->volumes)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
},
{data: 'mediaid'},
{data: 'volumename'},
+ {data: 'slot'},
+ {
+ data: 'poolid',
+ visible: false
+ },
{
- data: 'slot'
+ data: 'pool',
+ visible: false
},
{
data: 'inchanger',
return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
}
},
+ {
+ data: 'storageid',
+ visible: false
+ },
+ {
+ data: 'storage',
+ visible: false
+ },
+ {
+ data: 'deviceid',
+ visible: false
+ },
{data: 'volstatus'},
+ {
+ data: 'enabled',
+ render: function(data, type, row) {
+ return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
+ },
+ visible: false
+ },
+ {
+ data: 'recycle',
+ render: function(data, type, row) {
+ return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
+ },
+ visible: false
+ },
{data: 'mediatype'},
+ {
+ data: 'mediatypeid',
+ visible: false
+ },
+ {
+ data: 'labeltype',
+ visible: false
+ },
+ {
+ data: 'firstwritten',
+ visible: false
+ },
{data: 'lastwritten'},
{
data: 'volbytes',
return s;
}
},
+ {
+ data: 'maxvolbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'maxvoljobs',
+ visible: false
+ },
+ {
+ data: 'maxvolfiles',
+ visible: false
+ },
+ {
+ data: 'volcapacitybytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'volabytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'volapadding',
+ visible: false
+ },
+ {
+ data: 'volholebytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'volholes',
+ visible: false
+ },
+ {
+ data: 'volparts',
+ visible: false
+ },
+ {
+ data: 'volerrors',
+ visible: false
+ },
+ {
+ data: 'volwrites',
+ visible: false
+ },
+ {
+ data: 'labeldate',
+ visible: false
+ },
+ {
+ data: 'voljobs',
+ visible: false
+ },
+ {
+ data: 'volfiles',
+ visible: false
+ },
+ {
+ data: 'volblocks',
+ visible: false
+ },
+ {
+ data: 'volmounts',
+ visible: false
+ },
+ {
+ data: 'actiononpurge',
+ render: function(data, type, row) {
+ return (data === 1) ? '<%[ Yes ]%>' : '<%[ No ]%>';
+ },
+ visible: false
+ },
+ {
+ data: 'volretention',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'cacheretention',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'voluseduration',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'mediaaddressing',
+ visible: false
+ },
+ {
+ data: 'volreadtime',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'volwritetime',
+ render: function(data, type, row) {
+ var t;
+ if (type == 'display') {
+ var ret = Units.format_time_period(data);
+ t = ret.value + ' ' + ret.format;
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'voltype',
+ visible: false
+ },
+ {
+ data: 'volcloudparts',
+ visible: false
+ },
+ {
+ data: 'lastpartbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
+ {
+ data: 'endfile',
+ visible: false
+ },
+ {
+ data: 'endblock',
+ visible: false
+ },
+ {
+ data: 'locationid',
+ visible: false
+ },
+ {
+ data: 'recyclecount',
+ visible: false
+ },
+ {
+ data: 'initialwrite',
+ visible: false
+ },
+ {
+ data: 'scratchpoolid',
+ visible: false
+ },
+ {
+ data: 'scratchpool',
+ visible: false
+ },
+ {
+ data: 'recyclepoolid',
+ visible: false
+ },
+ {
+ data: 'recyclepool',
+ visible: false
+ },
+ {
+ data: 'comment',
+ visible: false
+ },
+ {
+ data: 'whenexpire',
+ visible: false
+ },
{
data: 'mediaid',
render: function(data, type, row) {
},
{
className: "dt-center",
- targets: [ 1, 3, 4, 5, 7, 9 ]
+ targets: [ 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ]
},
{
className: "dt-body-right",
- targets: [ 8 ]
+ targets: [ 18 ]
}],
order: [3, 'asc'],
initComplete: function () {
- this.api().columns([2, 3, 4, 5, 6]).every(function () {
+ this.api().columns([2, 3, 6, 10, 13]).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(
+ var val = dtEscapeRegex(
$(this).val()
);
column
});
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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</thead>
<th><%[ Name ]%></th>
<th><%[ Type ]%></th>
<th class="w3-center"><%[ Level ]%></th>
+ <th class="w3-center">ClientId</th>
+ <th class="w3-center"><%[ Client ]%></th>
+ <th class="w3-center"><%[ Scheduled time ]%></th>
<th class="w3-center"><%[ Start time ]%></th>
<th class="w3-center"><%[ End time ]%></th>
+ <th class="w3-center"><%[ Real end time ]%></th>
+ <th class="w3-center">JobTDate</th>
+ <th class="w3-center">VolSessionId</th>
+ <th class="w3-center">VolSessionTime</th>
<th class="w3-center"><%[ Job status ]%></th>
<th class="w3-center"><%[ Size ]%></th>
+ <th class="w3-center"><%[ Read bytes ]%></th>
<th class="w3-center"><%[ Files ]%></th>
+ <th class="w3-center"><%[ Job errors ]%></th>
+ <th class="w3-center"><%[ Job missing files ]%></th>
+ <th class="w3-center">PoolId</th>
+ <th class="w3-center"><%[ Pool ]%></th>
+ <th class="w3-center">FileSetId</th>
+ <th class="w3-center"><%[ FileSet ]%></th>
+ <th class="w3-center">PriorJobId</th>
+ <th class="w3-center"><%[ Purged files ]%></th>
+ <th class="w3-center"><%[ Has base ]%></th>
+ <th class="w3-center"><%[ Reviewed ]%></th>
+ <th class="w3-center"><%[ Comment ]%></th>
+ <th class="w3-center"><%[ File table ]%></th>
<th class="w3-center"><%[ Action ]%></th>
</tr>
</tfoot>
this.table = $('#' + this.ids.jobs_on_volume_list).DataTable({
data: <%=json_encode($this->jobs_on_volume)%>,
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
{
data: 'level',
render: function(data, type, row) {
- return JobLevel.get_level(data);
+ return (['R', 'D'].indexOf(row.type) === -1 ? JobLevel.get_level(data) : '-');
}
},
+ {
+ data: 'clientid',
+ visible: false
+ },
+ {
+ data: 'client',
+ visible: false
+ },
+ {
+ data: 'schedtime',
+ visible: false
+ },
{data: 'starttime'},
{data: 'endtime'},
+ {
+ data: 'realendtime',
+ visible: false
+ },
+ {
+ data: 'jobtdate',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
+ {
+ data: 'volsessionid',
+ visible: false
+ },
+ {
+ data: 'volsessiontime',
+ render: function (data, type, row) {
+ var t;
+ if (type == 'display') {
+ t = Units.format_date(data)
+ } else {
+ t = data;
+ }
+ return t;
+ },
+ visible: false
+ },
{
data: 'jobstatus',
render: function (data, type, row) {
ret = data;
}
return ret;
- }
+ },
+ className: 'w3-center'
},
{
data: 'jobbytes',
return s;
}
},
+ {
+ data: 'readbytes',
+ render: function (data, type, row) {
+ var s;
+ if (type == 'display') {
+ s = Units.get_formatted_size(data)
+ } else {
+ s = data;
+ }
+ return s;
+ },
+ visible: false
+ },
{data: 'jobfiles'},
+ {
+ data: 'joberrors',
+ visible: false
+ },
+ {
+ data: 'jobmissingfiles',
+ visible: false
+ },
+ {
+ data: 'poolid',
+ visible: false
+ },
+ {
+ data: 'pool',
+ visible: false
+ },
+ {
+ data: 'filesetid',
+ visible: false
+ },
+ {
+ data: 'fileset',
+ visible: false
+ },
+ {
+ data: 'priorjobid',
+ visible: false
+ },
+ {
+ data: 'purgedfiles',
+ visible: false
+ },
+ {
+ data: 'hasbase',
+ visible: false
+ },
+ {
+ data: 'reviewed',
+ visible: false
+ },
+ {
+ data: 'comment',
+ visible: false
+ },
+ {
+ data: 'filetable',
+ visible: false
+ },
{
data: 'jobid',
render: function (data, type, row) {
}],
order: [1, 'desc'],
initComplete: function () {
- this.api().columns([2, 3, 4, 7]).every(function () {
+ this.api().columns([2, 3, 4, 14]).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(
+ var val = dtEscapeRegex(
$(this).val()
);
column
.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
- if (column[0][0] == 7) {
+ if (column[0][0] == 14) {
column.data().unique().sort().each(function (d, j) {
- select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '">' + d + '</option>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" title="' + JobStatus.get_desc(d) + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
this.table = $('#' + this.ids.schedule_list).DataTable({
data: this.get_data(),
deferRender: true,
+ dom: 'lBfrtip',
+ stateSave: true,
+ buttons: [
+ 'copy', 'csv', 'colvis'
+ ],
columns: [
{
className: 'details-control',
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function () {
- var val = $.fn.dataTable.util.escapeRegex(
+ var val = dtEscapeRegex(
$(this).val()
);
column
});
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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ 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>');
+ if (column.search() == '^' + dtEscapeRegex(d) + '$') {
+ select.append('<option value="' + d + '" selected>' + d + '</option>');
+ } else {
+ select.append('<option value="' + d + '">' + d + '</option>');
+ }
});
}
});
box-shadow: none !important;
}
+.dataTables_length {
+ margin-right: 5px;
+}
+
th.action_col, td.action_col {
width: 110px !important;
}