From 0b7844b523d9be9850f05e91ae59c1f854d1692a Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 20 Oct 2021 11:21:50 +0200 Subject: [PATCH] Fix premium plan detection --- www/common/drive-ui.js | 24 +++++++++++++++++++----- www/common/outer/async-store.js | 2 +- www/common/sframe-common-outer.js | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index b56dee169..b0fc111fa 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -344,6 +344,10 @@ define([ }; var createContextMenu = function (common) { + var metadataMgr = common.getMetadataMgr(); + var priv = metadataMgr.getPrivateData(); + + APP.premiumPlan = priv.plan; var getOpenIn = function (app) { var icon = AppConfig.applicationsIcon[app]; var cls = icon.indexOf('cptools') === 0 ? 'cptools '+icon : 'fa '+icon; @@ -4353,10 +4357,6 @@ define([ Access.getAccessModal(common, opts, cb); }; - if (!APP.loggedIn) { - $contextMenu.find('.cp-app-drive-context-delete').attr('data-icon', faDelete) - .html($contextMenu.find('.cp-app-drive-context-remove').html()); - } var deleteOwnedPaths = function (paths, pathsList) { pathsList = pathsList || []; if (paths) { @@ -4421,7 +4421,7 @@ define([ openIn(app, path, APP.team, _simpleData); }; - $contextMenu.on("click", "a", function(e) { + var addContextEvent = function () { $contextMenu.on("click", "a", function(e) { e.stopPropagation(); var paths = $contextMenu.data('paths'); var pathsList = []; @@ -4840,8 +4840,22 @@ define([ APP.selectedFiles = paths[0].path.slice(-1); } APP.hideMenu(); + })}; + + metadataMgr.onChange(function () { + var priv = metadataMgr.getPrivateData(); + if (priv.plan !== APP.premiumPlan) { + $contextMenu.remove(); + $contextMenu = createContextMenu(common).appendTo($appContainer); + if (!APP.loggedIn) { + $contextMenu.find('.cp-app-drive-context-delete').attr('data-icon', faDelete) + .html($contextMenu.find('.cp-app-drive-context-remove').html()); + } + addContextEvent(); + } }); + // Chrome considers the double-click means "select all" in the window $content.on('mousedown', function (e) { $content.focus(); diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index cd8887a15..729793039 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -657,7 +657,7 @@ define([ accountName: proxy.login_name || '', offline: store.proxy && store.offline, teams: teams, - plan: account.plan, + plan: store.ready ? (account.plan || '') : undefined, } }; cb(JSON.parse(JSON.stringify(metadata))); diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index a26b095db..ef8f7c1e6 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -676,7 +676,7 @@ define([ } var priv = metaObj.priv; - var _plan = priv.offline ? Utils.LocalStore.getPremium() : priv.plan; + var _plan = typeof(priv.plan) === "undefined" ? Utils.LocalStore.getPremium() : priv.plan; var p = Utils.Util.checkRestrictedApp(parsed.type, AppConfig, Utils.Constants.earlyAccessApps, _plan, additionalPriv.loggedIn); if (p === 0 || p === -1) {