Commit 668ccb3b authored by Vladimir Baranov's avatar Vladimir Baranov

CHANGE, closes zetaops/ulakbus-uiGH-105, closes #5394. Allow to work offline in devel mode

parent 283d8d6f
......@@ -75,6 +75,46 @@ angular.module(
return {url: backendurl};
})())
.factory('IsOnline', function ($window, $document, $rootScope) {
var isOnlineService = {};
isOnlineService.status = true;
var offlineMask = angular.element(
'<div class="body-mask" style="z-index: 2010; opacity: 0.6">' +
'<div class="alert alert-danger text-center" role="alert" style="z-index: 2011; position: relative">' +
'İnternet bağlantınız kesilmiştir. Bağlantı sağlandığında kaldığınız yerden devam edebilirsiniz.' +
'</div>' +
'</div>'
);
var body = $document.find('body').eq(0);
isOnlineService.set_status = function (state) {
// status changed
if (state != isOnlineService.status){
// online
if (state){
offlineMask.remove();
// is user is set, reload page to init
if ($rootScope.current_user === true){
window.location.reload();
}
}
// offline
else {
body.append(offlineMask);
}
}
isOnlineService.status = state;
};
isOnlineService.get_status = function () {
return isOnlineService.status;
};
return isOnlineService;
})
// .service('DESIGN', function ($routeParams, $cookies, $log) {
// // use route param to change cookie for design
// // this is a config as a service added for designer can work without backend
......
......@@ -63,47 +63,7 @@ angular.module('ulakbus')
})
.otherwise({redirectTo: '/dashboard'});
}])
.factory('IsOnline', function () {
var isOnlineService = {};
isOnlineService.status = navigator.onLine;
isOnlineService.set_status = function (state) {
isOnlineService.status = state;
};
isOnlineService.get_status = function () {
return isOnlineService.status;
};
return isOnlineService;
})
.run(function ($window, $rootScope, $document, $route, IsOnline) {
// in this run configuration we detect internet connection and append a mask to body
// when reconnect the mask will be removed
var offlineMask = angular.element('<div class="body-mask">' +
'</div>');
offlineMask.css({zIndex: '2010', opacity: '0.6'});
var offlineAlert = angular.element(
'<div class="alert alert-danger text-center" role="alert">' +
'İnternet bağlantınız kesilmiştir. Bağlantı sağlandığında kaldığınız yerden devam edebilirsiniz.' +
'</div>'
).css({zIndex: '2011', position: 'relative'});
var body = $document.find('body').eq(0);
// detect internet connection
var is_online = navigator.onLine;
if (!is_online){body.append(offlineMask).append(offlineAlert);}
$window.addEventListener("offline", function () {
is_online = false;
IsOnline.set_status(false);
body.append(offlineMask).append(offlineAlert);
}, false);
$window.addEventListener("online", function () {
is_online = true;
IsOnline.set_status(true);
offlineMask.remove();
offlineAlert.remove();
if ($rootScope.current_user === true){window.location.reload();}
// $route.reload();
}, false);
})
.run(function ($rootScope, AuthService) {
AuthService.check_auth();
......
......@@ -80,6 +80,56 @@ angular.module(
return {url: backendurl};
})())
.factory('IsOnline', function ($window, $document, $rootScope) {
var isOnlineService = {};
isOnlineService.status = true;
var offlineMask = angular.element(
'<div class="body-mask" style="z-index: 2010; opacity: 0.6">' +
'<div class="alert alert-danger text-center" role="alert" style="z-index: 2011; position: relative">' +
'İnternet bağlantınız kesilmiştir. Bağlantı sağlandığında kaldığınız yerden devam edebilirsiniz.' +
'</div>' +
'</div>'
);
var body = $document.find('body').eq(0);
isOnlineService.set_status = function (state) {
// status changed
if (state != isOnlineService.status){
// online
if (state){
offlineMask.remove();
// is user is set, reload page to init
if ($rootScope.current_user === true){
window.location.reload();
}
}
// offline
else {
body.append(offlineMask);
}
}
isOnlineService.status = state;
};
isOnlineService.get_status = function () {
return isOnlineService.status;
};
// @if NODE_ENV='PRODUCTION'
isOnlineService.status = navigator.onLine;
$window.addEventListener("offline", function(){
isOnlineService.set_status(false);
});
$window.addEventListener("online", function(){
isOnlineService.set_status(true);
});
// @endif
return isOnlineService;
})
// .service('DESIGN', function ($routeParams, $cookies, $log) {
// // use route param to change cookie for design
// // this is a config as a service added for designer can work without backend
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment