diff --git a/app/apps/client/admin/appManage.js b/app/apps/client/admin/appManage.js index daf10f0dd176f..34550cf9b1b10 100644 --- a/app/apps/client/admin/appManage.js +++ b/app/apps/client/admin/appManage.js @@ -405,7 +405,8 @@ Template.appManage.events({ _app.set('working', true); try { - const { status } = await Apps.updateApp(appId, _app.get('marketplaceVersion')); + const method = _app.get('installed') ? 'updateApp' : 'installApp'; + const { status } = await Apps[method](appId, _app.get('marketplaceVersion')); warnStatusChange(_app.get('name'), status); } catch (error) { handleAPIError(error); diff --git a/app/apps/client/admin/helpers.js b/app/apps/client/admin/helpers.js index a1b0b2cdf9c55..3ae7f805a4837 100644 --- a/app/apps/client/admin/helpers.js +++ b/app/apps/client/admin/helpers.js @@ -19,6 +19,11 @@ const appErroredStatuses = [ AppStatus.INVALID_LICENSE_DISABLED, ]; +const subscriptionActiveStatuses = [ + 'trialing', + 'active', +]; + export const handleAPIError = (error) => { console.error(error); const message = (error.xhr && error.xhr.responseJSON && error.xhr.responseJSON.error) || error.message; @@ -298,7 +303,7 @@ export const appButtonProps = ({ }; } - const canTrial = purchaseType === 'subscription' && !subscriptionInfo.status; + const canTrial = purchaseType === 'subscription' && !subscriptionActiveStatuses.includes(subscriptionInfo.status); if (canTrial) { return { action: 'purchase',