Move mobile device detection to a function
avoids code duplication
This commit is contained in:
parent
1664b34cc9
commit
0cc693fe7d
1 changed files with 18 additions and 16 deletions
|
@ -463,15 +463,6 @@ function($rootScope,
|
||||||
|
|
||||||
weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', '$log', 'models', 'connection', function ($rootScope, $scope, $store, $timeout, $log, models, connection) {
|
weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', '$log', 'models', 'connection', function ($rootScope, $scope, $store, $timeout, $log, models, connection) {
|
||||||
|
|
||||||
$scope.mobile_cutoff = 968;
|
|
||||||
|
|
||||||
// Focuses itself when active buffer is changed
|
|
||||||
$rootScope.$on('activeBufferChanged', function() {
|
|
||||||
if (document.body.clientWidth >= $scope.mobile_cutoff) {
|
|
||||||
$('#sendMessage').focus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$rootScope.countWatchers = function () {
|
$rootScope.countWatchers = function () {
|
||||||
var root = $(document.getElementsByTagName('body'));
|
var root = $(document.getElementsByTagName('body'));
|
||||||
var watchers = [];
|
var watchers = [];
|
||||||
|
@ -493,6 +484,13 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
$rootScope.isMobileDevice = function() {
|
||||||
|
// TODO don't base detection solely on screen width
|
||||||
|
var mobile_cutoff = 968;
|
||||||
|
return (document.body.clientWidth < mobile_cutoff);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// Ask for permission to display desktop notifications
|
// Ask for permission to display desktop notifications
|
||||||
$scope.requestNotificationPermission = function() {
|
$scope.requestNotificationPermission = function() {
|
||||||
// Firefox
|
// Firefox
|
||||||
|
@ -605,6 +603,10 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
|
|
||||||
// Check if we should show nicklist or not
|
// Check if we should show nicklist or not
|
||||||
$scope.showNicklist = $scope.updateShowNicklist();
|
$scope.showNicklist = $scope.updateShowNicklist();
|
||||||
|
|
||||||
|
if (!$rootScope.isMobileDevice()) {
|
||||||
|
$('#sendMessage').focus();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.favico = new Favico({animation: 'none'});
|
$scope.favico = new Favico({animation: 'none'});
|
||||||
|
@ -663,7 +665,7 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
|
|
||||||
// If we are on mobile chhange some defaults
|
// If we are on mobile chhange some defaults
|
||||||
// We use 968 px as the cutoff, which should match the value in glowingbear.css
|
// We use 968 px as the cutoff, which should match the value in glowingbear.css
|
||||||
if (document.body.clientWidth < $scope.mobile_cutoff) {
|
if ($rootScope.isMobileDevice()) {
|
||||||
$scope.nonicklist = true;
|
$scope.nonicklist = true;
|
||||||
$scope.noembed = true;
|
$scope.noembed = true;
|
||||||
$scope.notimestamp = true;
|
$scope.notimestamp = true;
|
||||||
|
@ -671,13 +673,13 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
|
|
||||||
// Open and close panels while on mobile devices through swiping
|
// Open and close panels while on mobile devices through swiping
|
||||||
$scope.swipeSidebar = function() {
|
$scope.swipeSidebar = function() {
|
||||||
if (document.body.clientWidth < $scope.mobile_cutoff) {
|
if ($rootScope.isMobileDevice()) {
|
||||||
$scope.showSidebar = !$scope.showSidebar;
|
$scope.showSidebar = !$scope.showSidebar;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.openNick = function() {
|
$scope.openNick = function() {
|
||||||
if (document.body.clientWidth < $scope.mobile_cutoff) {
|
if ($rootScope.isMobileDevice()) {
|
||||||
if ($scope.nonicklist) {
|
if ($scope.nonicklist) {
|
||||||
$scope.nonicklist = false;
|
$scope.nonicklist = false;
|
||||||
}
|
}
|
||||||
|
@ -685,7 +687,7 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.closeNick = function() {
|
$scope.closeNick = function() {
|
||||||
if (document.body.clientWidth < $scope.mobile_cutoff) {
|
if ($rootScope.isMobileDevice()) {
|
||||||
if (!$scope.nonicklist) {
|
if (!$scope.nonicklist) {
|
||||||
$scope.nonicklist = true;
|
$scope.nonicklist = true;
|
||||||
}
|
}
|
||||||
|
@ -717,7 +719,7 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
$scope.setActiveBuffer = function(bufferId, key) {
|
$scope.setActiveBuffer = function(bufferId, key) {
|
||||||
// If we are on mobile we need to collapse the menu on sidebar clicks
|
// If we are on mobile we need to collapse the menu on sidebar clicks
|
||||||
// We use 968 px as the cutoff, which should match the value in glowingbear.css
|
// We use 968 px as the cutoff, which should match the value in glowingbear.css
|
||||||
if (document.body.clientWidth < $scope.mobile_cutoff) {
|
if ($rootScope.isMobileDevice()) {
|
||||||
$scope.showSidebar = false;
|
$scope.showSidebar = false;
|
||||||
}
|
}
|
||||||
return models.setActiveBuffer(bufferId, key);
|
return models.setActiveBuffer(bufferId, key);
|
||||||
|
|
Loading…
Reference in a new issue