aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2015-01-14 23:30:19 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2015-01-14 23:30:19 +0100
commit2f1116818d7d9a6ef413b2c06e9603ffceaf7867 (patch)
treee79bfcb4905c66f1115bc145f7d8a44ceae1d040 /app
parent89682886005f1e6b36e664f47b3b0862d62846e6 (diff)
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
Diffstat (limited to 'app')
-rw-r--r--app/Controllers/extensionController.php13
-rw-r--r--app/i18n/en/admin.php8
-rw-r--r--app/i18n/fr/admin.php8
-rw-r--r--app/views/extension/configure.phtml22
-rw-r--r--app/views/extension/index.phtml57
-rw-r--r--app/views/helpers/extension/configure.phtml19
-rw-r--r--app/views/helpers/extension/details.phtml21
7 files changed, 98 insertions, 50 deletions
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 @@
<?php
-if (!Minz_Request::param('ajax')) {
- $this->partial('aside_configure');
-}
-
-?>
-
-<div class="post">
- <h1><?php echo $this->extension->getName(); ?> (<?php echo $this->extension->getVersion(); ?>) — <?php echo $this->extension->getType(); ?></h1>
-
- <p class="alert alert-warn"><?php echo $this->extension->getDescription(); ?> — <?php echo _t('gen.short.by_author', $this->extension->getAuthor()); ?></p>
-
- <h2><?php echo _t('gen.action.manage'); ?></h2>
- <?php
- $configure_view = $this->extension->getConfigureView();
- if ($configure_view !== false) {
- echo $configure_view;
- } else {
- ?>
- <p class="alert alert-warn"><?php echo _t('admin.extensions.no_configure_view'); ?></p>
- <?php } ?>
-</div>
+$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 @@
<h1><?php echo _t('admin.extensions.title'); ?></h1>
- <?php if (!empty($this->extension_list)) { ?>
<form id="form-extension" method="post" style="display: none"></form>
- <?php foreach ($this->extension_list as $ext) { ?>
- <ul class="horizontal-list">
- <li class="item">
- <?php if ($ext->getType() === 'user' || FreshRSS_Auth::hasAccess('admin')) { ?>
- <?php $name_encoded = urlencode($ext->getName()); ?>
- <div class="stick">
- <a class="btn open-slider" href="<?php echo _url('extension', 'configure', 'e', $name_encoded); ?>"><?php echo _i('configure'); ?> <?php echo _t('gen.action.manage'); ?></a>
- <?php if ($ext->isEnabled()) { ?>
- <button class="btn active" form="form-extension" formaction="<?php echo _url('extension', 'disable', 'e', $name_encoded); ?>"><?php echo _t('gen.action.disable'); ?></button>
- <?php } else { ?>
- <button class="btn" form="form-extension" formaction="<?php echo _url('extension', 'enable', 'e', $name_encoded); ?>"><?php echo _t('gen.action.enable'); ?></button>
- <?php } ?>
- <?php if (FreshRSS_Auth::hasAccess('admin')) { ?>
- <button class="btn btn-attention confirm" form="form-extension" formaction="<?php echo _url('extension', 'remove', 'e', $name_encoded); ?>"><?php echo _t('gen.action.remove'); ?></button>
- <?php } ?>
- </div>
- <?php } else { ?>
- <?php echo _t('admin.extensions.system'); ?>
- <?php } ?>
- </li>
- <li class="item"><?php echo $ext->getName(); ?></li>
- </ul>
+ <?php if (!empty($this->extension_list['system'])) { ?>
+ <h2><?php echo _t('admin.extensions.system'); ?></h2>
+ <?php
+ foreach ($this->extension_list['system'] as $ext) {
+ $this->ext_details = $ext;
+ $this->renderHelper('extension/details');
+ }
+ ?>
<?php } ?>
- <?php } else { ?>
+
+ <?php if (!empty($this->extension_list['user'])) { ?>
+ <h2><?php echo _t('admin.extensions.user'); ?></h2>
+ <?php
+ foreach ($this->extension_list['user'] as $ext) {
+ $this->ext_details = $ext;
+ $this->renderHelper('extension/details');
+ }
+ ?>
+ <?php
+ }
+
+ if (empty($this->extension_list['system']) && empty($this->extension_list['user'])) {
+ ?>
<p class="alert alert-warn"><?php echo _t('admin.extensions.empty_list'); ?></p>
<?php } ?>
</div>
-<a href="#" id="close-slider"></a>
-<div id="slider"></div>
+<?php $class = isset($this->extension) ? ' class="active"' : ''; ?>
+<a href="#" id="close-slider"<?php echo $class; ?>></a>
+<div id="slider"<?php echo $class; ?>>
+<?php
+ if (isset($this->extension)) {
+ $this->renderHelper('extension/configure');
+ }
+?>
+</div>
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 @@
+<div class="post">
+ <h1>
+ <?php echo $this->extension->getName(); ?> (<?php echo $this->extension->getVersion(); ?>) —
+ <?php echo $this->extension->isEnabled() ? _t('admin.extensions.enabled')
+ : _t('admin.extensions.disabled'); ?>
+ </h1>
+
+ <p class="alert alert-warn"><?php echo $this->extension->getDescription(); ?> — <?php echo _t('gen.short.by_author', $this->extension->getAuthor()); ?></p>
+
+ <h2><?php echo _t('gen.action.manage'); ?></h2>
+ <?php
+ $configure_view = $this->extension->getConfigureView();
+ if ($configure_view !== false) {
+ echo $configure_view;
+ } else {
+ ?>
+ <p class="alert alert-warn"><?php echo _t('admin.extensions.no_configure_view'); ?></p>
+ <?php } ?>
+</div>
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 @@
+<ul class="horizontal-list">
+ <li class="item">
+ <?php if ($this->ext_details->getType() === 'user' || FreshRSS_Auth::hasAccess('admin')) { ?>
+ <?php $name_encoded = urlencode($this->ext_details->getName()); ?>
+ <div class="stick">
+ <a class="btn open-slider" href="<?php echo _url('extension', 'configure', 'e', $name_encoded); ?>"><?php echo _i('configure'); ?> <?php echo _t('gen.action.manage'); ?></a>
+ <?php if ($this->ext_details->isEnabled()) { ?>
+ <button class="btn active" form="form-extension" formaction="<?php echo _url('extension', 'disable', 'e', $name_encoded); ?>"><?php echo _t('gen.action.disable'); ?></button>
+ <?php } else { ?>
+ <button class="btn" form="form-extension" formaction="<?php echo _url('extension', 'enable', 'e', $name_encoded); ?>"><?php echo _t('gen.action.enable'); ?></button>
+ <?php } ?>
+ <?php if (FreshRSS_Auth::hasAccess('admin')) { ?>
+ <button class="btn btn-attention confirm" form="form-extension" formaction="<?php echo _url('extension', 'remove', 'e', $name_encoded); ?>"><?php echo _t('gen.action.remove'); ?></button>
+ <?php } ?>
+ </div>
+ <?php } else { ?>
+ <?php echo _t('admin.extensions.system.no_rights'); ?>
+ <?php } ?>
+ </li>
+ <li class="item"><?php echo $this->ext_details->getName(); ?></li>
+</ul>