Skip to content

Commit 8e59072

Browse files
committed
Removed LAD and Realtime modes
1 parent c1bbc4f commit 8e59072

File tree

9 files changed

+78
-159
lines changed

9 files changed

+78
-159
lines changed

platform/features/conductor-v2/res/templates/mode-selector/mode-menu.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@
2222
<div class="contents">
2323
<div class="pane left menu-items">
2424
<ul>
25-
<li ng-repeat="option in ngModel.options"
26-
ng-click="ngModel.selected=option">
25+
<li ng-repeat="(key, metadata) in ngModel.options"
26+
ng-click="ngModel.selectedKey=key">
2727
<a
28-
ng-mouseover="representation.activeMetadata = option.metadata"
28+
ng-mouseover="representation.activeMetadata = metadata"
2929
ng-mouseleave="representation.activeMetadata = undefined">
3030
<span class="ui-symbol icon type-icon">
31-
{{option.metadata.glyph}}
31+
{{metadata.glyph}}
3232
</span>
33-
{{option.metadata.name}}
33+
{{metadata.name}}
3434
</a>
3535
</li>
3636
</ul>

platform/features/conductor-v2/res/templates/mode-selector/mode-selector.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
<span ng-controller="ClickAwayController as modeController">
2323
<div class="s-menu-btn"
2424
ng-click="modeController.toggle()">
25-
<span class="title-label">{{ngModel.selected.metadata.label}}</span>
25+
<span class="title-label">{{ngModel.options[ngModel.selectedKey]
26+
.label}}</span>
2627
</div>
2728
<div class="menu super-menu mini mode-selector-menu"
2829
ng-show="modeController.isActive()">

platform/features/conductor-v2/res/templates/time-conductor.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!-- Parent holder for time conductor. follow-mode | fixed-mode -->
22
<div ng-controller="TimeConductorController as tcController"
3-
class="holder grows flex-elem l-flex-row l-time-conductor {{modeModel.selected.metadata.key}}-mode {{timeSystemModel.selected.metadata.key}}-time-system">
3+
class="holder grows flex-elem l-flex-row l-time-conductor {{modeModel.selectedKey}}-mode {{timeSystemModel.selected.metadata.key}}-time-system">
44

55
<div class="flex-elem holder time-conductor-icon">
66
<div class="hand-little"></div>
@@ -27,7 +27,7 @@
2727
</mct-control>
2828
</span>
2929
<span class="l-time-range-input-w time-delta start-delta"
30-
ng-class="{'hide':(modeModel.selected.metadata.key === 'fixed')}">
30+
ng-class="{'hide':(modeModel.selectedKey === 'fixed')}">
3131
-
3232
<mct-control key="'datetime-field'"
3333
structure="{
@@ -57,7 +57,7 @@
5757
</mct-control>
5858
</span>
5959
<span class="l-time-range-input-w time-delta end-delta"
60-
ng-class="{'hide':(modeModel.selected.metadata.key === 'fixed')}">
60+
ng-class="{'hide':(modeModel.selectedKey === 'fixed')}">
6161
+
6262
<mct-control key="'datetime-field'"
6363
structure="{

platform/features/conductor-v2/src/ui/TimeConductorController.js

Lines changed: 64 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@
2323
define(
2424
[
2525
'./modes/FixedMode',
26-
'./modes/RealtimeMode',
27-
'./modes/LADMode',
26+
'./modes/FollowMode',
2827
'./TimeConductorValidation'
2928
],
30-
function (FixedMode, RealtimeMode, LADMode, TimeConductorValidation) {
29+
function (FixedMode, FollowMode, TimeConductorValidation) {
3130

3231
function TimeConductorController($scope, conductor, timeSystems) {
3332

@@ -45,12 +44,28 @@ define(
4544
this.timeSystems = timeSystems.map(function (timeSystemConstructor){
4645
return timeSystemConstructor();
4746
});
48-
// Populate a list of modes supported by the time conductor
49-
this.modes = [
50-
new FixedMode(this.conductor, this.timeSystems),
51-
new RealtimeMode(this.conductor, this.timeSystems),
52-
new LADMode(this.conductor, this.timeSystems)
53-
];
47+
48+
this.modes = {
49+
'fixed': {
50+
glyph: '\ue604',
51+
label: 'Fixed',
52+
name: 'Fixed Timespan Mode',
53+
description: 'Query and explore data that falls between two fixed datetimes.'
54+
},
55+
'latest': {
56+
glyph: '\u0044',
57+
label: 'LAD',
58+
name: 'LAD Mode',
59+
description: 'Latest Available Data mode monitors real-time streaming data as it comes in. The Time Conductor and displays will only advance when data becomes available.'
60+
},
61+
'realtime': {
62+
glyph: '\u0043',
63+
label: 'Real-time',
64+
name: 'Real-time Mode',
65+
description: 'Monitor real-time streaming data as it comes in. The Time Conductor and displays will automatically advance themselves based on a UTC clock.'
66+
}
67+
};
68+
this.selectedMode = undefined;
5469

5570
this.validation = new TimeConductorValidation(conductor);
5671
this.$scope = $scope;
@@ -63,14 +78,14 @@ define(
6378

6479
//Set the time conductor mode to the first one in the list,
6580
// effectively initializing the time conductor
66-
this.setMode(this.modes[0]);
81+
this.setMode('fixed');
6782
}
6883

6984
/**
7085
* @private
7186
*/
7287
TimeConductorController.prototype.initializeScope = function ($scope) {
73-
88+
var self = this;
7489
/*
7590
Represents the various time system options, and the currently
7691
selected time system in the view. Additionally holds the
@@ -87,7 +102,7 @@ define(
87102
selected mode in the view
88103
*/
89104
$scope.modeModel = {
90-
selected: undefined,
105+
selectedKey: undefined,
91106
options: this.modes
92107
};
93108
/*
@@ -98,13 +113,12 @@ define(
98113
end: 0
99114
};
100115

101-
$scope.$watch('modeModel.selected', this.setMode);
116+
$scope.$watch('modeModel.selectedKey', this.setMode);
102117
$scope.$watch('timeSystem', this.setTimeSystem);
103118

104119
$scope.$on('$destroy', function() {
105-
var mode = $scope.modeModel.selected;
106-
if (mode && mode.destroy) {
107-
mode.destroy();
120+
if (self.selectedMode) {
121+
self.selectedMode.destroy();
108122
}
109123
});
110124
};
@@ -142,7 +156,7 @@ define(
142156
* @see TimeConductorMode
143157
*/
144158
TimeConductorController.prototype.updateDeltasFromForm = function (formModel) {
145-
var mode = this.$scope.modeModel.selected,
159+
var mode = this.selectedMode,
146160
deltas = mode.deltas();
147161

148162
if (deltas !== undefined && this.validation.validateDeltas(formModel)) {
@@ -160,17 +174,42 @@ define(
160174
*/
161175
TimeConductorController.prototype.setMode = function (newMode, oldMode) {
162176
if (newMode !== oldMode) {
163-
if (oldMode) {
164-
oldMode.destroy();
165-
}
166-
newMode.initialize();
177+
this.$scope.modeModel.selectedKey = newMode;
167178

168-
var timeSystem = newMode.selectedTimeSystem();
179+
if (this.selectedMode) {
180+
this.selectedMode.destroy();
181+
}
182+
switch (newMode) {
183+
case 'fixed':
184+
this.selectedMode = new FixedMode(this.conductor, this.timeSystems);
185+
break;
186+
case 'realtime':
187+
// Filter time systems to only those with clock tick
188+
// sources
189+
var realtimeSystems = this.timeSystems.filter(function (timeSystem){
190+
return timeSystem.tickSources().some(function (tickSource){
191+
return tickSource.type() === 'clock';
192+
});
193+
});
194+
this.selectedMode = new FollowMode(this.conductor, realtimeSystems);
195+
break;
196+
case 'latest':
197+
// Filter time systems to only those with clock tick
198+
// sources
199+
var ladSystems = this.timeSystems.filter(function (timeSystem){
200+
return timeSystem.tickSources().some(function (tickSource){
201+
return tickSource.type() === 'data';
202+
});
203+
});
204+
this.selectedMode = new FollowMode(this.conductor, ladSystems);
205+
break;
206+
}
207+
this.selectedMode.initialize();
169208

170-
this.$scope.modeModel.selected = newMode;
209+
var timeSystem = this.selectedMode.selectedTimeSystem();
171210

172211
//Synchronize scope with time system on mode
173-
this.$scope.timeSystemModel.options = newMode.timeSystems().map(function (timeSystem) {
212+
this.$scope.timeSystemModel.options = this.selectedMode.timeSystems().map(function (timeSystem) {
174213
return timeSystem.metadata;
175214
});
176215
this.$scope.timeSystemModel.selected = timeSystem;
@@ -221,7 +260,7 @@ define(
221260
TimeConductorController.prototype.setTimeSystem = function (newTimeSystem) {
222261
if (newTimeSystem && newTimeSystem !== this.$scope.timeSystemModel.selected) {
223262
this.$scope.timeSystemModel.selected = newTimeSystem;
224-
var mode = this.$scope.modeModel.selected;
263+
var mode = this.selectedMode;
225264
mode.selectedTimeSystem(newTimeSystem);
226265
this.setDeltasFromTimeSystem(newTimeSystem);
227266
}

platform/features/conductor-v2/src/ui/modes/FixedMode.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,7 @@ define(
3333
* @constructor
3434
*/
3535
function FixedMode(conductor, timeSystems) {
36-
var metadata = {
37-
key: 'fixed',
38-
glyph: '\ue604',
39-
label: 'Fixed',
40-
name: 'Fixed Timespan Mode',
41-
description: 'Query and explore data that falls between two fixed datetimes.'
42-
};
43-
44-
TimeConductorMode.call(this, metadata, conductor, timeSystems);
36+
TimeConductorMode.call(this, conductor, timeSystems);
4537
}
4638

4739
FixedMode.prototype = Object.create(TimeConductorMode.prototype);

platform/features/conductor-v2/src/ui/modes/FollowMode.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ define(
3333
* the mode relevant, with both offsets defined relative to it.
3434
* @constructor
3535
*/
36-
function FollowMode(metadata, conductor, timeSystems) {
37-
TimeConductorMode.call(this, metadata, conductor, timeSystems);
36+
function FollowMode(conductor, timeSystems) {
37+
TimeConductorMode.call(this, conductor, timeSystems);
3838

3939
this._deltas = undefined;
4040
}

platform/features/conductor-v2/src/ui/modes/LADMode.js

Lines changed: 0 additions & 56 deletions
This file was deleted.

platform/features/conductor-v2/src/ui/modes/RealtimeMode.js

Lines changed: 0 additions & 55 deletions
This file was deleted.

platform/features/conductor-v2/src/ui/modes/TimeConductorMode.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ define(
3333
* @constructor
3434
* @param {TimeConductorMetadata} metadata
3535
*/
36-
function TimeConductorMode(metadata, conductor, timeSystems) {
37-
this.metadata = metadata;
38-
36+
function TimeConductorMode(conductor, timeSystems) {
3937
this.conductor = conductor;
4038
this._timeSystems = timeSystems;
4139
}

0 commit comments

Comments
 (0)