1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 02:29:26 +02:00
OpenSTF/res/app/control-panes/dashboard/navigation/navigation-controller.js

75 lines
1.9 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.
return (textUrl.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 = _.first(browser.apps, 'selected')
if (!_.isEmpty(selectedBrowser)) {
currentBrowser = selectedBrowser[0]
}
} else {
var defaultBrowser = _.find(browser.apps, {name: 'Browser'})
if (defaultBrowser) {
currentBrowser = defaultBrowser
} else {
currentBrowser = _.first(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)
}
}