From 4888f919f104b2d170302565e481a0b731eb4145 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 25 Dec 2018 01:30:28 +0100 Subject: [PATCH 01/59] Prepare for batch mark as read --- app/Controllers/entryController.php | 13 +++--- app/Models/EntryDAO.php | 2 +- app/Models/TagDAO.php | 48 ++++++++++++------- app/views/entry/read.phtml | 10 ---- app/views/helpers/javascript_vars.phtml | 3 +- p/scripts/main.js | 62 ++++++++++++++----------- 6 files changed, 76 insertions(+), 62 deletions(-) diff --git a/app/Controllers/entryController.php b/app/Controllers/entryController.php index fc0af0639bf..9c5ee2616fe 100755 --- a/app/Controllers/entryController.php +++ b/app/Controllers/entryController.php @@ -97,14 +97,15 @@ public function readAction() { } } } else { - $entryDAO->markRead($id, $is_read); - + $ids = is_array($id) ? $id : array($id); + $entryDAO->markRead($ids, $is_read); $tagDAO = FreshRSS_Factory::createTagDao(); - foreach ($tagDAO->getTagsForEntry($id) as $tag) { - if (!empty($tag['checked'])) { - $this->view->tags[] = $tag['id']; - } + $tagsForEntries = $tagDAO->getTagsForEntries($ids); + $tags = array(); + foreach ($tagsForEntries as $line) { + $tags['t_' . $line['id_tag']][] = $line['id_entry']; } + $this->view->tags = $tags; } if (!$this->ajax) { diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index 6d77a33cdfe..9ae1ed79710 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -383,7 +383,7 @@ protected function updateCacheUnreads($catId = false, $feedId = false) { */ public function markRead($ids, $is_read = true) { FreshRSS_UserDAO::touch(); - if (is_array($ids)) { //Many IDs at once (used by API) + if (is_array($ids)) { //Many IDs at once if (count($ids) < 6) { //Speed heuristics $affected = 0; foreach ($ids as $id) { diff --git a/app/Models/TagDAO.php b/app/Models/TagDAO.php index b55d2b35d51..0b4428f175f 100644 --- a/app/Models/TagDAO.php +++ b/app/Models/TagDAO.php @@ -256,42 +256,56 @@ public function getTagsForEntry($id_entry) { } } - //For API - public function getEntryIdsTagNames($entries) { - $sql = 'SELECT et.id_entry, t.name ' + public function getTagsForEntries($entries) { + $sql = 'SELECT et.id_entry, et.id_tag, t.name ' . 'FROM `' . $this->prefix . 'tag` t ' . 'INNER JOIN `' . $this->prefix . 'entrytag` et ON et.id_tag = t.id'; $values = array(); if (is_array($entries) && count($entries) > 0) { $sql .= ' AND et.id_entry IN (' . str_repeat('?,', count($entries) - 1). '?)'; - foreach ($entries as $entry) { - $values[] = is_array($entry) ? $entry['id'] : $entry->id(); + if (is_array($entries[0])) { + foreach ($entries as $entry) { + $values[] = $entry['id']; + } + } elseif (is_object($entries[0])) { + foreach ($entries as $entry) { + $values[] = $entry->id(); + } + } else { + foreach ($entries as $entry) { + $values[] = $entry; + } } } $stm = $this->bd->prepare($sql); if ($stm && $stm->execute($values)) { - $result = array(); - foreach ($stm->fetchAll(PDO::FETCH_ASSOC) as $line) { - $entryId = 'e_' . $line['id_entry']; - $tagName = $line['name']; - if (empty($result[$entryId])) { - $result[$entryId] = array(); - } - $result[$entryId][] = $tagName; - } - return $result; + return $stm->fetchAll(PDO::FETCH_ASSOC); } else { $info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo(); if ($this->autoUpdateDb($info)) { - return $this->getTagNamesEntryIds($id_entry); + return $this->getTagsForEntries($entries); } - Minz_Log::error('SQL error getTagNamesEntryIds: ' . $info[2]); + Minz_Log::error('SQL error getTagsForEntries: ' . $info[2]); return false; } } + //For API + public function getEntryIdsTagNames($entries) { + $result = array(); + foreach ($this->getTagsForEntries($entries) as $line) { + $entryId = 'e_' . $line['id_entry']; + $tagName = $line['name']; + if (empty($result[$entryId])) { + $result[$entryId] = array(); + } + $result[$entryId][] = $tagName; + } + return $result; + } + public static function daoToTag($listDAO) { $list = array(); if (!is_array($listDAO)) { diff --git a/app/views/entry/read.phtml b/app/views/entry/read.phtml index fb9e129f2a9..44193da9cfb 100755 --- a/app/views/entry/read.phtml +++ b/app/views/entry/read.phtml @@ -1,17 +1,7 @@ Minz_Request::controllerName(), - 'a' => Minz_Request::actionName(), - 'params' => Minz_Request::fetchGET(), -); - -$url['params']['is_read'] = Minz_Request::param('is_read', true) ? '0' : '1'; - FreshRSS::loadStylesAndScripts(); echo json_encode(array( - 'url' => str_ireplace('&', '&', Minz_Url::display($url)), - 'icon' => _i($url['params']['is_read'] === '1' ? 'unread' : 'read'), 'tags' => $this->tags, )); diff --git a/app/views/helpers/javascript_vars.phtml b/app/views/helpers/javascript_vars.phtml index a434a04a37b..b950b6a1fb7 100644 --- a/app/views/helpers/javascript_vars.phtml +++ b/app/views/helpers/javascript_vars.phtml @@ -56,6 +56,7 @@ echo htmlspecialchars(json_encode(array( 'category_empty' => _t('gen.js.category_empty'), ), 'icons' => array( - 'close' => _i('close'), + 'read' => rawurlencode(_i('read')), + 'unread' => rawurlencode(_i('unread')), ), ), JSON_UNESCAPED_UNICODE), ENT_NOQUOTES, 'UTF-8'); diff --git a/p/scripts/main.js b/p/scripts/main.js index 4ba329dc17f..65310fe9fd7 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -7,6 +7,8 @@ var $stream = null, shares = 0, ajax_loading = false; +if (!NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } //IE11 + function redirect(url, new_tab) { if (url) { if (new_tab) { @@ -89,7 +91,7 @@ function incUnreadsFeed(article, feed_id, nb) { } //Update unread: favourites - if (article && article.closest('div').hasClass('favorite')) { + if (article && $(article).closest('div').hasClass('favorite')) { elem = $('#aside_feed .favorites .title').get(0); if (elem) { feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; @@ -115,7 +117,7 @@ function incUnreadsFeed(article, feed_id, nb) { } function incUnreadsTag(tag_id, nb) { - var $t = $('#t_' + tag_id); + var $t = $('#' + tag_id); var unreads = str2int($t.attr('data-unread')); $t.attr('data-unread', unreads + nb) .children('.item-title').attr('data-unread', numberFormat(unreads + nb)); @@ -126,20 +128,20 @@ function incUnreadsTag(tag_id, nb) { } var pending_entries = {}; -function mark_read(active, only_not_read) { - if ((active.length === 0) || (!active.attr('id')) || - context.anonymous || - (only_not_read && !active.hasClass("not_read"))) { +function mark_read($active, only_not_read) { + let div = $active ? $active[0] : null; + if (!div || !div.id || context.anonymous || + (only_not_read && !div.classList.contains('not_read'))) { return false; } - if (pending_entries[active.attr('id')]) { + if (pending_entries[div.id]) { return false; } - pending_entries[active.attr('id')] = true; + pending_entries[div.id] = true; - var url = '.?c=entry&a=read&id=' + active.attr('id').replace(/^flux_/, '') + - (active.hasClass('not_read') ? '' : '&is_read=0'); + let url = '.?c=entry&a=read&id=' + div.id.replace(/^flux_/, '') + + (div.classList.contains('not_read') ? '' : '&is_read=0'); $.ajax({ type: 'POST', @@ -149,35 +151,39 @@ function mark_read(active, only_not_read) { _csrf: context.csrf, }, }).done(function (data) { - var $r = active.find("a.read").attr("href", data.url), - inc = 0; - if (active.hasClass("not_read")) { - active.removeClass("not_read"); + let inc = 0; + if (div.classList.contains('not_read')) { + div.classList.remove('not_read'); + div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=0', '') + '&is_read=1'); }); + div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = icons.read; }); inc--; } else { - active.addClass("not_read"); - active.addClass("keep_unread"); + div.classList.add('not_read', 'keep_unread'); + div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=1', '')); }); + div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = icons.unread; }); inc++; } - $r.find('.icon').replaceWith(data.icon); - var feed_url = active.find(".website>a").attr("href"); - if (feed_url) { - var feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); - incUnreadsFeed(active, feed_id, inc); + let feed_link = div.querySelector('.website > a'); + if (feed_link) { + let feed_url = feed_link.getAttribute('href'); + let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); + incUnreadsFeed(div, feed_id, inc); } faviconNbUnread(); if (data.tags) { - for (var i = data.tags.length - 1; i >= 0; i--) { - incUnreadsTag(data.tags[i], inc); + let tagIds = Object.keys(data.tags); + for (let i = tagIds.length - 1; i >= 0; i--) { + let tagId = tagIds[i]; + incUnreadsTag(tagId, inc * data.tags[tagId].length); } } - delete pending_entries[active.attr('id')]; + delete pending_entries[div.id]; }).fail(function (data) { openNotification(i18n.notif_request_failed, 'bad'); - delete pending_entries[active.attr('id')]; + delete pending_entries[div.id]; }); } @@ -911,7 +917,7 @@ function init_dynamic_tags() { }) .done(function () { if ($entry.hasClass('not_read')) { - incUnreadsTag(tagId, isChecked ? 1 : -1); + incUnreadsTag('t_' + tagId, isChecked ? 1 : -1); } }) .fail(function () { @@ -1079,7 +1085,7 @@ function notifs_html5_show(nb) { var notification = new window.Notification(i18n.notif_title_articles, { icon: "../themes/icons/favicon-256.png", body: i18n.notif_body_articles.replace('%d', nb), - tag: "freshRssNewArticles" + tag: 'freshRssNewArticles', }); notification.onclick = function() { @@ -1491,6 +1497,8 @@ function parseJsonVars() { window.url = json.url; window.i18n = json.i18n; window.icons = json.icons; + icons.read = decodeURIComponent(icons.read); + icons.unread = decodeURIComponent(icons.unread); } function init_normal() { From eefeb2341915d677e446cd733fc58b45efb7f5d9 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 25 Dec 2018 05:11:38 +0100 Subject: [PATCH 02/59] jQuery ES6 partial refactoring Prefix jQuery variables with $ Start avoiding jQuery in easy cases Use let/const --- app/views/helpers/javascript_vars.phtml | 2 +- p/scripts/main.js | 681 ++++++++++++------------ 2 files changed, 346 insertions(+), 337 deletions(-) diff --git a/app/views/helpers/javascript_vars.phtml b/app/views/helpers/javascript_vars.phtml index b950b6a1fb7..b62263ecf53 100644 --- a/app/views/helpers/javascript_vars.phtml +++ b/app/views/helpers/javascript_vars.phtml @@ -42,7 +42,7 @@ echo htmlspecialchars(json_encode(array( 'reading_view' => @$s['reading_view'], 'rss_view' => @$s['rss_view'], ), - 'url' => array( + 'urls' => array( 'index' => _url('index', 'index'), 'login' => Minz_Url::display(array('c' => 'auth', 'a' => 'login'), 'php'), 'logout' => Minz_Url::display(array('c' => 'auth', 'a' => 'logout'), 'php'), diff --git a/p/scripts/main.js b/p/scripts/main.js index 65310fe9fd7..555e92a40a4 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -1,13 +1,44 @@ "use strict"; -/* globals $, jQuery, context, i18n, shortcut, shortcuts, url */ -/* jshint strict:global */ +/* globals $, jQuery, shortcut */ +/* jshint esversion:6, strict:global */ + +// +if (!NodeList.prototype.forEach) NodeList.prototype.forEach = Array.prototype.forEach; +if (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.webkitMatchesSelector; +if (!Element.prototype.closest) { + Element.prototype.closest = function (s) { + let el = this; + if (!document.documentElement.contains(el)) return null; + do { + if (el.matches(s)) return el; + el = el.parentElement || el.parentNode; + } while (el !== null && el.nodeType == 1); + return null; + }; +} +// + +// +var context, i18n, icons, shortcuts, urls; + +(function parseJsonVars() { + const jsonVars = document.getElementById('jsonVars'), + json = JSON.parse(jsonVars.innerHTML); + jsonVars.outerHTML = ''; + context = json.context; + i18n = json.i18n; + shortcuts = json.shortcuts; + urls = json.urls; + icons = json.icons; + icons.read = decodeURIComponent(icons.read); + icons.unread = decodeURIComponent(icons.unread); +}()); var $stream = null, + ajax_loading = false, isCollapsed = true, - shares = 0, - ajax_loading = false; - -if (!NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } //IE11 + $nav_entries = null; +// function redirect(url, new_tab) { if (url) { @@ -20,7 +51,7 @@ function redirect(url, new_tab) { } function needsScroll($elem) { - var $win = $(window), + const $win = $(window), winTop = $win.scrollTop(), winHeight = $win.height(), winBottom = winTop + winHeight, @@ -42,10 +73,10 @@ function numberFormat(nStr) { } // http://www.mredkj.com/javascript/numberFormat.html nStr += ''; - var x = nStr.split('.'), - x1 = x[0], + const x = nStr.split('.'), x2 = x.length > 1 ? '.' + x[1] : '', rgx = /(\d+)(\d{3})/; + let x1 = x[0]; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ' ' + '$2'); } @@ -53,29 +84,29 @@ function numberFormat(nStr) { } function incLabel(p, inc, spaceAfter) { - var i = str2int(p) + inc; + const i = str2int(p) + inc; return i > 0 ? ((spaceAfter ? '' : ' ') + '(' + numberFormat(i) + ')' + (spaceAfter ? ' ' : '')) : ''; } function incUnreadsFeed(article, feed_id, nb) { //Update unread: feed - var elem = $('#' + feed_id).get(0), + let elem = document.getElementById(feed_id), feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0, feed_priority = elem ? str2int(elem.getAttribute('data-priority')) : 0; if (elem) { elem.setAttribute('data-unread', feed_unreads + nb); - elem = $(elem).children('.item-title').get(0); + elem = elem.querySelector('.item-title'); if (elem) { elem.setAttribute('data-unread', numberFormat(feed_unreads + nb)); } } //Update unread: category - elem = $('#' + feed_id).parents('.category').get(0); + elem = document.getElementById(feed_id).closest('.category'); feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; if (elem) { elem.setAttribute('data-unread', feed_unreads + nb); - elem = $(elem).find('.title').get(0); + elem = elem.querySelector('.title'); if (elem) { elem.setAttribute('data-unread', numberFormat(feed_unreads + nb)); } @@ -83,7 +114,7 @@ function incUnreadsFeed(article, feed_id, nb) { //Update unread: all if (feed_priority > 0) { - elem = $('#aside_feed .all .title').get(0); + elem = document.querySelector('#aside_feed .all .title'); if (elem) { feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; elem.setAttribute('data-unread', numberFormat(feed_unreads + nb)); @@ -91,22 +122,22 @@ function incUnreadsFeed(article, feed_id, nb) { } //Update unread: favourites - if (article && $(article).closest('div').hasClass('favorite')) { - elem = $('#aside_feed .favorites .title').get(0); + if (article && article.closest('div').classList.contains('favorite')) { + elem = document.querySelector('#aside_feed .favorites .title'); if (elem) { feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; elem.setAttribute('data-unread', numberFormat(feed_unreads + nb)); } } - var isCurrentView = false; + let isCurrentView = false; // Update unread: title document.title = document.title.replace(/^((?:\([ 0-9]+\) )?)/, function (m, p1) { - var $feed = $('#' + feed_id); - if (article || ($feed.closest('.active').length > 0 && $feed.siblings('.active').length === 0)) { + const feed = document.getElementById(feed_id); + if (article || (feed.closest('.active') && $(feed).siblings('.active').length === 0)) { isCurrentView = true; return incLabel(p1, nb, true); - } else if ($('.all.active').length > 0) { + } else if (document.querySelector('.all.active')) { isCurrentView = feed_priority > 0; return incLabel(p1, feed_priority > 0 ? nb : 0, true); } else { @@ -117,19 +148,22 @@ function incUnreadsFeed(article, feed_id, nb) { } function incUnreadsTag(tag_id, nb) { - var $t = $('#' + tag_id); - var unreads = str2int($t.attr('data-unread')); - $t.attr('data-unread', unreads + nb) - .children('.item-title').attr('data-unread', numberFormat(unreads + nb)); - - $t = $('.category.tags').find('.title'); - unreads = str2int($t.attr('data-unread')); - $t.attr('data-unread', numberFormat(unreads + nb)); + let t = document.getElementById(tag_id); + if (t) { + let unreads = str2int(t.getAttribute('data-unread')); + t.setAttribute('data-unread', unreads + nb); + t.querySelector('.item-title').setAttribute('data-unread', numberFormat(unreads + nb)); + } + t = document.querySelector('.category.tags .title'); + if (t) { + let unreads = str2int(t.getAttribute('data-unread')); + t.setAttribute('data-unread', numberFormat(unreads + nb)); + } } var pending_entries = {}; -function mark_read($active, only_not_read) { - let div = $active ? $active[0] : null; + +function mark_read(div, only_not_read) { if (!div || !div.id || context.anonymous || (only_not_read && !div.classList.contains('not_read'))) { return false; @@ -187,20 +221,21 @@ function mark_read($active, only_not_read) { }); } -function mark_favorite(active) { - if (active.length === 0) { +function mark_favorite(div) { + if (!div) { return false; } - var url = active.find("a.bookmark").attr("href"); - if (url === undefined) { + let a = div.querySelector('a.bookmark'), + url = a ? a.getAttribute('href') : ''; + if (!url) { return false; } - if (pending_entries[active.attr('id')]) { + if (pending_entries[div.id]) { return false; } - pending_entries[active.attr('id')] = true; + pending_entries[div.id] = true; $.ajax({ type: 'POST', @@ -210,77 +245,77 @@ function mark_favorite(active) { _csrf: context.csrf, }, }).done(function (data) { - var $b = active.find("a.bookmark").attr("href", data.url), - inc = 0; - if (active.hasClass("favorite")) { - active.removeClass("favorite"); + let inc = 0; + if (div.classList.contains('favorite')) { + div.classList.remove('favorite'); inc--; } else { - active.addClass("favorite").find('.bookmark'); + div.classList.add('favorite'); inc++; } - $b.find('.icon').replaceWith(data.icon); + div.querySelectorAll('a.bookmark').forEach(function (a) { a.setAttribute('href', data.url); }); + div.querySelectorAll('a.bookmark > .icon').forEach(function (img) { img.outerHTML = data.icon; }); - var favourites = $('#aside_feed .favorites .title').contents().last().get(0); + const favourites = $('#aside_feed .favorites .title').contents().last().get(0); if (favourites && favourites.textContent) { favourites.textContent = favourites.textContent.replace(/((?: \([ 0-9]+\))?\s*)$/, function (m, p1) { return incLabel(p1, inc, false); }); } - if (active.closest('div').hasClass('not_read')) { - var elem = $('#aside_feed .favorites .title').get(0), + if (div.classList.contains('not_read')) { + const elem = document.querySelector('#aside_feed .favorites .title'), feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; if (elem) { elem.setAttribute('data-unread', numberFormat(feed_unreads + inc)); } } - delete pending_entries[active.attr('id')]; + delete pending_entries[div.id]; }).fail(function (data) { openNotification(i18n.notif_request_failed, 'bad'); - delete pending_entries[active.attr('id')]; + delete pending_entries[div.id]; }); } -function toggleContent(new_active, old_active, skipping) { +function toggleContent($new_active, $old_active, skipping) { // If skipping, move current without activating or marking as read - if (new_active.length === 0) { + if ($new_active.length === 0) { return; } if (context.does_lazyload && !skipping) { - new_active.find('img[data-original], iframe[data-original]').each(function () { + $new_active.find('img[data-original], iframe[data-original]').each(function () { this.setAttribute('src', this.getAttribute('data-original')); this.removeAttribute('data-original'); }); } - if (old_active[0] !== new_active[0]) { + if ($old_active[0] !== $new_active[0]) { if (isCollapsed && !skipping) { // BUG?: isCollapsed can only ever be true - new_active.addClass("active"); + $new_active.addClass('active'); } - old_active.removeClass("active current"); - new_active.addClass("current"); - if (context.auto_remove_article && !old_active.hasClass('not_read') && !skipping) { - auto_remove(old_active); + $old_active.removeClass('active current'); + $new_active.addClass('current'); + if (context.auto_remove_article && !$old_active.hasClass('not_read') && !skipping) { + auto_remove($old_active); } } else { // collapse_entry calls toggleContent(flux_current, flux_current, false) - new_active.toggleClass('active'); + $new_active.toggleClass('active'); } - var relative_move = context.current_view === 'global', - box_to_move = $(relative_move ? "#panel" : "html,body"); + const relative_move = context.current_view === 'global', + $box_to_move = $(relative_move ? '#panel' : 'html,body'); if (context.sticky_post) { - var prev_article = new_active.prevAll('.flux'), - new_pos = new_active.offset().top, - old_scroll = box_to_move.scrollTop(); + let prev_article = $new_active.prevAll('.flux'), + new_pos = $new_active.offset().top, + old_scroll = $box_to_move.scrollTop(); if (prev_article.length > 0 && new_pos - prev_article.offset().top <= 150) { new_pos = prev_article.offset().top; if (relative_move) { - new_pos -= box_to_move.offset().top; + new_pos -= $box_to_move.offset().top; } } @@ -293,104 +328,104 @@ function toggleContent(new_active, old_active, skipping) { new_pos += old_scroll; } - new_active.children(".flux_content").first().each(function () { - box_to_move.scrollTop(new_pos).scrollTop(); + $new_active.children('.flux_content').first().each(function () { + $box_to_move.scrollTop(new_pos).scrollTop(); }); } else { if (relative_move) { new_pos += old_scroll; } - box_to_move.scrollTop(new_pos).scrollTop(); + $box_to_move.scrollTop(new_pos).scrollTop(); } } - if (context.auto_mark_article && new_active.hasClass('active') && !skipping) { - mark_read(new_active, true); + if (context.auto_mark_article && $new_active.hasClass('active') && !skipping) { + mark_read($new_active[0], true); } } -function auto_remove(element) { - var p = element.prev(); - var n = element.next(); - if (p.hasClass('day') && n.hasClass('day')) { - p.remove(); +function auto_remove($element) { + let $p = $element.prev(), + $n = $element.next(); + if ($p.hasClass('day') && $n.hasClass('day')) { + $p.remove(); } - element.remove(); + $element.remove(); $('#stream > .flux:not(.not_read):not(.active)').remove(); } function prev_entry() { - var old_active = $(".flux.current"), - new_active = old_active.length === 0 ? $(".flux:last") : old_active.prevAll(".flux:first"); - toggleContent(new_active, old_active, false); + let $old_active = $('.flux.current'), + $new_active = $old_active.length === 0 ? $('.flux:last') : $old_active.prevAll('.flux:first'); + toggleContent($new_active, $old_active, false); } function next_entry() { - var old_active = $(".flux.current"), - new_active = old_active.length === 0 ? $(".flux:first") : old_active.nextAll(".flux:first"); - toggleContent(new_active, old_active, false); + let $old_active = $('.flux.current'), + $new_active = $old_active.length === 0 ? $('.flux:first') : $old_active.nextAll('.flux:first'); + toggleContent($new_active, $old_active, false); - if (new_active.nextAll().length < 3) { + if ($new_active.nextAll().length < 3) { load_more_posts(); } } function skip_prev_entry() { - var old_active = $(".flux.current"), - new_active = old_active.length === 0 ? $(".flux:last") : old_active.prevAll(".flux:first"); - toggleContent(new_active, old_active, true); + let $old_active = $('.flux.current'), + $new_active = $old_active.length === 0 ? $('.flux:last') : $old_active.prevAll('.flux:first'); + toggleContent($new_active, $old_active, true); } function skip_next_entry() { - var old_active = $(".flux.current"), - new_active = old_active.length === 0 ? $(".flux:first") : old_active.nextAll(".flux:first"); - toggleContent(new_active, old_active, true); + let $old_active = $('.flux.current'), + $new_active = $old_active.length === 0 ? $('.flux:first') : $old_active.nextAll('.flux:first'); + toggleContent($new_active, $old_active, true); - if (new_active.nextAll().length < 3) { + if ($new_active.nextAll().length < 3) { load_more_posts(); } } function prev_feed() { - var active_feed = $("#aside_feed .tree-folder-items .item.active"); - if (active_feed.length > 0) { - active_feed.prevAll(':visible:first').find('a').each(function(){this.click();}); + let $active_feed = $('#aside_feed .tree-folder-items .item.active'); + if ($active_feed.length > 0) { + $active_feed.prevAll(':visible:first').find('a').each(function () { this.click(); }); } else { last_feed(); } } function next_feed() { - var active_feed = $("#aside_feed .tree-folder-items .item.active"); - if (active_feed.length > 0) { - active_feed.nextAll(':visible:first').find('a').each(function(){this.click();}); + let $active_feed = $('#aside_feed .tree-folder-items .item.active'); + if ($active_feed.length > 0) { + $active_feed.nextAll(':visible:first').find('a').each(function () { this.click(); }); } else { first_feed(); } } function first_feed() { - var feed = $("#aside_feed .tree-folder-items.active .item:visible:first"); - if (feed.length > 0) { - feed.find('a')[1].click(); + let $feed = $('#aside_feed .tree-folder-items.active .item:visible:first'); + if ($feed.length > 0) { + $feed.find('a')[1].click(); } } function last_feed() { - var feed = $("#aside_feed .tree-folder-items.active .item:visible:last"); - if (feed.length > 0) { - feed.find('a')[1].click(); + let $feed = $('#aside_feed .tree-folder-items.active .item:visible:last'); + if ($feed.length > 0) { + $feed.find('a')[1].click(); } } function prev_category() { - var active_cat = $("#aside_feed .tree-folder.active"); + let $active_cat = $('#aside_feed .tree-folder.active'); - if (active_cat.length > 0) { - var prev_cat = active_cat.prevAll(':visible:first').find('.tree-folder-title .title'); - if (prev_cat.length > 0) { - prev_cat[0].click(); + if ($active_cat.length > 0) { + let $prev_cat = $active_cat.prevAll(':visible:first').find('.tree-folder-title .title'); + if ($prev_cat.length > 0) { + $prev_cat[0].click(); } } else { last_category(); @@ -399,12 +434,12 @@ function prev_category() { } function next_category() { - var active_cat = $("#aside_feed .tree-folder.active"); + let $active_cat = $('#aside_feed .tree-folder.active'); - if (active_cat.length > 0) { - var next_cat = active_cat.nextAll(':visible:first').find('.tree-folder-title .title'); - if (next_cat.length > 0) { - next_cat[0].click(); + if ($active_cat.length > 0) { + let $next_cat = $active_cat.nextAll(':visible:first').find('.tree-folder-title .title'); + if ($next_cat.length > 0) { + $next_cat[0].click(); } } else { first_category(); @@ -413,35 +448,35 @@ function next_category() { } function first_category() { - var cat = $("#aside_feed .tree-folder:visible:first"); - if (cat.length > 0) { - cat.find('.tree-folder-title .title')[0].click(); + let $cat = $('#aside_feed .tree-folder:visible:first'); + if ($cat.length > 0) { + $cat.find('.tree-folder-title .title')[0].click(); } } function last_category() { - var cat = $("#aside_feed .tree-folder:visible:last"); - if (cat.length > 0) { - cat.find('.tree-folder-title .title')[0].click(); + let $cat = $('#aside_feed .tree-folder:visible:last'); + if ($cat.length > 0) { + $cat.find('.tree-folder-title .title')[0].click(); } } function collapse_entry() { - var flux_current = $(".flux.current"); - toggleContent(flux_current, flux_current, false); + let $flux_current = $('.flux.current'); + toggleContent($flux_current, $flux_current, false); } function user_filter(key) { - var filter = $('#dropdown-query'); - var filters = filter.siblings('.dropdown-menu').find('.item.query a'); - if (typeof key === "undefined") { + const filter = $('#dropdown-query'), + filters = filter.siblings('.dropdown-menu').find('.item.query a'); + if (typeof key === 'undefined') { if (!filter.length) { return; } // Display the filter div window.location.hash = filter.attr('id'); // Force scrolling to the filter div - var scroll = needsScroll($('.header')); + const scroll = needsScroll($('.header')); if (scroll !== 0) { $('html,body').scrollTop(scroll); } @@ -460,21 +495,21 @@ function user_filter(key) { } function auto_share(key) { - var share = $(".flux.current.active").find('.dropdown-target[id^="dropdown-share"]'); - var shares = share.siblings('.dropdown-menu').find('.item a'); - if (typeof key === "undefined") { - if (!share.length) { + const $share = $('.flux.current.active').find('.dropdown-target[id^="dropdown-share"]'), + $shares = $share.siblings('.dropdown-menu').find('.item a'); + if (typeof key === 'undefined') { + if (!$share.length) { return; } // Display the share div - window.location.hash = share.attr('id'); + window.location.hash = $share.attr('id'); // Force scrolling to the share div - var scroll = needsScroll(share.closest('.bottom')); + const scroll = needsScroll($share.closest('.bottom')); if (scroll !== 0) { $('html,body').scrollTop(scroll); } // Force the key value if there is only one action, so we can trigger it automatically - if (shares.length === 1) { + if ($shares.length === 1) { key = 1; } else { return; @@ -482,54 +517,54 @@ function auto_share(key) { } // Trigger selected share action and hide the share div key = parseInt(key); - if (key <= shares.length) { - shares[key - 1].click(); - share.siblings('.dropdown-menu').find('.dropdown-close a')[0].click(); + if (key <= $shares.length) { + $shares[key - 1].click(); + $share.siblings('.dropdown-menu').find('.dropdown-close a')[0].click(); } } -function scrollAsRead(box_to_follow) { - var minTop = 40 + (context.current_view === 'global' ? box_to_follow.offset().top : box_to_follow.scrollTop()); +function scrollAsRead($box_to_follow) { + const minTop = 40 + (context.current_view === 'global' ? $box_to_follow.offset().top : $box_to_follow.scrollTop()); $('.not_read:not(.keep_unread):visible').each(function () { - var $this = $(this); + const $this = $(this); if ($this.offset().top + $this.height() < minTop) { - mark_read($this, true); + mark_read(this, true); } }); } function init_posts() { - var box_to_follow = context.current_view === 'global' ? $("#panel") : $(window); + let $box_to_follow = context.current_view === 'global' ? $('#panel') : $(window); if (context.auto_mark_scroll) { - var lastScroll = 0, //Throttle + let lastScroll = 0, //Throttle timerId = 0; - box_to_follow.scroll(function () { + $box_to_follow.scroll(function () { window.clearTimeout(timerId); if (lastScroll + 500 < Date.now()) { lastScroll = Date.now(); - scrollAsRead(box_to_follow); + scrollAsRead($box_to_follow); } else { timerId = window.setTimeout(function() { - scrollAsRead(box_to_follow); + scrollAsRead($box_to_follow); }, 500); } }); } if (context.auto_load_more) { - box_to_follow.scroll(function () { - var load_more = $("#load_more"); - if (!load_more.is(':visible')) { + $box_to_follow.scroll(function () { + const $load_more = $('#load_more'); + if (!$load_more.is(':visible')) { return; } - var boxBot = box_to_follow.scrollTop() + box_to_follow.height(), - load_more_top = load_more.offset().top; + const boxBot = $box_to_follow.scrollTop() + $box_to_follow.height(), + load_more_top = $load_more.offset().top; if (boxBot >= load_more_top) { load_more_posts(); } }); - box_to_follow.scroll(); + $box_to_follow.scroll(); } } @@ -548,9 +583,9 @@ function init_column_categories() { this.alt = '▽'; } }); - $(this).parent().next(".tree-folder-items").slideToggle(300, function () { + $(this).parent().next('.tree-folder-items').slideToggle(300, function () { //Workaround for Gecko bug in Firefox 64-65(+?): - var sidebar = document.getElementById('sidebar'); + const sidebar = document.getElementById('sidebar'); if (sidebar && sidebar.scrollHeight > sidebar.clientHeight && //if needs scrollbar sidebar.scrollWidth >= sidebar.offsetWidth) { //but no scrollbar sidebar.style['overflow-y'] = 'scroll'; //then force scrollbar @@ -561,7 +596,7 @@ function init_column_categories() { }); $('#aside_feed').on('click', '.tree-folder-items .feed .dropdown-toggle', function () { - var itemId = $(this).closest('.item').attr('id'), + const itemId = $(this).closest('.item').attr('id'), templateId = itemId.substring(0, 2) === 't_' ? 'tag_config_template' : 'feed_config_template', id = itemId.substr(2), feed_web = $(this).data('fweb'), @@ -572,10 +607,10 @@ function init_column_categories() { .append(template).find('button.confirm').removeAttr('disabled'); } else { if ($(this).next('.dropdown-menu').css('display') === 'none') { - id = $(this).closest('.item').attr('id').substr(2); - $(this).attr('href', '#dropdown-' + id); + const id2 = $(this).closest('.item').attr('id').substr(2); + $(this).attr('href', '#dropdown-' + id2); } else { - $(this).attr('href', "#close"); + $(this).attr('href', '#close'); } } }); @@ -592,21 +627,19 @@ function init_shortcuts() { // Manipulation shortcuts shortcut.add(shortcuts.mark_read, function () { // Toggle the read state - var active = $(".flux.current"); - mark_read(active, false); + mark_read(document.querySelector('.flux.current'), false); }, { 'disable_in_input': true }); - shortcut.add("shift+" + shortcuts.mark_read, function () { + shortcut.add('shift+' + shortcuts.mark_read, function () { // Mark everything as read - $(".nav_menu .read_all").click(); + $('.nav_menu .read_all').click(); }, { 'disable_in_input': true }); shortcut.add(shortcuts.mark_favorite, function () { // Toggle the favorite state - var active = $(".flux.current"); - mark_favorite(active); + mark_favorite(document.querySelector('.flux.current')); }, { 'disable_in_input': true }); @@ -637,7 +670,7 @@ function init_shortcuts() { auto_share(String.fromCharCode(evt.keyCode)); } } - for (var i = 1; i < 10; i++) { + for (let i = 1; i < 10; i++) { shortcut.add(i.toString(), addShortcut, { 'disable_in_input': true }); @@ -651,11 +684,11 @@ function init_shortcuts() { 'disable_in_input': true }); shortcut.add(shortcuts.first_entry, function () { - var old_active = $(".flux.current"), - first = $(".flux:first"); + const $old_active = $('.flux.current'), + $first = $('.flux:first'); - if (first.hasClass("flux")) { - toggleContent(first, old_active, false); + if ($first.hasClass('flux')) { + toggleContent($first, $old_active, false); } }, { 'disable_in_input': true @@ -667,48 +700,48 @@ function init_shortcuts() { 'disable_in_input': true }); shortcut.add(shortcuts.last_entry, function () { - var old_active = $(".flux.current"), - last = $(".flux:last"); + const $old_active = $('.flux.current'), + $last = $('.flux:last'); - if (last.hasClass("flux")) { - toggleContent(last, old_active, false); + if ($last.hasClass('flux')) { + toggleContent($last, $old_active, false); } }, { 'disable_in_input': true }); // Feed navigation shortcuts - shortcut.add("shift+" + shortcuts.prev_entry, prev_feed, { + shortcut.add('shift+' + shortcuts.prev_entry, prev_feed, { 'disable_in_input': true }); - shortcut.add("shift+" + shortcuts.next_entry, next_feed, { + shortcut.add('shift+' + shortcuts.next_entry, next_feed, { 'disable_in_input': true }); - shortcut.add("shift+" + shortcuts.first_entry, first_feed, { + shortcut.add('shift+' + shortcuts.first_entry, first_feed, { 'disable_in_input': true }); - shortcut.add("shift+" + shortcuts.last_entry, last_feed, { + shortcut.add('shift+' + shortcuts.last_entry, last_feed, { 'disable_in_input': true }); // Category navigation shortcuts - shortcut.add("alt+" + shortcuts.prev_entry, prev_category, { + shortcut.add('alt+' + shortcuts.prev_entry, prev_category, { 'disable_in_input': true }); - shortcut.add("alt+" + shortcuts.next_entry, next_category, { + shortcut.add('alt+' + shortcuts.next_entry, next_category, { 'disable_in_input': true }); - shortcut.add("alt+" + shortcuts.first_entry, first_category, { + shortcut.add('alt+' + shortcuts.first_entry, first_category, { 'disable_in_input': true }); - shortcut.add("alt+" + shortcuts.last_entry, last_category, { + shortcut.add('alt+' + shortcuts.last_entry, last_category, { 'disable_in_input': true }); shortcut.add(shortcuts.go_website, function () { - var url_website = $('.flux.current a.go_website').attr("href"); + const url_website = $('.flux.current a.go_website').attr('href'); if (context.auto_mark_site) { - $(".flux.current").each(function () { - mark_read($(this), true); + $('.flux.current').each(function () { + mark_read(this, true); }); } @@ -730,7 +763,7 @@ function init_shortcuts() { }); shortcut.add(shortcuts.help, function () { - redirect(url.help, true); + redirect(urls.help, true); }, { 'disable_in_input': true }); @@ -775,8 +808,8 @@ function init_stream(divStream) { // setting for not-closing after clicking outside article area return; } - var old_active = $(".flux.current"), - new_active = $(this).parent(); + const old_active = document.querySelector('.flux.current'), + new_active = this.parentNode; isCollapsed = true; if (e.target.tagName.toUpperCase() === 'A') { //Leave real links alone if (context.auto_mark_article) { @@ -784,21 +817,20 @@ function init_stream(divStream) { } return true; } - toggleContent(new_active, old_active, false); + toggleContent($(new_active), $(old_active), false); }); divStream.on('click', '.flux a.read', function () { - var active = $(this).parents(".flux"); - if (context.auto_remove_article && active.hasClass('not_read')) { - auto_remove(active); + const $active = $(this).parents('.flux'); + if (context.auto_remove_article && $active.hasClass('not_read')) { + auto_remove($active); } - mark_read(active, false); + mark_read($active[0], false); return false; }); divStream.on('click', '.flux a.bookmark', function () { - var active = $(this).parents(".flux"); - mark_favorite(active); + mark_favorite(this.closest('.flux')); return false; }); @@ -815,7 +847,7 @@ function init_stream(divStream) { if (e.which == 2) { // If middle click, we want same behaviour as CTRL+click. - var ev = jQuery.Event("click"); + const ev = jQuery.Event('click'); ev.ctrlKey = true; $(this).trigger(ev); } else if(e.which == 1) { @@ -838,13 +870,11 @@ function init_stream(divStream) { return; } - mark_read($(this).parents(".flux"), true); + mark_read(this.closest('.flux'), true); }); } } -var $nav_entries = null; - function init_nav_entries() { $nav_entries = $('#nav_entries'); $nav_entries.find('.previous_entry').click(function () { @@ -856,14 +886,14 @@ function init_nav_entries() { return false; }); $nav_entries.find('.up').click(function () { - var active_item = $(".flux.current"), + const $active_item = $('.flux.current'), windowTop = $(window).scrollTop(), - item_top = active_item.offset().top; + item_top = $active_item.offset().top; if (windowTop > item_top) { - $("html,body").scrollTop(item_top); + $('html,body').scrollTop(item_top); } else { - $("html,body").scrollTop(0); + $('html,body').scrollTop(0); } return false; }); @@ -872,14 +902,14 @@ function init_nav_entries() { function loadDynamicTags($div) { $div.removeClass('dynamictags'); $div.find('li.item').remove(); - var entryId = $div.closest('div.flux').attr('id').replace(/^flux_/, ''); + const entryId = $div.closest('div.flux').attr('id').replace(/^flux_/, ''); $.getJSON('./?c=tag&a=getTagsForEntry&id_entry=' + entryId) .done(function (data) { - var $ul = $div.find('.dropdown-menu'); + const $ul = $div.find('.dropdown-menu'); $ul.append('
  • '); if (data && data.length) { - for (var i = 0; i < data.length; i++) { - var tag = data[i]; + for (let i = 0; i < data.length; i++) { + const tag = data[i]; $ul.append('
  • '); } @@ -897,13 +927,13 @@ function init_dynamic_tags() { }); $stream.on('change', '.checkboxTag', function (ev) { - var $checkbox = $(this); + const $checkbox = $(this), + isChecked = $checkbox.prop('checked'), + tagId = $checkbox.attr('name').replace(/^t_/, ''), + tagName = $checkbox.siblings('input[name]').val(), + $entry = $checkbox.closest('div.flux'), + entryId = $entry.attr('id').replace(/^flux_/, ''); $checkbox.prop('disabled', true); - var isChecked = $checkbox.prop('checked'); - var tagId = $checkbox.attr('name').replace(/^t_/, ''); - var tagName = $checkbox.siblings('input[name]').val(); - var $entry = $checkbox.closest('div.flux'); - var entryId = $entry.attr('id').replace(/^flux_/, ''); $.ajax({ type: 'POST', url: './?c=tag&a=tagEntry', @@ -936,7 +966,7 @@ function init_dynamic_tags() { var feed_processed = 0; function updateFeed(feeds, feeds_count) { - var feed = feeds.pop(); + const feed = feeds.pop(); if (!feed) { return; } @@ -949,8 +979,8 @@ function updateFeed(feeds, feeds_count) { }, }).always(function (data) { feed_processed++; - $("#actualizeProgress .progress").html(feed_processed + " / " + feeds_count); - $("#actualizeProgress .title").html(feed.title); + $('#actualizeProgress .progress').html(feed_processed + ' / ' + feeds_count); + $('#actualizeProgress .title').html(feed.title); if (feed_processed === feeds_count) { $.ajax({ //Empty request to commit new articles @@ -970,9 +1000,9 @@ function updateFeed(feeds, feeds_count) { } function init_actualize() { - var auto = false; + let auto = false; - $("#actualize").click(function () { + $('#actualize').click(function () { if (ajax_loading) { return false; } @@ -985,7 +1015,7 @@ function init_actualize() { return false; } if (data.feeds.length === 0) { - openNotification(data.feedback_no_refresh, "good"); + openNotification(data.feedback_no_refresh, 'good'); $.ajax({ //Empty request to force refresh server database cache type: 'POST', url: './?c=feed&a=actualize&id=-1&ajax=1', @@ -999,11 +1029,11 @@ function init_actualize() { return; } //Progress bar - var feeds_count = data.feeds.length; + const feeds_count = data.feeds.length; $('body').after('
    ' + data.feedback_actualize + '
    /
    0 / ' + feeds_count + '
    '); - for (var i = 10; i > 0; i--) { + for (let i = 10; i > 0; i--) { updateFeed(data.feeds, feeds_count); } }); @@ -1013,13 +1043,13 @@ function init_actualize() { if (context.auto_actualize_feeds) { auto = true; - $("#actualize").click(); + $('#actualize').click(); } } // // -var notification = null, +var $notification = null, notification_interval = null, notification_working = false; @@ -1030,19 +1060,19 @@ function openNotification(msg, status) { notification_working = true; - notification.removeClass(); - notification.addClass("notification"); - notification.addClass(status); - notification.find(".msg").html(msg); - notification.fadeIn(300); + $notification.removeClass(); + $notification.addClass('notification'); + $notification.addClass(status); + $notification.find('.msg').html(msg); + $notification.fadeIn(300); notification_interval = window.setTimeout(closeNotification, 4000); } function closeNotification() { - notification.fadeOut(600, function() { - notification.removeClass(); - notification.addClass('closed'); + $notification.fadeOut(600, function() { + $notification.removeClass(); + $notification.addClass('closed'); window.clearInterval(notification_interval); notification_working = false; @@ -1050,14 +1080,14 @@ function closeNotification() { } function init_notifications() { - notification = $("#notification"); + $notification = $('#notification'); - notification.find("a.close").click(function () { + $notification.find('a.close').click(function () { closeNotification(); return false; }); - if (notification.find(".msg").html().length > 0) { + if ($notification.find('.msg').html().length > 0) { notification_working = true; notification_interval = window.setTimeout(closeNotification, 4000); } @@ -1078,12 +1108,12 @@ function notifs_html5_ask_permission() { } function notifs_html5_show(nb) { - if (notifs_html5_permission !== "granted") { + if (notifs_html5_permission !== 'granted') { return; } - var notification = new window.Notification(i18n.notif_title_articles, { - icon: "../themes/icons/favicon-256.png", + const notification = new window.Notification(i18n.notif_title_articles, { + icon: '../themes/icons/favicon-256.png', body: i18n.notif_body_articles.replace('%d', nb), tag: 'freshRssNewArticles', }); @@ -1112,12 +1142,12 @@ function init_notifs_html5() { function refreshUnreads() { $.getJSON('./?c=javascript&a=nbUnreadsPerFeed').done(function (data) { - var isAll = $('.category.all.active').length > 0, - new_articles = false; + const isAll = document.querySelector('.category.all.active'); + let new_articles = false; $.each(data.feeds, function(feed_id, nbUnreads) { feed_id = 'f_' + feed_id; - var elem = $('#' + feed_id).get(0), + const elem = document.getElementById(feed_id), feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; if ((incUnreadsFeed(null, feed_id, nbUnreads - feed_unreads) || isAll) && //Update of current view? @@ -1127,7 +1157,7 @@ function refreshUnreads() { } }); - var nbUnreadTags = 0; + let nbUnreadTags = 0; $.each(data.tags, function(tag_id, nbUnreads) { nbUnreadTags += nbUnreads; @@ -1138,7 +1168,7 @@ function refreshUnreads() { $('.category.tags').attr('data-unread', nbUnreadTags) .find('.title').attr('data-unread', numberFormat(nbUnreadTags)); - var nb_unreads = str2int($('.category.all .title').attr('data-unread')); + const nb_unreads = str2int($('.category.all .title').attr('data-unread')); if (nb_unreads > 0 && new_articles) { faviconNbUnread(nb_unreads); @@ -1148,7 +1178,7 @@ function refreshUnreads() { } // -var url_load_more = "", +var url_load_more = '', load_more = false, box_load_more = null; @@ -1158,7 +1188,7 @@ function load_more_posts() { } load_more = true; - $('#load_more').addClass('loading'); + document.getElementById('load_more').classList.add('loading'); $.get(url_load_more, function (data) { box_load_more.children('.flux:last').after($('#stream', data).children('.flux, .day')); $('.pagination').replaceWith($('.pagination', data)); @@ -1173,7 +1203,7 @@ function load_more_posts() { } $('[id^=day_]').each(function (i) { - var ids = $('[id="' + this.id + '"]'); + const ids = $('[id="' + this.id + '"]'); if (ids.length > 1) { $('[id="' + this.id + '"]:gt(0)').remove(); } @@ -1181,8 +1211,8 @@ function load_more_posts() { init_load_more(box_load_more); - $('#load_more').removeClass('loading'); - $('#bigMarkAsRead').removeAttr('disabled'); + document.getElementById('load_more').classList.remove('loading'); + document.getElementById('bigMarkAsRead').removeAttribute('disabled'); load_more = false; }); } @@ -1198,14 +1228,14 @@ function init_load_more(box) { box_load_more = box; document.body.dispatchEvent(freshrssLoadMoreEvent); - var $next_link = $("#load_more"); + const $next_link = $('#load_more'); if (!$next_link.length) { // no more article to load - url_load_more = ""; + url_load_more = ''; return; } - url_load_more = $next_link.attr("href"); + url_load_more = $next_link.attr('href'); $next_link.click(function () { load_more_posts(); @@ -1216,9 +1246,9 @@ function init_load_more(box) { // function poormanSalt() { //If crypto.getRandomValues is not available - var text = '$2a$04$', - base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/abcdefghijklmnopqrstuvwxyz'; - for (var i = 22; i > 0; i--) { + const base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/abcdefghijklmnopqrstuvwxyz'; + let text = '$2a$04$'; + for (let i = 22; i > 0; i--) { text += base.charAt(Math.floor(Math.random() * 64)); } return text; @@ -1226,7 +1256,7 @@ function poormanSalt() { //If crypto.getRandomValues is not available function init_crypto_form() { /* globals dcodeIO */ - var $crypto_form = $('#crypto-form'); + const $crypto_form = $('#crypto-form'); if ($crypto_form.length === 0) { return; } @@ -1240,10 +1270,10 @@ function init_crypto_form() { } $crypto_form.on('submit', function() { - var $submit_button = $(this).find('button[type="submit"]'); + const $submit_button = $(this).find('button[type="submit"]'); $submit_button.attr('disabled', ''); - var success = false; + let success = false; $.ajax({ url: './?c=javascript&a=nonce&user=' + $('#username').val(), dataType: 'json', @@ -1253,7 +1283,7 @@ function init_crypto_form() { openNotification('Invalid user!', 'bad'); } else { try { - var strong = window.Uint32Array && window.crypto && (typeof window.crypto.getRandomValues === 'function'), + const strong = window.Uint32Array && window.crypto && (typeof window.crypto.getRandomValues === 'function'), s = dcodeIO.bcrypt.hashSync($('#passwordPlain').val(), data.salt1), c = dcodeIO.bcrypt.hashSync(data.nonce + s, strong ? dcodeIO.bcrypt.genSaltSync(4) : poormanSalt()); $('#challenge').val(c); @@ -1278,7 +1308,7 @@ function init_crypto_form() { function init_confirm_action() { $('body').on('click', '.confirm', function () { - var str_confirmation = $(this).attr('data-str-confirm'); + let str_confirmation = $(this).attr('data-str-confirm'); if (!str_confirmation) { str_confirmation = i18n.confirmation_default; } @@ -1290,15 +1320,15 @@ function init_confirm_action() { function init_print_action() { $('.item.share > a[href="#"]').click(function (e) { - var content = "" + + const content = '' + $(e.target).closest('.flux_content').find('.content').html() + - ""; + ''; - var tmp_window = window.open(); + const tmp_window = window.open(); tmp_window.document.writeln(content); tmp_window.document.close(); tmp_window.focus(); @@ -1310,25 +1340,27 @@ function init_print_action() { } function init_post_action() { - $('.item.share > a[href="POST"]').click(function (event) { - event.preventDefault(); - var form = $(this).next('form'); - $.post(form.data('url'), form.serialize()); + $('.item.share > a[href="POST"]').click(function (e) { + e.preventDefault(); + const $form = $(this).next('form'); + $.post($form.data('url'), $form.serialize()); }); } +var shares = 0; + function init_share_observers() { shares = $('.group-share').length; - $('.share.add').on('click', function(e) { - var opt = $(this).siblings('select').find(':selected'); - var row = $(this).parents('form').data(opt.data('form')); - row = row.replace(/##label##/g, opt.html().trim()); - row = row.replace(/##type##/g, opt.val()); - row = row.replace(/##help##/g, opt.data('help')); + $('.share.add').on('click', function (e) { + const $opt = $(this).siblings('select').find(':selected'); + let row = $(this).parents('form').data($opt.data('form')); + row = row.replace(/##label##/g, $opt.html().trim()); + row = row.replace(/##type##/g, $opt.val()); + row = row.replace(/##help##/g, $opt.data('help')); row = row.replace(/##key##/g, shares); - row = row.replace(/##method##/g, opt.data('method')); - row = row.replace(/##field##/g, opt.data('field')); + row = row.replace(/##method##/g, $opt.data('method')); + row = row.replace(/##field##/g, $opt.data('field')); $(this).parents('.form-group').before(row); shares++; @@ -1343,44 +1375,39 @@ function init_stats_observers() { } function init_remove_observers() { - $('.post').on('click', 'a.remove', function(e) { - var remove_what = $(this).attr('data-remove'); - + $('.post').on('click', 'a.remove', function (e) { + const remove_what = $(this).attr('data-remove'); if (remove_what !== undefined) { - var remove_obj = $('#' + remove_what); - remove_obj.remove(); + $('#' + remove_what).remove(); } - return false; }); } function init_feed_observers() { - $('select[id="category"]').on('change', function() { - var detail = $('#new_category_name').parent(); + $('select[id="category"]').on('change', function () { + const $detail = $('#new_category_name').parent(); if ($(this).val() === 'nc') { - detail.attr('aria-hidden', 'false').show(); - detail.find('input').focus(); + $detail.attr('aria-hidden', 'false').show(); + $detail.find('input').focus(); } else { - detail.attr('aria-hidden', 'true').hide(); + $detail.attr('aria-hidden', 'true').hide(); } }); } function init_password_observers() { - $('.toggle-password').on('mousedown', function(e) { - var button = $(this); - var passwordField = $('#' + button.attr('data-toggle')); - passwordField.attr('type', 'text'); - button.addClass('active'); - + $('.toggle-password').on('mousedown', function (e) { + const $button = $(this), + $passwordField = $('#' + $button.attr('data-toggle')); + $passwordField.attr('type', 'text'); + $button.addClass('active'); return false; - }).on('mouseup', function(e) { - var button = $(this); - var passwordField = $('#' + button.attr('data-toggle')); - passwordField.attr('type', 'password'); - button.removeClass('active'); - + }).on('mouseup', function (e) { + const $button = $(this), + $passwordField = $('#' + $button.attr('data-toggle')); + $passwordField.attr('type', 'password'); + $button.removeClass('active'); return false; }); } @@ -1390,16 +1417,16 @@ function faviconNbUnread(n) { n = str2int($('.category.all .title').attr('data-unread')); } //http://remysharp.com/2010/08/24/dynamic-favicons/ - var canvas = document.createElement('canvas'), + const canvas = document.createElement('canvas'), link = document.getElementById('favicon').cloneNode(true); if (canvas.getContext && link) { canvas.height = canvas.width = 16; - var img = document.createElement('img'); + const img = document.createElement('img'); img.onload = function () { - var ctx = canvas.getContext('2d'); + const ctx = canvas.getContext('2d'); ctx.drawImage(this, 0, 0, canvas.width, canvas.height); if (n > 0) { - var text = ''; + let text = ''; if (n < 1000) { text = n; } else if (n < 100000) { @@ -1422,9 +1449,9 @@ function faviconNbUnread(n) { } function init_slider_observers() { - var slider = $('#slider'), - closer = $('#close-slider'); - if (slider.length < 1) { + const $slider = $('#slider'), + $closer = $('#close-slider'); + if ($slider.length < 1) { return; } @@ -1434,51 +1461,47 @@ function init_slider_observers() { } ajax_loading = true; - var url_slide = $(this).attr('href'); $.ajax({ type: 'GET', - url: url_slide, + url: $(this).attr('href'), data: { ajax: true } }).done(function (data) { - slider.html(data); - closer.addClass('active'); - slider.addClass('active'); + $slider.html(data); + $closer.addClass('active'); + $slider.addClass('active'); ajax_loading = false; }); return false; }); - closer.on('click', function() { - closer.removeClass('active'); - slider.removeClass('active'); + $closer.on('click', function() { + $closer.removeClass('active'); + $slider.removeClass('active'); return false; }); } function init_configuration_alert() { - $(window).on('submit', function(e) { + $(window).on('submit', function (e) { window.hasSubmit = true; }); - $(window).on('beforeunload', function(e) { + $(window).on('beforeunload', function (e) { if (window.hasSubmit) { return; } - var fields = $("[data-leave-validation]"); - for (var i = 0; i < fields.length; i++) { - if ($(fields[i]).attr('type') === 'checkbox' || $(fields[i]).attr('type') === 'radio') { - // The use of != is done on purpose to check boolean against integer - if ($(fields[i]).is(':checked') != $(fields[i]).attr('data-leave-validation')) { - return false; - } - } else { - if ($(fields[i]).attr('data-leave-validation') !== $(fields[i]).val()) { + const inputs = document.querySelectorAll('[data-leave-validation]'); + for (let i = inputs.length - 1; i >= 0; i--) { + const input = inputs[i]; + if (input.type === 'checkbox' || input.type === 'radio') { + if (input.checked != input.getAttribute('data-leave-validation')) { return false; } + } else if (input.value != input.getAttribute('data-leave-validation')) { + return false; } } - return; }); } @@ -1488,19 +1511,6 @@ function init_subscription() { }); } -function parseJsonVars() { - var jsonVars = document.getElementById('jsonVars'), - json = JSON.parse(jsonVars.innerHTML); - jsonVars.outerHTML = ''; - window.context = json.context; - window.shortcuts = json.shortcuts; - window.url = json.url; - window.i18n = json.i18n; - window.icons = json.icons; - icons.read = decodeURIComponent(icons.read); - icons.unread = decodeURIComponent(icons.unread); -} - function init_normal() { $stream = $('#stream'); if ($stream.length < 1) { @@ -1567,7 +1577,6 @@ function init_afterDOM() { } } -parseJsonVars(); init_beforeDOM(); //Can be called before DOM is fully loaded if (document.readyState && document.readyState !== 'loading') { From cd9a9a93099b80fb3f8c2ba09266aa31955cbdd6 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 25 Dec 2018 15:34:25 +0100 Subject: [PATCH 03/59] First version of batch scroll as read Mark-as-read requests are queued and sent max once per second --- p/scripts/main.js | 109 ++++++++++++++++++++++++++++++---------------- 1 file changed, 71 insertions(+), 38 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index 555e92a40a4..a3a9317d6f0 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -161,22 +161,15 @@ function incUnreadsTag(tag_id, nb) { } } -var pending_entries = {}; +var pending_entries = {}, + mark_read_queue = []; -function mark_read(div, only_not_read) { - if (!div || !div.id || context.anonymous || - (only_not_read && !div.classList.contains('not_read'))) { - return false; +function send_mark_read_queue(queue, asRead) { + let url = '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'); + for (let i = queue.length - 1; i >= 0; i--) { + url += '&id[]=' + queue[i]; } - if (pending_entries[div.id]) { - return false; - } - pending_entries[div.id] = true; - - let url = '.?c=entry&a=read&id=' + div.id.replace(/^flux_/, '') + - (div.classList.contains('not_read') ? '' : '&is_read=0'); - $.ajax({ type: 'POST', url: url, @@ -185,42 +178,75 @@ function mark_read(div, only_not_read) { _csrf: context.csrf, }, }).done(function (data) { - let inc = 0; - if (div.classList.contains('not_read')) { - div.classList.remove('not_read'); - div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=0', '') + '&is_read=1'); }); - div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = icons.read; }); - inc--; - } else { - div.classList.add('not_read', 'keep_unread'); - div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=1', '')); }); - div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = icons.unread; }); - inc++; - } - - let feed_link = div.querySelector('.website > a'); - if (feed_link) { - let feed_url = feed_link.getAttribute('href'); - let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); - incUnreadsFeed(div, feed_id, inc); + for (let i = queue.length - 1; i >= 0; i--) { + const div = document.getElementById('flux_' + queue[i]), + myIcons = icons; + let inc = 0; + if (div.classList.contains('not_read')) { + div.classList.remove('not_read'); + div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=0', '') + '&is_read=1'); }); + div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.read; }); + inc--; + } else { + div.classList.add('not_read', 'keep_unread'); + div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=1', '')); }); + div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.unread; }); + inc++; + } + let feed_link = div.querySelector('.website > a'); + if (feed_link) { + let feed_url = feed_link.getAttribute('href'); + let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); + incUnreadsFeed(div, feed_id, inc); + } + delete pending_entries[queue[i]]; } faviconNbUnread(); - if (data.tags) { let tagIds = Object.keys(data.tags); for (let i = tagIds.length - 1; i >= 0; i--) { let tagId = tagIds[i]; - incUnreadsTag(tagId, inc * data.tags[tagId].length); + incUnreadsTag(tagId, (asRead ? -1 : 1) * data.tags[tagId].length); } } - - delete pending_entries[div.id]; }).fail(function (data) { openNotification(i18n.notif_request_failed, 'bad'); - delete pending_entries[div.id]; + for (let i = queue.length - 1; i >= 0; i--) { + delete pending_entries[queue[i]]; + } }); } +var send_mark_read_queue_timeout = 0; + +function mark_read(div, only_not_read) { + if (!div || !div.id || context.anonymous || + (only_not_read && !div.classList.contains('not_read'))) { + return false; + } + const entryId = div.id.replace(/^flux_/, ''); + if (pending_entries[entryId]) { + return false; + } + pending_entries[entryId] = true; + + const asRead = div.classList.contains('not_read'); + if (asRead) { + mark_read_queue.push(entryId); + if (send_mark_read_queue_timeout == 0) { + send_mark_read_queue_timeout = setTimeout(function () { + send_mark_read_queue_timeout = 0; + const queue = mark_read_queue.slice(0); + mark_read_queue = []; + send_mark_read_queue(queue, asRead); + }, 1000); + } + } else { + const queue = [ entryId ]; + send_mark_read_queue(queue, asRead); + } +} + function mark_favorite(div) { if (!div) { return false; @@ -1211,8 +1237,15 @@ function load_more_posts() { init_load_more(box_load_more); - document.getElementById('load_more').classList.remove('loading'); - document.getElementById('bigMarkAsRead').removeAttribute('disabled'); + const bigMarkAsRead = document.getElementById('bigMarkAsRead'), + div_load_more = document.getElementById('load_more'); + if (bigMarkAsRead) { + bigMarkAsRead.removeAttribute('disabled'); + } + if (div_load_more) { + div_load_more.classList.remove('loading'); + } + load_more = false; }); } From 6fa09318ce4d510535c7c13723502b9917a78e85 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 25 Dec 2018 16:09:48 +0100 Subject: [PATCH 04/59] Semove superfluous window. object --- p/scripts/main.js | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index a3a9317d6f0..d6d018bdafc 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -500,7 +500,7 @@ function user_filter(key) { return; } // Display the filter div - window.location.hash = filter.attr('id'); + location.hash = filter.attr('id'); // Force scrolling to the filter div const scroll = needsScroll($('.header')); if (scroll !== 0) { @@ -528,7 +528,7 @@ function auto_share(key) { return; } // Display the share div - window.location.hash = $share.attr('id'); + location.hash = $share.attr('id'); // Force scrolling to the share div const scroll = needsScroll($share.closest('.bottom')); if (scroll !== 0) { @@ -566,12 +566,12 @@ function init_posts() { let lastScroll = 0, //Throttle timerId = 0; $box_to_follow.scroll(function () { - window.clearTimeout(timerId); + clearTimeout(timerId); if (lastScroll + 500 < Date.now()) { lastScroll = Date.now(); scrollAsRead($box_to_follow); } else { - timerId = window.setTimeout(function() { + timerId = setTimeout(function () { scrollAsRead($box_to_follow); }, 500); } @@ -600,7 +600,7 @@ function init_column_categories() { } $('#aside_feed').on('click', '.tree-folder>.tree-folder-title>a.dropdown-toggle', function () { - $(this).children().each(function() { + $(this).children().each(function () { if (this.alt === '▽') { this.src = this.src.replace('/icons/down.', '/icons/up.'); this.alt = '△'; @@ -643,11 +643,11 @@ function init_column_categories() { } function init_shortcuts() { - if (!(window.shortcut && window.shortcuts)) { + if (!(window.shortcut)) { if (window.console) { console.log('FreshRSS waiting for shortcut.js…'); } - window.setTimeout(init_shortcuts, 200); + setTimeout(init_shortcuts, 200); return; } // Manipulation shortcuts @@ -795,7 +795,7 @@ function init_shortcuts() { }); shortcut.add(shortcuts.close_dropdown, function () { - window.location.hash = null; + location.hash = null; }, { 'disable_in_input': true }); @@ -1017,7 +1017,7 @@ function updateFeed(feeds, feeds_count) { noCommit: 0, }, }).always(function (data) { - window.location.reload(); + location.reload(); }); } else { updateFeed(feeds, feeds_count); @@ -1092,15 +1092,15 @@ function openNotification(msg, status) { $notification.find('.msg').html(msg); $notification.fadeIn(300); - notification_interval = window.setTimeout(closeNotification, 4000); + notification_interval = setTimeout(closeNotification, 4000); } function closeNotification() { - $notification.fadeOut(600, function() { + $notification.fadeOut(600, function () { $notification.removeClass(); $notification.addClass('closed'); - window.clearInterval(notification_interval); + clearInterval(notification_interval); notification_working = false; }); } @@ -1115,7 +1115,7 @@ function init_notifications() { if ($notification.find('.msg').html().length > 0) { notification_working = true; - notification_interval = window.setTimeout(closeNotification, 4000); + notification_interval = setTimeout(closeNotification, 4000); } } // @@ -1144,14 +1144,14 @@ function notifs_html5_show(nb) { tag: 'freshRssNewArticles', }); - notification.onclick = function() { - window.location.reload(); + notification.onclick = function () { + location.reload(); window.focus(); notification.close(); }; if (context.html5_notif_timeout !== 0) { - setTimeout(function() { + setTimeout(function () { notification.close(); }, context.html5_notif_timeout * 1000); } @@ -1171,7 +1171,7 @@ function refreshUnreads() { const isAll = document.querySelector('.category.all.active'); let new_articles = false; - $.each(data.feeds, function(feed_id, nbUnreads) { + $.each(data.feeds, function (feed_id, nbUnreads) { feed_id = 'f_' + feed_id; const elem = document.getElementById(feed_id), feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; @@ -1185,7 +1185,7 @@ function refreshUnreads() { let nbUnreadTags = 0; - $.each(data.tags, function(tag_id, nbUnreads) { + $.each(data.tags, function (tag_id, nbUnreads) { nbUnreadTags += nbUnreads; $('#t_' + tag_id).attr('data-unread', nbUnreads) .children('.item-title').attr('data-unread', numberFormat(nbUnreads)); @@ -1298,11 +1298,11 @@ function init_crypto_form() { if (window.console) { console.log('FreshRSS waiting for bcrypt.js…'); } - window.setTimeout(init_crypto_form, 100); + setTimeout(init_crypto_form, 100); return; } - $crypto_form.on('submit', function() { + $crypto_form.on('submit', function () { const $submit_button = $(this).find('button[type="submit"]'); $submit_button.attr('disabled', ''); @@ -1329,7 +1329,7 @@ function init_crypto_form() { openNotification('Crypto exception! ' + e, 'bad'); } } - }).fail(function() { + }).fail(function () { openNotification('Communication error!', 'bad'); }); @@ -1402,7 +1402,7 @@ function init_share_observers() { } function init_stats_observers() { - $('.select-change').on('change', function(e) { + $('.select-change').on('change', function (e) { redirect($(this).find(':selected').data('url')); }); } @@ -1488,7 +1488,7 @@ function init_slider_observers() { return; } - $('.post').on('click', '.open-slider', function() { + $('.post').on('click', '.open-slider', function () { if (ajax_loading) { return false; } @@ -1509,7 +1509,7 @@ function init_slider_observers() { return false; }); - $closer.on('click', function() { + $closer.on('click', function () { $closer.removeClass('active'); $slider.removeClass('active'); return false; @@ -1550,7 +1550,7 @@ function init_normal() { if (window.console) { console.log('FreshRSS waiting for content…'); } - window.setTimeout(init_normal, 100); + setTimeout(init_normal, 100); return; } init_column_categories(); @@ -1565,7 +1565,7 @@ function init_beforeDOM() { if (window.console) { console.log('FreshRSS waiting for jQuery…'); } - window.setTimeout(init_beforeDOM, 100); + setTimeout(init_beforeDOM, 100); return; } if (['normal', 'reader', 'global'].indexOf(context.current_view) >= 0) { @@ -1578,7 +1578,7 @@ function init_afterDOM() { if (window.console) { console.log('FreshRSS waiting again for jQuery…'); } - window.setTimeout(init_afterDOM, 100); + setTimeout(init_afterDOM, 100); return; } init_notifications(); @@ -1592,7 +1592,7 @@ function init_afterDOM() { init_print_action(); init_post_action(); init_notifs_html5(); - window.setInterval(refreshUnreads, 120000); + setInterval(refreshUnreads, 120000); } else { init_subscription(); init_crypto_form(); From 8f03b370cc79f275e92b04ca6f25ef2b13fa867f Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 25 Dec 2018 16:10:20 +0100 Subject: [PATCH 05/59] Send item queue as POST Which also simplifies the request --- p/scripts/main.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index d6d018bdafc..5d567983903 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -165,17 +165,13 @@ var pending_entries = {}, mark_read_queue = []; function send_mark_read_queue(queue, asRead) { - let url = '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'); - for (let i = queue.length - 1; i >= 0; i--) { - url += '&id[]=' + queue[i]; - } - $.ajax({ type: 'POST', - url: url, + url: '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'), data: { ajax: true, _csrf: context.csrf, + 'id[]': queue, }, }).done(function (data) { for (let i = queue.length - 1; i >= 0; i--) { From caa893e14b46bc9b52f251ca93eada0c57634302 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 27 Dec 2018 03:34:56 +0100 Subject: [PATCH 06/59] Optimise onscroll routines Much lighter rework: auto-mark-as-read, auto-remove-articles, auto-load-more. In particular, use a single onscroll event handler with a throtte. Continue removing jQuery when possible. --- p/scripts/main.js | 350 +++++++++++++++++++++------------------------- 1 file changed, 157 insertions(+), 193 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index 5d567983903..227a4b47a33 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -5,17 +5,15 @@ // if (!NodeList.prototype.forEach) NodeList.prototype.forEach = Array.prototype.forEach; if (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.webkitMatchesSelector; -if (!Element.prototype.closest) { - Element.prototype.closest = function (s) { +if (!Element.prototype.closest) Element.prototype.closest = function (s) { let el = this; - if (!document.documentElement.contains(el)) return null; do { if (el.matches(s)) return el; - el = el.parentElement || el.parentNode; - } while (el !== null && el.nodeType == 1); + el = el.parentElement; + } while (el); return null; }; -} +if (!Element.prototype.remove) Element.prototype.remove = function () { if (this.parentNode) this.parentNode.removeChild(this); }; // // @@ -36,7 +34,6 @@ var context, i18n, icons, shortcuts, urls; var $stream = null, ajax_loading = false, - isCollapsed = true, $nav_entries = null; // @@ -50,14 +47,11 @@ function redirect(url, new_tab) { } } -function needsScroll($elem) { - const $win = $(window), - winTop = $win.scrollTop(), - winHeight = $win.height(), - winBottom = winTop + winHeight, - elemTop = $elem.offset().top, - elemBottom = elemTop + $elem.outerHeight(); - return (elemTop < winTop || elemBottom > winBottom) ? elemTop - (winHeight / 2) : 0; +function needsScroll(elem) { + const winBottom = document.documentElement.scrollTop + document.documentElement.clientHeight, + elemBottom = elem.offsetTop + elem.offsetHeight; + return (elem.offsetTop < document.documentElement.scrollTop || elemBottom > winBottom) ? + elem.offsetTop - (document.documentElement.clientHeight / 2) : 0; } function str2int(str) { @@ -134,7 +128,7 @@ function incUnreadsFeed(article, feed_id, nb) { // Update unread: title document.title = document.title.replace(/^((?:\([ 0-9]+\) )?)/, function (m, p1) { const feed = document.getElementById(feed_id); - if (article || (feed.closest('.active') && $(feed).siblings('.active').length === 0)) { + if (article || feed.closest('.active')) { isCurrentView = true; return incLabel(p1, nb, true); } else if (document.querySelector('.all.active')) { @@ -195,7 +189,7 @@ function send_mark_read_queue(queue, asRead) { let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); incUnreadsFeed(div, feed_id, inc); } - delete pending_entries[queue[i]]; + delete pending_entries['flux_' + queue[i]]; } faviconNbUnread(); if (data.tags) { @@ -205,10 +199,11 @@ function send_mark_read_queue(queue, asRead) { incUnreadsTag(tagId, (asRead ? -1 : 1) * data.tags[tagId].length); } } + onScroll(); }).fail(function (data) { openNotification(i18n.notif_request_failed, 'bad'); for (let i = queue.length - 1; i >= 0; i--) { - delete pending_entries[queue[i]]; + delete pending_entries['flux_' + queue[i]]; } }); } @@ -220,13 +215,13 @@ function mark_read(div, only_not_read) { (only_not_read && !div.classList.contains('not_read'))) { return false; } - const entryId = div.id.replace(/^flux_/, ''); - if (pending_entries[entryId]) { + if (pending_entries[div.id]) { return false; } - pending_entries[entryId] = true; + pending_entries[div.id] = true; - const asRead = div.classList.contains('not_read'); + const asRead = div.classList.contains('not_read'), + entryId = div.id.replace(/^flux_/, ''); if (asRead) { mark_read_queue.push(entryId); if (send_mark_read_queue_timeout == 0) { @@ -278,8 +273,8 @@ function mark_favorite(div) { div.querySelectorAll('a.bookmark').forEach(function (a) { a.setAttribute('href', data.url); }); div.querySelectorAll('a.bookmark > .icon').forEach(function (img) { img.outerHTML = data.icon; }); - const favourites = $('#aside_feed .favorites .title').contents().last().get(0); - if (favourites && favourites.textContent) { + const favourites = document.querySelector('#aside_feed .favorites .title'); + if (favourites) { favourites.textContent = favourites.textContent.replace(/((?: \([ 0-9]+\))?\s*)$/, function (m, p1) { return incLabel(p1, inc, false); }); @@ -300,117 +295,77 @@ function mark_favorite(div) { }); } -function toggleContent($new_active, $old_active, skipping) { +function toggleContent(new_active, old_active, skipping) { // If skipping, move current without activating or marking as read - if ($new_active.length === 0) { + if (!new_active) { return; } if (context.does_lazyload && !skipping) { - $new_active.find('img[data-original], iframe[data-original]').each(function () { - this.setAttribute('src', this.getAttribute('data-original')); - this.removeAttribute('data-original'); + new_active.querySelectorAll('img[data-original], iframe[data-original]').forEach(function (elem) { + elem.setAttribute('src', elem.getAttribute('data-original')); + elem.removeAttribute('data-original'); }); } - if ($old_active[0] !== $new_active[0]) { - if (isCollapsed && !skipping) { // BUG?: isCollapsed can only ever be true - $new_active.addClass('active'); + if (old_active !== new_active) { + if (!skipping) { + new_active.classList.add('active'); } - $old_active.removeClass('active current'); - $new_active.addClass('current'); - if (context.auto_remove_article && !$old_active.hasClass('not_read') && !skipping) { - auto_remove($old_active); + new_active.classList.add('current'); + if (old_active) { + old_active.classList.remove('active'); + old_active.classList.remove('current'); //Split for IE11 } } else { // collapse_entry calls toggleContent(flux_current, flux_current, false) - $new_active.toggleClass('active'); + new_active.classList.toggle('active'); } const relative_move = context.current_view === 'global', - $box_to_move = $(relative_move ? '#panel' : 'html,body'); + box_to_move = relative_move ? document.getElementById('#panel') : document.documentElement; if (context.sticky_post) { - let prev_article = $new_active.prevAll('.flux'), - new_pos = $new_active.offset().top, - old_scroll = $box_to_move.scrollTop(); + let prev_article = new_active.previousElementSibling, + new_pos = new_active.offsetTop + document.documentElement.scrollTop, + old_scroll = box_to_move.scrollTop; - if (prev_article.length > 0 && new_pos - prev_article.offset().top <= 150) { - new_pos = prev_article.offset().top; + if (prev_article && new_active.offsetTop - prev_article.offsetTop <= 150) { + new_pos = prev_article.offsetTop; if (relative_move) { - new_pos -= $box_to_move.offset().top; + new_pos -= box_to_move.offsetTop; } } if (skipping) { // when skipping, this feels more natural if it's not so near the top - new_pos -= $(window).height() / 4; + new_pos -= document.body.clientHeight / 4; } - if (context.hide_posts) { - if (relative_move) { - new_pos += old_scroll; - } - - $new_active.children('.flux_content').first().each(function () { - $box_to_move.scrollTop(new_pos).scrollTop(); - }); - } else { - if (relative_move) { - new_pos += old_scroll; - } - - $box_to_move.scrollTop(new_pos).scrollTop(); + if (relative_move) { + new_pos += old_scroll; } + box_to_move.scrollTop = new_pos; } - if (context.auto_mark_article && $new_active.hasClass('active') && !skipping) { - mark_read($new_active[0], true); + if (context.auto_mark_article && new_active.classList.contains('active') && !skipping) { + mark_read(new_active, true); } + onScroll(); } -function auto_remove($element) { - let $p = $element.prev(), - $n = $element.next(); - if ($p.hasClass('day') && $n.hasClass('day')) { - $p.remove(); - } - $element.remove(); - $('#stream > .flux:not(.not_read):not(.active)').remove(); +function prev_entry(skipping) { + const old_active = document.querySelector('.flux.current'), + new_active = old_active ? old_active.previousElementSibling : document.querySelector('.flux'); + toggleContent(new_active, old_active, skipping); } -function prev_entry() { - let $old_active = $('.flux.current'), - $new_active = $old_active.length === 0 ? $('.flux:last') : $old_active.prevAll('.flux:first'); - toggleContent($new_active, $old_active, false); -} - -function next_entry() { - let $old_active = $('.flux.current'), - $new_active = $old_active.length === 0 ? $('.flux:first') : $old_active.nextAll('.flux:first'); - toggleContent($new_active, $old_active, false); - - if ($new_active.nextAll().length < 3) { - load_more_posts(); - } -} - -function skip_prev_entry() { - let $old_active = $('.flux.current'), - $new_active = $old_active.length === 0 ? $('.flux:last') : $old_active.prevAll('.flux:first'); - toggleContent($new_active, $old_active, true); -} - -function skip_next_entry() { - let $old_active = $('.flux.current'), - $new_active = $old_active.length === 0 ? $('.flux:first') : $old_active.nextAll('.flux:first'); - toggleContent($new_active, $old_active, true); - - if ($new_active.nextAll().length < 3) { - load_more_posts(); - } +function next_entry(skipping) { + const old_active = document.querySelector('.flux.current'), + new_active = old_active ? old_active.nextElementSibling : document.querySelector('.flux'); + toggleContent(new_active, old_active, skipping); } function prev_feed() { - let $active_feed = $('#aside_feed .tree-folder-items .item.active'); + const $active_feed = $('#aside_feed .tree-folder-items .item.active'); if ($active_feed.length > 0) { $active_feed.prevAll(':visible:first').find('a').each(function () { this.click(); }); } else { @@ -419,7 +374,7 @@ function prev_feed() { } function next_feed() { - let $active_feed = $('#aside_feed .tree-folder-items .item.active'); + const $active_feed = $('#aside_feed .tree-folder-items .item.active'); if ($active_feed.length > 0) { $active_feed.nextAll(':visible:first').find('a').each(function () { this.click(); }); } else { @@ -428,24 +383,24 @@ function next_feed() { } function first_feed() { - let $feed = $('#aside_feed .tree-folder-items.active .item:visible:first'); - if ($feed.length > 0) { - $feed.find('a')[1].click(); + const a = document.querySelector('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title'); + if (a) { + a.click(); } } function last_feed() { - let $feed = $('#aside_feed .tree-folder-items.active .item:visible:last'); - if ($feed.length > 0) { - $feed.find('a')[1].click(); + const links = document.querySelectorAll('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title'); + if (links && links.length > 0) { + links[links.length - 1].click(); } } function prev_category() { - let $active_cat = $('#aside_feed .tree-folder.active'); + const $active_cat = $('#aside_feed .tree-folder.active'); if ($active_cat.length > 0) { - let $prev_cat = $active_cat.prevAll(':visible:first').find('.tree-folder-title .title'); + const $prev_cat = $active_cat.prevAll(':visible:first').find('.tree-folder-title .title'); if ($prev_cat.length > 0) { $prev_cat[0].click(); } @@ -456,10 +411,10 @@ function prev_category() { } function next_category() { - let $active_cat = $('#aside_feed .tree-folder.active'); + const $active_cat = $('#aside_feed .tree-folder.active'); if ($active_cat.length > 0) { - let $next_cat = $active_cat.nextAll(':visible:first').find('.tree-folder-title .title'); + const $next_cat = $active_cat.nextAll(':visible:first').find('.tree-folder-title .title'); if ($next_cat.length > 0) { $next_cat[0].click(); } @@ -470,40 +425,40 @@ function next_category() { } function first_category() { - let $cat = $('#aside_feed .tree-folder:visible:first'); - if ($cat.length > 0) { - $cat.find('.tree-folder-title .title')[0].click(); + const a = document.querySelector('#aside_feed .category:not([data-unread="0"]) a.title'); + if (a) { + a.click(); } } function last_category() { - let $cat = $('#aside_feed .tree-folder:visible:last'); - if ($cat.length > 0) { - $cat.find('.tree-folder-title .title')[0].click(); + const links = document.querySelectorAll('#aside_feed .category:not([data-unread="0"]) a.title'); + if (links && links.length > 0) { + links[links.length - 1].click(); } } function collapse_entry() { - let $flux_current = $('.flux.current'); - toggleContent($flux_current, $flux_current, false); + const flux_current = document.querySelector('.flux.current'); + toggleContent(flux_current, flux_current, false); } function user_filter(key) { - const filter = $('#dropdown-query'), - filters = filter.siblings('.dropdown-menu').find('.item.query a'); + const $filter = $('#dropdown-query'), + $filters = $filter.siblings('.dropdown-menu').find('.item.query a'); if (typeof key === 'undefined') { - if (!filter.length) { + if (!$filters.length) { return; } // Display the filter div - location.hash = filter.attr('id'); + location.hash = $filters.attr('id'); // Force scrolling to the filter div - const scroll = needsScroll($('.header')); + const scroll = needsScroll(document.querySelector('.header')); if (scroll !== 0) { - $('html,body').scrollTop(scroll); + document.documentElement.scrollTop = scroll; } // Force the key value if there is only one action, so we can trigger it automatically - if (filters.length === 1) { + if ($filters.length === 1) { key = 1; } else { return; @@ -511,27 +466,27 @@ function user_filter(key) { } // Trigger selected share action key = parseInt(key); - if (key <= filters.length) { - filters[key - 1].click(); + if (key <= $filters.length) { + $filters[key - 1].click(); } } function auto_share(key) { - const $share = $('.flux.current.active').find('.dropdown-target[id^="dropdown-share"]'), - $shares = $share.siblings('.dropdown-menu').find('.item a'); + const share = document.querySelector('.flux.current.active .dropdown-target[id^="dropdown-share"]'); + if (!share) { + return; + } + const shares = share.parentElement.querySelectorAll('.dropdown-menu .item a'); if (typeof key === 'undefined') { - if (!$share.length) { - return; - } // Display the share div - location.hash = $share.attr('id'); + location.hash = share.id; // Force scrolling to the share div - const scroll = needsScroll($share.closest('.bottom')); - if (scroll !== 0) { - $('html,body').scrollTop(scroll); + const scrollTop = needsScroll(share.closest('.bottom')); + if (scrollTop !== 0) { + document.documentElement.scrollTop = scrollTop; } // Force the key value if there is only one action, so we can trigger it automatically - if ($shares.length === 1) { + if (shares.length === 1) { key = 1; } else { return; @@ -539,54 +494,72 @@ function auto_share(key) { } // Trigger selected share action and hide the share div key = parseInt(key); - if (key <= $shares.length) { - $shares[key - 1].click(); - $share.siblings('.dropdown-menu').find('.dropdown-close a')[0].click(); + if (key <= shares.length) { + shares[key - 1].click(); + share.parentElement.querySelector('.dropdown-menu .dropdown-close a').click(); } } -function scrollAsRead($box_to_follow) { - const minTop = 40 + (context.current_view === 'global' ? $box_to_follow.offset().top : $box_to_follow.scrollTop()); - $('.not_read:not(.keep_unread):visible').each(function () { - const $this = $(this); - if ($this.offset().top + $this.height() < minTop) { - mark_read(this, true); - } - }); +var box_to_follow; + +function onScroll() { + if (!box_to_follow) { + return; + } + if (context.auto_mark_scroll) { + const minTop = 40 + box_to_follow.scrollTop; + document.querySelectorAll('.not_read:not(.keep_unread)').forEach(function (div) { + if (div.offsetHeight > 0 && + div.offsetParent.offsetTop + div.offsetTop + div.offsetHeight < minTop) { + mark_read(div, true); + } + }); + } + if (context.auto_remove_article) { + let maxTop = box_to_follow.scrollTop, + scrollOffset = 0; + document.querySelectorAll('.flux:not(.active):not(.keep_unread)').forEach(function (div) { + if (!pending_entries[div.id] && div.offsetHeight > 0 && + div.offsetParent.offsetTop + div.offsetTop + div.offsetHeight < maxTop) { + const p = div.previousElementSibling, + n = div.nextElementSibling; + if (p && p.classList.contains('day') && n && n.classList.contains('day')) { + p.remove(); + } + maxTop -= div.offsetHeight; + scrollOffset -= div.offsetHeight; + div.remove(); + } + }); + if (scrollOffset != 0) { + box_to_follow.scrollTop += scrollOffset; + return; //onscroll will be called again + } + } + if (context.auto_load_more) { + const load_more = document.getElementById('mark-read-pagination'); + if (load_more && box_to_follow.scrollTop > 0 && + box_to_follow.scrollTop + box_to_follow.offsetHeight >= load_more.offsetTop) { + load_more_posts(); + } + } } function init_posts() { - let $box_to_follow = context.current_view === 'global' ? $('#panel') : $(window); - - if (context.auto_mark_scroll) { + if (context.auto_load_more || context.auto_mark_scroll || context.auto_remove_article) { + box_to_follow = context.current_view === 'global' ? document.getElementById('panel') : document.documentElement; let lastScroll = 0, //Throttle timerId = 0; - $box_to_follow.scroll(function () { + (box_to_follow === document.documentElement ? window : box_to_follow).onscroll = function () { clearTimeout(timerId); if (lastScroll + 500 < Date.now()) { lastScroll = Date.now(); - scrollAsRead($box_to_follow); + onScroll(); } else { - timerId = setTimeout(function () { - scrollAsRead($box_to_follow); - }, 500); - } - }); - } - - if (context.auto_load_more) { - $box_to_follow.scroll(function () { - const $load_more = $('#load_more'); - if (!$load_more.is(':visible')) { - return; + timerId = setTimeout(onScroll, 500); } - const boxBot = $box_to_follow.scrollTop() + $box_to_follow.height(), - load_more_top = $load_more.offset().top; - if (boxBot >= load_more_top) { - load_more_posts(); - } - }); - $box_to_follow.scroll(); + }; + onScroll(); } } @@ -699,10 +672,10 @@ function init_shortcuts() { } // Entry navigation shortcuts - shortcut.add(shortcuts.prev_entry, prev_entry, { + shortcut.add(shortcuts.prev_entry, function () { prev_entry(false); }, { 'disable_in_input': true }); - shortcut.add(shortcuts.skip_prev_entry, skip_prev_entry, { + shortcut.add(shortcuts.skip_prev_entry, function () { prev_entry(true); }, { 'disable_in_input': true }); shortcut.add(shortcuts.first_entry, function () { @@ -715,10 +688,10 @@ function init_shortcuts() { }, { 'disable_in_input': true }); - shortcut.add(shortcuts.next_entry, next_entry, { + shortcut.add(shortcuts.next_entry, function () { next_entry(false); }, { 'disable_in_input': true }); - shortcut.add(shortcuts.skip_next_entry, skip_next_entry, { + shortcut.add(shortcuts.skip_next_entry, function () { next_entry(true); }, { 'disable_in_input': true }); shortcut.add(shortcuts.last_entry, function () { @@ -772,15 +745,11 @@ function init_shortcuts() { 'disable_in_input': true }); - shortcut.add(shortcuts.load_more, function () { - load_more_posts(); - }, { + shortcut.add(shortcuts.load_more, load_more_posts, { 'disable_in_input': true }); - shortcut.add(shortcuts.focus_search, function () { - focus_search(); - }, { + shortcut.add(shortcuts.focus_search, focus_search, { 'disable_in_input': true }); @@ -832,22 +801,17 @@ function init_stream(divStream) { } const old_active = document.querySelector('.flux.current'), new_active = this.parentNode; - isCollapsed = true; if (e.target.tagName.toUpperCase() === 'A') { //Leave real links alone if (context.auto_mark_article) { mark_read(new_active, true); } return true; } - toggleContent($(new_active), $(old_active), false); + toggleContent(new_active, old_active, false); }); divStream.on('click', '.flux a.read', function () { - const $active = $(this).parents('.flux'); - if (context.auto_remove_article && $active.hasClass('not_read')) { - auto_remove($active); - } - mark_read($active[0], false); + mark_read(this.closest('.flux'), false); return false; }); @@ -872,7 +836,7 @@ function init_stream(divStream) { const ev = jQuery.Event('click'); ev.ctrlKey = true; $(this).trigger(ev); - } else if(e.which == 1) { + } else if (e.which == 1) { // Normal click, just toggle article. $(this).parent().click(); } @@ -900,11 +864,11 @@ function init_stream(divStream) { function init_nav_entries() { $nav_entries = $('#nav_entries'); $nav_entries.find('.previous_entry').click(function () { - prev_entry(); + prev_entry(false); return false; }); $nav_entries.find('.next_entry').click(function () { - next_entry(); + next_entry(false); return false; }); $nav_entries.find('.up').click(function () { From f9555db678679d04fdc28bb2d31eb00135209a16 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 27 Dec 2018 03:49:20 +0100 Subject: [PATCH 07/59] IE11 fixes --- p/scripts/main.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index 227a4b47a33..7b49ebeb2f7 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -49,9 +49,10 @@ function redirect(url, new_tab) { function needsScroll(elem) { const winBottom = document.documentElement.scrollTop + document.documentElement.clientHeight, - elemBottom = elem.offsetTop + elem.offsetHeight; - return (elem.offsetTop < document.documentElement.scrollTop || elemBottom > winBottom) ? - elem.offsetTop - (document.documentElement.clientHeight / 2) : 0; + elemTop = elem.offsetParent.offsetTop + elem.offsetTop, + elemBottom = elemTop + elem.offsetHeight; + return (elemTop < document.documentElement.scrollTop || elemBottom > winBottom) ? + elemTop - (document.documentElement.clientHeight / 2) : 0; } function str2int(str) { @@ -178,7 +179,8 @@ function send_mark_read_queue(queue, asRead) { div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.read; }); inc--; } else { - div.classList.add('not_read', 'keep_unread'); + div.classList.add('not_read'); + div.classList.add('keep_unread'); //Split for IE11 div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=1', '')); }); div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.unread; }); inc++; From 4872442c62f63ef97a0e12c43b4700b98ebcdc15 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 26 Jan 2019 16:23:48 +0100 Subject: [PATCH 08/59] Start 1.13.2-dev --- CHANGELOG.md | 3 +++ constants.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9490f25e1b..685be5a6206 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # FreshRSS changelog +## 2019-0X-XX FreshRSS 1.13.2-dev + + ## 2019-01-26 FreshRSS 1.13.1 * Features diff --git a/constants.php b/constants.php index 8a49d7c01f9..2072e5ea1dc 100644 --- a/constants.php +++ b/constants.php @@ -2,7 +2,7 @@ //NB: Do not edit; use ./constants.local.php instead. // -define('FRESHRSS_VERSION', '1.13.1'); +define('FRESHRSS_VERSION', '1.13.2-dev'); define('FRESHRSS_WEBSITE', 'https://freshrss.org'); define('FRESHRSS_WIKI', 'https://freshrss.github.io/FreshRSS/'); From 65602ab1935270f25b84108db723b1dae0868eed Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 31 Jan 2019 23:00:29 +0100 Subject: [PATCH 09/59] Case insensitive Authorization https://github.com/FreshRSS/FreshRSS/issues/2233 --- p/api/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p/api/.htaccess b/p/api/.htaccess index 937983ec90d..2bd6b1d142e 100644 --- a/p/api/.htaccess +++ b/p/api/.htaccess @@ -1,5 +1,5 @@ - SetEnvIf "^Authorization$" "(.*)" HTTP_AUTHORIZATION=$1 + SetEnvIfNoCase "^Authorization$" "(.*)" HTTP_AUTHORIZATION=$1 From 5bd3d92b9f1abad9f27cbe7fc138a328f8dbaa6f Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 3 Feb 2019 12:30:34 +0100 Subject: [PATCH 10/59] Alpine 3.9 PHP 7.2.14, Apache 2.4.38 https://alpinelinux.org/posts/Alpine-3.9.0-released.html --- CHANGELOG.md | 3 +++ Docker/Dockerfile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 685be5a6206..5a79e47dc90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 2019-0X-XX FreshRSS 1.13.2-dev +* Deployment + * Docker image updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) + ## 2019-01-26 FreshRSS 1.13.1 diff --git a/Docker/Dockerfile b/Docker/Dockerfile index a4be9fd84d1..cd0f521a0c7 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.8 +FROM alpine:3.9 ENV TZ UTC From 85a95aa0ddd438c4e12e56865093f00354147f69 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 3 Feb 2019 12:47:39 +0100 Subject: [PATCH 11/59] Changelog 2233 2234 https://github.com/FreshRSS/FreshRSS/issues/2233 https://github.com/FreshRSS/FreshRSS/pull/2235 https://github.com/FreshRSS/FreshRSS/pull/2234 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a79e47dc90..9f9a10d70d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## 2019-0X-XX FreshRSS 1.13.2-dev +* Bug fixing + * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) +* UI + * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) + * Rewrite some jQuery code as native JavaScript [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Deployment * Docker image updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) From 9cc72c0c4860c96d9d82310e4bb76a9233fd2961 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 3 Feb 2019 21:24:06 +0100 Subject: [PATCH 12/59] Fix EntryDAO tags warning for Fever API https://github.com/FreshRSS/FreshRSS/issues/2239 --- app/Models/EntryDAO.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index 21f17c097ff..93d1183c99c 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -1065,7 +1065,7 @@ public static function daoToEntry($dao) { $dao['date'], $dao['is_read'], $dao['is_favorite'], - $dao['tags'] + isset($dao['tags']) ? $dao['tags'] : '' ); if (isset($dao['id'])) { $entry->_id($dao['id']); From e4224eee2ee8ebc96db34fb70ac225880911477d Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 3 Feb 2019 21:34:44 +0100 Subject: [PATCH 13/59] Changelog 2239 https://github.com/FreshRSS/FreshRSS/issues/2239 https://github.com/FreshRSS/FreshRSS/pull/2240 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f9a10d70d8..db1873ab0f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * Bug fixing * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) + * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) * UI * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) * Rewrite some jQuery code as native JavaScript [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) From ce62ce0ebd562781307d137141e38338882f89ab Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 5 Feb 2019 09:30:18 +0100 Subject: [PATCH 14/59] Fever API encoding of special chars https://github.com/FreshRSS/FreshRSS/issues/2241 --- p/api/fever.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/p/api/fever.php b/p/api/fever.php index dd54a372b9e..d315523c43d 100644 --- a/p/api/fever.php +++ b/p/api/fever.php @@ -324,9 +324,9 @@ protected function getFeeds() $feeds[] = array( 'id' => $feed->id(), 'favicon_id' => $feed->id(), - 'title' => $feed->name(), - 'url' => $feed->url(), - 'site_url' => $feed->website(), + 'title' => escapeToUnicodeAlternative($feed->name(), true), + 'url' => htmlspecialchars_decode($feed->url(), ENT_QUOTES), + 'site_url' => htmlspecialchars_decode($feed->website(), ENT_QUOTES), 'is_spark' => 0, // unsupported 'last_updated_on_time' => $feed->lastUpdate(), ); @@ -349,7 +349,7 @@ protected function getGroups() foreach ($categories as $category) { $groups[] = array( 'id' => $category->id(), - 'title' => $category->name(), + 'title' => escapeToUnicodeAlternative($category->name(), false), ); } @@ -535,10 +535,10 @@ protected function getItems() $items[] = array( 'id' => $entry->id(), 'feed_id' => $entry->feed(false), - 'title' => $entry->title(), - 'author' => $entry->authors(true), + 'title' => escapeToUnicodeAlternative($entry->title(), true), + 'author' => escapeToUnicodeAlternative($entry->authors(true), true), 'html' => $entry->content(), - 'url' => $entry->link(), + 'url' => htmlspecialchars_decode($entry->link(), ENT_QUOTES), 'is_saved' => $entry->isFavorite() ? 1 : 0, 'is_read' => $entry->isRead() ? 1 : 0, 'created_on_time' => $entry->date(true), From 69eb651d56e7fa9bf742f60366cdb10f769246e3 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 5 Feb 2019 09:36:39 +0100 Subject: [PATCH 15/59] Minor Unicode changes --- p/api/fever.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/p/api/fever.php b/p/api/fever.php index d315523c43d..30f9651a30d 100644 --- a/p/api/fever.php +++ b/p/api/fever.php @@ -349,7 +349,7 @@ protected function getGroups() foreach ($categories as $category) { $groups[] = array( 'id' => $category->id(), - 'title' => escapeToUnicodeAlternative($category->name(), false), + 'title' => escapeToUnicodeAlternative($category->name(), true), ); } @@ -535,8 +535,8 @@ protected function getItems() $items[] = array( 'id' => $entry->id(), 'feed_id' => $entry->feed(false), - 'title' => escapeToUnicodeAlternative($entry->title(), true), - 'author' => escapeToUnicodeAlternative($entry->authors(true), true), + 'title' => escapeToUnicodeAlternative($entry->title(), false), + 'author' => escapeToUnicodeAlternative($entry->authors(true), false), 'html' => $entry->content(), 'url' => htmlspecialchars_decode($entry->link(), ENT_QUOTES), 'is_saved' => $entry->isFavorite() ? 1 : 0, From 3b3accf6ce5d29449ee4d556b6277d92a1830680 Mon Sep 17 00:00:00 2001 From: Seokseong Jeon <6747391+gsongsong@users.noreply.github.com> Date: Tue, 5 Feb 2019 23:05:40 +0900 Subject: [PATCH 16/59] i18n Korean (#2242) --- app/i18n/kr/admin.php | 8 ++++---- app/i18n/kr/conf.php | 6 +++--- app/i18n/kr/feedback.php | 4 ++-- app/i18n/kr/gen.php | 12 ++++++------ app/i18n/kr/index.php | 6 +++--- app/i18n/kr/install.php | 4 ++-- app/i18n/kr/sub.php | 10 +++++----- cli/i18n/ignore/kr.php | 16 ++++++++++++++++ 8 files changed, 41 insertions(+), 25 deletions(-) diff --git a/app/i18n/kr/admin.php b/app/i18n/kr/admin.php index 532fe30a57c..6312bd3feee 100644 --- a/app/i18n/kr/admin.php +++ b/app/i18n/kr/admin.php @@ -67,8 +67,8 @@ 'ok' => 'JSON 확장 기능이 설치되어 있습니다.', ), 'mbstring' => array( - 'nok' => 'Cannot find the recommended library mbstring for Unicode.', //TODO - Translation - 'ok' => 'You have the recommended library mbstring for Unicode.', //TODO - Translation + 'nok' => '유니코드 지원을 위한 mbstring 라이브러리를 찾을 수 없습니다.', + 'ok' => '유니코드 지원을 위한 mbstring 라이브러리가 설치되어 있습니다.', ), 'minz' => array( 'nok' => 'Minz 프레임워크를 찾을 수 없습니다.', @@ -163,8 +163,8 @@ 'max-categories' => '사용자별 카테고리 개수 제한', 'max-feeds' => '사용자별 피드 개수 제한', 'cookie-duration' => array( - 'help' => 'in seconds', // @todo translate - 'number' => 'Duration to keep logged in', // @todo translate + 'help' => '초', + 'number' => '로그인 유지 시간', ), 'registration' => array( 'help' => '0: 제한 없음', diff --git a/app/i18n/kr/conf.php b/app/i18n/kr/conf.php index 5c3d95d1797..11a8494c500 100644 --- a/app/i18n/kr/conf.php +++ b/app/i18n/kr/conf.php @@ -162,7 +162,7 @@ 'mark_read' => '읽음으로 표시', 'navigation' => '탐색', 'navigation_help' => '"Shift" 키를 누른 상태에선 탐색 단축키가 피드에 적용됩니다.
    "Alt" 키를 누른 상태에선 탐색 단축키가 카테고리에 적용됩니다.', - 'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.', //TODO - Translation + 'navigation_no_mod_help' => '아래 탐색 단축키에는 "Shift"와 "Alt" 키가 적용되지 않습니다.', 'next_article' => '다음 글 보기', 'normal_view' => '일반 모드로 전환', 'other_action' => '다른 동작', @@ -171,8 +171,8 @@ 'rss_view' => '새 탭에서 RSS 피드 열기', 'see_on_website' => '글이 게재된 웹사이트에서 보기', 'shift_for_all_read' => '+ shift를 누른 상태에선 모두 읽음으로 표시', - 'skip_next_article' => 'Focus next without opening', //TODO - Translation - 'skip_previous_article' => 'Focus previous without opening', //TODO - Translation + 'skip_next_article' => '다음 글로 커서 이동', + 'skip_previous_article' => '이전 글로 커서 이동', 'title' => '단축키', 'user_filter' => '사용자 필터 사용하기', 'user_filter_help' => '사용자 필터가 하나만 설정되어 있다면 해당 필터를 사용하고, 그렇지 않다면 필터를 번호로 선택할 수 있습니다.', diff --git a/app/i18n/kr/feedback.php b/app/i18n/kr/feedback.php index 5509048942a..0e31536f85e 100644 --- a/app/i18n/kr/feedback.php +++ b/app/i18n/kr/feedback.php @@ -57,8 +57,8 @@ 'sub' => array( 'actualize' => '피드를 가져오는 중입니다', 'articles' => array( - 'marked_read' => 'The selected articles have been marked as read.', //TODO - Translation - 'marked_unread' => 'The articles have been marked as unread.', //TODO - Translation + 'marked_read' => '선택된 글들을 읽음으로 표시하였습니다.', + 'marked_unread' => '선택된 글들을 읽지 않음으로 표시하였습니다.', ), 'category' => array( 'created' => '%s 카테고리가 생성되었습니다.', diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php index 86a50e9c442..f7855c49924 100644 --- a/app/i18n/kr/gen.php +++ b/app/i18n/kr/gen.php @@ -152,13 +152,13 @@ 'user_profile' => '프로필', ), 'pagination' => array( - 'first' => 'First', - 'last' => 'Last', + 'first' => '처음으로', + 'last' => '마지막으로', 'load_more' => '글 더 불러오기', 'mark_all_read' => '모두 읽음으로 표시', - 'next' => 'Next', + 'next' => '다음', 'nothing_to_load' => '더 이상 글이 없습니다', - 'previous' => 'Previous', + 'previous' => '이전', ), 'share' => array( 'blogotext' => 'Blogotext', @@ -183,13 +183,13 @@ 'short' => array( 'attention' => '경고!', 'blank_to_disable' => '빈 칸으로 두면 비활성화', - 'by_author' => 'By:', + 'by_author' => '글쓴이:', 'by_default' => '기본값', 'damn' => '이런!', 'default_category' => '분류 없음', 'no' => '아니요', 'not_applicable' => '사용할 수 없음', - 'ok' => 'Ok!', + 'ok' => '좋습니다!', 'or' => '또는', 'yes' => '네', ), diff --git a/app/i18n/kr/index.php b/app/i18n/kr/index.php index 3c63fd664ea..bebc8bdec44 100644 --- a/app/i18n/kr/index.php +++ b/app/i18n/kr/index.php @@ -40,7 +40,7 @@ 'mark_all_read' => '모두 읽음으로 표시', 'mark_cat_read' => '카테고리를 읽음으로 표시', 'mark_feed_read' => '피드를 읽음으로 표시', - 'mark_selection_unread' => 'Mark selection as unread', //TODO - Translation + 'mark_selection_unread' => '선택된 글을 읽지 않음으로 표시', 'newer_first' => '최근 글 먼저', 'non-starred' => '즐겨찾기를 제외하고 표시', 'normal_view' => '일반 모드', @@ -53,11 +53,11 @@ 'starred' => '즐겨찾기만 표시', 'stats' => '통계', 'subscription' => '구독 관리', - 'tags' => 'My labels', //TODO - Translation + 'tags' => '내 라벨', 'unread' => '읽지 않은 글만 표시', ), 'share' => '공유', 'tag' => array( - 'related' => '관련 태그', //TODO - Translation + 'related' => '관련 태그', ), ); diff --git a/app/i18n/kr/install.php b/app/i18n/kr/install.php index 6b60f6ffd9b..65e8726e198 100644 --- a/app/i18n/kr/install.php +++ b/app/i18n/kr/install.php @@ -69,8 +69,8 @@ 'ok' => 'JSON 확장 기능이 설치되어 있습니다.', ), 'mbstring' => array( - 'nok' => 'Cannot find the recommended library mbstring for Unicode.', //TODO - Translation - 'ok' => 'You have the recommended library mbstring for Unicode.', //TODO - Translation + 'nok' => '유니코드 지원을 위한 mbstring 라이브러리를 찾을 수 없습니다.', + 'ok' => '유니코드 지원을 위한 mbstring 라이브러리가 설치되어 있습니다.', ), 'minz' => array( 'nok' => 'Minz 프레임워크를 찾을 수 없습니다.', diff --git a/app/i18n/kr/sub.php b/app/i18n/kr/sub.php index 9f89670532e..9edd8581877 100644 --- a/app/i18n/kr/sub.php +++ b/app/i18n/kr/sub.php @@ -27,7 +27,7 @@ 'password' => 'HTTP 암호', 'username' => 'HTTP 사용자 이름', ), - 'clear_cache' => 'Always clear cache', //TODO - Translation + 'clear_cache' => '항상 캐시 지우기', 'css_help' => '글의 일부가 포함된 RSS 피드를 가져옵니다 (주의, 시간이 좀 더 걸립니다!)', 'css_path' => '웹사이트 상의 글 본문에 해당하는 CSS 경로', 'description' => '설명', @@ -47,11 +47,11 @@ ), 'websub' => 'WebSub을 사용한 즉시 알림', 'show' => array( - 'all' => 'Show all feeds', //TODO - Translation - 'error' => 'Show only feeds with error', //TODO - Translation + 'all' => '모든 피드 보기', + 'error' => '오류가 발생한 피드만 보기', ), 'showing' => array( - 'error' => 'Showing only feeds with error', //TODO - Translation + 'error' => '오류가 발생한 피드만 보여주고 있습니다', ), 'ssl_verify' => 'SSL 유효성 검사', 'stats' => '통계', @@ -72,7 +72,7 @@ 'export' => '내보내기', 'export_opml' => '피드 목록 내보내기 (OPML)', 'export_starred' => '즐겨찾기 내보내기', - 'export_labelled' => 'Export your labelled articles', //TODO + 'export_labelled' => '라벨이 표시된 글들 내보내기', 'feed_list' => '%s 개의 글 목록', 'file_to_import' => '불러올 파일
    (OPML, JSON 또는 ZIP)', 'file_to_import_no_zip' => '불러올 파일
    (OPML 또는 JSON)', diff --git a/cli/i18n/ignore/kr.php b/cli/i18n/ignore/kr.php index 24cfbc86a92..bbccb2d7d2d 100644 --- a/cli/i18n/ignore/kr.php +++ b/cli/i18n/ignore/kr.php @@ -8,6 +8,18 @@ 'conf.sharing.shaarli', 'conf.sharing.twitter', 'conf.sharing.wallabag', + 'gen.date.Apr', + 'gen.date.Aug', + 'gen.date.Dec', + 'gen.date.Feb', + 'gen.date.Jan', + 'gen.date.Jul', + 'gen.date.Jun', + 'gen.date.Mar', + 'gen.date.May', + 'gen.date.Nov', + 'gen.date.Oct', + 'gen.date.Sep', 'gen.lang.cz', 'gen.lang.de', 'gen.lang.en', @@ -17,6 +29,7 @@ 'gen.lang.it', 'gen.lang.kr', 'gen.lang.nl', + 'gen.lang.oc', 'gen.lang.pt-br', 'gen.lang.ru', 'gen.lang.tr', @@ -29,8 +42,11 @@ 'gen.share.g+', 'gen.share.gnusocial', 'gen.share.jdh', + 'gen.share.linkedin', 'gen.share.mastodon', 'gen.share.movim', + 'gen.share.pinboard', + 'gen.share.pocket', 'gen.share.shaarli', 'gen.share.twitter', 'gen.share.wallabag', From 086fa0d49a5e1506fda4dda42c5c69fd3a624ecf Mon Sep 17 00:00:00 2001 From: Thomas Guesnon Date: Wed, 13 Feb 2019 11:37:37 +0100 Subject: [PATCH 17/59] Two themes (#2245) * Two new themes * update gitignore * dirs cleaning + mobile ui improvements * name added to credits file * New line --- .gitignore | 2 + CREDITS.md | 1 + p/themes/Ansum/_components.scss | 352 ++++++ p/themes/Ansum/_configuration.scss | 90 ++ p/themes/Ansum/_divers.scss | 12 + p/themes/Ansum/_fonts.scss | 56 + p/themes/Ansum/_forms.scss | 153 +++ p/themes/Ansum/_global-view.scss | 80 ++ p/themes/Ansum/_layout.scss | 462 +++++++ p/themes/Ansum/_list-view.scss | 92 ++ p/themes/Ansum/_logs.scss | 34 + p/themes/Ansum/_mixins.scss | 57 + p/themes/Ansum/_mobile.scss | 170 +++ p/themes/Ansum/_reader-view.scss | 13 + p/themes/Ansum/_sidebar.scss | 299 +++++ p/themes/Ansum/_stats.scss | 27 + p/themes/Ansum/_tables.scss | 17 + p/themes/Ansum/_variables.scss | 53 + p/themes/Ansum/ansum.css | 1299 +++++++++++++++++++ p/themes/Ansum/ansum.css.map | 7 + p/themes/Ansum/ansum.scss | 51 + p/themes/Ansum/icons/cog-white.svg | 5 + p/themes/Ansum/icons/cog.svg | 59 + p/themes/Ansum/icons/down-white.svg | 59 + p/themes/Ansum/icons/down.svg | 59 + p/themes/Ansum/icons/icon.svg | 75 ++ p/themes/Ansum/icons/link-white.svg | 59 + p/themes/Ansum/icons/link.svg | 5 + p/themes/Ansum/icons/magnifier.svg | 5 + p/themes/Ansum/icons/more.svg | 59 + p/themes/Ansum/icons/non-starred-white.svg | 61 + p/themes/Ansum/icons/non-starred.svg | 60 + p/themes/Ansum/icons/read-grey.svg | 5 + p/themes/Ansum/icons/read-white.svg | 59 + p/themes/Ansum/icons/read.svg | 59 + p/themes/Ansum/icons/refresh.svg | 59 + p/themes/Ansum/icons/rss-white.svg | 60 + p/themes/Ansum/icons/rss.svg | 60 + p/themes/Ansum/icons/starred-white.svg | 59 + p/themes/Ansum/icons/starred.svg | 5 + p/themes/Ansum/icons/tick-color.svg | 57 + p/themes/Ansum/icons/tick-white.svg | 5 + p/themes/Ansum/icons/tick.svg | 5 + p/themes/Ansum/icons/unread-grey.svg | 59 + p/themes/Ansum/icons/unread-white.svg | 5 + p/themes/Ansum/icons/unread.svg | 59 + p/themes/Ansum/icons/up-white.svg | 59 + p/themes/Ansum/icons/up.svg | 59 + p/themes/Ansum/icons/view-global-white.svg | 5 + p/themes/Ansum/icons/view-global.svg | 59 + p/themes/Ansum/icons/view-list-white.svg | 5 + p/themes/Ansum/icons/view-list.svg | 60 + p/themes/Ansum/icons/view-reader-white.svg | 59 + p/themes/Ansum/icons/view-reader.svg | 59 + p/themes/Ansum/loader.gif | Bin 0 -> 4251 bytes p/themes/Ansum/metadata.json | 7 + p/themes/Ansum/sass.sh | 1 + p/themes/Ansum/thumbs/original.png | Bin 0 -> 182930 bytes p/themes/Mapco/_components.scss | 352 ++++++ p/themes/Mapco/_configuration.scss | 90 ++ p/themes/Mapco/_divers.scss | 12 + p/themes/Mapco/_fonts.scss | 56 + p/themes/Mapco/_forms.scss | 153 +++ p/themes/Mapco/_global-view.scss | 80 ++ p/themes/Mapco/_layout.scss | 462 +++++++ p/themes/Mapco/_list-view.scss | 92 ++ p/themes/Mapco/_logs.scss | 34 + p/themes/Mapco/_mixins.scss | 59 + p/themes/Mapco/_mobile.scss | 169 +++ p/themes/Mapco/_reader-view.scss | 13 + p/themes/Mapco/_sidebar.scss | 291 +++++ p/themes/Mapco/_stats.scss | 27 + p/themes/Mapco/_tables.scss | 17 + p/themes/Mapco/_variables.scss | 53 + p/themes/Mapco/icons/cog-white.svg | 5 + p/themes/Mapco/icons/cog.svg | 59 + p/themes/Mapco/icons/down-white.svg | 59 + p/themes/Mapco/icons/down.svg | 59 + p/themes/Mapco/icons/icon.svg | 9 + p/themes/Mapco/icons/link-white.svg | 59 + p/themes/Mapco/icons/link.svg | 5 + p/themes/Mapco/icons/magnifier.svg | 5 + p/themes/Mapco/icons/more.svg | 59 + p/themes/Mapco/icons/non-starred-white.svg | 61 + p/themes/Mapco/icons/non-starred.svg | 60 + p/themes/Mapco/icons/read-grey.svg | 5 + p/themes/Mapco/icons/read-white.svg | 59 + p/themes/Mapco/icons/read.svg | 59 + p/themes/Mapco/icons/refresh.svg | 59 + p/themes/Mapco/icons/rss-white.svg | 60 + p/themes/Mapco/icons/rss.svg | 60 + p/themes/Mapco/icons/starred-white.svg | 59 + p/themes/Mapco/icons/starred.svg | 5 + p/themes/Mapco/icons/tick-color.svg | 5 + p/themes/Mapco/icons/tick-white.svg | 5 + p/themes/Mapco/icons/tick.svg | 5 + p/themes/Mapco/icons/unread-grey.svg | 59 + p/themes/Mapco/icons/unread-white.svg | 5 + p/themes/Mapco/icons/unread.svg | 59 + p/themes/Mapco/icons/up-white.svg | 59 + p/themes/Mapco/icons/up.svg | 59 + p/themes/Mapco/icons/view-global-white.svg | 5 + p/themes/Mapco/icons/view-global.svg | 59 + p/themes/Mapco/icons/view-list-white.svg | 5 + p/themes/Mapco/icons/view-list.svg | 60 + p/themes/Mapco/icons/view-reader-white.svg | 59 + p/themes/Mapco/icons/view-reader.svg | 59 + p/themes/Mapco/loader.gif | Bin 0 -> 4251 bytes p/themes/Mapco/mapco.css | 1306 ++++++++++++++++++++ p/themes/Mapco/mapco.css.map | 7 + p/themes/Mapco/mapco.scss | 51 + p/themes/Mapco/metadata.json | 7 + p/themes/Mapco/sass.sh | 1 + p/themes/Mapco/thumbs/original.png | Bin 0 -> 171346 bytes p/themes/fonts/LatoLatin-Bold.woff | Bin 0 -> 72376 bytes p/themes/fonts/LatoLatin-BoldItalic.woff | Bin 0 -> 73700 bytes p/themes/fonts/LatoLatin-Italic.woff | Bin 0 -> 74708 bytes p/themes/fonts/LatoLatin-Regular.woff | Bin 0 -> 72456 bytes p/themes/fonts/Spectral-Bold.woff | Bin 0 -> 80168 bytes p/themes/fonts/Spectral-BoldItalic.woff | Bin 0 -> 81240 bytes p/themes/fonts/Spectral-Italic.woff | Bin 0 -> 77436 bytes p/themes/fonts/Spectral-Regular.woff | Bin 0 -> 76188 bytes 122 files changed, 9403 insertions(+) create mode 100644 p/themes/Ansum/_components.scss create mode 100644 p/themes/Ansum/_configuration.scss create mode 100644 p/themes/Ansum/_divers.scss create mode 100644 p/themes/Ansum/_fonts.scss create mode 100644 p/themes/Ansum/_forms.scss create mode 100644 p/themes/Ansum/_global-view.scss create mode 100644 p/themes/Ansum/_layout.scss create mode 100644 p/themes/Ansum/_list-view.scss create mode 100644 p/themes/Ansum/_logs.scss create mode 100644 p/themes/Ansum/_mixins.scss create mode 100644 p/themes/Ansum/_mobile.scss create mode 100644 p/themes/Ansum/_reader-view.scss create mode 100644 p/themes/Ansum/_sidebar.scss create mode 100644 p/themes/Ansum/_stats.scss create mode 100644 p/themes/Ansum/_tables.scss create mode 100644 p/themes/Ansum/_variables.scss create mode 100644 p/themes/Ansum/ansum.css create mode 100644 p/themes/Ansum/ansum.css.map create mode 100644 p/themes/Ansum/ansum.scss create mode 100644 p/themes/Ansum/icons/cog-white.svg create mode 100644 p/themes/Ansum/icons/cog.svg create mode 100644 p/themes/Ansum/icons/down-white.svg create mode 100644 p/themes/Ansum/icons/down.svg create mode 100644 p/themes/Ansum/icons/icon.svg create mode 100644 p/themes/Ansum/icons/link-white.svg create mode 100644 p/themes/Ansum/icons/link.svg create mode 100644 p/themes/Ansum/icons/magnifier.svg create mode 100644 p/themes/Ansum/icons/more.svg create mode 100644 p/themes/Ansum/icons/non-starred-white.svg create mode 100644 p/themes/Ansum/icons/non-starred.svg create mode 100644 p/themes/Ansum/icons/read-grey.svg create mode 100644 p/themes/Ansum/icons/read-white.svg create mode 100644 p/themes/Ansum/icons/read.svg create mode 100644 p/themes/Ansum/icons/refresh.svg create mode 100644 p/themes/Ansum/icons/rss-white.svg create mode 100644 p/themes/Ansum/icons/rss.svg create mode 100644 p/themes/Ansum/icons/starred-white.svg create mode 100644 p/themes/Ansum/icons/starred.svg create mode 100644 p/themes/Ansum/icons/tick-color.svg create mode 100644 p/themes/Ansum/icons/tick-white.svg create mode 100644 p/themes/Ansum/icons/tick.svg create mode 100644 p/themes/Ansum/icons/unread-grey.svg create mode 100644 p/themes/Ansum/icons/unread-white.svg create mode 100644 p/themes/Ansum/icons/unread.svg create mode 100644 p/themes/Ansum/icons/up-white.svg create mode 100644 p/themes/Ansum/icons/up.svg create mode 100644 p/themes/Ansum/icons/view-global-white.svg create mode 100644 p/themes/Ansum/icons/view-global.svg create mode 100644 p/themes/Ansum/icons/view-list-white.svg create mode 100644 p/themes/Ansum/icons/view-list.svg create mode 100644 p/themes/Ansum/icons/view-reader-white.svg create mode 100644 p/themes/Ansum/icons/view-reader.svg create mode 100644 p/themes/Ansum/loader.gif create mode 100644 p/themes/Ansum/metadata.json create mode 100644 p/themes/Ansum/sass.sh create mode 100644 p/themes/Ansum/thumbs/original.png create mode 100644 p/themes/Mapco/_components.scss create mode 100644 p/themes/Mapco/_configuration.scss create mode 100644 p/themes/Mapco/_divers.scss create mode 100644 p/themes/Mapco/_fonts.scss create mode 100644 p/themes/Mapco/_forms.scss create mode 100644 p/themes/Mapco/_global-view.scss create mode 100644 p/themes/Mapco/_layout.scss create mode 100644 p/themes/Mapco/_list-view.scss create mode 100644 p/themes/Mapco/_logs.scss create mode 100644 p/themes/Mapco/_mixins.scss create mode 100644 p/themes/Mapco/_mobile.scss create mode 100644 p/themes/Mapco/_reader-view.scss create mode 100644 p/themes/Mapco/_sidebar.scss create mode 100644 p/themes/Mapco/_stats.scss create mode 100644 p/themes/Mapco/_tables.scss create mode 100644 p/themes/Mapco/_variables.scss create mode 100644 p/themes/Mapco/icons/cog-white.svg create mode 100644 p/themes/Mapco/icons/cog.svg create mode 100644 p/themes/Mapco/icons/down-white.svg create mode 100644 p/themes/Mapco/icons/down.svg create mode 100644 p/themes/Mapco/icons/icon.svg create mode 100644 p/themes/Mapco/icons/link-white.svg create mode 100644 p/themes/Mapco/icons/link.svg create mode 100644 p/themes/Mapco/icons/magnifier.svg create mode 100644 p/themes/Mapco/icons/more.svg create mode 100644 p/themes/Mapco/icons/non-starred-white.svg create mode 100644 p/themes/Mapco/icons/non-starred.svg create mode 100644 p/themes/Mapco/icons/read-grey.svg create mode 100644 p/themes/Mapco/icons/read-white.svg create mode 100644 p/themes/Mapco/icons/read.svg create mode 100644 p/themes/Mapco/icons/refresh.svg create mode 100644 p/themes/Mapco/icons/rss-white.svg create mode 100644 p/themes/Mapco/icons/rss.svg create mode 100644 p/themes/Mapco/icons/starred-white.svg create mode 100644 p/themes/Mapco/icons/starred.svg create mode 100644 p/themes/Mapco/icons/tick-color.svg create mode 100644 p/themes/Mapco/icons/tick-white.svg create mode 100644 p/themes/Mapco/icons/tick.svg create mode 100644 p/themes/Mapco/icons/unread-grey.svg create mode 100644 p/themes/Mapco/icons/unread-white.svg create mode 100644 p/themes/Mapco/icons/unread.svg create mode 100644 p/themes/Mapco/icons/up-white.svg create mode 100644 p/themes/Mapco/icons/up.svg create mode 100644 p/themes/Mapco/icons/view-global-white.svg create mode 100644 p/themes/Mapco/icons/view-global.svg create mode 100644 p/themes/Mapco/icons/view-list-white.svg create mode 100644 p/themes/Mapco/icons/view-list.svg create mode 100644 p/themes/Mapco/icons/view-reader-white.svg create mode 100644 p/themes/Mapco/icons/view-reader.svg create mode 100644 p/themes/Mapco/loader.gif create mode 100644 p/themes/Mapco/mapco.css create mode 100644 p/themes/Mapco/mapco.css.map create mode 100644 p/themes/Mapco/mapco.scss create mode 100644 p/themes/Mapco/metadata.json create mode 100644 p/themes/Mapco/sass.sh create mode 100644 p/themes/Mapco/thumbs/original.png create mode 100644 p/themes/fonts/LatoLatin-Bold.woff create mode 100644 p/themes/fonts/LatoLatin-BoldItalic.woff create mode 100644 p/themes/fonts/LatoLatin-Italic.woff create mode 100644 p/themes/fonts/LatoLatin-Regular.woff create mode 100644 p/themes/fonts/Spectral-Bold.woff create mode 100644 p/themes/fonts/Spectral-BoldItalic.woff create mode 100644 p/themes/fonts/Spectral-Italic.woff create mode 100644 p/themes/fonts/Spectral-Regular.woff diff --git a/.gitignore b/.gitignore index 8230b746c8e..62b1bcbdfef 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ constants.local.php *.save *.autosav *.autosave +*.sass-cache +sass.sh diff --git a/CREDITS.md b/CREDITS.md index 83bb97a25b9..ff3f64127e8 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -64,6 +64,7 @@ People are sorted by name so please keep this order. * [Thomas Citharel](https://github.com/tcitworld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomgue), [Web](https://www.tcit.fr/) * [thomas-gt](https://github.com/thomas-gt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:thomas-gt) * [tomgue](https://github.com/tomgue): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=tomgue) +* [Thomas Guesnon](https://github.com/patjennings): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:patjennings), [Web](http://www.thomasguesnon.fr/) * [Twilek-de](https://github.com/Twilek-de): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Twilek-de) * [Uncovery](https://github.com/uncovery): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:uncovery) * [Wanabo](https://github.com/Wanabo): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=Wanabo) diff --git a/p/themes/Ansum/_components.scss b/p/themes/Ansum/_components.scss new file mode 100644 index 00000000000..cf8cb5e9180 --- /dev/null +++ b/p/themes/Ansum/_components.scss @@ -0,0 +1,352 @@ +/*=== COMPONENTS */ +/*===============*/ +/*=== Forms */ +// parti dans _forms.scss + +/*=== Horizontal-list */ +.horizontal-list { + margin: 0; + padding: 0.1rem 0; + + .item{ + vertical-align: middle; + + &:first-child{ + padding-left: 0.5rem; + } + + } +} + +/*=== Dropdown */ +.dropdown-menu { + background: $grey-lighter; + margin: 0; + font-size: 1rem; + text-align: left; + padding: 0.5rem 0 1rem 0; + border: none; + border-radius: 3px; + + -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + + &::after { + content: ""; + position: absolute; + top: -4px; + right: 13px; + width: 10px; + height: 10px; + z-index: -10; + transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + background: white; + // border-top: 1px solid #95a5a6; + // border-left: 1px solid #95a5a6; + } + + .dropdown-header { + // padding: 0 5px 5px; + margin: 1.75rem 0 0.5rem 2rem; + font-weight: bold; + text-align: left; + color: $grey-dark; + text-transform: uppercase; + letter-spacing: 1px; + + + } + + .item{ + @include transition(all, 0.075s, ease-in-out); + a, span, .as-link{ + padding: 0 2rem; + line-height: 2.5em; + font-size: 1rem; + color: $main-font-color; + } + &:hover{ + background: $main-first; + color: $white; + + a, button{ + text-decoration: none; + color: $white; + } + } + &[aria-checked="true"]{ + a::before{ + font-weight: bold; + margin: 0 0 0 -14px; + } + } + } + .input{ + select, input{ + margin: 0 auto 5px; + padding: 2px 5px; + border-radius: 3px; + } + } + .separator { + margin: 0.75rem 0; + border-bottom: 1px solid $grey-light; + // display: none; + } + +} +.tree .tree-folder .tree-folder-items .dropdown-menu, +.tree .tree-folder .tree-folder-items .dropdown-menu{ + // tout ça sert à restaurer l'apparence du dropdown dans un contexte de sidebar sombre + + .item{ + padding: 0; + + a, + button{ + color: $main-font-color; + + &:hover{ + color: $white; + } + } + &:hover{ + background: $main-first; + } + } +} + + + + +/*=== Alerts */ +.alert { + margin: 1rem 0; + // width: 100%; + padding: 1rem; + font-size: 1rem; + background: $grey-lighter; + border: 1px solid $grey-medium; + border-radius: 3px; + color: $grey-dark; + text-shadow: 0 0 1px $grey-light; +} +.alert-head { + font-size: 1.15em; +} +.alert > a { + text-decoration: underline; + color: inherit; +} +.alert-warn { + background: $warning-light; + border: 1px solid unquote($warning-text+'33'); // on ajoute l'opacité à la fin + color: $warning-text; +} +.alert-success { + background: $success-light; + border: 1px solid unquote($success-text+'33'); + color: $success-text; +} +.alert-error { + background: $alert-light; + border: 1px solid unquote($alert-text+'33'); + color: $alert-text; +} + +/*=== Pagination */ +.pagination { + text-align: center; + font-size: 0.8em; + background: $grey-light; + color: $main-font-color; + + .item{ + &.pager-current { + font-weight: bold; + font-size: 1.5em; + background: $sid-bg; + color: $grey-light; + } + a { + display: block; + font-style: italic; + line-height: 3em; + text-decoration: none; + color: $main-font-color; + + &:hover{ + background: $main-font-color; + color: $grey-light; + } + } + } + + .loading, + a:hover.loading { + font-size: 0; + background: url("loader.gif") center center no-repeat #34495e; + } +} +.content .pagination { + margin: 0; + padding: 0; +} + + +/*=== Boxes */ +.box { + // border: 1px solid #ddd; + border: none; + border-radius: 3px; + background: $white; + + -webkit-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25); + box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25); + + .box-title { + margin: 0; + padding: 5px 10px; + background: $grey-light; + color: $main-font-color; + // border-bottom: 1px solid #ddd; + border-radius: 2px 2px 0 0; + + form{ + input{ + width: 85%; + } + .dropdown{ + float: right; + a.dropdown-toggle{ + padding: 0; + background-image: url(icons/more.svg); + background-repeat: no-repeat; + background-position: right 8px; + // float: right; + border-radius: 0; + img{ + display: none; + } + } + } + } + } + .box-content { + // max-height: 260px; + + .item { + padding: 0.5rem 0.75rem; + font-size: 1rem; + color: $main-font-color; + line-height: 1.7em; + border-bottom: 1px solid $grey-light; + + img{ + margin-right: 0.75rem; + } + + .configure { + visibility: hidden; + width: 1.75rem; + height: 1.75rem; + display: block; + border-radius: 2px; + float: left; + margin-right: 0.5rem; + background: url("icons/cog.svg") no-repeat 4px 4px; + + .icon { + vertical-align: middle; + border-radius: 3px; + display: none; + } + &:hover{ + // background: $main-first; + background: url("icons/cog-white.svg") no-repeat 4px 4px $main-first; + } + } + &:hover .configure { + visibility: visible; + } + } + .item:last-child{ + border-bottom: none; + } + } +} + +/*=== "Load more" part */ +#bigMarkAsRead { + text-align: center; + text-decoration: none; + background: $main-first-light; + color: $main-first; + + @include transition(all, 0.15s, ease-in-out); + + &:hover { + background: $main-first; + color: #fff; + + .bigTick{ + background: url(icons/tick-white.svg) center no-repeat; + } + } + .bigTick{ + margin: 0.5rem 0; + display: inline-block; + text-indent: -9999px; + background: url(icons/tick-color.svg) center no-repeat; + height: 64px; + width: 64px; + white-space: nowrap; + } +} + +// page de login +.formLogin{ + background: $sid-bg; + + .header{ + .configure{ + padding-right: 1rem; + img{ + margin-right: 0.5rem; + } + + a.signin{ + color: $white; + } + } + } + + h1{ + color: $white; + } + form#crypto-form{ + div{ + margin-bottom: 1rem; + + label{ + font-size: 1rem; + color: $grey-medium; + + + } + input{ + background: $main-first-darker; + + &:focus{ + background: $grey-lighter; + color: $main-font-color; + } + } + } + } +} diff --git a/p/themes/Ansum/_configuration.scss b/p/themes/Ansum/_configuration.scss new file mode 100644 index 00000000000..c3c6fd41753 --- /dev/null +++ b/p/themes/Ansum/_configuration.scss @@ -0,0 +1,90 @@ +/*=== Configuration pages */ +.post { + padding: 1rem 2rem; + font-size: 1rem; + + form { + margin: 1rem 0; + + // Gestion des extensions + .horizontal-list{ + margin-bottom: 0.5rem; + + .item{ + .stick{ + // width: 65%; + // margin-right: 1rem; + // display:flex; + + } + .btn{ + // width: 8rem; + // flex-grow: 1; + } + } + + } + } + &.content { + max-width: 550px; + } + + h1, h2{ // pages titles + font-size: 3rem; + margin-top: 1.75rem; + font-weight: 300; + line-height: 1.2em; + // font-family: "spectral"; + color: $main-font-color; + } + + a[href="./"]{ // C'est le bouton "Retour à vos flux" + display: inline-block; + // min-height: 38px; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.75rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: $grey-lighter; + border: 1px solid $grey-medium-light; + border-radius: 5px; + // border: none; + color: $grey-dark; + + &:hover{ + text-decoration: none; + background: $main-first; + color: white; + border: 1px solid $main-first; + } + } + +} + + + +#slider{ + border-left: none; + + -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); +} + +.slide-container{ + .properties{ + background: rgba(0, 0, 0, 0.75); + border: 0; + padding: 1rem; + color: white; + + .page-number{ + right: 1rem; + top: 1rem; + } + } +} diff --git a/p/themes/Ansum/_divers.scss b/p/themes/Ansum/_divers.scss new file mode 100644 index 00000000000..7d122f1b430 --- /dev/null +++ b/p/themes/Ansum/_divers.scss @@ -0,0 +1,12 @@ +/*=== DIVERS */ +/*===========*/ +.aside.aside_feed .nav-form input, +.aside.aside_feed .nav-form select { + width: 140px; +} +.aside.aside_feed .nav-form .dropdown .dropdown-menu { + right: -20px; +} +.aside.aside_feed .nav-form .dropdown .dropdown-menu::after { + right: 33px; +} diff --git a/p/themes/Ansum/_fonts.scss b/p/themes/Ansum/_fonts.scss new file mode 100644 index 00000000000..5891be83469 --- /dev/null +++ b/p/themes/Ansum/_fonts.scss @@ -0,0 +1,56 @@ +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff"); +} +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff"); +} +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff"); +} +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff"); +} diff --git a/p/themes/Ansum/_forms.scss b/p/themes/Ansum/_forms.scss new file mode 100644 index 00000000000..8a388aa8a16 --- /dev/null +++ b/p/themes/Ansum/_forms.scss @@ -0,0 +1,153 @@ +/* btns */ + +.btn { + display: inline-block; + min-height: 38px; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.5rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: $grey-lighter; + border-radius: 5px; + border: none; + color: $grey-dark; + + @include transition(all, 0.15s, ease-in-out); + + &.btn-important { + background: $main-first; + color: $white; + + // @include transition(all, 0.15s, ease-in-out); + + &:hover, + &:active { + background: $main-first-alt; + } + } + + + &.btn-attention { + background: $alert-bg; + color: #fff; + + &:hover, + &:active { + background: $alert-text; + } + } + + &:hover { + text-decoration: none; + } +} + +a.btn { + min-height: 25px; + line-height: 25px; +} + +/*=== Forms */ +legend { + display: inline-block; + width: auto; + margin: 2rem 0 1rem 0; + padding: 0; + font-size: 1rem; + clear: both; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 700; +} +label { + min-height: 25px; + padding: 5px 0; + cursor: pointer; + color: $grey-dark; +} +textarea { + width: 360px; + height: 100px; +} +input, select, textarea, button { + font-family: "lato", "Helvetica", "Arial", sans-serif; + min-height: 25px; + padding: 5px 10px; + line-height: 25px; + vertical-align: middle; + background: $white; + border: 1px solid $grey-light; + font-size: 1rem; + color: $grey-dark; + border-radius: 2px; +} +option { + padding: 0 .5em; +} +input:focus, select:focus, textarea:focus { + color: $main-font-color; + border-color: $main-first; +} +input:invalid, select:invalid { + color: $alert-bg; + border-color: $alert-bg; + box-shadow: none; +} +input:disabled, select:disabled { + background: $grey-light; +} +input.extend { + transition: width 200ms linear; + -moz-transition: width 200ms linear; + -webkit-transition: width 200ms linear; + -o-transition: width 200ms linear; + -ms-transition: width 200ms linear; +} + + +.form-group { + padding: 5px; + border-radius: 3px; + + &::after { + content: ""; + display: block; + clear: both; + } + &:hover { + // background: #fff; + // border: 1px solid #eee; + // border-radius: 3px; + // border: 1px solid #eee; + } + .group-name { + padding: 10px 0; + text-align: right; + } + .group-controls { + min-height: 25px; + padding: 5px 0; + } + .group-controls .control { + line-height: 2.0em; + } + table { + margin: 10px 0 0 220px; + } + + &.form-actions { + margin: 15px 0 25px; + padding: 5px 0; + // background: #333; + } + &.form-actions .btn { + margin: 0 0.5rem 0 0; + } +} + + + diff --git a/p/themes/Ansum/_global-view.scss b/p/themes/Ansum/_global-view.scss new file mode 100644 index 00000000000..30979bd6ce8 --- /dev/null +++ b/p/themes/Ansum/_global-view.scss @@ -0,0 +1,80 @@ +/*=== GLOBAL VIEW */ +/*================*/ + +#stream{ + .box.category{ + + &:not([data-unread="0"]) .box-title { + // background: #3498db; + } + &:not([data-unread="0"]) .box-title:active { + // background: #2980b9; + } + &:not([data-unread="0"]) .box-title .title { + font-weight: bold; + // color: #fff; + } + + .box-title{ + background: none; + padding: 1.5rem; + + a.title{ + font-weight: normal; + text-decoration: none; + text-align: left; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + color: $grey-dark; + + &:not([data-unread="0"])::after { + position: absolute; + top: 1.75rem; + right: 0; + line-height: 1.5rem; + background: $grey-light; + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; + } + &:hover{ + color: $main-first; + } + } + } + + .box-content{ + padding-bottom: 0.5rem; + .item.feed { + // padding: 2px 10px; + font-size: 1rem; + padding: 0.5rem 1.5rem; + + a{ + color: $main-font-color; + font-weight: 400; + + &:hover{ + color: $main-first; + text-decoration: none; + } + } + } + } + } +} + + +// le panel qui apparait en overlay pour afficher les flux +#overlay{ + background: rgba(0, 0, 0, 0.65); +} +#panel{ + top: 3rem; + right: 3rem; + bottom: 3rem; + left: 3rem; + border-radius: 3px; +} diff --git a/p/themes/Ansum/_layout.scss b/p/themes/Ansum/_layout.scss new file mode 100644 index 00000000000..de684504a96 --- /dev/null +++ b/p/themes/Ansum/_layout.scss @@ -0,0 +1,462 @@ +/*=== STRUCTURE */ +/*===============*/ +/*=== Header */ +.header { + background: $sid-bg; + padding: 0.5rem 1.35rem; + display: block; + table-layout: none; + width: auto; + + .item{ + vertical-align: middle; + // text-align: center; + // display: flex; + // justify-content: space-between; + // flex-direction: row; + + &.title{ + + font-weight: 400; + width: 280px; + + h1{ + a{ + text-decoration: none; + color: $sid-font-color; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + + img{ + margin-right: 0.5rem; + + } + } + } + } + &.search{ + // text-align: center; + // width: 50%; + + input{ + width: 230px; + border-radius: 2px 0 0 2px; + background-color: $sid-bg-alt; + color: $sid-font-color; + border: none; + + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background-color: $sid-bg-dark; + } + + &:focus{ + width: 350px; + + background-color: $white; + color: $grey-dark; + } + } + .btn{ + img{display: none;} + border-radius: 0 2px 2px 0; + + background-color: $main-first; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/magnifier.svg); + + border-left-width: 0; + + width: 3rem; + min-height: 35px; + + &:hover{ + background-color: $main-first-alt; + } + } + } + &.configure{ + width: 2rem; + position: absolute; + right: 1rem; + top: 1.25rem; + text-align: center; + // float: right; + + .btn{ + img{display: none;} + // border-radius: 0 2px 2px 0; + + background-color: transparent; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/cog.svg); + + padding: 0 0.5rem; + + // border-left-width: 0; + + // width: 3rem; + + &:hover{ + // background-color: $main-first-alt; + } + } + } + } + + +} + +/*=== Body */ +#global { + height: calc(100% - 85px); +} + + + + +/*=== Prompt (centered) */ +.prompt { + text-align: center; +} +.prompt label { + text-align: left; +} +.prompt form { + margin: 10px auto 20px auto; + width: 200px; +} +.prompt input { + margin: 5px auto; + width: 100%; +} +.prompt p { + margin: 20px 0; +} + +/*=== New article notification */ +#new-article { + text-align: center; + font-size: 1rem; + background: $main-first; +} +#new-article:hover { + background: $main-first-alt; +} +#new-article > a { + line-height: 3em; + font-weight: bold; + color: $white; +} +#new-article > a:hover { + text-decoration: none; +} + +/*=== Day indication */ +.day { + padding: 1rem 0 0 1.25rem; + font-weight: 700; + line-height: 3em; + letter-spacing: 1px; + text-transform: uppercase; + font-size: 0.875rem; + color: $light-font-color; + // border-left: 2px solid #ecf0f1; + + .name{ + padding: 0 1rem 0 1rem; + font-size: 0.875rem; + // font-weight: 700; + color: $main-font-color; + position: relative; + left: 0; + + // letter-spacing: 1px; + text-transform: uppercase; + } +} + +/*=== Index menu */ +.nav_menu { + text-align: center; + padding: 5px 0; + + .btn{ + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: $grey-lighter; + background-position: center; + background-repeat: no-repeat; + + &:hover{ + background-color: $grey-light; + } + } + + .stick{ + background: $grey-lighter; + + .btn{ + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: $grey-lighter; + background-position: center; + background-repeat: no-repeat; + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background-color: $grey-medium-light; + } + + &.active{ + background-color: $main-first; + } + + img.icon{display: none;} // on efface pour afficher nos icones, mouhahaha !! + + + // actions + &#toggle-read{ + background-image: url(icons/read.svg); + } + &#toggle-read.active{ + background-image: url(icons/read-white.svg); + } + + &#toggle-unread{ + background-image: url(icons/unread.svg); + } + &#toggle-unread.active{ + background-image: url(icons/unread-white.svg); + } + + &#toggle-starred{ + background-image: url(icons/starred.svg); + } + &#toggle-starred.active{ + background-image: url(icons/starred-white.svg); + } + + &#toggle-non-starred{ + background-image: url(icons/non-starred.svg); + } + &#toggle-non-starred.active{ + background-image: url(icons/non-starred-white.svg); + } + + // read all + &.read_all{ + background-color: $grey-lighter; + // min-height: 0; + color:$main-font-color; + padding: 5px 16px; + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background-color: $grey-medium-light; + } + } + + // views + &.view-normal{ + background-image: url(icons/view-list.svg); + } + &.view-normal.active{ + background-image: url(icons/view-list-white.svg); + } + + &.view-global{ + background-image: url(icons/view-global.svg); + } + &.view-global.active{ + background-image: url(icons/view-global-white.svg); + } + + &.view-reader{ + background-image: url(icons/view-reader.svg); + } + &.view-reader.active{ + background-image: url(icons/view-reader-white.svg); + } + + &.view-rss{ + background-image: url(icons/rss.svg); + } + + } + .dropdown { + a.dropdown-toggle{ + border-left-width: 0; + background-image: url(icons/more.svg); + } + } + + &#nav_menu_action{ + + } + &#nav_menu_read_all{ + + } + &#nav_menu_views{ + + } + } +} + + +#dropdown-query ~ .dropdown-menu .dropdown-header .icon { + vertical-align: middle; + background-color: $grey-medium-dark; + border-radius: 3px; +} + + +/*=== Content of feed articles */ +.content, .content.thin { + padding: 20px 10px; + + font-size: 1.125rem; + line-height: 1.8rem; + + h1.title, h1{ + + a{ + color: $main-font-color; + font-family: "spectral"; + font-size: 2rem; + + &:hover{ + color: $main-first; + text-decoration: none; + } + } + } + .author{ + font-size: 1.125rem; + color: $light-font-color; + } + p, ul{ + font-size: 1.125rem; + line-height: 1.8rem; + } + hr{ + } + .content hr { + margin: 30px 10px; + height: 1px; + background: $grey-medium-light; + border: 0; + box-shadow: 0 2px 5px #ccc; + } + + pre { + margin: 10px auto; + padding: 10px 20px; + overflow: auto; + background: $main-first-darker; + color: $white; + font-size: 0.9rem; + border-radius: 3px; + + code { + background: transparent; + color: $white; + border: none; + } + } + code { + padding: 2px 5px; + color: $grey-light; + background: $grey-lighter; + border: 1px solid $grey-light; + border-radius: 3px; + } + + + blockquote { + display: block; + margin: 0; + padding: 5px 20px; + border-top: 1px solid $grey-medium-light; + border-bottom: 1px solid $grey-medium-light; + background: $grey-lighter; + color: $main-font-color; + + p { + margin: 0; + } + } + +} + + +/*=== Notification and actualize notification */ +.notification { + position: fixed; + top: auto; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 3rem; + + padding: 1rem 0; + text-align: center; + // font-weight: bold; + font-size: 1em; + line-height: 3em; + z-index: 10; + vertical-align: middle; + background: $grey-medium-light; + color: $grey-dark; + // border-radius: 3px; + border: none; + + .msg{ + font-size: 1rem; + display: inline-block; + } + + &.good { + background: $success-bg; + color: $white; + } + &.bad { + background: $alert-bg; + color: $white; + } + a.close { + padding: 0 15px; + line-height: 3em; + border-radius: 0 3px 3px 0; + } + + &.good a.close:hover { + background: $success-text; + } + &.bad a.close:hover { + background: $alert-text; + } + + &#actualizeProgress { + line-height: 2em; + + br{ + display: none; + } + } +} + + +/*=== Navigation menu (for articles) */ +#nav_entries { + margin: 0; + text-align: center; + line-height: 3em; + table-layout: fixed; + background: $sid-bg; +} diff --git a/p/themes/Ansum/_list-view.scss b/p/themes/Ansum/_list-view.scss new file mode 100644 index 00000000000..78f10020351 --- /dev/null +++ b/p/themes/Ansum/_list-view.scss @@ -0,0 +1,92 @@ +/*=== Feed articles */ +.flux { + // border-left: 2px solid #ecf0f1; + background: $white; + + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background: $grey-lighter; + + &:not(.current):hover .item.title { + background: $grey-lighter; + + + } + } + &.current{ + border-left-color: $main-first; + background: $white; + } + &.not_read{ + background: $unread-bg; //-------------------- + // border-left-color: #FF5300; + + &:hover{ + background: $unread-bg-light; //-------------------- + } + + &:not(.current):hover .item.title { + background: $unread-bg-light; + + + } + .item.title{ + a{ + color: $unread-font-color; //-------------------- + } + + } + .item.website{ + a{ + color: $unread-font-color; //-------------------- + } + } + .item.date{ + color: unquote($unread-font-color+"99"); //-------------------- + } +} + + &.favorite { + background: $fav-light; + border-left-color: $fav-bg; + + @include transition(all, 0.15s, ease-in-out); + + &:not(.current):hover .item.title { + background: $fav-light; + } + } + + .website{ + a{ + color: $main-font-color; + opacity: 0.75; + } + + .favicon { + padding: 5px; + } + } + .date { + font-size: 0.85rem; + color: $main-font-color; + opacity: 0.75; + } + + .bottom { + font-size: 1rem; + text-align: center; + } +} + +.flux_header { + font-size: 1rem; + cursor: pointer; + border-top: 1px solid $grey-light; + + .title { + font-size: 1rem; + } +} + diff --git a/p/themes/Ansum/_logs.scss b/p/themes/Ansum/_logs.scss new file mode 100644 index 00000000000..ae1e24c6c96 --- /dev/null +++ b/p/themes/Ansum/_logs.scss @@ -0,0 +1,34 @@ +/*=== LOGS */ +/*=========*/ +.loglist { + overflow: hidden; + border: 1px solid $grey-medium-dark; +} +.log { + margin: 10px 0; + padding: 5px 2%; + overflow: auto; + font-size: 0.8rem; + background: $grey-lighter; + color: $grey-dark; +} + +.log > .date { + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 20px; +} +.log.error > .date { + background: $alert-bg; + color: #fff; +} +.log.warning > .date { + background: $warning-bg; +} +.log.notice > .date { + background: $grey-light; +} +.log.debug > .date { + background: $main-first-darker; + color: $white; +} diff --git a/p/themes/Ansum/_mixins.scss b/p/themes/Ansum/_mixins.scss new file mode 100644 index 00000000000..4c82c438ad1 --- /dev/null +++ b/p/themes/Ansum/_mixins.scss @@ -0,0 +1,57 @@ +/* FUNCTIONS */ + +//animation +@mixin transition($target, $duration, $ease) { + -webkit-transition: $target $duration $ease; + -moz-transition: $target $duration $ease; + -o-transition: $target $duration $ease; + transition: $target $duration $ease; +} + +//animation +@mixin animation-delay($delay) { + -webkit-animation-delay: $delay; + /* Safari 4.0 - 8.0 */ + animation-delay: $delay; +} + +//animation +@mixin animation($animate...) { + $max: length($animate); + $animations: ''; + @for $i from 1 through $max { + $animations: #{$animations + nth($animate, $i)}; + @if $i < $max { + $animations: #{$animations + ", "}; + } + } + -webkit-animation: $animations; + -moz-animation: $animations; + -o-animation: $animations; + animation: $animations; +} + +//keyframes +@mixin keyframes($animationName) { + @-webkit-keyframes #{$animationName} { + @content; + } + @-moz-keyframes #{$animationName} { + @content; + } + @-o-keyframes #{$animationName} { + @content; + } + @keyframes #{$animationName} { + @content; + } +} + +@mixin border-radius($radius: 4px){ + -moz-border-radius: $radius; + -webkit-border-radius: $radius; + -ms-border-radius: $radius; + -o-border-radius: $radius; + -khtml-border-radius: $radius; + border-radius: $radius; +} diff --git a/p/themes/Ansum/_mobile.scss b/p/themes/Ansum/_mobile.scss new file mode 100644 index 00000000000..10b4322412e --- /dev/null +++ b/p/themes/Ansum/_mobile.scss @@ -0,0 +1,170 @@ +/*=== MOBILE */ +/*===========*/ +@media(max-width: 840px) { + html, body{ + // font-size: 1rem; + } + ul.nav{ + .item{ + width: 100%; + + img{ + display: none; + } + a{ + display: inline-block; + padding: 1rem 1rem 1rem 2.5rem; + color: $sid-font-color; + width: 100%; + + background: url("../../themes/icons/logout.svg") no-repeat $sid-bg-dark 3% center; + + @include transition(all, 0.2s, ease-in-out); + + &:hover, + &:active{ + background: url("../../themes/icons/logout.svg") no-repeat $alert-bg 3% center; + text-decoration: none; + color: $white; + } + } + + } + + } + .aside { + @include transition(all, 0.2s, ease-in-out); + + &.aside_feed { + padding: 0; + } + + .tree .tree-folder .tree-folder-items .item a{ + padding: 0.5rem 1rem; + } + } + .aside .toggle_aside, + #panel .close { + display: block; + width: 100%; + height: 50px; + line-height: 50px; + text-align: center; + background: $main-first-alt; + } + + .header{ + padding: 0.5rem; + .item{ + &.title{ + display: none; + } + + &.search{ + input{ + width: 90%; + height: 3.5rem; + + &:focus{ + width: 100%; + + } + } + .btn{ + min-height: 49px; + padding: 0.5rem 2rem; + } + } + &.configure{ + width: 2.75rem; + top: 3.125rem; + .dropdown{ + .btn{ + padding: 1.125rem; + } + } + } + } + } + + .nav_menu{ + .btn { + margin: 0; + padding: 0.85rem 1.25rem; + } + .stick { + margin: 0.5rem 0.5rem; + + .btn{ + margin: 0; + padding: 0.85rem 1.25rem; + + &.read_all{ + padding: 0.85rem 1.25rem; + } + } + } + .search { + display: none; + max-width: 97%; + + .input{ + + max-width: 97%; + width: 90px; + + &::focus{ + width: 400px; + } + } + } + } + #stream{ + .flux{ + .flux_header{ + padding: 0.5rem 0; + } + } + } + + + + .day{ + text-align: center; + padding: 1rem 0; + .name { + // font-size: 1.1rem; + display: block; + padding: 0; + width: 100%; + line-height: 1.5rem; + margin-bottom: 1rem; + } + + } + + .pagination { + margin: 0 0 3.5em; + } + + #nav_entries{ + line-height: 4.5rem; + } + + .notification { + border-radius: 0; + + a.close { + display: block; + left: 0; + background: transparent; + } + a.close:hover { + opacity: 0.5; + } + a.close .icon { + display: none; + + } + } +} diff --git a/p/themes/Ansum/_reader-view.scss b/p/themes/Ansum/_reader-view.scss new file mode 100644 index 00000000000..4368908d62c --- /dev/null +++ b/p/themes/Ansum/_reader-view.scss @@ -0,0 +1,13 @@ +/*=== READER VIEW */ +/*================*/ +#stream.reader .flux { + padding: 0 0 50px; + background: $grey-light; + color: $main-font-color; + border: none; +} +#stream.reader .flux .author { + margin: 0 0 10px; + font-size: 90%; + color: $grey-medium-dark; +} diff --git a/p/themes/Ansum/_sidebar.scss b/p/themes/Ansum/_sidebar.scss new file mode 100644 index 00000000000..87d5bd1a91d --- /dev/null +++ b/p/themes/Ansum/_sidebar.scss @@ -0,0 +1,299 @@ +/*=== Tree */ +.tree { + margin: 10px 0; + + &#sidebar{ + scrollbar-color: rgba(255,255, 0, 0.1) rgba(0, 0, 0, 0.05); + scrollbar-color: unquote($sid-font-color+"33") unquote($sid-font-color+"22"); + + + } + + + .tree-folder{ + border-bottom: 1px solid $sid-sep; + + -moz-box-shadow: inset -1px -11px 8px #00000033; + -webkit-box-shadow: inset -1px -11px 8px #00000033; + box-shadow: inset -1px -11px 8px #00000033; + + .tree-folder-title { + position: relative; + background: $sid-bg; + font-size: 0.85rem; + letter-spacing: 1px; + padding: 12px 16px; + font-weight: 700; + text-transform: uppercase; + + .title { + background: inherit; + color: $sid-font-color; + &:hover{ + text-decoration: none; + } + } + } + &.active { + .tree-folder-title { + background: $sid-bg; + font-weight: bold; + } + } + .tree-folder-items { + background: $sid-bg-alt; + + .item{ + padding: 0 1rem; + line-height: 2.5rem; + font-size: 1rem; + font-weight: 400; + @include transition(all, 0.15s, ease-in-out); + + &.active{ + background: $sid-active; + + .dropdown li a{ + color: $main-font-color; + + &:hover{ + color: $sid-font-color; + } + } + + a{ + color: $sid-active-font; + } + } + + &:hover{ + background: $sid-bg-dark; + } + + a{ + text-decoration: none; + color: $sid-font-color; + } + } + + .feed .item-title:not([data-unread="0"])::before { + content: attr(data-unread); + background: $sid-pills; + font-size: 0.75rem; + display: block; + float: left; + padding: 3px 4px; + text-align:center; + border-radius: 12px; + margin: 11px 6px 0 4px; + line-height: 0.75rem; + } + .feed .item-title:not([data-unread="0"]) { + + } + } + } +} + +/*=== Buttons */ +.stick { + vertical-align: middle; + font-size: 0; + + input, .btn { + border-radius: 0; + } + .btn:first-child, + input:first-child { + border-radius: 5px 0 0 5px; + } + .btn:last-child, input:last-child, .btn + .dropdown > .btn { + border-radius: 0 5px 5px 0; + } + .btn + .btn, + .btn + input, + .btn + .dropdown > .btn, + input + .btn, + input + input, + input + .dropdown > .btn, + .dropdown + .btn, + .dropdown + input, + .dropdown + .dropdown > .btn { + border-left: 1px solid $grey-medium-light; + } + +} + +.aside { + background: $sid-bg; + + + &.aside_feed { + padding: 10px 0; + text-align: center; + background: $sid-bg; + border-right: 1px solid $sid-sep; + } + &.aside_feed .tree { + margin: 10px 0 50px; + } + +} + + +/* Sidebar des pages de configuration */ + + + +/*=== Navigation */ + +.nav-list{ + .nav-header, + .item{ + height: 2.5em; + line-height: 2.5em; + font-size: 1rem; + } + .item{ + background: $sid-bg; + @include transition(all, 0.15s, ease-in-out); + a{ + padding: 0 1rem; + color: $sid-font-color; + } + .error{ + a{ + color: $alert-bg; + } + } + &:hover{ + background: $sid-bg-dark; + color: $sid-font-color; + + .error{ + a{ + color: $sid-font-color; + background: $main-first; + } + } + .empty{ + a{ + color: $sid-font-color; + background: $warning-bg; + } + } + + a{ + color: $sid-font-color; + text-decoration: none; + } + } + &.active{ + background: $main-first; + color: $white; + + .error{ + a{ + color: $white; + background: $main-first; + } + } + + .empty{ + a{ + color: $white; + background: $warning-bg; + } + } + + a{ + color: $white; + text-decoration: none; + } + } + + } + &.empty{ + a{ + color: $warning-bg; + } + } + .disable{ + text-align: center; + background: $grey-lighter; + color: $grey-medium-dark; + } + + .nav-header { + padding: 0 10px; + font-weight: bold; + color: $grey-dark; + text-transform: uppercase; + letter-spacing: 1px; + margin-top: 1rem; + } + + .nav-form { + padding: 3px; + text-align: center; + } + + .nav-head { + margin: 0; + text-align: right; + // background: #34495e; + color: $white; + a { + color: $white; + } + .item { + padding: 5px 10px; + font-size: 0.9rem; + line-height: 1.5rem; + } + } +} + +/*=== Aside main page (categories) */ +.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after { + position: absolute; + right: 0; + line-height: 1.5rem; + background: $sid-pills; + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; +} + +.feed.item.empty.active { + background: $grey-dark; +} +.feed.item.error.active { + background: $grey-dark; +} +.feed.item.empty, +.feed.item.empty > a { + color: $grey-dark; +} +.feed.item.error, +.feed.item.error > a { + color: $grey-dark; +} +.feed.item.empty.active, +.feed.item.error.active, +.feed.item.empty.active > a, +.feed.item.error.active > a { + color: $white; +} +.aside_feed .tree-folder-items .dropdown-menu::after { + left: 2px; +} +.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon { + border-radius: 3px; +} +.aside_feed .stick #btn-importExport{ + border-left-color: $sid-bg; +} diff --git a/p/themes/Ansum/_stats.scss b/p/themes/Ansum/_stats.scss new file mode 100644 index 00000000000..f287efa080f --- /dev/null +++ b/p/themes/Ansum/_stats.scss @@ -0,0 +1,27 @@ +/*=== STATISTICS */ +/*===============*/ +.stat { + margin: 10px 0 20px; +} + +.stat th, +.stat td, +.stat tr { + border: none; +} +.stat > table td, +.stat > table th { + border-bottom: 1px solid $grey-medium-light; +} + +.stat > .horizontal-list { + margin: 0 0 5px; +} +.stat > .horizontal-list .item { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.stat > .horizontal-list .item:first-child { + width: 270px; +} diff --git a/p/themes/Ansum/_tables.scss b/p/themes/Ansum/_tables.scss new file mode 100644 index 00000000000..608e19acaa6 --- /dev/null +++ b/p/themes/Ansum/_tables.scss @@ -0,0 +1,17 @@ +/*=== Tables */ +table { + border-collapse: collapse; +} + +tr, th, td { + padding: 0.5em; + border: 1px solid $grey-medium-light; +} +th { + background: $grey-lighter; +} +form td, +form th { + font-weight: normal; + text-align: center; +} diff --git a/p/themes/Ansum/_variables.scss b/p/themes/Ansum/_variables.scss new file mode 100644 index 00000000000..9fc4238aba5 --- /dev/null +++ b/p/themes/Ansum/_variables.scss @@ -0,0 +1,53 @@ +// La couleur principale du thème +$main-first: #ca7227; // couleur principale +$main-first-alt: #b7641d; // var pour les hovers +$main-first-light: #fdf6ef; // var light 1 +$main-first-lighter: #fefaf7; // var light 2 +$main-first-dark: #3c3835; // var pour les hovers +$main-first-darker: #221f1d; // var pour les hovers + +// les couleurs de polices liées +$main-font-color: #363330; +$light-font-color: #6d655f; +$white: #fff; // le blanc (des fois qu'on aurait envie de le teinter un peu) + +// toute la palette des gris, très utile +// on essaiera de teinter ces gris suivant la couleur principale +$grey-darker: #524236; +$grey-dark: #766556; +$grey-medium-dark: #bbaa99; +$grey-medium: #d9ccbf; +$grey-medium-light: #e4d8cc; +$grey-light: #f5f0ec; +$grey-lighter: #fcfaf8; + +$unread-font-color: #161a38; +$unread-bg: #f2f6f8; +$unread-bg-light: #fdfdfe; + +// les couleurs d'alertes (rouge, jaune, vert) +$alert-bg: #f5633e; // la base +$alert-light: #fde0d8; // +light +$alert-text: #73341f; // +foncé + +$warning-bg: #f4f762; +$warning-light: #fdfde0; +$warning-text: #73762f; + +$success-bg: #10f5b2; +$success-light: #cffdef; +$success-text: #0c7556; + +// les favoris +$fav-bg: #FFC300; +$fav-light: #FFF6DA; + +// la couleur de sidebar, utile si on a envie d'un thème qui aurait une sidebar foncé, e.g. +$sid-font-color: #363330; // la couleur de fond de la barre de gauche et du header +$sid-bg: #fbf9f6; // le background général de la barre de gauche, et du header +$sid-bg-alt: #f7f2ea; // le background de l'intérieur des groupes +$sid-bg-dark: #efe3d3; // les hovers +$sid-sep: #f0e7da; // les séparateurs +$sid-active: $main-first; // la couleur active +$sid-active-font: #FFFFFF; // la couleur active +$sid-pills: rgba(35,35,0, 0.15); // les gélules diff --git a/p/themes/Ansum/ansum.css b/p/themes/Ansum/ansum.css new file mode 100644 index 00000000000..bc4ae36b454 --- /dev/null +++ b/p/themes/Ansum/ansum.css @@ -0,0 +1,1299 @@ +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff"); } +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff"); } +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff"); } +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff"); } +/* FUNCTIONS */ +/* btns */ +.btn { + display: inline-block; + min-height: 38px; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.5rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: #fcfaf8; + border-radius: 5px; + border: none; + color: #766556; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .btn.btn-important { + background: #ca7227; + color: #fff; } + .btn.btn-important:hover, .btn.btn-important:active { + background: #b7641d; } + .btn.btn-attention { + background: #f5633e; + color: #fff; } + .btn.btn-attention:hover, .btn.btn-attention:active { + background: #73341f; } + .btn:hover { + text-decoration: none; } + +a.btn { + min-height: 25px; + line-height: 25px; } + +/*=== Forms */ +legend { + display: inline-block; + width: auto; + margin: 2rem 0 1rem 0; + padding: 0; + font-size: 1rem; + clear: both; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 700; } + +label { + min-height: 25px; + padding: 5px 0; + cursor: pointer; + color: #766556; } + +textarea { + width: 360px; + height: 100px; } + +input, select, textarea, button { + font-family: "lato", "Helvetica", "Arial", sans-serif; + min-height: 25px; + padding: 5px 10px; + line-height: 25px; + vertical-align: middle; + background: #fff; + border: 1px solid #f5f0ec; + font-size: 1rem; + color: #766556; + border-radius: 2px; } + +option { + padding: 0 .5em; } + +input:focus, select:focus, textarea:focus { + color: #363330; + border-color: #ca7227; } + +input:invalid, select:invalid { + color: #f5633e; + border-color: #f5633e; + box-shadow: none; } + +input:disabled, select:disabled { + background: #f5f0ec; } + +input.extend { + transition: width 200ms linear; + -moz-transition: width 200ms linear; + -webkit-transition: width 200ms linear; + -o-transition: width 200ms linear; + -ms-transition: width 200ms linear; } + +.form-group { + padding: 5px; + border-radius: 3px; } + .form-group::after { + content: ""; + display: block; + clear: both; } + .form-group .group-name { + padding: 10px 0; + text-align: right; } + .form-group .group-controls { + min-height: 25px; + padding: 5px 0; } + .form-group .group-controls .control { + line-height: 2.0em; } + .form-group table { + margin: 10px 0 0 220px; } + .form-group.form-actions { + margin: 15px 0 25px; + padding: 5px 0; } + .form-group.form-actions .btn { + margin: 0 0.5rem 0 0; } + +/*=== Tables */ +table { + border-collapse: collapse; } + +tr, th, td { + padding: 0.5em; + border: 1px solid #e4d8cc; } + +th { + background: #fcfaf8; } + +form td, +form th { + font-weight: normal; + text-align: center; } + +/*=== COMPONENTS */ +/*===============*/ +/*=== Forms */ +/*=== Horizontal-list */ +.horizontal-list { + margin: 0; + padding: 0.1rem 0; } + .horizontal-list .item { + vertical-align: middle; } + .horizontal-list .item:first-child { + padding-left: 0.5rem; } + +/*=== Dropdown */ +.dropdown-menu { + background: #fcfaf8; + margin: 0; + font-size: 1rem; + text-align: left; + padding: 0.5rem 0 1rem 0; + border: none; + border-radius: 3px; + -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); } + .dropdown-menu::after { + content: ""; + position: absolute; + top: -4px; + right: 13px; + width: 10px; + height: 10px; + z-index: -10; + transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + background: white; } + .dropdown-menu .dropdown-header { + margin: 1.75rem 0 0.5rem 2rem; + font-weight: bold; + text-align: left; + color: #766556; + text-transform: uppercase; + letter-spacing: 1px; } + .dropdown-menu .item { + -webkit-transition: all 0.075s ease-in-out; + -moz-transition: all 0.075s ease-in-out; + -o-transition: all 0.075s ease-in-out; + transition: all 0.075s ease-in-out; } + .dropdown-menu .item a, .dropdown-menu .item span, .dropdown-menu .item .as-link { + padding: 0 2rem; + line-height: 2.5em; + font-size: 1rem; + color: #363330; } + .dropdown-menu .item:hover { + background: #ca7227; + color: #fff; } + .dropdown-menu .item:hover a, .dropdown-menu .item:hover button { + text-decoration: none; + color: #fff; } + .dropdown-menu .item[aria-checked="true"] a::before { + font-weight: bold; + margin: 0 0 0 -14px; } + .dropdown-menu .input select, .dropdown-menu .input input { + margin: 0 auto 5px; + padding: 2px 5px; + border-radius: 3px; } + .dropdown-menu .separator { + margin: 0.75rem 0; + border-bottom: 1px solid #f5f0ec; } + +.tree .tree-folder .tree-folder-items .dropdown-menu .item, +.tree .tree-folder .tree-folder-items .dropdown-menu .item { + padding: 0; } + .tree .tree-folder .tree-folder-items .dropdown-menu .item a, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button, + .tree .tree-folder .tree-folder-items .dropdown-menu .item a, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button { + color: #363330; } + .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover { + color: #fff; } + .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover { + background: #ca7227; } + +/*=== Alerts */ +.alert { + margin: 1rem 0; + padding: 1rem; + font-size: 1rem; + background: #fcfaf8; + border: 1px solid #d9ccbf; + border-radius: 3px; + color: #766556; + text-shadow: 0 0 1px #f5f0ec; } + +.alert-head { + font-size: 1.15em; } + +.alert > a { + text-decoration: underline; + color: inherit; } + +.alert-warn { + background: #fdfde0; + border: 1px solid #73762f33; + color: #73762f; } + +.alert-success { + background: #cffdef; + border: 1px solid #0c755633; + color: #0c7556; } + +.alert-error { + background: #fde0d8; + border: 1px solid #73341f33; + color: #73341f; } + +/*=== Pagination */ +.pagination { + text-align: center; + font-size: 0.8em; + background: #f5f0ec; + color: #363330; } + .pagination .item.pager-current { + font-weight: bold; + font-size: 1.5em; + background: #fbf9f6; + color: #f5f0ec; } + .pagination .item a { + display: block; + font-style: italic; + line-height: 3em; + text-decoration: none; + color: #363330; } + .pagination .item a:hover { + background: #363330; + color: #f5f0ec; } + .pagination .loading, + .pagination a:hover.loading { + font-size: 0; + background: url("loader.gif") center center no-repeat #34495e; } + +.content .pagination { + margin: 0; + padding: 0; } + +/*=== Boxes */ +.box { + border: none; + border-radius: 3px; + background: #fff; + -webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); + box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); } + .box .box-title { + margin: 0; + padding: 5px 10px; + background: #f5f0ec; + color: #363330; + border-radius: 2px 2px 0 0; } + .box .box-title form input { + width: 85%; } + .box .box-title form .dropdown { + float: right; } + .box .box-title form .dropdown a.dropdown-toggle { + padding: 0; + background-image: url(icons/more.svg); + background-repeat: no-repeat; + background-position: right 8px; + border-radius: 0; } + .box .box-title form .dropdown a.dropdown-toggle img { + display: none; } + .box .box-content .item { + padding: 0.5rem 0.75rem; + font-size: 1rem; + color: #363330; + line-height: 1.7em; + border-bottom: 1px solid #f5f0ec; } + .box .box-content .item img { + margin-right: 0.75rem; } + .box .box-content .item .configure { + visibility: hidden; + width: 1.75rem; + height: 1.75rem; + display: block; + border-radius: 2px; + float: left; + margin-right: 0.5rem; + background: url("icons/cog.svg") no-repeat 4px 4px; } + .box .box-content .item .configure .icon { + vertical-align: middle; + border-radius: 3px; + display: none; } + .box .box-content .item .configure:hover { + background: url("icons/cog-white.svg") no-repeat 4px 4px #ca7227; } + .box .box-content .item:hover .configure { + visibility: visible; } + .box .box-content .item:last-child { + border-bottom: none; } + +/*=== "Load more" part */ +#bigMarkAsRead { + text-align: center; + text-decoration: none; + background: #fdf6ef; + color: #ca7227; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + #bigMarkAsRead:hover { + background: #ca7227; + color: #fff; } + #bigMarkAsRead:hover .bigTick { + background: url(icons/tick-white.svg) center no-repeat; } + #bigMarkAsRead .bigTick { + margin: 0.5rem 0; + display: inline-block; + text-indent: -9999px; + background: url(icons/tick-color.svg) center no-repeat; + height: 64px; + width: 64px; + white-space: nowrap; } + +.formLogin { + background: #fbf9f6; } + .formLogin .header .configure { + padding-right: 1rem; } + .formLogin .header .configure img { + margin-right: 0.5rem; } + .formLogin .header .configure a.signin { + color: #fff; } + .formLogin h1 { + color: #fff; } + .formLogin form#crypto-form div { + margin-bottom: 1rem; } + .formLogin form#crypto-form div label { + font-size: 1rem; + color: #d9ccbf; } + .formLogin form#crypto-form div input { + background: #221f1d; } + .formLogin form#crypto-form div input:focus { + background: #fcfaf8; + color: #363330; } + +/*=== DIVERS */ +/*===========*/ +.aside.aside_feed .nav-form input, +.aside.aside_feed .nav-form select { + width: 140px; } + +.aside.aside_feed .nav-form .dropdown .dropdown-menu { + right: -20px; } + +.aside.aside_feed .nav-form .dropdown .dropdown-menu::after { + right: 33px; } + +/*=== Tree */ +.tree { + margin: 10px 0; } + .tree#sidebar { + scrollbar-color: rgba(255, 255, 0, 0.1) rgba(0, 0, 0, 0.05); + scrollbar-color: #36333033 #36333022; } + .tree .tree-folder { + border-bottom: 1px solid #f0e7da; + -moz-box-shadow: inset -1px -11px 8px #00000033; + -webkit-box-shadow: inset -1px -11px 8px #00000033; + box-shadow: inset -1px -11px 8px #00000033; } + .tree .tree-folder .tree-folder-title { + position: relative; + background: #fbf9f6; + font-size: 0.85rem; + letter-spacing: 1px; + padding: 12px 16px; + font-weight: 700; + text-transform: uppercase; } + .tree .tree-folder .tree-folder-title .title { + background: inherit; + color: #363330; } + .tree .tree-folder .tree-folder-title .title:hover { + text-decoration: none; } + .tree .tree-folder.active .tree-folder-title { + background: #fbf9f6; + font-weight: bold; } + .tree .tree-folder .tree-folder-items { + background: #f7f2ea; } + .tree .tree-folder .tree-folder-items .item { + padding: 0 1rem; + line-height: 2.5rem; + font-size: 1rem; + font-weight: 400; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .tree .tree-folder .tree-folder-items .item.active { + background: #ca7227; } + .tree .tree-folder .tree-folder-items .item.active .dropdown li a { + color: #363330; } + .tree .tree-folder .tree-folder-items .item.active .dropdown li a:hover { + color: #363330; } + .tree .tree-folder .tree-folder-items .item.active a { + color: #FFFFFF; } + .tree .tree-folder .tree-folder-items .item:hover { + background: #efe3d3; } + .tree .tree-folder .tree-folder-items .item a { + text-decoration: none; + color: #363330; } + .tree .tree-folder .tree-folder-items .feed .item-title:not([data-unread="0"])::before { + content: attr(data-unread); + background: rgba(35, 35, 0, 0.15); + font-size: 0.75rem; + display: block; + float: left; + padding: 3px 4px; + text-align: center; + border-radius: 12px; + margin: 11px 6px 0 4px; + line-height: 0.75rem; } + +/*=== Buttons */ +.stick { + vertical-align: middle; + font-size: 0; } + .stick input, .stick .btn { + border-radius: 0; } + .stick .btn:first-child, + .stick input:first-child { + border-radius: 5px 0 0 5px; } + .stick .btn:last-child, .stick input:last-child, .stick .btn + .dropdown > .btn { + border-radius: 0 5px 5px 0; } + .stick .btn + .btn, + .stick .btn + input, + .stick .btn + .dropdown > .btn, + .stick input + .btn, + .stick input + input, + .stick input + .dropdown > .btn, + .stick .dropdown + .btn, + .stick .dropdown + input, + .stick .dropdown + .dropdown > .btn { + border-left: 1px solid #e4d8cc; } + +.aside { + background: #fbf9f6; } + .aside.aside_feed { + padding: 10px 0; + text-align: center; + background: #fbf9f6; + border-right: 1px solid #f0e7da; } + .aside.aside_feed .tree { + margin: 10px 0 50px; } + +/* Sidebar des pages de configuration */ +/*=== Navigation */ +.nav-list .nav-header, +.nav-list .item { + height: 2.5em; + line-height: 2.5em; + font-size: 1rem; } +.nav-list .item { + background: #fbf9f6; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .nav-list .item a { + padding: 0 1rem; + color: #363330; } + .nav-list .item .error a { + color: #f5633e; } + .nav-list .item:hover { + background: #efe3d3; + color: #363330; } + .nav-list .item:hover .error a { + color: #363330; + background: #ca7227; } + .nav-list .item:hover .empty a { + color: #363330; + background: #f4f762; } + .nav-list .item:hover a { + color: #363330; + text-decoration: none; } + .nav-list .item.active { + background: #ca7227; + color: #fff; } + .nav-list .item.active .error a { + color: #fff; + background: #ca7227; } + .nav-list .item.active .empty a { + color: #fff; + background: #f4f762; } + .nav-list .item.active a { + color: #fff; + text-decoration: none; } +.nav-list.empty a { + color: #f4f762; } +.nav-list .disable { + text-align: center; + background: #fcfaf8; + color: #bbaa99; } +.nav-list .nav-header { + padding: 0 10px; + font-weight: bold; + color: #766556; + text-transform: uppercase; + letter-spacing: 1px; + margin-top: 1rem; } +.nav-list .nav-form { + padding: 3px; + text-align: center; } +.nav-list .nav-head { + margin: 0; + text-align: right; + color: #fff; } + .nav-list .nav-head a { + color: #fff; } + .nav-list .nav-head .item { + padding: 5px 10px; + font-size: 0.9rem; + line-height: 1.5rem; } + +/*=== Aside main page (categories) */ +.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after { + position: absolute; + right: 0; + line-height: 1.5rem; + background: rgba(35, 35, 0, 0.15); + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; } + +.feed.item.empty.active { + background: #766556; } + +.feed.item.error.active { + background: #766556; } + +.feed.item.empty, +.feed.item.empty > a { + color: #766556; } + +.feed.item.error, +.feed.item.error > a { + color: #766556; } + +.feed.item.empty.active, +.feed.item.error.active, +.feed.item.empty.active > a, +.feed.item.error.active > a { + color: #fff; } + +.aside_feed .tree-folder-items .dropdown-menu::after { + left: 2px; } + +.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon { + border-radius: 3px; } + +.aside_feed .stick #btn-importExport { + border-left-color: #fbf9f6; } + +/*=== STRUCTURE */ +/*===============*/ +/*=== Header */ +.header { + background: #fbf9f6; + padding: 0.5rem 1.35rem; + display: block; + table-layout: none; + width: auto; } + .header .item { + vertical-align: middle; } + .header .item.title { + font-weight: 400; + width: 280px; } + .header .item.title h1 a { + text-decoration: none; + color: #363330; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; } + .header .item.title h1 a img { + margin-right: 0.5rem; } + .header .item.search input { + width: 230px; + border-radius: 2px 0 0 2px; + background-color: #f7f2ea; + color: #363330; + border: none; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .header .item.search input:hover { + background-color: #efe3d3; } + .header .item.search input:focus { + width: 350px; + background-color: #fff; + color: #766556; } + .header .item.search .btn { + border-radius: 0 2px 2px 0; + background-color: #ca7227; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/magnifier.svg); + border-left-width: 0; + width: 3rem; + min-height: 35px; } + .header .item.search .btn img { + display: none; } + .header .item.search .btn:hover { + background-color: #b7641d; } + .header .item.configure { + width: 2rem; + position: absolute; + right: 1rem; + top: 1.25rem; + text-align: center; } + .header .item.configure .btn { + background-color: transparent; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/cog.svg); + padding: 0 0.5rem; } + .header .item.configure .btn img { + display: none; } + +/*=== Body */ +#global { + height: calc(100% - 85px); } + +/*=== Prompt (centered) */ +.prompt { + text-align: center; } + +.prompt label { + text-align: left; } + +.prompt form { + margin: 10px auto 20px auto; + width: 200px; } + +.prompt input { + margin: 5px auto; + width: 100%; } + +.prompt p { + margin: 20px 0; } + +/*=== New article notification */ +#new-article { + text-align: center; + font-size: 1rem; + background: #ca7227; } + +#new-article:hover { + background: #b7641d; } + +#new-article > a { + line-height: 3em; + font-weight: bold; + color: #fff; } + +#new-article > a:hover { + text-decoration: none; } + +/*=== Day indication */ +.day { + padding: 1rem 0 0 1.25rem; + font-weight: 700; + line-height: 3em; + letter-spacing: 1px; + text-transform: uppercase; + font-size: 0.875rem; + color: #6d655f; } + .day .name { + padding: 0 1rem 0 1rem; + font-size: 0.875rem; + color: #363330; + position: relative; + left: 0; + text-transform: uppercase; } + +/*=== Index menu */ +.nav_menu { + text-align: center; + padding: 5px 0; } + .nav_menu .btn { + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: #fcfaf8; + background-position: center; + background-repeat: no-repeat; } + .nav_menu .btn:hover { + background-color: #f5f0ec; } + .nav_menu .stick { + background: #fcfaf8; } + .nav_menu .stick .btn { + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: #fcfaf8; + background-position: center; + background-repeat: no-repeat; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .nav_menu .stick .btn:hover { + background-color: #e4d8cc; } + .nav_menu .stick .btn.active { + background-color: #ca7227; } + .nav_menu .stick .btn img.icon { + display: none; } + .nav_menu .stick .btn#toggle-read { + background-image: url(icons/read.svg); } + .nav_menu .stick .btn#toggle-read.active { + background-image: url(icons/read-white.svg); } + .nav_menu .stick .btn#toggle-unread { + background-image: url(icons/unread.svg); } + .nav_menu .stick .btn#toggle-unread.active { + background-image: url(icons/unread-white.svg); } + .nav_menu .stick .btn#toggle-starred { + background-image: url(icons/starred.svg); } + .nav_menu .stick .btn#toggle-starred.active { + background-image: url(icons/starred-white.svg); } + .nav_menu .stick .btn#toggle-non-starred { + background-image: url(icons/non-starred.svg); } + .nav_menu .stick .btn#toggle-non-starred.active { + background-image: url(icons/non-starred-white.svg); } + .nav_menu .stick .btn.read_all { + background-color: #fcfaf8; + color: #363330; + padding: 5px 16px; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .nav_menu .stick .btn.read_all:hover { + background-color: #e4d8cc; } + .nav_menu .stick .btn.view-normal { + background-image: url(icons/view-list.svg); } + .nav_menu .stick .btn.view-normal.active { + background-image: url(icons/view-list-white.svg); } + .nav_menu .stick .btn.view-global { + background-image: url(icons/view-global.svg); } + .nav_menu .stick .btn.view-global.active { + background-image: url(icons/view-global-white.svg); } + .nav_menu .stick .btn.view-reader { + background-image: url(icons/view-reader.svg); } + .nav_menu .stick .btn.view-reader.active { + background-image: url(icons/view-reader-white.svg); } + .nav_menu .stick .btn.view-rss { + background-image: url(icons/rss.svg); } + .nav_menu .stick .dropdown a.dropdown-toggle { + border-left-width: 0; + background-image: url(icons/more.svg); } + +#dropdown-query ~ .dropdown-menu .dropdown-header .icon { + vertical-align: middle; + background-color: #bbaa99; + border-radius: 3px; } + +/*=== Content of feed articles */ +.content, .content.thin { + padding: 20px 10px; + font-size: 1.125rem; + line-height: 1.8rem; } + .content h1.title a, .content h1 a, .content.thin h1.title a, .content.thin h1 a { + color: #363330; + font-family: "spectral"; + font-size: 2rem; } + .content h1.title a:hover, .content h1 a:hover, .content.thin h1.title a:hover, .content.thin h1 a:hover { + color: #ca7227; + text-decoration: none; } + .content .author, .content.thin .author { + font-size: 1.125rem; + color: #6d655f; } + .content p, .content ul, .content.thin p, .content.thin ul { + font-size: 1.125rem; + line-height: 1.8rem; } + .content .content hr, .content.thin .content hr { + margin: 30px 10px; + height: 1px; + background: #e4d8cc; + border: 0; + box-shadow: 0 2px 5px #ccc; } + .content pre, .content.thin pre { + margin: 10px auto; + padding: 10px 20px; + overflow: auto; + background: #221f1d; + color: #fff; + font-size: 0.9rem; + border-radius: 3px; } + .content pre code, .content.thin pre code { + background: transparent; + color: #fff; + border: none; } + .content code, .content.thin code { + padding: 2px 5px; + color: #f5f0ec; + background: #fcfaf8; + border: 1px solid #f5f0ec; + border-radius: 3px; } + .content blockquote, .content.thin blockquote { + display: block; + margin: 0; + padding: 5px 20px; + border-top: 1px solid #e4d8cc; + border-bottom: 1px solid #e4d8cc; + background: #fcfaf8; + color: #363330; } + .content blockquote p, .content.thin blockquote p { + margin: 0; } + +/*=== Notification and actualize notification */ +.notification { + position: fixed; + top: auto; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 3rem; + padding: 1rem 0; + text-align: center; + font-size: 1em; + line-height: 3em; + z-index: 10; + vertical-align: middle; + background: #e4d8cc; + color: #766556; + border: none; } + .notification .msg { + font-size: 1rem; + display: inline-block; } + .notification.good { + background: #10f5b2; + color: #fff; } + .notification.bad { + background: #f5633e; + color: #fff; } + .notification a.close { + padding: 0 15px; + line-height: 3em; + border-radius: 0 3px 3px 0; } + .notification.good a.close:hover { + background: #0c7556; } + .notification.bad a.close:hover { + background: #73341f; } + .notification#actualizeProgress { + line-height: 2em; } + .notification#actualizeProgress br { + display: none; } + +/*=== Navigation menu (for articles) */ +#nav_entries { + margin: 0; + text-align: center; + line-height: 3em; + table-layout: fixed; + background: #fbf9f6; } + +/*=== Feed articles */ +.flux { + background: #fff; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .flux:hover { + background: #fcfaf8; } + .flux:hover:not(.current):hover .item.title { + background: #fcfaf8; } + .flux.current { + border-left-color: #ca7227; + background: #fff; } + .flux.not_read { + background: #f2f6f8; } + .flux.not_read:hover { + background: #fdfdfe; } + .flux.not_read:not(.current):hover .item.title { + background: #fdfdfe; } + .flux.not_read .item.title a { + color: #161a38; } + .flux.not_read .item.website a { + color: #161a38; } + .flux.not_read .item.date { + color: #161a3899; } + .flux.favorite { + background: #FFF6DA; + border-left-color: #FFC300; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .flux.favorite:not(.current):hover .item.title { + background: #FFF6DA; } + .flux .website a { + color: #363330; + opacity: 0.75; } + .flux .website .favicon { + padding: 5px; } + .flux .date { + font-size: 0.85rem; + color: #363330; + opacity: 0.75; } + .flux .bottom { + font-size: 1rem; + text-align: center; } + +.flux_header { + font-size: 1rem; + cursor: pointer; + border-top: 1px solid #f5f0ec; } + .flux_header .title { + font-size: 1rem; } + +/*=== GLOBAL VIEW */ +/*================*/ +#stream .box.category:not([data-unread="0"]) .box-title .title { + font-weight: bold; } +#stream .box.category .box-title { + background: none; + padding: 1.5rem; } + #stream .box.category .box-title a.title { + font-weight: normal; + text-decoration: none; + text-align: left; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + color: #766556; } + #stream .box.category .box-title a.title:not([data-unread="0"])::after { + position: absolute; + top: 1.75rem; + right: 0; + line-height: 1.5rem; + background: #f5f0ec; + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; } + #stream .box.category .box-title a.title:hover { + color: #ca7227; } +#stream .box.category .box-content { + padding-bottom: 0.5rem; } + #stream .box.category .box-content .item.feed { + font-size: 1rem; + padding: 0.5rem 1.5rem; } + #stream .box.category .box-content .item.feed a { + color: #363330; + font-weight: 400; } + #stream .box.category .box-content .item.feed a:hover { + color: #ca7227; + text-decoration: none; } + +#overlay { + background: rgba(0, 0, 0, 0.65); } + +#panel { + top: 3rem; + right: 3rem; + bottom: 3rem; + left: 3rem; + border-radius: 3px; } + +/*=== READER VIEW */ +/*================*/ +#stream.reader .flux { + padding: 0 0 50px; + background: #f5f0ec; + color: #363330; + border: none; } + +#stream.reader .flux .author { + margin: 0 0 10px; + font-size: 90%; + color: #bbaa99; } + +/*=== Configuration pages */ +.post { + padding: 1rem 2rem; + font-size: 1rem; } + .post form { + margin: 1rem 0; } + .post form .horizontal-list { + margin-bottom: 0.5rem; } + .post.content { + max-width: 550px; } + .post h1, .post h2 { + font-size: 3rem; + margin-top: 1.75rem; + font-weight: 300; + line-height: 1.2em; + color: #363330; } + .post a[href="./"] { + display: inline-block; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.75rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: #fcfaf8; + border: 1px solid #e4d8cc; + border-radius: 5px; + color: #766556; } + .post a[href="./"]:hover { + text-decoration: none; + background: #ca7227; + color: white; + border: 1px solid #ca7227; } + +#slider { + border-left: none; + -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); } + +.slide-container .properties { + background: rgba(0, 0, 0, 0.75); + border: 0; + padding: 1rem; + color: white; } + .slide-container .properties .page-number { + right: 1rem; + top: 1rem; } + +/*=== LOGS */ +/*=========*/ +.loglist { + overflow: hidden; + border: 1px solid #bbaa99; } + +.log { + margin: 10px 0; + padding: 5px 2%; + overflow: auto; + font-size: 0.8rem; + background: #fcfaf8; + color: #766556; } + +.log > .date { + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 20px; } + +.log.error > .date { + background: #f5633e; + color: #fff; } + +.log.warning > .date { + background: #f4f762; } + +.log.notice > .date { + background: #f5f0ec; } + +.log.debug > .date { + background: #221f1d; + color: #fff; } + +/*=== STATISTICS */ +/*===============*/ +.stat { + margin: 10px 0 20px; } + +.stat th, +.stat td, +.stat tr { + border: none; } + +.stat > table td, +.stat > table th { + border-bottom: 1px solid #e4d8cc; } + +.stat > .horizontal-list { + margin: 0 0 5px; } + +.stat > .horizontal-list .item { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } + +.stat > .horizontal-list .item:first-child { + width: 270px; } + +/*=== MOBILE */ +/*===========*/ +@media (max-width: 840px) { + ul.nav .item { + width: 100%; } + ul.nav .item img { + display: none; } + ul.nav .item a { + display: inline-block; + padding: 1rem 1rem 1rem 2.5rem; + color: #363330; + width: 100%; + background: url("../../themes/icons/logout.svg") no-repeat #efe3d3 3% center; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + ul.nav .item a:hover, ul.nav .item a:active { + background: url("../../themes/icons/logout.svg") no-repeat #f5633e 3% center; + text-decoration: none; + color: #fff; } + + .aside { + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + .aside.aside_feed { + padding: 0; } + .aside .tree .tree-folder .tree-folder-items .item a { + padding: 0.5rem 1rem; } + + .aside .toggle_aside, + #panel .close { + display: block; + width: 100%; + height: 50px; + line-height: 50px; + text-align: center; + background: #b7641d; } + + .header { + padding: 0.5rem; } + .header .item.title { + display: none; } + .header .item.search input { + width: 90%; + height: 3.5rem; } + .header .item.search input:focus { + width: 100%; } + .header .item.search .btn { + min-height: 49px; + padding: 0.5rem 2rem; } + .header .item.configure { + width: 2.75rem; + top: 3.125rem; } + .header .item.configure .dropdown .btn { + padding: 1.125rem; } + + .nav_menu .btn { + margin: 0; + padding: 0.85rem 1.25rem; } + .nav_menu .stick { + margin: 0.5rem 0.5rem; } + .nav_menu .stick .btn { + margin: 0; + padding: 0.85rem 1.25rem; } + .nav_menu .stick .btn.read_all { + padding: 0.85rem 1.25rem; } + .nav_menu .search { + display: none; + max-width: 97%; } + .nav_menu .search .input { + max-width: 97%; + width: 90px; } + .nav_menu .search .input::focus { + width: 400px; } + + #stream .flux .flux_header { + padding: 0.5rem 0; } + + .day { + text-align: center; + padding: 1rem 0; } + .day .name { + display: block; + padding: 0; + width: 100%; + line-height: 1.5rem; + margin-bottom: 1rem; } + + .pagination { + margin: 0 0 3.5em; } + + #nav_entries { + line-height: 4.5rem; } + + .notification { + border-radius: 0; } + .notification a.close { + display: block; + left: 0; + background: transparent; } + .notification a.close:hover { + opacity: 0.5; } + .notification a.close .icon { + display: none; } } +html, body { + font-family: "lato", "Helvetica", "Arial", sans-serif; + font-size: 0.875rem; } + +/*=== GENERAL */ +/*============*/ +html, body { + height: 100%; + background: #f5f0ec; } + +/*=== Links */ +a, button.as-link { + outline: none; + color: #ca7227; } + +/*# sourceMappingURL=ansum.css.map */ diff --git a/p/themes/Ansum/ansum.css.map b/p/themes/Ansum/ansum.css.map new file mode 100644 index 00000000000..7b1c15ade43 --- /dev/null +++ b/p/themes/Ansum/ansum.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["_fonts.scss","_mixins.scss","_forms.scss","_variables.scss","_tables.scss","_components.scss","_divers.scss","_sidebar.scss","_layout.scss","_list-view.scss","_global-view.scss","_reader-view.scss","_configuration.scss","_logs.scss","_stats.scss","_mobile.scss","ansum.scss"], +"names": [], +"file": "ansum.css" +} \ No newline at end of file diff --git a/p/themes/Ansum/ansum.scss b/p/themes/Ansum/ansum.scss new file mode 100644 index 00000000000..1a538b50a51 --- /dev/null +++ b/p/themes/Ansum/ansum.scss @@ -0,0 +1,51 @@ +@import "fonts"; +@import "mixins"; +@import "variables"; + +@import "forms"; +@import "tables"; +@import "components"; + +@import "divers"; + +@import "sidebar"; +@import "layout"; +@import "list-view"; +@import "global-view"; +@import "reader-view"; + +@import "configuration"; + +@import "logs"; +@import "stats"; + +@import "mobile"; + +html, body{ + font-family: "lato", "Helvetica", "Arial", sans-serif; + font-size: 0.875rem; +} + +@charset "UTF-8"; + +/*=== GENERAL */ +/*============*/ +html, body { + height: 100%; + background: $grey-light; +} + +/*=== Links */ +a, button.as-link { + outline: none; + color: $main-first; +} + + + + + + + + + diff --git a/p/themes/Ansum/icons/cog-white.svg b/p/themes/Ansum/icons/cog-white.svg new file mode 100644 index 00000000000..3df8c2d7075 --- /dev/null +++ b/p/themes/Ansum/icons/cog-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/cog.svg b/p/themes/Ansum/icons/cog.svg new file mode 100644 index 00000000000..aa56d862b3b --- /dev/null +++ b/p/themes/Ansum/icons/cog.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/down-white.svg b/p/themes/Ansum/icons/down-white.svg new file mode 100644 index 00000000000..df05a47046b --- /dev/null +++ b/p/themes/Ansum/icons/down-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/down.svg b/p/themes/Ansum/icons/down.svg new file mode 100644 index 00000000000..5c732e19923 --- /dev/null +++ b/p/themes/Ansum/icons/down.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/icon.svg b/p/themes/Ansum/icons/icon.svg new file mode 100644 index 00000000000..7900c0a799c --- /dev/null +++ b/p/themes/Ansum/icons/icon.svg @@ -0,0 +1,75 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/link-white.svg b/p/themes/Ansum/icons/link-white.svg new file mode 100644 index 00000000000..c6baadc852f --- /dev/null +++ b/p/themes/Ansum/icons/link-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/p/themes/Ansum/icons/link.svg b/p/themes/Ansum/icons/link.svg new file mode 100644 index 00000000000..44ee847b09e --- /dev/null +++ b/p/themes/Ansum/icons/link.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/magnifier.svg b/p/themes/Ansum/icons/magnifier.svg new file mode 100644 index 00000000000..ae3732c69ba --- /dev/null +++ b/p/themes/Ansum/icons/magnifier.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/more.svg b/p/themes/Ansum/icons/more.svg new file mode 100644 index 00000000000..6e505e71b8a --- /dev/null +++ b/p/themes/Ansum/icons/more.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/non-starred-white.svg b/p/themes/Ansum/icons/non-starred-white.svg new file mode 100644 index 00000000000..9bd48c801ce --- /dev/null +++ b/p/themes/Ansum/icons/non-starred-white.svg @@ -0,0 +1,61 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/non-starred.svg b/p/themes/Ansum/icons/non-starred.svg new file mode 100644 index 00000000000..9d49930c0b8 --- /dev/null +++ b/p/themes/Ansum/icons/non-starred.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/read-grey.svg b/p/themes/Ansum/icons/read-grey.svg new file mode 100644 index 00000000000..4857aca028b --- /dev/null +++ b/p/themes/Ansum/icons/read-grey.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/read-white.svg b/p/themes/Ansum/icons/read-white.svg new file mode 100644 index 00000000000..578facdc733 --- /dev/null +++ b/p/themes/Ansum/icons/read-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/read.svg b/p/themes/Ansum/icons/read.svg new file mode 100644 index 00000000000..d583cce03f7 --- /dev/null +++ b/p/themes/Ansum/icons/read.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/refresh.svg b/p/themes/Ansum/icons/refresh.svg new file mode 100644 index 00000000000..f23fbf4a26d --- /dev/null +++ b/p/themes/Ansum/icons/refresh.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/rss-white.svg b/p/themes/Ansum/icons/rss-white.svg new file mode 100644 index 00000000000..b7fbf998742 --- /dev/null +++ b/p/themes/Ansum/icons/rss-white.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/rss.svg b/p/themes/Ansum/icons/rss.svg new file mode 100644 index 00000000000..7044bbaa4ca --- /dev/null +++ b/p/themes/Ansum/icons/rss.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/starred-white.svg b/p/themes/Ansum/icons/starred-white.svg new file mode 100644 index 00000000000..896dd1eebc2 --- /dev/null +++ b/p/themes/Ansum/icons/starred-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/starred.svg b/p/themes/Ansum/icons/starred.svg new file mode 100644 index 00000000000..3b0bf8cb8b9 --- /dev/null +++ b/p/themes/Ansum/icons/starred.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/tick-color.svg b/p/themes/Ansum/icons/tick-color.svg new file mode 100644 index 00000000000..fe0c28a84ec --- /dev/null +++ b/p/themes/Ansum/icons/tick-color.svg @@ -0,0 +1,57 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/p/themes/Ansum/icons/tick-white.svg b/p/themes/Ansum/icons/tick-white.svg new file mode 100644 index 00000000000..0bcc26f47e2 --- /dev/null +++ b/p/themes/Ansum/icons/tick-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/tick.svg b/p/themes/Ansum/icons/tick.svg new file mode 100644 index 00000000000..9c436e7a0ce --- /dev/null +++ b/p/themes/Ansum/icons/tick.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/unread-grey.svg b/p/themes/Ansum/icons/unread-grey.svg new file mode 100644 index 00000000000..1981cf92c86 --- /dev/null +++ b/p/themes/Ansum/icons/unread-grey.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/unread-white.svg b/p/themes/Ansum/icons/unread-white.svg new file mode 100644 index 00000000000..6623924ab60 --- /dev/null +++ b/p/themes/Ansum/icons/unread-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/unread.svg b/p/themes/Ansum/icons/unread.svg new file mode 100644 index 00000000000..5c6c3ac8ef3 --- /dev/null +++ b/p/themes/Ansum/icons/unread.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/up-white.svg b/p/themes/Ansum/icons/up-white.svg new file mode 100644 index 00000000000..e19d1e1d962 --- /dev/null +++ b/p/themes/Ansum/icons/up-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/up.svg b/p/themes/Ansum/icons/up.svg new file mode 100644 index 00000000000..306b076e961 --- /dev/null +++ b/p/themes/Ansum/icons/up.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/view-global-white.svg b/p/themes/Ansum/icons/view-global-white.svg new file mode 100644 index 00000000000..950267f6ad5 --- /dev/null +++ b/p/themes/Ansum/icons/view-global-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/view-global.svg b/p/themes/Ansum/icons/view-global.svg new file mode 100644 index 00000000000..08632a19078 --- /dev/null +++ b/p/themes/Ansum/icons/view-global.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/view-list-white.svg b/p/themes/Ansum/icons/view-list-white.svg new file mode 100644 index 00000000000..c76fc298bd3 --- /dev/null +++ b/p/themes/Ansum/icons/view-list-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Ansum/icons/view-list.svg b/p/themes/Ansum/icons/view-list.svg new file mode 100644 index 00000000000..bcea010551a --- /dev/null +++ b/p/themes/Ansum/icons/view-list.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/view-reader-white.svg b/p/themes/Ansum/icons/view-reader-white.svg new file mode 100644 index 00000000000..70175c623d0 --- /dev/null +++ b/p/themes/Ansum/icons/view-reader-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/icons/view-reader.svg b/p/themes/Ansum/icons/view-reader.svg new file mode 100644 index 00000000000..7471037d9d0 --- /dev/null +++ b/p/themes/Ansum/icons/view-reader.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Ansum/loader.gif b/p/themes/Ansum/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce36565b395e6f1aae266bbae460ecff84c48cb3 GIT binary patch literal 4251 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 literal 0 HcmV?d00001 diff --git a/p/themes/Ansum/metadata.json b/p/themes/Ansum/metadata.json new file mode 100644 index 00000000000..c76c3fa9ca2 --- /dev/null +++ b/p/themes/Ansum/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "Ansum", + "author": "Thomas Guesnon", + "description": "Thème sablonneux", + "version": 0.1, + "files": ["_template.css", "ansum.css"] +} diff --git a/p/themes/Ansum/sass.sh b/p/themes/Ansum/sass.sh new file mode 100644 index 00000000000..a653acacee8 --- /dev/null +++ b/p/themes/Ansum/sass.sh @@ -0,0 +1 @@ +sass --watch ansum.scss:ansum.css diff --git a/p/themes/Ansum/thumbs/original.png b/p/themes/Ansum/thumbs/original.png new file mode 100644 index 0000000000000000000000000000000000000000..6351ee51e9b3a1a8d83dc096f8ff1c00b6aa9bc3 GIT binary patch literal 182930 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¬&rKgx}ILu!}7S35u#n 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%0A6ZcHK8K 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

    8~8A5x7ym{O%>6;BccK${1Su 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 literal 0 HcmV?d00001 diff --git a/p/themes/Mapco/_components.scss b/p/themes/Mapco/_components.scss new file mode 100644 index 00000000000..cf8cb5e9180 --- /dev/null +++ b/p/themes/Mapco/_components.scss @@ -0,0 +1,352 @@ +/*=== COMPONENTS */ +/*===============*/ +/*=== Forms */ +// parti dans _forms.scss + +/*=== Horizontal-list */ +.horizontal-list { + margin: 0; + padding: 0.1rem 0; + + .item{ + vertical-align: middle; + + &:first-child{ + padding-left: 0.5rem; + } + + } +} + +/*=== Dropdown */ +.dropdown-menu { + background: $grey-lighter; + margin: 0; + font-size: 1rem; + text-align: left; + padding: 0.5rem 0 1rem 0; + border: none; + border-radius: 3px; + + -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + + &::after { + content: ""; + position: absolute; + top: -4px; + right: 13px; + width: 10px; + height: 10px; + z-index: -10; + transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + background: white; + // border-top: 1px solid #95a5a6; + // border-left: 1px solid #95a5a6; + } + + .dropdown-header { + // padding: 0 5px 5px; + margin: 1.75rem 0 0.5rem 2rem; + font-weight: bold; + text-align: left; + color: $grey-dark; + text-transform: uppercase; + letter-spacing: 1px; + + + } + + .item{ + @include transition(all, 0.075s, ease-in-out); + a, span, .as-link{ + padding: 0 2rem; + line-height: 2.5em; + font-size: 1rem; + color: $main-font-color; + } + &:hover{ + background: $main-first; + color: $white; + + a, button{ + text-decoration: none; + color: $white; + } + } + &[aria-checked="true"]{ + a::before{ + font-weight: bold; + margin: 0 0 0 -14px; + } + } + } + .input{ + select, input{ + margin: 0 auto 5px; + padding: 2px 5px; + border-radius: 3px; + } + } + .separator { + margin: 0.75rem 0; + border-bottom: 1px solid $grey-light; + // display: none; + } + +} +.tree .tree-folder .tree-folder-items .dropdown-menu, +.tree .tree-folder .tree-folder-items .dropdown-menu{ + // tout ça sert à restaurer l'apparence du dropdown dans un contexte de sidebar sombre + + .item{ + padding: 0; + + a, + button{ + color: $main-font-color; + + &:hover{ + color: $white; + } + } + &:hover{ + background: $main-first; + } + } +} + + + + +/*=== Alerts */ +.alert { + margin: 1rem 0; + // width: 100%; + padding: 1rem; + font-size: 1rem; + background: $grey-lighter; + border: 1px solid $grey-medium; + border-radius: 3px; + color: $grey-dark; + text-shadow: 0 0 1px $grey-light; +} +.alert-head { + font-size: 1.15em; +} +.alert > a { + text-decoration: underline; + color: inherit; +} +.alert-warn { + background: $warning-light; + border: 1px solid unquote($warning-text+'33'); // on ajoute l'opacité à la fin + color: $warning-text; +} +.alert-success { + background: $success-light; + border: 1px solid unquote($success-text+'33'); + color: $success-text; +} +.alert-error { + background: $alert-light; + border: 1px solid unquote($alert-text+'33'); + color: $alert-text; +} + +/*=== Pagination */ +.pagination { + text-align: center; + font-size: 0.8em; + background: $grey-light; + color: $main-font-color; + + .item{ + &.pager-current { + font-weight: bold; + font-size: 1.5em; + background: $sid-bg; + color: $grey-light; + } + a { + display: block; + font-style: italic; + line-height: 3em; + text-decoration: none; + color: $main-font-color; + + &:hover{ + background: $main-font-color; + color: $grey-light; + } + } + } + + .loading, + a:hover.loading { + font-size: 0; + background: url("loader.gif") center center no-repeat #34495e; + } +} +.content .pagination { + margin: 0; + padding: 0; +} + + +/*=== Boxes */ +.box { + // border: 1px solid #ddd; + border: none; + border-radius: 3px; + background: $white; + + -webkit-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25); + box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.25); + + .box-title { + margin: 0; + padding: 5px 10px; + background: $grey-light; + color: $main-font-color; + // border-bottom: 1px solid #ddd; + border-radius: 2px 2px 0 0; + + form{ + input{ + width: 85%; + } + .dropdown{ + float: right; + a.dropdown-toggle{ + padding: 0; + background-image: url(icons/more.svg); + background-repeat: no-repeat; + background-position: right 8px; + // float: right; + border-radius: 0; + img{ + display: none; + } + } + } + } + } + .box-content { + // max-height: 260px; + + .item { + padding: 0.5rem 0.75rem; + font-size: 1rem; + color: $main-font-color; + line-height: 1.7em; + border-bottom: 1px solid $grey-light; + + img{ + margin-right: 0.75rem; + } + + .configure { + visibility: hidden; + width: 1.75rem; + height: 1.75rem; + display: block; + border-radius: 2px; + float: left; + margin-right: 0.5rem; + background: url("icons/cog.svg") no-repeat 4px 4px; + + .icon { + vertical-align: middle; + border-radius: 3px; + display: none; + } + &:hover{ + // background: $main-first; + background: url("icons/cog-white.svg") no-repeat 4px 4px $main-first; + } + } + &:hover .configure { + visibility: visible; + } + } + .item:last-child{ + border-bottom: none; + } + } +} + +/*=== "Load more" part */ +#bigMarkAsRead { + text-align: center; + text-decoration: none; + background: $main-first-light; + color: $main-first; + + @include transition(all, 0.15s, ease-in-out); + + &:hover { + background: $main-first; + color: #fff; + + .bigTick{ + background: url(icons/tick-white.svg) center no-repeat; + } + } + .bigTick{ + margin: 0.5rem 0; + display: inline-block; + text-indent: -9999px; + background: url(icons/tick-color.svg) center no-repeat; + height: 64px; + width: 64px; + white-space: nowrap; + } +} + +// page de login +.formLogin{ + background: $sid-bg; + + .header{ + .configure{ + padding-right: 1rem; + img{ + margin-right: 0.5rem; + } + + a.signin{ + color: $white; + } + } + } + + h1{ + color: $white; + } + form#crypto-form{ + div{ + margin-bottom: 1rem; + + label{ + font-size: 1rem; + color: $grey-medium; + + + } + input{ + background: $main-first-darker; + + &:focus{ + background: $grey-lighter; + color: $main-font-color; + } + } + } + } +} diff --git a/p/themes/Mapco/_configuration.scss b/p/themes/Mapco/_configuration.scss new file mode 100644 index 00000000000..c3c6fd41753 --- /dev/null +++ b/p/themes/Mapco/_configuration.scss @@ -0,0 +1,90 @@ +/*=== Configuration pages */ +.post { + padding: 1rem 2rem; + font-size: 1rem; + + form { + margin: 1rem 0; + + // Gestion des extensions + .horizontal-list{ + margin-bottom: 0.5rem; + + .item{ + .stick{ + // width: 65%; + // margin-right: 1rem; + // display:flex; + + } + .btn{ + // width: 8rem; + // flex-grow: 1; + } + } + + } + } + &.content { + max-width: 550px; + } + + h1, h2{ // pages titles + font-size: 3rem; + margin-top: 1.75rem; + font-weight: 300; + line-height: 1.2em; + // font-family: "spectral"; + color: $main-font-color; + } + + a[href="./"]{ // C'est le bouton "Retour à vos flux" + display: inline-block; + // min-height: 38px; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.75rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: $grey-lighter; + border: 1px solid $grey-medium-light; + border-radius: 5px; + // border: none; + color: $grey-dark; + + &:hover{ + text-decoration: none; + background: $main-first; + color: white; + border: 1px solid $main-first; + } + } + +} + + + +#slider{ + border-left: none; + + -webkit-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); + box-shadow: 0px 6px 8px 0px rgba(0,0,0,0.35); +} + +.slide-container{ + .properties{ + background: rgba(0, 0, 0, 0.75); + border: 0; + padding: 1rem; + color: white; + + .page-number{ + right: 1rem; + top: 1rem; + } + } +} diff --git a/p/themes/Mapco/_divers.scss b/p/themes/Mapco/_divers.scss new file mode 100644 index 00000000000..7d122f1b430 --- /dev/null +++ b/p/themes/Mapco/_divers.scss @@ -0,0 +1,12 @@ +/*=== DIVERS */ +/*===========*/ +.aside.aside_feed .nav-form input, +.aside.aside_feed .nav-form select { + width: 140px; +} +.aside.aside_feed .nav-form .dropdown .dropdown-menu { + right: -20px; +} +.aside.aside_feed .nav-form .dropdown .dropdown-menu::after { + right: 33px; +} diff --git a/p/themes/Mapco/_fonts.scss b/p/themes/Mapco/_fonts.scss new file mode 100644 index 00000000000..5891be83469 --- /dev/null +++ b/p/themes/Mapco/_fonts.scss @@ -0,0 +1,56 @@ +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff"); +} +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff"); +} +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff"); +} +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff"); +} +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff"); +} diff --git a/p/themes/Mapco/_forms.scss b/p/themes/Mapco/_forms.scss new file mode 100644 index 00000000000..8a388aa8a16 --- /dev/null +++ b/p/themes/Mapco/_forms.scss @@ -0,0 +1,153 @@ +/* btns */ + +.btn { + display: inline-block; + min-height: 38px; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.5rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: $grey-lighter; + border-radius: 5px; + border: none; + color: $grey-dark; + + @include transition(all, 0.15s, ease-in-out); + + &.btn-important { + background: $main-first; + color: $white; + + // @include transition(all, 0.15s, ease-in-out); + + &:hover, + &:active { + background: $main-first-alt; + } + } + + + &.btn-attention { + background: $alert-bg; + color: #fff; + + &:hover, + &:active { + background: $alert-text; + } + } + + &:hover { + text-decoration: none; + } +} + +a.btn { + min-height: 25px; + line-height: 25px; +} + +/*=== Forms */ +legend { + display: inline-block; + width: auto; + margin: 2rem 0 1rem 0; + padding: 0; + font-size: 1rem; + clear: both; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 700; +} +label { + min-height: 25px; + padding: 5px 0; + cursor: pointer; + color: $grey-dark; +} +textarea { + width: 360px; + height: 100px; +} +input, select, textarea, button { + font-family: "lato", "Helvetica", "Arial", sans-serif; + min-height: 25px; + padding: 5px 10px; + line-height: 25px; + vertical-align: middle; + background: $white; + border: 1px solid $grey-light; + font-size: 1rem; + color: $grey-dark; + border-radius: 2px; +} +option { + padding: 0 .5em; +} +input:focus, select:focus, textarea:focus { + color: $main-font-color; + border-color: $main-first; +} +input:invalid, select:invalid { + color: $alert-bg; + border-color: $alert-bg; + box-shadow: none; +} +input:disabled, select:disabled { + background: $grey-light; +} +input.extend { + transition: width 200ms linear; + -moz-transition: width 200ms linear; + -webkit-transition: width 200ms linear; + -o-transition: width 200ms linear; + -ms-transition: width 200ms linear; +} + + +.form-group { + padding: 5px; + border-radius: 3px; + + &::after { + content: ""; + display: block; + clear: both; + } + &:hover { + // background: #fff; + // border: 1px solid #eee; + // border-radius: 3px; + // border: 1px solid #eee; + } + .group-name { + padding: 10px 0; + text-align: right; + } + .group-controls { + min-height: 25px; + padding: 5px 0; + } + .group-controls .control { + line-height: 2.0em; + } + table { + margin: 10px 0 0 220px; + } + + &.form-actions { + margin: 15px 0 25px; + padding: 5px 0; + // background: #333; + } + &.form-actions .btn { + margin: 0 0.5rem 0 0; + } +} + + + diff --git a/p/themes/Mapco/_global-view.scss b/p/themes/Mapco/_global-view.scss new file mode 100644 index 00000000000..30979bd6ce8 --- /dev/null +++ b/p/themes/Mapco/_global-view.scss @@ -0,0 +1,80 @@ +/*=== GLOBAL VIEW */ +/*================*/ + +#stream{ + .box.category{ + + &:not([data-unread="0"]) .box-title { + // background: #3498db; + } + &:not([data-unread="0"]) .box-title:active { + // background: #2980b9; + } + &:not([data-unread="0"]) .box-title .title { + font-weight: bold; + // color: #fff; + } + + .box-title{ + background: none; + padding: 1.5rem; + + a.title{ + font-weight: normal; + text-decoration: none; + text-align: left; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + color: $grey-dark; + + &:not([data-unread="0"])::after { + position: absolute; + top: 1.75rem; + right: 0; + line-height: 1.5rem; + background: $grey-light; + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; + } + &:hover{ + color: $main-first; + } + } + } + + .box-content{ + padding-bottom: 0.5rem; + .item.feed { + // padding: 2px 10px; + font-size: 1rem; + padding: 0.5rem 1.5rem; + + a{ + color: $main-font-color; + font-weight: 400; + + &:hover{ + color: $main-first; + text-decoration: none; + } + } + } + } + } +} + + +// le panel qui apparait en overlay pour afficher les flux +#overlay{ + background: rgba(0, 0, 0, 0.65); +} +#panel{ + top: 3rem; + right: 3rem; + bottom: 3rem; + left: 3rem; + border-radius: 3px; +} diff --git a/p/themes/Mapco/_layout.scss b/p/themes/Mapco/_layout.scss new file mode 100644 index 00000000000..b62618d810f --- /dev/null +++ b/p/themes/Mapco/_layout.scss @@ -0,0 +1,462 @@ +/*=== STRUCTURE */ +/*===============*/ +/*=== Header */ +.header { + background: $sid-bg; + padding: 0.5rem 1.35rem; + display: block; + table-layout: none; + width: auto; + + .item{ + vertical-align: middle; + // text-align: center; + // display: flex; + // justify-content: space-between; + // flex-direction: row; + + &.title{ + + font-weight: 400; + width: 280px; + + h1{ + a{ + text-decoration: none; + color: $sid-font-color; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + + img{ + margin-right: 0.5rem; + + } + } + } + } + &.search{ + // text-align: center; + // width: 50%; + + input{ + width: 230px; + border-radius: 2px 0 0 2px; + background-color: $sid-bg-alt; + color: $sid-font-color; + border: none; + + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background-color: $sid-bg-dark; + } + + &:focus{ + width: 350px; + + background-color: $white; + color: $grey-dark; + } + } + .btn{ + img{display: none;} + border-radius: 0 2px 2px 0; + + background-color: $main-first; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/magnifier.svg); + + border-left-width: 0; + + width: 3rem; + min-height: 35px; + + &:hover{ + background-color: $main-first-alt; + } + } + } + &.configure{ + width: 2rem; + position: absolute; + right: 1rem; + top: 1.25rem; + text-align: center; + // float: right; + + .btn{ + img{display: none;} + // border-radius: 0 2px 2px 0; + + background-color: transparent; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/cog-white.svg); + + padding: 0 0.5rem; + + // border-left-width: 0; + + // width: 3rem; + + &:hover{ + // background-color: $main-first-alt; + } + } + } + } + + +} + +/*=== Body */ +#global { + height: calc(100% - 85px); +} + + + + +/*=== Prompt (centered) */ +.prompt { + text-align: center; +} +.prompt label { + text-align: left; +} +.prompt form { + margin: 10px auto 20px auto; + width: 200px; +} +.prompt input { + margin: 5px auto; + width: 100%; +} +.prompt p { + margin: 20px 0; +} + +/*=== New article notification */ +#new-article { + text-align: center; + font-size: 1rem; + background: $main-first; +} +#new-article:hover { + background: $main-first-alt; +} +#new-article > a { + line-height: 3em; + font-weight: bold; + color: $white; +} +#new-article > a:hover { + text-decoration: none; +} + +/*=== Day indication */ +.day { + padding: 1rem 0 0 1.25rem; + font-weight: 700; + line-height: 3em; + letter-spacing: 1px; + text-transform: uppercase; + font-size: 0.875rem; + color: $light-font-color; + // border-left: 2px solid #ecf0f1; + + .name{ + padding: 0 1rem 0 1rem; + font-size: 0.875rem; + // font-weight: 700; + color: $main-font-color; + position: relative; + left: 0; + + // letter-spacing: 1px; + text-transform: uppercase; + } +} + +/*=== Index menu */ +.nav_menu { + text-align: center; + padding: 5px 0; + + .btn{ + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: $grey-lighter; + background-position: center; + background-repeat: no-repeat; + + &:hover{ + background-color: $grey-light; + } + } + + .stick{ + background: $grey-lighter; + + .btn{ + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: $grey-lighter; + background-position: center; + background-repeat: no-repeat; + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background-color: $grey-medium-light; + } + + &.active{ + background-color: $main-first; + } + + img.icon{display: none;} // on efface pour afficher nos icones, mouhahaha !! + + + // actions + &#toggle-read{ + background-image: url(icons/read.svg); + } + &#toggle-read.active{ + background-image: url(icons/read-white.svg); + } + + &#toggle-unread{ + background-image: url(icons/unread.svg); + } + &#toggle-unread.active{ + background-image: url(icons/unread-white.svg); + } + + &#toggle-starred{ + background-image: url(icons/starred.svg); + } + &#toggle-starred.active{ + background-image: url(icons/starred-white.svg); + } + + &#toggle-non-starred{ + background-image: url(icons/non-starred.svg); + } + &#toggle-non-starred.active{ + background-image: url(icons/non-starred-white.svg); + } + + // read all + &.read_all{ + background-color: $grey-lighter; + // min-height: 0; + color:$main-font-color; + padding: 5px 16px; + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background-color: $grey-medium-light; + } + } + + // views + &.view-normal{ + background-image: url(icons/view-list.svg); + } + &.view-normal.active{ + background-image: url(icons/view-list-white.svg); + } + + &.view-global{ + background-image: url(icons/view-global.svg); + } + &.view-global.active{ + background-image: url(icons/view-global-white.svg); + } + + &.view-reader{ + background-image: url(icons/view-reader.svg); + } + &.view-reader.active{ + background-image: url(icons/view-reader-white.svg); + } + + &.view-rss{ + background-image: url(icons/rss.svg); + } + + } + .dropdown { + a.dropdown-toggle{ + border-left-width: 0; + background-image: url(icons/more.svg); + } + } + + &#nav_menu_action{ + + } + &#nav_menu_read_all{ + + } + &#nav_menu_views{ + + } + } +} + + +#dropdown-query ~ .dropdown-menu .dropdown-header .icon { + vertical-align: middle; + background-color: $grey-medium-dark; + border-radius: 3px; +} + + +/*=== Content of feed articles */ +.content, .content.thin { + padding: 20px 10px; + + font-size: 1.125rem; + line-height: 1.8rem; + + h1.title, h1{ + + a{ + color: $main-font-color; + font-family: "spectral"; + font-size: 2rem; + + &:hover{ + color: $main-first; + text-decoration: none; + } + } + } + .author{ + font-size: 1.125rem; + color: $light-font-color; + } + p, ul{ + font-size: 1.125rem; + line-height: 1.8rem; + } + hr{ + } + .content hr { + margin: 30px 10px; + height: 1px; + background: $grey-medium-light; + border: 0; + box-shadow: 0 2px 5px #ccc; + } + + pre { + margin: 10px auto; + padding: 10px 20px; + overflow: auto; + background: $main-first-darker; + color: $white; + font-size: 0.9rem; + border-radius: 3px; + + code { + background: transparent; + color: $white; + border: none; + } + } + code { + padding: 2px 5px; + color: $grey-light; + background: $grey-lighter; + border: 1px solid $grey-light; + border-radius: 3px; + } + + + blockquote { + display: block; + margin: 0; + padding: 5px 20px; + border-top: 1px solid $grey-medium-light; + border-bottom: 1px solid $grey-medium-light; + background: $grey-lighter; + color: $main-font-color; + + p { + margin: 0; + } + } + +} + + +/*=== Notification and actualize notification */ +.notification { + position: fixed; + top: auto; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 3rem; + + padding: 1rem 0; + text-align: center; + // font-weight: bold; + font-size: 1em; + line-height: 3em; + z-index: 10; + vertical-align: middle; + background: $grey-medium-light; + color: $grey-dark; + // border-radius: 3px; + border: none; + + .msg{ + font-size: 1rem; + display: inline-block; + } + + &.good { + background: $success-bg; + color: $white; + } + &.bad { + background: $alert-bg; + color: $white; + } + a.close { + padding: 0 15px; + line-height: 3em; + border-radius: 0 3px 3px 0; + } + + &.good a.close:hover { + background: $success-text; + } + &.bad a.close:hover { + background: $alert-text; + } + + &#actualizeProgress { + line-height: 2em; + + br{ + display: none; + } + } +} + + +/*=== Navigation menu (for articles) */ +#nav_entries { + margin: 0; + text-align: center; + line-height: 3em; + table-layout: fixed; + background: $sid-bg; +} diff --git a/p/themes/Mapco/_list-view.scss b/p/themes/Mapco/_list-view.scss new file mode 100644 index 00000000000..69cd8a81dd4 --- /dev/null +++ b/p/themes/Mapco/_list-view.scss @@ -0,0 +1,92 @@ +/*=== Feed articles */ +.flux { + // border-left: 2px solid #ecf0f1; + background: $white; + + @include transition(all, 0.15s, ease-in-out); + + &:hover{ + background: $grey-lighter; + + &:not(.current):hover .item.title { + background: $grey-lighter; + + + } + } + &.current{ + border-left-color: $main-first; + background: $grey-lighter; + } + &.not_read{ + background: $unread-bg; //-------------------- + // border-left-color: #FF5300; + + &:hover{ + background: $unread-bg-light; //-------------------- + } + + &:not(.current):hover .item.title { + background: $unread-bg-light; + + + } + .item.title{ + a{ + color: $unread-font-color; //-------------------- + } + + } + .item.website{ + a{ + color: $unread-font-color; //-------------------- + } + } + .item.date{ + color: unquote($unread-font-color+"99"); //-------------------- + } +} + + &.favorite { + background: $fav-light; + border-left-color: $fav-bg; + + @include transition(all, 0.15s, ease-in-out); + + &:not(.current):hover .item.title { + background: $fav-light; + } + } + + .website{ + a{ + color: $main-font-color; + opacity: 0.75; + } + + .favicon { + padding: 5px; + } + } + .date { + font-size: 0.85rem; + color: $main-font-color; + opacity: 0.75; + } + + .bottom { + font-size: 1rem; + text-align: center; + } +} + +.flux_header { + font-size: 1rem; + cursor: pointer; + border-top: 1px solid $grey-light; + + .title { + font-size: 1rem; + } +} + diff --git a/p/themes/Mapco/_logs.scss b/p/themes/Mapco/_logs.scss new file mode 100644 index 00000000000..ae1e24c6c96 --- /dev/null +++ b/p/themes/Mapco/_logs.scss @@ -0,0 +1,34 @@ +/*=== LOGS */ +/*=========*/ +.loglist { + overflow: hidden; + border: 1px solid $grey-medium-dark; +} +.log { + margin: 10px 0; + padding: 5px 2%; + overflow: auto; + font-size: 0.8rem; + background: $grey-lighter; + color: $grey-dark; +} + +.log > .date { + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 20px; +} +.log.error > .date { + background: $alert-bg; + color: #fff; +} +.log.warning > .date { + background: $warning-bg; +} +.log.notice > .date { + background: $grey-light; +} +.log.debug > .date { + background: $main-first-darker; + color: $white; +} diff --git a/p/themes/Mapco/_mixins.scss b/p/themes/Mapco/_mixins.scss new file mode 100644 index 00000000000..3542ade6b14 --- /dev/null +++ b/p/themes/Mapco/_mixins.scss @@ -0,0 +1,59 @@ +/* FUNCTIONS */ + +//animation +@mixin transition($target, $duration, $ease) { + -webkit-transition: $target $duration $ease; + -moz-transition: $target $duration $ease; + -o-transition: $target $duration $ease; + -ms-transition: $target $duration $ease; + transition: $target $duration $ease; +} + +//animation +@mixin animation-delay($delay) { + -webkit-animation-delay: $delay; + /* Safari 4.0 - 8.0 */ + animation-delay: $delay; +} + +//animation +@mixin animation($animate...) { + $max: length($animate); + $animations: ''; + @for $i from 1 through $max { + $animations: #{$animations + nth($animate, $i)}; + @if $i < $max { + $animations: #{$animations + ", "}; + } + } + -webkit-animation: $animations; + -moz-animation: $animations; + -o-animation: $animations; + -ms-transition: $animations; + animation: $animations; +} + +//keyframes +@mixin keyframes($animationName) { + @-webkit-keyframes #{$animationName} { + @content; + } + @-moz-keyframes #{$animationName} { + @content; + } + @-o-keyframes #{$animationName} { + @content; + } + @keyframes #{$animationName} { + @content; + } +} + +@mixin border-radius($radius: 4px){ + -moz-border-radius: $radius; + -webkit-border-radius: $radius; + -ms-border-radius: $radius; + -o-border-radius: $radius; + -khtml-border-radius: $radius; + border-radius: $radius; +} diff --git a/p/themes/Mapco/_mobile.scss b/p/themes/Mapco/_mobile.scss new file mode 100644 index 00000000000..dcf4e74f29b --- /dev/null +++ b/p/themes/Mapco/_mobile.scss @@ -0,0 +1,169 @@ +/*=== MOBILE */ +/*===========*/ +@media(max-width: 840px) { + html, body{ + // font-size: 1rem; + } + ul.nav{ + .item{ + width: 100%; + + img{ + display: none; + } + a{ + display: inline-block; + padding: 1rem 1rem 1rem 2.5rem; + color: $sid-font-color; + width: 100%; + + background: url("../../themes/icons/logout.svg") no-repeat $sid-bg-dark 3% center; + + @include transition(all, 0.2s, ease-in-out); + + &:hover, + &:active{ + background: url("../../themes/icons/logout.svg") no-repeat $alert-bg 3% center; + text-decoration: none; + } + } + + } + + } + .aside { + @include transition(all, 0.2s, ease-in-out); + + &.aside_feed { + padding: 0; + } + + .tree .tree-folder .tree-folder-items .item a{ + padding: 0.5rem 1rem; + } + } + .aside .toggle_aside, + #panel .close { + display: block; + width: 100%; + height: 50px; + line-height: 50px; + text-align: center; + background: $main-first-alt; + } + + .header{ + padding: 0.5rem; + .item{ + &.title{ + display: none; + } + + &.search{ + input{ + width: 90%; + height: 3.5rem; + + &:focus{ + width: 100%; + + } + } + .btn{ + min-height: 49px; + padding: 0.5rem 2rem; + } + } + &.configure{ + width: 2.75rem; + top: 3.125rem; + .dropdown{ + .btn{ + padding: 1.125rem; + } + } + } + } + } + + .nav_menu{ + .btn { + margin: 0; + padding: 0.85rem 1.25rem; + } + .stick { + margin: 0.5rem 0.5rem; + + .btn{ + margin: 0; + padding: 0.85rem 1.25rem; + + &.read_all{ + padding: 0.85rem 1.25rem; + } + } + } + .search { + display: none; + max-width: 97%; + + .input{ + + max-width: 97%; + width: 90px; + + &::focus{ + width: 400px; + } + } + } + } + #stream{ + .flux{ + .flux_header{ + padding: 0.5rem 0; + } + } + } + + + + .day{ + text-align: center; + padding: 1rem 0; + .name { + // font-size: 1.1rem; + display: block; + padding: 0; + width: 100%; + line-height: 1.5rem; + margin-bottom: 1rem; + } + + } + + .pagination { + margin: 0 0 3.5em; + } + + #nav_entries{ + line-height: 4.5rem; + } + + .notification { + border-radius: 0; + + a.close { + display: block; + left: 0; + background: transparent; + } + a.close:hover { + opacity: 0.5; + } + a.close .icon { + display: none; + + } + } +} diff --git a/p/themes/Mapco/_reader-view.scss b/p/themes/Mapco/_reader-view.scss new file mode 100644 index 00000000000..4368908d62c --- /dev/null +++ b/p/themes/Mapco/_reader-view.scss @@ -0,0 +1,13 @@ +/*=== READER VIEW */ +/*================*/ +#stream.reader .flux { + padding: 0 0 50px; + background: $grey-light; + color: $main-font-color; + border: none; +} +#stream.reader .flux .author { + margin: 0 0 10px; + font-size: 90%; + color: $grey-medium-dark; +} diff --git a/p/themes/Mapco/_sidebar.scss b/p/themes/Mapco/_sidebar.scss new file mode 100644 index 00000000000..62ec1c1cf23 --- /dev/null +++ b/p/themes/Mapco/_sidebar.scss @@ -0,0 +1,291 @@ +/*=== Tree */ +.tree { + margin: 10px 0; + + &#sidebar{ + scrollbar-color: rgba(255,255, 0, 0.1) rgba(0, 0, 0, 0.05); + scrollbar-color: unquote($sid-font-color+"33") unquote($sid-font-color+"22"); + } + + + .tree-folder{ + border-bottom: 1px solid $sid-sep; + + .tree-folder-title { + position: relative; + background: $sid-bg; + font-size: 0.85rem; + letter-spacing: 1px; + padding: 12px 16px; + font-weight: 700; + text-transform: uppercase; + + .title { + background: inherit; + color: $sid-font-color; + &:hover{ + text-decoration: none; + } + } + } + &.active { + .tree-folder-title { + background: $sid-bg; + font-weight: bold; + } + } + .tree-folder-items { + background: $sid-bg-alt; + + .item{ + padding: 0 1rem; + line-height: 2.5rem; + font-size: 1rem; + font-weight: 400; + @include transition(all, 0.15s, ease-in-out); + + &.active{ + background: $sid-active; + + .dropdown li a{ + color: $main-font-color; + + &:hover{ + color: $sid-font-color; + } + } + + a{ + color: $sid-active-font; + } + } + + &:hover{ + background: $sid-bg-dark; + } + + a{ + text-decoration: none; + color: $sid-font-color; + } + } + + .feed .item-title:not([data-unread="0"])::before { + content: attr(data-unread); + background: $sid-pills; + font-size: 0.75rem; + display: block; + float: left; + padding: 3px 4px; + text-align:center; + border-radius: 12px; + margin: 11px 6px 0 4px; + line-height: 0.75rem; + } + .feed .item-title:not([data-unread="0"]) { + + } + } + } +} + +/*=== Buttons */ +.stick { + vertical-align: middle; + font-size: 0; + + input, .btn { + border-radius: 0; + } + .btn:first-child, + input:first-child { + border-radius: 5px 0 0 5px; + } + .btn:last-child, input:last-child, .btn + .dropdown > .btn { + border-radius: 0 5px 5px 0; + } + .btn + .btn, + .btn + input, + .btn + .dropdown > .btn, + input + .btn, + input + input, + input + .dropdown > .btn, + .dropdown + .btn, + .dropdown + input, + .dropdown + .dropdown > .btn { + border-left: 1px solid $grey-medium-light; + } + +} + +.aside { + background: $sid-bg; + + &.aside_feed { + padding: 10px 0; + text-align: center; + background: $sid-bg; + } + &.aside_feed .tree { + margin: 10px 0 50px; + } + +} + + +/* Sidebar des pages de configuration */ + + + +/*=== Navigation */ + +.nav-list{ + .nav-header, + .item{ + height: 2.5em; + line-height: 2.5em; + font-size: 1rem; + } + .item{ + background: $sid-bg; + @include transition(all, 0.15s, ease-in-out); + a{ + padding: 0 1rem; + color: $sid-font-color; + } + .error{ + a{ + color: $alert-bg; + } + } + &:hover{ + background: $sid-bg-dark; + color: $sid-font-color; + + .error{ + a{ + color: $sid-font-color; + background: $main-first; + } + } + .empty{ + a{ + color: $sid-font-color; + background: $warning-bg; + } + } + + a{ + color: $sid-font-color; + text-decoration: none; + } + } + &.active{ + background: $main-first; + color: $white; + + .error{ + a{ + color: $white; + background: $main-first; + } + } + + .empty{ + a{ + color: $white; + background: $warning-bg; + } + } + + a{ + color: $white; + text-decoration: none; + } + } + + } + &.empty{ + a{ + color: $warning-bg; + } + } + .disable{ + text-align: center; + background: $grey-lighter; + color: $grey-medium-dark; + } + + .nav-header { + padding: 0 10px; + font-weight: bold; + color: $grey-dark; + text-transform: uppercase; + letter-spacing: 1px; + margin-top: 1rem; + } + + .nav-form { + padding: 3px; + text-align: center; + } + + .nav-head { + margin: 0; + text-align: right; + // background: #34495e; + color: $white; + a { + color: $white; + } + .item { + padding: 5px 10px; + font-size: 0.9rem; + line-height: 1.5rem; + } + } +} + +/*=== Aside main page (categories) */ +.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after { + position: absolute; + right: 0; + line-height: 1.5rem; + background: $sid-pills; + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; +} + +.feed.item.empty.active { + background: $grey-dark; +} +.feed.item.error.active { + background: $grey-dark; +} +.feed.item.empty, +.feed.item.empty > a { + color: $grey-dark; +} +.feed.item.error, +.feed.item.error > a { + color: $grey-dark; +} +.feed.item.empty.active, +.feed.item.error.active, +.feed.item.empty.active > a, +.feed.item.error.active > a { + color: $white; +} +.aside_feed .tree-folder-items .dropdown-menu::after { + left: 2px; +} +.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon { + border-radius: 3px; +} +.aside_feed .stick #btn-importExport{ + border-left-color: $sid-bg; +} diff --git a/p/themes/Mapco/_stats.scss b/p/themes/Mapco/_stats.scss new file mode 100644 index 00000000000..f287efa080f --- /dev/null +++ b/p/themes/Mapco/_stats.scss @@ -0,0 +1,27 @@ +/*=== STATISTICS */ +/*===============*/ +.stat { + margin: 10px 0 20px; +} + +.stat th, +.stat td, +.stat tr { + border: none; +} +.stat > table td, +.stat > table th { + border-bottom: 1px solid $grey-medium-light; +} + +.stat > .horizontal-list { + margin: 0 0 5px; +} +.stat > .horizontal-list .item { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.stat > .horizontal-list .item:first-child { + width: 270px; +} diff --git a/p/themes/Mapco/_tables.scss b/p/themes/Mapco/_tables.scss new file mode 100644 index 00000000000..608e19acaa6 --- /dev/null +++ b/p/themes/Mapco/_tables.scss @@ -0,0 +1,17 @@ +/*=== Tables */ +table { + border-collapse: collapse; +} + +tr, th, td { + padding: 0.5em; + border: 1px solid $grey-medium-light; +} +th { + background: $grey-lighter; +} +form td, +form th { + font-weight: normal; + text-align: center; +} diff --git a/p/themes/Mapco/_variables.scss b/p/themes/Mapco/_variables.scss new file mode 100644 index 00000000000..b01d9bd67df --- /dev/null +++ b/p/themes/Mapco/_variables.scss @@ -0,0 +1,53 @@ +// La couleur principale du thème +$main-first: #3366cc; // couleur principale +$main-first-alt: #2255cc; // var pour les hovers +$main-first-light: #effcfd; // var light 1 +$main-first-lighter: #f7fdfe; // var light 2 +$main-first-dark: #35363c; // var pour les hovers +$main-first-darker: #1d1e22; // var pour les hovers + +// les couleurs de polices liées +$main-font-color: #303136; +$light-font-color: #5b6871; +$white: #fff; // le blanc (des fois qu'on aurait envie de le teinter un peu) + +// toute la palette des gris, très utile +// on essaiera de teinter ces gris suivant la couleur principale +$grey-darker: #3b3f4d; +$grey-dark: #5b6871; +$grey-medium-dark: #a6a7ae; +$grey-medium: #c5ced3; +$grey-medium-light: #d5d8db; +$grey-light: #eff0f2; +$grey-lighter: #f9fafb; + +$unread-font-color: $main-first; +$unread-bg: #f2f6f8; +$unread-bg-light: #fdfdfe; + +// les couleurs d'alertes (rouge, jaune, vert) +$alert-bg: #f5633e; // la base +$alert-light: #fde0d8; // +light +$alert-text: #73341f; // +foncé + +$warning-bg: #f4f762; +$warning-light: #fdfde0; +$warning-text: #73762f; + +$success-bg: #10f587; +$success-light: #cffde7; +$success-text: #0c7540; + +// les favoris +$fav-bg: #FFC300; +$fav-light: #FFF6DA; + +// la couleur de sidebar, utile si on a envie d'un thème qui aurait une sidebar foncé, e.g. +$sid-font-color: #FFFFFF; // la couleur de fond de la barre de gauche et du header +$sid-bg: #303136; // le background général de la barre de gauche, et du header +$sid-bg-alt: #26272a; // le background de l'intérieur des groupes +$sid-bg-dark: #17181a; // les hovers +$sid-sep: #3f3f3f; // les séparateurs +$sid-active: $main-first; // la couleur active +$sid-active-font: #FFFFFF; // la couleur active +$sid-pills: rgba(0,0,0, 0.25); // les gélules diff --git a/p/themes/Mapco/icons/cog-white.svg b/p/themes/Mapco/icons/cog-white.svg new file mode 100644 index 00000000000..3df8c2d7075 --- /dev/null +++ b/p/themes/Mapco/icons/cog-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/cog.svg b/p/themes/Mapco/icons/cog.svg new file mode 100644 index 00000000000..aa56d862b3b --- /dev/null +++ b/p/themes/Mapco/icons/cog.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/down-white.svg b/p/themes/Mapco/icons/down-white.svg new file mode 100644 index 00000000000..df05a47046b --- /dev/null +++ b/p/themes/Mapco/icons/down-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/down.svg b/p/themes/Mapco/icons/down.svg new file mode 100644 index 00000000000..5c732e19923 --- /dev/null +++ b/p/themes/Mapco/icons/down.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/icon.svg b/p/themes/Mapco/icons/icon.svg new file mode 100644 index 00000000000..594abba5926 --- /dev/null +++ b/p/themes/Mapco/icons/icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/link-white.svg b/p/themes/Mapco/icons/link-white.svg new file mode 100644 index 00000000000..c6baadc852f --- /dev/null +++ b/p/themes/Mapco/icons/link-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/p/themes/Mapco/icons/link.svg b/p/themes/Mapco/icons/link.svg new file mode 100644 index 00000000000..44ee847b09e --- /dev/null +++ b/p/themes/Mapco/icons/link.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/magnifier.svg b/p/themes/Mapco/icons/magnifier.svg new file mode 100644 index 00000000000..ae3732c69ba --- /dev/null +++ b/p/themes/Mapco/icons/magnifier.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/more.svg b/p/themes/Mapco/icons/more.svg new file mode 100644 index 00000000000..6e505e71b8a --- /dev/null +++ b/p/themes/Mapco/icons/more.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/non-starred-white.svg b/p/themes/Mapco/icons/non-starred-white.svg new file mode 100644 index 00000000000..9bd48c801ce --- /dev/null +++ b/p/themes/Mapco/icons/non-starred-white.svg @@ -0,0 +1,61 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/non-starred.svg b/p/themes/Mapco/icons/non-starred.svg new file mode 100644 index 00000000000..9d49930c0b8 --- /dev/null +++ b/p/themes/Mapco/icons/non-starred.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/read-grey.svg b/p/themes/Mapco/icons/read-grey.svg new file mode 100644 index 00000000000..4857aca028b --- /dev/null +++ b/p/themes/Mapco/icons/read-grey.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/read-white.svg b/p/themes/Mapco/icons/read-white.svg new file mode 100644 index 00000000000..578facdc733 --- /dev/null +++ b/p/themes/Mapco/icons/read-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/read.svg b/p/themes/Mapco/icons/read.svg new file mode 100644 index 00000000000..d583cce03f7 --- /dev/null +++ b/p/themes/Mapco/icons/read.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/refresh.svg b/p/themes/Mapco/icons/refresh.svg new file mode 100644 index 00000000000..f23fbf4a26d --- /dev/null +++ b/p/themes/Mapco/icons/refresh.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/rss-white.svg b/p/themes/Mapco/icons/rss-white.svg new file mode 100644 index 00000000000..b7fbf998742 --- /dev/null +++ b/p/themes/Mapco/icons/rss-white.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/rss.svg b/p/themes/Mapco/icons/rss.svg new file mode 100644 index 00000000000..7044bbaa4ca --- /dev/null +++ b/p/themes/Mapco/icons/rss.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/starred-white.svg b/p/themes/Mapco/icons/starred-white.svg new file mode 100644 index 00000000000..896dd1eebc2 --- /dev/null +++ b/p/themes/Mapco/icons/starred-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/starred.svg b/p/themes/Mapco/icons/starred.svg new file mode 100644 index 00000000000..3b0bf8cb8b9 --- /dev/null +++ b/p/themes/Mapco/icons/starred.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/tick-color.svg b/p/themes/Mapco/icons/tick-color.svg new file mode 100644 index 00000000000..302541e8063 --- /dev/null +++ b/p/themes/Mapco/icons/tick-color.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/tick-white.svg b/p/themes/Mapco/icons/tick-white.svg new file mode 100644 index 00000000000..0bcc26f47e2 --- /dev/null +++ b/p/themes/Mapco/icons/tick-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/tick.svg b/p/themes/Mapco/icons/tick.svg new file mode 100644 index 00000000000..9c436e7a0ce --- /dev/null +++ b/p/themes/Mapco/icons/tick.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/unread-grey.svg b/p/themes/Mapco/icons/unread-grey.svg new file mode 100644 index 00000000000..1981cf92c86 --- /dev/null +++ b/p/themes/Mapco/icons/unread-grey.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/unread-white.svg b/p/themes/Mapco/icons/unread-white.svg new file mode 100644 index 00000000000..6623924ab60 --- /dev/null +++ b/p/themes/Mapco/icons/unread-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/unread.svg b/p/themes/Mapco/icons/unread.svg new file mode 100644 index 00000000000..5c6c3ac8ef3 --- /dev/null +++ b/p/themes/Mapco/icons/unread.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/up-white.svg b/p/themes/Mapco/icons/up-white.svg new file mode 100644 index 00000000000..e19d1e1d962 --- /dev/null +++ b/p/themes/Mapco/icons/up-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/up.svg b/p/themes/Mapco/icons/up.svg new file mode 100644 index 00000000000..306b076e961 --- /dev/null +++ b/p/themes/Mapco/icons/up.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/view-global-white.svg b/p/themes/Mapco/icons/view-global-white.svg new file mode 100644 index 00000000000..950267f6ad5 --- /dev/null +++ b/p/themes/Mapco/icons/view-global-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/view-global.svg b/p/themes/Mapco/icons/view-global.svg new file mode 100644 index 00000000000..08632a19078 --- /dev/null +++ b/p/themes/Mapco/icons/view-global.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/view-list-white.svg b/p/themes/Mapco/icons/view-list-white.svg new file mode 100644 index 00000000000..c76fc298bd3 --- /dev/null +++ b/p/themes/Mapco/icons/view-list-white.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/p/themes/Mapco/icons/view-list.svg b/p/themes/Mapco/icons/view-list.svg new file mode 100644 index 00000000000..bcea010551a --- /dev/null +++ b/p/themes/Mapco/icons/view-list.svg @@ -0,0 +1,60 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/view-reader-white.svg b/p/themes/Mapco/icons/view-reader-white.svg new file mode 100644 index 00000000000..70175c623d0 --- /dev/null +++ b/p/themes/Mapco/icons/view-reader-white.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/icons/view-reader.svg b/p/themes/Mapco/icons/view-reader.svg new file mode 100644 index 00000000000..7471037d9d0 --- /dev/null +++ b/p/themes/Mapco/icons/view-reader.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/p/themes/Mapco/loader.gif b/p/themes/Mapco/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce36565b395e6f1aae266bbae460ecff84c48cb3 GIT binary patch literal 4251 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 literal 0 HcmV?d00001 diff --git a/p/themes/Mapco/mapco.css b/p/themes/Mapco/mapco.css new file mode 100644 index 00000000000..90994163e03 --- /dev/null +++ b/p/themes/Mapco/mapco.css @@ -0,0 +1,1306 @@ +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Regular.woff") format("woff"); } +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Lato"), url("../fonts/LatoLatin-Italic.woff") format("woff"); } +@font-face { + font-family: "lato"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-Bold.woff") format("woff"); } +@font-face { + font-family: "lato"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Lato"), url("../fonts/LatoLatin-BoldItalic.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Regular.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 400; + src: local("Spectral"), url("../fonts/Spectral-Italic.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: normal; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-Bold.woff") format("woff"); } +@font-face { + font-family: "spectral"; + font-style: italic; + font-stretch: normal; + font-weight: 700; + src: local("Spectral"), url("../fonts/Spectral-BoldItalic.woff") format("woff"); } +/* FUNCTIONS */ +/* btns */ +.btn { + display: inline-block; + min-height: 38px; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.5rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: #f9fafb; + border-radius: 5px; + border: none; + color: #5b6871; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .btn.btn-important { + background: #3366cc; + color: #fff; } + .btn.btn-important:hover, .btn.btn-important:active { + background: #2255cc; } + .btn.btn-attention { + background: #f5633e; + color: #fff; } + .btn.btn-attention:hover, .btn.btn-attention:active { + background: #73341f; } + .btn:hover { + text-decoration: none; } + +a.btn { + min-height: 25px; + line-height: 25px; } + +/*=== Forms */ +legend { + display: inline-block; + width: auto; + margin: 2rem 0 1rem 0; + padding: 0; + font-size: 1rem; + clear: both; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 700; } + +label { + min-height: 25px; + padding: 5px 0; + cursor: pointer; + color: #5b6871; } + +textarea { + width: 360px; + height: 100px; } + +input, select, textarea, button { + font-family: "lato", "Helvetica", "Arial", sans-serif; + min-height: 25px; + padding: 5px 10px; + line-height: 25px; + vertical-align: middle; + background: #fff; + border: 1px solid #eff0f2; + font-size: 1rem; + color: #5b6871; + border-radius: 2px; } + +option { + padding: 0 .5em; } + +input:focus, select:focus, textarea:focus { + color: #303136; + border-color: #3366cc; } + +input:invalid, select:invalid { + color: #f5633e; + border-color: #f5633e; + box-shadow: none; } + +input:disabled, select:disabled { + background: #eff0f2; } + +input.extend { + transition: width 200ms linear; + -moz-transition: width 200ms linear; + -webkit-transition: width 200ms linear; + -o-transition: width 200ms linear; + -ms-transition: width 200ms linear; } + +.form-group { + padding: 5px; + border-radius: 3px; } + .form-group::after { + content: ""; + display: block; + clear: both; } + .form-group .group-name { + padding: 10px 0; + text-align: right; } + .form-group .group-controls { + min-height: 25px; + padding: 5px 0; } + .form-group .group-controls .control { + line-height: 2.0em; } + .form-group table { + margin: 10px 0 0 220px; } + .form-group.form-actions { + margin: 15px 0 25px; + padding: 5px 0; } + .form-group.form-actions .btn { + margin: 0 0.5rem 0 0; } + +/*=== Tables */ +table { + border-collapse: collapse; } + +tr, th, td { + padding: 0.5em; + border: 1px solid #d5d8db; } + +th { + background: #f9fafb; } + +form td, +form th { + font-weight: normal; + text-align: center; } + +/*=== COMPONENTS */ +/*===============*/ +/*=== Forms */ +/*=== Horizontal-list */ +.horizontal-list { + margin: 0; + padding: 0.1rem 0; } + .horizontal-list .item { + vertical-align: middle; } + .horizontal-list .item:first-child { + padding-left: 0.5rem; } + +/*=== Dropdown */ +.dropdown-menu { + background: #f9fafb; + margin: 0; + font-size: 1rem; + text-align: left; + padding: 0.5rem 0 1rem 0; + border: none; + border-radius: 3px; + -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); } + .dropdown-menu::after { + content: ""; + position: absolute; + top: -4px; + right: 13px; + width: 10px; + height: 10px; + z-index: -10; + transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + background: white; } + .dropdown-menu .dropdown-header { + margin: 1.75rem 0 0.5rem 2rem; + font-weight: bold; + text-align: left; + color: #5b6871; + text-transform: uppercase; + letter-spacing: 1px; } + .dropdown-menu .item { + -webkit-transition: all 0.075s ease-in-out; + -moz-transition: all 0.075s ease-in-out; + -o-transition: all 0.075s ease-in-out; + -ms-transition: all 0.075s ease-in-out; + transition: all 0.075s ease-in-out; } + .dropdown-menu .item a, .dropdown-menu .item span, .dropdown-menu .item .as-link { + padding: 0 2rem; + line-height: 2.5em; + font-size: 1rem; + color: #303136; } + .dropdown-menu .item:hover { + background: #3366cc; + color: #fff; } + .dropdown-menu .item:hover a, .dropdown-menu .item:hover button { + text-decoration: none; + color: #fff; } + .dropdown-menu .item[aria-checked="true"] a::before { + font-weight: bold; + margin: 0 0 0 -14px; } + .dropdown-menu .input select, .dropdown-menu .input input { + margin: 0 auto 5px; + padding: 2px 5px; + border-radius: 3px; } + .dropdown-menu .separator { + margin: 0.75rem 0; + border-bottom: 1px solid #eff0f2; } + +.tree .tree-folder .tree-folder-items .dropdown-menu .item, +.tree .tree-folder .tree-folder-items .dropdown-menu .item { + padding: 0; } + .tree .tree-folder .tree-folder-items .dropdown-menu .item a, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button, + .tree .tree-folder .tree-folder-items .dropdown-menu .item a, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button { + color: #303136; } + .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item a:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item button:hover { + color: #fff; } + .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover, + .tree .tree-folder .tree-folder-items .dropdown-menu .item:hover { + background: #3366cc; } + +/*=== Alerts */ +.alert { + margin: 1rem 0; + padding: 1rem; + font-size: 1rem; + background: #f9fafb; + border: 1px solid #c5ced3; + border-radius: 3px; + color: #5b6871; + text-shadow: 0 0 1px #eff0f2; } + +.alert-head { + font-size: 1.15em; } + +.alert > a { + text-decoration: underline; + color: inherit; } + +.alert-warn { + background: #fdfde0; + border: 1px solid #73762f33; + color: #73762f; } + +.alert-success { + background: #cffde7; + border: 1px solid #0c754033; + color: #0c7540; } + +.alert-error { + background: #fde0d8; + border: 1px solid #73341f33; + color: #73341f; } + +/*=== Pagination */ +.pagination { + text-align: center; + font-size: 0.8em; + background: #eff0f2; + color: #303136; } + .pagination .item.pager-current { + font-weight: bold; + font-size: 1.5em; + background: #303136; + color: #eff0f2; } + .pagination .item a { + display: block; + font-style: italic; + line-height: 3em; + text-decoration: none; + color: #303136; } + .pagination .item a:hover { + background: #303136; + color: #eff0f2; } + .pagination .loading, + .pagination a:hover.loading { + font-size: 0; + background: url("loader.gif") center center no-repeat #34495e; } + +.content .pagination { + margin: 0; + padding: 0; } + +/*=== Boxes */ +.box { + border: none; + border-radius: 3px; + background: #fff; + -webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); + box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25); } + .box .box-title { + margin: 0; + padding: 5px 10px; + background: #eff0f2; + color: #303136; + border-radius: 2px 2px 0 0; } + .box .box-title form input { + width: 85%; } + .box .box-title form .dropdown { + float: right; } + .box .box-title form .dropdown a.dropdown-toggle { + padding: 0; + background-image: url(icons/more.svg); + background-repeat: no-repeat; + background-position: right 8px; + border-radius: 0; } + .box .box-title form .dropdown a.dropdown-toggle img { + display: none; } + .box .box-content .item { + padding: 0.5rem 0.75rem; + font-size: 1rem; + color: #303136; + line-height: 1.7em; + border-bottom: 1px solid #eff0f2; } + .box .box-content .item img { + margin-right: 0.75rem; } + .box .box-content .item .configure { + visibility: hidden; + width: 1.75rem; + height: 1.75rem; + display: block; + border-radius: 2px; + float: left; + margin-right: 0.5rem; + background: url("icons/cog.svg") no-repeat 4px 4px; } + .box .box-content .item .configure .icon { + vertical-align: middle; + border-radius: 3px; + display: none; } + .box .box-content .item .configure:hover { + background: url("icons/cog-white.svg") no-repeat 4px 4px #3366cc; } + .box .box-content .item:hover .configure { + visibility: visible; } + .box .box-content .item:last-child { + border-bottom: none; } + +/*=== "Load more" part */ +#bigMarkAsRead { + text-align: center; + text-decoration: none; + background: #effcfd; + color: #3366cc; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + #bigMarkAsRead:hover { + background: #3366cc; + color: #fff; } + #bigMarkAsRead:hover .bigTick { + background: url(icons/tick-white.svg) center no-repeat; } + #bigMarkAsRead .bigTick { + margin: 0.5rem 0; + display: inline-block; + text-indent: -9999px; + background: url(icons/tick-color.svg) center no-repeat; + height: 64px; + width: 64px; + white-space: nowrap; } + +.formLogin { + background: #303136; } + .formLogin .header .configure { + padding-right: 1rem; } + .formLogin .header .configure img { + margin-right: 0.5rem; } + .formLogin .header .configure a.signin { + color: #fff; } + .formLogin h1 { + color: #fff; } + .formLogin form#crypto-form div { + margin-bottom: 1rem; } + .formLogin form#crypto-form div label { + font-size: 1rem; + color: #c5ced3; } + .formLogin form#crypto-form div input { + background: #1d1e22; } + .formLogin form#crypto-form div input:focus { + background: #f9fafb; + color: #303136; } + +/*=== DIVERS */ +/*===========*/ +.aside.aside_feed .nav-form input, +.aside.aside_feed .nav-form select { + width: 140px; } + +.aside.aside_feed .nav-form .dropdown .dropdown-menu { + right: -20px; } + +.aside.aside_feed .nav-form .dropdown .dropdown-menu::after { + right: 33px; } + +/*=== Tree */ +.tree { + margin: 10px 0; } + .tree#sidebar { + scrollbar-color: rgba(255, 255, 0, 0.1) rgba(0, 0, 0, 0.05); + scrollbar-color: #FFFFFF33 #FFFFFF22; } + .tree .tree-folder { + border-bottom: 1px solid #3f3f3f; } + .tree .tree-folder .tree-folder-title { + position: relative; + background: #303136; + font-size: 0.85rem; + letter-spacing: 1px; + padding: 12px 16px; + font-weight: 700; + text-transform: uppercase; } + .tree .tree-folder .tree-folder-title .title { + background: inherit; + color: #FFFFFF; } + .tree .tree-folder .tree-folder-title .title:hover { + text-decoration: none; } + .tree .tree-folder.active .tree-folder-title { + background: #303136; + font-weight: bold; } + .tree .tree-folder .tree-folder-items { + background: #26272a; } + .tree .tree-folder .tree-folder-items .item { + padding: 0 1rem; + line-height: 2.5rem; + font-size: 1rem; + font-weight: 400; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .tree .tree-folder .tree-folder-items .item.active { + background: #3366cc; } + .tree .tree-folder .tree-folder-items .item.active .dropdown li a { + color: #303136; } + .tree .tree-folder .tree-folder-items .item.active .dropdown li a:hover { + color: #FFFFFF; } + .tree .tree-folder .tree-folder-items .item.active a { + color: #FFFFFF; } + .tree .tree-folder .tree-folder-items .item:hover { + background: #17181a; } + .tree .tree-folder .tree-folder-items .item a { + text-decoration: none; + color: #FFFFFF; } + .tree .tree-folder .tree-folder-items .feed .item-title:not([data-unread="0"])::before { + content: attr(data-unread); + background: rgba(0, 0, 0, 0.25); + font-size: 0.75rem; + display: block; + float: left; + padding: 3px 4px; + text-align: center; + border-radius: 12px; + margin: 11px 6px 0 4px; + line-height: 0.75rem; } + +/*=== Buttons */ +.stick { + vertical-align: middle; + font-size: 0; } + .stick input, .stick .btn { + border-radius: 0; } + .stick .btn:first-child, + .stick input:first-child { + border-radius: 5px 0 0 5px; } + .stick .btn:last-child, .stick input:last-child, .stick .btn + .dropdown > .btn { + border-radius: 0 5px 5px 0; } + .stick .btn + .btn, + .stick .btn + input, + .stick .btn + .dropdown > .btn, + .stick input + .btn, + .stick input + input, + .stick input + .dropdown > .btn, + .stick .dropdown + .btn, + .stick .dropdown + input, + .stick .dropdown + .dropdown > .btn { + border-left: 1px solid #d5d8db; } + +.aside { + background: #303136; } + .aside.aside_feed { + padding: 10px 0; + text-align: center; + background: #303136; } + .aside.aside_feed .tree { + margin: 10px 0 50px; } + +/* Sidebar des pages de configuration */ +/*=== Navigation */ +.nav-list .nav-header, +.nav-list .item { + height: 2.5em; + line-height: 2.5em; + font-size: 1rem; } +.nav-list .item { + background: #303136; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .nav-list .item a { + padding: 0 1rem; + color: #FFFFFF; } + .nav-list .item .error a { + color: #f5633e; } + .nav-list .item:hover { + background: #17181a; + color: #FFFFFF; } + .nav-list .item:hover .error a { + color: #FFFFFF; + background: #3366cc; } + .nav-list .item:hover .empty a { + color: #FFFFFF; + background: #f4f762; } + .nav-list .item:hover a { + color: #FFFFFF; + text-decoration: none; } + .nav-list .item.active { + background: #3366cc; + color: #fff; } + .nav-list .item.active .error a { + color: #fff; + background: #3366cc; } + .nav-list .item.active .empty a { + color: #fff; + background: #f4f762; } + .nav-list .item.active a { + color: #fff; + text-decoration: none; } +.nav-list.empty a { + color: #f4f762; } +.nav-list .disable { + text-align: center; + background: #f9fafb; + color: #a6a7ae; } +.nav-list .nav-header { + padding: 0 10px; + font-weight: bold; + color: #5b6871; + text-transform: uppercase; + letter-spacing: 1px; + margin-top: 1rem; } +.nav-list .nav-form { + padding: 3px; + text-align: center; } +.nav-list .nav-head { + margin: 0; + text-align: right; + color: #fff; } + .nav-list .nav-head a { + color: #fff; } + .nav-list .nav-head .item { + padding: 5px 10px; + font-size: 0.9rem; + line-height: 1.5rem; } + +/*=== Aside main page (categories) */ +.aside_feed .tree-folder-title > .title:not([data-unread="0"])::after { + position: absolute; + right: 0; + line-height: 1.5rem; + background: rgba(0, 0, 0, 0.25); + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; } + +.feed.item.empty.active { + background: #5b6871; } + +.feed.item.error.active { + background: #5b6871; } + +.feed.item.empty, +.feed.item.empty > a { + color: #5b6871; } + +.feed.item.error, +.feed.item.error > a { + color: #5b6871; } + +.feed.item.empty.active, +.feed.item.error.active, +.feed.item.empty.active > a, +.feed.item.error.active > a { + color: #fff; } + +.aside_feed .tree-folder-items .dropdown-menu::after { + left: 2px; } + +.aside_feed .tree-folder-items .item .dropdown-target:target ~ .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item:hover .dropdown-toggle > .icon, +.aside_feed .tree-folder-items .item.active .dropdown-toggle > .icon { + border-radius: 3px; } + +.aside_feed .stick #btn-importExport { + border-left-color: #303136; } + +/*=== STRUCTURE */ +/*===============*/ +/*=== Header */ +.header { + background: #303136; + padding: 0.5rem 1.35rem; + display: block; + table-layout: none; + width: auto; } + .header .item { + vertical-align: middle; } + .header .item.title { + font-weight: 400; + width: 280px; } + .header .item.title h1 a { + text-decoration: none; + color: #FFFFFF; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; } + .header .item.title h1 a img { + margin-right: 0.5rem; } + .header .item.search input { + width: 230px; + border-radius: 2px 0 0 2px; + background-color: #26272a; + color: #FFFFFF; + border: none; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .header .item.search input:hover { + background-color: #17181a; } + .header .item.search input:focus { + width: 350px; + background-color: #fff; + color: #5b6871; } + .header .item.search .btn { + border-radius: 0 2px 2px 0; + background-color: #3366cc; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/magnifier.svg); + border-left-width: 0; + width: 3rem; + min-height: 35px; } + .header .item.search .btn img { + display: none; } + .header .item.search .btn:hover { + background-color: #2255cc; } + .header .item.configure { + width: 2rem; + position: absolute; + right: 1rem; + top: 1.25rem; + text-align: center; } + .header .item.configure .btn { + background-color: transparent; + background-position: center; + background-repeat: no-repeat; + background-image: url(icons/cog-white.svg); + padding: 0 0.5rem; } + .header .item.configure .btn img { + display: none; } + +/*=== Body */ +#global { + height: calc(100% - 85px); } + +/*=== Prompt (centered) */ +.prompt { + text-align: center; } + +.prompt label { + text-align: left; } + +.prompt form { + margin: 10px auto 20px auto; + width: 200px; } + +.prompt input { + margin: 5px auto; + width: 100%; } + +.prompt p { + margin: 20px 0; } + +/*=== New article notification */ +#new-article { + text-align: center; + font-size: 1rem; + background: #3366cc; } + +#new-article:hover { + background: #2255cc; } + +#new-article > a { + line-height: 3em; + font-weight: bold; + color: #fff; } + +#new-article > a:hover { + text-decoration: none; } + +/*=== Day indication */ +.day { + padding: 1rem 0 0 1.25rem; + font-weight: 700; + line-height: 3em; + letter-spacing: 1px; + text-transform: uppercase; + font-size: 0.875rem; + color: #5b6871; } + .day .name { + padding: 0 1rem 0 1rem; + font-size: 0.875rem; + color: #303136; + position: relative; + left: 0; + text-transform: uppercase; } + +/*=== Index menu */ +.nav_menu { + text-align: center; + padding: 5px 0; } + .nav_menu .btn { + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: #f9fafb; + background-position: center; + background-repeat: no-repeat; } + .nav_menu .btn:hover { + background-color: #eff0f2; } + .nav_menu .stick { + background: #f9fafb; } + .nav_menu .stick .btn { + border-left-width: 0; + padding: 0.5rem 1rem; + background-color: #f9fafb; + background-position: center; + background-repeat: no-repeat; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .nav_menu .stick .btn:hover { + background-color: #d5d8db; } + .nav_menu .stick .btn.active { + background-color: #3366cc; } + .nav_menu .stick .btn img.icon { + display: none; } + .nav_menu .stick .btn#toggle-read { + background-image: url(icons/read.svg); } + .nav_menu .stick .btn#toggle-read.active { + background-image: url(icons/read-white.svg); } + .nav_menu .stick .btn#toggle-unread { + background-image: url(icons/unread.svg); } + .nav_menu .stick .btn#toggle-unread.active { + background-image: url(icons/unread-white.svg); } + .nav_menu .stick .btn#toggle-starred { + background-image: url(icons/starred.svg); } + .nav_menu .stick .btn#toggle-starred.active { + background-image: url(icons/starred-white.svg); } + .nav_menu .stick .btn#toggle-non-starred { + background-image: url(icons/non-starred.svg); } + .nav_menu .stick .btn#toggle-non-starred.active { + background-image: url(icons/non-starred-white.svg); } + .nav_menu .stick .btn.read_all { + background-color: #f9fafb; + color: #303136; + padding: 5px 16px; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .nav_menu .stick .btn.read_all:hover { + background-color: #d5d8db; } + .nav_menu .stick .btn.view-normal { + background-image: url(icons/view-list.svg); } + .nav_menu .stick .btn.view-normal.active { + background-image: url(icons/view-list-white.svg); } + .nav_menu .stick .btn.view-global { + background-image: url(icons/view-global.svg); } + .nav_menu .stick .btn.view-global.active { + background-image: url(icons/view-global-white.svg); } + .nav_menu .stick .btn.view-reader { + background-image: url(icons/view-reader.svg); } + .nav_menu .stick .btn.view-reader.active { + background-image: url(icons/view-reader-white.svg); } + .nav_menu .stick .btn.view-rss { + background-image: url(icons/rss.svg); } + .nav_menu .stick .dropdown a.dropdown-toggle { + border-left-width: 0; + background-image: url(icons/more.svg); } + +#dropdown-query ~ .dropdown-menu .dropdown-header .icon { + vertical-align: middle; + background-color: #a6a7ae; + border-radius: 3px; } + +/*=== Content of feed articles */ +.content, .content.thin { + padding: 20px 10px; + font-size: 1.125rem; + line-height: 1.8rem; } + .content h1.title a, .content h1 a, .content.thin h1.title a, .content.thin h1 a { + color: #303136; + font-family: "spectral"; + font-size: 2rem; } + .content h1.title a:hover, .content h1 a:hover, .content.thin h1.title a:hover, .content.thin h1 a:hover { + color: #3366cc; + text-decoration: none; } + .content .author, .content.thin .author { + font-size: 1.125rem; + color: #5b6871; } + .content p, .content ul, .content.thin p, .content.thin ul { + font-size: 1.125rem; + line-height: 1.8rem; } + .content .content hr, .content.thin .content hr { + margin: 30px 10px; + height: 1px; + background: #d5d8db; + border: 0; + box-shadow: 0 2px 5px #ccc; } + .content pre, .content.thin pre { + margin: 10px auto; + padding: 10px 20px; + overflow: auto; + background: #1d1e22; + color: #fff; + font-size: 0.9rem; + border-radius: 3px; } + .content pre code, .content.thin pre code { + background: transparent; + color: #fff; + border: none; } + .content code, .content.thin code { + padding: 2px 5px; + color: #eff0f2; + background: #f9fafb; + border: 1px solid #eff0f2; + border-radius: 3px; } + .content blockquote, .content.thin blockquote { + display: block; + margin: 0; + padding: 5px 20px; + border-top: 1px solid #d5d8db; + border-bottom: 1px solid #d5d8db; + background: #f9fafb; + color: #303136; } + .content blockquote p, .content.thin blockquote p { + margin: 0; } + +/*=== Notification and actualize notification */ +.notification { + position: fixed; + top: auto; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 3rem; + padding: 1rem 0; + text-align: center; + font-size: 1em; + line-height: 3em; + z-index: 10; + vertical-align: middle; + background: #d5d8db; + color: #5b6871; + border: none; } + .notification .msg { + font-size: 1rem; + display: inline-block; } + .notification.good { + background: #10f587; + color: #fff; } + .notification.bad { + background: #f5633e; + color: #fff; } + .notification a.close { + padding: 0 15px; + line-height: 3em; + border-radius: 0 3px 3px 0; } + .notification.good a.close:hover { + background: #0c7540; } + .notification.bad a.close:hover { + background: #73341f; } + .notification#actualizeProgress { + line-height: 2em; } + .notification#actualizeProgress br { + display: none; } + +/*=== Navigation menu (for articles) */ +#nav_entries { + margin: 0; + text-align: center; + line-height: 3em; + table-layout: fixed; + background: #303136; } + +/*=== Feed articles */ +.flux { + background: #fff; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .flux:hover { + background: #f9fafb; } + .flux:hover:not(.current):hover .item.title { + background: #f9fafb; } + .flux.current { + border-left-color: #3366cc; + background: #f9fafb; } + .flux.not_read { + background: #f2f6f8; } + .flux.not_read:hover { + background: #fdfdfe; } + .flux.not_read:not(.current):hover .item.title { + background: #fdfdfe; } + .flux.not_read .item.title a { + color: #3366cc; } + .flux.not_read .item.website a { + color: #3366cc; } + .flux.not_read .item.date { + color: #3366cc99; } + .flux.favorite { + background: #FFF6DA; + border-left-color: #FFC300; + -webkit-transition: all 0.15s ease-in-out; + -moz-transition: all 0.15s ease-in-out; + -o-transition: all 0.15s ease-in-out; + -ms-transition: all 0.15s ease-in-out; + transition: all 0.15s ease-in-out; } + .flux.favorite:not(.current):hover .item.title { + background: #FFF6DA; } + .flux .website a { + color: #303136; + opacity: 0.75; } + .flux .website .favicon { + padding: 5px; } + .flux .date { + font-size: 0.85rem; + color: #303136; + opacity: 0.75; } + .flux .bottom { + font-size: 1rem; + text-align: center; } + +.flux_header { + font-size: 1rem; + cursor: pointer; + border-top: 1px solid #eff0f2; } + .flux_header .title { + font-size: 1rem; } + +/*=== GLOBAL VIEW */ +/*================*/ +#stream .box.category:not([data-unread="0"]) .box-title .title { + font-weight: bold; } +#stream .box.category .box-title { + background: none; + padding: 1.5rem; } + #stream .box.category .box-title a.title { + font-weight: normal; + text-decoration: none; + text-align: left; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + color: #5b6871; } + #stream .box.category .box-title a.title:not([data-unread="0"])::after { + position: absolute; + top: 1.75rem; + right: 0; + line-height: 1.5rem; + background: #eff0f2; + border-radius: 12px; + padding: 0 0.75rem; + margin: -0.5rem 1rem 0 0; + text-align: center; } + #stream .box.category .box-title a.title:hover { + color: #3366cc; } +#stream .box.category .box-content { + padding-bottom: 0.5rem; } + #stream .box.category .box-content .item.feed { + font-size: 1rem; + padding: 0.5rem 1.5rem; } + #stream .box.category .box-content .item.feed a { + color: #303136; + font-weight: 400; } + #stream .box.category .box-content .item.feed a:hover { + color: #3366cc; + text-decoration: none; } + +#overlay { + background: rgba(0, 0, 0, 0.65); } + +#panel { + top: 3rem; + right: 3rem; + bottom: 3rem; + left: 3rem; + border-radius: 3px; } + +/*=== READER VIEW */ +/*================*/ +#stream.reader .flux { + padding: 0 0 50px; + background: #eff0f2; + color: #303136; + border: none; } + +#stream.reader .flux .author { + margin: 0 0 10px; + font-size: 90%; + color: #a6a7ae; } + +/*=== Configuration pages */ +.post { + padding: 1rem 2rem; + font-size: 1rem; } + .post form { + margin: 1rem 0; } + .post form .horizontal-list { + margin-bottom: 0.5rem; } + .post.content { + max-width: 550px; } + .post h1, .post h2 { + font-size: 3rem; + margin-top: 1.75rem; + font-weight: 300; + line-height: 1.2em; + color: #303136; } + .post a[href="./"] { + display: inline-block; + min-width: 15px; + line-height: 25px; + margin: 0; + padding: 0.75rem 1.5rem; + font-size: 1rem; + vertical-align: middle; + cursor: pointer; + overflow: hidden; + background: #f9fafb; + border: 1px solid #d5d8db; + border-radius: 5px; + color: #5b6871; } + .post a[href="./"]:hover { + text-decoration: none; + background: #3366cc; + color: white; + border: 1px solid #3366cc; } + +#slider { + border-left: none; + -webkit-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + -moz-box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); + box-shadow: 0px 6px 8px 0px rgba(0, 0, 0, 0.35); } + +.slide-container .properties { + background: rgba(0, 0, 0, 0.75); + border: 0; + padding: 1rem; + color: white; } + .slide-container .properties .page-number { + right: 1rem; + top: 1rem; } + +/*=== LOGS */ +/*=========*/ +.loglist { + overflow: hidden; + border: 1px solid #a6a7ae; } + +.log { + margin: 10px 0; + padding: 5px 2%; + overflow: auto; + font-size: 0.8rem; + background: #f9fafb; + color: #5b6871; } + +.log > .date { + margin: 0 10px 0 0; + padding: 5px 10px; + border-radius: 20px; } + +.log.error > .date { + background: #f5633e; + color: #fff; } + +.log.warning > .date { + background: #f4f762; } + +.log.notice > .date { + background: #eff0f2; } + +.log.debug > .date { + background: #1d1e22; + color: #fff; } + +/*=== STATISTICS */ +/*===============*/ +.stat { + margin: 10px 0 20px; } + +.stat th, +.stat td, +.stat tr { + border: none; } + +.stat > table td, +.stat > table th { + border-bottom: 1px solid #d5d8db; } + +.stat > .horizontal-list { + margin: 0 0 5px; } + +.stat > .horizontal-list .item { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } + +.stat > .horizontal-list .item:first-child { + width: 270px; } + +/*=== MOBILE */ +/*===========*/ +@media (max-width: 840px) { + ul.nav .item { + width: 100%; } + ul.nav .item img { + display: none; } + ul.nav .item a { + display: inline-block; + padding: 1rem 1rem 1rem 2.5rem; + color: #FFFFFF; + width: 100%; + background: url("../../themes/icons/logout.svg") no-repeat #17181a 3% center; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + ul.nav .item a:hover, ul.nav .item a:active { + background: url("../../themes/icons/logout.svg") no-repeat #f5633e 3% center; + text-decoration: none; } + + .aside { + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + -ms-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + .aside.aside_feed { + padding: 0; } + .aside .tree .tree-folder .tree-folder-items .item a { + padding: 0.5rem 1rem; } + + .aside .toggle_aside, + #panel .close { + display: block; + width: 100%; + height: 50px; + line-height: 50px; + text-align: center; + background: #2255cc; } + + .header { + padding: 0.5rem; } + .header .item.title { + display: none; } + .header .item.search input { + width: 90%; + height: 3.5rem; } + .header .item.search input:focus { + width: 100%; } + .header .item.search .btn { + min-height: 49px; + padding: 0.5rem 2rem; } + .header .item.configure { + width: 2.75rem; + top: 3.125rem; } + .header .item.configure .dropdown .btn { + padding: 1.125rem; } + + .nav_menu .btn { + margin: 0; + padding: 0.85rem 1.25rem; } + .nav_menu .stick { + margin: 0.5rem 0.5rem; } + .nav_menu .stick .btn { + margin: 0; + padding: 0.85rem 1.25rem; } + .nav_menu .stick .btn.read_all { + padding: 0.85rem 1.25rem; } + .nav_menu .search { + display: none; + max-width: 97%; } + .nav_menu .search .input { + max-width: 97%; + width: 90px; } + .nav_menu .search .input::focus { + width: 400px; } + + #stream .flux .flux_header { + padding: 0.5rem 0; } + + .day { + text-align: center; + padding: 1rem 0; } + .day .name { + display: block; + padding: 0; + width: 100%; + line-height: 1.5rem; + margin-bottom: 1rem; } + + .pagination { + margin: 0 0 3.5em; } + + #nav_entries { + line-height: 4.5rem; } + + .notification { + border-radius: 0; } + .notification a.close { + display: block; + left: 0; + background: transparent; } + .notification a.close:hover { + opacity: 0.5; } + .notification a.close .icon { + display: none; } } +html, body { + font-family: "lato", "Helvetica", "Arial", sans-serif; + font-size: 0.875rem; } + +/*=== GENERAL */ +/*============*/ +html, body { + height: 100%; + background: #eff0f2; } + +/*=== Links */ +a, button.as-link { + outline: none; + color: #3366cc; } + +/*# sourceMappingURL=mapco.css.map */ diff --git a/p/themes/Mapco/mapco.css.map b/p/themes/Mapco/mapco.css.map new file mode 100644 index 00000000000..9441efeb461 --- /dev/null +++ b/p/themes/Mapco/mapco.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["_fonts.scss","_mixins.scss","_forms.scss","_variables.scss","_tables.scss","_components.scss","_divers.scss","_sidebar.scss","_layout.scss","_list-view.scss","_global-view.scss","_reader-view.scss","_configuration.scss","_logs.scss","_stats.scss","_mobile.scss","mapco.scss"], +"names": [], +"file": "mapco.css" +} \ No newline at end of file diff --git a/p/themes/Mapco/mapco.scss b/p/themes/Mapco/mapco.scss new file mode 100644 index 00000000000..1a538b50a51 --- /dev/null +++ b/p/themes/Mapco/mapco.scss @@ -0,0 +1,51 @@ +@import "fonts"; +@import "mixins"; +@import "variables"; + +@import "forms"; +@import "tables"; +@import "components"; + +@import "divers"; + +@import "sidebar"; +@import "layout"; +@import "list-view"; +@import "global-view"; +@import "reader-view"; + +@import "configuration"; + +@import "logs"; +@import "stats"; + +@import "mobile"; + +html, body{ + font-family: "lato", "Helvetica", "Arial", sans-serif; + font-size: 0.875rem; +} + +@charset "UTF-8"; + +/*=== GENERAL */ +/*============*/ +html, body { + height: 100%; + background: $grey-light; +} + +/*=== Links */ +a, button.as-link { + outline: none; + color: $main-first; +} + + + + + + + + + diff --git a/p/themes/Mapco/metadata.json b/p/themes/Mapco/metadata.json new file mode 100644 index 00000000000..24bb04b87c2 --- /dev/null +++ b/p/themes/Mapco/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "Mapco", + "author": "Thomas Guesnon", + "description": "Thème pour FreshRSS", + "version": 0.1, + "files": ["_template.css", "mapco.css"] +} diff --git a/p/themes/Mapco/sass.sh b/p/themes/Mapco/sass.sh new file mode 100644 index 00000000000..316d04cf21d --- /dev/null +++ b/p/themes/Mapco/sass.sh @@ -0,0 +1 @@ +sass --watch mapco.scss:mapco.css diff --git a/p/themes/Mapco/thumbs/original.png b/p/themes/Mapco/thumbs/original.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd7ec72c5de6f65233cd3d6a71c3a3b5f6ee864 GIT binary patch literal 171346 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 z�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 z zyf`0WOXKpt5F;lizYu^zq2Om7Q?97_N_{2O;iNo8kq1@1}(9fH;4V3}y?yI`cfNgn?as#L04QBEz{+G*6&Aq9=SUQjpYkk+gKEuG_VRpRyS|R?LWvv< zvWu&&T7wCaFpv>|PkECQUz>EzxQS(CWvldUc!;CP$jD@qSQ%JY@FN9dNchF5f6Z0u zt7>Y3PSQmS4$=hNtbKgo(;&i5xxLOvC2ATfD$H?i?_8JYvV4AZn`yi_*W}hZD>(>1 zafd;|WBh(Uu61?ozdVC#?z(#aZVtcTrp&IM;mef_1GWzjc|>|< zf-;#n5u$sd!kyA~WdNmJi-=1ntVb(i(W=_Bcvr`i>^KIn$fBEaKFZtUPh(vv*Y8hk z_UiJXqrn}Y#_xp3;D8_V^jQ?|dYQLtz|=@8tQM|W6UUH&OAU+J@jx4qubb-^CuT7yNV zGIZk2YI{av)ulFvU31T(IBhgwG<5)Yweh@MNv_(yY}#n`;Gr$O({Jm<%dq28TGi@q zLL)K;ea;Muu~Zc-;rJAmI0YAF{!;7-4sF@q4A5%1EdWUziHodV*ooBh7usgQg8P8h zTK}2T(n*A`&^3?0zQnu1tA39;_;Hv}o)Go3{p?&5H=ZSDkaVfKUD2K9+HJeIleX|# zYj%aFW&i7Hef1r9f`0W97)TH7*1fqqUS;R?WB2`wS4Plrx=}OWN^RE|%sk;l0fl>_HyJ{(T~D zT04ze)8?uEoJc8FjpfMkg@U*)_Q)pHws&Xl%YErmcC*VN(6qSI7w7>HaEQUuIh0i% z?MgVH?{Vac!v?Q4HuZ$1K1t!iGb zHOsSbKn?o4fvu67k$c^Yw2UK(N3H?@xG~l&41tpjlAXg}Ut}U9zPjG0ErZ${p49=Z ztH+BHK@jFgdLe`Qr#yX!3jc=s;=$*&9^6}>PIaDy#KgBGBqXGy74wHLS5^KJQc@Ql z?Y+v(o{a$e$Sb#-+n%}PWdMQ-QMpWNyF zh{(uYNZP=LW0d6P^V36?=MK@^Nb@_7@k}8D0|Q0jJL+gj8!M|C#*Ks7G7VW~CR=s# zvf+o@TM}U(kCT;_oSYn!n%iXuuzrIze$t4%tSlNDn)gx704(9m-rinGNy*l>T#xky zR^SXhHjwD(=zf0bHDcFdo-0u;x_@}s+}sS)=rLj^;d3;4e!T1M?q*?O8Hgc`jEuav zxlvS9T&uUj4Ht(GAosfs9M}vA4JG^N!OqFa$<2NFI|S|O>T3MsMHIxnpr8N=38}BQ zcVQZ_?1SgWOmh((p~J&N!Fo&$xcZ~`oQ%WMQ-_A%OjYe-d6Ucp@Bxx}{O(6uU%!6U z(ps2c$K-u`{7-q!QKAP;BiYiud*Feao7?u*mhDROLsMFWQ3^Si)$(E=rUE#|i=ay&Pf2{NQhNSrC7rTBRoFiS5K kF!g`t7&${@5XkWhob~QH0nOWkJ^=QRmQWC{6f+9?AC2hae*gdg literal 0 HcmV?d00001 diff --git a/p/themes/fonts/LatoLatin-Bold.woff b/p/themes/fonts/LatoLatin-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..cdfcbe0fbcc5e2103ceb22c55ba5c3ce401ff3fc GIT binary patch literal 72376 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 O>H*2g^7w?)$^Hw}sY>nu literal 0 HcmV?d00001 diff --git a/p/themes/fonts/LatoLatin-BoldItalic.woff b/p/themes/fonts/LatoLatin-BoldItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..3e683fea7c9baf063c3a0b05b28f00d21b391bdc GIT binary patch literal 73700 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

    P6o$HyL~wyU(k)o?HkIB#l#bpBk2Gbc_*^p>n| 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 Q2fCgoNM3VXenIko07n+AH2?qr literal 0 HcmV?d00001 diff --git a/p/themes/fonts/LatoLatin-Italic.woff b/p/themes/fonts/LatoLatin-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..d8cf84c8b96e712c12d2af8efefd8bf240316ebd GIT binary patch literal 74708 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�iT<391F-_cRjG_ocX=+oC#)Ux6}hh;a=M>gQz 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 literal 0 HcmV?d00001 diff --git a/p/themes/fonts/Spectral-Bold.woff b/p/themes/fonts/Spectral-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..10bbc7bbe1ab7d7e0d0e2cc2f1356f23804ce2b3 GIT binary patch literal 80168 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

    6@B5KI3>eRG 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 literal 0 HcmV?d00001 diff --git a/p/themes/fonts/Spectral-Italic.woff b/p/themes/fonts/Spectral-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..3a7d9cbed6a6ead9861dcbc67ad9e6dede775958 GIT binary patch literal 77436 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

    oA^36T;ea_AOdFXKQ-w5(+MJ>6w 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

  • -
      +
        tags as $tag): ?> @@ -64,8 +65,7 @@ $feeds = $cat->feeds(); if (!empty($feeds)) { $c_active = FreshRSS_Context::isCurrentGet('c_' . $cat->id()); - $c_show = $c_active && (!FreshRSS_Context::$user_conf->display_categories || - FreshRSS_Context::$current_get['feed']); + $c_show = $c_active || FreshRSS_Context::$user_conf->display_categories; ?>
      • diff --git a/app/views/helpers/index/normal/entry_bottom.phtml b/app/views/helpers/index/normal/entry_bottom.phtml index 1f35318e3ac..c0edbdf7da7 100644 --- a/app/views/helpers/index/normal/entry_bottom.phtml +++ b/app/views/helpers/index/normal/entry_bottom.phtml @@ -93,7 +93,7 @@ name(); ?> name(); ?> -
        +
        diff --git a/app/views/index/reader.phtml b/app/views/index/reader.phtml index 1485a199719..fbe37d2e358 100644 --- a/app/views/index/reader.phtml +++ b/app/views/index/reader.phtml @@ -42,7 +42,7 @@ if (!empty($this->entries)) { isFavorite() ? 'starred' : 'non-starred'); ?> - + ✇ name(); ?>

        title(); ?>

        diff --git a/lib/Minz/Request.php b/lib/Minz/Request.php index 8b2b610d663..912c354ac6f 100644 --- a/lib/Minz/Request.php +++ b/lib/Minz/Request.php @@ -95,6 +95,7 @@ public static function _param($key, $value = false) { */ public static function init() { self::magicQuotesOff(); + self::initJSON(); } /** @@ -237,6 +238,30 @@ public static function fetchGET($param = false, $default = false) { } } + /** + * Allows receiving POST data as application/json + */ + private static function initJSON() { + $contentType = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : ''; + if ($contentType == '') { //PHP < 5.3.16 + $contentType = isset($_SERVER['HTTP_CONTENT_TYPE']) ? $_SERVER['HTTP_CONTENT_TYPE'] : ''; + } + $contentType = strtolower(trim($contentType)); + if ($contentType === 'application/json') { + $ORIGINAL_INPUT = file_get_contents('php://input', false, null, 0, 1048576); + if ($ORIGINAL_INPUT != '') { + $json = json_decode($ORIGINAL_INPUT, true); + if ($json != null) { + foreach ($json as $k => $v) { + if (!isset($_POST[$k])) { + $_POST[$k] = $v; + } + } + } + } + } + } + /** * Permet de récupérer une variable de type $_POST * @param $param nom de la variable diff --git a/p/scripts/category.js b/p/scripts/category.js index caa4fa22fdd..86d8542f19b 100644 --- a/p/scripts/category.js +++ b/p/scripts/category.js @@ -1,6 +1,6 @@ "use strict"; -/* globals i18n */ -/* jshint globalstrict: true */ +/* globals context */ +/* jshint esversion:6, strict:global */ var loading = false, dnd_successful = false; @@ -9,7 +9,7 @@ function dragend_process(t) { t.setAttribute('draggable', 'false'); if (loading) { - window.setTimeout(function() { + setTimeout(function() { dragend_process(t); }, 50); return; @@ -20,11 +20,11 @@ function dragend_process(t) { t.style.opacity = ''; t.setAttribute('draggable', 'true'); } else { - var parent = $(t.parentNode); - $(t).remove(); + const p = t.parentElement; + t.remove(); - if (parent.children().length <= 0) { - parent.append('
      • ' + i18n.category_empty + '
      • '); + if (p.childElementCount <= 0) { + p.insertAdjacentHTML('beforeend', '
      • ' + context.i18n.category_empty + '
      • '); } } } @@ -33,89 +33,109 @@ var dragFeedId = '', dragHtml = ''; function init_draggable() { - if (!(window.$ && window.i18n)) { + if (!window.context) { if (window.console) { - console.log('FreshRSS waiting for JS…'); + console.log('FreshRSS category waiting for JS…'); } - window.setTimeout(init_draggable, 50); + setTimeout(init_draggable, 50); return; } - var draggable = '[draggable="true"]', - dropzone = '[dropzone="move"]'; - - $('.drop-section').on('dragstart', draggable, function(e) { - var drag = $(e.target).closest('[draggable]')[0]; - e.originalEvent.dataTransfer.effectAllowed = 'move'; - dragHtml = drag.outerHTML; - dragFeedId = drag.getAttribute('data-feed-id'); - e.originalEvent.dataTransfer.setData('text', dragFeedId); - drag.style.opacity = 0.3; - - dnd_successful = false; - }); - $('.drop-section').on('dragend', draggable, function(e) { - dragend_process(e.target); - }); - - $('.drop-section').on('dragenter', dropzone, function(e) { - $(this).addClass('drag-hover'); - - e.preventDefault(); - }); - $('.drop-section').on('dragleave', dropzone, function(e) { - var pos_this = $(this).position(), - scroll_top = $(document).scrollTop(), - top = pos_this.top, - left = pos_this.left, - right = left + $(this).width(), - bottom = top + $(this).height(), - mouse_x = e.originalEvent.screenX, - mouse_y = e.originalEvent.clientY + scroll_top; - - if (left <= mouse_x && mouse_x <= right && - top <= mouse_y && mouse_y <= bottom) { - // HACK because dragleave is triggered when hovering children! - return; - } - $(this).removeClass('drag-hover'); - }); - $('.drop-section').on('dragover', dropzone, function(e) { - e.originalEvent.dataTransfer.dropEffect = "move"; - - e.preventDefault(); - return false; - }); - $('.drop-section').on('drop', dropzone, function(e) { - loading = true; - - $.ajax({ - type: 'POST', - url: './?c=feed&a=move', - data: { - f_id: dragFeedId, - c_id: e.target.parentNode.getAttribute('data-cat-id'), - _csrf: context.csrf, + const draggable = '[draggable="true"]', + dropzone = '[dropzone="move"]', + dropSection = document.querySelector('.drop-section'); + + dropSection.ondragstart = function(ev) { + const li = ev.target.closest ? ev.target.closest(draggable) : null; + if (li) { + const drag = ev.target.closest('[draggable]'); + ev.dataTransfer.effectAllowed = 'move'; + dragHtml = drag.outerHTML; + dragFeedId = drag.getAttribute('data-feed-id'); + ev.dataTransfer.setData('text', dragFeedId); + drag.style.opacity = 0.3; + dnd_successful = false; } - }).done(function() { - $(e.target).after(dragHtml); - if ($(e.target).hasClass('disabled')) { - $(e.target).remove(); + }; + + dropSection.ondragend = function(ev) { + const li = ev.target.closest ? ev.target.closest(draggable) : null; + if (li) { + dragend_process(li); } - dnd_successful = true; - }).always(function() { - loading = false; - dragFeedId = ''; - dragHtml = ''; - }); + }; - $(this).removeClass('drag-hover'); + dropSection.ondragenter = function(ev) { + const li = ev.target.closest ? ev.target.closest(dropzone) : null; + if (li) { + li.classList.add('drag-hover'); + return false; + } + }; + + dropSection.onddragleave = function(ev) { + const li = ev.target.closest ? ev.target.closest(dropzone) : null; + if (li) { + const scroll_top = document.documentElement.scrollTop, + top = li.offsetTop, + left = li.offsetLeft, + right = left + li.clientWidth, + bottom = top + li.clientHeight, + mouse_x = ev.screenX, + mouse_y = ev.clientY + scroll_top; + + if (left <= mouse_x && mouse_x <= right && + top <= mouse_y && mouse_y <= bottom) { + // HACK because dragleave is triggered when hovering children! + return; + } + li.classList.remove('drag-hover'); + } + }; - e.preventDefault(); - }); + dropSection.ondragover = function(ev) { + const li = ev.target.closest ? ev.target.closest(dropzone) : null; + if (li) { + ev.dataTransfer.dropEffect = "move"; + return false; + } + }; + + dropSection.ondrop = function(ev) { + const li = ev.target.closest ? ev.target.closest(dropzone) : null; + if (li) { + loading = true; + + const req = new XMLHttpRequest(); + req.open('POST', './?c=feed&a=move', true); + req.responseType = 'json'; + req.onload = function (e) { + if (this.status == 200) { + li.insertAdjacentHTML('afterend', dragHtml); + if (li.classList.contains('disabled')) { + li.remove(); + } + dnd_successful = true; + } + }; + req.onloadend = function (e) { + loading = false; + dragFeedId = ''; + dragHtml = ''; + }; + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + f_id: dragFeedId, + c_id: li.parentElement.getAttribute('data-cat-id'), + _csrf: context.csrf, + })); + + li.classList.remove('drag-hover'); + return false; + } + }; } - if (document.readyState && document.readyState !== 'loading') { init_draggable(); } else if (document.addEventListener) { diff --git a/p/scripts/extra.js b/p/scripts/extra.js new file mode 100644 index 00000000000..7a0ef0477dd --- /dev/null +++ b/p/scripts/extra.js @@ -0,0 +1,235 @@ +"use strict"; +/* globals context, openNotification, xmlHttpRequestJson */ +/* jshint esversion:6, strict:global */ + +// +function poormanSalt() { //If crypto.getRandomValues is not available + const base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/abcdefghijklmnopqrstuvwxyz'; + let text = '$2a$04$'; + for (let i = 22; i > 0; i--) { + text += base.charAt(Math.floor(Math.random() * 64)); + } + return text; +} + +function init_crypto_form() { + /* globals dcodeIO */ + const crypto_form = document.getElementById('crypto-form'); + if (!crypto_form) { + return; + } + + if (!(window.dcodeIO)) { + if (window.console) { + console.log('FreshRSS waiting for bcrypt.js…'); + } + setTimeout(init_crypto_form, 100); + return; + } + + crypto_form.onsubmit = function (e) { + const submit_button = this.querySelector('button[type="submit"]'); + submit_button.disabled = true; + let success = false; + + const req = new XMLHttpRequest(); + req.open('GET', './?c=javascript&a=nonce&user=' + document.getElementById('username').value, false); + req.onerror = function () { + openNotification('Communication error!', 'bad'); + }; + req.send(); + if (req.status == 200) { + const json = xmlHttpRequestJson(req); + if (!json.salt1 || !json.nonce) { + openNotification('Invalid user!', 'bad'); + } else { + try { + const strong = window.Uint32Array && window.crypto && (typeof window.crypto.getRandomValues === 'function'), + s = dcodeIO.bcrypt.hashSync(document.getElementById('passwordPlain').value, json.salt1), + c = dcodeIO.bcrypt.hashSync(json.nonce + s, strong ? dcodeIO.bcrypt.genSaltSync(4) : poormanSalt()); + document.getElementById('challenge').value = c; + if (!s || !c) { + openNotification('Crypto error!', 'bad'); + } else { + success = true; + } + } catch (ex) { + openNotification('Crypto exception! ' + ex, 'bad'); + } + } + } else { + req.onerror(); + } + + submit_button.disabled = false; + return success; + }; +} +// + +function init_share_observers() { + let shares = document.querySelectorAll('.group-share').length; + const shareAdd = document.querySelector('.share.add'); + if (shareAdd) { + shareAdd.onclick = function (ev) { + const s = this.parentElement.querySelector('select'), + opt = s.options[s.selectedIndex]; + let row = this.closest('form').getAttribute('data-' + opt.getAttribute('data-form')); + row = row.replace(/##label##/g, opt.text); + row = row.replace(/##type##/g, opt.value); + row = row.replace(/##help##/g, opt.getAttribute('data-help')); + row = row.replace(/##key##/g, shares); + row = row.replace(/##method##/g, opt.getAttribute('data-method')); + row = row.replace(/##field##/g, opt.getAttribute('data-field')); + this.closest('.form-group').insertAdjacentHTML('beforebegin', row); + shares++; + return false; + }; + } +} + + +function init_remove_observers() { + document.querySelectorAll('.post').forEach(function (div) { + div.onclick = function (ev) { + const a = ev.target.closest('a.remove'); + if (a) { + const remove_what = a.getAttribute('data-remove'); + if (remove_what !== undefined) { + const d = document.getElementById(remove_what); + if (d) { + d.remove(); + } + } + return false; + } + }; + }); +} + +function init_feed_observers() { + const s = document.getElementById('category'); + if (s && s.matches('select')) { + s.onchange = function (ev) { + const detail = document.getElementById('new_category_name').parentElement; + if (this.value === 'nc') { + detail.setAttribute('aria-hidden', 'false'); + detail.querySelector('input').focus(); + } else { + detail.setAttribute('aria-hidden', 'true'); + } + }; + } +} + +function init_password_observers() { + document.querySelectorAll('.toggle-password').forEach(function (a) { + a.onmousedown = function (ev) { + const passwordField = document.getElementById(this.getAttribute('data-toggle')); + passwordField.setAttribute('type', 'text'); + this.classList.add('active'); + return false; + }; + a.onmouseup = function (ev) { + const passwordField = document.getElementById(this.getAttribute('data-toggle')); + passwordField.setAttribute('type', 'password'); + this.classList.remove('active'); + return false; + }; + }); +} + +function init_select_observers() { + document.querySelectorAll('.select-change').forEach(function (s) { + s.onchange = function (ev) { + const opt = s.options[s.selectedIndex]; + location.href = opt.getAttribute('data-url'); + }; + }); +} + +function init_slider_observers() { + const slider = document.getElementById('slider'), + closer = document.getElementById('close-slider'); + if (!slider) { + return; + } + + document.querySelector('.post').onclick = function (ev) { + const a = ev.target.closest('.open-slider'); + if (a) { + if (!context.ajax_loading) { + context.ajax_loading = true; + + const req = new XMLHttpRequest(); + req.open('GET', a.href + '&ajax=1', true); + req.responseType = 'document'; + req.onload = function (e) { + slider.innerHTML = this.response.body.innerHTML; + slider.classList.add('active'); + closer.classList.add('active'); + context.ajax_loading = false; + }; + req.send(); + return false; + } + } + }; + + closer.onclick = function (ev) { + closer.classList.remove('active'); + slider.classList.remove('active'); + return false; + }; +} + +function init_configuration_alert() { + window.onsubmit = function (e) { + window.hasSubmit = true; + }; + window.onbeforeunload = function (e) { + if (window.hasSubmit) { + return; + } + const ds = document.querySelectorAll('[data-leave-validation]'); + for (let i = ds.length - 1; i >= 0; i--) { + const input = ds[i]; + if (input.type === 'checkbox' || input.type === 'radio') { + if (input.checked != input.getAttribute('data-leave-validation')) { + return false; + } + } else if (input.value != input.getAttribute('data-leave-validation')) { + return false; + } + } + }; +} + +function init_extra() { + if (!window.context) { + if (window.console) { + console.log('FreshRSS extra waiting for JS…'); + } + window.setTimeout(init_extra, 50); //Wait for all js to be loaded + return; + } + init_crypto_form(); + init_share_observers(); + init_remove_observers(); + init_feed_observers(); + init_password_observers(); + init_select_observers(); + init_slider_observers(); + init_configuration_alert(); +} + +if (document.readyState && document.readyState !== 'loading') { + init_extra(); +} else { + document.addEventListener('DOMContentLoaded', function () { + if (window.console) { + console.log('FreshRSS extra waiting for DOMContentLoaded…'); + } + init_extra(); + }, false); +} diff --git a/p/scripts/global_view.js b/p/scripts/global_view.js index c5aaa48b182..b1581614ae2 100644 --- a/p/scripts/global_view.js +++ b/p/scripts/global_view.js @@ -1,6 +1,6 @@ "use strict"; -/* globals init_load_more, init_posts, init_stream */ -/* jshint globalstrict: true */ +/* globals context, init_load_more, init_posts, init_stream */ +/* jshint esversion:6, strict:global */ var panel_loading = false; @@ -11,68 +11,88 @@ function load_panel(link) { panel_loading = true; - $.get(link, function (data) { - $("#panel").append($(".nav_menu, #stream .day, #stream .flux, #stream .pagination, #stream.prompt", data)); - - $("#panel .nav_menu").children().not("#nav_menu_read_all").remove(); - - init_load_more($("#panel")); - init_posts(); - - $("#overlay").fadeIn(); - $("#panel").slideToggle(); - - // force le démarrage du scroll en haut. - // Sans ça, si l'on scroll en lisant une catégorie par exemple, - // en en ouvrant une autre ensuite, on se retrouve au même point de scroll - $("#panel").scrollTop(0); - $(window).scrollTop(0); - - $('#panel').on('click', '#nav_menu_read_all button, #bigMarkAsRead', function () { - console.log($(this).attr("formaction")); - $.ajax({ - type: "POST", - url: $(this).attr("formaction"), - data: { - _csrf: context.csrf, - }, - async: false - }); - window.location.reload(false); - return false; - }); - - panel_loading = false; - }); + const req = new XMLHttpRequest(); + req.open('GET', link, true); + req.responseType = 'document'; + req.onload = function (e) { + if (this.status != 200) { + return; + } + const html = this.response, + foreign = html.querySelectorAll('.nav_menu, #stream .day, #stream .flux, #stream .pagination, #stream.prompt'), + panel = document.getElementById('panel'); + foreign.forEach(function (el) { + panel.appendChild(document.adoptNode(el)); + }); + panel.querySelectorAll('.nav_menu > :not([id="nav_menu_read_all"])').forEach(function (el) { + el.remove(); + }); + + init_load_more(panel); + init_posts(); + + document.getElementById('overlay').classList.add('visible'); + panel.classList.add('visible'); + + // force le démarrage du scroll en haut. + // Sans ça, si l'on scroll en lisant une catégorie par exemple, + // en en ouvrant une autre ensuite, on se retrouve au même point de scroll + panel.scrollTop = 0; + document.documentElement.scrollTop = 0; + + //We already have a click listener in main.js + panel.addEventListener('click', function (ev) { + const b = ev.target.closest('#nav_menu_read_all button, #bigMarkAsRead'); + if (b) { + console.log(b.formAction); + + const req2 = new XMLHttpRequest(); + req2.open('POST', b.formAction, false); + req2.setRequestHeader('Content-Type', 'application/json'); + req2.send(JSON.stringify({ + _csrf: context.csrf, + })); + if (req2.status == 200) { + location.reload(false); + return false; + } + } + }); + + panel_loading = false; + }; + req.send(); } function init_close_panel() { - $("#overlay .close").click(function () { - $("#panel").html(''); - $("#panel").slideToggle(); - $("#overlay").fadeOut(); - - return false; - }); + const panel = document.getElementById('panel'); + document.querySelector('#overlay .close').onclick = function (ev) { + panel.innerHTML = ''; + panel.classList.remove('visible'); + document.getElementById('overlay').classList.remove('visible'); + return false; + }; } function init_global_view() { - // TODO: should be based on generic classes. - $(".box a").click(function () { - var link = $(this).attr("href"); - - load_panel(link); - - return false; - }); + // TODO: should be based on generic classes + document.querySelectorAll('.box a').forEach(function (a) { + a.onclick = function (ev) { + load_panel(a.href); + return false; + }; + }); - $(".nav_menu #nav_menu_read_all, .nav_menu .toggle_aside").remove(); + document.querySelectorAll('.nav_menu #nav_menu_read_all, .nav_menu .toggle_aside').forEach(function (el) { + el.remove(); + }); - init_stream($("#panel")); + const panel = document.getElementById('panel'); + init_stream(panel); } function init_all_global_view() { - if (!(window.$ && window.init_stream)) { + if (!window.context) { if (window.console) { console.log('FreshRSS Global view waiting for JS…'); } @@ -85,7 +105,7 @@ function init_all_global_view() { if (document.readyState && document.readyState !== 'loading') { init_all_global_view(); -} else if (document.addEventListener) { +} else { document.addEventListener('DOMContentLoaded', function () { init_all_global_view(); }, false); diff --git a/p/scripts/main.js b/p/scripts/main.js index 82dc79ce7de..345cbe749f6 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -1,5 +1,4 @@ "use strict"; -/* globals $, jQuery, shortcut */ /* jshint esversion:6, strict:global */ // @@ -16,36 +15,34 @@ if (!Element.prototype.closest) Element.prototype.closest = function (s) { if (!Element.prototype.remove) Element.prototype.remove = function () { if (this.parentNode) this.parentNode.removeChild(this); }; // -// -var context, i18n, icons, shortcuts, urls; +// +function xmlHttpRequestJson(req) { + let json = req.response; + if (req.responseType !== 'json') { //IE11 + try { json = JSON.parse(req.responseText); } + catch (ex) { json = null; } + } + return json; +} +// + +// +var context; (function parseJsonVars() { const jsonVars = document.getElementById('jsonVars'), json = JSON.parse(jsonVars.innerHTML); jsonVars.outerHTML = ''; context = json.context; - i18n = json.i18n; - shortcuts = json.shortcuts; - urls = json.urls; - icons = json.icons; - icons.read = decodeURIComponent(icons.read); - icons.unread = decodeURIComponent(icons.unread); + context.ajax_loading = false; + context.i18n = json.i18n; + context.shortcuts = json.shortcuts; + context.urls = json.urls; + context.icons = json.icons; + context.icons.read = decodeURIComponent(context.icons.read); + context.icons.unread = decodeURIComponent(context.icons.unread); }()); - -var $stream = null, - ajax_loading = false, - $nav_entries = null; -// - -function redirect(url, new_tab) { - if (url) { - if (new_tab) { - window.open(url); - } else { - location.href = url; - } - } -} +// function needsScroll(elem) { const winBottom = document.documentElement.scrollTop + document.documentElement.clientHeight, @@ -160,54 +157,64 @@ var pending_entries = {}, mark_read_queue = []; function send_mark_read_queue(queue, asRead) { - $.ajax({ - type: 'POST', - url: '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'), - data: { - ajax: true, - _csrf: context.csrf, - 'id[]': queue, - }, - }).done(function (data) { - for (let i = queue.length - 1; i >= 0; i--) { - const div = document.getElementById('flux_' + queue[i]), - myIcons = icons; - let inc = 0; - if (div.classList.contains('not_read')) { - div.classList.remove('not_read'); - div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=0', '') + '&is_read=1'); }); - div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.read; }); - inc--; - } else { - div.classList.add('not_read'); - div.classList.add('keep_unread'); //Split for IE11 - div.querySelectorAll('a.read').forEach(function (a) { a.setAttribute('href', a.getAttribute('href').replace('&is_read=1', '')); }); - div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.unread; }); - inc++; + const req = new XMLHttpRequest(); + req.open('POST', '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'), true); + req.responseType = 'json'; + req.onerror = function (e) { + openNotification(context.i18n.notif_request_failed, 'bad'); + for (let i = queue.length - 1; i >= 0; i--) { + delete pending_entries['flux_' + queue[i]]; } - let feed_link = div.querySelector('.website > a'); - if (feed_link) { - let feed_url = feed_link.getAttribute('href'); - let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); - incUnreadsFeed(div, feed_id, inc); + }; + req.onload = function (e) { + if (this.status != 200) { + return req.onerror(e); } - delete pending_entries['flux_' + queue[i]]; - } - faviconNbUnread(); - if (data.tags) { - let tagIds = Object.keys(data.tags); - for (let i = tagIds.length - 1; i >= 0; i--) { - let tagId = tagIds[i]; - incUnreadsTag(tagId, (asRead ? -1 : 1) * data.tags[tagId].length); + const json = xmlHttpRequestJson(this); + for (let i = queue.length - 1; i >= 0; i--) { + const div = document.getElementById('flux_' + queue[i]), + myIcons = context.icons; + let inc = 0; + if (div.classList.contains('not_read')) { + div.classList.remove('not_read'); + div.querySelectorAll('a.read').forEach(function (a) { + a.href = a.href.replace('&is_read=0', '') + '&is_read=1'; + }); + div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.read; }); + inc--; + } else { + div.classList.add('not_read'); + div.classList.add('keep_unread'); //Split for IE11 + div.querySelectorAll('a.read').forEach(function (a) { + a.href = a.href.replace('&is_read=1', ''); + }); + div.querySelectorAll('a.read > .icon').forEach(function (img) { img.outerHTML = myIcons.unread; }); + inc++; + } + let feed_link = div.querySelector('.website > a, a.website'); + if (feed_link) { + let feed_url = feed_link.href; + let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); + incUnreadsFeed(div, feed_id, inc); + } + delete pending_entries['flux_' + queue[i]]; } - } - onScroll(); - }).fail(function (data) { - openNotification(i18n.notif_request_failed, 'bad'); - for (let i = queue.length - 1; i >= 0; i--) { - delete pending_entries['flux_' + queue[i]]; - } - }); + faviconNbUnread(); + if (json.tags) { + let tagIds = Object.keys(json.tags); + for (let i = tagIds.length - 1; i >= 0; i--) { + let tagId = tagIds[i]; + incUnreadsTag(tagId, (asRead ? -1 : 1) * json.tags[tagId].length); + } + } + onScroll(); + }; + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + ajax: true, + _csrf: context.csrf, + id: queue, + })); } var send_mark_read_queue_timeout = 0; @@ -246,7 +253,7 @@ function mark_favorite(div) { } let a = div.querySelector('a.bookmark'), - url = a ? a.getAttribute('href') : ''; + url = a ? a.href : ''; if (!url) { return false; } @@ -256,45 +263,51 @@ function mark_favorite(div) { } pending_entries[div.id] = true; - $.ajax({ - type: 'POST', - url: url, - data: { - ajax: true, - _csrf: context.csrf, - }, - }).done(function (data) { - let inc = 0; - if (div.classList.contains('favorite')) { - div.classList.remove('favorite'); - inc--; - } else { - div.classList.add('favorite'); - inc++; - } - div.querySelectorAll('a.bookmark').forEach(function (a) { a.setAttribute('href', data.url); }); - div.querySelectorAll('a.bookmark > .icon').forEach(function (img) { img.outerHTML = data.icon; }); + const req = new XMLHttpRequest(); + req.open('POST', url, true); + req.responseType = 'json'; + req.onerror = function (e) { + openNotification(context.i18n.notif_request_failed, 'bad'); + delete pending_entries[div.id]; + }; + req.onload = function (e) { + if (this.status != 200) { + return req.onerror(e); + } + const json = xmlHttpRequestJson(this); + let inc = 0; + if (div.classList.contains('favorite')) { + div.classList.remove('favorite'); + inc--; + } else { + div.classList.add('favorite'); + inc++; + } + div.querySelectorAll('a.bookmark').forEach(function (a) { a.href = json.url; }); + div.querySelectorAll('a.bookmark > .icon').forEach(function (img) { img.outerHTML = json.icon; }); - const favourites = document.querySelector('#aside_feed .favorites .title'); - if (favourites) { - favourites.textContent = favourites.textContent.replace(/((?: \([ 0-9]+\))?\s*)$/, function (m, p1) { - return incLabel(p1, inc, false); - }); - } + const favourites = document.querySelector('#aside_feed .favorites .title'); + if (favourites) { + favourites.textContent = favourites.textContent.replace(/((?: \([ 0-9]+\))?\s*)$/, function (m, p1) { + return incLabel(p1, inc, false); + }); + } - if (div.classList.contains('not_read')) { - const elem = document.querySelector('#aside_feed .favorites .title'), - feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; - if (elem) { - elem.setAttribute('data-unread', numberFormat(feed_unreads + inc)); + if (div.classList.contains('not_read')) { + const elem = document.querySelector('#aside_feed .favorites .title'), + feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; + if (elem) { + elem.setAttribute('data-unread', numberFormat(feed_unreads + inc)); + } } - } - delete pending_entries[div.id]; - }).fail(function (data) { - openNotification(i18n.notif_request_failed, 'bad'); - delete pending_entries[div.id]; - }); + delete pending_entries[div.id]; + }; + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + ajax: true, + _csrf: context.csrf, + })); } var freshrssOpenArticleEvent = document.createEvent('Event'); @@ -307,9 +320,9 @@ function toggleContent(new_active, old_active, skipping) { } if (context.does_lazyload && !skipping) { - new_active.querySelectorAll('img[data-original], iframe[data-original]').forEach(function (elem) { - elem.setAttribute('src', elem.getAttribute('data-original')); - elem.removeAttribute('data-original'); + new_active.querySelectorAll('img[data-original], iframe[data-original]').forEach(function (el) { + el.src = el.getAttribute('data-original'); + el.removeAttribute('data-original'); }); } @@ -322,12 +335,12 @@ function toggleContent(new_active, old_active, skipping) { old_active.classList.remove('active'); old_active.classList.remove('current'); //Split for IE11 } - } else { // collapse_entry calls toggleContent(flux_current, flux_current, false) + } else { new_active.classList.toggle('active'); } const relative_move = context.current_view === 'global', - box_to_move = relative_move ? document.getElementById('#panel') : document.documentElement; + box_to_move = relative_move ? document.getElementById('panel') : document.documentElement; if (context.sticky_post) { let prev_article = new_active.previousElementSibling, @@ -355,7 +368,7 @@ function toggleContent(new_active, old_active, skipping) { if (context.auto_mark_article) { mark_read(new_active, true); } - new_active[0].dispatchEvent(freshrssOpenArticleEvent); + new_active.dispatchEvent(freshrssOpenArticleEvent); } onScroll(); } @@ -373,18 +386,28 @@ function next_entry(skipping) { } function prev_feed() { - const $active_feed = $('#aside_feed .tree-folder-items .item.active'); - if ($active_feed.length > 0) { - $active_feed.prevAll(':visible:first').find('a').each(function () { this.click(); }); + const active_feed = document.querySelector('#aside_feed .feed.active'); + if (active_feed) { + let feed = active_feed; + do feed = feed.previousElementSibling; + while (feed && getComputedStyle(feed).display === 'none'); + if (feed) { + feed.querySelector('a.item-title').click(); + } } else { last_feed(); } } function next_feed() { - const $active_feed = $('#aside_feed .tree-folder-items .item.active'); - if ($active_feed.length > 0) { - $active_feed.nextAll(':visible:first').find('a').each(function () { this.click(); }); + const active_feed = document.querySelector('#aside_feed .feed.active'); + if (active_feed) { + let feed = active_feed; + do feed = feed.nextElementSibling; + while (feed && getComputedStyle(feed).display === 'none'); + if (feed) { + feed.querySelector('a.item-title').click(); + } } else { first_feed(); } @@ -405,31 +428,31 @@ function last_feed() { } function prev_category() { - const $active_cat = $('#aside_feed .tree-folder.active'); - - if ($active_cat.length > 0) { - const $prev_cat = $active_cat.prevAll(':visible:first').find('.tree-folder-title .title'); - if ($prev_cat.length > 0) { - $prev_cat[0].click(); + const active_cat = document.querySelector('#aside_feed .category.active'); + if (active_cat) { + let cat = active_cat; + do cat = cat.previousElementSibling; + while (cat && getComputedStyle(cat).display === 'none'); + if (cat) { + cat.querySelector('a.title').click(); } } else { last_category(); } - return; } function next_category() { - const $active_cat = $('#aside_feed .tree-folder.active'); - - if ($active_cat.length > 0) { - const $next_cat = $active_cat.nextAll(':visible:first').find('.tree-folder-title .title'); - if ($next_cat.length > 0) { - $next_cat[0].click(); + const active_cat = document.querySelector('#aside_feed .category.active'); + if (active_cat) { + let cat = active_cat; + do cat = cat.nextElementSibling; + while (cat && getComputedStyle(cat).display === 'none'); + if (cat) { + cat.querySelector('a.title').click(); } } else { first_category(); } - return; } function first_category() { @@ -452,21 +475,21 @@ function collapse_entry() { } function user_filter(key) { - const $filter = $('#dropdown-query'), - $filters = $filter.siblings('.dropdown-menu').find('.item.query a'); + const filter = document.getElementById('dropdown-query'), + filters = filter.parentElement.querySelectorAll('.dropdown-menu > .query > a'); if (typeof key === 'undefined') { - if (!$filters.length) { + if (!filters.length) { return; } // Display the filter div - location.hash = $filters.attr('id'); + location.hash = filter.id; // Force scrolling to the filter div const scroll = needsScroll(document.querySelector('.header')); if (scroll !== 0) { document.documentElement.scrollTop = scroll; } // Force the key value if there is only one action, so we can trigger it automatically - if ($filters.length === 1) { + if (filters.length === 1) { key = 1; } else { return; @@ -474,8 +497,8 @@ function user_filter(key) { } // Trigger selected share action key = parseInt(key); - if (key <= $filters.length) { - $filters[key - 1].click(); + if (key <= filters.length) { + filters[key - 1].click(); } } @@ -576,384 +599,378 @@ function init_column_categories() { return; } - $('#aside_feed').on('click', '.tree-folder>.tree-folder-title>a.dropdown-toggle', function () { - $(this).children().each(function () { - if (this.alt === '▽') { - this.src = this.src.replace('/icons/down.', '/icons/up.'); - this.alt = '△'; + document.getElementById('aside_feed').onclick = function (ev) { + let a = ev.target.closest('.tree-folder > .tree-folder-title > a.dropdown-toggle'); + if (a) { + const img = a.querySelector('img'); + if (img.alt === '▽') { + img.src = img.src.replace('/icons/down.', '/icons/up.'); + img.alt = '△'; } else { - this.src = this.src.replace('/icons/up.', '/icons/down.'); - this.alt = '▽'; + img.src = img.src.replace('/icons/up.', '/icons/down.'); + img.alt = '▽'; } - }); - $(this).parent().next('.tree-folder-items').slideToggle(300, function () { - //Workaround for Gecko bug 1514498 in Firefox 64 - const sidebar = document.getElementById('sidebar'); - if (sidebar && sidebar.scrollHeight > sidebar.clientHeight && //if needs scrollbar - sidebar.scrollWidth >= sidebar.offsetWidth) { //but no scrollbar - sidebar.style['overflow-y'] = 'scroll'; //then force scrollbar - setTimeout(function () { sidebar.style['overflow-y'] = ''; }, 0); + + const ul = a.closest('li').querySelector('.tree-folder-items'); + let nbVisibleItems = 0; + for (let i = ul.children.length - 1; i >= 0; i--) { + if (ul.children[i].offsetHeight) { + nbVisibleItems++; + } } - }); - return false; - }); + ul.classList.toggle('active'); + //CSS transition does not work on max-height:auto + ul.style.maxHeight = ul.classList.contains('active') ? (nbVisibleItems * 4) + 'em' : 0; + return false; + } - $('#aside_feed').on('click', '.tree-folder-items .feed .dropdown-toggle', function () { - const itemId = $(this).closest('.item').attr('id'), - templateId = itemId.substring(0, 2) === 't_' ? 'tag_config_template' : 'feed_config_template', - id = itemId.substr(2), - feed_web = $(this).data('fweb'), - template = $('#' + templateId) - .html().replace(/------/g, id).replace('http://example.net/', feed_web); - if ($(this).next('.dropdown-menu').length === 0) { - $(this).attr('href', '#dropdown-' + id).prev('.dropdown-target').attr('id', 'dropdown-' + id).parent() - .append(template).find('button.confirm').removeAttr('disabled'); - } else { - if ($(this).next('.dropdown-menu').css('display') === 'none') { - const id2 = $(this).closest('.item').attr('id').substr(2); - $(this).attr('href', '#dropdown-' + id2); + a = ev.target.closest('.tree-folder-items > .feed .dropdown-toggle'); + if (a) { + const itemId = a.closest('.item').id, + templateId = itemId.substring(0, 2) === 't_' ? 'tag_config_template' : 'feed_config_template', + id = itemId.substr(2), + feed_web = a.getAttribute('data-fweb'), + div = a.parentElement, + dropdownMenu = div.querySelector('.dropdown-menu'), + template = document.getElementById(templateId) + .innerHTML.replace(/------/g, id).replace('http://example.net/', feed_web); + if (!dropdownMenu) { + a.href = '#dropdown-' + id; + div.querySelector('.dropdown-target').id = 'dropdown-' + id; + div.insertAdjacentHTML('beforeend', template); + div.querySelector('button.confirm').disabled = false; + } else if (getComputedStyle(dropdownMenu).display === 'none') { + const id2 = div.closest('.item').id.substr(2); + a.href = '#dropdown-' + id2; } else { - $(this).attr('href', '#close'); + a.href = '#close'; } + return true; } - }); + + return true; + }; } function init_shortcuts() { - if (!(window.shortcut)) { - if (window.console) { - console.log('FreshRSS waiting for shortcut.js…'); - } - setTimeout(init_shortcuts, 200); - return; - } - // Manipulation shortcuts - shortcut.add(shortcuts.mark_read, function () { - // Toggle the read state - mark_read(document.querySelector('.flux.current'), false); - }, { - 'disable_in_input': true - }); - shortcut.add('shift+' + shortcuts.mark_read, function () { - // Mark everything as read - $('.nav_menu .read_all').click(); - }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.mark_favorite, function () { - // Toggle the favorite state - mark_favorite(document.querySelector('.flux.current')); - }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.collapse_entry, function () { - // Toggle the collapse state - collapse_entry(); - }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.auto_share, function () { - // Display the share options - auto_share(); - }, { - 'disable_in_input': true - }); + Object.keys(context.shortcuts).forEach(function (k) { + context.shortcuts[k] = (context.shortcuts[k] || '').toUpperCase(); + }); - shortcut.add(shortcuts.user_filter, function () { - // Display the user filters - user_filter(); - }, { - 'disable_in_input': true - }); + document.body.onkeydown = function (ev) { + if (ev.target.closest('input, textarea') || + ev.ctrlKey || ev.metaKey || (ev.altKey && ev.shiftKey)) { + return true; + } - function addShortcut(evt) { - if ($('#dropdown-query').siblings('.dropdown-menu').is(':visible')) { - user_filter(String.fromCharCode(evt.keyCode)); - } else { - auto_share(String.fromCharCode(evt.keyCode)); - } - } - for (let i = 1; i < 10; i++) { - shortcut.add(i.toString(), addShortcut, { - 'disable_in_input': true - }); - } + const s = context.shortcuts, + k = ev.key.toUpperCase(); + if (location.hash.match(/^#dropdown-/)) { + const n = parseInt(k); + if (n) { + if (location.hash === '#dropdown-query') { + user_filter(n); + } else { + auto_share(n); + } + return false; + } + } + if (k === s.next_entry) { + if (ev.altKey) { + next_category(); + } else if (ev.shiftKey) { + next_feed(); + } else { + next_entry(false); + } + return false; + } + if (k === s.prev_entry) { + if (ev.altKey) { + prev_category(); + } else if (ev.shiftKey) { + prev_feed(); + } else { + prev_entry(false); + } + return false; + } + if (k === s.mark_read) { + if (ev.altKey) { + return true; + } else if (ev.shiftKey) { // Mark everything as read + document.querySelector('.nav_menu .read_all').click(); + } else { // Toggle the read state + mark_read(document.querySelector('.flux.current'), false); + } + return false; + } + if (k === s.first_entry) { + if (ev.altKey) { + first_category(); + } else if (ev.shiftKey) { + first_feed(); + } else { + const old_active = document.querySelector('.flux.current'), + first = document.querySelector('.flux'); + if (first.classList.contains('flux')) { + toggleContent(first, old_active, false); + } + } + return false; + } + if (k === s.last_entry) { + if (ev.altKey) { + last_category(); + } else if (ev.shiftKey) { + last_feed(); + } else { + const old_active = document.querySelector('.flux.current'), + last = document.querySelector('.flux:last-of-type'); + if (last.classList.contains('flux')) { + toggleContent(last, old_active, false); + } + } + return false; + } - // Entry navigation shortcuts - shortcut.add(shortcuts.prev_entry, function () { prev_entry(false); }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.skip_prev_entry, function () { prev_entry(true); }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.first_entry, function () { - const $old_active = $('.flux.current'), - $first = $('.flux:first'); + if (ev.altKey || ev.shiftKey) { + return true; + } + if (k === s.mark_favorite) { // Toggle the favorite state + mark_favorite(document.querySelector('.flux.current')); + return false; + } + if (k === s.go_website) { + if (context.auto_mark_site) { + mark_read(document.querySelector('.flux.current'), true); + } + window.open(document.querySelector('.flux.current a.go_website').href); + return false; + } + if (k === s.skip_next_entry) { next_entry(true); return false; } + if (k === s.skip_prev_entry) { prev_entry(true); return false; } + if (k === s.collapse_entry) { collapse_entry(); return false; } + if (k === s.auto_share) { auto_share(); return false; } + if (k === s.user_filter) { user_filter(); return false; } + if (k === s.load_more) { load_more_posts(); return false; } + if (k === s.close_dropdown) { location.hash = null; return false; } + if (k === s.help) { window.open(context.urls.help); return false; } + if (k === s.focus_search) { document.getElementById('search').focus(); return false; } + if (k === s.normal_view) { document.querySelector('#nav_menu_views .view-normal').click(); return false; } + if (k === s.reading_view) { document.querySelector('#nav_menu_views .view-reader').click(); return false; } + if (k === s.global_view) { document.querySelector('#nav_menu_views .view-global').click(); return false; } + if (k === s.rss_view) { document.querySelector('#nav_menu_views .view-rss').click(); return false; } + return true; + }; +} - if ($first.hasClass('flux')) { - toggleContent($first, $old_active, false); +function init_stream(stream) { + stream.onclick = function (ev) { + let el = ev.target.closest('.flux a.read'); + if (el) { + mark_read(el.closest('.flux'), false); + return false; } - }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.next_entry, function () { next_entry(false); }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.skip_next_entry, function () { next_entry(true); }, { - 'disable_in_input': true - }); - shortcut.add(shortcuts.last_entry, function () { - const $old_active = $('.flux.current'), - $last = $('.flux:last'); - if ($last.hasClass('flux')) { - toggleContent($last, $old_active, false); + el = ev.target.closest('.flux a.bookmark'); + if (el) { + mark_favorite(el.closest('.flux')); + return false; } - }, { - 'disable_in_input': true - }); - // Feed navigation shortcuts - shortcut.add('shift+' + shortcuts.prev_entry, prev_feed, { - 'disable_in_input': true - }); - shortcut.add('shift+' + shortcuts.next_entry, next_feed, { - 'disable_in_input': true - }); - shortcut.add('shift+' + shortcuts.first_entry, first_feed, { - 'disable_in_input': true - }); - shortcut.add('shift+' + shortcuts.last_entry, last_feed, { - 'disable_in_input': true - }); - // Category navigation shortcuts - shortcut.add('alt+' + shortcuts.prev_entry, prev_category, { - 'disable_in_input': true - }); - shortcut.add('alt+' + shortcuts.next_entry, next_category, { - 'disable_in_input': true - }); - shortcut.add('alt+' + shortcuts.first_entry, first_category, { - 'disable_in_input': true - }); - shortcut.add('alt+' + shortcuts.last_entry, last_category, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.go_website, function () { - const url_website = $('.flux.current a.go_website').attr('href'); - if (context.auto_mark_site) { - $('.flux.current').each(function () { - mark_read(this, true); - }); + el = ev.target.closest('.dynamictags'); + if (el) { + loadDynamicTags(el); + return true; } - redirect(url_website, true); - }, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.load_more, load_more_posts, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.focus_search, focus_search, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.help, function () { - redirect(urls.help, true); - }, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.close_dropdown, function () { - location.hash = null; - }, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.normal_view, function () { - $('#nav_menu_views .view-normal').get(0).click(); - }, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.global_view, function () { - $('#nav_menu_views .view-global').get(0).click(); - }, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.reading_view, function () { - $('#nav_menu_views .view-reader').get(0).click(); - }, { - 'disable_in_input': true - }); - - shortcut.add(shortcuts.rss_view, function () { - $('#nav_menu_views .view-rss').get(0).click(); - }, { - 'disable_in_input': true - }); -} - -function init_stream(divStream) { - divStream.on('click', '.flux_header,.flux_content', function (e) { //flux_toggle - if ($(e.target).closest('.content, .item.website, .item.link, .dropdown-menu').length > 0) { - return; - } - if (!context.sides_close_article && $(e.target).is('div.flux_content')) { - // setting for not-closing after clicking outside article area - return; + el = ev.target.closest('.item.title > a'); + if (el) { // Allow default control-click behaviour such as open in backround-tab + return ev.ctrlKey; } - const old_active = document.querySelector('.flux.current'), - new_active = this.parentNode; - if (e.target.tagName.toUpperCase() === 'A') { //Leave real links alone - if (context.auto_mark_article) { - mark_read(new_active, true); + + el = ev.target.closest('.flux .content a'); + if (el) { + if (!el.closest('div').classList.contains('author')) { + el.target = '_blank'; + el.rel = 'noreferrer'; } return true; } - toggleContent(new_active, old_active, false); - }); - - divStream.on('click', '.flux a.read', function () { - mark_read(this.closest('.flux'), false); - return false; - }); - divStream.on('click', '.flux a.bookmark', function () { - mark_favorite(this.closest('.flux')); - return false; - }); + el = ev.target.closest('.item.share > a[href="#"]'); + if (el) { //Print + const content = '' + + el.closest('.flux_content').querySelector('.content').innerHTML + + ''; + const tmp_window = window.open(); + tmp_window.document.writeln(content); + tmp_window.document.close(); + tmp_window.focus(); + tmp_window.print(); + tmp_window.close(); + return false; + } - divStream.on('click', '.item.title > a', function (e) { - // Allow default control-click behaviour such as open in backround-tab. - return e.ctrlKey; - }); - divStream.on('mouseup', '.item.title > a', function (e) { - // Mouseup enables us to catch middle click. - if (e.ctrlKey) { - // CTRL+click, it will be manage by previous rule. - return; + el = ev.target.closest('.item.share > a[href="POST"]'); + if (el) { //Share by POST + const f = el.parentElement.querySelector('form'); + f.disabled = false; + f.submit(); + return false; } - if (e.which == 2) { - // If middle click, we want same behaviour as CTRL+click. - const ev = jQuery.Event('click'); - ev.ctrlKey = true; - $(this).trigger(ev); - } else if (e.which == 1) { - // Normal click, just toggle article. - $(this).parent().click(); + el = ev.target.closest('.flux_header, .flux_content'); + if (el) { //flux_toggle + if (ev.target.closest('.content, .item.website, .item.link, .dropdown-menu')) { + return true; + } + if (!context.sides_close_article && ev.target.matches('div.flux_content')) { + // setting for not-closing after clicking outside article area + return false; + } + const old_active = document.querySelector('.flux.current'), + new_active = el.parentNode; + if (ev.target.tagName.toUpperCase() === 'A') { //Leave real links alone + if (context.auto_mark_article) { + mark_read(new_active, true); + } + return true; + } + toggleContent(new_active, old_active, false); + return false; } - }); + }; - divStream.on('click', '.flux .content a', function () { - if (!$(this).closest('div').hasClass('author')) { - $(this).attr('target', '_blank').attr('rel', 'noreferrer'); + stream.onmouseup = function (ev) { // Mouseup enables us to catch middle click + let el = ev.target.closest('.item.title > a'); + if (el) { + if (ev.ctrlKey) { + return; // CTRL+click, it will be manage by previous rule. + } + if (ev.which == 2) { + // If middle click, we want same behaviour as CTRL+click. + const evc = document.createEvent('click'); + evc.ctrlKey = true; + el.dispatchEvent(evc); + } else if (ev.which == 1) { + // Normal click, just toggle article. + el.parentElement.click(); + } } - }); - if (context.auto_mark_site) { - // catch mouseup instead of click so we can have the correct behaviour - // with middle button click (scroll button). - divStream.on('mouseup', '.flux .link > a', function (e) { - if (e.which == 3) { - return; + if (context.auto_mark_site) { + // catch mouseup instead of click so we can have the correct behaviour + // with middle button click (scroll button). + el = ev.target.closest('.flux .link > a'); + if (el) { + if (ev.which == 3) { + return; + } + mark_read(el.closest('.flux'), true); } + } + }; - mark_read(this.closest('.flux'), true); - }); - } + stream.onchange = function (ev) { + const checkboxTag = ev.target.closest('.checkboxTag'); + if (checkboxTag) { //Dynamic tags + ev.stopPropagation(); + const isChecked = checkboxTag.checked, + tagId = checkboxTag.name.replace(/^t_/, ''), + tagName = checkboxTag.nextElementSibling ? checkboxTag.nextElementSibling.value : '', + entry = checkboxTag.closest('div.flux'), + entryId = entry.id.replace(/^flux_/, ''); + checkboxTag.disabled = true; + + const req = new XMLHttpRequest(); + req.open('POST', './?c=tag&a=tagEntry', true); + req.responseType = 'json'; + req.onerror = function (e) { + checkboxTag.checked = !isChecked; + }; + req.onload = function (e) { + if (this.status != 200) { + return req.onerror(e); + } + if (entry.classList.contains('not_read')) { + incUnreadsTag('t_' + tagId, isChecked ? 1 : -1); + } + }; + req.onloadend = function (e) { + checkboxTag.disabled = false; + if (tagId == 0) { + loadDynamicTags(checkboxTag.closest('div.dropdown')); + } + }; + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + _csrf: context.csrf, + id_tag: tagId, + name_tag: tagId == 0 ? tagName : '', + id_entry: entryId, + checked: isChecked, + })); + } + }; } function init_nav_entries() { - $nav_entries = $('#nav_entries'); - $nav_entries.find('.previous_entry').click(function () { - prev_entry(false); - return false; - }); - $nav_entries.find('.next_entry').click(function () { - next_entry(false); - return false; - }); - $nav_entries.find('.up').click(function () { - const $active_item = $('.flux.current'), - windowTop = $(window).scrollTop(), - item_top = $active_item.offset().top; + const nav_entries = document.getElementById('nav_entries'); + if (nav_entries) { + nav_entries.querySelector('.previous_entry').onclick = function (e) { + prev_entry(false); + return false; + }; + nav_entries.querySelector('.next_entry').onclick = function (e) { + next_entry(false); + return false; + }; + nav_entries.querySelector('.up').onclick = function (e) { + const active_item = document.querySelector('.flux.current'), + windowTop = document.documentElement.scrollTop, + item_top = active_item.offsetParent.offsetTop + active_item.offsetTop; - if (windowTop > item_top) { - $('html,body').scrollTop(item_top); - } else { - $('html,body').scrollTop(0); - } - return false; - }); + document.documentElement.scrollTop = windowTop > item_top ? item_top : 0; + return false; + }; + } } -function loadDynamicTags($div) { - $div.removeClass('dynamictags'); - $div.find('li.item').remove(); - const entryId = $div.closest('div.flux').attr('id').replace(/^flux_/, ''); - $.getJSON('./?c=tag&a=getTagsForEntry&id_entry=' + entryId) - .done(function (data) { - const $ul = $div.find('.dropdown-menu'); - $ul.append('
      • '); - if (data && data.length) { - for (let i = 0; i < data.length; i++) { - const tag = data[i]; - $ul.append('
      • '); - } +function loadDynamicTags(div) { + div.classList.remove('dynamictags'); + div.querySelectorAll('li.item').forEach(function (li) { li.remove(); }); + const entryId = div.closest('div.flux').id.replace(/^flux_/, ''); + + const req = new XMLHttpRequest(); + req.open('GET', './?c=tag&a=getTagsForEntry&id_entry=' + entryId, true); + req.responseType = 'json'; + req.onerror = function (e) { + div.querySelectorAll('li.item').forEach(function (li) { li.remove(); }); + div.classList.add('dynamictags'); + }; + req.onload = function (e) { + if (this.status != 200) { + return req.onerror(e); } - }) - .fail(function () { - $div.find('li.item').remove(); - $div.addClass('dynamictags'); - }); -} - -function init_dynamic_tags() { - $stream.on('click', '.dynamictags', function () { - loadDynamicTags($(this)); - }); - - $stream.on('change', '.checkboxTag', function (ev) { - const $checkbox = $(this), - isChecked = $checkbox.prop('checked'), - tagId = $checkbox.attr('name').replace(/^t_/, ''), - tagName = $checkbox.siblings('input[name]').val(), - $entry = $checkbox.closest('div.flux'), - entryId = $entry.attr('id').replace(/^flux_/, ''); - $checkbox.prop('disabled', true); - $.ajax({ - type: 'POST', - url: './?c=tag&a=tagEntry', - data: { - _csrf: context.csrf, - id_tag: tagId, - name_tag: tagId == 0 ? tagName : '', - id_entry: entryId, - checked: isChecked, - }, - }) - .done(function () { - if ($entry.hasClass('not_read')) { - incUnreadsTag('t_' + tagId, isChecked ? 1 : -1); - } - }) - .fail(function () { - $checkbox.prop('checked', !isChecked); - }) - .always(function () { - $checkbox.prop('disabled', false); - if (tagId == 0) { - loadDynamicTags($checkbox.closest('div.dropdown')); + const json = xmlHttpRequestJson(this); + let html = '
      • '; + if (json && json.length) { + for (let i = 0; i < json.length; i++) { + const tag = json[i]; + html += '
      • '; } - }); - }); + } + div.querySelector('.dropdown-menu').insertAdjacentHTML('beforeend', html); + }; + req.send(); } // @@ -964,86 +981,93 @@ function updateFeed(feeds, feeds_count) { if (!feed) { return; } - $.ajax({ - type: 'POST', - url: feed.url, - data: { - _csrf: context.csrf, - noCommit: 1, - }, - }).always(function (data) { - feed_processed++; - $('#actualizeProgress .progress').html(feed_processed + ' / ' + feeds_count); - $('#actualizeProgress .title').html(feed.title); - - if (feed_processed === feeds_count) { - $.ajax({ //Empty request to commit new articles - type: 'POST', - url: './?c=feed&a=actualize&id=-1&ajax=1', - data: { + const req = new XMLHttpRequest(); + req.open('POST', feed.url, true); + req.onloadend = function (e) { + feed_processed++; + const div = document.getElementById('actualizeProgress'); + div.querySelector('.progress').innerHTML = feed_processed + ' / ' + feeds_count; + div.querySelector('.title').innerHTML = feed.title; + if (feed_processed === feeds_count) { + //Empty request to commit new articles + const req2 = new XMLHttpRequest(); + req2.open('POST', './?c=feed&a=actualize&id=-1&ajax=1', true); + req2.onloadend = function (e) { + location.reload(); + }; + req2.setRequestHeader('Content-Type', 'application/json'); + req2.send(JSON.stringify({ _csrf: context.csrf, noCommit: 0, - }, - }).always(function (data) { - location.reload(); - }); - } else { - updateFeed(feeds, feeds_count); - } - }); + })); + } else { + updateFeed(feeds, feeds_count); + } + }; + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + _csrf: context.csrf, + noCommit: 1, + })); } function init_actualize() { let auto = false; - $('#actualize').click(function () { - if (ajax_loading) { + document.getElementById('actualize').onclick = function () { + if (context.ajax_loading) { return false; } - ajax_loading = true; - - $.getJSON('./?c=javascript&a=actualize').done(function (data) { - if (auto && data.feeds.length < 1) { - auto = false; - ajax_loading = false; - return false; - } - if (data.feeds.length === 0) { - openNotification(data.feedback_no_refresh, 'good'); - $.ajax({ //Empty request to force refresh server database cache - type: 'POST', - url: './?c=feed&a=actualize&id=-1&ajax=1', - data: { - _csrf: context.csrf, - noCommit: 0, - }, - }).always(function (data) { - ajax_loading = false; - }); - return; - } - //Progress bar - const feeds_count = data.feeds.length; - $('body').after('
        ' + data.feedback_actualize + - '
        /
        0 / ' + feeds_count + - '
        '); - for (let i = 10; i > 0; i--) { - updateFeed(data.feeds, feeds_count); - } - }); + context.ajax_loading = true; + + const req = new XMLHttpRequest(); + req.open('GET', './?c=javascript&a=actualize', true); + req.responseType = 'json'; + req.onload = function (e) { + const json = xmlHttpRequestJson(this); + if (auto && json.feeds.length < 1) { + auto = false; + context.ajax_loading = false; + return false; + } + if (json.feeds.length === 0) { + openNotification(json.feedback_no_refresh, 'good'); + //Empty request to commit new articles + const req2 = new XMLHttpRequest(); + req2.open('POST', './?c=feed&a=actualize&id=-1&ajax=1', true); + req2.onloadend = function (e) { + context.ajax_loading = false; + }; + req2.setRequestHeader('Content-Type', 'application/json'); + req2.send(JSON.stringify({ + _csrf: context.csrf, + noCommit: 0, + })); + return; + } + //Progress bar + const feeds_count = json.feeds.length; + document.body.insertAdjacentHTML('beforeend', '
        ' + + json.feedback_actualize + '
        /
        0 / ' + + feeds_count + '
        '); + for (let i = 10; i > 0; i--) { + updateFeed(json.feeds, feeds_count); + } + }; + req.send(); return false; - }); + }; if (context.auto_actualize_feeds) { auto = true; - $('#actualize').click(); + document.getElementById('actualize').click(); } } //
        // -var $notification = null, +var notification = null, notification_interval = null, notification_working = false; @@ -1051,37 +1075,29 @@ function openNotification(msg, status) { if (notification_working === true) { return false; } - notification_working = true; - - $notification.removeClass(); - $notification.addClass('notification'); - $notification.addClass(status); - $notification.find('.msg').html(msg); - $notification.fadeIn(300); + notification.querySelector('.msg').innerHTML = msg; + notification.className = 'notification'; + notification.classList.add(status); notification_interval = setTimeout(closeNotification, 4000); } function closeNotification() { - $notification.fadeOut(600, function () { - $notification.removeClass(); - $notification.addClass('closed'); - - clearInterval(notification_interval); - notification_working = false; - }); + notification.classList.add('closed'); + clearInterval(notification_interval); + notification_working = false; } function init_notifications() { - $notification = $('#notification'); + notification = document.getElementById('notification'); - $notification.find('a.close').click(function () { - closeNotification(); - return false; - }); + notification.querySelector('a.close').onclick = function () { + closeNotification(); + return false; + }; - if ($notification.find('.msg').html().length > 0) { + if (notification.querySelector('.msg').innerHTML.length > 0) { notification_working = true; notification_interval = setTimeout(closeNotification, 4000); } @@ -1106,9 +1122,9 @@ function notifs_html5_show(nb) { return; } - const notification = new window.Notification(i18n.notif_title_articles, { + const notification = new window.Notification(context.i18n.notif_title_articles, { icon: '../themes/icons/favicon-256.png', - body: i18n.notif_body_articles.replace('%d', nb), + body: context.i18n.notif_body_articles.replace('%d', nb), tag: 'freshRssNewArticles', }); @@ -1135,40 +1151,56 @@ function init_notifs_html5() { // function refreshUnreads() { - $.getJSON('./?c=javascript&a=nbUnreadsPerFeed').done(function (data) { - const isAll = document.querySelector('.category.all.active'); - let new_articles = false; - - $.each(data.feeds, function (feed_id, nbUnreads) { - feed_id = 'f_' + feed_id; - const elem = document.getElementById(feed_id), - feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; - - if ((incUnreadsFeed(null, feed_id, nbUnreads - feed_unreads) || isAll) && //Update of current view? - (nbUnreads - feed_unreads > 0)) { - $('#new-article').attr('aria-hidden', 'false').show(); - new_articles = true; - } - }); + const req = new XMLHttpRequest(); + req.open('GET', './?c=javascript&a=nbUnreadsPerFeed', true); + req.responseType = 'json'; + req.onload = function (e) { + const json = xmlHttpRequestJson(this); + const isAll = document.querySelector('.category.all.active'); + let new_articles = false; + + Object.keys(json.feeds).forEach(function (feed_id) { + const nbUnreads = json.feeds[feed_id]; + feed_id = 'f_' + feed_id; + const elem = document.getElementById(feed_id), + feed_unreads = elem ? str2int(elem.getAttribute('data-unread')) : 0; + + if ((incUnreadsFeed(null, feed_id, nbUnreads - feed_unreads) || isAll) && //Update of current view? + (nbUnreads - feed_unreads > 0)) { + const newArticle = document.getElementById('new-article'); + newArticle.setAttribute('aria-hidden', 'false'); + newArticle.style.display = 'block'; + new_articles = true; + } + }); - let nbUnreadTags = 0; + let nbUnreadTags = 0; - $.each(data.tags, function (tag_id, nbUnreads) { - nbUnreadTags += nbUnreads; - $('#t_' + tag_id).attr('data-unread', nbUnreads) - .children('.item-title').attr('data-unread', numberFormat(nbUnreads)); - }); + Object.keys(json.tags).forEach(function (tag_id) { + const nbUnreads = json.tags[tag_id]; + nbUnreadTags += nbUnreads; + const tag = document.getElementById('t_' + tag_id); + if (tag) { + tag.setAttribute('data-unread', nbUnreads); + tag.querySelector('.item-title').setAttribute('data-unread', numberFormat(nbUnreads)); + } + }); - $('.category.tags').attr('data-unread', nbUnreadTags) - .find('.title').attr('data-unread', numberFormat(nbUnreadTags)); + const tags = document.querySelector('.category.tags'); + if (tags) { + tags.setAttribute('data-unread', nbUnreadTags); + tags.querySelector('.title').setAttribute('data-unread', numberFormat(nbUnreadTags)); + } - const nb_unreads = str2int($('.category.all .title').attr('data-unread')); + const title = document.querySelector('.category.all .title'), + nb_unreads = title ? str2int(title.getAttribute('data-unread')) : 0; - if (nb_unreads > 0 && new_articles) { - faviconNbUnread(nb_unreads); - notifs_html5_show(nb_unreads); - } - }); + if (nb_unreads > 0 && new_articles) { + faviconNbUnread(nb_unreads); + notifs_html5_show(nb_unreads); + } + }; + req.send(); } // @@ -1177,49 +1209,59 @@ var url_load_more = '', box_load_more = null; function load_more_posts() { - if (load_more || url_load_more === '' || box_load_more === null) { + if (load_more || !url_load_more || !box_load_more) { return; } - load_more = true; document.getElementById('load_more').classList.add('loading'); - $.get(url_load_more, function (data) { - box_load_more.children('.flux:last').after($('#stream', data).children('.flux, .day')); - $('.pagination').replaceWith($('.pagination', data)); - if (context.display_order === 'ASC') { - $('#nav_menu_read_all .read_all').attr( - 'formaction', $('#bigMarkAsRead').attr('formaction') - ); - } else { - $('#bigMarkAsRead').attr( - 'formaction', $('#nav_menu_read_all .read_all').attr('formaction') - ); - } - $('[id^=day_]').each(function (i) { - const ids = $('[id="' + this.id + '"]'); - if (ids.length > 1) { - $('[id="' + this.id + '"]:gt(0)').remove(); + const req = new XMLHttpRequest(); + req.open('GET', url_load_more, true); + req.responseType = 'document'; + req.onload = function (e) { + const html = this.response, + formPagination = document.getElementById('mark-read-pagination'); + + const streamAdopted = document.adoptNode(html.getElementById('stream')); + streamAdopted.querySelectorAll('.flux, .day').forEach(function (div) { + box_load_more.insertBefore(div, formPagination); + }); + + const paginationOld = formPagination.querySelector('.pagination'), + paginationNew = streamAdopted.querySelector('.pagination'); + formPagination.replaceChild(paginationNew, paginationOld); + + if (context.display_order === 'ASC') { + document.querySelector('#nav_menu_read_all .read_all').formAction = + document.getElementById('bigMarkAsRead').formAction; + } else { + const bigMarkAsRead = document.getElementById('bigMarkAsRead'); + if (bigMarkAsRead) { + bigMarkAsRead.formAction = document.querySelector('#nav_menu_read_all .read_all').formAction; + } } - }); - init_load_more(box_load_more); + document.querySelectorAll('[id^=day_]').forEach(function (div) { + const ids = document.querySelectorAll('[id="' + div.id + '"]'); + for (let i = ids.length - 1; i > 0; i--) { //Keep only the first + ids[i].remove(); + } + }); - const bigMarkAsRead = document.getElementById('bigMarkAsRead'), - div_load_more = document.getElementById('load_more'); - if (bigMarkAsRead) { - bigMarkAsRead.removeAttribute('disabled'); - } - if (div_load_more) { - div_load_more.classList.remove('loading'); - } + init_load_more(box_load_more); - load_more = false; - }); -} + const bigMarkAsRead = document.getElementById('bigMarkAsRead'), + div_load_more = document.getElementById('load_more'); + if (bigMarkAsRead) { + bigMarkAsRead.removeAttribute('disabled'); + } + if (div_load_more) { + div_load_more.classList.remove('loading'); + } -function focus_search() { - $('#search').focus(); + load_more = false; + }; + req.send(); } var freshrssLoadMoreEvent = document.createEvent('Event'); @@ -1229,193 +1271,40 @@ function init_load_more(box) { box_load_more = box; document.body.dispatchEvent(freshrssLoadMoreEvent); - const $next_link = $('#load_more'); - if (!$next_link.length) { + const next_link = document.getElementById('load_more'); + if (!next_link) { // no more article to load url_load_more = ''; return; } - url_load_more = $next_link.attr('href'); + url_load_more = next_link.href; - $next_link.click(function () { - load_more_posts(); - return false; - }); + next_link.onclick = function (e) { + load_more_posts(); + return false; + }; } // -// -function poormanSalt() { //If crypto.getRandomValues is not available - const base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.0123456789/abcdefghijklmnopqrstuvwxyz'; - let text = '$2a$04$'; - for (let i = 22; i > 0; i--) { - text += base.charAt(Math.floor(Math.random() * 64)); - } - return text; -} - -function init_crypto_form() { - /* globals dcodeIO */ - const $crypto_form = $('#crypto-form'); - if ($crypto_form.length === 0) { - return; - } - - if (!(window.dcodeIO)) { - if (window.console) { - console.log('FreshRSS waiting for bcrypt.js…'); - } - setTimeout(init_crypto_form, 100); - return; - } - - $crypto_form.on('submit', function () { - const $submit_button = $(this).find('button[type="submit"]'); - $submit_button.attr('disabled', ''); - - let success = false; - $.ajax({ - url: './?c=javascript&a=nonce&user=' + $('#username').val(), - dataType: 'json', - async: false - }).done(function (data) { - if (!data.salt1 || !data.nonce) { - openNotification('Invalid user!', 'bad'); - } else { - try { - const strong = window.Uint32Array && window.crypto && (typeof window.crypto.getRandomValues === 'function'), - s = dcodeIO.bcrypt.hashSync($('#passwordPlain').val(), data.salt1), - c = dcodeIO.bcrypt.hashSync(data.nonce + s, strong ? dcodeIO.bcrypt.genSaltSync(4) : poormanSalt()); - $('#challenge').val(c); - if (!s || !c) { - openNotification('Crypto error!', 'bad'); - } else { - success = true; - } - } catch (e) { - openNotification('Crypto exception! ' + e, 'bad'); +function init_confirm_action() { + document.body.onclick = function (ev) { + const b = ev.target.closest('.confirm'); + if (b) { + let str_confirmation = this.getAttribute('data-str-confirm'); + if (!str_confirmation) { + str_confirmation = context.i18n.confirmation_default; } + return confirm(str_confirmation); } - }).fail(function () { - openNotification('Communication error!', 'bad'); - }); - - $submit_button.removeAttr('disabled'); - return success; - }); -} -// - -function init_confirm_action() { - $('body').on('click', '.confirm', function () { - let str_confirmation = $(this).attr('data-str-confirm'); - if (!str_confirmation) { - str_confirmation = i18n.confirmation_default; - } - - return confirm(str_confirmation); - }); - $('button.confirm').removeAttr('disabled'); -} - -function init_print_action() { - $('.item.share > a[href="#"]').click(function (e) { - const content = '' + - $(e.target).closest('.flux_content').find('.content').html() + - ''; - - const tmp_window = window.open(); - tmp_window.document.writeln(content); - tmp_window.document.close(); - tmp_window.focus(); - tmp_window.print(); - tmp_window.close(); - - return false; - }); -} - -function init_post_action() { - $('.item.share > a[href="POST"]').click(function (e) { - e.preventDefault(); - const $form = $(this).next('form'); - $.post($form.data('url'), $form.serialize()); - }); -} - -var shares = 0; - -function init_share_observers() { - shares = $('.group-share').length; - - $('.share.add').on('click', function (e) { - const $opt = $(this).siblings('select').find(':selected'); - let row = $(this).parents('form').data($opt.data('form')); - row = row.replace(/##label##/g, $opt.html().trim()); - row = row.replace(/##type##/g, $opt.val()); - row = row.replace(/##help##/g, $opt.data('help')); - row = row.replace(/##key##/g, shares); - row = row.replace(/##method##/g, $opt.data('method')); - row = row.replace(/##field##/g, $opt.data('field')); - $(this).parents('.form-group').before(row); - shares++; - - return false; - }); -} - -function init_stats_observers() { - $('.select-change').on('change', function (e) { - redirect($(this).find(':selected').data('url')); - }); -} - -function init_remove_observers() { - $('.post').on('click', 'a.remove', function (e) { - const remove_what = $(this).attr('data-remove'); - if (remove_what !== undefined) { - $('#' + remove_what).remove(); - } - return false; - }); -} - -function init_feed_observers() { - $('select[id="category"]').on('change', function () { - const $detail = $('#new_category_name').parent(); - if ($(this).val() === 'nc') { - $detail.attr('aria-hidden', 'false').show(); - $detail.find('input').focus(); - } else { - $detail.attr('aria-hidden', 'true').hide(); - } - }); -} - -function init_password_observers() { - $('.toggle-password').on('mousedown', function (e) { - const $button = $(this), - $passwordField = $('#' + $button.attr('data-toggle')); - $passwordField.attr('type', 'text'); - $button.addClass('active'); - return false; - }).on('mouseup', function (e) { - const $button = $(this), - $passwordField = $('#' + $button.attr('data-toggle')); - $passwordField.attr('type', 'password'); - $button.removeClass('active'); - return false; - }); + }; + document.querySelectorAll('button.confirm').forEach(function (b) { b.disabled = false; }); } function faviconNbUnread(n) { if (typeof n === 'undefined') { - n = str2int($('.category.all .title').attr('data-unread')); + const t = document.querySelector('.category.all .title'); + n = t ? str2int(t.getAttribute('data-unread')) : 0; } //http://remysharp.com/2010/08/24/dynamic-favicons/ const canvas = document.createElement('canvas'), @@ -1442,79 +1331,16 @@ function faviconNbUnread(n) { ctx.fillText(text, 0, canvas.height - 1); } link.href = canvas.toDataURL('image/png'); - $('link[rel~=icon]').remove(); + document.querySelector('link[rel~=icon]').remove(); document.head.appendChild(link); }; img.src = '../favicon.ico'; } } -function init_slider_observers() { - const $slider = $('#slider'), - $closer = $('#close-slider'); - if ($slider.length < 1) { - return; - } - - $('.post').on('click', '.open-slider', function () { - if (ajax_loading) { - return false; - } - - ajax_loading = true; - - $.ajax({ - type: 'GET', - url: $(this).attr('href'), - data: { ajax: true } - }).done(function (data) { - $slider.html(data); - $closer.addClass('active'); - $slider.addClass('active'); - ajax_loading = false; - }); - - return false; - }); - - $closer.on('click', function () { - $closer.removeClass('active'); - $slider.removeClass('active'); - return false; - }); -} - -function init_configuration_alert() { - $(window).on('submit', function (e) { - window.hasSubmit = true; - }); - $(window).on('beforeunload', function (e) { - if (window.hasSubmit) { - return; - } - const inputs = document.querySelectorAll('[data-leave-validation]'); - for (let i = inputs.length - 1; i >= 0; i--) { - const input = inputs[i]; - if (input.type === 'checkbox' || input.type === 'radio') { - if (input.checked != input.getAttribute('data-leave-validation')) { - return false; - } - } else if (input.value != input.getAttribute('data-leave-validation')) { - return false; - } - } - }); -} - -function init_subscription() { - $('body').on('click', '.bookmarkClick', function (e) { - return false; - }); -} - function init_normal() { - $stream = $('#stream'); - if ($stream.length < 1) { + const stream = document.getElementById('stream'); + if (!stream) { if (window.console) { console.log('FreshRSS waiting for content…'); } @@ -1522,59 +1348,32 @@ function init_normal() { return; } init_column_categories(); - init_stream($stream); + init_stream(stream); init_shortcuts(); init_actualize(); faviconNbUnread(); } function init_beforeDOM() { - if (!window.$) { - if (window.console) { - console.log('FreshRSS waiting for jQuery…'); - } - setTimeout(init_beforeDOM, 100); - return; - } if (['normal', 'reader', 'global'].indexOf(context.current_view) >= 0) { init_normal(); } } function init_afterDOM() { - if (!window.$) { - if (window.console) { - console.log('FreshRSS waiting again for jQuery…'); - } - setTimeout(init_afterDOM, 100); - return; - } init_notifications(); init_confirm_action(); - $stream = $('#stream'); - if ($stream.length > 0) { - init_load_more($stream); + const stream = document.getElementById('stream'); + if (stream) { + init_load_more(stream); init_posts(); init_nav_entries(); - init_dynamic_tags(); - init_print_action(); - init_post_action(); init_notifs_html5(); setInterval(refreshUnreads, 120000); - } else { - init_subscription(); - init_crypto_form(); - init_share_observers(); - init_remove_observers(); - init_feed_observers(); - init_password_observers(); - init_stats_observers(); - init_slider_observers(); - init_configuration_alert(); } if (window.console) { - console.log('FreshRSS init done.'); + console.log('FreshRSS main init done.'); } } @@ -1582,11 +1381,11 @@ init_beforeDOM(); //Can be called before DOM is fully loaded if (document.readyState && document.readyState !== 'loading') { init_afterDOM(); -} else if (document.addEventListener) { +} else { document.addEventListener('DOMContentLoaded', function () { - if (window.console) { - console.log('FreshRSS waiting for DOMContentLoaded…'); - } - init_afterDOM(); - }, false); + if (window.console) { + console.log('FreshRSS waiting for DOMContentLoaded…'); + } + init_afterDOM(); + }, false); } diff --git a/p/scripts/repartition.js b/p/scripts/repartition.js index be70456fa88..e71fa71c472 100644 --- a/p/scripts/repartition.js +++ b/p/scripts/repartition.js @@ -1,6 +1,6 @@ "use strict"; /* globals Flotr, numberFormat */ -/* jshint globalstrict: true */ +/* jshint esversion:6, strict:global */ function initStats() { if (!window.Flotr) { @@ -10,7 +10,7 @@ function initStats() { window.setTimeout(initStats, 50); return; } - var jsonRepartition = document.getElementById('jsonRepartition'), + const jsonRepartition = document.getElementById('jsonRepartition'), stats = JSON.parse(jsonRepartition.innerHTML); jsonRepartition.outerHTML = ''; // Entry per hour diff --git a/p/scripts/shortcut.js b/p/scripts/shortcut.js deleted file mode 100644 index e78cf6f5ef7..00000000000 --- a/p/scripts/shortcut.js +++ /dev/null @@ -1,225 +0,0 @@ -/** - * http://www.openjs.com/scripts/events/keyboard_shortcuts/ - * Version : 2.01.B - * By Binny V A - * License : BSD - */ -shortcut = { - 'all_shortcuts':{},//All the shortcuts are stored in this array - 'add': function(shortcut_combination,callback,opt) { - //Provide a set of default options - var default_options = { - 'type':'keydown', - 'propagate':false, - 'disable_in_input':false, - 'target':document, - 'keycode':false - } - if(!opt) opt = default_options; - else { - for(var dfo in default_options) { - if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo]; - } - } - - var ele = opt.target; - if(typeof opt.target == 'string') ele = document.getElementById(opt.target); - var ths = this; - shortcut_combination = shortcut_combination.toLowerCase(); - - //The function to be called at keypress - var func = function(e) { - e = e || window.event; - - if(opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields - var element; - if(e.target) element=e.target; - else if(e.srcElement) element=e.srcElement; - if(element.nodeType==3) element=element.parentNode; - - if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return; - } - - //Find Which key is pressed - if (e.keyCode) code = e.keyCode; - else if (e.which) code = e.which; - if (code == 32 || (code >= 48 && code <= 90) || (code >= 96 && code <= 111) || (code >= 186 && code <= 192) || (code >= 219 && code <= 222)) { //FreshRSS - var character = String.fromCharCode(code).toLowerCase(); - } - - if(code == 188) character=","; //If the user presses , when the type is onkeydown - if(code == 190) character="."; //If the user presses , when the type is onkeydown - - var keys = shortcut_combination.split("+"); - //Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked - var kp = 0; - - //Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken - var shift_nums = { - "`":"~", - "1":"!", - "2":"@", - "3":"#", - "4":"$", - "5":"%", - "6":"^", - "7":"&", - "8":"*", - "9":"(", - "0":")", - "-":"_", - "=":"+", - ";":":", - "'":"\"", - ",":"<", - ".":">", - "/":"?", - "\\":"|" - } - //Special Keys - and their codes - var special_keys = { - 'esc':27, - 'escape':27, - 'tab':9, - 'space':32, - 'return':13, - 'enter':13, - 'backspace':8, - - 'scrolllock':145, - 'scroll_lock':145, - 'scroll':145, - 'capslock':20, - 'caps_lock':20, - 'caps':20, - 'numlock':144, - 'num_lock':144, - 'num':144, - - 'pause':19, - 'break':19, - - 'insert':45, - 'home':36, - 'delete':46, - 'end':35, - - 'pageup':33, - 'page_up':33, - 'pu':33, - - 'pagedown':34, - 'page_down':34, - 'pd':34, - - 'left':37, - 'up':38, - 'right':39, - 'down':40, - - 'f1':112, - 'f2':113, - 'f3':114, - 'f4':115, - 'f5':116, - 'f6':117, - 'f7':118, - 'f8':119, - 'f9':120, - 'f10':121, - 'f11':122, - 'f12':123 - } - - var modifiers = { - shift: { wanted:false, pressed:false}, - ctrl : { wanted:false, pressed:false}, - alt : { wanted:false, pressed:false}, - meta : { wanted:false, pressed:false} //Meta is Mac specific - }; - - if(e.ctrlKey) modifiers.ctrl.pressed = true; - if(e.shiftKey) modifiers.shift.pressed = true; - if(e.altKey) modifiers.alt.pressed = true; - if(e.metaKey) modifiers.meta.pressed = true; - - for(var i=0; k=keys[i],i 1) { //If it is a special key - if(special_keys[k] == code) kp++; - - } else if(opt['keycode']) { - if(opt['keycode'] == code) kp++; - - } else { //The special keys did not match - if(character == k) kp++; - else { - if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase - character = shift_nums[character]; - if(character == k) kp++; - } - } - } - } - - if(kp == keys.length && - modifiers.ctrl.pressed == modifiers.ctrl.wanted && - modifiers.shift.pressed == modifiers.shift.wanted && - modifiers.alt.pressed == modifiers.alt.wanted && - modifiers.meta.pressed == modifiers.meta.wanted) { - callback(e); - - if(!opt['propagate']) { //Stop the event - //e.cancelBubble is supported by IE - this will kill the bubbling process. - e.cancelBubble = true; - e.returnValue = false; - - //e.stopPropagation works in Firefox. - if (e.stopPropagation) { - e.stopPropagation(); - e.preventDefault(); - } - return false; - } - } - } - this.all_shortcuts[shortcut_combination] = { - 'callback':func, - 'target':ele, - 'event': opt['type'] - }; - //Attach the function with the event - if(ele.addEventListener) ele.addEventListener(opt['type'], func, false); - else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func); - else ele['on'+opt['type']] = func; - }, - - //Remove the shortcut - just specify the shortcut and I will remove the binding - 'remove':function(shortcut_combination) { - shortcut_combination = shortcut_combination.toLowerCase(); - var binding = this.all_shortcuts[shortcut_combination]; - delete(this.all_shortcuts[shortcut_combination]) - if(!binding) return; - var type = binding['event']; - var ele = binding['target']; - var callback = binding['callback']; - - if(ele.detachEvent) ele.detachEvent('on'+type, callback); - else if(ele.removeEventListener) ele.removeEventListener(type, callback, false); - else ele['on'+type] = false; - } -} \ No newline at end of file diff --git a/p/scripts/stats.js b/p/scripts/stats.js index 9cd14721c3a..b47188d7705 100644 --- a/p/scripts/stats.js +++ b/p/scripts/stats.js @@ -1,6 +1,6 @@ "use strict"; /* globals Flotr, numberFormat */ -/* jshint globalstrict: true */ +/* jshint esversion:6, strict:global */ function initStats() { if (!window.Flotr) { @@ -10,12 +10,12 @@ function initStats() { window.setTimeout(initStats, 50); return; } - var jsonStats = document.getElementById('jsonStats'), + const jsonStats = document.getElementById('jsonStats'), stats = JSON.parse(jsonStats.innerHTML); jsonStats.outerHTML = ''; // Entry per day - var avg = []; - for (var i = -31; i <= 0; i++) { + const avg = []; + for (let i = -31; i <= 0; i++) { avg.push([i, stats.average]); } Flotr.draw(document.getElementById('statsEntryPerDay'), diff --git a/p/themes/base-theme/template.css b/p/themes/base-theme/template.css index 099aee91675..2ea05878689 100644 --- a/p/themes/base-theme/template.css +++ b/p/themes/base-theme/template.css @@ -280,7 +280,7 @@ a.btn { left: 0; right: 0; display: block; z-index: -10; - cursor: default; + cursor: default; } .separator { display: block; @@ -418,8 +418,10 @@ a.btn { } .tree-folder-items { - padding: 0; list-style: none; + max-height: 200em; + padding: 0; + transition: max-height .3s linear; } .tree-folder-title { display: block; @@ -502,7 +504,8 @@ a.btn { padding: 0px 15px; } .aside_feed .tree-folder-items:not(.active) { - display: none; + max-height: 0; + overflow: hidden; } .aside_feed .tree-folder-items .dropdown { vertical-align: top; @@ -632,9 +635,13 @@ br + br + br { z-index: 10; background: #fff; border: 1px solid #aaa; + opacity: 1; + visibility: visible; + transition: visibility 0s, opacity .3s linear; } .notification.closed { - display: none; + opacity: 0; + visibility: hidden; } .notification a.close { position: absolute; @@ -710,15 +717,15 @@ br + br + br { /*=== LOGIN VIEW */ /*================*/ .formLogin .header > .item { - padding: 10px 30px; + padding: 10px 30px; } .formLogin .header > .item.title { - text-align: left; + text-align: left; } .formLogin .header > .item.configure { - text-align: right; + text-align: right; } @@ -731,14 +738,29 @@ br + br + br { #stream.global .box { text-align: left; } - +#global > #panel { + bottom: 99vh; + display: block; + transition: visibility .3s, bottom .3s; + visibility: hidden; +} +#global > #panel.visible { + bottom: 1em; + visibility: visible; +} /*=== Panel */ #overlay { - display: none; position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.9); + opacity: 0; + transition: visibility .3s, opacity .3s; + visibility: hidden; +} +#overlay.visible { + opacity: 1; + visibility: visible; } #panel { display: none; From 7aa7aee5db0a811c6c56a86f7c8d03ced971947d Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 13 Feb 2019 15:34:20 +0100 Subject: [PATCH 20/59] Changelog 2234 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ef11bf493f..ee7c5602cc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,8 @@ * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) * UI * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) + * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) - * Rewrite some jQuery code as native JavaScript [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Deployment * Docker image updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) * I18n From 0b997b58a56bd0a4e8758c72653674810092c17d Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 13 Feb 2019 15:45:01 +0100 Subject: [PATCH 21/59] Removes HHVM from Travis Because HHVM removes PHP support https://www.phoronix.com/scan.php?page=news_item&px=HHVM-4.0-Released --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 24e0bf36b48..44bc59e3fb0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ php: - '7.0' - '7.1' - '7.2' - - hhvm install: # newest version without https://github.com/squizlabs/PHP_CodeSniffer/pull/1404 From 75a802f623672dab0179d64a0e84d63d212bcd93 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 13 Feb 2019 15:51:28 +0100 Subject: [PATCH 22/59] Changelog 2249 https://github.com/FreshRSS/FreshRSS/pull/2249 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee7c5602cc6..f9d1bc1d644 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ * Docker image updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) * I18n * Improved Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) +* Misc. + * Remove HHMV from Travis continuous integration [#2249](https://github.com/FreshRSS/FreshRSS/pull/2249) ## 2019-01-26 FreshRSS 1.13.1 From 75356c64a2b13a89497bd8125c1bfe79293084f9 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 13 Feb 2019 17:18:21 +0100 Subject: [PATCH 23/59] Remove deprecated CSP child-src It's been probably long enough since https://github.com/FreshRSS/FreshRSS/pull/1099 --- app/FreshRSS.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/FreshRSS.php b/app/FreshRSS.php index 9371081e402..1dc80718ee2 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -117,7 +117,7 @@ public static function preLayout() { } }, FreshRSS_Context::$user_conf->sharing)); $connectSrc = count($urlToAuthorize) ? sprintf("; connect-src 'self' %s", implode(' ', $urlToAuthorize)) : ''; - header(sprintf("Content-Security-Policy: default-src 'self'; child-src *; frame-src *; img-src * data:; media-src *%s", $connectSrc)); + header(sprintf("Content-Security-Policy: default-src 'self'; frame-src *; img-src * data:; media-src *%s", $connectSrc)); break; case 'stats': header("Content-Security-Policy: default-src 'self'; style-src 'self' 'unsafe-inline'"); From 387f763482412d47769ae1a7314d56cc12986420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Sat, 16 Feb 2019 12:33:24 +0100 Subject: [PATCH 24/59] Odre des mots --- app/i18n/oc/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/i18n/oc/admin.php b/app/i18n/oc/admin.php index 4a47374d7b6..2f8ede87348 100644 --- a/app/i18n/oc/admin.php +++ b/app/i18n/oc/admin.php @@ -130,7 +130,7 @@ 'category' => 'Categoria', 'entry_count' => 'Nombre d’articles', 'entry_per_category' => 'Articles per categoria', - 'entry_per_day' => 'Nombre d’articles per jorn (30 darrièrs jorns)', + 'entry_per_day' => 'Nombre d’articles per jorn (darrièrs 30 jorns)', 'entry_per_day_of_week' => 'Per jorn de la setmana (mejana : %.2f messatges)', 'entry_per_hour' => 'Per ora (mejana : %.2f messatges)', 'entry_per_month' => 'Per mes (mejana : %.2f messatges)', From 3d57714bff3462bd7dafb72ffb1ff4b7d640b3cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Sat, 16 Feb 2019 12:33:56 +0100 Subject: [PATCH 25/59] Ordre des mots --- app/i18n/oc/gen.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index 168ea473284..7f97932830b 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -68,8 +68,8 @@ 'Jun' => '\\j\\u\\n\\h', 'jun' => 'junh', 'june' => 'junh', - 'last_3_month' => 'Dempuèi los tres darrièrs meses', - 'last_6_month' => 'Dempuèi los sièis darrièrs meses', + 'last_3_month' => 'Dempuèi los darrièrs tres meses', + 'last_6_month' => 'Dempuèi los darrièrs sièis meses', 'last_month' => 'Dempuèi lo mes passat', 'last_week' => 'Dempuèi la setmana passada', 'last_year' => 'Dempuèi l’annada passada', From b869c2944a01c5060d05a093d5e0c797d48bb159 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 23 Feb 2019 14:39:20 +0100 Subject: [PATCH 26/59] JavaScript fixes + new navigation loop behaviour (#2255) * Fixed user configuration 404 https://github.com/FreshRSS/FreshRSS/pull/2234#issuecomment-466561555 * Fixed "SPACE" shortcut bug https://github.com/FreshRSS/FreshRSS/pull/2234#issuecomment-466626412 * Use next feed / previous feed when reaching last / first article instead of looping * Jump to next / previous category when reaching last / first feed instead of looping --- app/views/user/manage.phtml | 2 +- p/scripts/extra.js | 10 ++++-- p/scripts/main.js | 62 +++++++++++++++++++++++++------------ 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index 9d457f7a510..d0e5928ef98 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -53,7 +53,7 @@
        - diff --git a/p/scripts/extra.js b/p/scripts/extra.js index 7a0ef0477dd..c0d0c89e171 100644 --- a/p/scripts/extra.js +++ b/p/scripts/extra.js @@ -142,8 +142,14 @@ function init_password_observers() { function init_select_observers() { document.querySelectorAll('.select-change').forEach(function (s) { s.onchange = function (ev) { - const opt = s.options[s.selectedIndex]; - location.href = opt.getAttribute('data-url'); + const opt = s.options[s.selectedIndex], + url = opt.getAttribute('data-url'); + if (url) { + s.form.querySelectorAll('[type=submit]').forEach(function (b) { + b.disabled = true; + }); + location.href = url; + } }; }); } diff --git a/p/scripts/main.js b/p/scripts/main.js index 345cbe749f6..90a41d767b7 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -374,41 +374,65 @@ function toggleContent(new_active, old_active, skipping) { } function prev_entry(skipping) { - const old_active = document.querySelector('.flux.current'), - new_active = old_active ? old_active.previousElementSibling : document.querySelector('.flux'); + const old_active = document.querySelector('.flux.current'); + let new_active = old_active; + if (new_active) { + do new_active = new_active.previousElementSibling; + while (new_active && !new_active.classList.contains('flux')); + if (!new_active) { + prev_feed(); + } + } else { + new_active = document.querySelector('.flux'); + } toggleContent(new_active, old_active, skipping); } function next_entry(skipping) { - const old_active = document.querySelector('.flux.current'), - new_active = old_active ? old_active.nextElementSibling : document.querySelector('.flux'); + const old_active = document.querySelector('.flux.current'); + let new_active = old_active; + if (new_active) { + do new_active = new_active.nextElementSibling; + while (new_active && !new_active.classList.contains('flux')); + if (!new_active) { + next_feed(); + } + } else { + new_active = document.querySelector('.flux'); + } toggleContent(new_active, old_active, skipping); } function prev_feed() { - const active_feed = document.querySelector('#aside_feed .feed.active'); - if (active_feed) { - let feed = active_feed; - do feed = feed.previousElementSibling; - while (feed && getComputedStyle(feed).display === 'none'); - if (feed) { + let found = false; + const feeds = document.querySelectorAll('#aside_feed .feed'); + for (let i = feeds.length - 1; i >= 0; i--) { + const feed = feeds[i]; + if (found && getComputedStyle(feed).display !== 'none') { feed.querySelector('a.item-title').click(); + break; + } else if (feed.classList.contains('active')) { + found = true; } - } else { + } + if (!found) { last_feed(); } } function next_feed() { - const active_feed = document.querySelector('#aside_feed .feed.active'); - if (active_feed) { - let feed = active_feed; - do feed = feed.nextElementSibling; - while (feed && getComputedStyle(feed).display === 'none'); - if (feed) { + let found = false; + const feeds = document.querySelectorAll('#aside_feed .feed'); + for (let i = 0; i < feeds.length; i++) { + const feed = feeds[i]; + if (found && getComputedStyle(feed).display !== 'none') { feed.querySelector('a.item-title').click(); + break; + } else if (feed.classList.contains('active')) { + found = true; } - } else { + } + if (!found) { first_feed(); } } @@ -664,7 +688,7 @@ function init_shortcuts() { } const s = context.shortcuts, - k = ev.key.toUpperCase(); + k = (ev.key.trim() || ev.code).toUpperCase(); if (location.hash.match(/^#dropdown-/)) { const n = parseInt(k); if (n) { From 2b2d9583cd2a4dc39c6f95dd73866c009f4480ce Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 20:39:18 +0100 Subject: [PATCH 27/59] Fix mark_updated_article_unread https://github.com/FreshRSS/FreshRSS/issues/2200 --- app/Controllers/feedController.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 74c9eacfa07..42cb46834f2 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -353,11 +353,10 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush } else { //This entry already exists but has been updated //Minz_Log::debug('Entry with GUID `' . $entry->guid() . '` updated in feed ' . $feed->url(false) . //', old hash ' . $existingHash . ', new hash ' . $entry->hash()); - $mark_updated_article_unread = $feed->attributes('mark_updated_article_unread') !== null ? ( - $feed->attributes('mark_updated_article_unread') - ) : FreshRSS_Context::$user_conf->mark_updated_article_unread; + $mark_updated_article_unread = $feed->attributes('mark_updated_article_unread') !== null ? + $feed->attributes('mark_updated_article_unread') : FreshRSS_Context::$user_conf->mark_updated_article_unread; $needFeedCacheRefresh = $mark_updated_article_unread; - $entry->_isRead(FreshRSS_Context::$user_conf->mark_updated_article_unread ? false : null); //Change is_read according to policy. + $entry->_isRead($mark_updated_article_unread ? false : null); //Change is_read according to policy. $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); if ($entry === null) { From f1978da394eb6e400d9aa58faf5322129ad635ce Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 20:43:51 +0100 Subject: [PATCH 28/59] Boolean error --- app/Controllers/feedController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 42cb46834f2..179a8971e2e 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -356,7 +356,7 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush $mark_updated_article_unread = $feed->attributes('mark_updated_article_unread') !== null ? $feed->attributes('mark_updated_article_unread') : FreshRSS_Context::$user_conf->mark_updated_article_unread; $needFeedCacheRefresh = $mark_updated_article_unread; - $entry->_isRead($mark_updated_article_unread ? false : null); //Change is_read according to policy. + $entry->_isRead($mark_updated_article_unread ? true : null); //Change is_read according to policy. $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); if ($entry === null) { From 7d76acad04f1ac31829611c90a8941104f74b6a4 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 20:56:03 +0100 Subject: [PATCH 29/59] Re-introduce Travis workaround --- app/Controllers/feedController.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 179a8971e2e..57c2e392d48 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -353,8 +353,9 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush } else { //This entry already exists but has been updated //Minz_Log::debug('Entry with GUID `' . $entry->guid() . '` updated in feed ' . $feed->url(false) . //', old hash ' . $existingHash . ', new hash ' . $entry->hash()); - $mark_updated_article_unread = $feed->attributes('mark_updated_article_unread') !== null ? - $feed->attributes('mark_updated_article_unread') : FreshRSS_Context::$user_conf->mark_updated_article_unread; + $mark_updated_article_unread = $feed->attributes('mark_updated_article_unread') !== null ? ( + $feed->attributes('mark_updated_article_unread') + ) : FreshRSS_Context::$user_conf->mark_updated_article_unread; $needFeedCacheRefresh = $mark_updated_article_unread; $entry->_isRead($mark_updated_article_unread ? true : null); //Change is_read according to policy. From 2856f7b8b47abcddf20589e19be1f5b98caa1ae3 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 21:06:56 +0100 Subject: [PATCH 30/59] Revert wrong boolean --- app/Controllers/feedController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 57c2e392d48..d5ae235ad5e 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -357,7 +357,7 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush $feed->attributes('mark_updated_article_unread') ) : FreshRSS_Context::$user_conf->mark_updated_article_unread; $needFeedCacheRefresh = $mark_updated_article_unread; - $entry->_isRead($mark_updated_article_unread ? true : null); //Change is_read according to policy. + $entry->_isRead($mark_updated_article_unread ? false : null); //Change is_read according to policy. $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); if ($entry === null) { From fc8fb0a7ee0d98f8c31be3bd6e76719ebb0e68ee Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 21:49:20 +0100 Subject: [PATCH 31/59] Docker image alternative using Ubuntu (#2205) * Docker image alternative using Ubuntu Ubuntu seems to be faster, cf. e.g. PHPBench. It is quite usual for Docker images to offer both a Debian/Ubuntu and an Alpine version, so we could also do the same if there is any need. Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2202 * Only explicit use of Apache confs Fix double-logging issue * Explicit ServerTokens OS Default Apache configuration in Ubuntu, which was removed when disabling all confs. It is also the default Apache configuration in Alpine. * Take advantage of syslog for actualization Same than for Alpine https://github.com/FreshRSS/FreshRSS/pull/2208/commits/43ab629e27799cb28ec28ad409a512e128d11e97 * COPY_SYSLOG_TO_STDERR Same as https://github.com/FreshRSS/FreshRSS/pull/2213 * Update to libapache2-mod-php instead of php-fpm * Default to Ubuntu Ubuntu mod-php wins, being ~14% faster than Ubuntu php-fpm (which was ~300% faster than Alpine mod-php) --- Docker/Dockerfile | 44 ++++++++++++++++++++----------------- Docker/Dockerfile-Alpine | 34 ++++++++++++++++++++++++++++ Docker/FreshRSS.Apache.conf | 1 + 3 files changed, 59 insertions(+), 20 deletions(-) create mode 100644 Docker/Dockerfile-Alpine diff --git a/Docker/Dockerfile b/Docker/Dockerfile index cd0f521a0c7..53feb31d4f7 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,28 +1,31 @@ -FROM alpine:3.9 +FROM ubuntu:18.10 ENV TZ UTC +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN apk add --no-cache \ - apache2 php7-apache2 \ - php7 php7-curl php7-gmp php7-intl php7-mbstring php7-xml php7-zip \ - php7-ctype php7-dom php7-fileinfo php7-iconv php7-json php7-session php7-simplexml php7-xmlreader php7-zlib \ - php7-pdo_sqlite php7-pdo_mysql php7-pdo_pgsql +RUN apt update && \ + apt install --no-install-recommends -y \ + cron \ + apache2 libapache2-mod-php \ + php-curl php-intl php-mbstring php-xml php-zip \ + php-sqlite3 php-mysql php-pgsql && \ + rm -rf /var/lib/apt/lists/ -RUN mkdir -p /var/www/FreshRSS /run/apache2/ +RUN mkdir -p /var/www/FreshRSS /run/apache2/ /run/php/ WORKDIR /var/www/FreshRSS COPY . /var/www/FreshRSS -COPY ./Docker/*.Apache.conf /etc/apache2/conf.d/ - -RUN rm -f /etc/apache2/conf.d/languages.conf /etc/apache2/conf.d/info.conf \ - /etc/apache2/conf.d/status.conf /etc/apache2/conf.d/userdir.conf && \ - sed -r -i "/^\s*LoadModule .*mod_(alias|autoindex|negotiation|status).so$/s/^/#/" \ - /etc/apache2/httpd.conf && \ - sed -r -i "/^\s*#\s*LoadModule .*mod_(deflate|expires|headers|mime|setenvif).so$/s/^\s*#//" \ - /etc/apache2/httpd.conf && \ - sed -r -i "/^\s*(CustomLog|ErrorLog|Listen) /s/^/#/" \ - /etc/apache2/httpd.conf && \ - echo "17,37 * * * * su apache -s /bin/sh -c 'php /var/www/FreshRSS/app/actualize_script.php' 2>> /proc/1/fd/2 > /tmp/FreshRSS.log" >> \ +COPY ./Docker/*.Apache.conf /etc/apache2/sites-available/ + +RUN a2dismod -f alias autoindex negotiation status && \ + a2enmod deflate expires headers mime proxy_fcgi setenvif && \ + a2disconf '*' && \ + a2dissite '*' && \ + a2ensite 'FreshRSS*' + +RUN sed -r -i "/^\s*(CustomLog|ErrorLog|Listen) /s/^/#/" /etc/apache2/apache2.conf && \ + sed -r -i "/^\s*Listen /s/^/#/" /etc/apache2/ports.conf && \ + echo "17,37 su apache -s /bin/sh -c 'php /var/www/FreshRSS/app/actualize_script.php' 2>> /proc/1/fd/2 > /tmp/FreshRSS.log" >> \ /var/spool/cron/crontabs/root ENV COPY_SYSLOG_TO_STDERR On @@ -30,5 +33,6 @@ ENV CRON_MIN '' ENTRYPOINT ["./Docker/entrypoint.sh"] EXPOSE 80 -CMD ([ -z "$CRON_MIN" ] || crond -d 6) && \ - exec httpd -D FOREGROUND +CMD ([ -z "$CRON_MIN" ] || cron) && \ + . /etc/apache2/envvars && \ + exec apache2 -D FOREGROUND diff --git a/Docker/Dockerfile-Alpine b/Docker/Dockerfile-Alpine new file mode 100644 index 00000000000..cd0f521a0c7 --- /dev/null +++ b/Docker/Dockerfile-Alpine @@ -0,0 +1,34 @@ +FROM alpine:3.9 + +ENV TZ UTC + +RUN apk add --no-cache \ + apache2 php7-apache2 \ + php7 php7-curl php7-gmp php7-intl php7-mbstring php7-xml php7-zip \ + php7-ctype php7-dom php7-fileinfo php7-iconv php7-json php7-session php7-simplexml php7-xmlreader php7-zlib \ + php7-pdo_sqlite php7-pdo_mysql php7-pdo_pgsql + +RUN mkdir -p /var/www/FreshRSS /run/apache2/ +WORKDIR /var/www/FreshRSS + +COPY . /var/www/FreshRSS +COPY ./Docker/*.Apache.conf /etc/apache2/conf.d/ + +RUN rm -f /etc/apache2/conf.d/languages.conf /etc/apache2/conf.d/info.conf \ + /etc/apache2/conf.d/status.conf /etc/apache2/conf.d/userdir.conf && \ + sed -r -i "/^\s*LoadModule .*mod_(alias|autoindex|negotiation|status).so$/s/^/#/" \ + /etc/apache2/httpd.conf && \ + sed -r -i "/^\s*#\s*LoadModule .*mod_(deflate|expires|headers|mime|setenvif).so$/s/^\s*#//" \ + /etc/apache2/httpd.conf && \ + sed -r -i "/^\s*(CustomLog|ErrorLog|Listen) /s/^/#/" \ + /etc/apache2/httpd.conf && \ + echo "17,37 * * * * su apache -s /bin/sh -c 'php /var/www/FreshRSS/app/actualize_script.php' 2>> /proc/1/fd/2 > /tmp/FreshRSS.log" >> \ + /var/spool/cron/crontabs/root + +ENV COPY_SYSLOG_TO_STDERR On +ENV CRON_MIN '' +ENTRYPOINT ["./Docker/entrypoint.sh"] + +EXPOSE 80 +CMD ([ -z "$CRON_MIN" ] || crond -d 6) && \ + exec httpd -D FOREGROUND diff --git a/Docker/FreshRSS.Apache.conf b/Docker/FreshRSS.Apache.conf index 80f6389d835..6621ff16fa5 100644 --- a/Docker/FreshRSS.Apache.conf +++ b/Docker/FreshRSS.Apache.conf @@ -4,6 +4,7 @@ DocumentRoot /var/www/FreshRSS/p/ CustomLog /dev/stdout combined ErrorLog /dev/stderr AllowEncodedSlashes On +ServerTokens OS AllowOverride None From 60b7f5e6d966bbfb9d3c24a3b51057abd9b6e718 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 22:53:04 +0100 Subject: [PATCH 32/59] Docker Ubuntu notes (#2259) https://github.com/FreshRSS/FreshRSS/pull/2205 (And removed proxy_fcgi forgotten from php-fpm) --- CHANGELOG.md | 12 +++++++----- Docker/Dockerfile | 2 +- Docker/README.md | 14 +++++++++++++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9d1bc1d644..fc71fabe6f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,16 +2,18 @@ ## 2019-0X-XX FreshRSS 1.13.2-dev -* Bug fixing - * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) - * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) - * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) * UI * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) * Deployment - * Docker image updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) + * New default Docker image based on Ubuntu (~3 times faster, but ~2.5 times larger) [#2205](https://github.com/FreshRSS/FreshRSS/pull/2205) + * Using Ubuntu 18.10 with PHP 7.2.15 and Apache 2.4.34 + * Alpine version updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) +* Bug fixing + * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) + * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) + * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) * I18n * Improved Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) * Misc. diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 53feb31d4f7..8f15bec96d6 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -18,7 +18,7 @@ COPY . /var/www/FreshRSS COPY ./Docker/*.Apache.conf /etc/apache2/sites-available/ RUN a2dismod -f alias autoindex negotiation status && \ - a2enmod deflate expires headers mime proxy_fcgi setenvif && \ + a2enmod deflate expires headers mime setenvif && \ a2disconf '*' && \ a2dissite '*' && \ a2ensite 'FreshRSS*' diff --git a/Docker/README.md b/Docker/README.md index ac745c49df8..ba6169ea3af 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -10,6 +10,18 @@ sh get-docker.sh ``` +## [Docker tags](https://hub.docker.com/r/freshrss/freshrss/tags) +The tags correspond to FreshRSS branches and versions: +* `:latest` (default) is the `master` branch, more stable +* `:dev` is the `dev` branch, rolling release +* `:x.y.z` are specific FreshRSS releases + +### Linux: Ubuntu vs. Alpine +Our default image is based on [Ubuntu](https://www.ubuntu.com/server). We offer an alternative based on [Alpine](https://alpinelinux.org/) (with the `-alpine` tag suffix). +In [our tests](https://github.com/FreshRSS/FreshRSS/pull/2205), Ubuntu is ~3 times faster, +while Alpine is ~2.5 times [smaller on disk](https://hub.docker.com/r/freshrss/freshrss/tags) (and much faster to build). + + ## Optional: Build Docker image of FreshRSS Optional, as a *less recent* online image can be automatically fetched during the next step (run), but online images are not available for as many platforms (e.g. Raspberry Pi / ARM) as if you build yourself. @@ -20,7 +32,7 @@ git clone https://github.com/FreshRSS/FreshRSS.git cd ./FreshRSS/ git pull -sudo docker pull alpine:3.8 +sudo docker pull ubuntu:18.10 sudo docker build --tag freshrss/freshrss -f Docker/Dockerfile . ``` From 1bdc3837de6f9b2555220578bb3584651da9ab82 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 2 Mar 2019 23:07:10 +0100 Subject: [PATCH 33/59] Changelog 2250 2253 2255 2258 https://github.com/FreshRSS/FreshRSS/issues/2200 https://github.com/FreshRSS/FreshRSS/pull/2250 https://github.com/FreshRSS/FreshRSS/pull/2253 https://github.com/FreshRSS/FreshRSS/pull/2255 https://github.com/FreshRSS/FreshRSS/pull/2258 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc71fabe6f9..8835d7be04d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,16 +6,21 @@ * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) + * Keyboard-shortcut navigation at end of feed or category continues to the next one [#2255](https://github.com/FreshRSS/FreshRSS/pull/2255) * Deployment * New default Docker image based on Ubuntu (~3 times faster, but ~2.5 times larger) [#2205](https://github.com/FreshRSS/FreshRSS/pull/2205) * Using Ubuntu 18.10 with PHP 7.2.15 and Apache 2.4.34 * Alpine version updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) * Bug fixing + * Fix feed option for marking modified articles as unread [#2200](https://github.com/FreshRSS/FreshRSS/issues/2200) * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) * I18n * Improved Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) + * Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253) +* Security + * Remove deprecated CSP `child-src` instruction (was already replaced by `frame-src`) [#2250](https://github.com/FreshRSS/FreshRSS/pull/2250) * Misc. * Remove HHMV from Travis continuous integration [#2249](https://github.com/FreshRSS/FreshRSS/pull/2249) From 999d1b8c035f4de31026198dad93f485392df8d4 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 4 Mar 2019 21:21:38 +0100 Subject: [PATCH 34/59] Use getenv instead of $_SERVER for environment variables getenv() is the proper way, and $_SERVER was not working on some configurations. Improvement of https://github.com/FreshRSS/FreshRSS/pull/2213 --- constants.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/constants.php b/constants.php index 2072e5ea1dc..dacbb11aaa3 100644 --- a/constants.php +++ b/constants.php @@ -33,7 +33,7 @@ function safe_define($name, $value) { safe_define('PHP_COMPRESSION', false); // For cases when syslog is not available -safe_define('COPY_SYSLOG_TO_STDERR', isset($_SERVER['COPY_SYSLOG_TO_STDERR']) ? filter_var($_SERVER['COPY_SYSLOG_TO_STDERR'], FILTER_VALIDATE_BOOLEAN) : false); +safe_define('COPY_SYSLOG_TO_STDERR', filter_var(getenv('COPY_SYSLOG_TO_STDERR'), FILTER_VALIDATE_BOOLEAN)); // Maximum log file size in Bytes, before it will be divided by two safe_define('MAX_LOG_SIZE', 1048576); From b5e83abfc9dadce20cb4bf7024dc7dd9d0f3324b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 9 Mar 2019 12:50:03 +0100 Subject: [PATCH 35/59] Add reference to Readably app https://github.com/FreshRSS/FreshRSS/issues/1406#issuecomment-469310998 --- CHANGELOG.md | 2 ++ README.fr.md | 2 ++ README.md | 2 ++ docs/en/users/06_Fever_API.md | 6 +++--- docs/fr/users/06_Fever_API.md | 3 +++ 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8835d7be04d..9e36f95923e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) +* API + * Supported by [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API) * I18n * Improved Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) * Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253) diff --git a/README.fr.md b/README.fr.md index 58647ae4a01..157979f934a 100644 --- a/README.fr.md +++ b/README.fr.md @@ -196,6 +196,8 @@ Voir notre [documentation sur l’API Fever](https://freshrss.github.io/FreshRSS Tout client supportant une API de type Fever ; Sélection : +* Android + * [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (Propriétaire) * iOS * [Fiery Feeds](https://itunes.apple.com/app/fiery-feeds-rss-reader/id1158763303) (Propriétaire) * [Unread](https://itunes.apple.com/app/unread-rss-reader/id1252376153) (Propriétaire) diff --git a/README.md b/README.md index 190ee5639c1..b91571e3e71 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,8 @@ See our [Fever API documentation](https://freshrss.github.io/FreshRSS/en/users/0 Supported clients are: +* Android + * [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (Closed source) * iOS * [Fiery Feeds](https://itunes.apple.com/app/fiery-feeds-rss-reader/id1158763303) (Closed source) * [Unread](https://itunes.apple.com/app/unread-rss-reader/id1252376153) (Closed source) diff --git a/docs/en/users/06_Fever_API.md b/docs/en/users/06_Fever_API.md index 971cf957dbb..9091645165a 100644 --- a/docs/en/users/06_Fever_API.md +++ b/docs/en/users/06_Fever_API.md @@ -20,6 +20,9 @@ Then point your mobile application to the URL of `fever.php` (e.g. `https://fres Tested with: +- Android + - [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) + - iOS - [Fiery Feeds](https://itunes.apple.com/app/fiery-feeds-rss-reader/id1158763303) - [Unread](https://itunes.apple.com/app/unread-rss-reader/id1252376153) @@ -28,9 +31,6 @@ Tested with: - MacOS - [Readkit](https://itunes.apple.com/app/readkit/id588726889) -- Android - -Until now, we don't know about compatible Android clients. Please leave your feedback, if you tested the Fever API with Android apps. - - Please note, that *Press* is NOT compatible: it was a popular RSS client with Fever support, but its development stopped a while ago. It uses the Fever API in a wrong way, which we don't support. ## Features diff --git a/docs/fr/users/06_Fever_API.md b/docs/fr/users/06_Fever_API.md index 50650ebcd97..fb15e596b18 100644 --- a/docs/fr/users/06_Fever_API.md +++ b/docs/fr/users/06_Fever_API.md @@ -7,6 +7,9 @@ et des généralités sur l’accès par API. Testé avec: +- Android + [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) + - iOS - [Fiery Feeds](https://itunes.apple.com/app/fiery-feeds-rss-reader/id1158763303) - [Unread](https://itunes.apple.com/app/unread-rss-reader/id1252376153) From 566799075155546392316b1e4e352bdfc9e3602b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 9 Mar 2019 15:43:44 +0100 Subject: [PATCH 36/59] Change nextGet behaviour Fixes https://github.com/FreshRSS/FreshRSS/issues/2206 Related to https://github.com/FreshRSS/FreshRSS/pull/2255 --- app/Models/Context.php | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/app/Models/Context.php b/app/Models/Context.php index 60ec6ff77b9..95dc47c8ca0 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -252,37 +252,29 @@ private static function _nextGet() { $found_current_get = false; switch ($get[0]) { case 'f': - // We search the next feed with at least one unread article in - // same category as the currend feed. + // We search the next unread feed with the following priorities: next in same category, or previous in same category, or next, or previous. foreach (self::$categories as $cat) { - if ($cat->id() != self::$current_get['category']) { - // We look into the category of the current feed! - continue; - } - + $sameCat = false; foreach ($cat->feeds() as $feed) { - if ($feed->id() == self::$current_get['feed']) { - // Here is our current feed! Fine, the next one will - // be a potential candidate. + if ($found_current_get) { + if ($feed->nbNotRead() > 0) { + $another_unread_id = $feed->id(); + break 2; + } + } elseif ($feed->id() == self::$current_get['feed']) { $found_current_get = true; - continue; - } - - if ($feed->nbNotRead() > 0) { + } elseif ($feed->nbNotRead() > 0) { $another_unread_id = $feed->id(); - if ($found_current_get) { - // We have found our current feed and now we - // have an feed with unread articles. Leave the - // loop! - break; - } + $sameCat = true; } } - break; + if ($found_current_get && $sameCat) { + break; + } } - // If no feed have been found, next_get is the current category. - self::$next_get = empty($another_unread_id) ? 'c_' . self::$current_get['category'] : 'f_' . $another_unread_id; + // If there is no more unread feed, show main stream + self::$next_get = $another_unread_id == '' ? 'a' : 'f_' . $another_unread_id; break; case 'c': // We search the next category with at least one unread article. @@ -304,8 +296,8 @@ private static function _nextGet() { } } - // No unread category? The main stream will be our destination! - self::$next_get = empty($another_unread_id) ? 'a' : 'c_' . $another_unread_id; + // If there is no more unread category, show main stream + self::$next_get = $another_unread_id == '' ? 'a' : 'c_' . $another_unread_id; break; } } From 5b8c3e5bf3d52373ceead2ade79eb724fb3867c8 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 9 Mar 2019 18:25:33 +0100 Subject: [PATCH 37/59] Fix base theme border regression https://github.com/FreshRSS/FreshRSS/issues/2254 --- p/themes/base-theme/template.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/p/themes/base-theme/template.css b/p/themes/base-theme/template.css index 2ea05878689..fb62f8d740e 100644 --- a/p/themes/base-theme/template.css +++ b/p/themes/base-theme/template.css @@ -504,7 +504,10 @@ a.btn { padding: 0px 15px; } .aside_feed .tree-folder-items:not(.active) { + border: none; + margin: 0; max-height: 0; + padding: 0; overflow: hidden; } .aside_feed .tree-folder-items .dropdown { From 54a86990e674a529db028a2240ba73237ae55f09 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 9 Mar 2019 19:15:46 +0100 Subject: [PATCH 38/59] Improved auto load more articles Fixed bug + ealier trigger of load more (half of the window height instead of 0) --- p/scripts/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index 90a41d767b7..521adc839d6 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -592,9 +592,9 @@ function onScroll() { } } if (context.auto_load_more) { - const load_more = document.getElementById('mark-read-pagination'); - if (load_more && box_to_follow.scrollTop > 0 && - box_to_follow.scrollTop + box_to_follow.offsetHeight >= load_more.offsetTop) { + const pagination = document.getElementById('mark-read-pagination'); + if (pagination && box_to_follow.offsetHeight > 0 && + box_to_follow.scrollTop + box_to_follow.offsetHeight + (window.innerHeight / 2) >= pagination.offsetTop) { load_more_posts(); } } From 41e58630f774d54b84f272938b294bb04d51653b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 9 Mar 2019 19:59:20 +0100 Subject: [PATCH 39/59] Changelog 2206 2260 2268 https://github.com/FreshRSS/FreshRSS/issues/2206 https://github.com/FreshRSS/FreshRSS/pull/2258 https://github.com/FreshRSS/FreshRSS/pull/2260 https://github.com/FreshRSS/FreshRSS/pull/2268 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e36f95923e..06f2708a592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) * Keyboard-shortcut navigation at end of feed or category continues to the next one [#2255](https://github.com/FreshRSS/FreshRSS/pull/2255) + * Changed jump behaviour after marking articles as read [#2206](https://github.com/FreshRSS/FreshRSS/issues/2206) + * More reactive auto-loading of articles [#2268](https://github.com/FreshRSS/FreshRSS/pull/2268) * Deployment * New default Docker image based on Ubuntu (~3 times faster, but ~2.5 times larger) [#2205](https://github.com/FreshRSS/FreshRSS/pull/2205) * Using Ubuntu 18.10 with PHP 7.2.15 and Apache 2.4.34 @@ -16,6 +18,7 @@ * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) + * Fix the reading of the environment variable `COPY_SYSLOG_TO_STDERR` [#2260](https://github.com/FreshRSS/FreshRSS/pull/2260) * API * Supported by [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API) * I18n From e91ef155d42f9624ef0e5d553b4e5fad70ba1bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Sun, 10 Mar 2019 19:52:27 +0100 Subject: [PATCH 40/59] Pitchoun correciou (#2269) --- app/i18n/oc/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/i18n/oc/index.php b/app/i18n/oc/index.php index 5211fd24a40..5cc71c9a9b7 100644 --- a/app/i18n/oc/index.php +++ b/app/i18n/oc/index.php @@ -6,7 +6,7 @@ 'agpl3' => 'AGPL 3', 'bugs_reports' => 'Senhalament de problèmas', 'credits' => 'Crèdits', - 'credits_content' => 'Unes elements de l’estil venon del projècte Bootstrap encara que FreshRSS utilize pas aqueste framework. Lasicònas venon del projècte GNOME. La polissa Open Sans utilizada foguèt creada per en Steve Matteson. FreshRSS es basat sus Minz, un framework PHP.', + 'credits_content' => 'Unes elements de l’estil venon del projècte Bootstrap encara que FreshRSS utilize pas aqueste framework. Las icònas venon del projècte GNOME. La polissa Open Sans utilizada foguèt creada per en Steve Matteson. FreshRSS es basat sus Minz, un framework PHP.', 'freshrss_description' => 'FreshRSS es un agregador de fluxes RSS per l’auto-albergar tal coma Kriss Feed o Leed. Sa tòca es d’èsser leugièr e de bon utilizar de prima abòrd mas tanben d’èsser potent e parametrable.', 'github' => 'on Github', 'license' => 'Licéncia', From bdf9aef2acb7c608f72737402dd6da5668a5ea9b Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sun, 17 Mar 2019 11:08:42 +0100 Subject: [PATCH 41/59] [i18n] Update some translation strings (#2277) See #2086 --- app/i18n/en/conf.php | 7 ++----- app/i18n/fr/conf.php | 10 +++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index b3d4d8a5c96..fde78f5b5ef 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -158,15 +158,12 @@ 'javascript' => 'JavaScript must be enabled in order to use shortcuts', 'last_article' => 'Open the last article', 'load_more' => 'Load more articles', - 'mark_favorite' => 'Mark as favourite', - 'mark_read' => 'Mark as read', + 'mark_favorite' => 'Toggle favourite', + 'mark_read' => 'Toggle read', 'navigation' => 'Navigation', 'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.
        With the "Alt" modifier, navigation shortcuts apply on categories.', 'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.', 'next_article' => 'Open the next article', - 'other_action' => 'Other actions', - 'previous_article' => 'Open the previous article', - 'next_article' => 'Open the next article', 'normal_view' => 'Switch to normal view', 'other_action' => 'Other actions', 'previous_article' => 'Open the previous article', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index 5c8e91c89a2..d0d146c89cb 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -158,11 +158,11 @@ 'javascript' => 'Le JavaScript doit être activé pour pouvoir profiter des raccourcis.', 'last_article' => 'Passer au dernier article', 'load_more' => 'Charger plus d’articles', - 'mark_favorite' => 'Mettre en favori', - 'mark_read' => 'Marquer comme lu', + 'mark_favorite' => 'Basculer l’indicateur de favori', + 'mark_read' => 'Basculer l’indicateur de lecture', 'navigation' => 'Navigation', 'navigation_help' => 'Avec le modificateur "Shift", les raccourcis de navigation s’appliquent aux flux.
        Avec le modificateur "Alt", les raccourcis de navigation s’appliquent aux catégories.', - 'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.', //TODO - Translation + 'navigation_no_mod_help' => 'Les raccourcis suivant ne supportent pas les modificateurs.', 'next_article' => 'Passer à l’article suivant', 'normal_view' => 'Basculer vers la vue normale', 'other_action' => 'Autres actions', @@ -171,8 +171,8 @@ 'rss_view' => 'Ouvrir le flux RSS dans un nouvel onglet', 'see_on_website' => 'Voir sur le site d’origine', 'shift_for_all_read' => '+ shift pour marquer tous les articles comme lus', - 'skip_next_article' => 'Focus next without opening', //TODO - Translation - 'skip_previous_article' => 'Focus previous without opening', //TODO - Translation + 'skip_next_article' => 'Passer au suivant sans ouvrir', + 'skip_previous_article' => 'Passer au précédent sans ouvrir', 'title' => 'Raccourcis', 'user_filter' => 'Accéder aux filtres utilisateur', 'user_filter_help' => 'S’il n’y a qu’un filtre utilisateur, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.', From e6888bbf232de5547560ea3af56ed760cb11c4ae Mon Sep 17 00:00:00 2001 From: hoilc Date: Mon, 18 Mar 2019 17:55:50 +0800 Subject: [PATCH 42/59] update zh-cn (i18n) (#2280) --- app/i18n/zh-cn/admin.php | 20 ++++++++++---------- app/i18n/zh-cn/conf.php | 26 +++++++++++++------------- app/i18n/zh-cn/feedback.php | 10 +++++----- app/i18n/zh-cn/gen.php | 2 +- app/i18n/zh-cn/index.php | 6 +++--- app/i18n/zh-cn/install.php | 4 ++-- app/i18n/zh-cn/sub.php | 14 +++++++------- cli/i18n/ignore/zh-cn.php | 4 ++++ 8 files changed, 45 insertions(+), 41 deletions(-) diff --git a/app/i18n/zh-cn/admin.php b/app/i18n/zh-cn/admin.php index e34070526e1..74f57b6e801 100644 --- a/app/i18n/zh-cn/admin.php +++ b/app/i18n/zh-cn/admin.php @@ -64,11 +64,11 @@ 'files' => '文件相关', 'json' => array( 'nok' => '找不到 JSON 扩展 (php-json ) 。', - 'ok' => '已找到 JSON 扩展', + 'ok' => '已找到 JSON 扩展。', ), 'mbstring' => array( - 'nok' => 'Cannot find the recommended library mbstring for Unicode.', //TODO - Translation - 'ok' => 'You have the recommended library mbstring for Unicode.', //TODO - Translation + 'nok' => '找不到推荐的 Unicode 解析库 (mbstring)。', + 'ok' => '已找到推荐的 Unicode 解析库 (mbstring)。', ), 'minz' => array( 'nok' => '找不到 Minz 框架。', @@ -163,8 +163,8 @@ 'max-categories' => '每用户分类限制', 'max-feeds' => '每用户 RSS 源限制', 'cookie-duration' => array( - 'help' => 'in seconds', // @todo translate - 'number' => 'Duration to keep logged in', // @todo translate + 'help' => '单位(秒)', + 'number' => '保持登录的时长', ), 'registration' => array( 'help' => '0 表示无账户数限制', @@ -183,15 +183,15 @@ 'user' => array( 'articles_and_size' => '%s 篇文章 (%s)', 'create' => '创建新用户', - 'delete_users' => 'Delete user', //TODO - Translation + 'delete_users' => '删除用户', 'language' => '语言', - 'number' => '已有 %d 个帐户', - 'numbers' => '已有 %d 个帐户', + 'number' => '已有 %d 个用户', + 'numbers' => '已有 %d 个用户', 'password_form' => '密码
        (用于 Web-form 登录方式)', 'password_format' => '至少 7 个字符', - 'selected' => 'Selected user', //TODO - Translation + 'selected' => '已选中用户', 'title' => '用户管理', - 'update_users' => 'Update user', //TODO - Translation + 'update_users' => '更新用户', 'user_list' => '用户列表', 'username' => '用户名', 'users' => '用户', diff --git a/app/i18n/zh-cn/conf.php b/app/i18n/zh-cn/conf.php index 1216aaaca13..535dfd3583a 100644 --- a/app/i18n/zh-cn/conf.php +++ b/app/i18n/zh-cn/conf.php @@ -28,7 +28,7 @@ 'seconds' => '秒 (0 表示不超时)', 'timeout' => 'HTML5 通知超时时间', ), - 'show_nav_buttons' => 'Show the navigation buttons', //TODO - Translation + 'show_nav_buttons' => '显示导航按钮', 'theme' => '主题', 'title' => '显示', 'width' => array( @@ -53,7 +53,7 @@ 'query' => array( '_' => '自定义查询', 'deprecated' => '此查询不再有效。相关的分类或 RSS 源已被删除。', - 'display' => 'Display user query results', //TODO - Translation + 'display' => '显示查询结果', 'filter' => '生效的过滤器:', 'get_all' => '显示所有文章', 'get_category' => '显示分类 "%s"', @@ -64,7 +64,7 @@ 'number' => '查询 n°%d', 'order_asc' => '由旧到新显示文章', 'order_desc' => '由新到旧显示文章', - 'remove' => 'Remove user query', //TODO - Translation + 'remove' => '删除查询', 'search' => '搜索 "%s"', 'state_0' => '显示所有文章', 'state_1' => '显示已读文章', @@ -128,7 +128,7 @@ ), 'sharing' => array( '_' => '分享', - 'add' => 'Add a sharing method', //TODO - Translation + 'add' => '添加分享方式', 'blogotext' => 'Blogotext', 'diaspora' => 'Diaspora*', 'email' => 'Email', @@ -136,7 +136,7 @@ 'g+' => 'Google+', 'more_information' => '更多信息', 'print' => '打印', - 'remove' => 'Remove sharing method', //TODO - Translation + 'remove' => '删除分享方式', 'shaarli' => 'Shaarli', 'share_name' => '名称', 'share_url' => '地址', @@ -148,31 +148,31 @@ '_' => '快捷键', 'article_action' => '文章操作', 'auto_share' => '分享', - 'auto_share_help' => '如果有多种分享模式,则会按照它们的编号依次访问。', + 'auto_share_help' => '如果有多种分享方式,则会按照它们的编号依次访问。', 'close_dropdown' => '关闭菜单', 'collapse_article' => '收起文章', - 'first_article' => '跳转到第一篇文章', + 'first_article' => '打开第一篇文章', 'focus_search' => '聚焦到搜索框', 'global_view' => '切换到全屏视图', 'help' => '显示帮助文档', 'javascript' => '若要使用快捷键,必须启用 JavaScript', - 'last_article' => '跳转到最后一篇文章', + 'last_article' => '打开最后一篇文章', 'load_more' => '载入更多文章', 'mark_favorite' => '加入收藏', 'mark_read' => '设为已读', 'navigation' => '浏览', 'navigation_help' => '搭配 "Shift" 键,浏览快捷键将生效于 RSS 源。
        搭配 "Alt" 键,浏览快捷键将生效于分类。', - 'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.', //TODO - Translation - 'next_article' => '跳转到下一篇文章', + 'navigation_no_mod_help' => '以下快捷键不支持组合键 (Shift 或 Alt)', + 'next_article' => '打开下一篇文章', 'normal_view' => '切换到普通视图', 'other_action' => '其他操作', - 'previous_article' => '跳转到上一篇文章', + 'previous_article' => '打开上一篇文章', 'reading_view' => '切换到阅读视图', 'rss_view' => '在新标签中打开 RSS 视图', 'see_on_website' => '在原网站上查看', 'shift_for_all_read' => '+ shift 可以将全部文章设为已读', - 'skip_next_article' => 'Focus next without opening', //TODO - Translation - 'skip_previous_article' => 'Focus previous without opening', //TODO - Translation + 'skip_next_article' => '跳转到下一篇文章而不打开', + 'skip_previous_article' => '跳转到上一篇文章而不打开', 'title' => '快捷键', 'user_filter' => '显示自定义查询', 'user_filter_help' => '如果有多个自定义过滤器,则会按照它们的编号依次访问。', diff --git a/app/i18n/zh-cn/feedback.php b/app/i18n/zh-cn/feedback.php index e1778a9f282..e8ee969b0ea 100644 --- a/app/i18n/zh-cn/feedback.php +++ b/app/i18n/zh-cn/feedback.php @@ -57,8 +57,8 @@ 'sub' => array( 'actualize' => '获取', 'articles' => array( - 'marked_read' => 'The selected articles have been marked as read.', //TODO - Translation - 'marked_unread' => 'The articles have been marked as unread.', //TODO - Translation + 'marked_read' => '选中文章已标记为已读', + 'marked_unread' => '文章已标记为未读', ), 'category' => array( 'created' => '分类 %s 已创建。', @@ -80,7 +80,7 @@ 'already_subscribed' => '你已订阅 %s', 'deleted' => 'RSS 源已删除', 'error' => 'RSS 源更新失败', - 'internal_problem' => 'RSS 源添加失败。检查 FreshRSS 日志 查看详情。', //TODO - Translation + 'internal_problem' => 'RSS 源添加失败。检查 FreshRSS 日志 查看详情。你可以在URL后附加 #force_feed 从而尝试强制添加。', 'invalid_url' => 'URL %s 无效', 'n_actualized' => '%d 个 RSS 源已更新', 'n_entries_deleted' => '%d 篇文章已删除', @@ -109,8 +109,8 @@ 'error' => '用户 %s 删除失败', ), 'updated' => array( - '_' => 'User %s has been updated', //TODO - Translation - 'error' => 'User %s has not been updated', //TODO - Translation + '_' => '用户 %s 已更新', + 'error' => '用户 %s 更新失败', ), ), ); diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 1dcd952339a..11d4efdb3e5 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -19,7 +19,7 @@ 'see_website' => '查看网站', 'submit' => '提交', 'truncate' => '删除所有文章', - 'update' => 'Update', //TODO - Translation + 'update' => '更新', //TODO - Translation ), 'auth' => array( 'email' => 'Email 地址', diff --git a/app/i18n/zh-cn/index.php b/app/i18n/zh-cn/index.php index 3f6b4470104..018813c3e67 100644 --- a/app/i18n/zh-cn/index.php +++ b/app/i18n/zh-cn/index.php @@ -40,7 +40,7 @@ 'mark_all_read' => '全部设为已读', 'mark_cat_read' => '此分类设为已读', 'mark_feed_read' => '此源设为已读', - 'mark_selection_unread' => 'Mark selection as unread', //TODO - Translation + 'mark_selection_unread' => '选中设为已读', 'newer_first' => '由新到旧', 'non-starred' => '显示未收藏', 'normal_view' => '普通视图', @@ -53,11 +53,11 @@ 'starred' => '显示收藏', 'stats' => '统计', 'subscription' => '订阅管理', - 'tags' => 'My labels', //TODO - Translation + 'tags' => '我的标签', 'unread' => '显示未读', ), 'share' => '分享', 'tag' => array( - 'related' => '相关标签', //TODO - Translation + 'related' => '文章标签', ), ); diff --git a/app/i18n/zh-cn/install.php b/app/i18n/zh-cn/install.php index 29647932a54..da231917bfb 100644 --- a/app/i18n/zh-cn/install.php +++ b/app/i18n/zh-cn/install.php @@ -69,8 +69,8 @@ 'ok' => '已找到推荐的 JSON 解析库。', ), 'mbstring' => array( - 'nok' => 'Cannot find the recommended library mbstring for Unicode.', //TODO - Translation - 'ok' => 'You have the recommended library mbstring for Unicode.', //TODO - Translation + 'nok' => '找不到推荐的 Unicode 解析库 (mbstring)。', + 'ok' => '已找到推荐的 Unicode 解析库 (mbstring)。', ), 'minz' => array( 'nok' => '找不到 Minz 框架。', diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php index 3a9623468eb..f84d08cdfd7 100644 --- a/app/i18n/zh-cn/sub.php +++ b/app/i18n/zh-cn/sub.php @@ -27,7 +27,7 @@ 'password' => 'HTTP 密码', 'username' => 'HTTP 用户名', ), - 'clear_cache' => 'Always clear cache', //TODO - Translation + 'clear_cache' => '总是清除缓存', 'css_help' => '用于获取全文(注意,这将耗费更多时间!)', 'css_path' => '原文的 CSS 选择器', 'description' => '描述', @@ -47,16 +47,16 @@ ), 'websub' => 'WebSub 即时通知', 'show' => array( - 'all' => 'Show all feeds', //TODO - Translation - 'error' => 'Show only feeds with error', //TODO - Translation + 'all' => '显示所有 RSS 源', + 'error' => '仅显示有错误的 RSS 源', ), 'showing' => array( - 'error' => 'Showing only feeds with error', //TODO - Translation + 'error' => '正在显示有错误的 RSS 源', ), - 'ssl_verify' => 'Verify SSL security', //TODO - Translation + 'ssl_verify' => '验证 SSL 安全', 'stats' => '统计', 'think_to_add' => '你可以添加一些 RSS 源。', - 'timeout' => 'Timeout in seconds', //TODO - Translation + 'timeout' => '超时时间(秒)', 'title' => '标题', 'title_add' => '添加 RSS 源', 'ttl' => '最小自动更新时间', @@ -72,7 +72,7 @@ 'export' => '导出', 'export_opml' => '导出 RSS 源列表 (OPML)', 'export_starred' => '导出你的收藏', - 'export_labelled' => 'Export your labelled articles', //TODO + 'export_labelled' => '导出有标签的文章', 'feed_list' => '%s 文章列表', 'file_to_import' => '需要导入的文件
        (OPML, JSON 或 ZIP)', 'file_to_import_no_zip' => '需要导入的文件
        (OPML 或 JSON)', diff --git a/cli/i18n/ignore/zh-cn.php b/cli/i18n/ignore/zh-cn.php index c00ac79d355..d55071d1037 100644 --- a/cli/i18n/ignore/zh-cn.php +++ b/cli/i18n/ignore/zh-cn.php @@ -18,6 +18,7 @@ 'gen.lang.it', 'gen.lang.kr', 'gen.lang.nl', + 'gen.lang.oc', 'gen.lang.pt-br', 'gen.lang.ru', 'gen.lang.tr', @@ -29,8 +30,11 @@ 'gen.share.g+', 'gen.share.gnusocial', 'gen.share.jdh', + 'gen.share.linkedin', 'gen.share.mastodon', 'gen.share.movim', + 'gen.share.pinboard', + 'gen.share.pocket', 'gen.share.shaarli', 'gen.share.twitter', 'gen.share.wallabag', From 6323fe5ea011e7f8821b93071c8f40f271a697f0 Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Tue, 19 Mar 2019 19:52:53 +0100 Subject: [PATCH 43/59] Add Authorization header forwarding to the Nginx configuration for Docker (#2282) * Add Authorization header forwarding to the Nginx configuration for Docker * Comment --- Docker/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Docker/README.md b/Docker/README.md index ba6169ea3af..bed5e1ccecb 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -301,6 +301,10 @@ server { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_read_timeout 90; + + # Forward the Authorization header for the Google Reader API. + proxy_set_header Authorization $http_authorization; + proxy_pass_header Authorization; } } ``` From cb00eafba02b5dfe9bfefd8a4b4228cccef9a6bf Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 19 Mar 2019 20:08:56 +0100 Subject: [PATCH 44/59] Fever remove semicolomn from author (#2283) https://github.com/FreshRSS/FreshRSS/issues/2281 --- p/api/fever.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p/api/fever.php b/p/api/fever.php index 30f9651a30d..b8164692861 100644 --- a/p/api/fever.php +++ b/p/api/fever.php @@ -536,7 +536,7 @@ protected function getItems() 'id' => $entry->id(), 'feed_id' => $entry->feed(false), 'title' => escapeToUnicodeAlternative($entry->title(), false), - 'author' => escapeToUnicodeAlternative($entry->authors(true), false), + 'author' => escapeToUnicodeAlternative(trim($entry->authors(true), '; '), false), 'html' => $entry->content(), 'url' => htmlspecialchars_decode($entry->link(), ENT_QUOTES), 'is_saved' => $entry->isFavorite() ? 1 : 0, From 834ffacce22ff6a2c0f1459476dc4a45e8ea06f9 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 19 Mar 2019 20:14:31 +0100 Subject: [PATCH 45/59] No old ID (#2276) * No old ID https://github.com/FreshRSS/FreshRSS/issues/2273 * PostgreSQL insert or ignore --- app/Controllers/feedController.php | 10 +++------- app/Controllers/importExportController.php | 2 +- app/Models/EntryDAOPGSQL.php | 4 +++- lib/lib_rss.php | 7 +------ 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index d5ae235ad5e..7f36e0388e0 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -377,17 +377,13 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush $read_upon_reception = $feed->attributes('read_upon_reception') !== null ? ( $feed->attributes('read_upon_reception') ) : FreshRSS_Context::$user_conf->mark_when['reception']; - if ($isNewFeed) { - $id = min(time(), $entry_date) . uSecString(); - $entry->_isRead($read_upon_reception); - } elseif ($entry_date < $date_min) { - $id = min(time(), $entry_date) . uSecString(); + $id = uTimeString(); + $entry->_id($id); + if ($entry_date < $date_min) { $entry->_isRead(true); //Old article that was not in database. Probably an error, so mark as read } else { - $id = uTimeString(); $entry->_isRead($read_upon_reception); } - $entry->_id($id); $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); if ($entry === null) { diff --git a/app/Controllers/importExportController.php b/app/Controllers/importExportController.php index 80b9868ec67..1d717692941 100644 --- a/app/Controllers/importExportController.php +++ b/app/Controllers/importExportController.php @@ -585,7 +585,7 @@ private function importJson($article_file, $starred = false) { $feed_id, $item['id'], $item['title'], $author, $content, $url, $published, $is_read, $is_starred ); - $entry->_id(min(time(), $entry->date(true)) . uSecString()); + $entry->_id(uTimeString()); $entry->_tags($tags); if (isset($newGuids[$entry->guid()])) { diff --git a/app/Models/EntryDAOPGSQL.php b/app/Models/EntryDAOPGSQL.php index aef258b6fec..e571e457fd9 100644 --- a/app/Models/EntryDAOPGSQL.php +++ b/app/Models/EntryDAOPGSQL.php @@ -37,7 +37,9 @@ public function commitNewEntries() { INSERT INTO `' . $this->prefix . 'entry` (id, guid, title, author, content, link, date, `lastSeen`, hash, is_read, is_favorite, id_feed, tags) (SELECT rank + row_number() OVER(ORDER BY date) AS id, guid, title, author, content, link, date, `lastSeen`, hash, is_read, is_favorite, id_feed, tags FROM `' . $this->prefix . 'entrytmp` AS etmp - WHERE NOT EXISTS (SELECT 1 FROM `' . $this->prefix . 'entry` AS ereal WHERE etmp.id_feed = ereal.id_feed AND etmp.guid = ereal.guid) + WHERE NOT EXISTS ( + SELECT 1 FROM `' . $this->prefix . 'entry` AS ereal + WHERE (etmp.id = ereal.id) OR (etmp.id_feed = ereal.id_feed AND etmp.guid = ereal.guid)) ORDER BY date); DELETE FROM `' . $this->prefix . 'entrytmp` WHERE id <= maxrank; END $$;'; diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 89e9ddfea96..bff59d5cc3d 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -303,12 +303,7 @@ function lazyimg($content) { function uTimeString() { $t = @gettimeofday(); - return $t['sec'] . str_pad($t['usec'], 6, '0'); -} - -function uSecString() { - $t = @gettimeofday(); - return str_pad($t['usec'], 6, '0'); + return $t['sec'] . str_pad($t['usec'], 6, '0', STR_PAD_LEFT); } function invalidateHttpCache($username = '') { From 71b4226dc721bc0f23cc594760329f29e51defac Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Tue, 19 Mar 2019 20:27:06 +0100 Subject: [PATCH 46/59] Add an option validation on cli commands (#2278) If an option used on cli is not recognized, the command aborts and displays an error message. If the typed option is similar to one of the recognized options, a hint is displayed. At the moment, there is a limitation on long options. Short options are not validated at the moment. See #2046 --- cli/_cli.php | 25 +++++++++++++++++++++++++ cli/_update-or-create-user.php | 2 +- cli/actualize-user.php | 10 ++++++---- cli/db-optimize.php | 10 ++++++---- cli/delete-user.php | 10 ++++++---- cli/do-install.php | 6 +++--- cli/export-opml-for-user.php | 10 ++++++---- cli/export-zip-for-user.php | 12 +++++++----- cli/import-for-user.php | 12 +++++++----- cli/reconfigure.php | 8 ++++++++ 10 files changed, 75 insertions(+), 30 deletions(-) diff --git a/cli/_cli.php b/cli/_cli.php index e8fb6ae42b2..dec244bc33f 100644 --- a/cli/_cli.php +++ b/cli/_cli.php @@ -3,6 +3,9 @@ die('FreshRSS error: This PHP script may only be invoked from command line!'); } +const REGEX_INPUT_OPTIONS = '/^--/'; +const REGEX_PARAM_OPTIONS = '/:*$/'; + require(__DIR__ . '/../constants.php'); require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader require(LIB_PATH . '/lib_install.php'); @@ -64,3 +67,25 @@ function performRequirementCheck($databaseType) { fail($message); } } + +function getLongOptions($options, $regex) { + $longOptions = array_filter($options, function($a) use ($regex) { + return preg_match($regex, $a); + }); + return array_map(function($a) use ($regex) { + return preg_replace($regex, '', $a); + }, $longOptions); +} + +function validateOptions($input, $params) { + $sanitizeInput = getLongOptions($input, REGEX_INPUT_OPTIONS); + $sanitizeParams = getLongOptions($params, REGEX_PARAM_OPTIONS); + $unknownOptions = array_diff($sanitizeInput, $sanitizeParams); + + if (0 === count($unknownOptions)) { + return true; + } + + fwrite(STDERR, sprintf("FreshRSS error: unknown options: %s\n", implode (', ', $unknownOptions))); + return false; +} diff --git a/cli/_update-or-create-user.php b/cli/_update-or-create-user.php index a5960b58a22..eda597f197c 100644 --- a/cli/_update-or-create-user.php +++ b/cli/_update-or-create-user.php @@ -22,7 +22,7 @@ $options = getopt('', $params); -if (empty($options['user'])) { +if (!validateOptions($argv, $params) || empty($options['user'])) { fail('Usage: ' . basename($_SERVER['SCRIPT_FILENAME']) . " --user username ( --password 'password' --api_password 'api_password'" . " --language en --email user@example.net --token 'longRandomString'" . diff --git a/cli/actualize-user.php b/cli/actualize-user.php index dd07fc1422b..08e17de98f6 100755 --- a/cli/actualize-user.php +++ b/cli/actualize-user.php @@ -2,11 +2,13 @@ /path/to/file.opml.xml"); } diff --git a/cli/export-zip-for-user.php b/cli/export-zip-for-user.php index 86113d9fa4b..b89a5510442 100755 --- a/cli/export-zip-for-user.php +++ b/cli/export-zip-for-user.php @@ -2,12 +2,14 @@ /path/to/file.zip"); } diff --git a/cli/import-for-user.php b/cli/import-for-user.php index 95ff18c8cd7..7c66fbef288 100755 --- a/cli/import-for-user.php +++ b/cli/import-for-user.php @@ -2,12 +2,14 @@ Date: Tue, 19 Mar 2019 21:48:41 +0100 Subject: [PATCH 47/59] Minor docker doc changes (#2284) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Minor docker doc changes Fix Træfik temp volume minor issue * Warning for non x86-64 * Formatting * Minor * Wording --- Docker/README.md | 78 +++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/Docker/README.md b/Docker/README.md index bed5e1ccecb..3cfb05c6961 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -10,33 +10,6 @@ sh get-docker.sh ``` -## [Docker tags](https://hub.docker.com/r/freshrss/freshrss/tags) -The tags correspond to FreshRSS branches and versions: -* `:latest` (default) is the `master` branch, more stable -* `:dev` is the `dev` branch, rolling release -* `:x.y.z` are specific FreshRSS releases - -### Linux: Ubuntu vs. Alpine -Our default image is based on [Ubuntu](https://www.ubuntu.com/server). We offer an alternative based on [Alpine](https://alpinelinux.org/) (with the `-alpine` tag suffix). -In [our tests](https://github.com/FreshRSS/FreshRSS/pull/2205), Ubuntu is ~3 times faster, -while Alpine is ~2.5 times [smaller on disk](https://hub.docker.com/r/freshrss/freshrss/tags) (and much faster to build). - - -## Optional: Build Docker image of FreshRSS -Optional, as a *less recent* online image can be automatically fetched during the next step (run), -but online images are not available for as many platforms (e.g. Raspberry Pi / ARM) as if you build yourself. - -```sh -# First time only -git clone https://github.com/FreshRSS/FreshRSS.git - -cd ./FreshRSS/ -git pull -sudo docker pull ubuntu:18.10 -sudo docker build --tag freshrss/freshrss -f Docker/Dockerfile . -``` - - ## Create an isolated network ```sh sudo docker network create freshrss-network @@ -48,10 +21,12 @@ Here is the recommended configuration using automatic [Let’s Encrypt](https:// ```sh sudo docker volume create traefik-letsencrypt +sudo docker volume create traefik-tmp # Just change your e-mail address in the command below: sudo docker run -d --restart unless-stopped --log-opt max-size=10m \ -v traefik-letsencrypt:/etc/traefik/acme \ + -v traefik-tmp:/tmp \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --net freshrss-network \ -p 80:80 \ @@ -71,6 +46,8 @@ See [more information about Docker and Let’s Encrypt in Træfik](https://docs. Example using the built-in refresh cron job (see further below for alternatives). You must first chose a domain (DNS) or sub-domain, e.g. `freshrss.example.net`. +> **N.B.:** For platforms other than x64 (Intel, AMD), such as ARM (e.g. Raspberry Pi), see the section *Build Docker image* further below. + ```sh sudo docker volume create freshrss-data @@ -133,15 +110,6 @@ Browse to your server https://freshrss.example.net/ to complete the installation or use the command line described below. -## Command line - -```sh -sudo docker exec --user apache -it freshrss php ./cli/list-users.php -``` - -See the [CLI documentation](../cli/) for all the other commands. - - ## How to update ```sh @@ -157,6 +125,42 @@ sudo docker rm freshrss_old ``` +## [Docker tags](https://hub.docker.com/r/freshrss/freshrss/tags) +The tags correspond to FreshRSS branches and versions: +* `:latest` (default) is the `master` branch, more stable +* `:dev` is the `dev` branch, rolling release +* `:x.y.z` are specific FreshRSS releases + +### Linux: Ubuntu vs. Alpine +Our default image is based on [Ubuntu](https://www.ubuntu.com/server). We offer an alternative based on [Alpine](https://alpinelinux.org/) (with the `-alpine` tag suffix). +In [our tests](https://github.com/FreshRSS/FreshRSS/pull/2205), Ubuntu is ~3 times faster, +while Alpine is ~2.5 times [smaller on disk](https://hub.docker.com/r/freshrss/freshrss/tags) (and much faster to build). + + +## Optional: Build Docker image of FreshRSS +Building your own Docker image is optional because online images can be fetched automatically. +Note that prebuilt images are less recent and only available for x64 (Intel, AMD) platforms. + +```sh +# First time only +git clone https://github.com/FreshRSS/FreshRSS.git + +cd ./FreshRSS/ +git pull +sudo docker pull ubuntu:18.10 +sudo docker build --tag freshrss/freshrss -f Docker/Dockerfile . +``` + + +## Command line + +```sh +sudo docker exec --user apache -it freshrss php ./cli/list-users.php +``` + +See the [CLI documentation](../cli/) for all the other commands. + + ## Debugging ```sh @@ -301,7 +305,7 @@ server { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_read_timeout 90; - + # Forward the Authorization header for the Google Reader API. proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; From 707388c09334364d085c598f6b483175a51d7d19 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 19 Mar 2019 21:51:16 +0100 Subject: [PATCH 48/59] Docker ca-certificates missing (#2285) --- Docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 8f15bec96d6..56623b0015f 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -5,7 +5,7 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN apt update && \ apt install --no-install-recommends -y \ - cron \ + ca-certificates cron \ apache2 libapache2-mod-php \ php-curl php-intl php-mbstring php-xml php-zip \ php-sqlite3 php-mysql php-pgsql && \ From e84a90943ab1e4a254b2d33c7cabef18b718b456 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 20 Mar 2019 17:52:31 +0100 Subject: [PATCH 49/59] Session fix when form + HTTP auth are used (#2286) https://github.com/Alkarex/FreshRSS/commit/bf51c82d55f6bf1af2a6464ca4f148d6c613d28f https://github.com/FreshRSS/FreshRSS/issues/2125#issuecomment-473873922 --- app/Models/Auth.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Auth.php b/app/Models/Auth.php index 513a9cb2f11..16a506f00ae 100644 --- a/app/Models/Auth.php +++ b/app/Models/Auth.php @@ -13,7 +13,7 @@ class FreshRSS_Auth { * This method initializes authentication system. */ public static function init() { - if (Minz_Session::param('REMOTE_USER', '') !== httpAuthUser()) { + if (isset($_SESSION['REMOTE_USER']) && $_SESSION['REMOTE_USER'] !== httpAuthUser()) { //HTTP REMOTE_USER has changed self::removeAccess(); } From ebd8c31c0272f135b1b55f0480d1c8c3875935fe Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 22 Mar 2019 19:05:38 +0100 Subject: [PATCH 50/59] Rework CSRF interaction with sessions (#2290) * Rework CSRF interaction with sessions Fix https://github.com/FreshRSS/FreshRSS/issues/2288 Improve security in some edge cases Maybe relevant for https://github.com/FreshRSS/FreshRSS/issues/2125#issuecomment-474992671 * Forgotten mime type --- app/Controllers/authController.php | 6 +++++- app/Controllers/userController.php | 1 + app/FreshRSS.php | 32 +++++++++++++++++++----------- app/Models/Auth.php | 8 ++++---- p/scripts/main.js | 28 ++++++++++++++++++++++++-- 5 files changed, 56 insertions(+), 19 deletions(-) diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php index 75d4acae0da..ca44b1a96d6 100644 --- a/app/Controllers/authController.php +++ b/app/Controllers/authController.php @@ -69,7 +69,7 @@ public function indexAction() { * the user is already connected. */ public function loginAction() { - if (FreshRSS_Auth::hasAccess()) { + if (FreshRSS_Auth::hasAccess() && Minz_Request::param('u', '') == '') { Minz_Request::forward(array('c' => 'index', 'a' => 'index'), true); } @@ -133,6 +133,7 @@ public function formLoginAction() { // Set session parameter to give access to the user. Minz_Session::_param('currentUser', $username); Minz_Session::_param('passwordHash', $conf->passwordHash); + Minz_Session::_param('csrf'); FreshRSS_Auth::giveAccess(); // Set cookie parameter if nedded. @@ -161,6 +162,8 @@ public function formLoginAction() { return; } + FreshRSS_FormAuth::deleteCookie(); + $conf = get_user_configuration($username); if ($conf == null) { return; @@ -176,6 +179,7 @@ public function formLoginAction() { if ($ok) { Minz_Session::_param('currentUser', $username); Minz_Session::_param('passwordHash', $s); + Minz_Session::_param('csrf'); FreshRSS_Auth::giveAccess(); Minz_Request::good(_t('feedback.auth.login.success'), diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 71172b9ef1b..be3787561ce 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -247,6 +247,7 @@ public function createAction() { $user_conf = get_user_configuration($new_user_name); Minz_Session::_param('currentUser', $new_user_name); Minz_Session::_param('passwordHash', $user_conf->passwordHash); + Minz_Session::_param('csrf'); FreshRSS_Auth::giveAccess(); } diff --git a/app/FreshRSS.php b/app/FreshRSS.php index 1dc80718ee2..ecf13e4cfd2 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -57,18 +57,26 @@ public function init() { private static function initAuth() { FreshRSS_Auth::init(); - if (Minz_Request::isPost() && !(is_referer_from_same_domain() && FreshRSS_Auth::isCsrfOk())) { - // Basic protection against XSRF attacks - FreshRSS_Auth::removeAccess(); - $http_referer = empty($_SERVER['HTTP_REFERER']) ? '' : $_SERVER['HTTP_REFERER']; - Minz_Translate::init('en'); //TODO: Better choice of fallback language - Minz_Error::error( - 403, - array('error' => array( - _t('feedback.access.denied'), - ' [HTTP_REFERER=' . htmlspecialchars($http_referer, ENT_NOQUOTES, 'UTF-8') . ']' - )) - ); + if (Minz_Request::isPost()) { + if (!is_referer_from_same_domain()) { + // Basic protection against XSRF attacks + FreshRSS_Auth::removeAccess(); + $http_referer = empty($_SERVER['HTTP_REFERER']) ? '' : $_SERVER['HTTP_REFERER']; + Minz_Translate::init('en'); //TODO: Better choice of fallback language + Minz_Error::error(403, array('error' => array( + _t('feedback.access.denied'), + ' [HTTP_REFERER=' . htmlspecialchars($http_referer, ENT_NOQUOTES, 'UTF-8') . ']' + ))); + } + if ((!FreshRSS_Auth::isCsrfOk()) && + (Minz_Request::controllerName() !== 'auth' || Minz_Request::actionName() !== 'login')) { + // Token-based protection against XSRF attacks, except for the login form itself + Minz_Translate::init('en'); //TODO: Better choice of fallback language + Minz_Error::error(403, array('error' => array( + _t('feedback.access.denied'), + ' [CSRF]' + ))); + } } } diff --git a/app/Models/Auth.php b/app/Models/Auth.php index 16a506f00ae..6d079a01f24 100644 --- a/app/Models/Auth.php +++ b/app/Models/Auth.php @@ -24,6 +24,7 @@ public static function init() { $conf = Minz_Configuration::get('system'); $current_user = $conf->default_user; Minz_Session::_param('currentUser', $current_user); + Minz_Session::_param('csrf'); } if (self::$login_ok) { @@ -56,6 +57,7 @@ private static function accessControl() { $current_user = trim($credentials[0]); Minz_Session::_param('currentUser', $current_user); Minz_Session::_param('passwordHash', trim($credentials[1])); + Minz_Session::_param('csrf'); } return $current_user != ''; case 'http_auth': @@ -63,6 +65,7 @@ private static function accessControl() { $login_ok = $current_user != '' && FreshRSS_UserDAO::exists($current_user); if ($login_ok) { Minz_Session::_param('currentUser', $current_user); + Minz_Session::_param('csrf'); } return $login_ok; case 'none': @@ -196,13 +199,10 @@ public static function csrfToken() { } public static function isCsrfOk($token = null) { $csrf = Minz_Session::param('csrf'); - if ($csrf == '') { - return true; //Not logged in yet - } if ($token === null) { $token = Minz_Request::fetchPOST('_csrf'); } - return $token === $csrf; + return $token != '' && $token === $csrf; } } diff --git a/p/scripts/main.js b/p/scripts/main.js index 521adc839d6..212bf804bb1 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -44,6 +44,12 @@ var context; }()); // +function badAjax() { + openNotification(context.i18n.notif_request_failed, 'bad'); + location.reload(); + return true; +} + function needsScroll(elem) { const winBottom = document.documentElement.scrollTop + document.documentElement.clientHeight, elemTop = elem.offsetParent.offsetTop + elem.offsetTop, @@ -165,6 +171,9 @@ function send_mark_read_queue(queue, asRead) { for (let i = queue.length - 1; i >= 0; i--) { delete pending_entries['flux_' + queue[i]]; } + if (this.status == 403) { + badAjax(); + } }; req.onload = function (e) { if (this.status != 200) { @@ -269,6 +278,9 @@ function mark_favorite(div) { req.onerror = function (e) { openNotification(context.i18n.notif_request_failed, 'bad'); delete pending_entries[div.id]; + if (this.status == 403) { + badAjax(); + } }; req.onload = function (e) { if (this.status != 200) { @@ -918,6 +930,9 @@ function init_stream(stream) { req.responseType = 'json'; req.onerror = function (e) { checkboxTag.checked = !isChecked; + if (this.status == 403) { + badAjax(); + } }; req.onload = function (e) { if (this.status != 200) { @@ -1008,6 +1023,9 @@ function updateFeed(feeds, feeds_count) { const req = new XMLHttpRequest(); req.open('POST', feed.url, true); req.onloadend = function (e) { + if (this.status != 200) { + return badAjax(); + } feed_processed++; const div = document.getElementById('actualizeProgress'); div.querySelector('.progress').innerHTML = feed_processed + ' / ' + feeds_count; @@ -1045,9 +1063,12 @@ function init_actualize() { context.ajax_loading = true; const req = new XMLHttpRequest(); - req.open('GET', './?c=javascript&a=actualize', true); + req.open('POST', './?c=javascript&a=actualize', true); req.responseType = 'json'; req.onload = function (e) { + if (this.status != 200) { + return badAjax(); + } const json = xmlHttpRequestJson(this); if (auto && json.feeds.length < 1) { auto = false; @@ -1078,7 +1099,10 @@ function init_actualize() { updateFeed(json.feeds, feeds_count); } }; - req.send(); + req.setRequestHeader('Content-Type', 'application/json'); + req.send(JSON.stringify({ + _csrf: context.csrf, + })); return false; }; From e7a57915f9c90c144d95918048d2523418866921 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 23 Mar 2019 12:08:35 +0100 Subject: [PATCH 51/59] CLI user-info fixes (#2292) * CLI missing exit codes https://github.com/FreshRSS/FreshRSS/issues/2291 * CLI catch for outdated databases https://github.com/FreshRSS/FreshRSS/issues/2291#issuecomment-475856890 --- app/Models/TagDAO.php | 14 +++++++++++--- cli/list-users.php | 2 ++ cli/user-info.php | 2 ++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/Models/TagDAO.php b/app/Models/TagDAO.php index 0b4428f175f..297d24c9670 100644 --- a/app/Models/TagDAO.php +++ b/app/Models/TagDAO.php @@ -187,9 +187,17 @@ public function listTags($precounts = false) { public function count() { $sql = 'SELECT COUNT(*) AS count FROM `' . $this->prefix . 'tag`'; $stm = $this->bd->prepare($sql); - $stm->execute(); - $res = $stm->fetchAll(PDO::FETCH_ASSOC); - return $res[0]['count']; + if ($stm && $stm->execute()) { + $res = $stm->fetchAll(PDO::FETCH_ASSOC); + return $res[0]['count']; + } else { + $info = $stm == null ? array(0 => '', 1 => '', 2 => 'syntax error') : $stm->errorInfo(); + if ($this->autoUpdateDb($info)) { + return $this->count(); + } + Minz_Log::error('SQL error TagDAO::count: ' . $info[2]); + return false; + } } public function countEntries($id) { diff --git a/cli/list-users.php b/cli/list-users.php index 758bbdb468f..b3ce9936f12 100755 --- a/cli/list-users.php +++ b/cli/list-users.php @@ -13,3 +13,5 @@ foreach ($users as $user) { echo $user, "\n"; } + +done(); diff --git a/cli/user-info.php b/cli/user-info.php index 043bebf7cd6..125408c1019 100755 --- a/cli/user-info.php +++ b/cli/user-info.php @@ -51,3 +51,5 @@ "\n"; } } + +done(); From 1804c0e0bc095487b9a1ad13cbc9f55f6cef2a2a Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 23 Mar 2019 22:52:47 +0100 Subject: [PATCH 52/59] Filter actions (#2275) * Draft of filter actions * Travis * Implement UI + finish logic * Travis --- app/Controllers/feedController.php | 27 ++--- app/Controllers/subscriptionController.php | 4 +- app/Models/Entry.php | 113 +++++++++++++++++++++ app/Models/Feed.php | 104 +++++++++++++++++++ app/Models/FilterAction.php | 45 ++++++++ app/i18n/cz/sub.php | 4 + app/i18n/de/sub.php | 4 + app/i18n/en/sub.php | 4 + app/i18n/es/sub.php | 4 + app/i18n/fr/sub.php | 4 + app/i18n/he/sub.php | 4 + app/i18n/it/sub.php | 4 + app/i18n/kr/sub.php | 4 + app/i18n/nl/sub.php | 4 + app/i18n/oc/sub.php | 4 + app/i18n/pt-br/sub.php | 4 + app/i18n/ru/sub.php | 4 + app/i18n/tr/sub.php | 4 + app/i18n/zh-cn/sub.php | 4 + app/views/helpers/feed/update.phtml | 13 +++ 20 files changed, 345 insertions(+), 17 deletions(-) create mode 100644 app/Models/FilterAction.php diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 7f36e0388e0..0aed9b0a17f 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -289,7 +289,8 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush } $ttl = $feed->ttl(); if ((!$simplePiePush) && (!$feed_id) && - ($feed->lastUpdate() + 10 >= time() - ($ttl == FreshRSS_Feed::TTL_DEFAULT ? FreshRSS_Context::$user_conf->ttl_default : $ttl))) { + ($feed->lastUpdate() + 10 >= time() - ( + $ttl == FreshRSS_Feed::TTL_DEFAULT ? FreshRSS_Context::$user_conf->ttl_default : $ttl))) { //Too early to refresh from source, but check whether the feed was updated by another user $mtime = $feed->cacheModifiedTime(); if ($feed->lastUpdate() + 10 >= $mtime) { @@ -347,8 +348,8 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush $entry_date = $entry->date(true); if (isset($existingHashForGuids[$entry->guid()])) { $existingHash = $existingHashForGuids[$entry->guid()]; - if (strcasecmp($existingHash, $entry->hash()) === 0 || trim($existingHash, '0') == '') { - //This entry already exists and is unchanged. TODO: Remove the test with the zero'ed hash in FreshRSS v1.3 + if (strcasecmp($existingHash, $entry->hash()) === 0) { + //This entry already exists and is unchanged. $oldGuids[] = $entry->guid(); } else { //This entry already exists but has been updated //Minz_Log::debug('Entry with GUID `' . $entry->guid() . '` updated in feed ' . $feed->url(false) . @@ -374,17 +375,14 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush // This entry should not be added considering configuration and date. $oldGuids[] = $entry->guid(); } else { - $read_upon_reception = $feed->attributes('read_upon_reception') !== null ? ( - $feed->attributes('read_upon_reception') - ) : FreshRSS_Context::$user_conf->mark_when['reception']; $id = uTimeString(); $entry->_id($id); if ($entry_date < $date_min) { $entry->_isRead(true); //Old article that was not in database. Probably an error, so mark as read - } else { - $entry->_isRead($read_upon_reception); } + $entry->applyFilterActions(); + $entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry); if ($entry === null) { // An extension has returned a null value, there is nothing to insert. @@ -392,7 +390,8 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush } if ($pubSubHubbubEnabled && !$simplePiePush) { //We use push, but have discovered an article by pull! - $text = 'An article was discovered by pull although we use PubSubHubbub!: Feed ' . $url . ' GUID ' . $entry->guid(); + $text = 'An article was discovered by pull although we use PubSubHubbub!: Feed ' . $url . + ' GUID ' . $entry->guid(); Minz_Log::warning($text, PSHB_LOG); Minz_Log::warning($text); $pubSubHubbubEnabled = false; @@ -416,9 +415,7 @@ public static function actualizeFeed($feed_id, $feed_url, $force, $simplePiePush $entryDAO->beginTransaction(); } - $nb = $entryDAO->cleanOldEntries($feed->id(), - $date_min, - max($feed_history, count($entries) + 10)); + $nb = $entryDAO->cleanOldEntries($feed->id(), $date_min, max($feed_history, count($entries) + 10)); if ($nb > 0) { $needFeedCacheRefresh = true; Minz_Log::debug($nb . ' old entries cleaned in feed [' . $feed->url(false) . ']'); @@ -598,11 +595,9 @@ public function moveAction() { if (self::moveFeed($feed_id, $cat_id)) { // TODO: return something useful // Log a notice to prevent "Empty IF statement" warning in PHP_CodeSniffer - Minz_Log::notice('Moved feed `' . $feed_id . '` ' . - 'in the category `' . $cat_id . '`');; + Minz_Log::notice('Moved feed `' . $feed_id . '` in the category `' . $cat_id . '`'); } else { - Minz_Log::warning('Cannot move feed `' . $feed_id . '` ' . - 'in the category `' . $cat_id . '`'); + Minz_Log::warning('Cannot move feed `' . $feed_id . '` in the category `' . $cat_id . '`'); Minz_Error::error(404); } } diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php index 62fb3d38470..9cf41ed0b10 100644 --- a/app/Controllers/subscriptionController.php +++ b/app/Controllers/subscriptionController.php @@ -110,6 +110,8 @@ public function feedAction() { $feed->_attributes('timeout', null); } + $feed->_filtersAction('read', preg_split('/[\n\r]+/', Minz_Request::param('filteractions_read', ''))); + $values = array( 'name' => Minz_Request::param('name', ''), 'description' => sanitizeHTML(Minz_Request::param('description', '', true)), @@ -121,7 +123,7 @@ public function feedAction() { 'httpAuth' => $httpAuth, 'keep_history' => intval(Minz_Request::param('keep_history', FreshRSS_Feed::KEEP_HISTORY_DEFAULT)), 'ttl' => $ttl * ($mute ? -1 : 1), - 'attributes' => $feed->attributes() + 'attributes' => $feed->attributes(), ); invalidateHttpCache(); diff --git a/app/Models/Entry.php b/app/Models/Entry.php index f2f3d08fea4..3bb97728315 100644 --- a/app/Models/Entry.php +++ b/app/Models/Entry.php @@ -185,6 +185,119 @@ public function _tags($value) { $this->tags = $value; } + public function matches($booleanSearch) { + if (!$booleanSearch || count($booleanSearch->searches()) <= 0) { + return true; + } + foreach ($booleanSearch->searches() as $filter) { + $ok = true; + if ($ok && $filter->getMinPubdate()) { + $ok &= $this->date >= $filter->getMinPubdate(); + } + if ($ok && $filter->getMaxPubdate()) { + $ok &= $this->date <= $filter->getMaxPubdate(); + } + if ($ok && $filter->getMinDate()) { + $ok &= strnatcmp($this->id, $filter->getMinDate() . '000000') >= 0; + } + if ($ok && $filter->getMaxDate()) { + $ok &= strnatcmp($this->id, $filter->getMaxDate() . '000000') <= 0; + } + if ($ok && $filter->getInurl()) { + foreach ($filter->getInurl() as $url) { + $ok &= stripos($this->link, $url) !== false; + } + } + if ($ok && $filter->getNotInurl()) { + foreach ($filter->getNotInurl() as $url) { + $ok &= stripos($this->link, $url) === false; + } + } + if ($ok && $filter->getAuthor()) { + foreach ($filter->getAuthor() as $author) { + $ok &= stripos($this->authors, $author) !== false; + } + } + if ($ok && $filter->getNotAuthor()) { + foreach ($filter->getNotAuthor() as $author) { + $ok &= stripos($this->authors, $author) === false; + } + } + if ($ok && $filter->getIntitle()) { + foreach ($filter->getIntitle() as $title) { + $ok &= stripos($this->title, $title) !== false; + } + } + if ($ok && $filter->getNotIntitle()) { + foreach ($filter->getNotIntitle() as $title) { + $ok &= stripos($this->title, $title) === false; + } + } + if ($ok && $filter->getTags()) { + foreach ($filter->getTags() as $tag2) { + $found = false; + foreach ($this->tags as $tag1) { + if (strcasecmp($tag1, $tag2) === 0) { + $found = true; + } + } + $ok &= $found; + } + } + if ($ok && $filter->getNotTags()) { + foreach ($filter->getNotTags() as $tag2) { + $found = false; + foreach ($this->tags as $tag1) { + if (strcasecmp($tag1, $tag2) === 0) { + $found = true; + } + } + $ok &= !$found; + } + } + if ($ok && $filter->getSearch()) { + foreach ($filter->getSearch() as $needle) { + $ok &= (stripos($this->title, $needle) !== false || stripos($this->content, $needle) !== false); + } + } + if ($ok && $filter->getNotSearch()) { + foreach ($filter->getNotSearch() as $needle) { + $ok &= (stripos($this->title, $needle) === false && stripos($this->content, $needle) === false); + } + } + if ($ok) { + return true; + } + } + return false; + } + + public function applyFilterActions() { + if ($this->feed != null) { + if ($this->feed->attributes('read_upon_reception') || + ($this->feed->attributes('read_upon_reception') === null && FreshRSS_Context::$user_conf->mark_when['reception'])) { + $this->_isRead(true); + } + foreach ($this->feed->filterActions() as $filterAction) { + if ($this->matches($filterAction->booleanSearch())) { + foreach ($filterAction->actions() as $action => $params) { + switch ($action) { + case 'read': + $this->_isRead(true); + break; + case 'star': + $this->_is_favorite(true); + break; + case 'label': + //TODO: Implement more actions + break; + } + } + } + } + } + } + public function isDay($day, $today) { $date = $this->dateAdded(true); switch ($day) { diff --git a/app/Models/Feed.php b/app/Models/Feed.php index b21a8bbbeb2..89989236cf0 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -32,6 +32,7 @@ class FreshRSS_Feed extends Minz_Model { private $lockPath = ''; private $hubUrl = ''; private $selfUrl = ''; + private $filterActions = null; public function __construct($url, $validate = true) { if ($validate) { @@ -498,6 +499,109 @@ public function unlock() { @unlink($this->lockPath); } + public function filterActions() { + if ($this->filterActions == null) { + $this->filterActions = array(); + $filters = $this->attributes('filters'); + if (is_array($filters)) { + foreach ($filters as $filter) { + $filterAction = FreshRSS_FilterAction::fromJSON($filter); + if ($filterAction != null) { + $this->filterActions[] = $filterAction; + } + } + } + } + return $this->filterActions; + } + + private function _filterActions($filterActions) { + $this->filterActions = $filterActions; + if (is_array($this->filterActions) && !empty($this->filterActions)) { + $this->_attributes('filters', array_map(function ($af) { + return $af == null ? null : $af->toJSON(); + }, $this->filterActions)); + } else { + $this->_attributes('filters', null); + } + } + + public function filtersAction($action) { + $action = trim($action); + if ($action == '') { + return array(); + } + $filters = array(); + $filterActions = $this->filterActions(); + for ($i = count($filterActions) - 1; $i >= 0; $i--) { + $filterAction = $filterActions[$i]; + if ($filterAction != null && $filterAction->booleanSearch() != null && + $filterAction->actions() != null && in_array($action, $filterAction->actions(), true)) { + $filters[] = $filterAction->booleanSearch(); + } + } + return $filters; + } + + public function _filtersAction($action, $filters) { + $action = trim($action); + if ($action == '' || !is_array($filters)) { + return false; + } + $filters = array_unique(array_map('trim', $filters)); + $filterActions = $this->filterActions(); + + //Check existing filters + for ($i = count($filterActions) - 1; $i >= 0; $i--) { + $filterAction = $filterActions[$i]; + if ($filterAction == null || !is_array($filterAction->actions()) || + $filterAction->booleanSearch() == null || trim($filterAction->booleanSearch()->getRawInput()) == '') { + array_splice($filterAction, $i, 1); + continue; + } + $actions = $filterAction->actions(); + //Remove existing rules with same action + for ($j = count($actions) - 1; $j >= 0; $j--) { + if ($actions[$j] === $action) { + array_splice($actions, $j, 1); + } + } + //Update existing filter with new action + for ($k = count($filters) - 1; $k >= 0; $k --) { + $filter = $filters[$k]; + if ($filter === $filterAction->booleanSearch()->getRawInput()) { + $actions[] = $action; + array_splice($filters, $k, 1); + } + } + //Save result + if (empty($actions)) { + array_splice($filterActions, $i, 1); + } else { + $filterAction->_actions($actions); + } + } + + //Add new filters + for ($k = count($filters) - 1; $k >= 0; $k --) { + $filter = $filters[$k]; + if ($filter != '') { + $filterAction = FreshRSS_FilterAction::fromJSON(array( + 'search' => $filter, + 'actions' => array($action), + )); + if ($filterAction != null) { + $filterActions[] = $filterAction; + } + } + } + + if (empty($filterActions)) { + $filterActions = null; + } + $this->_filterActions($filterActions); + } + // public function pubSubHubbubEnabled() { diff --git a/app/Models/FilterAction.php b/app/Models/FilterAction.php new file mode 100644 index 00000000000..23a45d14e81 --- /dev/null +++ b/app/Models/FilterAction.php @@ -0,0 +1,45 @@ +booleanSearch = $booleanSearch; + $this->_actions($actions); + } + + public function booleanSearch() { + return $this->booleanSearch; + } + + public function actions() { + return $this->actions; + } + + public function _actions($actions) { + if (is_array($actions)) { + $this->actions = array_unique($actions); + } else { + $this->actions = null; + } + } + + public function toJSON() { + if (is_array($this->actions) && $this->booleanSearch != null) { + return array( + 'search' => $this->booleanSearch->getRawInput(), + 'actions' => $this->actions, + ); + } + return ''; + } + + public static function fromJSON($json) { + if (!empty($json['search']) && !empty($json['actions']) && is_array($json['actions'])) { + return new FreshRSS_FilterAction(new FreshRSS_BooleanSearch($json['search']), $json['actions']); + } + return null; + } +} diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index 5b5634fedd6..2e81c928d09 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -33,6 +33,10 @@ 'description' => 'Popis', 'empty' => 'Kanál je prázdný. Ověřte prosím zda je ještě autorem udržován.', 'error' => 'Vyskytl se problém s kanálem. Ověřte že je vždy dostupný, prosím, a poté jej aktualizujte.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Informace', 'keep_history' => 'Zachovat tento minimální počet článků', 'moved_category_deleted' => 'Po smazání kategorie budou v ní obsažené kanály automaticky přesunuty do %s.', diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index 27e89317778..bd050671ed5 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -33,6 +33,10 @@ 'description' => 'Beschreibung', 'empty' => 'Dieser Feed ist leer. Bitte stellen Sie sicher, dass er noch gepflegt wird.', 'error' => 'Dieser Feed ist auf ein Problem gestoßen. Bitte stellen Sie sicher, dass er immer lesbar ist und aktualisieren Sie ihn dann.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Information', 'keep_history' => 'Minimale Anzahl an Artikeln, die behalten wird', 'moved_category_deleted' => 'Wenn Sie eine Kategorie entfernen, werden deren Feeds automatisch in die Kategorie %s eingefügt.', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 4efd81ba42a..f11eb9b99e4 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -33,6 +33,10 @@ 'description' => 'Description', 'empty' => 'This feed is empty. Please verify that it is still maintained.', 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.', + 'filteractions' => array( + '_' => 'Filter actions', + 'help' => 'Write one search filter per line.', + ), 'informations' => 'Information', 'keep_history' => 'Minimum number of articles to keep', 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php index 85498489114..c0526106f77 100755 --- a/app/i18n/es/sub.php +++ b/app/i18n/es/sub.php @@ -33,6 +33,10 @@ 'description' => 'Descripción', 'empty' => 'La fuente está vacía. Por favor, verifica que siga activa.', 'error' => 'Hay un problema con esta fuente. Por favor, veritica que esté disponible y prueba de nuevo.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Información', 'keep_history' => 'Número mínimo de artículos a conservar', 'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría %s.', diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index d9964ac6eb3..b71019faa6b 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -33,6 +33,10 @@ 'description' => 'Description', 'empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.', 'error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.', + 'filteractions' => array( + '_' => 'Filtres d’action', + 'help' => 'Écrivez une recherche par ligne.', + ), 'informations' => 'Informations', 'keep_history' => 'Nombre minimum d’articles à conserver', 'moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans %s.', diff --git a/app/i18n/he/sub.php b/app/i18n/he/sub.php index 6d824e34929..bb2025bc374 100644 --- a/app/i18n/he/sub.php +++ b/app/i18n/he/sub.php @@ -33,6 +33,10 @@ 'description' => 'תיאור', 'empty' => 'הזנה זו ריקה. אנא ודאו שהיא עדיין מתוחזקת.', 'error' => 'הזנה זו נתקלה בשגיאה, אנא ודאו שהיא תקינה ואז נסו שנית.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'מידע', 'keep_history' => 'מסםר מינימלי של מאמרים לשמור', 'moved_category_deleted' => 'כאשר הקטגוריה נמחקת ההזנות שבתוכה אוטומטית מקוטלגות תחת %s.', diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php index ff7fa6f1d34..bf279e05962 100644 --- a/app/i18n/it/sub.php +++ b/app/i18n/it/sub.php @@ -33,6 +33,10 @@ 'description' => 'Descrizione', 'empty' => 'Questo feed non contiene articoli. Per favore verifica il sito direttamente.', 'error' => 'Questo feed ha generato un errore. Per favore verifica se ancora disponibile.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Informazioni', 'keep_history' => 'Numero minimo di articoli da mantenere', 'moved_category_deleted' => 'Cancellando una categoria i feed al suo interno verranno classificati automaticamente come %s.', diff --git a/app/i18n/kr/sub.php b/app/i18n/kr/sub.php index 9edd8581877..151775c1c84 100644 --- a/app/i18n/kr/sub.php +++ b/app/i18n/kr/sub.php @@ -33,6 +33,10 @@ 'description' => '설명', 'empty' => '이 피드는 비어있습니다. 피드가 계속 운영되고 있는지 확인하세요.', 'error' => '이 피드에 문제가 발생했습니다. 이 피드에 접근 권한이 있는지 확인하세요.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => '정보', 'keep_history' => '최소 유지 글 개수', 'moved_category_deleted' => '카테고리를 삭제하면, 해당 카테고리 아래에 있던 피드들은 자동적으로 %s 아래로 분류됩니다.', diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index 1d6c9f806e2..8ba9c020d30 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -33,6 +33,10 @@ 'description' => 'Omschrijving', 'empty' => 'Deze feed is leeg. Controleer of deze nog actueel is.', 'error' => 'Deze feed heeft problemen. Verifieer a.u.b het doeladres en actualiseer het.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Informatie', 'keep_history' => 'Minimum aantal artikelen om te houden', 'moved_category_deleted' => 'Als u een categorie verwijderd, worden de feeds automatisch geclassificeerd onder %s.', diff --git a/app/i18n/oc/sub.php b/app/i18n/oc/sub.php index fc5a0cc1ffb..51ee0d43f3d 100644 --- a/app/i18n/oc/sub.php +++ b/app/i18n/oc/sub.php @@ -32,6 +32,10 @@ 'description' => 'Descripcion', 'empty' => 'Aqueste flux es void. Assegurats-vos qu’es totjorn mantengut.', 'error' => 'Aqueste flux a rescontrat un problèma. Volgatz verificar que siá totjorn accessible puèi actualizatz-lo.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Informacions', 'keep_history' => 'Nombre minimum d’articles de servar', 'moved_category_deleted' => 'Quand escafatz una categoria, sos fluxes son automaticament classats dins %s.', diff --git a/app/i18n/pt-br/sub.php b/app/i18n/pt-br/sub.php index 58b2fc1f930..fc26e89e72a 100644 --- a/app/i18n/pt-br/sub.php +++ b/app/i18n/pt-br/sub.php @@ -33,6 +33,10 @@ 'description' => 'Descrição', 'empty' => 'Este feed está vazio. Por favor verifique ele ainda é mantido.', 'error' => 'Este feed encontra-se com problema. Por favor verifique se ele ainda está disponível e atualize-o.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Informações', 'keep_history' => 'Número mínimo de artigos para manter', 'moved_category_deleted' => 'Quando você deleta uma categoria, seus feeds são automaticamente classificados como %s.', diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index 62f8a8e3ace..e125d549e87 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -33,6 +33,10 @@ 'description' => 'Description', //TODO - Translation 'empty' => 'This feed is empty. Please verify that it is still maintained.', //TODO - Translation 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.', //TODO - Translation + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Information', //TODO - Translation 'keep_history' => 'Minimum number of articles to keep', //TODO - Translation 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', //TODO - Translation diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php index 7f29633bee4..9f4945c0a0e 100644 --- a/app/i18n/tr/sub.php +++ b/app/i18n/tr/sub.php @@ -33,6 +33,10 @@ 'description' => 'Tanım', 'empty' => 'Bu akış boş. Lütfen akışın aktif olduğuna emin olun.', 'error' => 'Bu akışda bir hatayla karşılaşıldı. Lütfen akışın sürekli ulaşılabilir olduğuna emin olun.', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => 'Bilgi', 'keep_history' => 'En az tutulacak makale sayısı', 'moved_category_deleted' => 'Bir kategoriyi silerseniz, içerisindeki akışlar %s içerisine yerleşir.', diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php index f84d08cdfd7..90f9fd942f2 100644 --- a/app/i18n/zh-cn/sub.php +++ b/app/i18n/zh-cn/sub.php @@ -33,6 +33,10 @@ 'description' => '描述', 'empty' => '此源为空。请确认它是否正常更新。', 'error' => '此源遇到一些问题。请在确认是否能正常访问后重试。', + 'filteractions' => array( + '_' => 'Filter actions', //TODO - Translation + 'help' => 'Write one search filter per line.', //TODO - Translation + ), 'informations' => '信息', 'keep_history' => '至少保存的文章数', 'moved_category_deleted' => '删除分类时,其中的 RSS 源会自动归类到 %s', diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml index bc90ba45631..be8034c0d45 100644 --- a/app/views/helpers/feed/update.phtml +++ b/app/views/helpers/feed/update.phtml @@ -234,6 +234,19 @@
        + +
        + +
        + + +
        +
        +
        From f2925594c7caf2753e1ac44941e029a3c1496117 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sat, 23 Mar 2019 23:17:22 +0100 Subject: [PATCH 53/59] Add header to cli (#2296) * Add header to cli Now there is a switch to display the header on user info. While doing that, I've changed how the command is working to display all users by default and to accept more than one user at once. I also changed the display to make it more pleasing. As this command displays all users by default. I wonder if we still need the list user command. See #2294 * Minor format --- cli/user-info.php | 77 +++++++++++++++++++++++++++++------------------ lib/lib_rss.php | 2 +- 2 files changed, 49 insertions(+), 30 deletions(-) diff --git a/cli/user-info.php b/cli/user-info.php index 125408c1019..aa4db7c2f00 100755 --- a/cli/user-info.php +++ b/cli/user-info.php @@ -2,19 +2,46 @@ default_user ? '*' : ' ', "\t"; $catDAO = FreshRSS_Factory::createCategoryDao(); $feedDAO = FreshRSS_Factory::createFeedDao($username); @@ -25,31 +52,23 @@ $nbEntries = $entryDAO->countUnreadRead(); $nbFavorites = $entryDAO->countUnreadReadFavorites(); + $data = array( + 'default' => $username === FreshRSS_Context::$system_conf->default_user ? '*' : '', + 'user' => $username, + 'lastUpdate' => FreshRSS_UserDAO::mtime($username), + 'spaceUsed' => $databaseDAO->size(), + 'categories' => $catDAO->count(), + 'feeds' => count($feedDAO->listFeedsIds()), + 'reads' => $nbEntries['read'], + 'unreads' => $nbEntries['unread'], + 'favourites' => $nbFavorites['all'], + 'tags' => $tagDAO->count(), + ); if (isset($options['h'])) { //Human format - echo - $username, "\t", - date('c', FreshRSS_UserDAO::mtime($username)), "\t", - format_bytes($databaseDAO->size()), "\t", - $catDAO->count(), " categories\t", - count($feedDAO->listFeedsIds()), " feeds\t", - $nbEntries['read'], " reads\t", - $nbEntries['unread'], " unreads\t", - $nbFavorites['all'], " favourites\t", - $tagDAO->count(), " tags\t", - "\n"; - } else { - echo - $username, "\t", - FreshRSS_UserDAO::mtime($username), "\t", - $databaseDAO->size(), "\t", - $catDAO->count(), "\t", - count($feedDAO->listFeedsIds()), "\t", - $nbEntries['read'], "\t", - $nbEntries['unread'], "\t", - $nbFavorites['all'], "\t", - $tagDAO->count(), "\t", - "\n"; + $data['lastUpdate'] = date('c', $data['lastUpdate']); + $data['spaceUsed'] = format_bytes($data['spaceUsed']); } + vprintf(DATA_FORMAT, $data); } done(); diff --git a/lib/lib_rss.php b/lib/lib_rss.php index bff59d5cc3d..3e0033a61e6 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -170,7 +170,7 @@ function format_bytes($bytes, $precision = 2, $system = 'IEC') { $pow = $bytes === 0 ? 0 : floor(log($bytes) / log($base)); $pow = min($pow, count($units) - 1); $bytes /= pow($base, $pow); - return format_number($bytes, $precision) . ' ' . $units[$pow]; + return format_number($bytes, $precision) . ' ' . $units[$pow]; } function timestamptodate ($t, $hour = true) { From ae1da83b7f0f7efe4a33c660a4445aa3727bb884 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 23 Mar 2019 23:46:59 +0100 Subject: [PATCH 54/59] Changelog https://github.com/FreshRSS/FreshRSS/issues/2294 https://github.com/FreshRSS/FreshRSS/pull/2296 https://github.com/FreshRSS/FreshRSS/pull/2278 https://github.com/FreshRSS/FreshRSS/issues/2046 https://github.com/FreshRSS/FreshRSS/issues/2288 https://github.com/FreshRSS/FreshRSS/pull/2290 https://github.com/FreshRSS/FreshRSS/issues/2291 https://github.com/FreshRSS/FreshRSS/pull/2292 https://github.com/FreshRSS/FreshRSS/issues/2273 https://github.com/FreshRSS/FreshRSS/pull/2276 https://github.com/FreshRSS/FreshRSS/pull/2286 https://github.com/FreshRSS/FreshRSS/issues/2281 https://github.com/FreshRSS/FreshRSS/pull/2282 --- CHANGELOG.md | 13 ++++++++++++- CREDITS.md | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06f2708a592..fae9f30c10e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # FreshRSS changelog -## 2019-0X-XX FreshRSS 1.13.2-dev +## 2019-03-XX FreshRSS 1.14.0-dev +* Features + * *Filter actions* feature, to auto-mark-as-read based on a search query per feed [#2275](https://github.com/FreshRSS/FreshRSS/pull/2275) + * Improve account change when using the *unsafe automatic login* [#2288](https://github.com/FreshRSS/FreshRSS/issues/2288) * UI * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) @@ -18,14 +21,22 @@ * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) + * Fix author semi-colon prefix in Fever API [#2281](https://github.com/FreshRSS/FreshRSS/issues/2281) * Fix the reading of the environment variable `COPY_SYSLOG_TO_STDERR` [#2260](https://github.com/FreshRSS/FreshRSS/pull/2260) + * Session fix when form login + HTTP auth are used [#2286](https://github.com/FreshRSS/FreshRSS/pull/2286) + * Fix `cli/user-info.php` for accounts using a version of the database older than 1.12.0 [#2291](https://github.com/FreshRSS/FreshRSS/issues/2291) +* CLI + * Better validation of parameters [#2046](https://github.com/FreshRSS/FreshRSS/issues/2046) + * New option `--header` to `cli/user-info.php` [#2296](https://github.com/FreshRSS/FreshRSS/pull/2296) * API * Supported by [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API) * I18n * Improved Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) * Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253) * Security + * Reworked the CSRF token interaction with the session in some edge cases [#2290](https://github.com/FreshRSS/FreshRSS/pull/2290) * Remove deprecated CSP `child-src` instruction (was already replaced by `frame-src`) [#2250](https://github.com/FreshRSS/FreshRSS/pull/2250) + * Ensure entry IDs are unique and cannot be set by feeds [#2273](https://github.com/FreshRSS/FreshRSS/issues/2273) * Misc. * Remove HHMV from Travis continuous integration [#2249](https://github.com/FreshRSS/FreshRSS/pull/2249) diff --git a/CREDITS.md b/CREDITS.md index ff3f64127e8..cc3cc57a463 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -13,6 +13,7 @@ People are sorted by name so please keep this order. * [Amaury Carrade](https://github.com/AmauryCarrade): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=AmauryCarrade), [Web](https://amaury.carrade.eu/) * [Anton Smirnov](https://github.com/sandfoxme): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:sandfoxme), [Web](http://sandfox.me/) * [ASMfreaK](https://github.com/ASMfreaK): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=ASMfreaK) +* [Benjamin Bouvier](https://github.com/bnjbvr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bnjbvr), [Web](https://benj.me/) * [chemical1979](https://github.com/chemical1979): [contributions](https://github.com/FreshRSS/FreshRSS/commits?author=chemical1979) * [Craig Andrews](https://github.com/candrews): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:candrews), [Web](http://candrews.integralblue.com/) * [Crupuk](https://github.com/Crupuk): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Crupuk) From b2bc1f95d9f673f79cd7076758856bb19876154f Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 24 Mar 2019 00:01:50 +0100 Subject: [PATCH 55/59] Bump to 1.14.0-dev --- constants.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/constants.php b/constants.php index dacbb11aaa3..73b092849dd 100644 --- a/constants.php +++ b/constants.php @@ -2,7 +2,7 @@ //NB: Do not edit; use ./constants.local.php instead. // -define('FRESHRSS_VERSION', '1.13.2-dev'); +define('FRESHRSS_VERSION', '1.14.0-dev'); define('FRESHRSS_WEBSITE', 'https://freshrss.org'); define('FRESHRSS_WIKI', 'https://freshrss.github.io/FreshRSS/'); From d3457f9ada962fc02ebc3e1c85dcaa975604826c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quent=C3=AD?= <33203663+Quenty31@users.noreply.github.com> Date: Sun, 24 Mar 2019 18:38:40 +0100 Subject: [PATCH 56/59] [i18n] Update for filter actions (#2299) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mesa a jorn pels filtres d’accion --- app/i18n/oc/sub.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/i18n/oc/sub.php b/app/i18n/oc/sub.php index 51ee0d43f3d..5a7bb2b57d2 100644 --- a/app/i18n/oc/sub.php +++ b/app/i18n/oc/sub.php @@ -33,8 +33,8 @@ 'empty' => 'Aqueste flux es void. Assegurats-vos qu’es totjorn mantengut.', 'error' => 'Aqueste flux a rescontrat un problèma. Volgatz verificar que siá totjorn accessible puèi actualizatz-lo.', 'filteractions' => array( - '_' => 'Filter actions', //TODO - Translation - 'help' => 'Write one search filter per line.', //TODO - Translation + '_' => 'Filtre d’accion', + 'help' => 'Escrivètz una recèrca per linha.', ), 'informations' => 'Informacions', 'keep_history' => 'Nombre minimum d’articles de servar', From 580123fdb088223865d5a1326e54907018cf373a Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 25 Mar 2019 08:46:31 +0100 Subject: [PATCH 57/59] Wait for mark-as-read queue before click (#2300) --- p/scripts/main.js | 55 ++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index 212bf804bb1..1b417ecb578 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -162,7 +162,7 @@ function incUnreadsTag(tag_id, nb) { var pending_entries = {}, mark_read_queue = []; -function send_mark_read_queue(queue, asRead) { +function send_mark_read_queue(queue, asRead, callback) { const req = new XMLHttpRequest(); req.open('POST', '.?c=entry&a=read' + (asRead ? '' : '&is_read=0'), true); req.responseType = 'json'; @@ -202,21 +202,24 @@ function send_mark_read_queue(queue, asRead) { } let feed_link = div.querySelector('.website > a, a.website'); if (feed_link) { - let feed_url = feed_link.href; - let feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); + const feed_url = feed_link.href, + feed_id = feed_url.substr(feed_url.lastIndexOf('f_')); incUnreadsFeed(div, feed_id, inc); } delete pending_entries['flux_' + queue[i]]; } faviconNbUnread(); if (json.tags) { - let tagIds = Object.keys(json.tags); + const tagIds = Object.keys(json.tags); for (let i = tagIds.length - 1; i >= 0; i--) { let tagId = tagIds[i]; incUnreadsTag(tagId, (asRead ? -1 : 1) * json.tags[tagId].length); } } onScroll(); + if (callback) { + callback(); + } }; req.setRequestHeader('Content-Type', 'application/json'); req.send(JSON.stringify({ @@ -228,6 +231,19 @@ function send_mark_read_queue(queue, asRead) { var send_mark_read_queue_timeout = 0; +function send_mark_queue_tick(callback) { + send_mark_read_queue_timeout = 0; + const queue = mark_read_queue.slice(0); + mark_read_queue = []; + send_mark_read_queue(queue, true, callback); +} + +function delayedClick(a) { + if (a) { + send_mark_queue_tick(function () { a.click(); }); + } +} + function mark_read(div, only_not_read) { if (!div || !div.id || context.anonymous || (only_not_read && !div.classList.contains('not_read'))) { @@ -243,12 +259,7 @@ function mark_read(div, only_not_read) { if (asRead) { mark_read_queue.push(entryId); if (send_mark_read_queue_timeout == 0) { - send_mark_read_queue_timeout = setTimeout(function () { - send_mark_read_queue_timeout = 0; - const queue = mark_read_queue.slice(0); - mark_read_queue = []; - send_mark_read_queue(queue, asRead); - }, 1000); + send_mark_read_queue_timeout = setTimeout(function () { send_mark_queue_tick(null); }, 1000); } } else { const queue = [ entryId ]; @@ -421,7 +432,7 @@ function prev_feed() { for (let i = feeds.length - 1; i >= 0; i--) { const feed = feeds[i]; if (found && getComputedStyle(feed).display !== 'none') { - feed.querySelector('a.item-title').click(); + delayedClick(feed.querySelector('a.item-title')); break; } else if (feed.classList.contains('active')) { found = true; @@ -438,7 +449,7 @@ function next_feed() { for (let i = 0; i < feeds.length; i++) { const feed = feeds[i]; if (found && getComputedStyle(feed).display !== 'none') { - feed.querySelector('a.item-title').click(); + delayedClick(feed.querySelector('a.item-title')); break; } else if (feed.classList.contains('active')) { found = true; @@ -452,14 +463,14 @@ function next_feed() { function first_feed() { const a = document.querySelector('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title'); if (a) { - a.click(); + delayedClick(a); } } function last_feed() { const links = document.querySelectorAll('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title'); if (links && links.length > 0) { - links[links.length - 1].click(); + delayedClick(links[links.length - 1]); } } @@ -470,7 +481,7 @@ function prev_category() { do cat = cat.previousElementSibling; while (cat && getComputedStyle(cat).display === 'none'); if (cat) { - cat.querySelector('a.title').click(); + delayedClick(cat.querySelector('a.title')); } } else { last_category(); @@ -484,7 +495,7 @@ function next_category() { do cat = cat.nextElementSibling; while (cat && getComputedStyle(cat).display === 'none'); if (cat) { - cat.querySelector('a.title').click(); + delayedClick(cat.querySelector('a.title')); } } else { first_category(); @@ -494,14 +505,14 @@ function next_category() { function first_category() { const a = document.querySelector('#aside_feed .category:not([data-unread="0"]) a.title'); if (a) { - a.click(); + delayedClick(a); } } function last_category() { const links = document.querySelectorAll('#aside_feed .category:not([data-unread="0"]) a.title'); if (links && links.length > 0) { - links[links.length - 1].click(); + delayedClick(links[links.length - 1]); } } @@ -794,10 +805,10 @@ function init_shortcuts() { if (k === s.close_dropdown) { location.hash = null; return false; } if (k === s.help) { window.open(context.urls.help); return false; } if (k === s.focus_search) { document.getElementById('search').focus(); return false; } - if (k === s.normal_view) { document.querySelector('#nav_menu_views .view-normal').click(); return false; } - if (k === s.reading_view) { document.querySelector('#nav_menu_views .view-reader').click(); return false; } - if (k === s.global_view) { document.querySelector('#nav_menu_views .view-global').click(); return false; } - if (k === s.rss_view) { document.querySelector('#nav_menu_views .view-rss').click(); return false; } + if (k === s.normal_view) { delayedClick(document.querySelector('#nav_menu_views .view-normal')); return false; } + if (k === s.reading_view) { delayedClick(document.querySelector('#nav_menu_views .view-reader')); return false; } + if (k === s.global_view) { delayedClick(document.querySelector('#nav_menu_views .view-global')); return false; } + if (k === s.rss_view) { delayedClick(document.querySelector('#nav_menu_views .view-rss')); return false; } return true; }; } From 09362f15ee707280efed1fcdda1485d050fe09fa Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 27 Mar 2019 00:08:59 +0100 Subject: [PATCH 58/59] Minor code simplification https://github.com/FreshRSS/FreshRSS/pull/2300 --- p/scripts/main.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/p/scripts/main.js b/p/scripts/main.js index 1b417ecb578..f59976b3934 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -462,9 +462,7 @@ function next_feed() { function first_feed() { const a = document.querySelector('#aside_feed .category.active .feed:not([data-unread="0"]) a.item-title'); - if (a) { - delayedClick(a); - } + delayedClick(a); } function last_feed() { @@ -504,9 +502,7 @@ function next_category() { function first_category() { const a = document.querySelector('#aside_feed .category:not([data-unread="0"]) a.title'); - if (a) { - delayedClick(a); - } + delayedClick(a); } function last_category() { From 13c13ab46bcd16ae57f95e7fd2ecaa2765667b56 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 31 Mar 2019 13:16:00 +0200 Subject: [PATCH 59/59] Release 1.14.0 --- CHANGELOG.md | 2 +- constants.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fae9f30c10e..f43d470a813 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # FreshRSS changelog -## 2019-03-XX FreshRSS 1.14.0-dev +## 2019-03-31 FreshRSS 1.14.0 * Features * *Filter actions* feature, to auto-mark-as-read based on a search query per feed [#2275](https://github.com/FreshRSS/FreshRSS/pull/2275) diff --git a/constants.php b/constants.php index 73b092849dd..1432ced4829 100644 --- a/constants.php +++ b/constants.php @@ -2,7 +2,7 @@ //NB: Do not edit; use ./constants.local.php instead. // -define('FRESHRSS_VERSION', '1.14.0-dev'); +define('FRESHRSS_VERSION', '1.14.0'); define('FRESHRSS_WEBSITE', 'https://freshrss.org'); define('FRESHRSS_WIKI', 'https://freshrss.github.io/FreshRSS/');
  • R$wjYA%0qmOf=5*#%Abk|;ilTwL!FCuuH0yZG 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 z zJZTm7jgLR#_Z+T&H@b}@F17%#_-)`76M%_rh>Qc_dL-*-l3yX7gx~Yb;b`+$!M~ z1Xou%43~mzqZ2qqn=IRvj^FP*c=?v5{?bo@pVr`K8^ zyZ!VR>&8ZDvMuW}Nr7am=Jltj@e_z1Pt^HG>EFIw5;C@T&)taU5>OAM%ANXQ3}p$d5b)VdvOz~K6(dyPj9~5_pRLYj3)|`%Q8EjQ=wpDY z5%eqozK-)XvH}QA$6oI59M*jKDf5XU-FeT@~)j!o;S%)9H@&=DC-H zR&Jw5JVqb>IC>#^DoKI3Pk=1d38aAqiWE=`tx2@l!4fT^hl*Hai57u@h^7MQpHfb= zSetB-C0xV^+B}_<9I;GKz`yDF?T^Dh_l`j+?;SkYZB2eRm<}F>&us|aOUKe(savS91nH_^0y=hn7(Q?ivd(|~2o8q?e#=e|ZAuej&7(MOzf z^K*Y-I&|pMzXL4&Ahm5QO#{hAdZ70K+0tl18qk&L@&S-zfp)>%&q5)+I^hOB;ei0K z^U**g)PP3>Y_@2GGxYw&d{{ZOHs|NdMvyEA>hqVJeBY&pr=Hrryg?t#Ba+q1FJT-TlLMcd!U^?SG9f9KPko$4QY{LosuXWQL#Yu|t6!L@TA-3D+j z_jge|%-*Van0?E{!(4RGrrM(P+QBQY*?aKHYscD)t5@f`*6Kh1;GIw7C-eR*Kk(_h zul&Gg5a)*B>t5!+5Gyt6w9KJI;m+WIXXs8+WFh(VMDIeE5v0)ykCb}f_RsvzF%8u9 z&)XvRy#5fEt(sKXDoj4`m_&w4dL#2(mc+7rwM@J>ReMv8<5pZL-rLf0Jl-4bj;?ql ziNT9X-iHDYH9Qo2D0DV(w&85>Z0MQ5GY!uKp9vY8n%f?eE*{Pm`o)@)DHT6xRg5}v zP0>_py-aF#I0h0UJrfsaPG0@rAT`xrf6w-Tc;D*FL8|h1xA>z6*A}n44pz>51Vbw8<1(aSi7VaqX$34BBb#<*uZ)sq3&F&uG>RpG@9olAx zeNAIu^W=f4q3zq>rEhI+b{dp$sAZyWcwKsY=tO%msx`X1Q%>iOq1@&=^S;$-5}TpS336>7ZYkJ391E5S%oxaDUBL>9g?O5cyt7Ur$BZ zLAmYD2KW?1unP1jkpZeQgQ`k~dIxzS9kngUm?$Wm! zbY_#!<_>OJ(+k{l&*XjL4QsEw5#}ofaQhzMWF2tV+t_N%1oQ&*bWD*24DqQNpQ;E9 zcF*lJ8}Y0VdT5orXQVUo8Rd-jtI}8HuPR^FepC9U{7vPX+VXNzgD?R1p;Yo*s0a#U zaLn&J@zP`0-evJk=co5x`t$K@U*C1pY5jW+KKSEoAaUkItmX0z6F0tobkCOjT|*Mz z2lI@E+)Yf3CL#G4V~$h|t5mNg!eZsvoEUj6*Dn^sz%-ZzWuv#XclX5HIHy@2llcy^ww(i*I|_Ag$Vw=3laPoFq#sPu*rZ)1f>e4 ztw}OlaYu8j$KALW6Vo!w@?SRH(6M1v;l$XwqociJYXr6Pc{9%;FK4(|5ou;$-R#_hS@}Z(FuJ~U>;@h ztb?87fxiC&`Ywx~(-Y)fxNu(8VG6Zm}o zi}Q!*ui5pJ5kptKTx0ove7)S>3+(!v?ENjOolq9Pr7gGjB76SrIX=Eu>A$e&-!b!CICnbC9liO1_9nDXG{x&<9&K1^=* zAqvc9x+fCZ?sB*ql^bHQ=}EJ)>aR8z&Us(315!nqBrE+#j8a;ar?(%Z=FIDKeY z4aCv3npobnn&?8)YTG6c?P0dnHkIdYC2y&eO%q3NZ)3UkLr)5lxYFRyZ z!KHRpQY)mP(_IGgOokY(7LYH zx~jZU>uTNqwRM#;{`yx!-HNtViER+eSy<7w>RZmXs$8IL^*zG}4jd>QPk%l8mi^g> zb4RC-9XmE`Z9EPV_9>6u?h>xQPJqAe8{o$AM%A{8`}q%HZ{RZafs$QIH3a2s^qthy zp{h)!dG!^6+q)<^y07HM+Zu^z4%9vY8g{{%)5S&7xTB}%#O3R|8oSlM#d|yybz`R`n0H?F-c*|QJz|ZO{cI~B zHjERH0G=BX*irX|)6SaRYLYo0hfM<(0vMcHp;XCVDFDC$De*w{V-So?1T(|b+g#BE z&sNtja49HJE1mc3Kh~b>*ajl<;qDEa$F3RuAxh@Ej&5jg8ro$Y8{0nIx96h%iyp#p zway=>--U6d$cZn+1Ab8>Q57E}OJs3Dp^R~sB({foQ3ugfCD%zBSvs&#x)LEy;V#f9 z*oA}WY-k6m9d_pwO=*?oPPoJ)iL!8%s1??KRodg$qB_*w*FL!B&{4BEvHLKN^vdql zJ4QM-t-s~nO<{x1WUjY0r^h=ccBe**`*6%-{n<%}^Wg9X_3XHI{uIdRbwm#$Qg^9n zLTUls#Ixf9+t-NZw8Z?lH#3CY#RBY25@5zq&jW(G4fiu?K}-iBo%%pXA8UB)TjzfF zw>N&Lf&SIpjYHp|u9um7ehlREI*`xbwp2b(mW5~ykz|cDTal3$;`=cePFKVGd}Wsx zq?P|qg7kY<5~LYSt7YlzdF1HuB00LU=>N~8WRQ_zj$Zmyt0#IYuFa$D7r| zo)l+Q6_gcM%Ds}Hd}EEIyi``sl+p{bawW*0ST)=#Nm=>-gQU!5V=UDr{X{f#aZ3E&>H+&t1Ydz^N8LRce9CB!3@Q$myO?7H5-$H6Fy{o+c zs0!mNx8Lz?rZB#KL*$-0f6}VT%%5lP{XL7V;su)hRd)UIukczAc>W94?>`89+{a+A z!s|c2T9(=Wm5uWi5w9Dd{1fc?tG}$3!T-n1%O8XC*#7@A9Yh2DEpXANMMZ;}>px*M z2H^?%r%F5-3*7socnY33m!H$>=a^S3$?B(8c>Y_OX3x{hJ%`@?iMF!#Tb6x4_Rk?+ z3(s4ZZ6BX^vi38})|a4tnbmJwv43G!zrFliT)zG6^8K5)(jM}04!?OXe?ISBfFIoZ zBl$3gAAe4(pF8HgG|B3xR(NiuY4$w5-1GTYp?)iCzh&9?WB(lFgB*U#w2#j_S^Jq~ z>r2qS%<8wT*uOBV-(G$$F5iB3`To%v+9Ui%#lQV3eD_!3-+uB(;pZy;?N{e-f7Sf$ zr%6^nwZiimnr6?_%RLAD+fQ3r`z_19AN%JJeyrl(()RIrCu={mY<&sZms$O`75f)v z_1nwO#pT=2E^S}chxX8S^D}u1vH#z+)$GxsiS_+M*nIqootuw) zFYa4+<^KM4S5|DyNHQ z%#n7a{CGJG7Fk5{1#rWuG`!A1JoFf)$dL=R9wA_9-!!N{Z z2Yoxt6}-`|V7>sR)R08YET+(8 zfTFcWL$UUvJN&|OiXS zvh3sMFelZ!9d*znE45ZxP@J+-VS+0>@S_9MH(mWsPq>)tUi0=+z~2{l={Jt-y~XWq zIvp=%3e)%B&=cMgQS(_M6D(8A`xz;P6mBEJ!&8*ZE?9_An6WbpQ3v{#gpvJj_Kyv| zNNLl!clf=R4Lhbjd!(Yv2*cPgmvRdE-6oH91%8)}3(t1KxG;Hgm1U?*QWVY-R(Rb7 zRyQKw+c^#4^!a9AhbL9c^yQlJkz6U;M_0K* z0aL^k3eWvM5)0M`;|+}qw2#k+AFWwVmv%Sj)?fsAV5sQnmnPpXTkxdD-=>Yzw`6 zN!c)z{dZQj(ZtJMs+RrqlCpUydzQBw<7Km~Y&*ScN!bvTeTlbgXLZ=Zy>yz7aqd{X&00c@F1p{ ztKGOM4)#{AcjW~Chfh3_f8vS$C$mq&fA-G*fp=bDjIShphzH~ns`_dnm+;;;RCPzz zQAJiR($@4kTHRlGBnzloQ51PIS_XEpD$sqG5oVZ2F02egzi1ekjerm3SM;HKZ_VCu zNA}k3$Ts>}`aD#Y9|umP4FgXmif$fV=aT4McSY~Mn|*JK-E~*&?z`DH475BZ zj0I;P2l=Q1sFFjo%2s6=78s2L%alX4 zkitNS>S8iEGlR~9s93MqkI}Wbs2Y&N72|PONsf+QapUi)cXXKjnEUBy|Hkb7*^TV0 zJf^S1n6|!w9CwY4w#G`1yCU0!(0f0}QsW>)n(WWF_2t5SdG+tthsIl4cd##_u7xA; z&c~s#1X)*_sCuIjUZjP+PfxWbD(kfJ0ishB-BzO0DSHf5(JAYkuq(wP;ZQK(!*Ev# zXQI+6Gjz(nOo!Z!&dB21i#yp@`NjXz*g~&&?Wp`#VfGq*5p@$6oHwy(&)FlQm;@S9 z{NM*)W4N_v?xR&WCF354YcCcn#GH~uUqtkq`zYPh&nqn|%hzcEN=tyN&=!5DA4(OU z%#s>lH*x z-+VllsZlG4#BPx&&>61_xN&jJY*J(mS>tm$M7GC>0zsoGCW+dL4*aN56zIBuKN9vQ z0*Q2!1n**pZ;>c61C|^4L?n*Ph*hi-LzC-*!FADf>0B-ie-?g!Ix{ekfzQ6BkJ#@$ ztJ>RF;RiPmGr6Arl-^HVBm(l-JJ=ztFEl%KqDG-(KK4t7U+U?s2$2*jZAE~yU{Gi$ zAeyZx&5%8!7Ts0W`AUhZQZkex00Vg|VMR$*$(fRy5;YQ%4|Vh)!?~zSR~^jJy$}p3 zo{)>EBQE(Zsf{xC>tDag zKTW^R;)D|6k1&oHIq>MPy(~0%y3;v4FX5XV#j$FE%rPQELWfV)rGjbIq`d*u` zPUcYHP<;MaF&6CITv&AdJMKu(ZZM3D&^gbRnZBwUa{}IAGSF{Wtd1W82KJWpjL=F| zVFL-CS*c+Bf;PWc*5+%8maDNuB~i57bK;Lby4w8icRincjb7YVKRfrLaLMa_!s3s5 zg)Vls@na#2HJv>nw~yj)aZ8m(o^qMt4n zW16p(%gt~G-9jvQ@Wg?fhr2*2J476&6!;zIAWhGGm;S=qKleLI;nUi0{i&6HnEtKx zW0%g|GI#5-XGnRBzko5?S>84cysge=#$b>DRXtnQl@72o89huB2;7C;>ExkK7fkXI z_#KA7gVWQ(C#I)go1XjB^iQoxQI7`tzr2dyqTw&EFk6XAM?gm1$pnNUkc&Pg^s4?B zU8N4a4qjY2=pYJqV7f#kGAsito@!ys24uK^AN?v4$r$#hSn;TESD$a73mz5JH8kG+ z@l(e)Of*h(KYac14dcy8x_4mj;TwK&@P_2vM@o_5$=PfEW^yDpGI{Yee={*m{Tq5| zsprNGjGIw%6P2k%%qkRDeho`-MV5#b-uA%pTQ{g`GmhLQ#&Rxs-+Z{0H*!Kok(~9r{7e0=mRW6#tFBBEfQ!xfM#VAgsQ6r`={{hV2I0pc1l# zTZ!0mHoh~$4<50Ihb;QDugzUIB}^C7zCru6r712NGmS%LxnFN~{mLPHV($Ct);b&T zcW<`|qAR?1Ey~L3m;j$HQR7&%{Y1di_(+RS(EI60^-PMIrLRiAj#{OPnq464meaCV zC45`z@6tIo)`_23E*FCjy?-j7pTbX~y}7v^Kgfr{et>q&0Er`pH~PGFT1iyUkSo#3 zA(?8OW3YjehIlaUaRIdr(16UNt|eq8(NSbX7L~(}g&2$WMrM`AD09Ujp}j-wY8MAD z8;lojy`~sS^|%9ptF!UGq=yNCY*&Ux8G?}(ccBZXE>xG*SeSF)R z2m6`6n8lR*F|(bAF@jLoCrC2T1<8V;CdSY)4XD&9)Z%I+0g<`d_gpD&X2Ad+UBwWR z08iM?wAIn$SmfQXvyy<2h6~&cmfrq>r=Gp-;`_GJ*Z-;Uvaw5U3&o?Kocmk)h2Zh= zwO54nU%da`FYUa4w?-$u6v-T1v+Y_s`?YvydqmZN3SWSJCrO?RAlKX1osNgG8+Ecl z5+YQ@SpFK#0?@m#&&Ba_d}QA7u41k|7WMl8{7ITrR&tzo1N+Aht^)X3#J^?S1Bwas z4*2et!-L~R|NaeATegg8t-6l{+Fkp8vpF=-cx2;8x1|nV*_h1a;hnks#?JMFcc$vw z-1RW(lSfvP^9oe>M#ODQ|CTK!g$;SeKdVw(gyQw|h!|mRgvC*l? zRkB5UdwbK&_on=v!F}U*tV`^k4Mv+Xsm4%iW-Pb1`=*2|<~C4XBakc%`Xo950IdU7XYu27DsF&D*t;FBy&zh1<3 zu{cnufx;@$0QEVbqgAG$mUK8|vr>|4PZwK?iC8EVPSv}uL0eF#5DT@a;bzORRXKN; z<-vhr$Vh5j#T94}efrW*&CY)6QvSXFfgL*@*w4SY8F0GO@8@Q~*+&l_esq?92X=pW z-@Xs;=HDNM%vKsNk^5 zhCMC8z^|9Eh_8F}<>ONMs#=m7F!sFFW=cT>%s_u%Z%01U(wq#3-Y^n`&uQyi5okZ1 z`_t4|jTO|t5v`yrgYlzF?W6hiYkL;s#X9nq($&3GuN$X|HVLqW%>lSbon8x@g94zC zSsYda!p1;!dV>yOqexm5yUl#5m{>GjBL@;+D5JvzechdfT(&LU49jI*cwIH5EElv~ z-k6njMbK^UN-k%9O@{J=o#_)B&#|h`Z)CmfziWO;g5t6pm*5DCw&sAln6v<=|{F(MlJBvP(#PF)s zpf_FUDqgS?Cko1nzxQy9TnViBAd2F#JIrwap;AgYB1!UJ!3wCAxLhC8le=2Tj*2Bh>On?In9t z8|en=WF`?8B(aGq5`ae$FLbNQwsW8q3+>(6ZU9MJxb4ktRn;bP)j;latO$*Z&~*Ne zdNiG{Ud1ivD+7Yt)SGW&HgzAG)U7v=W%jJqrQsx%WIQZiy8={i=vggQ9iYp*7VdDh zWLbA11CCUT^D7Q;)0BU_gjV~Ba}ZtCo==#Hu6iuU%}(IC?9tA)xJHp{Hee*PFrNy} zr?O~12TOcDOA~_=1AQ=``EdSC&gY7*0rs+Az&ZJm-HV(CZ0F*ZfBL-vvI=eIcyyPgGX;_l$S^<@p)nvd3Kg0yF7Yfj36$ zN^hxa0Wey=(bO=+0Y8F(TT$FjtIy^;CvjPt9AL>t(my>u)W3dWZKTofkA`dU|#MJD=XE<;y4Pj1k_yskyJdnxK2&+nUc>6Q(?_mGZwsV1KbPT3|J#K1D=gpD}Smwq1cmoNOx0h^T zDr!7b5dA)zRU->!t~kp4CN!dO3Xe(30t#>#mkL!dthd2vq%5v3t@M$Jr;`EwMxJsEg~~hU4e<9$* z#!G8_ULY_YDv42U20JIYYz#AAEEaBVY=&WlY@zd$OQi$j-7}h5Koi+wig{#sb$6~9 zu7AhXH%$+gT=Bj|gPAU5O7WYTz3yA~j%@VZV2x}E_bjGWUeZ(Qv{ObgMFCIeo+?vL zZex~s{~3kxTD^!xyywbtJqM-{c*YzMlA4}gTR+h>H~(U3ytap5KJwWq$M9wE9j@hb zqJTNQWTdpJqb2Cnu*guA#3vx+2^y&uw(V^Q+qT~J-elZYZ;jfb=YegavK{e+rFND4 zDe<_PiGb$DEbWz~#`ZC3o zr^DBrr>pYekSk&egy#Mbiv;4rgN7YY|WF z*y?ZEJGyZ?pBaeXntFUw7??C`W9|I;NStKJ?IjBazzj&T67@4lwwz}Iehbo3%tWRN zw!pATip=T2-l|Pd1H!)MXr;W01IrelDFu@WM1$6JBAd*{W5I@Mu4Fj|x7xF#YUf{( zL2;`L%2Cb@Jh?KTvU$hR`UUpDTE()!+DibOHUpemNf&vz6hz&$o$5%oJuPVTx|Sdn zwR+8%jS6c*RHGWO+Mu2!3W)b;i<6l-%Sd%P7Sf}O2Xw=5uM38`)^Zgd0Zzvvz^zY{h37J+AWGG3YNK# z^k23Ax?3y;uke6t*T_g_?t=|hdTYbnPn)(}ymeZIqvjES;}n^pJsh=?HcTet5M(h$ z&13`clEZ>*F;A`;DN@N`k;a+;s-09>?Zcwl3o5E+M=8J()KX-|4q)sTm;{|hz*(?S zvzZ-EE@#mgCl(8fAl9d##T=)vn`lKri*`BkhFd6gE~<>RumLm7=sBy-%#<3Z*AcRL zvp;dz=oLPG+W&?I$A-?A#R|h_!;R~Jfvc-JS+y}ci=1mUCBsmnj z$!|`#Q2Ctb@XrHtudNooSd9}&<~|`vdfAv)G|J@g^trJFD=o$rv=t`+XWpl0Yxi%UE zovx@WCoT%HNEpm5WyNys7v5+ovZx#uz_M)htEDjD8HVy%MOIEmBer#RO0d5Xg|>MCfU`Q-CCuX(Gmd#xp|byP}rl!8{}$Fn)147S9J``E(TQ zQD@AFfPZ>UE6qlRs0NOxM5`@RD~m~|VR4jI3~wiT zQP3|?xeKUR$}Fmbg|Qw+J6*2E49i+Xwv+8!w`|<7ZfbI3?dny7IB#qL*xn2=Ty93+ z$jace?XFAWY5v*kiOGEtHw?RI;_4GToS z3_no|%k>Wncr37%G65DZm;EtXf_!{mDVPfmes0TGm_g%$(fQD z`mu(r85!mq2Eu_MoaMq1Zbb-P5PB^I-uaPg1(+^^?Yvj;0c@MeRV8y%QlJ_IaHugX zC@SL`S&Sia6(VV=x{$-m;E~LuT&ZQa+iNpvuIE_9-Coa$MIg?h2kbfUsBc4KU}Z$= zpSUV%4Q<;*AE+6xcqNQ?45S-x8JE_wnT7SE2R!QT67=fWlS>iApsPkElTl!y*fGr4 zvbcoBF_2WbAWu&+M#eb$RuIYjrV*(cNN*UGRQSCyT&e}@qCNc}z&1~Az&%|Sl7IyD zE`iWo7D-e%;B(k#U_$rbl)+dJi`)f&0sKO3$2FMVzC zrp@>4F9SR_QChucmyjiGZw0X67B)VHRIICzOQ&!%2GA_**}4lVtM1tm30=AwCu%Y< zB-P8XA_0~bvr${KRVRr~6m)#sJ$HG)>)N8M43@{Gy-*M~W+{RA~0FK+8E9}5-76aj2IPJH>&XF2g29sZ3h1-L0 zk!OM9EbqGy!`Md14>^kY82+{+P9g`{+tZdoOf)J?tiq?-6`ra%+9*o`3gL8#2#uR< zHHs#<%q(-)wRKooRuMUqr8Q<$DQgSa!Z)4OBPG~&>}55>g-BU%2oc_(>R}0vydg!z zGN`kNp3@Hj4mFVNB@@Qm3;0w%Hnk8 z4BMjMwJIV|@uH)r_XQi84o>dfwOEMm9_d)y*vex0T3W)zf$@FCG10w4|CWo6-lokD zZ@B2n-484$In&pMw~h`bCNowuhWK^VZ=G6mRZ^eo=X)E%ECMhaC6AOGxFfA92zrf| zN_ufD4wq~Bba!CbN6Ldht4HG$02A{j@4`hx_Q(c)*o1kO8-$88Zn>fe74#TgrqaTS z)n-ZoN(Kjdx>8NiNT{LSjeY{-% z+q#AdYt94iT{R0xZaTO!peY%EeG1R68@dWHiq9Fh_{Q+V$s%kqOm1Suc^R{4l$+RX8LS}n5l_5X0QacjVH%RjALW3)| zGE)juGBh~Q-`UaL){=@xF%6ur-cg5{n_n->y8$St5d*j7PG}EeSTz_ z=}BFJ(-U3Ybfl0gHAY;H?C8)4w_^=}Ec^wSn_)6dK3KZf5BzF|irRux(2D_T(66RC z!y0O&Nl_p|YfE#JMj_fUqQeyE2wtOs8WFr&Q3H6c*Nc1b=nybx)LHQSa>C1M!vRR#1g9k!eY(C#XeMwP7KbSwriGi#`JjYYt2 zjKto4WN@{#W^!WR&AU5Wfa)Z}PYx^qn!cFNH1x;YMz<~kxh~VS=VH^`r~A-|q5nLx zYvOV3{e!EjflcpdnERQhZvCE}n>p=if!!gSvAN!}hyMNF51pmY{28+%E^0H1iYY<73GbdJ7(xKUi_qN|L0}3ab6{&!iD2~B zL{2yc4bAn^XU-m?k^fiO)x|_{Md5qy?CyvnGP^G83TT&Q9SB_lDzp6PGFU6yT}ZKj zc2%I_Pqj4Fl5HeuY)JIMHtA!NCQVA(7!zY3v`CE!Dij}T(zibJp=o$(Odpzn=#r^a04uo_p?he(t$dJvA`92Na75ZMXtJynVrYu{g zu%etn#tCSHGPmwBU-!7nb%*`$v$62r=fIu%@`yg5R!GyLI%9f zd@I<#bQ~>)&NgQbylIio3C{z}iS?qf z;4%Eg99ok3Ma)D9!i$TG7XB#g6XIRC4fhaxT-`>mqszROpb4*>yE@3b;z|7V?9Et| zIs^5O-WD|@!R>5!Dw|DpXJL!cGdS2|WDXo){hzuRBw-*PFYp@h*!c{Ci*OgO7VOeR zJ)O#=-Y)V04^P_uOg3tw*W)3!9vq~!`j_|fIdH18B_#`$DM_u}lL z?2ekcvVAO<%aQ%~hxW@px4%*(l?VJ>8pN^u0Yh!lWf*oT?&AR61ImE+A^A<<% zBc^I>FfJ#Re<{WhEJWi=*W@7BV5=CvhcXL!8IA!Ma$)Hjj^H`G%re-syv{O)U50tP ztO`XyUSFC7n}v&I!;o_$rl8*-ankS1%{rIVnxlZrOAK8ej9*IT38>H*O~ZN5TdpaS z0-C0*nw_1MlS@Cr#A`lKxqk^msxP~(@{L=yxg3f2R;7WcR zP@LituHY~jvuGs#*EpfE{IUD}2D{XaPmZG#iv&<`&*H~0woGm<9r&5!V8pZtras&y z5&Wirr6?A0skP_|Qfdl8Irr|5{;yn=MSU}iPu~AjtMXyMVpS9cgdQ+;Mn5__is+nQ zr>0a4igi)NTj6l!ZnR5JMA6@7RdTID&=7Y)ishtvQG1Euv zvT#Mv@1gUeeOQ593_;q8gX@o@bn7mL$T1c_o&|b`fCykuAR5Vw5;?@8z5IB#x~gow zqWP~dbTk{GShNdX-$96?KB?>5wwZ|v+Mkj@fa@#UtIZuvX9#D%b+jQK>u=gqYgb10 z#~lk{cYM&{f9DK?pLG7Y=*dnG)bG92ed@>KsupxSdn!{}M3iAJmg<;`0oLuuF1f1? zQr7zUpn2qrF4PT2sPzpPyz0N}ocjUQp^lnof5Ol553xn$?9xr;8#FrQMe?H#da#A_ z3bbZ~dqCuFnP(57`35d5zaCsw{zcJjHv3(5rN2g_1%|tRuTaM$>HJP7F7Hi)YjjOd zGFr8DP1D}}4S`@N94oI4_IB48>$TFZ2t%`_3p#I zp2|-|h1fn*%Jii!`4DBdl~F~el0PbB_%SguwFhx*5dPrC2qKJPm&2I+)OI@efe`A0{ah2|j+;g2Y{ zU}QO=HXUM?7 z+WX(^zZt7B15gARup9yaa=ryq0001ZoXyyMXjNq#!13SnoVylI=hP|F*4{+#rta-J z?{qG&v%EznNPpyOk|HXB{$r6~g_ufIl9csVMTELa3n|J9GLVRhD2enB5!71hh?d3* zo7w66oco;l>~;@Z$;AdAo|kj(Ip_I3zw?}Prh27S%wOL%s@K*Z!}wsU=pL!o&q;?q zA!)CW@)@j^4o_%Lkq)&}(iow?p?@>|pGdn`iMXWoU)`Q&hsx!8GIk#ciZ|b*8($+T+G;XihWW+ znHlGQR}-}@h+8gc8#hbM^813=&XQp$KncoFWcwZdIj6rwZ_3OGV&U9`^An-Cf8L^) z`MiF0*YkUCAu%+$bWPl;j|*~a2=sE+GIB9OvB}ZAxRlBJP>}nBG53bcdgHW zt0rF`;J({R-yWVrcXJQF$a;2&asit07VR$9`*p0_t5~x;>ARDA{6W^M@9;U>XVQ0y z@*ej4iN3Y0TW9Hen&;>y)|F1yjUBk3^}?JdkG#bh!8md;V{lt~fwUsM6_cD=GM z%epLIV70Zude~ZT?X|X9N32)ziim$8%Z4oLtxeVzYoqn1^`!Nw^|2N1x5Ikb3ik_- z`(c*-)?O<-PUif5GS{(49hGI2EruO$AI{rYgz-D?#3?&&VNA=cupREVK0>%XjQe6M zyFdGU1Ll?}i+(#>=Hqa|oynjyg>RGFf z@$O6MO{QKhZ9(}y>&q6dW4GLk1+fzD+g?!^h9;9!goW$;CkBB&y+t9m&?SjhuCWN`-<^ouBTQlVfrT#4SA1QZJp2K$fPttyr`nQxH&@SeEif>N7!xLTyMoY>&FR9pksgHFtzIS-8 zF6H{4mr84mwbm88z_#hK1#Q@jUH@pGkz275P1eBnbeU~`*Jcf96USCVuV5|sLu$Nv zl9u$}szxT%0001ZoNdAlPnrh;0AObwLx%DpB3RZrhYS$`DWbK`BBd08qD9J_qe!Vm zKt#08ImUU+G31z&7Yd9y>O99B^PFRhIYjCiV+=9I7-I}EjWNbF#u#G^X^b)E{=nsV z($dmc|3~1B^fx4L_|h5aBk8FtHCNPECaxT2a5MZFr*Bf;?0a(^ga=tcanR*k^tUW; zt$`t63m5?V!9j2YyZ~MWC&ByR^Gr~tGE<*v%(Q2YWKL$rGFLN`nFpCENE!qQxdsVB zB9H~hDkKTne_Q_c(c5QGK2!=-LiJE1)CzS$N1>C@8R#N(Ez6K)%Ccp-v&OPQS@Eny z)^^sbtk>C~>}2+S_DS{y3=BiT3SeXy0Q19wun24cwhBwa_F*Tm3pf}qhRfkvcrSba z?uC!Tr{OX9GJFHR4?jUL5L|>9AxCHty@&zCFk%ETfe0h!5i5u-#2(@pagGEbk;rRE z5;A}cA>+t3;yK9oyV?V zx3GKIW9)f8C|{Z%%n#*XUWHsmUoE^ke02v$z?pD~cS!G?T&up8dROx9_`Aymv;tE> z^gYyj`uAdmsKVC5c;UtS!uQADzr^eCeRvBV!29t*d<4IMU&Zg?kBf{&)*@F?peRzb zT$C)@FFGNl5ugMN0Z*V2mI)h#9l{~u^#|!6=!sAwhS*QE6TQT7;xsWvTqbT1cZi3? z*Tw0@-NpUI_F`}GcyYLRzIdg0t9Y;YxcHnDBE?Aw(k5w_bVNEUfs`mpbR~TymJ*=E zUlJ^dlq{62mL$nNWHUKH4w2*J1bLIZOFkl>m7+=uO7*4Y(xFmc>00S-=~3w!C4&N| z;3z~2gTkT+DNU4Cih*LH*eGtw7-fnQr7ThLR2sFK%A-oC3aXB3qS~l#>KJv38l^5# z*QqaQOd6XOr7h9cX)kF9v{ad{tgp;c29){Bf@P7ig|gMMWZ6DlN!QbjbSvFQ56~mm zS=WWvo376@su)~`n9<5GFiZ>^!_63DOfjO2CB}MrL%FP6UEWh}E*~oQF=@SB5I%m5IvD8}J+I z8?hT_Ro1G5o2;Amn~|HR)y!&bb*TFAL&Ar;4;O3THTs%p&G{|LE&Z*TTPG|wOTtpI z`dD_BpEb=|U~RCDSZB48T2*ad?Qm_NHdeb{yIXt02C>m>0-MR^u~WA}w=uU#x2tc9 zZZB~}90g~RGs9WrY;s<4&h9|&;OKp2n_4;~q zy{mq-ezJb1K2g72f7GCFFg6S|_!_1g<{LH}UNxNF7u}z~zjA-;{=xloF;sj_OcS%k z60u6$C$@`^#Al6=MqDGMk<}<}oNSCYCK|UJj~Xu}a7m$rA>m4zBwC3{GAtRBgeCKm zb;+J2^#Jq$^8o*#=fRRRTPl<4rADb$dh}7%N9K>#n=nnrri+i+AKN}oG^aN+o4w6D zpX7hi^T~<~E>p-xWyyz-hunwuhZ}N|oFT7~^WL#l<7?BjF?Uqmf4mWrng! zsa5)vi^_w?pvU;f(#Mv^GmrOMNv*xDW39o~?bf{~xF`50iYLA&TTgaW7*&BvtZG&n zRRb!!%BLDr1yvzcRJEWwY{Rrwwz1pzZQ?d%o1x9x=5Cv4i?k)wAT>j6P>-r7)idfP zby9t#zSJN!cul2-uW8cgG)B#kW<)ckiD_0f+nOWIxfZI;*OIj?tyrtjc58jwNo`!a zt37Flwxil{?WA@^ySF`{OV^onc3o7rr#sf2cR)H&9n~GY4nv2jW3*$TW3A(5$3aJ` z<3gXIuhi@HiB4iCv$Lj?+bQalb!s~;oui#oow3dxL%xA&;24Akoxx`C8p4L8VYds^ zh3dj}@w)U~rY?KeeAj7rT6cE0sr#_|>?!DJ)zhA*i#_a~zE2B34SqV)TlpF8GjAWf zFZQ|g^T_85MzYcOh2e`Wlf)GJ2l5|N{kZ<{KV@c-dGAZx0R`-NA#wlfg4vnhk7&+c35Q8_`CyRoYlKo~^;w zWK-C}|Ejcu?UrxSzEOX(Fhm(L4h6o2e>?Q;(lB$le|Xvfcc>hCN3WybVRZ~UypB=F zgk##V=QwnnI?jP~00JO^e4r4Z18hJHD1mNZ0B`~0Kp0pAHh?|g)S2!?It!h2C)+7@ zDxKZV0jJA3?hHE@og27PZPUAhTwvwO+C>fUs}bnm;5+$r~k zC&L5vpgaT*#l!J5dkh|{$L|Sy5}qAT$_w%0y>hS7oAB;`NBd6p-Lfyur|?;QeqY$P z`#tn~%J;wsZbUL-9y$Dh{e$<16@RtA&u{i8pEIA2Jr6z)JwF{4js|}u|F|_K8Vmiq zc|2`=zxw}5&UF7x_&XI1%_3*7&5~xBvx-^k?8NMKePvKwP0%hb zL4!kpMT5J$69^8$VS(TtYzgk}OMu`G!3hq*f)hO0Vu9eY*y0OpF7Nl_{<+_+>gwq_ zeP*i8Ia8;)XL_FJH`D`{#(KDgFT~|-W^Ddc*nxvrx7f1TCvM?(@pcj4*YAeeJUrG( z0P&AI#rGd2DP@Ag{N+N51HNA}2=Nr&{Ud*p`F(wx`(KWXHi%^UlKoo#PX;WAq>PmC z5^(k5fsoLUP(SCD>uop@%TY+B*9r|&g{$y%r*?wb9Zi(9{pm+C!--;Zwxd2bs|x4V z_;??Uml+N{4+u&0gWr5Md+r&dL_soXLApxS{6yF(@*iyM(a(0q!~!!^S9< z@S1Ob3H4d+bN5BMNor^NwSJN=T$+9&)!4%V&1z3{wqMBhkaeTiN#pb;;rP&ZM8_Ow zZMjNTuM-DiHn30l_{Q3YpR=1kaCamhECSH?NAB`+ETbwI1GYLrc|74Y4x&3}3klbB zDj3Bg3#I)t#5_{?J71P^+Vhz%C8e+#`p)gxl3!cLqZ6TB@F`;?*)JTi0SWWxc08bb zql2MyXx#Gte~5=g$s3g4h>h|EVe762WOD3uGg4pNjk|A)!5us_6R~^rCiu&i8_|Yd zk4BlFhDz?~1KgoIj9i7y3MS*q-XUDU-g_=5orMnB`Q!n!la72>sShF68w+n6Uv;>| zO$mbR9;6EN)%H`DhWG=^c}5O(7n^96pQCuyIlWSx?mGHTnr9UId|kMu9zPFyI0?KW zOTvGo%=I-c|8OkW9&$4BtM>RVq9Q%jKxEKR{ zS9b#stxcEj8G6lMXXIxrn=gV!$RKZK?cEu?I{zx|X&ILiklEk< z$*@p(uX(ktuCH7F)ucW%NJ@IgeER%pK5uaxGm!zT!B97u@ExkMh>7&(A&C7a_APzFhws z_U=2xd5?eV#uTzMLFzv#?_1=b$Td#~W`KV`Jf=(zDugHx><-8d3=V`3KnHK8Me-%` zB=X(GHbK2Rfy)mCS3w8d2W|(n2fzc&X@Y!!m<%X*`)T1J`^xKpd^%{FC*MM>4-~xf zwDgdF6>vZ>{X7lGmk|pAA-10uA9AmJ4*=6L`Ivc_`5|KeK!}~E<%hy6Lb1?VdS}&W z(MZDg6n}@98EwAUj8jmu5ZllgYYC?&*$|7RQY+%WjY(A)x7z&#!-A>6SYZw@3YZa0 z6!zH@%@4(o!H>v~Ukof6MXgluzCc+xy^=WPo{3J3Ulmp+E3eC>w@c}q%sj(1!!Yyq zUHU=l0hov_{Z$p1sw&-j?7Iz)STeO%8~7lNSS2D)r9i7K?bIe`GL<|veGF$D-;>|( zwI81!wjY~VRCl7_IA=EFRhbe9jNYWOYD2!FA#M}rt*UsNs;8QAJsyfX4s24tO(Sh8 z?9S^B?*`{71C@Xpnk@FI%c;v?fpOzqpIsN2KMVt=40{WEiS1zqFku)7h7Z$(al_nT zv@jq{8Ws#ghRMO`VOFr$FdY~l%maoEQ-!g?9AT6&V^4gsth{&AEaa&;<4U_;yW2ts z4V{)#QM*^WIJ-nJB^Wcz)|0I>(M+?R&JbKPwzx~>$<>)07!{adrsYOw!DzuE0?r+q z+9mVkc-f`V?3L?PJ)`plyT7ncou{6I&(qG+e~fMH(t7edAV1JQynf(&z0zbt+e64dmcg=VG{o3RD@)`?{23LeL!EOARf?i3*OJ_(Yxm9RY(%v}AdU=EQ9mAqq zR4NYz4h4>y51WtXuEnl9TNEc+jzA9Dl$w^E2tQ&@0A0r_t!+BDK~p z+@t}O1rbVor5V7tjrl&f!U$npDTS1-SVOE=b|5<|uc6q`IH)Rg9IA3l0wM`u51?9` zESQ$uZw}pqFikY0;25WAe7A43Z?gYx-(0%l1@SVD%P@}8H%?ky;e#5rMbV5V+ncUj zL9lCoYTC@$uR%bh$=M71ydrsC${HnPh`)R`~l!dj!Wj$cfX~N5-TXCHm+?6 zr*<@LLtUI710Yqkqi~o0Xcrz+yGO{YwHaW6A87w@(hI@?;aG8m>O&Wy-XM$syZ|nV z^!#Dq=(Jsfy}PBmjr&J;J9jI0TX$=B`*X{4oAZz7cIQ^-w&&L8_5e$O4d5fd4qyea z1y}>@3oQ$63O^Rw6)jR&MQ7p4rmS3AB6fy^(g)$ZDYvIuD#K8#T5#=#kB0y3eefi?fW@ysF)zpcrpdi*4t_(s`d?=Goo~Hd z_q!$y`7Nf*3OnhqS|^tUM4Dt8A6Eb?g^yvsgSqP0xZeKxPSYKLSTwiuyR9{A4 zQeS>wL|=MeLSJrQOkY-CN?&0}Xh>>EY{=J;$dE4~i6MC*;UVCV_>i2C=#b39!I`~- z%c}?UC;8yl|ET-Eh7^Q^Sq$`z^$qn+^6X_@PCSr4y$>es%dr@2*jv7AxM+Z#Jm5V! zKb<@&2NU;YZw|QcwO_71h}?@j&^&1(xDc)g8iYAQ3K0}c-j};Mc)lmIC9^BDEweB4 zS7uLUN9Le!>+aG5W^rk8wRy1#+kDx*k-2z$06Y}l7d}|rTRd#uZ$8M}%RHby$su?U z?g#+F0wIG)74W_lpO}`mA6_}{UiXW-dVe5zhjg$weKbuu?VPtPZZB^CLgqFN0-o1< zEO${Zd&H@k?|Ux$yj#~1IZ5u^Ig9);ZGP_dNu(=x9W|do0^lKiOuI`9rQN1IrroDK zlO6~v^GbeXy_-9;&cj(B?Mm?ioSQ*u|4RQ1DtTnO8$U}s(_1gio5<(L z+6r;GV-o7^TTIAYyNXa+u`Ms(H{&_}{oAFXwOvT}xb+9lROjEKz0Cd6pDs1TT+O;I zgg&M}tfyVQ>je}7MFIv1|nmk!V7uB7iK=W<4`EEO={(XwUp8B~vNyyFnHFC#kN%*%E5!L-ik zTnhX#@Ayl#MSPiL_Jeh34r+V#B1IKwbt99>QA49jRjwApa*5=tP%~c*a->j?s=6bu zGdAz?;%}7&1G$n+<&rikqEKC2eG z8CJWsZ#(`ty*WL+IrXo>ZXHWhcgdp4MqmicHy*a=`mf@T9f`)>3zn5jxC-WvL^voj z&*Kg)B?`t*#_j~Vj3o04qk0Hg6S<67@~5jeQeL0n!hKL89Y(>FM@^L8E9wKb0*6i6 zWfOL@wk+e=*Gy3`)!3#0aHfLqm{_UAr_?iTyK`--PKm@>8dh7(@PMZE;9Z;R#c_Z1 z73ubl^~r@UoTfH-hN^>tgIX>2R&}~ZSzK$AV^bUUp)g*>luezBNo!MfZH7jTfw10- zWAT@rct&nbnWsShuc<}d&TP%Sw@be&etUXPS0i~DaU2k}dIF>CB;2WaQ@*e0D(O1T zY(Wcy1>mS_@#NHHK^TI8+0e%uy_pGzWOfpPJ$g*{P?9hxYF?5m-%GuMEuNo zW<5>P>Xw>J-_r=v6gBdhFWi~)SVeIk#FB{i1o`7Aku}qhncrv5v+8Ry{>W24@}w$9 zaxkU{l_0Vk|8!8vB^?qXFLOTK!pR&0|IMt)5UzVRfZ-i}wpAZBefLn(pC_%!sb_6AEXt{;DCS_bMYsCX zP<<49y&9~i@z|8prY^)KD}nAh?C5qjBi6iaulY2YP?&kY!WK+6G*fc#m{4fGZQp)> z6kEuAIZrB+cE7?HtVt>(bvaKigL)}IA`>t?({#VW5^OLugSa1ceUHY(%oSJVQA76& zIZj30HkYcSLjXktSxiA(q@tsnU}%T}h`S))ugLx3Z^=C&i-&y>3`|G*Gax)KwS#>N zt!FTLAqv^v0Y|u^0gvyzNZ$>=s>-DQXUzsc*Q@p0_X?>9LDS#f)`=4KTLo$ZQY^%V z&`|QE4w33}D!v|Wk8{F={hN}nL?Kl;pANX3M=sbI-cpX4mCk!JS`>9`eWU4A@1e_J^cGr^ytw?n zR?X})njMbnBpEI~jxav)Ese_bJS3Tuf^d|aIDpRsKxD+Vdg-b8oPFXe_Wvv(mR zKhkxe*Cj5Bh8RJEcc{pM?(^;sDq7L@EwlF-#BuKXJi`wgyv~tRx8*WdSHGQ2`{WrQIGFBx) z55y1Yz5i7Iuvc~c;^GxrEIW4c{kdS4Uahlj*3KREyJ)CK+o|x^9&7f5TN$eLdKY^< z(OaG%y2hB!!VZBPD@8#M0=^xS03y|5DaKxVhPJH4GM5?92cFY!E;CET_AyJ4a6er} zrmuo;&RGU)8k9z}wDok~!mC2hSWvp$RX0+*lHMD@6ybNz zA+u-DKt}M1I>j6FPVqH#@sbt?%N7;VKPX64MSuOE;FUl*z-70=n_@z%R z!FOc{zA_}bYAs76jc@`DFZnVTZ@g#Vzs+5TxVy{JY&l84ly15A2A3vaTOJn_fi2(f^kx&JJUARm>HqRy4QPna+*fmSqiU=v#6=P9 zu3r%K(-JTCQnaF$1}`NG3zPpV|Egr^?`V%jF&_OO(d{p%2JcqriL_RWv5nBhY7C5N zn9Z#nAed5#sB*E3^1LGDa8K|@{OBGx=RZb%hfeCGnc9wM*7-^t7S-uMIFTx;$!DCb z;tVLePsSsjmtHjw3k_4V8}KV(u4G>)@stmH`O%=E{RDFiLdN=XyuET6=)|RT<*|=z zFTu4z<9rqej{vsV>)@MM#>&0+N|>6S1_oGpq%QVoIv-fdcf4>7eG%FHeB70P3Jl?m z4f|@EDE9pX&IjJ`%WW2*df~<(vybReb?G9^zUQ!1fVrbkevhkJkKP^Dq``};IUZS< z67sPbPZB9_sH##u9=Cyqv%hsU+l%%eb825&NY*{oICAEs4L$D6x(P&$S(qR=8OIpO zd)>}=Q-*4&CP%!aM{t6a30_(uw{q70Wn#aXvsd(t20=u~uI9oMEcM_#XjPdvc{5%2 zDy3kN!lbH%)I4yvvzxlP)S_x(N5G4rRF41baA4`dJRMeFlk?M4u$t9Y)r?Gh>i)dX z_62|XxN(sjkVb)T?&Ld6Y)N|ahAjG2Q${l@d5n~lEt)x96}H==nI|2wD>y#jSP$lQ zlgy;OG&gdlKbyc#+RlYk4LZz%VJ1#aOm2BJLi%&M4uS3qLCk!;s;U@?$>YhiR5~GK zRjJO?rz2+$H4+U+uW!ba4pZ7PaZRb8PoH&sXQ4w`50@)ewLj_NQ)>6=j$PGh%!&3% zc!Zs`n#unqHO%FtnkzbOxID2eoRJN5(o%@pntd|qh=6YMrV)%9>D>&aL;CLq=Ynh6 z+oi}ceceS)@v}^N#;WiF(j>@zO5FN-W_`p@f$844mpmK90M`gRJF#Q&D~~1{Q2U)I zAJ0deLA!<(SBa9ZiMQLP`p#<9(^F^Pj3lL?r*3!Ts!t*&Ub6n%si5I3mE7SOBTnzO zMPjh9yHpzXipRoW1}KO`w<(4o%>58ma>IkoGWU7SFAiA$qE z>V&t+_Z@LOV?CLN0v<*aZ9Rs`cWaMBpJk*)hk)J8^a(89Yo4g4gCi}!8~N&l62)`} zM+BWHQo^H?9ILFXSAX;VH_+EvUbo1XE3>?`nN;xx4iqUkcsm~DR_d&HJJ>HhyyX@8 z8?AU0a*l=vodImQF68gT)A<+BMK6+8;?pbX49Q})}eoOSo;N;rhOy-q&0IJ>!7Y& zDk9@Pl0ogXqri?TLCvj_Cg$l@l+R2@ar=#>v-Fx-JZj}8bb6w%C2IUqXX6EY#*aN( ziNFM~inL1Il0Lg%%q9Cq-ZT>QKKN6oUp?`S>C!E;!^EsXQJuVLL|gqTo3{O{g=`d` z3eW8P%1Lm3%HQ>0N=FV5u$x!_?^9%fR=sBzmgGqXq9G=~&N466Zp>Ba# zOV5_JeGOdPE9R0n1?BbtTR5vHW6Ny9tiaS~IuRw>DJbvMCsDX6le5`AI;>wWNdIp1 z7ZqQ7&3wPmQQgu6PEHut4Mf*QMVZiaR{!mR>=Iwoe+c^sbuwab>`??+#+BWG74|UX zlcX-iURU0R(~7Alt7QCEz?>-lTOerR`j*oV5=+umO(E9QMIqJ_Phq>t{*ejv5dSJU zuoLT)sYQrlMlR&ls$`3gbUP$xP3q0*n>58h*ZAAls@0M}=tw(r(@S|1#ty7q#)Y6v z_&C63M$ffqVDU=cAz@Zi&NRHOc3%rVi!r-jlpiTf;EKFTxXRF?H=9|s`1pTcq2ysM z=7V2q;s2s6!h$#&-O+FB`g`GP{QVPm*P>-6=4U(0@BPiD2rPq(_D6Sw7Bg{X{bvU{ zV1bfa?W7J?!BtpwnUy!8?Kd~C#$tLg--T8_tp3ri6WMuXzlj+nnTiugkW56-i*dou z{FT7}%TME{~z*;Va^T*y8oM|xd*EQ%b+Lhr^>+^~1z zRr2Z*i23~9Kcv5^;w~nrx={=73G4Cx)AaqPf)|Y@z59dUao1{75-L#c5hgm0%8lM5 zvsHXmh6E?I>_dT=BmKak>qGL}9qdKFh%v^zC7~; zv&h}N0rfe4m3yo~`&+~G1( z_rmL_G66XRqRZaq3p-oxFY`f``=aONX;9alUhbf^y)e{RRuT;f>L0}n3Y@jrxcF!$ zs7Xc8|8Dv8)uA48AbY49@tY*}3-VCR%R(M*ZKR-_O^)Y8b#_U*z`<-fSDRiR|79tOsB8g&z zTBk<%=x?9^^5bskP)SCYJ9GyXw=6EL6`4L>I3SjavGJ2cg8!ok6Mf zn8!APyNiCzkjF+X+S@5-Njh#==sUS{9MQu-woo8Cq!Q_ttREOuU|?k-8iH!EED`&r znHI_xDy8>HdZ{(!uUYNMO-{o}>ArK19CzMCFqWs23Bg8qulPUtMxMy$>rHH-t>vF* zIk%XH=BPahyg)RW$WXP{Cd7qZ(~c5WQjj;hvYTB%O!$%bw-di_CoBu6Y^@R|zc#ntlDOGg7demnVZsCWm$dNcIWGXNPF?qO&rA%-(#WS60 z=g9y5J*nFhT5YJaNjT2NREK?dM)kh=fC?~*PRmjR7NxJhRw-$AVqQnq=do5?{3S{s z!vr6A#}PPG{1OPanQ|`7k(2Hk%*MZhmxSZ9mV%`{gVuk(yLTZ9d&O&sA~-g%To7u9 zv4loKZA3c|S!;Z;_z4roM~!AkL^cQ&hbAwzxny;KoW80E6@?^CLBPvF8~-_zgCXuR zRbkO}%wX&<8tx+!F@L}Jt66tsIM>);JN*R3_78m3H4b)*zmTq;*glF)c1qY(779BFqV2K8FZ9MrOsDIL z0(FlHGeY`fk0MERW86_iSYgv*m1Ksc}V`x(wk$_&BMoIf@As5cAh9#ZQ3zn5YhPX=3V ztXAQ?u0dbhq}5FUWb=ttf~8*?+1iFDL8J!w<$?)9j$%FC#KW$}d^VGpK<5S(U6` ztx2{I8Wv*~=8wI-?5yiGXX1hFE-m@Fbmu2Ar&iDFSKUYjkb!i7mK1W*Kivot{OVh~ zi;lKk1p{OJTh9w<6E2&f^1IQsp9vNK;8QiZqeso~&jicQ-}likwq$#Z68@PixZ;~Y zSXc%PuNPyM`dhS+c)QIo@+a&nEUS4Q`o;CUE@qY?oC=v~xQ%8Q@Kugl`KEZA*W+w7 z=)fWiDMO^gu5!aa(h&Ji#s0=`+`%tj2eo$7Xt`JhJN@mcs^6zBd16}MIJ&80OC{0W z&Fvx%$$H!h+2xXQXG=iDMd;Lo;ZMRhr`BcM!&-02;tXL@O zT=1RuW~wx}LpV!;NNFFYLY9h~#>pTS_5MIuq#}te{!4`ezwmIXf4$)Frz^f}K_!CW zAO*O}_Np1aDoOSPqp>W%VpHrc2|JB@G|;igkm@i4!@oT2e@wOp!C4Nx>-VTVzh(bl zb4QVM7@lEmT&O|VXggLy*u)y?f<>PzKUP7=u7PEY0=V$IKz^Yt`TsP-Z0Y9P#FMon zgU4tf7JJ{fr<#AxNT8YyzVRUYUuU0Ts2U4M5@8$TEBUHF(%U7_e-N+cmuzG=NfbN< z&JS2Fjr{M@*3exHEJKGY#Z&@gF)qScX92pO;iwGvyLdn(^ouY>B%W}T=deg}S&~C* zy&ei26m#Ijr$mFB1iT>i>Y(uOV5|Dwm+pmsWGWl1d4Wh0*EoUZ*6&xPpQ{S0H9FbG zd7`RcCNHuPA%&FMESwh@V=!ar>3LygGQE`^V}do>=g&vdpRk7{Ef{~v+CQfoIw8kf z^+y9U{if?lfeR5}@?Jo*WyB@?Qnp8SHVX^~c--$?1K57-ZF?T5pqncS{s z;r}q>$Du(l=c+FL{QShg`jL^*+F}=DB%d0W8h0H14J9PMZTNBRgrk|?AxsoslAfBI z`Ykn;3lViKwRSOuFhKZ?uoM}(a3f*LytEFc93~Kx8&en)!vI6G=xfouGzO+9S^}Ry zhsy^mC{`k5Yxec`G_hgZQmWYYgwn9EwBce#F(#BUCL%2A&jXNk$Rwo2s0?D{*8<{2 hxNr3T{*e~<(-zfq-EN6Q7=xVr1%{AQ?xh6o{{RGol+*wK literal 0 HcmV?d00001 From 142c80a4b8e13ce93f6c2eb697afeb7e6b54431e Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 13 Feb 2019 11:53:20 +0100 Subject: [PATCH 18/59] Changelog 2241 2242 2245 https://github.com/FreshRSS/FreshRSS/issues/2241 https://github.com/FreshRSS/FreshRSS/pull/2242 https://github.com/FreshRSS/FreshRSS/pull/2243 https://github.com/FreshRSS/FreshRSS/pull/2245 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index db1873ab0f6..5ef11bf493f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,11 +5,15 @@ * Bug fixing * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) + * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) * UI + * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) * Rewrite some jQuery code as native JavaScript [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) * Deployment * Docker image updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) +* I18n + * Improved Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) ## 2019-01-26 FreshRSS 1.13.1 From 2374374ba972eb4cca84d7f71b1900f806c2b914 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 13 Feb 2019 15:06:28 +0100 Subject: [PATCH 19/59] Less jQuery (#2234) * Less jQuery Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2199 * Even less jQuery + global view unread title fix * Even less jQuery * Yet even less jQuery * Even less jQuery * Reduce some events * Even less jQuery * jQuery gone from main view +Fixed English i18n * Fix feed folded view * Remove Firefox 64 workaround Remove workaround for Gecko bug 1514498 in Firefox 64, fixed in Firefox 65 * Split to extra.js Avoid loading unneeded JavaScript code for the main view. + several adjustements * Improve CSS transition fold category * Rewrite shortcuts Remove library. Much faster, shorter, one listener instead of many. Control of the shortcut context. Fix https://github.com/FreshRSS/FreshRSS/issues/2215 * Remove debug * Minor syntax * Filter out unwanted shortcut modifiers * Menu overflow fix * Typo * Fix unfolding in mobile view * Remove jQuery from category.js * Remove jQuery from Global view --- README.fr.md | 1 - README.md | 1 - app/Controllers/authController.php | 3 +- app/Controllers/indexController.php | 1 + app/Controllers/statsController.php | 1 + app/Controllers/subscriptionController.php | 3 +- app/Controllers/userController.php | 4 +- app/FreshRSS.php | 5 +- app/i18n/en/conf.php | 2 +- app/i18n/ru/conf.php | 2 +- app/i18n/tr/conf.php | 2 +- app/layout/aside_feed.phtml | 6 +- .../helpers/index/normal/entry_bottom.phtml | 2 +- app/views/index/reader.phtml | 2 +- lib/Minz/Request.php | 25 + p/scripts/category.js | 178 +- p/scripts/extra.js | 235 +++ p/scripts/global_view.js | 128 +- p/scripts/main.js | 1589 +++++++---------- p/scripts/repartition.js | 4 +- p/scripts/shortcut.js | 225 --- p/scripts/stats.js | 8 +- p/themes/base-theme/template.css | 40 +- 23 files changed, 1180 insertions(+), 1287 deletions(-) create mode 100644 p/scripts/extra.js delete mode 100644 p/scripts/shortcut.js diff --git a/README.fr.md b/README.fr.md index e40ab82965b..58647ae4a01 100644 --- a/README.fr.md +++ b/README.fr.md @@ -210,7 +210,6 @@ Tout client supportant une API de type Fever ; Sélection : * [php-http-304](https://alexandre.alapetite.fr/doc-alex/php-http-304/) * [jQuery](https://jquery.com/) * [lib_opml](https://github.com/marienfressinaud/lib_opml) -* [keyboard_shortcuts](http://www.openjs.com/scripts/events/keyboard_shortcuts/) * [flotr2](http://www.humblesoftware.com/flotr2) ## Uniquement pour certaines options ou configurations diff --git a/README.md b/README.md index a5a2af725b7..190ee5639c1 100644 --- a/README.md +++ b/README.md @@ -210,7 +210,6 @@ Supported clients are: * [php-http-304](https://alexandre.alapetite.fr/doc-alex/php-http-304/) * [jQuery](https://jquery.com/) * [lib_opml](https://github.com/marienfressinaud/lib_opml) -* [keyboard_shortcuts](http://www.openjs.com/scripts/events/keyboard_shortcuts/) * [flotr2](http://www.humblesoftware.com/flotr2) ## Only for some options or configurations diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php index 3b2d78b19e8..75d4acae0da 100644 --- a/app/Controllers/authController.php +++ b/app/Controllers/authController.php @@ -109,8 +109,7 @@ public function loginAction() { public function formLoginAction() { invalidateHttpCache(); - $file_mtime = @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js'); - Minz_View::appendScript(Minz_Url::display('/scripts/bcrypt.min.js?' . $file_mtime)); + Minz_View::appendScript(Minz_Url::display('/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js'))); $conf = Minz_Configuration::get('system'); $limits = $conf->limits; diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php index fa914ef8718..824d658155d 100755 --- a/app/Controllers/indexController.php +++ b/app/Controllers/indexController.php @@ -104,6 +104,7 @@ public function globalAction() { return; } + Minz_View::appendScript(Minz_Url::display('/scripts/extra.js?' . @filemtime(PUBLIC_PATH . '/scripts/extra.js'))); Minz_View::appendScript(Minz_Url::display('/scripts/global_view.js?' . @filemtime(PUBLIC_PATH . '/scripts/global_view.js'))); try { diff --git a/app/Controllers/statsController.php b/app/Controllers/statsController.php index acfacb8907e..1d0d9c12438 100644 --- a/app/Controllers/statsController.php +++ b/app/Controllers/statsController.php @@ -52,6 +52,7 @@ private function convertToPieSerie($data) { */ public function indexAction() { $statsDAO = FreshRSS_Factory::createStatsDAO(); + Minz_View::prependScript(Minz_Url::display('/scripts/jquery.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/jquery.min.js'))); Minz_View::appendScript(Minz_Url::display('/scripts/flotr2.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/flotr2.min.js'))); $this->view->repartition = $statsDAO->calculateEntryRepartition(); $entryCount = $statsDAO->calculateEntryCount(); diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php index 46503fc1956..62fb3d38470 100644 --- a/app/Controllers/subscriptionController.php +++ b/app/Controllers/subscriptionController.php @@ -29,8 +29,7 @@ public function firstAction() { * It displays categories and associated feeds. */ public function indexAction() { - Minz_View::appendScript(Minz_Url::display('/scripts/category.js?' . - @filemtime(PUBLIC_PATH . '/scripts/category.js'))); + Minz_View::appendScript(Minz_Url::display('/scripts/category.js?' . @filemtime(PUBLIC_PATH . '/scripts/category.js'))); Minz_View::prependTitle(_t('sub.title') . ' · '); $this->view->onlyFeedsWithError = Minz_Request::paramTernary('error'); diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 2338c8b2a5e..71172b9ef1b 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -128,9 +128,7 @@ public function updateAction() { public function profileAction() { Minz_View::prependTitle(_t('conf.profile.title') . ' · '); - Minz_View::appendScript(Minz_Url::display( - '/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js') - )); + Minz_View::appendScript(Minz_Url::display('/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js'))); if (Minz_Request::isPost()) { $passwordPlain = Minz_Request::param('newPasswordPlain', '', true); diff --git a/app/FreshRSS.php b/app/FreshRSS.php index dec446a8ea1..9371081e402 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -94,9 +94,10 @@ public static function loadStylesAndScripts() { } } //Use prepend to insert before extensions. Added in reverse order. + if (Minz_Request::controllerName() !== 'index') { + Minz_View::prependScript(Minz_Url::display('/scripts/extra.js?' . @filemtime(PUBLIC_PATH . '/scripts/extra.js'))); + } Minz_View::prependScript(Minz_Url::display('/scripts/main.js?' . @filemtime(PUBLIC_PATH . '/scripts/main.js'))); - Minz_View::prependScript(Minz_Url::display('/scripts/shortcut.js?' . @filemtime(PUBLIC_PATH . '/scripts/shortcut.js'))); - Minz_View::prependScript(Minz_Url::display('/scripts/jquery.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/jquery.min.js'))); } private static function loadNotifications() { diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index c6471426f1b..b3d4d8a5c96 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -92,7 +92,7 @@ 'auto_remove_article' => 'Hide articles after reading', 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions', 'display_articles_unfolded' => 'Show articles unfolded by default', - 'display_categories_unfolded' => 'Show categories folded by default', + 'display_categories_unfolded' => 'Show categories unfolded by default', 'hide_read_feeds' => 'Hide categories & feeds with no unread articles (does not work with “Show all articles” configuration)', 'img_with_lazyload' => 'Use "lazy load" mode to load pictures', 'jump_next' => 'jump to next unread sibling (feed or category)', diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php index 59ac480bc15..8414779640e 100644 --- a/app/i18n/ru/conf.php +++ b/app/i18n/ru/conf.php @@ -92,7 +92,7 @@ 'auto_remove_article' => 'Hide articles after reading', //TODO - Translation 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions', //TODO - Translation 'display_articles_unfolded' => 'Show articles unfolded by default', //TODO - Translation - 'display_categories_unfolded' => 'Show categories folded by default', //TODO - Translation + 'display_categories_unfolded' => 'Show categories unfolded by default', //TODO - Translation 'hide_read_feeds' => 'Hide categories & feeds with no unread article (does not work with “Show all articles” configuration)', //TODO - Translation 'img_with_lazyload' => 'Use "lazy load" mode to load pictures', //TODO - Translation 'jump_next' => 'jump to next unread sibling (feed or category)', //TODO - Translation diff --git a/app/i18n/tr/conf.php b/app/i18n/tr/conf.php index 507558487fa..6c57d39da43 100644 --- a/app/i18n/tr/conf.php +++ b/app/i18n/tr/conf.php @@ -92,7 +92,7 @@ 'auto_remove_article' => 'Okuduktan sonra makaleleri gizle', 'confirm_enabled' => '"Hepsini okundu say" eylemi için onay iste', 'display_articles_unfolded' => 'Show articles unfolded by default', - 'display_categories_unfolded' => 'Show categories folded by default', + 'display_categories_unfolded' => 'Show categories unfolded by default', 'hide_read_feeds' => 'Okunmamış makalesi olmayan kategori veya akışı gizle ("Tüm makaleleri göster" komutunda çalışmaz)', 'img_with_lazyload' => 'Resimleri yüklemek için "tembel modu" kullan', 'jump_next' => 'Bir sonraki benzer okunmamışa geç (akış veya kategori)', diff --git a/app/layout/aside_feed.phtml b/app/layout/aside_feed.phtml index 5efaa54d1b5..637acf4a435 100644 --- a/app/layout/aside_feed.phtml +++ b/app/layout/aside_feed.phtml @@ -37,13 +37,14 @@ display_categories; ?>