diff --git a/front/package-lock.json b/front/package-lock.json index 97ef7a1c092e6e572b861b5c5827ad06444e976b..02b562ba47ed3693ed2ead761efe0a053371d484 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -828,9 +828,9 @@ "dev": true }, "intro.js": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/intro.js/-/intro.js-0.6.0.tgz", - "integrity": "sha1-D82p9DZOIBiX4RKJ4A3S5S4col8=" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/intro.js/-/intro.js-3.3.1.tgz", + "integrity": "sha512-Y+iMbIzVQou9PDRP5miKa7NNQeUkSA6XFp+atnGiTarEi2jghthSLK+9JUvdM6QvQ9G+bpOEfKd+DNtWJlGb9w==" }, "is-core-module": { "version": "2.2.0", diff --git a/front/package.json b/front/package.json index a55f8701f4953337afc00112aa378faeac93a60b..fc2db0948f2a178370a44c8b87261a3b387f1766 100644 --- a/front/package.json +++ b/front/package.json @@ -16,7 +16,7 @@ "diff": "^4.0.1", "dropzone": "^5.5.1", "file-loader": "^6.2.0", - "intro.js": "^0.6.0", + "intro.js": "^3.3.1", "jquery": "^3.3.1", "jquery-ui-dist": "^1.12.1", "js-cookie": "^2.2.0", diff --git a/front/src/onboarding.js b/front/src/onboarding.js index a177d27585aed926beb14b81498e5925d0df98bb..e34c678b2b95056228d166820a020b2bac9c9bb3 100644 --- a/front/src/onboarding.js +++ b/front/src/onboarding.js @@ -4,24 +4,29 @@ Just set ONBOARDING_PAGE in the page before the scripts block.super eg: const ONBOARDING_PAGE = 'onboarding_document_form'; */ - export function bootOnboarding() { if (typeof ONBOARDING_PAGE !== 'undefined') { var onboarding_page_done = userProfile.get(ONBOARDING_PAGE) || false; - + if (!onboarding_page_done) { var intro = introJs().setOptions({'skipLabel': "Skip"}); intro.oncomplete(function() { userProfile.set(ONBOARDING_PAGE, true); }) - intro.onexit(function(aa) { - if (!userProfile.get(ONBOARDING_PAGE, true)) { - if (confirm("Are you sure you want to avoid further help?")) { - exitOnboarding(); + intro.onbeforeexit(function(aa) { + if (intro._currentStep<intro._introItems.length-1) { + if (!userProfile.get(ONBOARDING_PAGE, true)) { + if (confirm("Are you sure you want to avoid further help?")) { + exitOnboarding(); + } else { + return false; + } } + } else { + userProfile.set(ONBOARDING_PAGE, true); } }); - + //document_form if (ONBOARDING_PAGE == 'onboarding_document_form') { intro.setOptions({ @@ -48,7 +53,7 @@ export function bootOnboarding() { }, ] }); - + } else if (ONBOARDING_PAGE == 'onboarding_images') { intro.setOptions({ steps: [ @@ -89,7 +94,7 @@ export function bootOnboarding() { } ] }); - + } else if (ONBOARDING_PAGE == 'onboarding_edit') { intro.setOptions({ steps: [ @@ -125,7 +130,7 @@ export function bootOnboarding() { }] }); } - + document.addEventListener('DOMContentLoaded', function() { intro.start(); }); diff --git a/front/src/vendor.js b/front/src/vendor.js index a10c138493cefcf1637c0873a83803c61110ddf4..03bfe26d4a0818dac562063e25e0c2f29b9fc57f 100644 --- a/front/src/vendor.js +++ b/front/src/vendor.js @@ -21,7 +21,7 @@ window.Dropzone = require('dropzone/dist/dropzone'); // Intro.js needs to be explicitly set on window, as it's used at boot time // by onboarding.js -window.introJs = require('intro.js/intro').introJs; +window.introJs = require('intro.js'); // moment needs to be explicitly set on window, as it's used at boot time // by trans_modal.js