diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php index 4d0859b198..94addb2b78 100644 --- a/lib/private/App/AppManager.php +++ b/lib/private/App/AppManager.php @@ -323,6 +323,7 @@ class AppManager implements IAppManager { public function clearAppsCache() { $settingsMemCache = $this->memCacheFactory->createDistributed('settings'); $settingsMemCache->clear('listApps'); + $this->appInfos = []; } /** diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index 70f1b16e3c..d3c9859c68 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -887,6 +887,7 @@ class OC_App { } self::registerAutoloading($appId, $appPath); + \OC::$server->getAppManager()->clearAppsCache(); $appData = self::getAppInfo($appId); self::executeRepairSteps($appId, $appData['repair-steps']['pre-migration']); diff --git a/settings/src/store/apps.js b/settings/src/store/apps.js index f19f894309..9fedabf022 100644 --- a/settings/src/store/apps.js +++ b/settings/src/store/apps.js @@ -99,6 +99,15 @@ const mutations = { state.apps.find(app => app.id === appId).canInstall = true; }, + updateApp(state, appId) { + let app = state.apps.find(app => app.id === appId); + let version = app.update; + app.update = null; + app.version = version; + state.updateCount--; + + }, + resetApps(state) { state.apps = []; }, @@ -246,6 +255,22 @@ const actions = { }).catch((error) => context.commit('API_FAILURE', { appId, error })); }, + updateApp(context, { appId }) { + return api.requireAdmin().then((response) => { + context.commit('startLoading', appId); + return api.get(OC.generateUrl(`settings/apps/update/${appId}`)) + .then((response) => { + context.commit('stopLoading', appId); + context.commit('updateApp', appId); + return true; + }) + .catch((error) => { + context.commit('stopLoading', appId); + context.commit('APPS_API_FAILURE', { appId, error }) + }) + }).catch((error) => context.commit('API_FAILURE', { appId, error })); + }, + getApps(context, { category }) { context.commit('startLoading', 'list'); return api.get(OC.generateUrl(`settings/apps/list?category=${category}`))