1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 19:42:01 +02:00
OpenSTF/res/app/control-panes/dashboard/navigation/navigation-controller.js
Gunther Brunner 711ab4a8e5 Updated npm dependencies.
ProtobufJS and Bluebird require further work.
2016-08-03 20:08:30 +09:00

77 lines
2 KiB
JavaScript

var _ = require('lodash')
module.exports = function NavigationCtrl($scope, $rootScope) {
var faviconIsSet = false
function setUrlFavicon(url) {
var FAVICON_BASE_URL = '//www.google.com/s2/favicons?domain_url='
$scope.urlFavicon = FAVICON_BASE_URL + url
faviconIsSet = true
}
function resetFavicon() {
$scope.urlFavicon = require('./default-favicon.png')
faviconIsSet = false
}
resetFavicon()
$scope.textUrlChanged = function() {
if (faviconIsSet) {
resetFavicon()
}
}
function addHttp(textUrl) {
// Check for '://' because a protocol-less URL might include
// a username:password combination.
// Ignores also any query parameter because it may contain a http:// inside.
return (textUrl.replace(/\?.*/, '').indexOf('://') === -1 ? 'http://' : ''
) + textUrl
}
$scope.blurUrl = false
$scope.openURL = function() {
$scope.blurUrl = true
$rootScope.screenFocus = true
var url = addHttp($scope.textURL)
setUrlFavicon(url)
return $scope.control.openBrowser(url, $scope.browser)
}
function setCurrentBrowser(browser) {
if (browser && browser.apps) {
var currentBrowser = {}
if (browser.selected) {
var selectedBrowser = _.head(browser.apps, 'selected')
if (!_.isEmpty(selectedBrowser)) {
currentBrowser = selectedBrowser
}
} else {
var defaultBrowser = _.find(browser.apps, {name: 'Browser'})
if (defaultBrowser) {
currentBrowser = defaultBrowser
} else {
currentBrowser = _.head(browser.apps)
}
}
$rootScope.browser = currentBrowser
}
}
setCurrentBrowser($scope.device ? $scope.device.browser : null)
$scope.$watch('device.browser', function(newValue, oldValue) {
if (newValue !== oldValue) {
setCurrentBrowser(newValue)
}
}, true)
$scope.clearSettings = function() {
var browser = $scope.browser
$scope.control.clearBrowser(browser)
}
}