You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@milagro.apache.org by ni...@apache.org on 2016/07/14 18:04:46 UTC

[3/7] incubator-milagro-mfa-js-client git commit: Add mobile QR code screen

Add mobile QR code screen


Project: http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/commit/f6fe492f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/tree/f6fe492f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/diff/f6fe492f

Branch: refs/heads/master
Commit: f6fe492f267c8681a6db1329dee2210710ddcbe4
Parents: e849f80
Author: Boyan Bakov <bo...@certivox.com>
Authored: Fri May 27 18:28:42 2016 +0300
Committer: Boyan Bakov <bo...@certivox.com>
Committed: Mon May 30 13:31:12 2016 +0300

----------------------------------------------------------------------
 browser/bower.json                              |  2 +-
 browser/js/mpin.js                              | 69 ++++++++++++++++++--
 browser/themes/milagro/sass/_template.scss      |  7 ++
 .../themes/milagro/views/mobile-qr.handlebars   | 33 ++++++++++
 4 files changed, 105 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/blob/f6fe492f/browser/bower.json
----------------------------------------------------------------------
diff --git a/browser/bower.json b/browser/bower.json
index 2d4f014..80e55f4 100644
--- a/browser/bower.json
+++ b/browser/bower.json
@@ -7,7 +7,7 @@
   ],
   "dependencies": {
     "milagro-crypto": "https://github.com/miracl/milagro-crypto.git#1.0.0",
-    "milagro-mfa-js-lib": "https://github.com/miracl/milagro-mfa-js-lib.git#1.0.0",
+    "milagro-mfa-js-lib": "https://github.com/miracl/milagro-mfa-js-lib.git#1.1.0",
     "qrcodejs": "0.1.0",
     "handlebars": "~3.0.3"
   },

http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/blob/f6fe492f/browser/js/mpin.js
----------------------------------------------------------------------
diff --git a/browser/js/mpin.js b/browser/js/mpin.js
index 5b89da0..acf8429 100644
--- a/browser/js/mpin.js
+++ b/browser/js/mpin.js
@@ -21,10 +21,9 @@ var mpin = mpin || {};
 
 (function () {
   "use strict";
-  var lang = {}, hlp = {}, loader, MPIN_URL_BASE, IMAGES_PATH, CSS_FILENAME, TEMPLATE_NAME;
+  var lang = {}, hlp = {}, loader, MPIN_URL_BASE, IMAGES_PATH, CSS_FILENAME;
   MPIN_URL_BASE = "%URL_BASE%";
-  TEMPLATE_NAME = "%TEMPLATE_NAME%";
-  IMAGES_PATH = MPIN_URL_BASE + "/images/" + TEMPLATE_NAME + "/";
+  IMAGES_PATH = MPIN_URL_BASE + "/images/";
 
   CSS_FILENAME = "main.css";
 
@@ -439,7 +438,6 @@ var mpin = mpin || {};
     this.mpinLib.cancelMobileAuth();
   };
 
-  //	Access NUMBER
   mpin.prototype.renderMobile = function () {
     var callbacks = {}, self = this;
 
@@ -454,6 +452,43 @@ var mpin = mpin || {};
       self.clrInterval.call(self);
       self.renderHome.call(self, evt);
     };
+
+    callbacks.mpin_action_setup = function () {
+      self.clrInterval.call(self);
+      if (self.opts.mobileConfigURL) {
+        self.renderMobileConfig.call(self);
+      } else {
+        self.renderMobileSetup.call(self);
+      }
+    };
+
+    callbacks.mpin_desktop = function () {
+      self.clrInterval.call(self);
+      self.renderDesktop.call(self);
+    };
+
+    this.render("mobile-qr", callbacks, {mobileOnly: !this.opts.mobileOnly});
+
+    setTimeout(function () {
+      self.getQrParams.call(self);
+    }, 0);
+  };
+
+  //	Access NUMBER
+  mpin.prototype.renderMobileAN = function () {
+    var callbacks = {}, self = this;
+
+    this.clrInterval();
+
+    if (this.opts.requestOTP === "1") {
+      this.renderMobileSetup();
+      return;
+    }
+
+    callbacks.mpin_home = function (evt) {
+      self.clrInterval.call(self);
+      self.renderHome.call(self, evt);
+    };
     callbacks.mpin_action_setup = function () {
       self.clrInterval.call(self);
       if (self.opts.mobileConfigURL) {
@@ -488,6 +523,8 @@ var mpin = mpin || {};
     }, 0);
   };
 
