From abefa7430a05c31eb424e85337cabe2e5c882391 Mon Sep 17 00:00:00 2001 From: creesch Date: Tue, 18 Feb 2014 14:40:02 +0100 Subject: [PATCH] Implement swiping for mobile devices --- js/glowingbear.js | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/js/glowingbear.js b/js/glowingbear.js index 7de20f9..9efc3e2 100644 --- a/js/glowingbear.js +++ b/js/glowingbear.js @@ -1,4 +1,4 @@ -var weechat = angular.module('weechat', ['ngRoute', 'localStorage', 'weechatModels', 'plugins', 'ngSanitize', 'ngWebsockets', 'pasvaz.bindonce']); +var weechat = angular.module('weechat', ['ngRoute', 'localStorage', 'weechatModels', 'plugins', 'ngSanitize', 'ngWebsockets', 'pasvaz.bindonce', 'ngTouch']); weechat.filter('toArray', function () { 'use strict'; @@ -618,7 +618,29 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', $scope.noembed = true; $scope.notimestamp = true; } + // Open and close panels while on mobile devices through swiping + $scope.swipeSidebar = function() { + if (document.body.clientWidth < 968) { + $('#sidebar').collapse('toggle'); + } + }; + + + $scope.openNick = function() { + if (document.body.clientWidth < 968) { + if($scope.nonicklist) { + $scope.nonicklist = false; + } + } + }; + $scope.closeNick = function() { + if (document.body.clientWidth < 968) { + if(!$scope.nonicklist) { + $scope.nonicklist = true; + } + } + }; // Watch model and update show setting when it changes $scope.$watch('noembed', function() { @@ -632,6 +654,11 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', $rootScope.predicate = $scope.orderbyserver ? 'serverSortKey' : 'number'; $scope.setActiveBuffer = function(bufferId, key) { + // 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 + if (document.body.clientWidth < 968) { + $('#sidebar').collapse('toggle'); + } return models.setActiveBuffer(bufferId, key); };