diff options
| author | 2012-11-05 21:40:58 +0100 | |
|---|---|---|
| committer | 2012-11-05 21:40:58 +0100 | |
| commit | 209fb252dcce8b69d05f796a914beb0e0bb7f9eb (patch) | |
| tree | 90b5e72a280f5bae15e4d7895f4f6fc9adb34fce | |
| parent | 33e47c5ac4cb622b51b0b23c7cad03d91ca1e26c (diff) | |
Fix issue #4 : ajout des retours utilisateur
| -rw-r--r-- | app/App_FrontController.php | 10 | ||||
| -rwxr-xr-x | app/controllers/configureController.php | 35 | ||||
| -rwxr-xr-x | app/controllers/entryController.php | 7 | ||||
| -rwxr-xr-x | app/controllers/feedController.php | 35 | ||||
| -rw-r--r-- | app/layout/layout.phtml | 6 | ||||
| -rw-r--r-- | public/data/Configuration.array.php | 17 | ||||
| -rw-r--r-- | public/scripts/notification.js | 17 | ||||
| -rw-r--r-- | public/theme/base.css | 38 |
8 files changed, 147 insertions, 18 deletions
diff --git a/app/App_FrontController.php b/app/App_FrontController.php index 80c566781..83d4372eb 100644 --- a/app/App_FrontController.php +++ b/app/App_FrontController.php @@ -13,6 +13,7 @@ class App_FrontController extends FrontController { Session::init (); // lancement de la session doit se faire après chargement des modèles sinon bug (pourquoi ?) $this->loadParamsView (); $this->loadStylesAndScripts (); + $this->loadNotifications (); } private function loadLibs () { @@ -31,6 +32,7 @@ class App_FrontController extends FrontController { View::prependStyle (Url::display ('/theme/base.css')); View::appendScript ('https://login.persona.org/include.js'); View::appendScript (Url::display ('/scripts/jquery.js')); + View::appendScript (Url::display ('/scripts/notification.js')); } private function loadParamsView () { @@ -39,4 +41,12 @@ class App_FrontController extends FrontController { $entryDAO = new EntryDAO (); View::_param ('nb_not_read', $entryDAO->countNotRead ()); } + + private function loadNotifications () { + $notif = Session::param ('notification'); + if ($notif) { + View::_param ('notification', $notif); + Session::_param ('notification'); + } + } } diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 40c514b5a..d86cda14c 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -41,6 +41,14 @@ class configureController extends ActionController { $catDAO->addCategory ($values); } + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Les catégories ont été mises à jour' + ); + Session::_param ('notification', $notif); + + Request::forward (array ('c' => 'configure', 'a' => 'categorize'), true); } $this->view->categories = $catDAO->listCategories (); @@ -75,6 +83,15 @@ class configureController extends ActionController { $feedDAO->updateFeed ($id, $values); $this->view->flux->_category ($cat); + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Le flux a été mis à jour' + ); + Session::_param ('notification', $notif); + + Request::forward (array ('c' => 'configure', 'a' => 'feed', 'params' => array ('id' => $id)), true); } View::prependTitle ('Gestion des flux RSS - ' . $this->view->flux->name () . ' - '); @@ -113,6 +130,15 @@ class configureController extends ActionController { $confDAO->update ($values); Session::_param ('conf', $this->view->conf); Session::_param ('mail', $this->view->conf->mailLogin ()); + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'La configuration a été mise à jour' + ); + Session::_param ('notification', $notif); + + Request::forward (array ('c' => 'configure', 'a' => 'display'), true); } View::prependTitle ('Gestion générale et affichage - '); @@ -183,6 +209,15 @@ class configureController extends ActionController { $confDAO = new RSSConfigurationDAO (); $confDAO->update ($values); Session::_param ('conf', $this->view->conf); + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Les raccourcis ont été mis à jour' + ); + Session::_param ('notification', $notif); + + Request::forward (array ('c' => 'configure', 'a' => 'shortcut'), true); } View::prependTitle ('Gestion des raccourcis - '); diff --git a/app/controllers/entryController.php b/app/controllers/entryController.php index cf510e362..ca702191f 100755 --- a/app/controllers/entryController.php +++ b/app/controllers/entryController.php @@ -40,6 +40,13 @@ class entryController extends ActionController { $entryDAO = new EntryDAO (); if ($id == false) { $entryDAO->updateEntries ($values); + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Tous les flux ont été marqués comme lu' + ); + Session::_param ('notification', $notif); } else { $entryDAO->updateEntry ($id, $values); } diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index eed8ccafa..d459ba0cb 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -43,8 +43,20 @@ class feedController extends ActionController { ); $entryDAO->addEntry ($values); } + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Le flux <em>' . $feed->url () . '</em> a bien été ajouté' + ); + Session::_param ('notification', $notif); } catch (Exception $e) { - // TODO ajouter une erreur : url non valide + // notif + $notif = array ( + 'type' => 'bad', + 'content' => 'L\'url <em>' . $url . '</em> est invalide' + ); + Session::_param ('notification', $notif); } Request::forward (array (), true); @@ -81,6 +93,13 @@ class feedController extends ActionController { $entryDAO->cleanOldEntries ($this->view->conf->oldEntries ()); + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Les flux ont été mis à jour' + ); + Session::_param ('notification', $notif); + Request::forward (array (), true); } @@ -139,6 +158,13 @@ class feedController extends ActionController { ); $feedDAO->addFeed ($values); } + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Les flux ont été importés' + ); + Session::_param ('notification', $notif); Request::forward (array ('c' => 'configure', 'a' => 'importExport')); } @@ -155,6 +181,13 @@ class feedController extends ActionController { $feedDAO = new FeedDAO (); $feedDAO->deleteFeed ($id); + + // notif + $notif = array ( + 'type' => 'good', + 'content' => 'Le flux a été supprimé' + ); + Session::_param ('notification', $notif); Request::forward (array ('c' => 'configure', 'a' => 'feed'), true); } diff --git a/app/layout/layout.phtml b/app/layout/layout.phtml index e73f14ba1..bae395033 100644 --- a/app/layout/layout.phtml +++ b/app/layout/layout.phtml @@ -17,5 +17,11 @@ <?php $this->partial ('persona'); ?> +<?php if (isset ($this->notification)) { ?> +<div id="notification" class="<?php echo $this->notification['type']; ?>"> +<?php echo $this->notification['content']; ?> +<a class="close" href="">X</a> +</div> +<?php } ?> </body> </html> diff --git a/public/data/Configuration.array.php b/public/data/Configuration.array.php index 57e1710c5..b3d9bbc7f 100644 --- a/public/data/Configuration.array.php +++ b/public/data/Configuration.array.php @@ -1,18 +1 @@ <?php -return array ( - 'posts_per_page' => 10, - 'default_view' => 'all', - 'display_posts' => 'no', - 'sort_order' => 'low_to_high', - 'old_entries' => 3, - 'shortcuts' => array ( - 'mark_read' => 'r', - 'mark_favorite' => 'f', - 'go_website' => 'space', - 'next_entry' => 'page_down', - 'prev_entry' => 'page_up', - 'next_page' => 'right', - 'prev_page' => 'left', - ), - 'mail_login' => '', -); diff --git a/public/scripts/notification.js b/public/scripts/notification.js new file mode 100644 index 000000000..a3a874c12 --- /dev/null +++ b/public/scripts/notification.js @@ -0,0 +1,17 @@ +function closeNotification () { + $("#notification").slideUp (200, function () { + $("#notification").remove (); + }); +} + +$(document).ready (function () { + notif = $("#notification"); + if (notif[0] !== undefined) { + timer = setInterval('closeNotification()', 5000); + + notif.find ("a.close").click (function () { + closeNotification (); + return false; + }); + } +}); diff --git a/public/theme/base.css b/public/theme/base.css index fa9c8fc72..24c4f371b 100644 --- a/public/theme/base.css +++ b/public/theme/base.css @@ -336,3 +336,41 @@ form { display: block; color: #F09600; } + +/*** NOTIFICATION ***/ +#notification { + position: fixed; + bottom: 0; + left: 25%; + width: 50%; + height: 50px; + padding: 0 50px; + line-height: 50px; + text-align: center; + border-radius: 5px 5px 0 0; + box-shadow: 0 0 3px #666; + background: #ddd; + color: #fff; + font-weight: bold; +} + #notification.good { + background: #8FD900; + } + #notification.bad { + background: #FF3300; + } + #notification a.close { + display: inline-block; + width: 25px; + height: 25px; + float: right; + margin: -10px -60px 0 0; + background: #fff; + border-radius: 50px; + border: 1px solid #aaa; + line-height: 25px; + color: #666; + } + #notification a.close:hover { + text-decoration: none; + } |
