]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add date and time formatters - idea proposed by Wanderlei Huttel
authorMarcin Haba <marcin.haba@bacula.pl>
Sun, 14 Jun 2020 05:16:03 +0000 (07:16 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Sun, 14 Jun 2020 05:16:03 +0000 (07:16 +0200)
24 files changed:
gui/baculum/protected/Web/Class/WebConfig.php
gui/baculum/protected/Web/JavaScript/misc.js
gui/baculum/protected/Web/Lang/en/messages.mo
gui/baculum/protected/Web/Lang/en/messages.po
gui/baculum/protected/Web/Lang/ja/messages.mo
gui/baculum/protected/Web/Lang/ja/messages.po
gui/baculum/protected/Web/Lang/pl/messages.mo
gui/baculum/protected/Web/Lang/pl/messages.po
gui/baculum/protected/Web/Lang/pt/messages.mo
gui/baculum/protected/Web/Lang/pt/messages.po
gui/baculum/protected/Web/Layouts/Main.tpl
gui/baculum/protected/Web/Layouts/Wizard.tpl
gui/baculum/protected/Web/Pages/ApplicationSettings.page
gui/baculum/protected/Web/Pages/ApplicationSettings.php
gui/baculum/protected/Web/Pages/ClientList.page
gui/baculum/protected/Web/Pages/ClientView.page
gui/baculum/protected/Web/Pages/JobHistoryList.page
gui/baculum/protected/Web/Pages/JobView.page
gui/baculum/protected/Web/Pages/PoolList.page
gui/baculum/protected/Web/Pages/PoolView.page
gui/baculum/protected/Web/Pages/RestoreWizard.page
gui/baculum/protected/Web/Pages/VolumeList.page
gui/baculum/protected/Web/Pages/VolumeView.page
gui/baculum/protected/Web/Portlets/StatusSchedule.tpl

index 3fb1212ddfdf7babbdf31ae11034d54281e54951..27f75b5d45fb36e3401d94123e5c06b558c484e5 100644 (file)
@@ -63,6 +63,12 @@ class WebConfig extends ConfigFileModule {
         */
        const DEF_TIME_IN_JOB_LOG = 0;
 
+
+       /**
+        * Default date and time format.
+        */
+       const DEF_DATE_TIME_FORMAT = 'Y-M-D R';
+
        /**
         * Supported authentication methods.
         */
@@ -171,7 +177,8 @@ class WebConfig extends ConfigFileModule {
                        'lang' => self::DEF_LANG,
                        'max_jobs' => self::DEF_MAX_JOBS,
                        'size_values_unit' => self::DEF_SIZE_VAL_UNIT,
-                       'time_in_job_log' => self::DEF_TIME_IN_JOB_LOG
+                       'time_in_job_log' => self::DEF_TIME_IN_JOB_LOG,
+                       'date_time_format' => self::DEF_DATE_TIME_FORMAT
                ];
                if (key_exists('baculum', $config)) {
                        $config['baculum'] = array_merge($baculum, $config['baculum']);
index 7a052591f3582b8f88c7b15004b85a07773d3570..511ab6f556018210837c969dedd8c4b3748013dd 100644 (file)
@@ -120,9 +120,79 @@ var Units = {
                        timestamp *= 1000;
                }
                var d = new Date(timestamp);
-               var date = [d.getFullYear(), ('0' + (d.getMonth()+1)).slice(-2), ('0' + d.getDate()).slice(-2)].join('-');
-               var time = [d.getHours(), ('0' + d.getMinutes()).slice(-2), ('0' + d.getSeconds()).slice(-2)].join(':');
-               return (date + ' ' + time);
+               var dt = DATE_TIME_FORMAT;
+               if (dt.indexOf('Y') !== -1) { // full 4 digits year, ex. 2021
+                       dt = dt.replace(/Y/g, d.getFullYear());
+               }
+               if (dt.indexOf('y') !== -1) { // 2 digits year, ex, 21
+                       dt = dt.replace(/y/g, ('0' + d.getFullYear()).slice(-2));
+               }
+               if (dt.indexOf('M') !== -1) { // 2 digits month 01..12
+                       dt = dt.replace(/M/g, ('0' + (d.getMonth() + 1)).slice(-2));
+               }
+               if (dt.indexOf('m') !== -1) { // 1-2 digits month 1..12
+                       dt = dt.replace(/m/g, (d.getMonth() + 1));
+               }
+               if (dt.indexOf('D') !== -1) { // 2 digits day 01..31
+                       dt = dt.replace(/D/g, ('0' + d.getDate()).slice(-2));
+               }
+               if (dt.indexOf('d') !== -1) { // 1-2 digits day 1..31
+                       dt = dt.replace(/d/g, d.getDate());
+               }
+               if (dt.indexOf('H') !== -1) { // 2 digits 24-hour format hour 00..23
+                       dt = dt.replace(/H/g, ('0' + d.getHours()).slice(-2));
+               }
+               if (dt.indexOf('h') !== -1) { // 1-2 digits 24-hour format hour 0..23
+                       dt = dt.replace(/h/g, d.getHours());
+               }
+               if (dt.indexOf('G') !== -1) { // 2 digits 12-hour format hour value 01..12
+                       var hours = d.getHours() % 12;
+                       hours = hours ? hours : 12;
+                       dt = dt.replace(/G/g, ('0' + hours).slice(-2));
+               }
+               if (dt.indexOf('g') !== -1) { // 1-2 digits 12-hour format hour value 1..12
+                       var hours = d.getHours() % 12;
+                       hours = hours ? hours : 12;
+                       dt = dt.replace(/g/g, hours);
+               }
+               if (dt.indexOf('I') !== -1) { // 2 digits minutes 00..59
+                       dt = dt.replace(/I/g, ('0' + d.getMinutes()).slice(-2));
+               }
+               if (dt.indexOf('i') !== -1) { // 1-2 digits minutes 0..59
+                       dt = dt.replace(/i/g, d.getMinutes());
+               }
+               if (dt.indexOf('S') !== -1) { // 2 digits seconds 00..23
+                       dt = dt.replace(/S/g, ('0' + d.getSeconds()).slice(-2));
+               }
+               if (dt.indexOf('s') !== -1) { // 1-2 digits seconds 0..23
+                       dt = dt.replace(/s/g, d.getSeconds());
+               }
+               if (dt.indexOf('p') !== -1) { // AM/PM value
+                       var am_pm = d.getHours() >= 12 ? 'PM' : 'AM';
+                       dt = dt.replace(/p/g, am_pm);
+               }
+               if (dt.indexOf('R') !== -1) { // 24-hours format time value 17:22:41
+                       var minutes = ('0' + d.getMinutes()).slice(-2);
+                       var seconds = ('0' + d.getSeconds()).slice(-2);
+                       dt = dt.replace(/R/g, d.getHours() + ':' + minutes + ':' + seconds);
+               }
+               if (dt.indexOf('r') !== -1) { // time in digits 12-hours format 11:05:12 AM
+                       var am_pm = d.getHours() >= 12 ? 'PM' : 'AM';
+                       var hours = d.getHours() % 12;
+                       hours = hours ? hours : 12;
+                       var minutes = ('0' + d.getMinutes()).slice(-2);
+                       var seconds = ('0' + d.getSeconds()).slice(-2);
+                       dt = dt.replace(/r/g, hours + ':' + minutes + ':' + seconds + ' ' + am_pm);
+               }
+               return dt;
+       },
+       format_date_str: function(date) {
+               var d;
+               if (date && date != 'no date') {
+                       var t = (new Date(date)).getTime();
+                       d = Units.format_date(t);
+               }
+               return d;
        },
        format_speed: function(speed_bytes, format, float_val, decimal) {
                var reminder;
@@ -187,7 +257,8 @@ var PieGraph  = {
 var Formatters = {
        formatter: [
                {css_class: 'size', format_func: function(val) { return Units.get_formatted_size(val); }},
-               {css_class: 'time', format_func: function(val) { return Units.format_time_period(val); }}
+               {css_class: 'time', format_func: function(val) { return Units.format_time_period(val); }},
+               {css_class: 'datetime', format_func: function(val) { return Units.format_date_str(val); }}
        ],
        set_formatters: function() {
                var elements, formatter, txt, val;
@@ -209,6 +280,85 @@ var Formatters = {
        }
 }
 
+
+/** Data tables formatters **/
+
+function render_date(data, type, row) {
+       var t = data;
+       if (t) {
+               var d = (new Date(t)).getTime();
+               if (type == 'display') {
+                       t = Units.format_date(d);
+               } else {
+                       t = d;
+               }
+       }
+       return t;
+}
+
+function render_date_ts(data, type, row) {
+       var t;
+       if (type == 'display') {
+               t = Units.format_date(data)
+       } else {
+               t = data;
+       }
+       return t;
+}
+
+function render_date_ex(data, type, row) {
+       var t = data;
+       if (t && t != 'no date') {
+               var d = (new Date(t)).getTime();
+               if (type == 'display') {
+                       t = Units.format_date(d);
+               } else {
+                       t = d;
+               }
+       }
+       return t;
+}
+
+function render_jobstatus(data, type, row) {
+       var ret;
+       if (type == 'display') {
+               ret = JobStatus.get_icon(data).outerHTML;
+       } else {
+               ret = data;
+       }
+       return ret;
+}
+
+function render_bytes(data, type, row) {
+       var s;
+       if (type == 'display') {
+               s = Units.get_formatted_size(data)
+       } else {
+               s = data;
+       }
+       return s;
+}
+function render_level(data, type, row) {
+       var ret;
+       if (!data) {
+               ret = '-';
+       } else {
+               ret = JobLevel.get_level(data);
+       }
+       return ret;
+}
+
+function render_time_period(data, type, row) {
+       var ret;
+       if (type == 'display' || type == 'filter') {
+               var time = Units.format_time_period(data);
+               ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
+       } else {
+               ret = data;
+       }
+       return ret;
+}
+
 function set_formatters() {
        Formatters.set_formatters();
 }
@@ -457,19 +607,12 @@ var oLastJobsList = {
                                },
                                {
                                        data: 'starttime',
+                                       render: render_date,
                                        responsivePriority: 5
                                },
                                {
                                        data: 'jobstatus',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display') {
-                                                       ret = JobStatus.get_icon(data).outerHTML;
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       },
+                                       render: render_jobstatus,
                                        responsivePriority: 4
                                }
                        ],
index 94925bd3c744d17a0234f2e31f7ac6763cb7f5f5..48cc6850de3f4103a350707ea2b64a1c864355ef 100644 (file)
Binary files a/gui/baculum/protected/Web/Lang/en/messages.mo and b/gui/baculum/protected/Web/Lang/en/messages.mo differ
index e631cedce9e4d229b76f679bbd56232c31a386fd..198e5ca1b047327e184faa107ba871049a27ac5b 100644 (file)
@@ -2926,3 +2926,60 @@ msgstr "Nginx on most UNIX platforms"
 
 msgid "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
 msgstr "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
+
+msgid "Date and time format:"
+msgstr "Date and time format:"
+
+msgid "Available formats:"
+msgstr "Available formats:"
+
+msgid "full 4 digits year, ex. 2021"
+msgstr "full 4 digits year, ex. 2021"
+
+msgid "2 digits year, ex, 21"
+msgstr "2 digits year, ex, 21"
+
+msgid "2 digits month 01..12"
+msgstr "2 digits month 01..12"
+
+msgid "1-2 digits month 1..12"
+msgstr "1-2 digits month 1..12"
+
+msgid "2 digits day 01..31"
+msgstr "2 digits day 01..31"
+
+msgid "1-2 digits day 1..31"
+msgstr "1-2 digits day 1..31"
+
+msgid "2 digits 24-hour format hour 00..23"
+msgstr "2 digits 24-hour format hour 00..23"
+
+msgid "1-2 digits 24-hour format hour 0..23"
+msgstr "1-2 digits 24-hour format hour 0..23"
+
+msgid "2 digits 12-hour format hour 01..12"
+msgstr "2 digits 12-hour format hour 01..12"
+
+msgid "1-2 digits 12-hour format hour 1..12"
+msgstr "1-2 digits 12-hour format hour 1..12"
+
+msgid "2 digits minutes 00..59"
+msgstr "2 digits minutes 00..59"
+
+msgid "1-2 digits minutes 0..59"
+msgstr "1-2 digits minutes 0..59"
+
+msgid "2 digits seconds 00..59"
+msgstr "2 digits seconds 00..59"
+
+msgid "1-2 digits seconds 0..59"
+msgstr "1-2 digits seconds 0..59"
+
+msgid "AM/PM value"
+msgstr "AM/PM value"
+
+msgid "24-hours format time 17:22:41"
+msgstr "24-hours format time 17:22:41"
+
+msgid "12-hours format time 5:22:41 PM"
+msgstr "12-hours format time 5:22:41 PM"
index facba96b9cf1476347bb87143effde95d43d73a5..b0a264462a28b6919d7e52197b395fe1ee77abc8 100644 (file)
Binary files a/gui/baculum/protected/Web/Lang/ja/messages.mo and b/gui/baculum/protected/Web/Lang/ja/messages.mo differ
index 00303cf36c02d6de3e3bb4e316a224e977f80c81..8a3576888c6ea6c14fd1328666d658e09e449fcf 100644 (file)
@@ -3012,3 +3012,60 @@ msgstr "Nginx on most UNIX platforms"
 
 msgid "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
 msgstr "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
+
+msgid "Date and time format:"
+msgstr "Date and time format:"
+
+msgid "Available formats:"
+msgstr "Available formats:"
+
+msgid "full 4 digits year, ex. 2021"
+msgstr "full 4 digits year, ex. 2021"
+
+msgid "2 digits year, ex, 21"
+msgstr "2 digits year, ex, 21"
+
+msgid "2 digits month 01..12"
+msgstr "2 digits month 01..12"
+
+msgid "1-2 digits month 1..12"
+msgstr "1-2 digits month 1..12"
+
+msgid "2 digits day 01..31"
+msgstr "2 digits day 01..31"
+
+msgid "1-2 digits day 1..31"
+msgstr "1-2 digits day 1..31"
+
+msgid "2 digits 24-hour format hour 00..23"
+msgstr "2 digits 24-hour format hour 00..23"
+
+msgid "1-2 digits 24-hour format hour 0..23"
+msgstr "1-2 digits 24-hour format hour 0..23"
+
+msgid "2 digits 12-hour format hour 01..12"
+msgstr "2 digits 12-hour format hour 01..12"
+
+msgid "1-2 digits 12-hour format hour 1..12"
+msgstr "1-2 digits 12-hour format hour 1..12"
+
+msgid "2 digits minutes 00..59"
+msgstr "2 digits minutes 00..59"
+
+msgid "1-2 digits minutes 0..59"
+msgstr "1-2 digits minutes 0..59"
+
+msgid "2 digits seconds 00..59"
+msgstr "2 digits seconds 00..59"
+
+msgid "1-2 digits seconds 0..59"
+msgstr "1-2 digits seconds 0..59"
+
+msgid "AM/PM value"
+msgstr "AM/PM value"
+
+msgid "24-hours format time 17:22:41"
+msgstr "24-hours format time 17:22:41"
+
+msgid "12-hours format time 5:22:41 PM"
+msgstr "12-hours format time 5:22:41 PM"
index 29907b4545e4d7c591088f73dba87baf20f4f0be..fba5b67f26f81475660ac44fc9b0dd4b8ba51078 100644 (file)
Binary files a/gui/baculum/protected/Web/Lang/pl/messages.mo and b/gui/baculum/protected/Web/Lang/pl/messages.mo differ
index b6b4ddcdb473bd12008ec505d9518a3e82b63e57..c342e7490557e218c4dfce79a2ea7f2280d9f340 100644 (file)
@@ -2934,3 +2934,60 @@ msgstr "Nginx na wiÄ™kszoÅ›ci platform UNIXowych"
 
 msgid "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
 msgstr "Nie znaleziono Å¼adnego pliku dla wybranej kopii zapasowej. Może to oznaczać, Å¼e rekordy plików dla tej kopii sÄ… wyczyszczone. Przywracanie wybranych plików nie jest dostÄ™pne, ale jeżeli kontynuujesz, to zostanie wykonane peÅ‚ne przywrócenie wszystkich plików kopii zapasowej."
+
+msgid "Date and time format:"
+msgstr "Format daty i czasu:"
+
+msgid "Available formats:"
+msgstr "DostÄ™pne formaty:"
+
+msgid "full 4 digits year, ex. 2021"
+msgstr "peÅ‚ne 4 cyfry roku, np. 2021"
+
+msgid "2 digits year, ex, 21"
+msgstr "dwie cyfry roku, np. 21"
+
+msgid "2 digits month 01..12"
+msgstr "dwie cyfry miesiÄ…ca 01..12"
+
+msgid "1-2 digits month 1..12"
+msgstr "1-2 cyfry miesiÄ…ca 1..12"
+
+msgid "2 digits day 01..31"
+msgstr "dwie cyfry dnia 01..31"
+
+msgid "1-2 digits day 1..31"
+msgstr "1-2 cyfry dnia 1..31"
+
+msgid "2 digits 24-hour format hour 00..23"
+msgstr "2 cyfry 24-godzinnego formatu godziny 00..23"
+
+msgid "1-2 digits 24-hour format hour 0..23"
+msgstr "1-2 cyfry 24-godzinnego formatu godziny 0..23"
+
+msgid "2 digits 12-hour format hour 01..12"
+msgstr "2 cyfry 12-godzinnego formatu godziny 01..12"
+
+msgid "1-2 digits 12-hour format hour 1..12"
+msgstr "1-2 cyfry 12-godzinnego formatu godziny 1..12"
+
+msgid "2 digits minutes 00..59"
+msgstr "2 cyfry minuty 00..59"
+
+msgid "1-2 digits minutes 0..59"
+msgstr "1-2 cyfry minuty 0..59"
+
+msgid "2 digits seconds 00..59"
+msgstr "2 cyfry sekundy 00..59"
+
+msgid "1-2 digits seconds 0..59"
+msgstr "1-2 cyfry sekundy 0..59"
+
+msgid "AM/PM value"
+msgstr "Wartość AM/PM"
+
+msgid "24-hours format time 17:22:41"
+msgstr "24-godzinny format czasu 17:22:41"
+
+msgid "12-hours format time 5:22:41 PM"
+msgstr "12-godzinny format czasu 5:22:41 PM"
index 489351f2427a39b1bb3297b6fa93395d5f35f4e3..1ef06b3b9924019bc19e34955c4998d762dc690c 100644 (file)
Binary files a/gui/baculum/protected/Web/Lang/pt/messages.mo and b/gui/baculum/protected/Web/Lang/pt/messages.mo differ
index 1813f70ea06533b4da8819a2f091e3cac8d19dc1..b1b8bdb37499912b2899da84dbcf274585c20e0c 100644 (file)
@@ -2934,3 +2934,60 @@ msgstr "Nginx na maioria das plataformas UNIX"
 
 msgid "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
 msgstr "No file found for selected backup. It can mean file records for this backup are pruned. Restoring selected files is not available but if you continue, there will be performed full restore all backup files."
+
+msgid "Date and time format:"
+msgstr "Date and time format:"
+
+msgid "Available formats:"
+msgstr "Available formats:"
+
+msgid "full 4 digits year, ex. 2021"
+msgstr "full 4 digits year, ex. 2021"
+
+msgid "2 digits year, ex, 21"
+msgstr "2 digits year, ex, 21"
+
+msgid "2 digits month 01..12"
+msgstr "2 digits month 01..12"
+
+msgid "1-2 digits month 1..12"
+msgstr "1-2 digits month 1..12"
+
+msgid "2 digits day 01..31"
+msgstr "2 digits day 01..31"
+
+msgid "1-2 digits day 1..31"
+msgstr "1-2 digits day 1..31"
+
+msgid "2 digits 24-hour format hour 00..23"
+msgstr "2 digits 24-hour format hour 00..23"
+
+msgid "1-2 digits 24-hour format hour 0..23"
+msgstr "1-2 digits 24-hour format hour 0..23"
+
+msgid "2 digits 12-hour format hour 01..12"
+msgstr "2 digits 12-hour format hour 01..12"
+
+msgid "1-2 digits 12-hour format hour 1..12"
+msgstr "1-2 digits 12-hour format hour 1..12"
+
+msgid "2 digits minutes 00..59"
+msgstr "2 digits minutes 00..59"
+
+msgid "1-2 digits minutes 0..59"
+msgstr "1-2 digits minutes 0..59"
+
+msgid "2 digits seconds 00..59"
+msgstr "2 digits seconds 00..59"
+
+msgid "1-2 digits seconds 0..59"
+msgstr "1-2 digits seconds 0..59"
+
+msgid "AM/PM value"
+msgstr "AM/PM value"
+
+msgid "24-hours format time 17:22:41"
+msgstr "24-hours format time 17:22:41"
+
+msgid "12-hours format time 5:22:41 PM"
+msgstr "12-hours format time 5:22:41 PM"
index 864e5dade4bbde891a026eba2333c8a887a61a76..6a41a3e45d17adb09b2f49ea7ba29fd5a77ac3b2 100644 (file)
@@ -36,7 +36,8 @@
                                        <i class="fa fa-cogs w3-large"></i> <%[ Running jobs: ]%> <span id="running_jobs"></span>
                                </span>
                                <script type="text/javascript">
-                                       var SIZE_VALUES_UNIT = '<%=(count($this->web_config) > 0 && key_exists('size_values_unit', $this->web_config['baculum'])) ? $this->web_config['baculum']['size_values_unit'] : 'decimal'%>';
+                                       var SIZE_VALUES_UNIT = '<%=(count($this->web_config) > 0 && key_exists('size_values_unit', $this->web_config['baculum'])) ? $this->web_config['baculum']['size_values_unit'] : WebConfig::DEF_SIZE_VAL_UNIT%>';
+                                       var DATE_TIME_FORMAT = '<%=(count($this->web_config) > 0 && key_exists('date_time_format', $this->web_config['baculum'])) ? $this->web_config['baculum']['date_time_format'] : WebConfig::DEF_DATE_TIME_FORMAT%>';
                                </script>
                                <com:TContentPlaceHolder ID="Main" />
                                <!-- Footer -->
index 80176c05dc9654e617f892f94690b5634636f187..2f443e99bfc9ac63a052d6924c6012c48d9b7716 100644 (file)
@@ -7,7 +7,8 @@
        </com:THead>
        <body  class="w3-light-grey">
                <script type="text/javascript">
-                       var SIZE_VALUES_UNIT = '<%=(count($this->web_config) > 0 && key_exists('size_values_unit', $this->web_config['baculum'])) ? $this->web_config['baculum']['size_values_unit'] : 'decimal'%>';
+                       var SIZE_VALUES_UNIT = '<%=(count($this->web_config) > 0 && key_exists('size_values_unit', $this->web_config['baculum'])) ? $this->web_config['baculum']['size_values_unit'] : WebConfig::DEF_SIZE_VAL_UNIT%>';
+                       var DATE_TIME_FORMAT = '<%=(count($this->web_config) > 0 && key_exists('date_time_format', $this->web_config['baculum'])) ? $this->web_config['baculum']['date_time_format'] : WebConfig::DEF_DATE_TIME_FORMAT%>';
                </script>
                <com:TForm>
                        <com:TClientScript PradoScripts="ajax, effects" />
index e4fe3eca4b42b7252d2b0ae8dce22cc5e775023d..754a4a231a3356cd0c21602189dc059bbac55984 100644 (file)
@@ -1,5 +1,7 @@
 <%@ MasterClass="Application.Web.Layouts.Main" Theme="Baculum-v2"%>
 <com:TContent ID="Main">
+       <com:BClientScript ScriptUrl=<%~ ../JavaScript/opentip.js %> />
+       <com:BClientScript ScriptUrl=<%~ ../JavaScript/tooltip.js %> />
        <!-- Header -->
        <header class="w3-container">
                <h5>
                <div class="w3-third w3-col">
                        <com:TTextBox
                                ID="MaxJobs"
-                               CssClass="w3-input w3-border"
+                               CssClass="w3-input w3-border w3-show-inline-block"
                                ValidationGroup="AppSetting"
+                               Width="120px"
                        />
+                       <i class="fa fa-asterisk w3-text-red"></i>
                        <com:TRequiredFieldValidator
                                ID="MaxJobsRequiredValidator"
                                ValidationGroup="AppSetting"
                        />
                </div>
        </div>
+       <div class="w3-container w3-row w3-padding">
+               <div class="w3-third w3-col"><%[ Date and time format: ]%></div>
+               <div class="w3-third w3-col">
+                       <com:TTextBox
+                               ID="DateTimeFormat"
+                               CssClass="w3-input w3-border w3-show-inline-block"
+                               ValidationGroup="AppSetting"
+                               Width="120px"
+                       />
+                       <i class="fa fa-asterisk w3-text-red"></i>
+                       <com:TRequiredFieldValidator
+                               ValidationGroup="AppSetting"
+                               ControlToValidate="DateTimeFormat"
+                               ErrorMessage="<%[ Field required. ]%>"
+                               Display="Dynamic"
+                       />
+               </div>
+               <script>
+                       var dt = document.getElementById('<%=$this->DateTimeFormat->ClientID%>');
+                       dt.addEventListener('mouseover', function() {
+                               var tip_fields = [
+                                       'Y - <%[ full 4 digits year, ex. 2021 ]%>',
+                                       'y - <%[ 2 digits year, ex, 21 ]%>',
+                                       'M - <%[ 2 digits month 01..12 ]%>',
+                                       'm - <%[ 1-2 digits month 1..12 ]%>',
+                                       'D - <%[ 2 digits day 01..31 ]%>',
+                                       'd - <%[ 1-2 digits day 1..31 ]%>',
+                                       'H - <%[ 2 digits 24-hour format hour 00..23 ]%>',
+                                       'h - <%[ 1-2 digits 24-hour format hour 0..23 ]%>',
+                                       'G - <%[ 2 digits 12-hour format hour 01..12 ]%>',
+                                       'g - <%[ 1-2 digits 12-hour format hour 1..12 ]%>',
+                                       'I - <%[ 2 digits minutes 00..59 ]%>',
+                                       'i - <%[ 1-2 digits minutes 0..59 ]%>',
+                                       'S - <%[ 2 digits seconds 00..59 ]%>',
+                                       's - <%[ 1-2 digits seconds 0..59 ]%>',
+                                       'p - <%[ AM/PM value ]%>',
+                                       'R - <%[ 24-hours format time 17:22:41 ]%>',
+                                       'r - <%[ 12-hours format time 5:22:41 PM ]%>'
+                               ];
+                               showTip(dt, '<%[ Available formats: ]%>', tip_fields.join('<br />'));
+                       });
+               </script>
+       </div>
        <div class="w3-center">
                <com:TActiveLinkButton
                        CssClass="w3-button w3-green"
index f3729bf79a441254b7fe2bca446b213fefdeeb0f..87a82cab5e9ddf69003459c0019fc53736db9b8d 100644 (file)
@@ -46,6 +46,11 @@ class ApplicationSettings extends BaculumWebPage {
                        if (key_exists('time_in_job_log', $this->web_config['baculum'])) {
                                $this->TimeInJobLog->Checked = ($this->web_config['baculum']['time_in_job_log'] == 1);
                        }
+                       if (key_exists('date_time_format', $this->web_config['baculum'])) {
+                               $this->DateTimeFormat->Text = $this->web_config['baculum']['date_time_format'];
+                       } else {
+                               $this->DateTimeFormat->Text = WebConfig::DEF_DATE_TIME_FORMAT;
+                       }
                }
        }
 
@@ -57,6 +62,7 @@ class ApplicationSettings extends BaculumWebPage {
                        $this->web_config['baculum']['max_jobs'] = $max_jobs;
                        $this->web_config['baculum']['size_values_unit'] = $this->BinaryBytes->Checked ? 'binary' : 'decimal';
                        $this->web_config['baculum']['time_in_job_log'] = ($this->TimeInJobLog->Checked === true) ? 1 : 0;
+                       $this->web_config['baculum']['date_time_format'] = $this->DateTimeFormat->Text;
                        $this->getModule('web_config')->setConfig($this->web_config);
                }
        }
index 12916074531957634f331bc55f3885eedd176af5..2d9e95ec55ce6dd7f31206819e033d4e51aafd4f 100644 (file)
@@ -74,29 +74,11 @@ var oClientList = {
                                },
                                {
                                        data: 'jobretention',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display' || type == 'filter') {
-                                                       var time = Units.format_time_period(data);
-                                                       ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       }
+                                       render: render_time_period
                                },
                                {
                                        data: 'fileretention',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display' || type == 'filter') {
-                                                       var time = Units.format_time_period(data);
-                                                       ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       }
+                                       render: render_time_period
                                },
                                {
                                        data: 'clientid',
index 262ab9200969f11b44b61b7aae0b237154da18b2..79b28698cc550f21b47a50c97b7ae2a63d6ac463 100644 (file)
@@ -659,25 +659,25 @@ var oJobForClientList = {
                                },
                                {
                                        data: 'schedtime',
+                                       render: render_date,
                                        visible: false
                                },
-                               {data: 'starttime'},
-                               {data: 'endtime'},
+                               {
+                                       data: 'starttime',
+                                       render: render_date
+                               },
+                               {
+                                       data: 'endtime',
+                                       render: render_date
+                               },
                                {
                                        data: 'realendtime',
+                                       render: render_date,
                                        visible: false
                                },
                                {
                                        data: 'jobtdate',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
@@ -686,53 +686,21 @@ var oJobForClientList = {
                                },
                                {
                                        data: 'volsessiontime',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
                                        data: 'jobstatus',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display') {
-                                                       ret = JobStatus.get_icon(data).outerHTML;
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       },
+                                       render: render_jobstatus,
                                        className: 'w3-center'
                                },
                                {
                                        data: 'jobbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       }
+                                       render: render_bytes
                                },
                                {
                                        data: 'readbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {data: 'jobfiles'},
index aa73dae520fe82738c5a4c513c5230de4e3d780d..e2f30d7c80f766d14f1a855bc686349906d6b224 100644 (file)
@@ -257,25 +257,25 @@ var oJobList = {
                                },
                                {
                                        data: 'schedtime',
+                                       render: render_date,
                                        visible: false
                                },
-                               {data: 'starttime'},
-                               {data: 'endtime'},
+                               {
+                                       data: 'starttime',
+                                       render: render_date
+                               },
+                               {
+                                       data: 'endtime',
+                                       render: render_date
+                               },
                                {
                                        data: 'realendtime',
+                                       render: render_date,
                                        visible: false
                                },
                                {
                                        data: 'jobtdate',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
@@ -284,53 +284,21 @@ var oJobList = {
                                },
                                {
                                        data: 'volsessiontime',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
                                        data: 'jobstatus',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display') {
-                                                       ret = JobStatus.get_icon(data).outerHTML;
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       },
+                                       render: render_jobstatus,
                                        className: 'w3-center'
                                },
                                {
                                        data: 'jobbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       }
+                                       render: render_bytes
                                },
                                {
                                        data: 'readbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {data: 'jobfiles'},
index 611788c47ed0413bead565d9c70d85d19ed49e89..d390fab0c27afc33c0abf2821f862159cb7e4fee 100644 (file)
@@ -205,25 +205,25 @@ var oJobHistoryList = {
                                },
                                {
                                        data: 'schedtime',
+                                       render: render_date,
                                        visible: false
                                },
-                               {data: 'starttime'},
-                               {data: 'endtime'},
+                               {
+                                       data: 'starttime',
+                                       render: render_date
+                               },
+                               {
+                                       data: 'endtime',
+                                       render: render_date
+                               },
                                {
                                        data: 'realendtime',
+                                       render: render_date,
                                        visible: false
                                },
                                {
                                        data: 'jobtdate',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
@@ -232,53 +232,21 @@ var oJobHistoryList = {
                                },
                                {
                                        data: 'volsessiontime',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
                                        data: 'jobstatus',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display') {
-                                                       ret = JobStatus.get_icon(data).outerHTML;
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       },
+                                       render: render_jobstatus,
                                        className: 'w3-center'
                                },
                                {
                                        data: 'jobbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       }
+                                       render: render_bytes
                                },
                                {
                                        data: 'readbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {data: 'jobfiles'},
index 2347542278062de698167682679d2f64f41f77e6..7685fe216d6366dde58f1609cf172959b214df57 100644 (file)
@@ -75,16 +75,7 @@ var oPoolList = {
                                },
                                {
                                        data: 'volretention',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display' || type == 'filter') {
-                                                       var time = Units.format_time_period(data);
-                                                       ret = time.value + ' ' + time.format + ((time.value > 0) ? 's': '');
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       }
+                                       render: render_time_period
                                },
                                {
                                        data: 'autoprune',
index 56c5035c77e5affba1f5c00417a188f9ca000344..543307849d675081b50419ca75e1b382ac9cc5d9 100644 (file)
                                        <th>LabelType</th>
                                        <th><%[ First written ]%></th>
                                        <th><%[ Last written ]%></th>
-                                       <th><%[ Vol. bytes ]%></th>
+                                       <th class="w3-center"><%[ Vol. bytes ]%></th>
                                        <th><%[ Max. vol. bytes ]%></th>
                                        <th><%[ Max. vol. jobs ]%></th>
                                        <th><%[ Max. vol. files ]%></th>
                                        <th>LabelType</th>
                                        <th><%[ First written ]%></th>
                                        <th><%[ Last written ]%></th>
-                                       <th><%[ Vol. bytes ]%></th>
+                                       <th class="w3-center"><%[ Vol. bytes ]%></th>
                                        <th><%[ Max. vol. bytes ]%></th>
                                        <th><%[ Max. vol. jobs ]%></th>
                                        <th><%[ Max. vol. files ]%></th>
@@ -334,32 +334,20 @@ var oVolumeList = {
                                },
                                {
                                        data: 'firstwritten',
+                                       render: render_date,
                                        visible: false
                                },
-                               {data: 'lastwritten'},
+                               {
+                                       data: 'lastwritten',
+                                       render: render_date
+                               },
                                {
                                        data: 'volbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       }
+                                       render: render_bytes
                                },
                                {
                                        data: 'maxvolbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -372,28 +360,12 @@ var oVolumeList = {
                                },
                                {
                                        data: 'volcapacitybytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        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;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -402,15 +374,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'volholebytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -431,6 +395,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'labeldate',
+                                       render: render_date,
                                        visible: false
                                },
                                {
@@ -458,44 +423,17 @@ var oVolumeList = {
                                },
                                {
                                        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;
-                                       },
+                                       render: render_time_period,
                                        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;
-                                       },
+                                       render: render_time_period,
                                        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;
-                                       },
+                                       render: render_time_period,
                                        visible: false
                                },
                                {
@@ -504,30 +442,12 @@ var oVolumeList = {
                                },
                                {
                                        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;
-                                       },
+                                       render: render_time_period,
                                        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;
-                                       },
+                                       render: render_time_period,
                                        visible: false
                                },
                                {
@@ -540,15 +460,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'lastpartbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -593,6 +505,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'whenexpire',
+                                       render: render_date_ex,
                                        visible: false
                                },
                                {
index f3c9d518e4637c506384499c1cf7ffa6a223e16b..14e8fa6820ed76b33cd998758bbc0835557f8015 100644 (file)
@@ -263,28 +263,12 @@ var oJobsToRestoreList = {
                                },
                                {
                                        data: 'jobstatus',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display') {
-                                                       ret = JobStatus.get_icon(data).outerHTML;
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       },
+                                       render: render_jobstatus,
                                        aresponsivePriority: 6
                                },
                                {
                                        data: 'jobbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        responsivePriority: 7
                                },
                                {
@@ -293,6 +277,7 @@ var oJobsToRestoreList = {
                                },
                                {
                                        data: 'endtime',
+                                       render: render_date,
                                        responsivePriority: 9
                                },
                                {
index 681a40d320ff57ce095fbeee10bc6eb7582c9012..eeef9e7bda1b3729d07b9f747495f100f0e901e5 100644 (file)
@@ -249,32 +249,20 @@ var oVolumeList = {
                                },
                                {
                                        data: 'firstwritten',
+                                       render: render_date,
                                        visible: false
                                },
-                               {data: 'lastwritten'},
+                               {
+                                       data: 'lastwritten',
+                                       render: render_date
+                               },
                                {
                                        data: 'volbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       }
+                                       render: render_bytes
                                },
                                {
                                        data: 'maxvolbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -287,28 +275,12 @@ var oVolumeList = {
                                },
                                {
                                        data: 'volcapacitybytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        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;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -317,15 +289,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'volholebytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -346,6 +310,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'labeldate',
+                                       render: render_date,
                                        visible: false
                                },
                                {
@@ -373,44 +338,17 @@ var oVolumeList = {
                                },
                                {
                                        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;
-                                       },
+                                       render: render_time_period,
                                        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;
-                                       },
+                                       render: render_time_period,
                                        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;
-                                       },
+                                       render: render_time_period,
                                        visible: false
                                },
                                {
@@ -419,30 +357,12 @@ var oVolumeList = {
                                },
                                {
                                        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;
-                                       },
+                                       render: render_time_period,
                                        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;
-                                       },
+                                       render: render_time_period,
                                        visible: false
                                },
                                {
@@ -455,15 +375,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'lastpartbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {
@@ -508,6 +420,7 @@ var oVolumeList = {
                                },
                                {
                                        data: 'whenexpire',
+                                       render: render_date_ex,
                                        visible: false
                                },
                                {
index ab368e610ed3c7b9ee69fca6234d3bfecf3998e1..82d4b6d7d9e3f3a3133be8298d6322de01e1799b 100644 (file)
                                        </tr>
                                        <tr>
                                                <td><%[ First written ]%></td>
-                                               <td><strong><com:TActiveLabel ID="OFirstWritten" /></strong></td>
+                                               <td><strong><com:TActiveLabel CssClass="datetime" ID="OFirstWritten" /></strong></td>
                                        </tr>
                                        <tr>
                                                <td><%[ Last written ]%></td>
-                                               <td><strong><com:TActiveLabel ID="OLastWritten" /></strong></td>
+                                               <td><strong><com:TActiveLabel CssClass="datetime" ID="OLastWritten" /></strong></td>
                                        </tr>
                                </table>
                        </div>
                                        </tr>
                                        <tr>
                                                <td><%[ When expire ]%></td>
-                                               <td><strong><com:TActiveLabel ID="OWhenExpire" /></strong></td>
+                                               <td><strong><com:TActiveLabel CssClass="datetime" ID="OWhenExpire" /></strong></td>
                                        </tr>
                                </table>
                        </div>
@@ -454,25 +454,25 @@ var oJobsOnVolumeList = {
                                },
                                {
                                        data: 'schedtime',
+                                       render: render_date,
                                        visible: false
                                },
-                               {data: 'starttime'},
-                               {data: 'endtime'},
+                               {
+                                       data: 'starttime',
+                                       render: render_date
+                               },
+                               {
+                                       data: 'endtime',
+                                       render: render_date
+                               },
                                {
                                        data: 'realendtime',
+                                       render: render_date,
                                        visible: false
                                },
                                {
                                        data: 'jobtdate',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
@@ -481,53 +481,21 @@ var oJobsOnVolumeList = {
                                },
                                {
                                        data: 'volsessiontime',
-                                       render: function (data, type, row) {
-                                               var t;
-                                               if (type == 'display') {
-                                                       t = Units.format_date(data)
-                                               } else {
-                                                       t = data;
-                                               }
-                                               return t;
-                                       },
+                                       render: render_date_ts,
                                        visible: false
                                },
                                {
                                        data: 'jobstatus',
-                                       render: function (data, type, row) {
-                                               var ret;
-                                               if (type == 'display') {
-                                                       ret = JobStatus.get_icon(data).outerHTML;
-                                               } else {
-                                                       ret = data;
-                                               }
-                                               return ret;
-                                       },
+                                       render: render_jobstatus,
                                        className: 'w3-center'
                                },
                                {
                                        data: 'jobbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       }
+                                       render: render_bytes
                                },
                                {
                                        data: 'readbytes',
-                                       render: function (data, type, row) {
-                                               var s;
-                                               if (type == 'display') {
-                                                       s = Units.get_formatted_size(data)
-                                               } else {
-                                                       s = data;
-                                               }
-                                               return s;
-                                       },
+                                       render: render_bytes,
                                        visible: false
                                },
                                {data: 'jobfiles'},
@@ -608,11 +576,11 @@ var oJobsOnVolumeList = {
                        },
                        {
                                className: "dt-center",
-                               targets: [ 1, 3, 4, 5, 7, 9, 10 ]
+                               targets: [ 1, 3, 4, 5, 7, 8, 9, 10 ]
                        },
                        {
                                className: "dt-body-right",
-                               targets: [ 8 ]
+                               targets: [ 15 ]
                        }],
                        order: [1, 'desc'],
                        initComplete: function () {
index e68a7b06447c9173219f19b012aa7e0e83045490..1855415f144435148fa6eb917575a4d19d200b14 100644 (file)
@@ -148,15 +148,7 @@ var oJobScheduleList = {
                                },
                                {
                                        data: 'level',
-                                       render: function(data, type, row) {
-                                               var ret;
-                                               if (!data) {
-                                                       ret = '-';
-                                               } else {
-                                                       ret = JobLevel.get_level(data);
-                                               }
-                                               return ret;
-                                       }
+                                       render: render_level
                                },
                                {
                                        data: 'type',
@@ -167,9 +159,7 @@ var oJobScheduleList = {
                                {data: 'priority'},
                                {
                                        data: 'schedtime_epoch',
-                                       render: function(data, type, row) {
-                                               return Units.format_date(data);
-                                       }
+                                       render: render_date_ts
                                },
                                <%=empty($this->Job) ? '{data: "name"},' : ''%>
                                {data: 'client'},