From 3923c796f88168503efb0a98e8160dbdb27178f1 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 23 Apr 2020 11:28:31 +0200 Subject: [PATCH] MOBILE-2995 login: Improve UX of QR scan --- scripts/langindex.json | 10 +++- src/assets/img/login/faq_qrcode.png | Bin 0 -> 63963 bytes src/assets/lang/en.json | 5 +- src/core/login/lang/en.json | 5 +- src/core/login/pages/site-help/site-help.html | 9 +++- src/core/login/pages/site-help/site-help.scss | 10 ++++ src/core/login/pages/site-help/site-help.ts | 11 +++- src/core/login/pages/site/site.html | 14 +++-- src/core/login/pages/site/site.scss | 6 +++ src/core/login/pages/site/site.ts | 49 ++++++++++++++---- src/core/login/providers/helper.ts | 2 + 11 files changed, 99 insertions(+), 22 deletions(-) create mode 100644 src/assets/img/login/faq_qrcode.png diff --git a/scripts/langindex.json b/scripts/langindex.json index c275a91ed..19eabe1cf 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -1333,6 +1333,8 @@ "core.browser": "local_moodlemobileapp", "core.cancel": "moodle", "core.cannotconnect": "local_moodlemobileapp", + "core.cannotconnecttrouble": "local_moodlemobileapp", + "core.cannotconnectverify": "local_moodlemobileapp", "core.cannotdownloadfiles": "local_moodlemobileapp", "core.captureaudio": "local_moodlemobileapp", "core.capturedimage": "local_moodlemobileapp", @@ -1721,6 +1723,8 @@ "core.login.faqtestappquestion": "local_moodlemobileapp", "core.login.faqwhatisurlanswer": "local_moodlemobileapp", "core.login.faqwhatisurlquestion": "local_moodlemobileapp", + "core.login.faqwhereisqrcode": "local_moodlemobileapp", + "core.login.faqwhereisqrcodeanswer": "local_moodlemobileapp", "core.login.findyoursite": "local_moodlemobileapp", "core.login.firsttime": "moodle", "core.login.forcepasswordchangenotice": "moodle", @@ -1759,8 +1763,6 @@ "core.login.policyagreement": "moodle", "core.login.policyagreementclick": "moodle", "core.login.potentialidps": "auth", - "core.login.problemconnectingerror": "local_moodlemobileapp", - "core.login.problemconnectingerrorcontinue": "local_moodlemobileapp", "core.login.profileinvaliddata": "admin", "core.login.recaptchachallengeimage": "local_moodlemobileapp", "core.login.recaptchaexpired": "local_moodlemobileapp", @@ -1789,6 +1791,8 @@ "core.login.usernotaddederror": "error", "core.login.visitchangepassword": "local_moodlemobileapp", "core.login.webservicesnotenabled": "local_moodlemobileapp", + "core.login.youcanstillconnectwithcredentials": "local_moodlemobileapp", + "core.login.yourenteredsite": "local_moodlemobileapp", "core.lostconnection": "local_moodlemobileapp", "core.mainmenu.changesite": "local_moodlemobileapp", "core.mainmenu.help": "moodle", @@ -1866,6 +1870,7 @@ "core.previous": "moodle", "core.proceed": "moodle", "core.pulltorefresh": "local_moodlemobileapp", + "core.qrscanner": "local_moodlemobileapp", "core.question.answer": "question", "core.question.answersaved": "question", "core.question.cannotdeterminestatus": "local_moodlemobileapp", @@ -1908,6 +1913,7 @@ "core.retry": "local_moodlemobileapp", "core.save": "moodle", "core.savechanges": "assign", + "core.scanqr": "local_moodlemobileapp", "core.search": "moodle", "core.searching": "local_moodlemobileapp", "core.searchresults": "moodle", diff --git a/src/assets/img/login/faq_qrcode.png b/src/assets/img/login/faq_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..cc936b168ae3e029d9ee6361984b7b609e9d61fb GIT binary patch literal 63963 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 EKl}Dvr~m)} literal 0 HcmV?d00001 diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json index e939777b9..7e4902eba 100644 --- a/src/assets/lang/en.json +++ b/src/assets/lang/en.json @@ -1721,8 +1721,10 @@ "core.login.faqsetupsitequestion": "I want to set up my own Moodle site.", "core.login.faqtestappanswer": "To test the app in a Moodle Demo Site, type \"teacher\" or \"student\" in the \"Your site address\" field and click the \"Connect!\" button.", "core.login.faqtestappquestion": "I just want to test the app, what can I do?", - "core.login.faqwhatisurlanswer": "

Every organisation or school has their own custom address for their Moodle site.

