From 0960a4d0b00c9491b554cd49557b052414168e86 Mon Sep 17 00:00:00 2001
From: Frederic Guillot <fred@kanboard.net>
Date: Sun, 8 Jan 2017 21:18:54 -0500
Subject: Improve link labels pages navigation

---
 app/Controller/CurrencyController.php | 18 ++++++-------
 app/Controller/LinkController.php     | 50 ++++++++++++++++++++++-------------
 app/Template/config/sidebar.php       |  4 +--
 app/Template/link/create.php          | 12 +++------
 app/Template/link/index.php           | 33 -----------------------
 app/Template/link/show.php            | 36 +++++++++++++++++++++++++
 6 files changed, 81 insertions(+), 72 deletions(-)
 delete mode 100644 app/Template/link/index.php
 create mode 100644 app/Template/link/show.php

(limited to 'app')

diff --git a/app/Controller/CurrencyController.php b/app/Controller/CurrencyController.php
index 2b2275ac..155e229e 100644
--- a/app/Controller/CurrencyController.php
+++ b/app/Controller/CurrencyController.php
@@ -19,9 +19,9 @@ class CurrencyController extends BaseController
     {
         $this->response->html($this->helper->layout->config('currency/show', array(
             'application_currency' => $this->configModel->get('application_currency'),
-            'rates' => $this->currencyModel->getAll(),
-            'currencies' => $this->currencyModel->getCurrencies(),
-            'title' => t('Settings').' &gt; '.t('Currency rates'),
+            'rates'                => $this->currencyModel->getAll(),
+            'currencies'           => $this->currencyModel->getCurrencies(),
+            'title'                => t('Settings') . ' &gt; ' . t('Currency rates'),
         )));
     }
 
