You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ss...@apache.org on 2014/01/10 19:27:55 UTC
git commit: Enabled toggling between relative and absolute timestamps
by clicking on them.
Updated Branches:
refs/heads/master 0e8da16ef -> 15c0ab2db
Enabled toggling between relative and absolute timestamps by clicking on them.
Note that your preference for which type you'd like is remembered
between sessions.
Issue: https://issues.apache.org/jira/browse/MESOS-789
Review: http://reviews.apache.org/r/16712
From: Thomas Rampelberg <th...@saunter.org>
Review: https://reviews.apache.org/r/16712
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/15c0ab2d
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/15c0ab2d
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/15c0ab2d
Branch: refs/heads/master
Commit: 15c0ab2db2b5596812d879a42d79b887c9a84bce
Parents: 0e8da16
Author: Ross Allen <ro...@gmail.com>
Authored: Fri Jan 10 10:01:36 2014 -0800
Committer: Ross Allen <ro...@gmail.com>
Committed: Fri Jan 10 10:01:36 2014 -0800
----------------------------------------------------------------------
src/Makefile.am | 3 +-
src/webui/master/static/css/mesos.css | 8 +++
.../master/static/directives/timestamp.html | 5 ++
src/webui/master/static/framework.html | 50 ++----------------
src/webui/master/static/frameworks.html | 40 ++-------------
src/webui/master/static/home.html | 53 +++-----------------
src/webui/master/static/index.html | 1 -
src/webui/master/static/js/app.js | 31 +++++++++++-
src/webui/master/static/slave.html | 21 +-------
src/webui/master/static/slaves.html | 23 ++-------
10 files changed, 65 insertions(+), 170 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 054ba2e..ef70770 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -448,7 +448,8 @@ nobase_dist_pkgdata_DATA += \
webui/master/static/slave.html \
webui/master/static/slave_executor.html \
webui/master/static/slave_framework.html \
- webui/master/static/slaves.html
+ webui/master/static/slaves.html \
+ webui/master/static/directives/timestamp.html
# Need to distribute/install webui images.
nobase_dist_pkgdata_DATA += \
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/css/mesos.css
----------------------------------------------------------------------
diff --git a/src/webui/master/static/css/mesos.css b/src/webui/master/static/css/mesos.css
index 083b596..0a2daec 100644
--- a/src/webui/master/static/css/mesos.css
+++ b/src/webui/master/static/css/mesos.css
@@ -57,6 +57,14 @@ th.unselected:after {
content: " ";
}
+time {
+ border-bottom: 1px #999 dashed;
+}
+
+time:hover {
+ cursor: pointer;
+}
+
.inline .btn-toggle,
.table-condensed .btn-toggle {
margin-bottom: -2px;
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/directives/timestamp.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/directives/timestamp.html b/src/webui/master/static/directives/timestamp.html
new file mode 100644
index 0000000..5e422b9
--- /dev/null
+++ b/src/webui/master/static/directives/timestamp.html
@@ -0,0 +1,5 @@
+<time datetime="{{value | isoDate}}" ng-click="toggle()" ng-show="longDate">
+ {{value | isoDate}}</time>
+<time datetime="{{value | isoDate}}" ng-click="toggle()" ng-hide="longDate">
+ {{value | relativeDate:pollTime}}</time>
+<span ng-transclude></span>
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/framework.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/framework.html b/src/webui/master/static/framework.html
index 7dc6205..72e14df 100644
--- a/src/webui/master/static/framework.html
+++ b/src/webui/master/static/framework.html
@@ -24,28 +24,12 @@
<dd>{{framework.user}}</dd>
<dt>Registered:</dt>
<dd>
- <abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{framework.registered_time * 1000}}"></m-timestamp>
</dd>
<dt>Re-registered:</dt>
<dd ng-show="!framework.reregistered_time">-</dd>
<dd ng-show="framework.reregistered_time">
- <abbr title="{{framework.reregistered_time * 1000 | isoDate}}">
- {{framework.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{framework.reregistered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{framework.reregistered_time * 1000}}"></m-timestamp>
</dd>
<dt>Active tasks:</dt>
<dd>{{framework.tasks.length | number}}</dd>
@@ -95,15 +79,7 @@
<td>{{task.name}}</td>
<td>{{task.state | truncateMesosState}}</td>
<td>
- <abbr title="{{task.start_time | isoDate}}">
- {{task.start_time | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{task.start_time | isoDate}}"
- tooltip="Copy start time"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{task.start_time}}"></m-timestamp>
</td>
<td>
<span data-ng-show="slaves[task.slave_id]">
@@ -168,26 +144,10 @@
<td>{{task.name}}</td>
<td>{{task.state | truncateMesosState}}</td>
<td>
- <abbr title="{{task.start_time | isoDate}}">
- {{task.start_time | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{task.start_time | isoDate}}"
- tooltip="Copy start time"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{task.start_time}}"></m-timestamp>
</td>
<td>
- <abbr title="{{task.finish_time | isoDate}}">
- {{task.finish_time | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{task.finish_time | isoDate}}"
- tooltip="Copy finish time"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{task.finish_time}}"></m-timestamp>
</td>
<td>
<a data-ng-show="slaves[task.slave_id]"
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/frameworks.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/frameworks.html b/src/webui/master/static/frameworks.html
index f83cffe..39e7883 100644
--- a/src/webui/master/static/frameworks.html
+++ b/src/webui/master/static/frameworks.html
@@ -70,27 +70,11 @@
<td>{{framework.resources.mem * (1024 * 1024) | dataSize}}</td>
<td>{{framework.max_share * 100 | number}}%</td>
<td>
- <abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{framework.registered_time * 1000}}"></m-timestamp>
</td>
<td ng-show="!framework.reregistered_time">-</td>
<td ng-show="framework.reregistered_time">
- <abbr title="{{framework.reregistered_time * 1000 | isoDate}}">
- {{framework.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{framework.reregistered_time * 1000}}"></m-timestamp>
</td>
</tr>
</tbody>
@@ -138,26 +122,10 @@
<td>{{framework.user}}</td>
<td>{{framework.name}}</td>
<td>
- <abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{framework.reregistered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{framework.registered_time * 1000}}"></m-timestamp>
</td>
<td>
- <abbr title="{{framework.unregistered_time * 1000 | isoDate}}">
- {{framework.unregistered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{framework.unregistered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{framework.unregistered_time * 1000}}"></m-timestamp>
</td>
</tr>
</tbody>
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/home.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/home.html b/src/webui/master/static/home.html
index cd2ec75..fb3a38e 100644
--- a/src/webui/master/static/home.html
+++ b/src/webui/master/static/home.html
@@ -23,28 +23,13 @@
<dd>{{state.pid.split("@")[1]}}</dd>
<dt>Built:</dt>
<dd>
- <abbr title="{{state.build_time * 1000 | isoDate}}">
- {{state.build_time * 1000 | relativeDate:pollTime}}</abbr>
- by <i>{{state.build_user}}</i>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{state.build_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{state.build_time * 1000}}">
+ by <i>{{state.build_user}}</i>
+ </m-timestamp>
</dd>
<dt>Started:</dt>
<dd>
- <abbr title="{{state.start_time * 1000 | isoDate}}">
- {{state.start_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{state.start_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{state.start_time * 1000}}"></m-timestamp>
</dd>
</dl>
@@ -173,15 +158,7 @@
<td>{{task.name}}</td>
<td>{{task.state | truncateMesosState}}</td>
<td>
- <abbr title="{{task.start_time | isoDate}}">
- {{task.start_time | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{task.start_time | isoDate}}"
- tooltip="Copy start time"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{task.start_time}}"></m-timestamp>
</td>
<td>
<span data-ng-show="slaves[task.slave_id]">
@@ -249,26 +226,10 @@
<td>{{task.name}}</td>
<td>{{task.state | truncateMesosState}}</td>
<td>
- <abbr title="{{task.start_time | isoDate}}">
- {{task.start_time | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{task.start_time | isoDate}}"
- tooltip="Copy start time"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{task.start_time}}"></m-timestamp>
</td>
<td>
- <abbr title="{{task.finish_time | isoDate}}">
- {{task.finish_time | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{task.finish_time | isoDate}}"
- tooltip="Copy finish time"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{task.finish_time}}"></m-timestamp>
</td>
<td>
<a data-ng-show="slaves[task.slave_id]"
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/index.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/index.html b/src/webui/master/static/index.html
index a5833f6..7133ecd 100644
--- a/src/webui/master/static/index.html
+++ b/src/webui/master/static/index.html
@@ -20,7 +20,6 @@
</div>
<div ng-controller="MainCntl">
-
<div class="navbar navbar-inverse navbar-fixed-top" id="navbar">
<div class="navbar-inner">
<div class="container">
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/js/app.js
----------------------------------------------------------------------
diff --git a/src/webui/master/static/js/app.js b/src/webui/master/static/js/app.js
index 7977850..5569d11 100644
--- a/src/webui/master/static/js/app.js
+++ b/src/webui/master/static/js/app.js
@@ -73,12 +73,16 @@
})
.filter('isoDate', function($filter) {
return function(date) {
- return $filter('date')(date, 'yyyy-MM-ddTH:mm:ssZ');
+ var i = parseInt(date, 10);
+ if (_.isNaN(i)) { return '' };
+ return $filter('date')(i, 'yyyy-MM-ddTH:mm:ssZ');
};
})
.filter('relativeDate', function() {
return function(date, refDate) {
- return relativeDate(date, refDate);
+ var i = parseInt(date, 10);
+ if (_.isNaN(i)) { return '' };
+ return relativeDate(i, refDate);
};
})
.filter('slice', function() {
@@ -191,5 +195,28 @@
});
}
};
+ }])
+ .directive('mTimestamp', [ '$rootScope', function($rootScope) {
+ return {
+ restrict: 'E',
+ transclude: true,
+ scope: {
+ value: '@'
+ },
+ link: function($scope, element, attrs) {
+ $scope.longDate = JSON.parse(
+ localStorage.getItem('longDate') || false);
+
+ $scope.$on('mTimestamp.toggle', function() {
+ $scope.longDate = !$scope.longDate;
+ });
+
+ $scope.toggle = function() {
+ localStorage.setItem('longDate', !$scope.longDate);
+ $rootScope.$broadcast('mTimestamp.toggle');
+ };
+ },
+ templateUrl: 'static/directives/timestamp.html'
+ }
}]);
})();
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/slave.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/slave.html b/src/webui/master/static/slave.html
index 24e855b..f30d914 100644
--- a/src/webui/master/static/slave.html
+++ b/src/webui/master/static/slave.html
@@ -32,28 +32,11 @@
<dd>{{state.master_hostname}}</dd>
<dt>Started:</dt>
<dd>
- <abbr title="{{state.start_time * 1000 | isoDate}}">
- {{state.start_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{state.start_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{state.start_time * 1000}}"></m-timestamp>
</dd>
<dt>Built:</dt>
<dd>
- <abbr title="{{state.build_time * 1000 | isoDate}}">
- {{state.build_time * 1000 | relativeDate:pollTime}}</abbr>
- by <i>{{state.build_user}}</i>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{state.build_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- </button>
+ <m-timestamp value="{{state.build_time * 1000}}"></m-timestamp>
</dd>
<dt>Host:</dt>
<dd>
http://git-wip-us.apache.org/repos/asf/mesos/blob/15c0ab2d/src/webui/master/static/slaves.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/slaves.html b/src/webui/master/static/slaves.html
index ee41b26..ef5b662 100644
--- a/src/webui/master/static/slaves.html
+++ b/src/webui/master/static/slaves.html
@@ -59,28 +59,11 @@
<td>{{slave.resources.mem * (1024 * 1024) | dataSize}}</td>
<td>{{slave.resources.disk * (1024 * 1024) | dataSize}}</td>
<td>
- <abbr title="{{slave.registered_time * 1000 | isoDate}}">
- {{slave.registered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{slave.registered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- <i class="icon-file"></i>
- </button>
+
+ <m-timestamp value="{{slave.registered_time * 1000}}"></m-timestamp>
</td>
<td>
- <abbr title="{{slave.reregistered_time * 1000 | isoDate}}">
- {{slave.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
- <button class="btn btn-mini btn-toggle"
- clipboard
- data-clipboard-text="{{slave.reregistered_time * 1000 | isoDate}}"
- tooltip="Copy timestamp"
- tooltip-placement="right"
- tooltip-trigger="clipboardhover">
- <i class="icon-file"></i>
- </button>
+ <m-timestamp value="{{slave.reregistered_time * 1000}}"></m-timestamp>
</td>
</tr>
</table>