From 2f1116818d7d9a6ef413b2c06e9603ffceaf7867 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 14 Jan 2015 23:30:19 +0100 Subject: Fix extension interface - Seperate user and system extensions on extension/index - extension/configure shows index page with the slider opened if request is done with ajax - Reorganize some extension view files --- app/Controllers/extensionController.php | 13 ++++++- app/i18n/en/admin.php | 8 +++- app/i18n/fr/admin.php | 8 +++- app/views/extension/configure.phtml | 22 +---------- app/views/extension/index.phtml | 57 ++++++++++++++++------------- app/views/helpers/extension/configure.phtml | 19 ++++++++++ app/views/helpers/extension/details.phtml | 21 +++++++++++ 7 files changed, 98 insertions(+), 50 deletions(-) create mode 100644 app/views/helpers/extension/configure.phtml create mode 100644 app/views/helpers/extension/details.phtml diff --git a/app/Controllers/extensionController.php b/app/Controllers/extensionController.php index 5dd7eac89..ec5eecadb 100644 --- a/app/Controllers/extensionController.php +++ b/app/Controllers/extensionController.php @@ -20,7 +20,15 @@ class FreshRSS_extension_Controller extends Minz_ActionController { */ public function indexAction() { Minz_View::prependTitle(_t('admin.extensions.title') . ' · '); - $this->view->extension_list = Minz_ExtensionManager::list_extensions(); + $this->view->extension_list = array( + 'system' => array(), + 'user' => array(), + ); + + $extensions = Minz_ExtensionManager::list_extensions(); + foreach ($extensions as $ext) { + $this->view->extension_list[$ext->getType()][] = $ext; + } } /** @@ -36,6 +44,9 @@ class FreshRSS_extension_Controller extends Minz_ActionController { public function configureAction() { if (Minz_Request::param('ajax')) { $this->view->_useLayout(false); + } else { + $this->indexAction(); + $this->view->change_view('extension', 'index'); } $ext_name = urldecode(Minz_Request::param('e')); diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index 3161683a8..947d0e6c7 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -103,10 +103,16 @@ return array( ), ), 'extensions' => array( + 'disabled' => 'Disabled', 'empty_list' => 'There is no installed extension', + 'enabled' => 'Enabled', 'no_configure_view' => 'This extension cannot be configured.', - 'system' => 'System extension (you have no rights on it)', + 'system' => array( + '_' => 'System extensions', + 'no_rights' => 'System extension (you have no rights on it)', + ), 'title' => 'Extensions', + 'user' => 'User extensions', ), 'stats' => array( '_' => 'Statistics', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index 3d69e4daf..980f1fccf 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -103,10 +103,16 @@ return array( ), ), 'extensions' => array( + 'disabled' => 'Désactivée', 'empty_list' => 'Il n’y a aucune extension installée.', + 'enabled' => 'Activée', 'no_configure_view' => 'Cette extension ne peut pas être configurée.', - 'system' => 'Extension système (vous n’avez aucun droit dessus)', + 'system' => array( + '_' => 'Extensions système', + 'no_rights' => 'Extension système (vous n’avez aucun droit dessus)', + ), 'title' => 'Extensions', + 'user' => 'Extensions utilisateur', ), 'stats' => array( '_' => 'Statistiques', diff --git a/app/views/extension/configure.phtml b/app/views/extension/configure.phtml index c03439a75..8933eeae5 100644 --- a/app/views/extension/configure.phtml +++ b/app/views/extension/configure.phtml @@ -1,23 +1,3 @@ partial('aside_configure'); -} - -?> - -
-

extension->getName(); ?> (extension->getVersion(); ?>) — extension->getType(); ?>

- -

extension->getDescription(); ?> — extension->getAuthor()); ?>

- -

- extension->getConfigureView(); - if ($configure_view !== false) { - echo $configure_view; - } else { - ?> -

- -
+$this->renderHelper('extension/configure'); diff --git a/app/views/extension/index.phtml b/app/views/extension/index.phtml index 25b0eb9ee..f2d05028f 100644 --- a/app/views/extension/index.phtml +++ b/app/views/extension/index.phtml @@ -5,35 +5,40 @@

- extension_list)) { ?> - extension_list as $ext) { ?> - + extension_list['system'])) { ?> +

+ extension_list['system'] as $ext) { + $this->ext_details = $ext; + $this->renderHelper('extension/details'); + } + ?> - + + extension_list['user'])) { ?> +

+ extension_list['user'] as $ext) { + $this->ext_details = $ext; + $this->renderHelper('extension/details'); + } + ?> + extension_list['system']) && empty($this->extension_list['user'])) { + ?>

- -
+extension) ? ' class="active"' : ''; ?> +> +
> +extension)) { + $this->renderHelper('extension/configure'); + } +?> +
diff --git a/app/views/helpers/extension/configure.phtml b/app/views/helpers/extension/configure.phtml new file mode 100644 index 000000000..95d968aba --- /dev/null +++ b/app/views/helpers/extension/configure.phtml @@ -0,0 +1,19 @@ +
+

+ extension->getName(); ?> (extension->getVersion(); ?>) — + extension->isEnabled() ? _t('admin.extensions.enabled') + : _t('admin.extensions.disabled'); ?> +

+ +

extension->getDescription(); ?> — extension->getAuthor()); ?>

+ +

+ extension->getConfigureView(); + if ($configure_view !== false) { + echo $configure_view; + } else { + ?> +

+ +
diff --git a/app/views/helpers/extension/details.phtml b/app/views/helpers/extension/details.phtml new file mode 100644 index 000000000..acba4e816 --- /dev/null +++ b/app/views/helpers/extension/details.phtml @@ -0,0 +1,21 @@ + -- cgit v1.2.3