blob: cacd5e07fa3baafa8bdcd5ceba819cdfd05f4c16 [file] [log] [blame]
/*
* Copyright 2015 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 -- App View Module
*/
(function () {
'use strict';
var selRow, selection;
angular.module('ovApp', [])
.controller('OvAppCtrl',
['$log', '$scope', 'TableService', 'TableBuilderService', 'WebSocketService',
function ($log, $scope, ts, tbs, wss) {
function selCb($event, row) {
selRow = angular.element($event.currentTarget);
selection = row;
$log.debug('Got a click on:', row);
// adjust which toolbar buttons are selected
d3.select('#app-activate').classed('active', row && row.state === 'INSTALLED');
d3.select('#app-deactivate').classed('active', row && row.state === 'ACTIVE');
d3.select('#app-uninstall').classed('active', row);
}
d3.select('#app-install').on('click', function () {
$log.debug('Initiating install');
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);
document.getElementById('file').dispatchEvent(evt);
});
$scope.refresh = function () {
$log.debug('Refreshing application page');
ts.resetSortIcons();
$scope.sortCallback();
};
document.getElementById('app-form-response').onload = function () {
document.getElementById('app-form').reset();
$scope.refresh();
}
function appAction(action) {
if (selection) {
$log.debug('Initiating uninstall of', selection);
wss.sendEvent('appManagementRequest', {action: action, name: selection.id});
}
}
d3.select('#file').on('change', function () {
var file = document.getElementById('file').value.replace('C:\\fakepath\\', '');
$log.info('Handling file', file);
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);
document.getElementById('app-upload').dispatchEvent(evt);
});
d3.select('#app-uninstall').on('click', function () { appAction('uninstall'); });
d3.select('#app-activate').on('click', function () { appAction('activate'); });
d3.select('#app-deactivate').on('click', function () { appAction('deactivate'); });
tbs.buildTable({
scope: $scope,
tag: 'app',
selCb: selCb
});
$log.log('OvAppCtrl has been created');
}]);
}());