diff --git a/classes/pref_feeds.php b/classes/pref_feeds.php
index ec594522c..a091b735b 100644
--- a/classes/pref_feeds.php
+++ b/classes/pref_feeds.php
@@ -45,6 +45,7 @@ class Pref_Feeds extends Protected_Handler {
$root['type'] = 'category';
if (get_pref($this->link, 'ENABLE_FEED_CATS')) {
+ $show_empty_cats = get_pref($this->link, '_PREFS_SHOW_EMPTY_CATS');
$result = db_query($this->link, "SELECT id, title FROM ttrss_feed_categories
WHERE owner_uid = " . $_SESSION["uid"] . " ORDER BY order_id, title");
@@ -80,7 +81,7 @@ class Pref_Feeds extends Protected_Handler {
$cat['param'] = T_sprintf('(%d feeds)', count($cat['items']));
- if (count($cat['items']) > 0)
+ if (count($cat['items']) > 0 || $show_empty_cats)
array_push($root['items'], $cat);
$root['param'] += count($cat['items']);
@@ -118,7 +119,7 @@ class Pref_Feeds extends Protected_Handler {
$cat['param'] = T_sprintf('(%d feeds)', count($cat['items']));
- if (count($cat['items']) > 0)
+ if (count($cat['items']) > 0 || $show_empty_cats)
array_push($root['items'], $cat);
$root['param'] += count($cat['items']);
@@ -170,6 +171,11 @@ class Pref_Feeds extends Protected_Handler {
return;
}
+ function togglehiddenfeedcats() {
+ set_pref($this->link, '_PREFS_SHOW_EMPTY_CATS',
+ (get_pref($this->link, '_PREFS_SHOW_EMPTY_CATS') ? 'false' : 'true'));
+ }
+
function savefeedorder() {
$data = json_decode($_POST['payload'], true);
@@ -1328,6 +1334,8 @@ class Pref_Feeds extends Protected_Handler {
print "
";
print "
".__('Edit categories')."
";
+ print "
".__('(Un)hide empty categories')."
";
print "
".__('Reset sort order')."
";
print "
";
diff --git a/include/sanity_check.php b/include/sanity_check.php
index 3de1593f3..5c631574d 100644
--- a/include/sanity_check.php
+++ b/include/sanity_check.php
@@ -6,7 +6,7 @@
} else {
define('EXPECTED_CONFIG_VERSION', 25);
- define('SCHEMA_VERSION', 89);
+ define('SCHEMA_VERSION', 90);
require_once "config.php";
require_once "sanity_config.php";
diff --git a/js/prefs.js b/js/prefs.js
index a151cbedf..4342f6170 100644
--- a/js/prefs.js
+++ b/js/prefs.js
@@ -1635,6 +1635,21 @@ function resetCatOrder() {
}
}
+function toggleHiddenFeedCats() {
+ try {
+ notify_progress("Loading, please wait...");
+
+ new Ajax.Request("backend.php", {
+ parameters: "?op=pref-feeds&method=togglehiddenfeedcats",
+ onComplete: function(transport) {
+ updateFeedList();
+ } });
+
+ } catch (e) {
+ exception_error("toggleHiddenFeedCats");
+ }
+}
+
function editCat(id, item, event) {
try {
var new_name = prompt(__('Rename category to:'), item.name);
diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql
index 096587bec..769922cff 100644
--- a/schema/ttrss_schema_mysql.sql
+++ b/schema/ttrss_schema_mysql.sql
@@ -260,7 +260,7 @@ create table ttrss_tags (id integer primary key auto_increment,
create table ttrss_version (schema_version int not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-insert into ttrss_version values (89);
+insert into ttrss_version values (90);
create table ttrss_enclosures (id integer primary key auto_increment,
content_url text not null,
@@ -394,6 +394,8 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_PREFERRED_TIME', 2, '00:00', 'Try to send digests around specified time', 1, 'Uses UTC timezone');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', '', 1);
+
create table ttrss_user_prefs (
owner_uid integer not null,
pref_name varchar(250),
diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql
index f2b760b1d..eddc5e8f0 100644
--- a/schema/ttrss_schema_pgsql.sql
+++ b/schema/ttrss_schema_pgsql.sql
@@ -229,7 +229,7 @@ create index ttrss_tags_post_int_id_idx on ttrss_tags(post_int_id);
create table ttrss_version (schema_version int not null);
-insert into ttrss_version values (89);
+insert into ttrss_version values (90);
create table ttrss_enclosures (id serial not null primary key,
content_url text not null,
@@ -356,6 +356,8 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_PREFERRED_TIME', 2, '00:00', 'Try to send digests around specified time', 1, 'Uses UTC timezone');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', '', 1);
+
create table ttrss_user_prefs (
owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
pref_name varchar(250) not null references ttrss_prefs(pref_name) ON DELETE CASCADE,
diff --git a/schema/versions/mysql/90.sql b/schema/versions/mysql/90.sql
new file mode 100644
index 000000000..b7935535e
--- /dev/null
+++ b/schema/versions/mysql/90.sql
@@ -0,0 +1,7 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', '', 1);
+
+update ttrss_version set schema_version = 90;
+
+commit;
diff --git a/schema/versions/pgsql/90.sql b/schema/versions/pgsql/90.sql
new file mode 100644
index 000000000..b7935535e
--- /dev/null
+++ b/schema/versions/pgsql/90.sql
@@ -0,0 +1,7 @@
+begin;
+
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_PREFS_SHOW_EMPTY_CATS', 1, 'false', '', 1);
+
+update ttrss_version set schema_version = 90;
+
+commit;