From 5e2cf92b39920329fab602106a3f8d1ad0b265ec Mon Sep 17 00:00:00 2001 From: YaroslavOvdii Date: Fri, 16 Aug 2019 15:36:45 +0300 Subject: [PATCH 1/2] Saving form information when user go to another modal --- js/interface.js | 99 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 64 insertions(+), 35 deletions(-) diff --git a/js/interface.js b/js/interface.js index 3299ac7..8a1d4bd 100644 --- a/js/interface.js +++ b/js/interface.js @@ -670,7 +670,7 @@ function submissionBuild(appSubmission, origin) { function save(origin, submission) { - Fliplet.App.Submissions.get() + return Fliplet.App.Submissions.get() .then(function (submissions) { var savedSubmission = _.find(submissions, function (sub) { return sub.id === submission.id; @@ -707,7 +707,6 @@ function save(origin, submission) { if (origin === "unsigned") { unsignedSubmission = newSubmission; } - return cloneCredentialsPromise.then(function () { return Fliplet.App.Submissions.update(newSubmission.id, newSubmission.data); }).then(function () { @@ -755,7 +754,7 @@ function requestBuild(origin, submission) { submission.data.appIcon = appIcon; submission.data.legacyBuild = appSettings.legacyBuild || false; - Fliplet.App.Submissions.get() + return Fliplet.App.Submissions.get() .then(function (submissions) { var savedSubmission = _.find(submissions, function (sub) { return sub.id === submission.id; @@ -1030,9 +1029,9 @@ function saveAppStoreData(request) { savePushData(true); if (request) { - requestBuild('appStore', appStoreSubmission); + return requestBuild('appStore', appStoreSubmission); } else { - save('appStore', appStoreSubmission); + return save('appStore', appStoreSubmission); } } @@ -1120,9 +1119,9 @@ function saveEnterpriseData(request) { savePushData(true); if (request) { - requestBuild('enterprise', enterpriseSubmission); + return requestBuild('enterprise', enterpriseSubmission); } else { - save('enterprise', enterpriseSubmission); + return save('enterprise', enterpriseSubmission); } }); } else { @@ -1133,9 +1132,9 @@ function saveEnterpriseData(request) { savePushData(true); if (request) { - requestBuild('enterprise', enterpriseSubmission); + return requestBuild('enterprise', enterpriseSubmission); } else { - save('enterprise', enterpriseSubmission); + return save('enterprise', enterpriseSubmission); } } } @@ -1157,9 +1156,9 @@ function saveUnsignedData(request) { unsignedSubmission.data = data; if (request) { - requestBuild('unsigned', unsignedSubmission); + return requestBuild('unsigned', unsignedSubmission); } else { - save('unsigned', unsignedSubmission); + return save('unsigned', unsignedSubmission); } } @@ -1211,6 +1210,19 @@ function savePushData(silentSave) { }); } +function saveProgressOnClose () { + var savingFunctions = { + "appstore-control": saveAppStoreData, + "enterprise-control": saveEnterpriseData, + "unsigned-control": saveUnsignedData + } + + //Finding out active tab to use correct save method + var activeTabId = $(".nav.nav-tabs li.active").prop("id"); + + return savingFunctions[activeTabId]() +} + function cloneCredentials(credentialKey, submission, saveData) { return Fliplet.API.request({ method: 'POST', @@ -2371,37 +2383,54 @@ $('[name="fl-store-keywords"]').on('tokenfield:createtoken', function (e) { $('.redirectToSettings, [data-change-settings]').on('click', function (event) { event.preventDefault(); - Fliplet.Studio.emit('close-overlay', { - name: 'publish-apple' - }); + saveProgressOnClose().then(function () { + Fliplet.Studio.emit('close-overlay', { + name: 'publish-apple' + }); + + Fliplet.Studio.emit('overlay', { + name: 'app-settings', + options: { + size: 'large', + title: 'App Settings', + section: 'appSettingsGeneral', + appId: Fliplet.Env.get('appId') + } + }); + }) + .catch(function (err) { + Fliplet.Modal.alert({ + message: Fliplet.parseError(err) + }) + }) - Fliplet.Studio.emit('overlay', { - name: 'app-settings', - options: { - size: 'large', - title: 'App Settings', - section: 'appSettingsGeneral', - appId: Fliplet.Env.get('appId') - } - }); }); $(document).on('click', '[data-change-assets]', function (event) { event.preventDefault(); - Fliplet.Studio.emit('close-overlay', { - name: 'publish-apple' - }); + saveProgressOnClose().then(function () { + Fliplet.Studio.emit('close-overlay', { + name: 'publish-apple' + }); + + Fliplet.Studio.emit('overlay', { + name: 'app-settings', + options: { + size: 'large', + title: 'App Settings', + section: 'launchAssets', + appId: Fliplet.Env.get('appId') + } + }); + }) + .catch(function (err) { + Fliplet.Modal.alert({ + message: Fliplet.parseError(err) + }) + }) + - Fliplet.Studio.emit('overlay', { - name: 'app-settings', - options: { - size: 'large', - title: 'App Settings', - section: 'launchAssets', - appId: Fliplet.Env.get('appId') - } - }); }); $('#appStoreConfiguration, #enterpriseConfiguration, #unsignedConfiguration').on('validated.bs.validator', function () { From ffbf221ae0294e143942f5cab3f0669f1eb02f17 Mon Sep 17 00:00:00 2001 From: YaroslavOvdii Date: Mon, 19 Aug 2019 13:55:56 +0300 Subject: [PATCH 2/2] fix --- js/interface.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/js/interface.js b/js/interface.js index 8a1d4bd..013f97b 100644 --- a/js/interface.js +++ b/js/interface.js @@ -2397,12 +2397,11 @@ $('.redirectToSettings, [data-change-settings]').on('click', function (event) { appId: Fliplet.Env.get('appId') } }); - }) - .catch(function (err) { + }).catch(function (err) { Fliplet.Modal.alert({ message: Fliplet.parseError(err) }) - }) + }); }); @@ -2423,14 +2422,12 @@ $(document).on('click', '[data-change-assets]', function (event) { appId: Fliplet.Env.get('appId') } }); - }) - .catch(function (err) { + }).catch(function (err) { Fliplet.Modal.alert({ message: Fliplet.parseError(err) }) - }) - - + }); + }); $('#appStoreConfiguration, #enterpriseConfiguration, #unsignedConfiguration').on('validated.bs.validator', function () {