From 400ebbfffd835749bae37d3e6610c97dd46dd96e Mon Sep 17 00:00:00 2001 From: Simon Hunt Date: Fri, 6 Jan 2017 20:07:50 -0800 Subject: [PATCH] Skeleton implementation of TableDetailService, to house common code for creating detail panels for table item selection. Change-Id: I547f74a2e42699e4242cb8616f0edf3076019e88 --- .../main/webapp/app/fw/widget/tableDetail.js | 66 +++++++++++++++++++ .../src/main/webapp/app/view/device/device.js | 29 +++++++- web/gui/src/main/webapp/index.html | 1 + 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 web/gui/src/main/webapp/app/fw/widget/tableDetail.js diff --git a/web/gui/src/main/webapp/app/fw/widget/tableDetail.js b/web/gui/src/main/webapp/app/fw/widget/tableDetail.js new file mode 100644 index 0000000000..57f65a7756 --- /dev/null +++ b/web/gui/src/main/webapp/app/fw/widget/tableDetail.js @@ -0,0 +1,66 @@ +/* + * Copyright 2017-present Open Networking Laboratory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + ONOS GUI -- Widget -- Table Detail Panel Service + */ +(function () { + 'use strict'; + + // injected refs + var $log, $interval, $timeout, fs, wss; + + // constants + // var refreshInterval = 2000; + + function noop() {} + + // TODO: describe the input object for the main function + // example params to (functionX): + // { + // ... + // } + function buildBasePanel(opts) { + var popTopF = fs.isF(opts.popTop) || noop, + popMidF = fs.isF(opts.popMid) || noop, + popBotF = fs.isF(opts.popBot) || noop; + + $log.debug('options are', opts); + + // TODO use panel service to create base panel + + // TODO: create divs, and pass into invocations of popTopF(div), etc. + } + + // more functions + + // TODO: add ref to PanelService + angular.module('onosWidget') + .factory('TableDetailService', + ['$log', '$interval', '$timeout', 'FnService', 'WebSocketService', + + function (_$log_, _$interval_, _$timeout_, _fs_, _wss_) { + $log = _$log_; + $interval = _$interval_; + $timeout = _$timeout_; + fs = _fs_; + wss = _wss_; + + return { + buildBasePanel: buildBasePanel + }; + }]); +}()); diff --git a/web/gui/src/main/webapp/app/view/device/device.js b/web/gui/src/main/webapp/app/view/device/device.js index c85f5ec7f7..ec8d8b5722 100644 --- a/web/gui/src/main/webapp/app/view/device/device.js +++ b/web/gui/src/main/webapp/app/view/device/device.js @@ -258,14 +258,29 @@ detailsPanel.hide(); } + // Sample functions for detail panel creation + function popTop(div) { + $log.debug('populateTop'); + // TODO: real work + // div.append(.....); + // div.append(.....); + // div.append(.....); + } + + function popMid(div) { + $log.debug('populateMiddle'); + // TODO: real work + } + angular.module('ovDevice', []) .controller('OvDeviceCtrl', - ['$log', '$scope', '$location', 'TableBuilderService', 'FnService', + ['$log', '$scope', '$location', 'TableBuilderService', + 'TableDetailService', 'FnService', 'MastService', 'PanelService', 'WebSocketService', 'IconService', 'NavService', 'KeyService', function (_$log_, _$scope_, _$location_, - tbs, _fs_, _mast_, _ps_, _wss_, _is_, _ns_, _ks_) { + tbs, tds, _fs_, _mast_, _ps_, _wss_, _is_, _ns_, _ks_) { var params, handlers = {}; @@ -314,6 +329,16 @@ selCb: selCb }); + + // ==================== for testing for now =============== + // TODO: more than just an example + tds.buildBasePanel({ + popTop: popTop, + popMid: popMid + }); + // ==================== for testing for now =============== + + $scope.nav = function (path) { if ($scope.selId) { ns.navTo(path, { devId: $scope.selId }); diff --git a/web/gui/src/main/webapp/index.html b/web/gui/src/main/webapp/index.html index 9f321f22a2..79542fa9b7 100644 --- a/web/gui/src/main/webapp/index.html +++ b/web/gui/src/main/webapp/index.html @@ -81,6 +81,7 @@ +