1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Do not show projects-wecome dialog until welcome tour completes

Fixes #3193
This commit is contained in:
Nick O'Leary 2021-10-14 10:17:27 +01:00
parent f030694ef4
commit 48d0ee3b6d
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
4 changed files with 27 additions and 11 deletions

View File

@ -201,6 +201,7 @@ var RED = (function() {
RED.projects.refresh(function(activeProject) { RED.projects.refresh(function(activeProject) {
loadFlows(function() { loadFlows(function() {
RED.sidebar.info.refresh() RED.sidebar.info.refresh()
var showProjectWelcome = false;
if (!activeProject) { if (!activeProject) {
// Projects enabled but no active project // Projects enabled but no active project
RED.menu.setDisabled('menu-item-projects-open',true); RED.menu.setDisabled('menu-item-projects-open',true);
@ -208,10 +209,10 @@ var RED = (function() {
if (activeProject === false) { if (activeProject === false) {
// User previously decline the migration to projects. // User previously decline the migration to projects.
} else { // null/undefined } else { // null/undefined
RED.projects.showStartup(); showProjectWelcome = true;
} }
} }
completeLoad(); completeLoad(showProjectWelcome);
}); });
}); });
} else { } else {
@ -267,7 +268,7 @@ var RED = (function() {
}); });
} }
function completeLoad() { function completeLoad(showProjectWelcome) {
var persistentNotifications = {}; var persistentNotifications = {};
RED.comms.subscribe("notification/#",function(topic,msg) { RED.comms.subscribe("notification/#",function(topic,msg) {
var parts = topic.split("/"); var parts = topic.split("/");
@ -535,18 +536,24 @@ var RED = (function() {
setTimeout(function() { setTimeout(function() {
loader.end(); loader.end();
checkFirstRun(); checkFirstRun(function() {
if (showProjectWelcome) {
RED.projects.showStartup();
}
});
},100); },100);
} }
function checkFirstRun() { function checkFirstRun(done) {
if (RED.settings.theme("tours") === false) { if (RED.settings.theme("tours") === false) {
done();
return; return;
} }
if (!RED.settings.get("editor.view.view-show-welcome-tours", true)) { if (!RED.settings.get("editor.view.view-show-welcome-tours", true)) {
done();
return; return;
} }
RED.actions.invoke("core:show-welcome-tour", RED.settings.get("editor.tours.welcome")); RED.actions.invoke("core:show-welcome-tour", RED.settings.get("editor.tours.welcome"), done);
} }
function buildMainMenu() { function buildMainMenu() {

View File

@ -2387,6 +2387,7 @@ RED.projects = (function() {
return { return {
init: init, init: init,
showStartup: function() { showStartup: function() {
console.warn("showStartup")
if (!RED.user.hasPermission("projects.write")) { if (!RED.user.hasPermission("projects.write")) {
RED.notify(RED._("user.errors.notAuthorized"),"error"); RED.notify(RED._("user.errors.notAuthorized"),"error");
return; return;

View File

@ -393,10 +393,12 @@ RED.sidebar.help = (function() {
treeList.treeList("select","changelog"); treeList.treeList("select","changelog");
show(); show();
} }
function showWelcomeTour(lastSeenVersion) { function showWelcomeTour(lastSeenVersion, done) {
done = done || function() {};
RED.tourGuide.load("./tours/welcome.js", function(err, tour) { RED.tourGuide.load("./tours/welcome.js", function(err, tour) {
if (err) { if (err) {
console.warn("Failed to load welcome tour",err); console.warn("Failed to load welcome tour",err);
done()
return; return;
} }
var currentVersionParts = RED.settings.version.split("."); var currentVersionParts = RED.settings.version.split(".");
@ -405,6 +407,7 @@ RED.sidebar.help = (function() {
// Only display the tour if its MAJ.MIN versions the current version // Only display the tour if its MAJ.MIN versions the current version
// This means if we update MAJ/MIN without updating the tour, the old tour won't get shown // This means if we update MAJ/MIN without updating the tour, the old tour won't get shown
if (tourVersionParts[0] !== currentVersionParts[0] || tourVersionParts[1] !== currentVersionParts[1]) { if (tourVersionParts[0] !== currentVersionParts[0] || tourVersionParts[1] !== currentVersionParts[1]) {
done()
return; return;
} }
@ -412,26 +415,31 @@ RED.sidebar.help = (function() {
// Previously displayed a welcome tour. // Previously displayed a welcome tour.
if (lastSeenVersion === RED.settings.version) { if (lastSeenVersion === RED.settings.version) {
// Exact match - don't show the tour // Exact match - don't show the tour
done()
return; return;
} }
var lastSeenParts = lastSeenVersion.split("."); var lastSeenParts = lastSeenVersion.split(".");
if (currentVersionParts[0] < lastSeenParts[0] || (currentVersionParts[0] === lastSeenParts[0] && currentVersionParts[1] < lastSeenParts[1])) { if (currentVersionParts[0] < lastSeenParts[0] || (currentVersionParts[0] === lastSeenParts[0] && currentVersionParts[1] < lastSeenParts[1])) {
// Running an *older* version than last displayed tour. // Running an *older* version than last displayed tour.
done()
return; return;
} }
if (currentVersionParts[0] === lastSeenParts[0] && currentVersionParts[1] === lastSeenParts[1]) { if (currentVersionParts[0] === lastSeenParts[0] && currentVersionParts[1] === lastSeenParts[1]) {
if (lastSeenParts.length === 3 && currentVersionParts.length === 3) { if (lastSeenParts.length === 3 && currentVersionParts.length === 3) {
// Matching non-beta MAJ.MIN - don't repeat tour // Matching non-beta MAJ.MIN - don't repeat tour
done()
return; return;
} }
if (currentVersionParts.length === 4 && (lastSeenParts.length === 3 || currentVersionParts[3] < lastSeenParts[3])) { if (currentVersionParts.length === 4 && (lastSeenParts.length === 3 || currentVersionParts[3] < lastSeenParts[3])) {
// Running an *older* beta than last displayed tour. // Running an *older* beta than last displayed tour.
done()
return return
} }
} }
} }
RED.tourGuide.run("./tours/welcome.js", function(err) { RED.tourGuide.run("./tours/welcome.js", function(err) {
RED.settings.set("editor.tours.welcome", RED.settings.version) RED.settings.set("editor.tours.welcome", RED.settings.version)
done()
}) })
}) })

View File

@ -73,13 +73,13 @@
.red-ui-projects-dialog-screen-start { .red-ui-projects-dialog-screen-start {
.red-ui-projects-dialog-screen-start-hero { .red-ui-projects-dialog-screen-start-hero {
text-align: center; text-align: center;
font-size: 2em; font-size: 1.4em;
padding: 10px; padding: 10px;
min-height: 60px; min-height: 40px;
color: $primary-text-color; color: $primary-text-color;
} }
.red-ui-projects-dialog-screen-start-body { .red-ui-projects-dialog-screen-start-body {
min-height: 400px; min-height: 300px;
line-height: 1.6em; line-height: 1.6em;
p { p {
font-size: 1.1em; font-size: 1.1em;
@ -92,7 +92,7 @@
} }
button.red-ui-button.red-ui-projects-dialog-button { button.red-ui-button.red-ui-projects-dialog-button {
width: calc(50% - 80px); width: calc(50% - 80px);
margin: 20px; margin: 10px 20px;
height: auto; height: auto;
line-height: 2em; line-height: 2em;
padding: 10px; padding: 10px;