summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-08-30 13:06:58 +0400
committerAndrew Dolgov <[email protected]>2012-08-30 13:10:28 +0400
commitf9ebb32ca0a84ec5553d0494cdfc628753fcb36a (patch)
treea6b1125795ef4fdbd3e399f182bc0bc2f2379166
parent2a3d00bbf5d5b47fec3a4e4e39cabe3a19108fe2 (diff)
hide more obscure preferences under "show more" checkbox in pref-prefs,
bump schema
-rw-r--r--classes/pref/prefs.php24
-rw-r--r--include/functions.php2
-rw-r--r--js/prefs.js14
-rw-r--r--schema/ttrss_schema_mysql.sql38
-rw-r--r--schema/ttrss_schema_pgsql.sql45
-rw-r--r--schema/versions/mysql/95.sql39
-rw-r--r--schema/versions/pgsql/95.sql39
7 files changed, 167 insertions, 34 deletions
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index 576dd2f03..705b709fa 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -291,17 +291,24 @@ class Pref_Prefs extends Handler_Protected {
$profile_qpart = "profile IS NULL";
}
+ if ($_SESSION["prefs_show_advanced"])
+ $access_query = "true";
+ else
+ $access_query = "(access_level = 0 AND section_id != 3)";
+
$result = db_query($this->link, "SELECT DISTINCT
ttrss_user_prefs.pref_name,short_desc,help_text,value,type_name,
+ ttrss_prefs_sections.order_id,
section_name,def_value,section_id
FROM ttrss_prefs,ttrss_prefs_types,ttrss_prefs_sections,ttrss_user_prefs
WHERE type_id = ttrss_prefs_types.id AND
$profile_qpart AND
section_id = ttrss_prefs_sections.id AND
ttrss_user_prefs.pref_name = ttrss_prefs.pref_name AND
+ $access_query AND
short_desc != '' AND
owner_uid = ".$_SESSION["uid"]."
- ORDER BY section_id,short_desc");
+ ORDER BY ttrss_prefs_sections.order_id,short_desc");
$lnum = 0;
@@ -487,6 +494,18 @@ class Pref_Prefs extends Handler_Protected {
print "<button dojoType=\"dijit.form.Button\" onclick=\"return validatePrefsReset()\">".
__('Reset to defaults')."</button>";
+ print "&nbsp;";
+
+ $checked = $_SESSION["prefs_show_advanced"] ? "checked='1'" : "";
+
+ print "<input onclick='toggleAdvancedPrefs()'
+ id='prefs_show_advanced'
+ dojoType=\"dijit.form.CheckBox\"
+ $checked
+ type=\"checkbox\"></input>
+ <label for='prefs_show_advanced'>" .
+ __("Show additional preferences") . "</label>";
+
print '</div>'; # inner pane
print '</div>'; # border container
print "</form>";
@@ -549,5 +568,8 @@ class Pref_Prefs extends Handler_Protected {
}
}
+ function toggleAdvanced() {
+ $_SESSION["prefs_show_advanced"] = !$_SESSION["prefs_show_advanced"];
+ }
}
?>
diff --git a/include/functions.php b/include/functions.php
index 7eeafd645..ddd166f3a 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -1,6 +1,6 @@
<?php
define('EXPECTED_CONFIG_VERSION', 26);
- define('SCHEMA_VERSION', 94);
+ define('SCHEMA_VERSION', 95);
$fetch_last_error = false;
diff --git a/js/prefs.js b/js/prefs.js
index f0ed5ac03..b308d011d 100644
--- a/js/prefs.js
+++ b/js/prefs.js
@@ -2199,3 +2199,17 @@ function updateSelf() {
}
}
+function toggleAdvancedPrefs() {
+ try {
+ notify_progress("Loading, please wait...");
+
+ new Ajax.Request("backend.php", {
+ parameters: "?op=pref-prefs&method=toggleadvanced",
+ onComplete: function(transport) {
+ updatePrefsList();
+ } });
+
+ } catch (e) {
+ exception_error("toggleAdvancedPrefs", e);
+ }
+}
diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql
index 4a2726822..e5109de27 100644
--- a/schema/ttrss_schema_mysql.sql
+++ b/schema/ttrss_schema_mysql.sql
@@ -270,7 +270,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 (94);
+insert into ttrss_version values (95);
create table ttrss_enclosures (id integer primary key auto_increment,
content_url text not null,
@@ -297,11 +297,13 @@ insert into ttrss_prefs_types (id, type_name) values (2, 'string');
insert into ttrss_prefs_types (id, type_name) values (3, 'integer');
create table ttrss_prefs_sections (id integer not null primary key,
+ order_id integer not null,
section_name varchar(100) not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-insert into ttrss_prefs_sections (id, section_name) values (1, 'General');
-insert into ttrss_prefs_sections (id, section_name) values (2, 'Interface');
-insert into ttrss_prefs_sections (id, section_name) values (3, 'Advanced');
+insert into ttrss_prefs_sections (id, section_name, order_id) values (1, 'General', 0);
+insert into ttrss_prefs_sections (id, section_name, order_id) values (2, 'Interface', 1);
+insert into ttrss_prefs_sections (id, section_name, order_id) values (3, 'Advanced', 3);
+insert into ttrss_prefs_sections (id, section_name, order_id) values (4, 'Digest', 2);
create table ttrss_prefs (pref_name varchar(250) not null primary key,
type_id integer not null,
@@ -317,7 +319,7 @@ create table ttrss_prefs (pref_name varchar(250) not null primary key,
create index ttrss_prefs_pref_name_idx on ttrss_prefs(pref_name);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_OLD_DAYS', 3, '60', 'Purge old posts after this number of days (0 - disables)',1);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_OLD_DAYS', 3, '60', 'Purge articles after this number of days (0 - disables)',1);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DEFAULT_UPDATE_INTERVAL', 3, '30', 'Default interval between feed updates',1);
@@ -342,11 +344,11 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('REVERSE_HEADLINES', 1, 'false', 'Reverse headline order (oldest first)',2);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_ENABLE', 1, 'false', 'Enable e-mail digest',1, 'This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_ENABLE', 1, 'false', 'Enable e-mail digest',4, 'This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 'Confirm marking feed as read',3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 'Confirm marking feed as read',2);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('CDM_AUTO_CATCHUP', 1, 'false', 'Automatically mark articles as read',3, 'This option enables marking articles as read automatically while you scroll article list.');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('CDM_AUTO_CATCHUP', 1, 'false', 'Automatically mark articles as read',2, 'This option enables marking articles as read automatically while you scroll article list.');
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_MODE', 2, 'adaptive', '', 1);
@@ -360,13 +362,13 @@ 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) values('FRESH_ARTICLE_MAX_AGE', 3, '24', 'Maximum age of fresh articles (in hours)',2);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DIGEST_CATCHUP', 1, 'false', 'Mark articles in e-mail digest as read',1);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DIGEST_CATCHUP', 1, 'false', 'Mark articles in e-mail digest as read',4);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CDM_EXPANDED', 1, 'true', 'Automatically expand articles in combined mode',3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CDM_EXPANDED', 1, 'true', 'Automatically expand articles in combined mode',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_UNREAD_ARTICLES', 1, 'true', 'Purge unread articles',3);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 'Show special feeds when hiding read feeds',3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 'Show special feeds when hiding read feeds',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('VFEED_GROUP_BY_FEED', 1, 'false', 'Group headlines in virtual feeds',2, 'When this option is enabled, headlines in Special feeds and Labels are grouped by feeds');
@@ -374,7 +376,7 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_ORDER_BY', 2, 'default', '', 1);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_API_ACCESS', 1, 'false', 'Enable external API', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_API_ACCESS', 1, 'false', 'Enable external API', 1);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_SPECIAL', 1, 'false', '', 1);
@@ -398,18 +400,26 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('USER_STYLESHEET', 2, '', 'Customize stylesheet', 2, 'Customize CSS stylesheet to your liking');
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',3, 'Use feed-specified date to sort headlines instead of local import date.');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',2, 'Use feed-specified date to sort headlines instead of local import date.');
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_BROWSE_CATS', 1, 'true', '', 1);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SSL_CERT_SERIAL', 2, '', 'Login with an SSL certificate',3, 'Click to register your SSL client certificate with tt-rss');
-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,help_text) values('DIGEST_PREFERRED_TIME', 2, '00:00', 'Try to send digests around specified time', 4, '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);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
+update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
+ 'SORT_HEADLINES_BY_FEED_DATE',
+ 'VFEED_GROUP_BY_FEED',
+ 'FRESH_ARTICLE_MAX_AGE',
+ 'CDM_EXPANDED',
+ 'SHOW_CONTENT_PREVIEW',
+ 'HIDE_READ_SHOWS_SPECIAL');
+
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 208005cf6..778e2111a 100644
--- a/schema/ttrss_schema_pgsql.sql
+++ b/schema/ttrss_schema_pgsql.sql
@@ -232,7 +232,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 (94);
+insert into ttrss_version values (95);
create table ttrss_enclosures (id serial not null primary key,
content_url text not null,
@@ -255,23 +255,25 @@ insert into ttrss_prefs_types (id, type_name) values (2, 'string');
insert into ttrss_prefs_types (id, type_name) values (3, 'integer');
create table ttrss_prefs_sections (id integer not null primary key,
+ order_id integer not null,
section_name varchar(100) not null);
-insert into ttrss_prefs_sections (id, section_name) values (1, 'General');
-insert into ttrss_prefs_sections (id, section_name) values (2, 'Interface');
-insert into ttrss_prefs_sections (id, section_name) values (3, 'Advanced');
+insert into ttrss_prefs_sections (id, section_name, order_id) values (1, 'General', 0);
+insert into ttrss_prefs_sections (id, section_name, order_id) values (2, 'Interface', 1);
+insert into ttrss_prefs_sections (id, section_name, order_id) values (3, 'Advanced', 3);
+insert into ttrss_prefs_sections (id, section_name, order_id) values (4, 'Digest', 2);
create table ttrss_prefs (pref_name varchar(250) not null primary key,
type_id integer not null references ttrss_prefs_types(id),
- section_id integer not null references ttrss_prefs_sections(id) default 1,
+ section_id integer not null default 1 references ttrss_prefs_sections(id),
short_desc text not null,
- help_text text not null default '',
+ help_text varchar(250) not null default '',
access_level integer not null default 0,
def_value text not null);
create index ttrss_prefs_pref_name_idx on ttrss_prefs(pref_name);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_OLD_DAYS', 3, '60', 'Purge old posts after this number of days (0 - disables)',1);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_OLD_DAYS', 3, '60', 'Purge articles after this number of days (0 - disables)',1);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DEFAULT_UPDATE_INTERVAL', 3, '30', 'Default interval between feed updates',1);
@@ -284,7 +286,6 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('SHOW_CONTENT_PREVIEW', 1, 'true', 'Show content preview in headlines list',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('SHORT_DATE_FORMAT', 2, 'M d, G:i', 'Short date format',3);
-
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('LONG_DATE_FORMAT', 2, 'D, M d Y - G:i', 'Long date format',3);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('COMBINED_DISPLAY_MODE', 1, 'false', 'Combined feed display',2, 'Display expanded list of feed articles, instead of separate displays for headlines and article content');
@@ -297,11 +298,11 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('REVERSE_HEADLINES', 1, 'false', 'Reverse headline order (oldest first)',2);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_ENABLE', 1, 'false', 'Enable e-mail digest',1, 'This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('DIGEST_ENABLE', 1, 'false', 'Enable e-mail digest',4, 'This option enables sending daily digest of new (and unread) headlines on your configured e-mail address');
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 'Confirm marking feed as read',3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CONFIRM_FEED_CATCHUP', 1, 'true', 'Confirm marking feed as read',2);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('CDM_AUTO_CATCHUP', 1, 'false', 'Automatically mark articles as read',3, 'This option enables marking articles as read automatically while you scroll article list.');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('CDM_AUTO_CATCHUP', 1, 'false', 'Automatically mark articles as read',2, 'This option enables marking articles as read automatically while you scroll article list.');
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_MODE', 2, 'adaptive', '', 1);
@@ -315,13 +316,13 @@ 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) values('FRESH_ARTICLE_MAX_AGE', 3, '24', 'Maximum age of fresh articles (in hours)',2);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DIGEST_CATCHUP', 1, 'false', 'Mark articles in e-mail digest as read',1);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('DIGEST_CATCHUP', 1, 'false', 'Mark articles in e-mail digest as read',4);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CDM_EXPANDED', 1, 'true', 'Automatically expand articles in combined mode',3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('CDM_EXPANDED', 1, 'true', 'Automatically expand articles in combined mode',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('PURGE_UNREAD_ARTICLES', 1, 'true', 'Purge unread articles',3);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 'Show special feeds when hiding read feeds',3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('HIDE_READ_SHOWS_SPECIAL', 1, 'true', 'Show special feeds when hiding read feeds',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('VFEED_GROUP_BY_FEED', 1, 'false', 'Group headlines in virtual feeds',2, 'When this option is enabled, headlines in Special feeds and Labels are grouped by feeds');
@@ -329,7 +330,7 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_VIEW_ORDER_BY', 2, 'default', '', 1);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_API_ACCESS', 1, 'false', 'Enable external API', 3);
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_API_ACCESS', 1, 'false', 'Enable external API', 1);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_COLLAPSED_SPECIAL', 1, 'false', '', 1);
@@ -351,20 +352,28 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) valu
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('USER_TIMEZONE', 2, 'UTC', 'User timezone', 1);
-insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',3, 'Use feed-specified date to sort headlines instead of local import date.');
-
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('USER_STYLESHEET', 2, '', 'Customize stylesheet', 2, 'Customize CSS stylesheet to your liking');
+insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SORT_HEADLINES_BY_FEED_DATE', 1, 'true', 'Sort headlines by feed date',2, 'Use feed-specified date to sort headlines instead of local import date.');
+
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_MOBILE_BROWSE_CATS', 1, 'true', '', 1);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('SSL_CERT_SERIAL', 2, '', 'Login with an SSL certificate',3, 'Click to register your SSL client certificate with tt-rss');
-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,help_text) values('DIGEST_PREFERRED_TIME', 2, '00:00', 'Try to send digests around specified time', 4, '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);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('_DEFAULT_INCLUDE_CHILDREN', 1, 'false', '', 1);
+update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
+ 'SORT_HEADLINES_BY_FEED_DATE',
+ 'VFEED_GROUP_BY_FEED',
+ 'FRESH_ARTICLE_MAX_AGE',
+ 'CDM_EXPANDED',
+ 'SHOW_CONTENT_PREVIEW',
+ 'HIDE_READ_SHOWS_SPECIAL');
+
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/95.sql b/schema/versions/mysql/95.sql
new file mode 100644
index 000000000..234acd495
--- /dev/null
+++ b/schema/versions/mysql/95.sql
@@ -0,0 +1,39 @@
+begin;
+
+update ttrss_prefs set short_desc = 'Purge articles after this number of days (0 - disables)'
+where pref_name = 'PURGE_OLD_DAYS';
+
+update ttrss_prefs set section_id = 1 where pref_name = 'ENABLE_API_ACCESS';
+
+update ttrss_prefs set section_id = 2 where pref_name = 'CONFIRM_FEED_CATCHUP';
+update ttrss_prefs set section_id = 2 where pref_name = 'CDM_EXPANDED';
+update ttrss_prefs set section_id = 2 where pref_name = 'CDM_AUTO_CATCHUP';
+update ttrss_prefs set section_id = 2 where pref_name = 'SORT_HEADLINES_BY_FEED_DATE';
+update ttrss_prefs set section_id = 2 where pref_name = 'HIDE_READ_SHOWS_SPECIAL';
+
+insert into ttrss_prefs_sections (id, section_name) values (4, 'Digest');
+
+update ttrss_prefs set section_id = 4 where pref_name = 'DIGEST_ENABLE';
+update ttrss_prefs set section_id = 4 where pref_name = 'DIGEST_PREFERRED_TIME';
+update ttrss_prefs set section_id = 4 where pref_name = 'DIGEST_CATCHUP';
+
+alter table ttrss_prefs_sections add column order_id integer;
+update ttrss_prefs_sections set order_id = 0;
+alter table ttrss_prefs_sections change order_id order_id int not null;
+
+update ttrss_prefs_sections set order_id = 0 where id = 1;
+update ttrss_prefs_sections set order_id = 1 where id = 2;
+update ttrss_prefs_sections set order_id = 2 where id = 4;
+update ttrss_prefs_sections set order_id = 3 where id = 3;
+
+update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
+ 'SORT_HEADLINES_BY_FEED_DATE',
+ 'VFEED_GROUP_BY_FEED',
+ 'FRESH_ARTICLE_MAX_AGE',
+ 'CDM_EXPANDED',
+ 'SHOW_CONTENT_PREVIEW',
+ 'HIDE_READ_SHOWS_SPECIAL');
+
+update ttrss_version set schema_version = 95;
+
+commit;
diff --git a/schema/versions/pgsql/95.sql b/schema/versions/pgsql/95.sql
new file mode 100644
index 000000000..014463a85
--- /dev/null
+++ b/schema/versions/pgsql/95.sql
@@ -0,0 +1,39 @@
+begin;
+
+update ttrss_prefs set short_desc = 'Purge articles after this number of days (0 - disables)'
+where pref_name = 'PURGE_OLD_DAYS';
+
+update ttrss_prefs set section_id = 1 where pref_name = 'ENABLE_API_ACCESS';
+
+update ttrss_prefs set section_id = 2 where pref_name = 'CONFIRM_FEED_CATCHUP';
+update ttrss_prefs set section_id = 2 where pref_name = 'CDM_EXPANDED';
+update ttrss_prefs set section_id = 2 where pref_name = 'CDM_AUTO_CATCHUP';
+update ttrss_prefs set section_id = 2 where pref_name = 'SORT_HEADLINES_BY_FEED_DATE';
+update ttrss_prefs set section_id = 2 where pref_name = 'HIDE_READ_SHOWS_SPECIAL';
+
+insert into ttrss_prefs_sections (id, section_name) values (4, 'Digest');
+
+update ttrss_prefs set section_id = 4 where pref_name = 'DIGEST_ENABLE';
+update ttrss_prefs set section_id = 4 where pref_name = 'DIGEST_PREFERRED_TIME';
+update ttrss_prefs set section_id = 4 where pref_name = 'DIGEST_CATCHUP';
+
+alter table ttrss_prefs_sections add column order_id integer;
+update ttrss_prefs_sections set order_id = 0;
+alter table ttrss_prefs_sections alter column order_id set not null;
+
+update ttrss_prefs_sections set order_id = 0 where id = 1;
+update ttrss_prefs_sections set order_id = 1 where id = 2;
+update ttrss_prefs_sections set order_id = 2 where id = 4;
+update ttrss_prefs_sections set order_id = 3 where id = 3;
+
+update ttrss_prefs set access_level = 1 where pref_name in ('ON_CATCHUP_SHOW_NEXT_FEED',
+ 'SORT_HEADLINES_BY_FEED_DATE',
+ 'VFEED_GROUP_BY_FEED',
+ 'FRESH_ARTICLE_MAX_AGE',
+ 'CDM_EXPANDED',
+ 'SHOW_CONTENT_PREVIEW',
+ 'HIDE_READ_SHOWS_SPECIAL');
+
+update ttrss_version set schema_version = 95;
+
+commit;