mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-23 13:21:21 +02:00
GUI -- Strange Device View Table layout fixed in Safari.
Change-Id: Icfb3d80654a2ab009ca12b64f35a20ba98f37681
This commit is contained in:
parent
cd48d22d50
commit
55ee09b1fa
@ -122,6 +122,28 @@
|
||||
return patt.test(ua);
|
||||
}
|
||||
|
||||
// Returns true if the current browser determined to be Chrome
|
||||
function isChrome() {
|
||||
var isChromium = $window.chrome,
|
||||
vendorName = $window.navigator.vendor,
|
||||
isOpera = $window.navigator.userAgent.indexOf("OPR") > -1;
|
||||
return (isChromium !== null &&
|
||||
isChromium !== undefined &&
|
||||
vendorName === "Google Inc." &&
|
||||
isOpera == false);
|
||||
}
|
||||
|
||||
// Returns true if the current browser determined to be Safari
|
||||
function isSafari() {
|
||||
return ($window.navigator.userAgent.indexOf('Safari') !== -1 &&
|
||||
$window.navigator.userAgent.indexOf('Chrome') === -1);
|
||||
}
|
||||
|
||||
// Returns true if the current browser determined to be Firefox
|
||||
function isFirefox() {
|
||||
return typeof InstallTrigger !== 'undefined';
|
||||
}
|
||||
|
||||
// search through an array of objects, looking for the one with the
|
||||
// tagged property matching the given key. tag defaults to 'id'.
|
||||
// returns the index of the matching object, or -1 for no match.
|
||||
@ -249,6 +271,9 @@
|
||||
areFunctionsNonStrict: areFunctionsNonStrict,
|
||||
windowSize: windowSize,
|
||||
isMobile: isMobile,
|
||||
isChrome: isChrome,
|
||||
isSafari: isSafari,
|
||||
isFirefox: isFirefox,
|
||||
debugOn: debugOn,
|
||||
find: find,
|
||||
inArray: inArray,
|
||||
|
@ -251,8 +251,9 @@
|
||||
$log.log('OvDeviceCtrl has been created');
|
||||
}])
|
||||
|
||||
.directive('deviceDetailsPanel', ['$rootScope', '$window', 'KeyService',
|
||||
function ($rootScope, $window, ks) {
|
||||
.directive('deviceDetailsPanel',
|
||||
['$rootScope', '$window', '$timeout', 'KeyService',
|
||||
function ($rootScope, $window, $timeout, ks) {
|
||||
return function (scope) {
|
||||
var unbindWatch;
|
||||
|
||||
@ -262,10 +263,19 @@
|
||||
wSize = fs.windowSize(pStartY);
|
||||
pHeight = wSize.height;
|
||||
}
|
||||
heightCalc();
|
||||
|
||||
createDetailsPane();
|
||||
function initPanel() {
|
||||
heightCalc();
|
||||
createDetailsPane();
|
||||
}
|
||||
|
||||
// Safari has a bug where it renders the fixed-layout table wrong
|
||||
// if you ask for the window's size too early
|
||||
if (scope.onos.browser === 'safari') {
|
||||
$timeout(initPanel);
|
||||
} else {
|
||||
initPanel();
|
||||
}
|
||||
// create key bindings to handle panel
|
||||
ks.keyBindings({
|
||||
esc: [closePanel, 'Close the details panel'],
|
||||
@ -276,6 +286,7 @@
|
||||
['scroll down', 'See more devices']
|
||||
]);
|
||||
|
||||
// if the panelData changes
|
||||
scope.$watch('panelData', function () {
|
||||
if (!fs.isEmptyObject(scope.panelData)) {
|
||||
populateDetails(scope.panelData);
|
||||
@ -283,6 +294,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
// if the window size changes
|
||||
unbindWatch = $rootScope.$watchCollection(
|
||||
function () {
|
||||
return {
|
||||
|
@ -145,7 +145,7 @@
|
||||
|
||||
</head>
|
||||
<body class="light" ng-app="onosApp">
|
||||
<div id="frame" ng-controller="OnosCtrl as onosCtrl">
|
||||
<div id="frame" ng-controller="OnosCtrl as onosCtrl" detect-browser>
|
||||
<div id="mast"
|
||||
ng-controller="MastCtrl as mastCtrl"
|
||||
ng-include="'app/fw/mast/mast.html'"></div>
|
||||
|
@ -69,12 +69,12 @@
|
||||
angular.module('onosApp', moduleDependencies)
|
||||
|
||||
.controller('OnosCtrl', [
|
||||
'$log', '$route', '$routeParams', '$location',
|
||||
'$log', '$scope', '$route', '$routeParams', '$location',
|
||||
'KeyService', 'ThemeService', 'GlyphService', 'VeilService',
|
||||
'PanelService', 'FlashService', 'QuickHelpService',
|
||||
'WebSocketService',
|
||||
|
||||
function ($log, $route, $routeParams, $location,
|
||||
function ($log, $scope, $route, $routeParams, $location,
|
||||
ks, ts, gs, vs, ps, flash, qhs, wss) {
|
||||
var self = this;
|
||||
|
||||
@ -83,6 +83,9 @@
|
||||
self.$location = $location;
|
||||
self.version = '1.3.0';
|
||||
|
||||
// shared object inherited by all views:
|
||||
$scope.onos = {};
|
||||
|
||||
// initialize services...
|
||||
ts.init();
|
||||
ks.installOn(d3.select('body'));
|
||||
@ -131,5 +134,29 @@
|
||||
});
|
||||
}
|
||||
});
|
||||
}])
|
||||
|
||||
.directive('detectBrowser', ['$log', 'FnService',
|
||||
function ($log, fs) {
|
||||
return function (scope) {
|
||||
var body = d3.select('body'),
|
||||
browser = '';
|
||||
if (fs.isChrome()) {
|
||||
browser = 'chrome';
|
||||
} else if (fs.isSafari()) {
|
||||
browser = 'safari';
|
||||
} else if (fs.isFirefox()) {
|
||||
browser = 'firefox';
|
||||
}
|
||||
body.classed(browser, true);
|
||||
scope.onos.browser = browser;
|
||||
|
||||
if (fs.isMobile()) {
|
||||
body.classed('mobile', true);
|
||||
scope.onos.mobile = true;
|
||||
}
|
||||
|
||||
$log.debug('Detected browser is', fs.cap(browser));
|
||||
};
|
||||
}]);
|
||||
}());
|
||||
|
Loading…
x
Reference in New Issue
Block a user