Merge pull request #432 from glowing-bear/disconnect-when-closing
When closing the window, disconnect instead of asking the user to do it
This commit is contained in:
commit
6a26c61c9e
3 changed files with 16 additions and 6 deletions
|
@ -280,7 +280,7 @@ $ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out rel
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer" ng-class="{'withnicklist': showNicklist}">
|
<div class="footer" ng-class="{'withnicklist': showNicklist}">
|
||||||
<div input-bar input-id="sendMessage"></div>
|
<div input-bar input-id="sendMessage" command="command"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="soundNotification"></div>
|
<div id="soundNotification"></div>
|
||||||
|
|
|
@ -2,6 +2,8 @@ var weechat = angular.module('weechat', ['ngRoute', 'localStorage', 'weechatMode
|
||||||
|
|
||||||
weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', '$log', 'models', 'connection', 'notifications', 'utils', function ($rootScope, $scope, $store, $timeout, $log, models, connection, notifications, utils) {
|
weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', '$log', 'models', 'connection', 'notifications', 'utils', function ($rootScope, $scope, $store, $timeout, $log, models, connection, notifications, utils) {
|
||||||
|
|
||||||
|
$scope.command = '';
|
||||||
|
|
||||||
// From: http://stackoverflow.com/a/18539624 by StackOverflow user "plantian"
|
// From: http://stackoverflow.com/a/18539624 by StackOverflow user "plantian"
|
||||||
$rootScope.countWatchers = function () {
|
$rootScope.countWatchers = function () {
|
||||||
var q = [$rootScope], watchers = 0, scope;
|
var q = [$rootScope], watchers = 0, scope;
|
||||||
|
@ -611,12 +613,19 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
|
||||||
|
|
||||||
// Prevent user from accidentally leaving the page
|
// Prevent user from accidentally leaving the page
|
||||||
window.onbeforeunload = function(event) {
|
window.onbeforeunload = function(event) {
|
||||||
if ($rootScope.connected) {
|
|
||||||
|
if ($scope.command !== null && $scope.command !== '') {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
// Chrome requires us to set this or it will not show the dialog
|
// Chrome requires this
|
||||||
event.returnValue = "You have an active connection to your WeeChat relay. Please disconnect using the button in the top-right corner or by double-tapping the Escape key.";
|
// Firefox does not show the site provides message
|
||||||
|
event.returnValue = "Any unsent input will be lost. Are you sure that you want to quit?";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if ($rootScope.connected) {
|
||||||
|
$scope.disconnect();
|
||||||
|
}
|
||||||
|
$scope.favico.reset();
|
||||||
}
|
}
|
||||||
$rootScope.favico.reset();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
|
|
|
@ -7,7 +7,8 @@ weechat.directive('inputBar', function() {
|
||||||
templateUrl: 'directives/input.html',
|
templateUrl: 'directives/input.html',
|
||||||
|
|
||||||
scope: {
|
scope: {
|
||||||
inputId: '@inputId'
|
inputId: '@inputId',
|
||||||
|
command: '=command'
|
||||||
},
|
},
|
||||||
|
|
||||||
controller: ['$rootScope', '$scope', '$element', '$log', 'connection', 'models', function($rootScope,
|
controller: ['$rootScope', '$scope', '$element', '$log', 'connection', 'models', function($rootScope,
|
||||||
|
|
Loading…
Reference in a new issue