From 1a034ce6993373b35ac05fb7a7463fc5b55b69ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= <jus@bitgrid.net> Date: Wed, 30 May 2018 16:06:18 +0200 Subject: [PATCH] Implement update functionality MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl <jus@bitgrid.net> --- lib/private/App/AppManager.php | 1 + lib/private/legacy/app.php | 1 + settings/src/store/apps.js | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php index 4d0859b1988..94addb2b785 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 70f1b16e3c6..d3c9859c68d 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 f19f894309b..9fedabf0223 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}`)) -- GitLab