From 5e8d30d157d33660d60159465afa0b99be699e6a Mon Sep 17 00:00:00 2001
From: blavenie <benoit.lavenier@e-is.pro>
Date: Thu, 6 Jun 2019 14:49:22 +0200
Subject: [PATCH] [fix] Avoid fullscreen mode on desktop release [enh] Ask
confirmation before switching to fullscreen, on mobile web browser
---
www/i18n/locale-en-GB.json | 1 +
www/i18n/locale-en.json | 1 +
www/i18n/locale-fr-FR.json | 1 +
www/index.html | 8 +-----
www/js/app.js | 5 ----
www/js/controllers/app-controllers.js | 39 ++++++++++++++++++++-------
www/templates/menu.html | 16 ++++++-----
7 files changed, 43 insertions(+), 28 deletions(-)
diff --git a/www/i18n/locale-en-GB.json b/www/i18n/locale-en-GB.json
index cd34aadd..6749473f 100644
--- a/www/i18n/locale-en-GB.json
+++ b/www/i18n/locale-en-GB.json
@@ -798,6 +798,7 @@
"POPUP_SECURITY_WARNING_TITLE": "<i class=\"icon ion-alert-circled\"></i> <b>Security warning</b>",
"CERTIFY_RULES_TITLE_UID": "Certify {{uid}}",
"CERTIFY_RULES": "<b class=\"assertive\">Don't certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?",
+ "FULLSCREEN": "View the application in full screen?",
"EXIT_APP": "Close the application ?",
"TRANSFER": "<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",
"TRANSFER_ALL": "<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",
diff --git a/www/i18n/locale-en.json b/www/i18n/locale-en.json
index 54ed594d..378db495 100644
--- a/www/i18n/locale-en.json
+++ b/www/i18n/locale-en.json
@@ -798,6 +798,7 @@
"POPUP_SECURITY_WARNING_TITLE": "<i class=\"icon ion-alert-circled\"></i> <b>Security warning</b>",
"CERTIFY_RULES_TITLE_UID": "Certify {{uid}}",
"CERTIFY_RULES": "<b class=\"assertive\">Don't certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?",
+ "FULLSCREEN": "View the application in full screen?",
"EXIT_APP": "Close the application ?",
"TRANSFER": "<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",
"TRANSFER_ALL": "<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",
diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json
index e05fd87f..6b08675f 100644
--- a/www/i18n/locale-fr-FR.json
+++ b/www/i18n/locale-fr-FR.json
@@ -798,6 +798,7 @@
"POPUP_SECURITY_WARNING_TITLE": "<i class=\"icon ion-alert-circled\"></i> <b>Avertissement de sécurité</b>",
"CERTIFY_RULES_TITLE_UID": "Certifier {{uid}}",
"CERTIFY_RULES": "<b class=\"assertive\">Ne PAS certifier</b> un compte si vous pensez que :<br/><br/><ul><li>1.) il ne correspond pas à une personne <b>physique et vivante</b>.<li>2.) son propriétaire <b>possède un autre compte</b> déjà certifié.<li>3.) son propriétaire viole (volontairement ou non) la règle 1 ou 2 (par exemple en certifiant des comptes factices ou en double).</ul><br/><b>Êtes-vous sûr</b> de vouloir néanmoins certifier cette identité ?",
+ "FULLSCREEN": "Afficher l'application en plein écran ?",
"EXIT_APP": "Fermer l'application ?",
"TRANSFER": "<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",
"TRANSFER_ALL": "<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li><br/><li> - Reste : <b>{{restAmount}} {{unit}}</b> à <b>{{restTo}}</b></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",
diff --git a/www/index.html b/www/index.html
index 6d3c668e..40016956 100644
--- a/www/index.html
+++ b/www/index.html
@@ -54,13 +54,7 @@
<body ng-app="cesium" id="cesium" ng-strict-di="true" window-exit-unauth="true"
ng-class="{'nobackdrop': $root.tour, 'expert-mode': $root.settings.expertMode}">
- <!-- Enable fullscreen mode on small device (on a web browser) -->
- <!--removeIf(device)-->
- <div class="popover-backdrop visible-xs visible-sm"
- ng-click="enableFullscreen($event)"
- ng-if="forceFullscreen">
- </div>
- <!--endRemoveIf(device)-->
+
<ion-nav-view>
<div class="loader">
diff --git a/www/js/app.js b/www/js/app.js
index a250e46a..b16ac852 100644
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -138,10 +138,5 @@ angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'pascalprecht
// Start plugins eager services
PluginService.start();
- $rootScope.forceFullscreen = UIUtils.screen.isSmall();
- $rootScope.enableFullscreen = function() {
- delete $rootScope.forceFullscreen;
- UIUtils.screen.fullscreen.all();
- };
})
;
diff --git a/www/js/controllers/app-controllers.js b/www/js/controllers/app-controllers.js
index e56f0997..df0a751d 100644
--- a/www/js/controllers/app-controllers.js
+++ b/www/js/controllers/app-controllers.js
@@ -74,6 +74,7 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
$scope.login = csWallet.isLogin();
$scope.auth = csWallet.isAuth();
$scope.motion = UIUtils.motion.default;
+ $scope.fullscreen = UIUtils.screen.fullscreen.isEnabled();
$scope.showHome = function() {
$ionicHistory.nextViewOptions({
@@ -348,13 +349,6 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
})
.catch(UIUtils.onError());
};
-
- // Full screen
- $scope.toggleFullscreen = function() {
- UIUtils.screen.fullscreen.toggleAll();
- $scope.fullscreen = UIUtils.screen.fullscreen.isEnabled();
- };
-
// Do authentification
$scope.doAuth = function(options) {
var wallet = options && options.wallet || csWallet;
@@ -410,7 +404,6 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
return Modals.showHelp(parameters);
};
-
////////////////////////////////////////
// Useful popovers
////////////////////////////////////////
@@ -444,7 +437,7 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
};
////////////////////////////////////////
- // Link managment (fix issue #)
+ // Link management (fix issue #)
////////////////////////////////////////
$scope.openLink = function($event, uri, options) {
@@ -479,6 +472,34 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
return $scope.motion.show(options);
};
+
+ ////////////////////////////////////////
+ // Fullscreen mode
+ ////////////////////////////////////////
+
+ $scope.askFullscreen = function() {
+ var skip = $scope.fullscreen || !UIUtils.screen.isSmall() || !Device.isWeb();
+ if (skip) return;
+
+ return UIUtils.alert.confirm('CONFIRM.FULLSCREEN', null, {
+ cancelText: 'COMMON.BTN_NO',
+ okText: 'COMMON.BTN_YES'
+ })
+ .then(function(confirm) {
+ if (!confirm) return;
+ $scope.toggleFullscreen();
+ });
+ };
+
+ $scope.toggleFullscreen = function() {
+ $scope.fullscreen = !UIUtils.screen.fullscreen.isEnabled();
+ UIUtils.screen.fullscreen.toggleAll();
+ };
+
+ // removeIf(device)
+ // Ask switching fullscreen
+ $scope.askFullscreen();
+ // endRemoveIf(device)
}
diff --git a/www/templates/menu.html b/www/templates/menu.html
index 67c67baf..daf1999c 100644
--- a/www/templates/menu.html
+++ b/www/templates/menu.html
@@ -81,14 +81,16 @@
<a ng-if="login" class="button-icon" ng-click="logout({askConfirm: true})" style="position: absolute; top: 5px; left: 5px; z-index: 999;">
<i class="icon light ion-android-exit"></i>
</a>
- <!-- fullscreen -->
- <a class="button-icon visible-xs visible-sm"
- ng-if="!forceFullscreen"
- ng-click="toggleFullscreen()" style="position: absolute; top: 5px; right: 5px; z-index: 999;">
- <i class="icon ion-arrow-expand dark"
- ng-class="{'ion-arrow-shrink': !fullscreen}"
- ></i>
+
+ <!-- Fullscreen button -->
+ <!-- removeIf(device) -->
+ <a ng-if="::$root.device.isWeb()"
+ ng-click="toggleFullscreen()"
+ class="button-icon"
+ style="position: absolute; top: 5px; right: 5px; z-index: 999;">
+ <i class="icon ion-arrow-expand dark" ng-class="{'ion-arrow-shrink': fullscreen}"></i>
</a>
+ <!-- endRemoveIf(device) -->
</div>
</ion-header-bar>
--
GitLab