Fill in spec for the controller which maintains a set of applicable and selected view options to populate the view switcher. Part of Browse mode and, in turn, part of the common user interface elements that are being transitioned for WTD-574.
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
/*global define,Promise*/
|
|
|
|
/**
|
|
* Module defining ViewSwitcherController. Created by vwoeltje on 11/7/14.
|
|
*/
|
|
define(
|
|
[],
|
|
function () {
|
|
"use strict";
|
|
|
|
/**
|
|
* Controller for the view switcher; populates and maintains a list
|
|
* of applicable views for a represented domain object.
|
|
* @constructor
|
|
*/
|
|
function ViewSwitcherController($scope) {
|
|
// If the view capability gets refreshed, try to
|
|
// keep the same option chosen.
|
|
function findMatchingOption(options, selected) {
|
|
var i;
|
|
|
|
if (selected) {
|
|
for (i = 0; i < options.length; i += 1) {
|
|
if (options[i].key === selected.key) {
|
|
return options[i];
|
|
}
|
|
}
|
|
}
|
|
|
|
return options[0];
|
|
}
|
|
|
|
// Get list of views, read from capability
|
|
function updateOptions(views) {
|
|
var options = views || [];
|
|
|
|
$scope.switcher = {
|
|
options: options,
|
|
selected: findMatchingOption(
|
|
options,
|
|
($scope.switcher || {}).selected
|
|
)
|
|
};
|
|
}
|
|
|
|
// Update view options when the in-scope results of using the
|
|
// view capability change.
|
|
$scope.$watch("view", updateOptions);
|
|
}
|
|
|
|
return ViewSwitcherController;
|
|
}
|
|
); |