@@ -34,9 +34,9 @@ class CurrencyController extends BaseController
      */
     public function create(array $values = array(), array $errors = array())
     {
-        $this->response->html($this->helper->layout->config('currency/create', array(
-            'values' => $values,
-            'errors' => $errors,
+        $this->response->html($this->template->render('currency/create', array(
+            'values'     => $values,
+            'errors'     => $errors,
             'currencies' => $this->currencyModel->getCurrencies(),
         )));
     }
@@ -77,9 +77,9 @@ class CurrencyController extends BaseController
             $values['application_currency'] = $this->configModel->get('application_currency');
         }
 
-        $this->response->html($this->helper->layout->config('currency/change', array(
-            'values' => $values,
-            'errors' => $errors,
+        $this->response->html($this->template->render('currency/change', array(
+            'values'     => $values,
+            'errors'     => $errors,
             'currencies' => $this->currencyModel->getCurrencies(),
         )));
     }
diff --git a/app/Controller/LinkController.php b/app/Controller/LinkController.php
index 477b25a4..2ad8a2b5 100644
--- a/app/Controller/LinkController.php
+++ b/app/Controller/LinkController.php
@@ -16,11 +16,11 @@ class LinkController extends BaseController
     /**
      * Get the current link
      *
-     * @access private
+     * @access protected
      * @return array
      * @throws PageNotFoundException
      */
-    private function getLink()
+    protected function getLink()
     {
         $link = $this->linkModel->getById($this->request->getIntegerParam('link_id'));
 
@@ -32,19 +32,31 @@ class LinkController extends BaseController
     }
 
     /**
-     * List of links
+     * List of labels
+     *
+     * @access public
+     */
+    public function show()
+    {
+        $this->response->html($this->helper->layout->config('link/show', array(
+            'links' => $this->linkModel->getMergedList(),
+            'title' => t('Settings').' &gt; '.t('Link labels'),
+        )));
+    }
+
+    /**
+     * Add new link label
      *
      * @access public
      * @param array $values
      * @param array $errors
      */
-    public function index(array $values = array(), array $errors = array())
+    public function create(array $values = array(), array $errors = array())
     {
-        $this->response->html($this->helper->layout->config('link/index', array(
-            'links' => $this->linkModel->getMergedList(),
+        $this->response->html($this->template->render('link/create', array(
+            'links'  => $this->linkModel->getMergedList(),
             'values' => $values,
             'errors' => $errors,
-            'title' => t('Settings').' &gt; '.t('Task\'s links'),
         )));
     }
 
@@ -61,21 +73,22 @@ class LinkController extends BaseController
         if ($valid) {
             if ($this->linkModel->create($values['label'], $values['opposite_label']) !== false) {
                 $this->flash->success(t('Link added successfully.'));
-                return $this->response->redirect($this->helper->url->to('LinkController', 'index'));
+                $this->response->redirect($this->helper->url->to('LinkController', 'show'), true);
+                return;
             } else {
                 $this->flash->failure(t('Unable to create your link.'));
             }
         }
 
-        return $this->index($values, $errors);
+        $this->create($values, $errors);
     }
 
     /**
      * Edit form
      *
      * @access public
-     * @param array $values
-     * @param array $errors
+     * @param  array $values
+     * @param  array $errors
      * @throws PageNotFoundException
      */
     public function edit(array $values = array(), array $errors = array())
@@ -83,12 +96,11 @@ class LinkController extends BaseController
         $link = $this->getLink();
         $link['label'] = t($link['label']);
 
-        $this->response->html($this->helper->layout->config('link/edit', array(
+        $this->response->html($this->template->render('link/edit', array(
             'values' => $values ?: $link,
             'errors' => $errors,
             'labels' => $this->linkModel->getList($link['id']),
-            'link' => $link,
-            'title' => t('Link modification')
+            'link'   => $link,
         )));
     }
 
@@ -105,13 +117,14 @@ class LinkController extends BaseController
         if ($valid) {
             if ($this->linkModel->update($values)) {
                 $this->flash->success(t('Link updated successfully.'));
-                return $this->response->redirect($this->helper->url->to('LinkController', 'index'));
+                $this->response->redirect($this->helper->url->to('LinkController', 'show'), true);
+                return;
             } else {
                 $this->flash->failure(t('Unable to update your link.'));
             }
         }
 
-        return $this->edit($values, $errors);
+        $this->edit($values, $errors);
     }
 
     /**
@@ -123,9 +136,8 @@ class LinkController extends BaseController
     {
         $link = $this->getLink();
 
-        $this->response->html($this->helper->layout->config('link/remove', array(
+        $this->response->html($this->template->render('link/remove', array(
             'link' => $link,
-            'title' => t('Remove a link')
         )));
     }
 
@@ -145,6 +157,6 @@ class LinkController extends BaseController
             $this->flash->failure(t('Unable to remove this link.'));
         }
 
-        $this->response->redirect($this->helper->url->to('LinkController', 'index'));
+        $this->response->redirect($this->helper->url->to('LinkController', 'show'), true);
     }
 }
diff --git a/app/Template/config/sidebar.php b/app/Template/config/sidebar.php
index f35efde0..95be963b 100644
--- a/app/Template/config/sidebar.php
+++ b/app/Template/config/sidebar.php
@@ -22,9 +22,9 @@
             <?= $this->url->link(t('Tags management'), 'TagController', 'index') ?>
         </li>
         <li <?= $this->app->checkMenuSelection('LinkController') ?>>
-            <?= $this->url->link(t('Link settings'), 'LinkController', 'index') ?>
+            <?= $this->url->link(t('Link labels'), 'LinkController', 'show') ?>
         </li>
-        <li <?= $this->app->checkMenuSelection('CurrencyController', 'show') ?>>
+        <li <?= $this->app->checkMenuSelection('CurrencyController') ?>>
             <?= $this->url->link(t('Currency rates'), 'CurrencyController', 'show') ?>
         </li>
         <li <?= $this->app->checkMenuSelection('ConfigController', 'integrations') ?>>
diff --git a/app/Template/link/create.php b/app/Template/link/create.php
index 23990604..37610a3b 100644
--- a/app/Template/link/create.php
+++ b/app/Template/link/create.php
@@ -1,18 +1,12 @@
 <div class="page-header">
-    <h2><?= t('Add a new link') ?></h2>
+    <h2><?= t('Add link label') ?></h2>
 </div>
 
 <form action="<?= $this->url->href('LinkController', 'save') ?>" method="post" autocomplete="off">
-
     <?= $this->form->csrf() ?>
-
     <?= $this->form->label(t('Label'), 'label') ?>
-    <?= $this->form->text('label', $values, $errors, array('required')) ?>
-
+    <?= $this->form->text('label', $values, $errors, array('required', 'autofocus')) ?>
     <?= $this->form->label(t('Opposite label'), 'opposite_label') ?>
     <?= $this->form->text('opposite_label', $values, $errors) ?>
-
-    <div class="form-actions">
-        <button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
-    </div>
+    <?= $this->modal->submitButtons() ?>
 </form>
diff --git a/app/Template/link/index.php b/app/Template/link/index.php
deleted file mode 100644
index b0dcad1e..00000000
--- a/app/Template/link/index.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<div class="page-header">
-    <h2><?= t('Link labels') ?></h2>
-</div>
-<?php if (! empty($links)): ?>
-<table class="table-striped table-scrolling">
-    <tr>
-        <th class="column-70"><?= t('Link labels') ?></th>
-        <th><?= t('Actions') ?></th>
-    </tr>
-    <?php foreach ($links as $link): ?>
-    <tr>
-        <td>
-            <strong><?= t($link['label']) ?></strong>
-
-            <?php if (! empty($link['opposite_label'])): ?>
-                | <?= t($link['opposite_label']) ?>
-            <?php endif ?>
-        </td>
-        <td>
-            <ul>
-                <?= $this->modal->medium('edit', t('Edit'), 'LinkController', 'edit', array('link_id' => $link['id'])) ?>
-                <?= t('or') ?>
-                <?= $this->modal->confirm('trash-o', t('Remove'), 'LinkController', 'confirm', array('link_id' => $link['id'])) ?>
-            </ul>
-        </td>
-    </tr>
-    <?php endforeach ?>
-</table>
-<?php else: ?>
-    <?= t('There is no link.') ?>
-<?php endif ?>
-
-<?= $this->render('link/create', array('values' => $values, 'errors' => $errors)) ?>
diff --git a/app/Template/link/show.php b/app/Template/link/show.php
new file mode 100644
index 00000000..6aadd66b
--- /dev/null
+++ b/app/Template/link/show.php
@@ -0,0 +1,36 @@
+<div class="page-header">
+    <h2><?= t('Link labels') ?></h2>
+    <ul>
+        <li>
+            <?= $this->modal->medium('plus', t('Add link label'), 'LinkController', 'create') ?>
+        </li>
+    </ul>
+</div>
+<?php if (! empty($links)): ?>
+    <table class="table-striped table-scrolling">
+        <tr>
+            <th class="column-70"><?= t('Link labels') ?></th>
+            <th><?= t('Actions') ?></th>
+        </tr>
+        <?php foreach ($links as $link): ?>
+        <tr>
+            <td>
+                <strong><?= t($link['label']) ?></strong>
+
+                <?php if (! empty($link['opposite_label'])): ?>
+                    | <?= t($link['opposite_label']) ?>
+                <?php endif ?>
+            </td>
+            <td>
+                <ul>
+                    <?= $this->modal->medium('edit', t('Edit'), 'LinkController', 'edit', array('link_id' => $link['id'])) ?>
+                    <?= t('or') ?>
+                    <?= $this->modal->confirm('trash-o', t('Remove'), 'LinkController', 'confirm', array('link_id' => $link['id'])) ?>
+                </ul>
+            </td>
+        </tr>
+        <?php endforeach ?>
+    </table>
+<?php else: ?>
+    <?= t('There is no link.') ?>
+<?php endif ?>
-- 
cgit v1.2.3