diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2013-09-19 02:16:23 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2013-09-19 02:16:23 +0400 |
commit | e667cf5f6d964a42d1076ace14cf7d36b0bcf25c (patch) | |
tree | 80941f2e7847de82140dd39b4d1c01f7298ef105 /plugins/CorePluginsAdmin | |
parent | ea2ae320e98a04ba94ae91cd5efd80abfdb12d96 (diff) |
display error message during update plugin
Diffstat (limited to 'plugins/CorePluginsAdmin')
-rw-r--r-- | plugins/CorePluginsAdmin/Controller.php | 36 | ||||
-rw-r--r-- | plugins/CorePluginsAdmin/templates/updatePlugin.twig | 18 |
2 files changed, 36 insertions, 18 deletions
diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index 95f9b73706..53a62c2bf3 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -38,12 +38,11 @@ class Controller extends \Piwik\Controller\Admin $nonce = Common::getRequestVar('nonce', '', 'string'); if (empty($pluginName)) { - return; + throw new \Exception('Plugin parameter is missing'); } if (!Nonce::verifyNonce('CorePluginsAdmin.activatePlugin', $nonce)) { - // todo display error - return; + throw new \Exception(Piwik_Translate('ExceptionNonceMismatch')); } Nonce::discardNonce('CorePluginsAdmin.activatePlugin'); @@ -55,25 +54,37 @@ class Controller extends \Piwik\Controller\Admin public function updatePlugin() { + $view = $this->configureView('@CorePluginsAdmin/updatePlugin'); + $view->errorMessage = ''; + $pluginName = Common::getRequestVar('pluginName', '', 'string'); $nonce = Common::getRequestVar('nonce', '', 'string'); if (empty($pluginName)) { - return; + throw new \Exception('Plugin parameter is missing'); } + $view->plugin = array('name' => $pluginName); + if (!Nonce::verifyNonce('CorePluginsAdmin.updatePlugin', $nonce)) { - // todo display error + $view->errorMessage = Piwik_Translate('ExceptionNonceMismatch'); + echo $view->render(); return; } Nonce::discardNonce('CorePluginsAdmin.updatePlugin'); - $pluginInstaller = new PluginInstaller($pluginName); - $pluginInstaller->installOrUpdatePluginFromMarketplace(); - $marketplace = new MarketplaceApiClient(); + try { + $pluginInstaller = new PluginInstaller($pluginName); + $pluginInstaller->installOrUpdatePluginFromMarketplace(); + + } catch (PluginInstallerException $e) { + $view->errorMessage = $e->getMessage(); + echo $view->render(); + return; + } - $view = $this->configureView('@CorePluginsAdmin/updatePlugin'); + $marketplace = new MarketplaceApiClient(); $view->plugin = $marketplace->getPluginInfo($pluginName); echo $view->render(); @@ -81,7 +92,8 @@ class Controller extends \Piwik\Controller\Admin public function installPlugin() { - $view = $this->configureView('@CorePluginsAdmin/installPlugin'); + $view = $this->configureView('@CorePluginsAdmin/installPlugin'); + $view->errorMessage = ''; $pluginName = Common::getRequestVar('pluginName', '', 'string'); $nonce = Common::getRequestVar('nonce', '', 'string'); @@ -173,7 +185,7 @@ class Controller extends \Piwik\Controller\Admin $sort = $this->defaultSortMethod; } - $marketplace = new MarketplaceApiClient(); + $marketplace = new MarketplaceApiClient(); $view = $this->configureView('@CorePluginsAdmin/browseThemes'); $plugins = $marketplace->searchForThemes('', $query, $sort); @@ -183,7 +195,7 @@ class Controller extends \Piwik\Controller\Admin $plugin->isInstalled = !empty($loadedPlugins[$plugin->name]); $plugin->createdDateTime = Date::factory($plugin->createdDateTime)->getLocalized(Piwik_Translate('CoreHome_ShortDateFormatWithYear')); } - + $view->plugins = $plugins; $view->query = $query; diff --git a/plugins/CorePluginsAdmin/templates/updatePlugin.twig b/plugins/CorePluginsAdmin/templates/updatePlugin.twig index 67ea8b7951..700fa75d0b 100644 --- a/plugins/CorePluginsAdmin/templates/updatePlugin.twig +++ b/plugins/CorePluginsAdmin/templates/updatePlugin.twig @@ -6,16 +6,22 @@ <h2>Updating plugin {{ plugin.name}}</h2> - <div> - <p>Downloading plugin from Marketplace</p> + {% if errorMessage %} + <div class="ajaxError" style="">{{ errorMessage }}</div> + {% else %} - <p>Unzipping plugin</p> + <div> + <p>Downloading plugin from Marketplace</p> - <p>Replacing existing plugin</p> + <p>Unzipping plugin</p> - <p>You have successfully updated the Plugin {{ plugin.name }} {{ plugin.latestVersion }}.</p> + <p>Replacing existing plugin</p> - </div> + <p>You have successfully updated the Plugin {{ plugin.name }} {{ plugin.latestVersion }}.</p> + + </div> + + {% endif %} </div> {% endblock %} |