+
+
   mpin.prototype.renderHelp = function (tmplName, callbacks, tmplData) {
     var k, self = this;
     tmplData = tmplData || {};
@@ -984,6 +1021,27 @@ var mpin = mpin || {};
     this.clrInterval.call(this);
   };
 
+  mpin.prototype.getQrParams = function () {
+    var self = this;
+    this.mpinLib.getQrUrl("", function (err, data) {
+      var qrElem, expireAfter;
+      if (err) {
+        self.error(4010);
+      }
+
+      var qrElem = document.getElementById("mp_qrcode");
+      new QRCode(qrElem, {
+        text: data.qrUrl,
+        width: 158,
+        height: 158
+      });
+
+      expireAfter = data.ttlSeconds;
+
+      self._getAccess.call(self, expireAfter);
+    });
+  };
+
   mpin.prototype.getAccessNumber = function () {
     var self = this, drawTimer, timerEl, timer2d, totalSec, timerExpire, expire;
 
@@ -1335,7 +1393,7 @@ var mpin = mpin || {};
   };
   mpin.prototype.renderSetupDone = function () {
     var callbacks = {}, self = this, userId;
-    userId =  this.readIdentity() || this.identity;
+    userId = this.readIdentity() || this.identity;
     callbacks.mpin_home = function () {
       self.renderHome.call(self);
     };
@@ -2302,6 +2360,7 @@ var mpin = mpin || {};
     "signin_btn_mobile1": "Sign in with Smartphone",
     "signin_mobile_btn_text": "Sign in with your Smartphone",
     "signin_mobile_header": "Sign in with your phone",
+    "scan_mobile_header": "Scan with the M-Pin app",
     "signin_mobile_btn_text2": "Sign in with phone",
     "signin_button_mobile": "Sign in with Phone",
     "signin_btn_mobile2": "(This is a PUBLIC device I DO NOT trust)",

http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/blob/f6fe492f/browser/themes/milagro/sass/_template.scss
----------------------------------------------------------------------
diff --git a/browser/themes/milagro/sass/_template.scss b/browser/themes/milagro/sass/_template.scss
index e956bb0..d9dfd9d 100644
--- a/browser/themes/milagro/sass/_template.scss
+++ b/browser/themes/milagro/sass/_template.scss
@@ -367,6 +367,13 @@ $BGCOLOR6: #ef984a;
 @mixin buttons-box() {
 	padding: 5% 5%;
 	z-index: 99;
+	
+	.qrCodeArea {
+		width: 160px;
+		height: 160px;
+		display: block;
+		margin: 0 auto 20px;
+	}
 }
 
 @mixin mpin-input-field () {

http://git-wip-us.apache.org/repos/asf/incubator-milagro-mfa-js-client/blob/f6fe492f/browser/themes/milagro/views/mobile-qr.handlebars
----------------------------------------------------------------------
diff --git a/browser/themes/milagro/views/mobile-qr.handlebars b/browser/themes/milagro/views/mobile-qr.handlebars
new file mode 100644
index 0000000..8109e1d
--- /dev/null
+++ b/browser/themes/milagro/views/mobile-qr.handlebars
@@ -0,0 +1,33 @@
+<div class="mpinHeader mpMobileColor">
+    <div class="mpinLogo"></div>
+	<div class="mpinHome mpPointer" id="mpin_home"></div>
+</div>
+
+<div class="mpinHeaderBig mpPaddTop10 mpPaddBot10 mpMobColor">
+	{{txt "scan_mobile_header"}}
+</div>
+
+<div class="mpinMain mpNoHeight">
+	<div class="mpinBtnBox mpNoPadding">
+		
+		<span id="mp_qrcode" class="qrCodeArea">
+		</span>
+		
+		<div class="mpinButton mpinMobileBtn mpinBtnClick" id="mpin_action_setup">
+			{{txt "mobile_button_setup"}}
+		</div>
+		
+		{{#if data.mobileOnly }}
+			<div class="mpinButton mpinButtonDark mpinBtnClick" id="mpin_desktop">
+				{{txt "mobile_button_signin2"}}
+			</div>
+		{{/if}}
+		
+	</div>
+</div>
+
+
+<div class="mpinFooter mpMobileFooter">
+	<div class="mpinPowered"></div>
+	<div class="mpinHelpHub"></div>
+</div>
\ No newline at end of file