From 3d1b3b5d18d6d15a9ea5ab8a9e9e870a2a5e20f1 Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 18 Dec 2019 10:52:20 +0100 Subject: [PATCH] Fix RPC data --- www/common/common-ui-elements.js | 6 +++--- www/common/outer/team.js | 26 +++++++++++++------------- www/teams/inner.js | 25 +++++++++++++++++++------ 3 files changed, 35 insertions(+), 22 deletions(-) diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index d14545368..f61c0a641 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -1735,14 +1735,14 @@ define([ hash: hash, teamId: config.teamId, seeds: seeds, - }, waitFor(function (error) { - if (error) { + }, waitFor(function (obj) { + if (obj && obj.error) { waitFor.abort(); $(linkSpin).hide(); $(linkForm).show(); // XXX DB: check this is the right place to put things back $nav.find('button.cp-teams-invite-create').show(); $nav.find('button.cp-teams-invite-copy').hide(); - return void $(linkError).text(Messages.team_inviteLinkError+error).show(); // XXX + return void $(linkError).text(Messages.team_inviteLinkError+obj.error).show(); // XXX } // Display result here $(linkSpin).hide(); diff --git a/www/common/outer/team.js b/www/common/outer/team.js index b7d390539..b91e678a1 100644 --- a/www/common/outer/team.js +++ b/www/common/outer/team.js @@ -1285,7 +1285,7 @@ define([ try { teamName = roster.getState().metadata.name; } catch (err) { - return void cb("TEAM_NAME_ERR"); + return void cb({ error: "TEAM_NAME_ERR" }); } var message = data.message; @@ -1342,7 +1342,7 @@ define([ if (err) { console.error("CRYPTPUT_ERR", err); w.abort(); - return void cb("SET_PREVIEW_CONTENT"); + return void cb({ error: "SET_PREVIEW_CONTENT" }); } }), putOpts); }()); @@ -1378,7 +1378,7 @@ define([ if (err) { console.error("CRYPTPUT_ERR", err); w.abort(); - return void cb("SET_PREVIEW_CONTENT"); + return void cb({ error: "SET_PREVIEW_CONTENT" }); } }), putOpts); }()); @@ -1419,7 +1419,7 @@ define([ try { previewKeys = Invite.derivePreviewKeys(seeds.preview); } catch (err) { - return void cb("INVALID_SEEDS"); + return void cb({ error: "INVALID_SEEDS" }); } Crypt.get({ // secrets channel: previewKeys.channel, @@ -1429,13 +1429,13 @@ define([ cryptKey: previewKeys.cryptKey, }, }, function (err, val) { - if (err) { return void cb(err); } - if (!val) { return void cb('DELETED'); } + if (err) { return void cb({ error: err }); } + if (!val) { return void cb({ error: 'DELETED' }); } var json = Util.tryParse(val); - if (!json) { return void cb("parseError"); } + if (!json) { return void cb({ error: "parseError" }); } console.error("JSON", json); - cb(void 0, json); + cb(json); }, { // cryptget opts network: ctx.store.network, initialState: '{}', @@ -1448,7 +1448,7 @@ define([ try { previewKeys = Invite.deriveInviteKeys(bytes64); } catch (err) { - return void cb("INVALID_SEEDS"); + return void cb({ error: "INVALID_SEEDS" }); } Crypt.get({ // secrets channel: previewKeys.channel, @@ -1458,12 +1458,12 @@ define([ cryptKey: previewKeys.cryptKey, }, }, function (err, val) { - if (err) { return void cb(err); } - if (!val) { return void cb('DELETED'); } + if (err) { return void cb({error: err}); } + if (!val) { return void cb({error: 'DELETED'}); } var json = Util.tryParse(val); - if (!json) { return void cb("parseError"); } - cb(void 0, json); + if (!json) { return void cb({error: "parseError"}); } + cb(json); }, { // cryptget opts network: ctx.store.network, initialState: '{}', diff --git a/www/teams/inner.js b/www/teams/inner.js index 4fea2b25a..902fa403b 100644 --- a/www/teams/inner.js +++ b/www/teams/inner.js @@ -1079,11 +1079,15 @@ define([ var bytes64; + var spinnerText; + var $spinner; + var inviteContent; nThen(function (waitFor) { $inviteDiv.append(h('div', [ h('i.fa.fa-spin.fa-spinner'), - h('span', 'Scrypt...') // XXX + spinnerText = h('span', 'Scrypt...') // XXX ])); + $spinner = $(spinnerText); setTimeout(waitFor(), 150); }).nThen(function (waitFor) { var salt = InviteInner.deriveSalt(pw, AppConfig.loginSalt); @@ -1091,26 +1095,35 @@ define([ bytes64 = bytes; })); }).nThen(function (waitFor) { + $spinner.text('get team data'); // XXX APP.module.execCommand('GET_INVITE_CONTENT', { bytes64: bytes64, hash: hash, password: pw, - }, waitFor(function () { - $div.empty(); + }, waitFor(function (obj) { + if (obj && obj.error) { + // Wrong password or other error... + // XXX if DELETED, password prompt again? + console.error(obj.error); + waitFor.abort(); + return; + } + inviteContent = obj; // TODO // Accept/decline/decide later UI })); + }).nThen(function (waitFor) { }); }; nThen(function (waitFor) { APP.module.execCommand("GET_PREVIEW_CONTENT", { seeds: seeds, - }, waitFor(function (err, json) { - if (err) { // XXX this is failing with "team is disabled" + }, waitFor(function (json) { + if (json && jsoN.error) { // XXX this is failing with "team is disabled" // XXX APP.module is not ready yet? // err === DELETED: different message? - $(errorBlock).text('ERROR'+err).show(); // XXX + $(errorBlock).text('ERROR'+json.error).show(); // XXX waitFor.abort(); $div.empty(); return;