To find the address of the Moodle site you want to connect to, do the following:

  1. Open a web browser and go to your school's or organisation's Moodle site login page
  2. At the top of the page, on the address bar, you will see the URL of your Moodle site. E.g. \"campus.example.edu\".{{$image}}
  3. Copy the address (do not copy the /login and what comes after), paste it into the Moodle App and click \"Connect!\"
  4. Now you can log into your site, using your username and password
  5. ", + "core.login.faqwhatisurlanswer": "

    Every organisation or school has their own custom address for their Moodle site.

    To find the address of the Moodle site you want to connect to, do the following:

    1. Open a web browser and go to your school's or organisation's Moodle site login page
    2. At the top of the page, on the address bar, you will see the URL of your Moodle site. E.g. \"campus.example.edu\".
      {{$image}}
    3. Copy the address (do not copy the /login and what comes after), paste it into the Moodle App and click \"Connect!\"
    4. Now you can log into your site, using your username and password
    5. ", "core.login.faqwhatisurlquestion": "What is the URL of my Moodle site? How can I find my school’s site?", + "core.login.faqwhereisqrcode": "Where can I find the QR code?", + "core.login.faqwhereisqrcodeanswer": "

      If your organisation has enabled it, you will find a QR code on the web site at the bottom of your user profile page.

      {{$image}}", "core.login.findyoursite": "Find your site", "core.login.firsttime": "Is this your first time here?", "core.login.forcepasswordchangenotice": "You must change your password to proceed.", @@ -1752,6 +1754,7 @@ "core.login.mustconfirm": "You need to confirm your account", "core.login.newaccount": "New account", "core.login.notloggedin": "You need to be logged in.", + "core.login.or": "OR", "core.login.password": "Password", "core.login.passwordforgotten": "Forgotten password", "core.login.passwordforgotteninstructions2": "To reset your password, submit your username or your email address below. If we can find you in the database, an email will be sent to your email address, with instructions how to get access again.", diff --git a/src/core/login/lang/en.json b/src/core/login/lang/en.json index fae8f54da..dc38595fd 100644 --- a/src/core/login/lang/en.json +++ b/src/core/login/lang/en.json @@ -33,8 +33,10 @@ "faqsetupsitequestion": "I want to set up my own Moodle site.", "faqtestappanswer": "To test the app in a Moodle Demo Site, type \"teacher\" or \"student\" in the \"Your site address\" field and click the \"Connect!\" button.", "faqtestappquestion": "I just want to test the app, what can I do?", - "faqwhatisurlanswer": "

      Every organisation or school has their own custom address for their Moodle site.

      To find the address of the Moodle site you want to connect to, do the following:

      1. Open a web browser and go to your school's or organisation's Moodle site login page
      2. At the top of the page, on the address bar, you will see the URL of your Moodle site. E.g. \"campus.example.edu\".{{$image}}
      3. Copy the address (do not copy the /login and what comes after), paste it into the Moodle App and click \"Connect!\"
      4. Now you can log into your site, using your username and password
      5. ", + "faqwhatisurlanswer": "

        Every organisation or school has their own custom address for their Moodle site.

        To find the address of the Moodle site you want to connect to, do the following:

        1. Open a web browser and go to your school's or organisation's Moodle site login page
        2. At the top of the page, on the address bar, you will see the URL of your Moodle site. E.g. \"campus.example.edu\".
          {{$image}}
        3. Copy the address (do not copy the /login and what comes after), paste it into the Moodle App and click \"Connect!\"
        4. Now you can log into your site, using your username and password
        5. ", "faqwhatisurlquestion": "What is the URL of my Moodle site? How can I find my school’s site?", + "faqwhereisqrcode": "Where can I find the QR code?", + "faqwhereisqrcodeanswer": "

          If your organisation has enabled it, you will find a QR code on the web site at the bottom of your user profile page.

          {{$image}}", "findyoursite": "Find your site", "firsttime": "Is this your first time here?", "forcepasswordchangenotice": "You must change your password to proceed.", @@ -64,6 +66,7 @@ "mustconfirm": "You need to confirm your account", "newaccount": "New account", "notloggedin": "You need to be logged in.", + "or": "OR", "password": "Password", "passwordforgotten": "Forgotten password", "passwordforgotteninstructions2": "To reset your password, submit your username or your email address below. If we can find you in the database, an email will be sent to your email address, with instructions how to get access again.", diff --git a/src/core/login/pages/site-help/site-help.html b/src/core/login/pages/site-help/site-help.html index 2aa5a8247..21ed2c8b7 100644 --- a/src/core/login/pages/site-help/site-help.html +++ b/src/core/login/pages/site-help/site-help.html @@ -14,7 +14,7 @@

          {{ 'core.login.faqwhatisurlquestion' | translate }}

          - + @@ -36,5 +36,12 @@

          {{ 'core.login.faqtestappanswer' | translate }}

          + +

          {{ 'core.login.faqwhereisqrcode' | translate }}

          +
          + diff --git a/src/core/login/pages/site-help/site-help.scss b/src/core/login/pages/site-help/site-help.scss index 01699c80f..4f651c797 100644 --- a/src/core/login/pages/site-help/site-help.scss +++ b/src/core/login/pages/site-help/site-help.scss @@ -2,4 +2,14 @@ page-core-login-site-help { .content { background-color: $white; } + + .core-login-faqwhatisurlanswer img { + max-height: 50px; + } + + .core-login-faqwhereisqrcodeanswer img { + max-height: 220px; + margin-top: 5px; + margin-bottom: 5px; + } } \ No newline at end of file diff --git a/src/core/login/pages/site-help/site-help.ts b/src/core/login/pages/site-help/site-help.ts index eb489e3c2..4f6825377 100644 --- a/src/core/login/pages/site-help/site-help.ts +++ b/src/core/login/pages/site-help/site-help.ts @@ -15,6 +15,8 @@ import { Component } from '@angular/core'; import { IonicPage, ViewController } from 'ionic-angular'; import { TranslateService } from '@ngx-translate/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; +import { CoreLoginHelperProvider } from '../../providers/helper'; /** * Component that displays some help regarding the CoreLoginSitePage. @@ -28,11 +30,16 @@ export class CoreLoginSiteHelpPage { urlImageHtml: string; setupLinkHtml: string; + qrCodeImageHtml: string; + canScanQR: boolean; constructor(protected viewCtrl: ViewController, - protected translate: TranslateService) { + protected translate: TranslateService, + protected utils: CoreUtilsProvider) { - this.urlImageHtml = ''; + this.canScanQR = this.utils.canScanQR() && false; // @todo: Enable it for 3.9 release. + this.urlImageHtml = CoreLoginHelperProvider.FAQ_URL_IMAGE_HTML; + this.qrCodeImageHtml = CoreLoginHelperProvider.FAQ_QRCODE_IMAGE_HTML; this.setupLinkHtml = 'https://moodle.com/getstarted/'; } diff --git a/src/core/login/pages/site/site.html b/src/core/login/pages/site/site.html index 637c8c90e..feaa73b99 100644 --- a/src/core/login/pages/site/site.html +++ b/src/core/login/pages/site/site.html @@ -48,10 +48,16 @@
          - - - {{ 'core.scanqr' | translate }} - + + + + + + {{ 'core.scanqr' | translate }} + + + + diff --git a/src/core/login/pages/site/site.scss b/src/core/login/pages/site/site.scss index 31fcbd528..85bc01d69 100644 --- a/src/core/login/pages/site/site.scss +++ b/src/core/login/pages/site/site.scss @@ -115,4 +115,10 @@ ion-app.app-root page-core-login-site { .core-login-default-icon { filter: grayscale(100%); } + + .core-login-site-qrcode-separator { + text-align: center; + margin-top: 12px; + font-size: 1.2em; + } } diff --git a/src/core/login/pages/site/site.ts b/src/core/login/pages/site/site.ts index 474c9f523..eec309a4c 100644 --- a/src/core/login/pages/site/site.ts +++ b/src/core/login/pages/site/site.ts @@ -237,7 +237,7 @@ export class CoreLoginSitePage { * Show a help modal. */ showHelp(): void { - const modal = this.modalCtrl.create('CoreLoginSiteHelpPage'); + const modal = this.modalCtrl.create('CoreLoginSiteHelpPage', {}, { cssClass: 'core-modal-fullscreen' }); modal.present(); } @@ -346,24 +346,51 @@ export class CoreLoginSitePage { * @return {ValidatorFn} Validation results. */ protected moodleUrlValidator(): ValidatorFn { - return (control: AbstractControl): {[key: string]: any} | null => { - const value = control.value.trim(); - let valid = value.length >= 3 && CoreUrl.isValidMoodleUrl(value); + return (control: AbstractControl): {[key: string]: any} | null => { + const value = control.value.trim(); + let valid = value.length >= 3 && CoreUrl.isValidMoodleUrl(value); - if (!valid) { - const demo = !!this.getDemoSiteData(value); + if (!valid) { + const demo = !!this.getDemoSiteData(value); - if (demo) { - valid = true; + if (demo) { + valid = true; + } } - } - return valid ? null : {siteUrl: {value: control.value}}; - }; + return valid ? null : {siteUrl: {value: control.value}}; + }; + } + + /** + * Show instructions and scan QR code. + * + * @todo Use it in 3.9 release instead of scanQR. + */ + showInstructionsAndScanQR(): void { + // Show some instructions first. + this.domUtils.showAlertWithButtons( + this.translate.instant('core.login.faqwhereisqrcode'), + this.translate.instant('core.login.faqwhereisqrcodeanswer', {$image: CoreLoginHelperProvider.FAQ_QRCODE_IMAGE_HTML}), + [ + { + text: this.translate.instant('core.cancel'), + role: 'cancel' + }, + { + text: this.translate.instant('core.next'), + handler: (): void => { + this.scanQR(); + } + }, + ] + ); } /** * Scan a QR code and put its text in the URL input. + * + * @return Promise resolved when done. */ async scanQR(): Promise { // Scan for a QR code. diff --git a/src/core/login/providers/helper.ts b/src/core/login/providers/helper.ts index a1d31aa0e..1bd6a43f6 100644 --- a/src/core/login/providers/helper.ts +++ b/src/core/login/providers/helper.ts @@ -75,6 +75,8 @@ export interface CoreLoginSSOData { @Injectable() export class CoreLoginHelperProvider { static OPEN_COURSE = 'open_course'; + static FAQ_URL_IMAGE_HTML = ''; + static FAQ_QRCODE_IMAGE_HTML = ''; protected logger; protected isSSOConfirmShown = false;