From 52ab1f4b95440e2efabddd1a224989258421434c Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 11 Apr 2013 21:48:15 +0200 Subject: Oubli des deux fichiers CSS --- public/theme/freshrss.css | 411 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 411 insertions(+) create mode 100644 public/theme/freshrss.css (limited to 'public/theme/freshrss.css') diff --git a/public/theme/freshrss.css b/public/theme/freshrss.css new file mode 100644 index 000000000..d6a29d4ba --- /dev/null +++ b/public/theme/freshrss.css @@ -0,0 +1,411 @@ +/* STRUCTURE */ +.header { + display: table; + width: 100%; + background: #f4f4f4; + table-layout: fixed; +} + .header > .item { + display: table-cell; + padding: 10px 0; + border-bottom: 1px solid #aaa; + vertical-align: middle; + text-align: center; + } + .header > .item.title { + width: 250px; + } + .header > .item.title h1 { + margin: 0; + text-shadow: 1px -1px 0 #ccc; + } + .header > .item.title a:hover { + text-decoration: none; + } + .header > .item.search input { + width: 200px; + transition: all 200ms linear; + } + .header .item.search input:focus { + width: 300px; + } + .header > .item.configure { + width: 100px; + } + +#global { + display: table; + width: 100%; + height: 100%; + background: #fafafa; + table-layout: fixed; +} + .aside { + display: table-cell; + height: 100%; + width: 250px; + vertical-align: top; + border-right: 1px solid #aaa; + background: #fff; + } + .aside .nav-form input { + width: 180px; + } + .aside.aside_flux { + padding: 10px 0; + } + .aside.aside_feed .nav-form input { + width: 140px; + } + .aside.aside_feed .nav-form .dropdown .dropdown-menu { + right: -20px; + } + + .nav_menu { + width: 100%; + background: #fafafa; + border-bottom: 1px solid #aaa; + text-align: center; + padding: 5px 0; + } + +.favicon { + width: 16px; +} + +.categories { + margin: 0; + padding: 0; + text-align: center; + list-style: none; +} + .categories .all, + .categories .favorites, + .categories .category { + display: block; + padding: 5px 0; + width: 220px; + margin: 5px auto; + text-align: left; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .categories .all .btn, + .categories .favorites .btn, + .categories .category .btn:first-child { + width: 195px; + position: relative; + } + .categories .feeds { + width: 220px; + margin: 0 auto; + list-style: none; + } + .categories .feeds .item.active:after { + content: "⇢"; + line-height: 35px; + float: right; + } + .categories .feeds .item .feed { + display: inline-block; + margin: 0; + width: 165px; + line-height: 35px; + font-size: 90%; + vertical-align: middle; + text-align: left; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .categories .feeds .dropdown .dropdown-menu { + left: 0; + } + .categories .feeds .item .dropdown-toggle i { + background-image: none; + } + .categories .feeds .item .dropdown-target:target ~ .dropdown-toggle i, + .categories .feeds .item:hover .dropdown-toggle i { + background-image: url("icons/configure.svg"); + } + .categories .notRead { + position: absolute; + top: 3px; right: 3px; + padding: 1px 5px; + background: #ccc; + color: #fff; + font-size: 90%; + border: 1px solid #bbb; + border-radius: 5px; + box-shadow: 1px 3px 3px #aaa inset; + text-shadow: 0 0 1px #aaa; + } + +.post { + padding: 10px 50px; +} + .post form { + margin: 10px 0; + } + +.day { + height: 50px; + padding: 0 10px; + font-size: 130%; + font-weight: bold; + line-height: 50px; + background: #fff; + border-top: 1px solid #aaa; + border-bottom: 1px solid #aaa; +} + .day:first-child { + border-top: none; + } + +.flux { + border-left: 10px solid #aaa; + background: #fafafa; +} + .flux:hover { + background: #fff; + } + .flux.active { + border-left: 10px solid #0062BE; + background: #fff; + } + .flux.not_read { + border-left: 10px solid #FF5300; + background: #FFF3ED; + } + .flux.favorite { + border-left: 10px solid #FFC300; + background: #FFF6DA; + } + + .flux_header { + display: table; + table-layout: fixed; + margin: 0; + padding: 0; + width: 100%; + height: 25px; + font-size: 12px; + line-height: 25px; + border-top: 1px solid #ddd; + } + .flux_header .item { + display: table-cell; + vertical-align: middle; + } + .flux_header .item.manage { + width: 90px; + white-space: nowrap; + font-size: 0px; + vertical-align: middle; + text-align: center; + } + .flux_header .item.manage .read { + display: inline-block; + width: 30px; + height: 40px; + background: url("icons/read.svg") center center no-repeat; + vertical-align: middle; + } + .flux_header .item.manage .read:hover { + text-decoration: none; + } + .flux.not_read .flux_header .item.manage .read { + background: url("icons/unread.svg") center center no-repeat; + } + .flux_header .item.manage .bookmark { + display: inline-block; + width: 30px; + height: 40px; + background: url("icons/non-starred.svg") center center no-repeat; + vertical-align: middle; + } + .flux_header .item.manage .bookmark:hover { + text-decoration: none; + } + .flux.favorite .flux_header .item.manage .bookmark { + background: url("icons/starred.svg") center center no-repeat; + } + .flux_header .item.manage .note { + display: inline-block; + width: 30px; + height: 40px; + vertical-align: middle; + line-height: 40px; + font-size: 12px; + } + .flux_header .item.website { + width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 40px; + } + .flux_header .item.website a { + display: block; + padding: 0 5px; + height: 40px; + } + .flux_header .item.title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + cursor: pointer; + } + .flux_header .item.title h1 { + font-size: 12px; + margin: 0; + font-weight: normal; + } + .flux.not_read .flux_header .item.title h1 { + font-weight: bold; + } + .flux_header .item.date { + width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-align: right; + font-size: 10px; + color: #666; + cursor: pointer; + } + .flux_header .item.link { + width: 35px; + text-align: center; + } + .flux_header .item.link a { + display: inline-block; + width: 35px; + height: 40px; + background: url("icons/link.svg") center center no-repeat; + vertical-align: middle; + } + .flux_header .item.link a:hover { + text-decoration: none; + } + +.content { + max-width: 550px; + margin: 0 auto; + padding: 10px; + line-height: 170%; + font-family: 'OpenSans'; +} + .content h1, .content h2, .content h3 { + margin: 20px 0 5px; + } + .content p { + margin: 0 0 20px; + } + .content img.big { + display: block; + margin: 10px 0; + width: 100%; + box-shadow: 0 0 5px #000; + border-radius: 5px; + } + .content pre { + width: 90%; + margin: 10px auto; + padding: 10px; + overflow: auto; + background: #666; + border: 1px solid #000; + color: #fafafa; + border-radius: 5px; + } + .content q, .content blockquote { + display: block; + margin: 5px 0; + padding: 5px 20px; + font-style: italic; + border-left: 4px solid #ccc; + color: #666; + } + .content blockquote p { + margin: 0; + } + +/*** PAGINATION ***/ +.pagination { + display: table; + width: 100%; + margin: 0; + background: #fafafa; + text-align: center; + color: #333; + font-size: 80%; + line-height: 200%; + table-layout: fixed; +} + .pagination .item { + display: table-cell; + padding: 5px 10px; + border-top: 1px solid #aaa; + } + .pagination .item a { + color: #333; + font-style: italic; + } + .pagination .pager-previous, .pagination .pager-next { + width: 200px; + } + .pagination .item.pager-current { + font-weight: bold; + } + +/*** NOTIFICATION ***/ +.notification { + position: fixed; + bottom: 0; + left: 5%; right: 5%; + min-height: 30px; + padding: 10px; + line-height: 30px; + text-align: center; + border-radius: 5px 5px 0 0; + box-shadow: 0 0 5px #666; + background: #ddd; + color: #666; + font-weight: bold; +} + .notification.good { + background: #f4f899; + } + .notification.bad { + background: #f4a899; + } + .notification a.close { + display: inline-block; + width: 16px; + height: 16px; + float: right; + margin: -20px -20px 0 0; + padding: 5px; + background: #fff; + border-radius: 50px; + border: 1px solid #aaa; + line-height: 16px; + } + +@media(max-width: 840px) { + .header, + .aside, + .flux_header .item.website span, + .flux_header .item.date { + display: none; + } + .flux_header .item.website { + width: 30px; + text-align: center; + } + .pagination .pager-previous, .pagination .pager-next { + width: 100px; + } +} -- cgit v1.2.3 From cb3c97b811e6d820b8bf4d86861cfcae3b267c20 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 11 Apr 2013 21:56:55 +0200 Subject: Amélioration affichage grosses images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/javascript/main.phtml | 2 +- public/theme/freshrss.css | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'public/theme/freshrss.css') diff --git a/app/views/javascript/main.phtml b/app/views/javascript/main.phtml index 4f049e11d..05368683c 100644 --- a/app/views/javascript/main.phtml +++ b/app/views/javascript/main.phtml @@ -110,7 +110,7 @@ function mark_favorite (active) { function init_img () { $(".flux .content img").each (function () { - if ($(this).width () > ($("#stream").width()) / 2) { + if ($(this).width () > ($("#stream .content").width()) / 2) { $(this).addClass("big"); } }); diff --git a/public/theme/freshrss.css b/public/theme/freshrss.css index d6a29d4ba..d15487db3 100644 --- a/public/theme/freshrss.css +++ b/public/theme/freshrss.css @@ -305,10 +305,7 @@ } .content img.big { display: block; - margin: 10px 0; - width: 100%; - box-shadow: 0 0 5px #000; - border-radius: 5px; + margin: 10px auto; } .content pre { width: 90%; -- cgit v1.2.3 From 2f7ecb2e490ade40350a68b902b4ff28e3168cbb Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 13 Apr 2013 11:11:48 +0200 Subject: Fix issue #46 : ajout de la select list pour les catégories en vue mobile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/layout/aside_flux.phtml | 2 ++ app/layout/nav_menu.phtml | 2 +- public/theme/freshrss.css | 38 +++++++++++++++++++++++++++++++++++++- public/theme/global.css | 3 +++ public/theme/icons/category.svg | 31 +++++++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 public/theme/icons/category.svg (limited to 'public/theme/freshrss.css') diff --git a/app/layout/aside_flux.phtml b/app/layout/aside_flux.phtml index c7b520b35..198103428 100644 --- a/app/layout/aside_flux.phtml +++ b/app/layout/aside_flux.phtml @@ -1,4 +1,6 @@
+ +
    conf) || is_logged ()) { ?>
  • Gestion des abonnements
  • diff --git a/app/layout/nav_menu.phtml b/app/layout/nav_menu.phtml index 4deb20836..90fe4aea1 100644 --- a/app/layout/nav_menu.phtml +++ b/app/layout/nav_menu.phtml @@ -1,5 +1,5 @@ diff --git a/app/views/javascript/main.phtml b/app/views/javascript/main.phtml index 05368683c..e6c882333 100644 --- a/app/views/javascript/main.phtml +++ b/app/views/javascript/main.phtml @@ -26,10 +26,10 @@ function toggleContent (new_active, old_active) { } if (hide_posts) { - old_active.children (".content").toggle (0); + old_active.children (".flux_content").toggle (0); if (old_active[0] != new_active[0]) { - new_active.children (".content").toggle (0, function () { + new_active.children (".flux_content").toggle (0, function () { $("html,body").scrollTop (new_active.position ().top); }); } @@ -127,7 +127,7 @@ function init_posts () { init_img (); if (hide_posts) { - $(".flux:not(.active) .content").hide (); + $(".flux:not(.active) .flux_content").hide (); } $(".flux_header .item.title, .flux_header .item.date").click (function () { diff --git a/public/theme/freshrss.css b/public/theme/freshrss.css index 46b8cb57b..e60310354 100644 --- a/public/theme/freshrss.css +++ b/public/theme/freshrss.css @@ -184,122 +184,103 @@ } .flux_header { - display: table; - table-layout: fixed; - margin: 0; - padding: 0; - width: 100%; height: 25px; font-size: 12px; line-height: 25px; border-top: 1px solid #ddd; } - .flux_header .item { - display: table-cell; - vertical-align: middle; + .flux_header .item.manage { + width: 60px; + white-space: nowrap; + font-size: 0px; + text-align: center; } - .flux_header .item.manage { - width: 90px; - white-space: nowrap; - font-size: 0px; + .flux_header .item.manage .read { + display: inline-block; + width: 30px; + height: 40px; + background: url("icons/read.svg") center center no-repeat; vertical-align: middle; - text-align: center; } - .flux_header .item.manage .read { - display: inline-block; - width: 30px; - height: 40px; - background: url("icons/read.svg") center center no-repeat; - vertical-align: middle; + .flux_header .item.manage .read:hover { + text-decoration: none; } - .flux_header .item.manage .read:hover { - text-decoration: none; - } - .flux.not_read .flux_header .item.manage .read { - background: url("icons/unread.svg") center center no-repeat; - } - .flux_header .item.manage .bookmark { - display: inline-block; - width: 30px; - height: 40px; - background: url("icons/non-starred.svg") center center no-repeat; - vertical-align: middle; + .flux.not_read .flux_header .item.manage .read { + background: url("icons/unread.svg") center center no-repeat; } - .flux_header .item.manage .bookmark:hover { - text-decoration: none; - } - .flux.favorite .flux_header .item.manage .bookmark { - background: url("icons/starred.svg") center center no-repeat; - } - .flux_header .item.manage .note { - display: inline-block; - width: 30px; - height: 40px; - vertical-align: middle; - line-height: 40px; - font-size: 12px; - } - .flux_header .item.website { - width: 200px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 40px; + .flux_header .item.manage .bookmark { + display: inline-block; + width: 30px; + height: 40px; + background: url("icons/non-starred.svg") center center no-repeat; + vertical-align: middle; } - .flux_header .item.website a { - display: block; - padding: 0 5px; - height: 40px; + .flux_header .item.manage .bookmark:hover { + text-decoration: none; } - .flux_header .item.title { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - cursor: pointer; - } - .flux_header .item.title h1 { - font-size: 12px; - margin: 0; - font-weight: normal; + .flux.favorite .flux_header .item.manage .bookmark { + background: url("icons/starred.svg") center center no-repeat; } - .flux.not_read .flux_header .item.title h1 { - font-weight: bold; - } - .flux_header .item.date { - width: 200px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - text-align: right; - font-size: 10px; - color: #666; - cursor: pointer; + .flux_header .item.website { + width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 40px; + } + .flux_header .item.website a { + display: block; + padding: 0 5px; + height: 40px; } - .flux_header .item.link { + .flux_header .item.title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + cursor: pointer; + } + .flux.not_read .flux_header .item.title { + font-weight: bold; + } + .flux_header .item.date { + width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-align: right; + font-size: 10px; + color: #666; + cursor: pointer; + } + .flux_header .item.link { + width: 35px; + text-align: center; + } + .flux_header .item.link a { + display: inline-block; width: 35px; - text-align: center; + height: 40px; + background: url("icons/link.svg") center center no-repeat; + vertical-align: middle; } - .flux_header .item.link a { - display: inline-block; - width: 35px; - height: 40px; - background: url("icons/link.svg") center center no-repeat; - vertical-align: middle; + .flux_header .item.link a:hover { + text-decoration: none; } - .flux_header .item.link a:hover { - text-decoration: none; - } .content { max-width: 550px; margin: 0 auto; - padding: 10px; + padding: 20px 10px; line-height: 170%; font-family: 'OpenSans'; } + .content .title { + margin: 0 0 5px; + } .content h1, .content h2, .content h3 { margin: 20px 0 5px; } + .content p { margin: 0 0 20px; } @@ -329,6 +310,11 @@ margin: 0; } +.flux_content .bottom { + font-size: 90%; + text-align: center; +} + /*** PAGINATION ***/ .pagination { display: table; @@ -400,7 +386,8 @@ .aside .btn-important, .aside .feeds .dropdown, .flux_header .item.website span, - .flux_header .item.date { + .flux_header .item.date, + .flux_content .bottom { display: none; } .flux_header .item.website { diff --git a/public/theme/global.css b/public/theme/global.css index 3262036be..f4466cec1 100644 --- a/public/theme/global.css +++ b/public/theme/global.css @@ -69,6 +69,7 @@ label { } input, select, textarea { display: inline-block; + max-width: 100%; min-height: 25px; padding: 5px; background: #fdfdfd; @@ -294,6 +295,19 @@ input, select, textarea { padding: 5px 10px; } +/* HORIZONTAL-LIST */ +.horizontal-list { + display: table; + table-layout: fixed; + margin: 0; + padding: 0; + width: 100%; +} + .horizontal-list .item { + display: table-cell; + vertical-align: middle; + } + /* DROPDOWN */ .dropdown { position: relative; -- cgit v1.2.3 From 627700648ba3f144afa9294afe1f9c51b0018ad7 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 13 Apr 2013 13:15:55 +0200 Subject: Déplacement du bouton pour voir les flux RSS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/layout/aside_flux.phtml | 24 +++++++++++++++++++++++- app/layout/nav_menu.phtml | 19 ------------------- public/theme/freshrss.css | 2 +- public/theme/global.css | 3 +++ public/theme/icons/rss.svg | 4 ++-- 5 files changed, 29 insertions(+), 23 deletions(-) (limited to 'public/theme/freshrss.css') diff --git a/app/layout/aside_flux.phtml b/app/layout/aside_flux.phtml index 198103428..b12edfbc7 100644 --- a/app/layout/aside_flux.phtml +++ b/app/layout/aside_flux.phtml @@ -2,8 +2,30 @@
      + 'index', + 'a' => 'index', + 'params' => array ( + 'output' => 'rss' + ) + ); + if ($get != '') { + $url['params']['get'] = $get; + } + if ($search != '') { + $url['params']['search'] = $search; + } + ?> conf) || is_logged ()) { ?> -
    • Gestion des abonnements
    • +
    • + +
    • diff --git a/app/layout/nav_menu.phtml b/app/layout/nav_menu.phtml index 71a5bd11e..90fe4aea1 100644 --- a/app/layout/nav_menu.phtml +++ b/app/layout/nav_menu.phtml @@ -62,23 +62,4 @@
- - 'index', - 'a' => 'index', - 'params' => array ( - 'output' => 'rss' - ) - ); - if ($get != '') { - $url['params']['get'] = $get; - } - if ($search != '') { - $url['params']['search'] = $search; - } - ?> - diff --git a/public/theme/freshrss.css b/public/theme/freshrss.css index e60310354..6db467a76 100644 --- a/public/theme/freshrss.css +++ b/public/theme/freshrss.css @@ -150,7 +150,7 @@ } .day { - height: 50px; + min-height: 50px; padding: 0 10px; font-size: 130%; font-weight: bold; diff --git a/public/theme/global.css b/public/theme/global.css index e44cda059..e4c503dfc 100644 --- a/public/theme/global.css +++ b/public/theme/global.css @@ -143,6 +143,9 @@ input, select, textarea { .stick input:first-child { border-radius: 3px 0 0 3px; } + .stick .btn.btn-important:first-child { + border-right: 1px solid #06f; + } .stick .btn:last-child, .stick input:last-child { border-radius: 0 3px 3px 0; diff --git a/public/theme/icons/rss.svg b/public/theme/icons/rss.svg index fe588c2cf..ceaddceee 100644 --- a/public/theme/icons/rss.svg +++ b/public/theme/icons/rss.svg @@ -22,8 +22,8 @@ - - + + -- cgit v1.2.3 From 9b9543109e36a5409fe71eb084cfac680dfc7cbd Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 13 Apr 2013 15:27:36 +0200 Subject: Fix issue #39 : actualisation de tous les flux grâce à Ajax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/feedController.php | 8 ++++-- app/controllers/indexController.php | 1 + app/controllers/javascriptController.php | 9 ++++--- app/layout/nav_menu.phtml | 2 +- app/views/javascript/actualize.phtml | 46 ++++++++++++++++++++++++++++++++ public/theme/freshrss.css | 20 ++++++++++++++ 6 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 app/views/javascript/actualize.phtml (limited to 'public/theme/freshrss.css') diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index d2a2184eb..83fc19e20 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -156,9 +156,13 @@ class feedController extends ActionController { 'content' => 'Aucun flux n\'a pu être mis à jour' ); } - Session::_param ('notification', $notif); - Request::forward (array (), true); + if (Request::param ('ajax', 0) == 0) { + Session::_param ('notification', $notif); + Request::forward (array (), true); + } else { + $this->view->_useLayout (false); + } } public function massiveImportAction () { diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index a11c26044..8fa911631 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -8,6 +8,7 @@ class indexController extends ActionController { public function indexAction () { View::appendScript (Url::display ('/scripts/shortcut.js')); View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'main'))); + View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'actualize'))); $entryDAO = new EntryDAO (); $feedDAO = new FeedDAO (); diff --git a/app/controllers/javascriptController.php b/app/controllers/javascriptController.php index 8060f560c..071cf65a4 100755 --- a/app/controllers/javascriptController.php +++ b/app/controllers/javascriptController.php @@ -5,8 +5,11 @@ class javascriptController extends ActionController { $this->view->_useLayout (false); header('Content-type: text/javascript'); } - - public function mainAction () { - + + public function mainAction () {} + + public function actualizeAction () { + $feedDAO = new FeedDAO (); + $this->view->feeds = $feedDAO->listFeeds (); } } diff --git a/app/layout/nav_menu.phtml b/app/layout/nav_menu.phtml index 90fe4aea1..5d7dd3091 100644 --- a/app/layout/nav_menu.phtml +++ b/app/layout/nav_menu.phtml @@ -1,7 +1,7 @@