4840: Workbench selection actions are submitted by POST.
[arvados.git] / apps / workbench / app / assets / javascripts / dates.js
index 4b90ab0a343735fca9de57dce9267dcd4222aca3..5e4b804a2d83e0b977f208dd99be588d9ecc8271 100644 (file)
@@ -1,10 +1,25 @@
+jQuery(function($){
 $(document).on('ajax:complete arv:pane:loaded ready', function() {
     $('[data-utc-date]').each(function(i, elm) {
-        var re = /(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d) UTC/;
-        var v = $(elm).attr('data-utc-date').match(re);
+        // Try matching the date using a couple of different formats.
+        var v = $(elm).attr('data-utc-date').match(/(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d) UTC/);
+        if (!v) {
+            v = $(elm).attr('data-utc-date').match(/(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z/);
+        }
+
         if (v) {
+            // Create a new date object from the timestamp so the browser can
+            // render the date based on the locale/timezone.
             var ts = new Date(Date.UTC(v[1], v[2]-1, v[3], v[4], v[5], v[6]));
-            $(elm).text(ts.toLocaleTimeString() + " " + ts.toLocaleDateString());
+            if ($(elm).attr('data-utc-date-opts') && $(elm).attr('data-utc-date-opts').match(/noseconds/)) {
+                $(elm).text((ts.getHours() > 12 ? (ts.getHours()-12) : ts.getHours())
+                            + ":" + (ts.getMinutes() < 10 ? '0' : '') + ts.getMinutes()
+                            + (ts.getHours() >= 12 ? " PM " : " AM ")
+                            + ts.toLocaleDateString());
+            } else {
+                $(elm).text(ts.toLocaleTimeString() + " " + ts.toLocaleDateString());
+            }
         }
     });
 });
+});