diff --git a/functions.php b/functions.php index 5e567af03..28f2cc892 100644 --- a/functions.php +++ b/functions.php @@ -7040,4 +7040,15 @@ } } + function print_user_stylesheet($link) { + $value = get_pref($link, 'USER_STYLESHEET'); + + if ($value) { + print ""; + } + + } + ?> diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php index 52b1f94f6..394ee16a0 100644 --- a/modules/popup-dialog.php +++ b/modules/popup-dialog.php @@ -785,6 +785,30 @@ } + if ($id == "customizeCSS") { + + $value = get_pref($link, "USER_STYLESHEET"); + + print T_sprintf("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here. This file can be used as a baseline.", "tt-rss.css"); + + print ""; + print ""; + print ""; + + print "

"; + + print "

"; + print " "; + print ""; + print "
"; + + } + print ""; } ?> diff --git a/modules/pref-prefs.php b/modules/pref-prefs.php index 5bc180de4..359359733 100644 --- a/modules/pref-prefs.php +++ b/modules/pref-prefs.php @@ -16,7 +16,7 @@ $prefs_blacklist = array("HIDE_FEEDLIST", "SYNC_COUNTERS", "ENABLE_LABELS", "ENABLE_SEARCH_TOOLBAR", "HIDE_READ_FEEDS", "ENABLE_FEED_ICONS", "ENABLE_OFFLINE_READING", "EXTENDED_FEEDLIST", "FEEDS_SORT_BY_UNREAD", - "OPEN_LINKS_IN_NEW_WINDOW"); + "OPEN_LINKS_IN_NEW_WINDOW", "USER_STYLESHEET_URL"); $profile_blacklist = array("ALLOW_DUPLICATE_POSTS", "PURGE_OLD_DAYS", "PURGE_UNREAD_ARTICLES", "DIGEST_ENABLE", "DIGEST_CATCHUP", @@ -419,6 +419,10 @@ $timezones = explode("\n", file_get_contents("lib/timezones.txt")); print_select($pref_name, $value, $timezones, 'dojoType="dijit.form.FilteringSelect"'); + } else if ($pref_name == "USER_STYLESHEET") { + + print ""; } else if ($pref_name == "DEFAULT_UPDATE_INTERVAL") { diff --git a/prefs.js b/prefs.js index f83ff0d92..ea2bf09d3 100644 --- a/prefs.js +++ b/prefs.js @@ -926,6 +926,7 @@ function init() { dojo.require("dijit.InlineEditBox"); dojo.require("dijit.ColorPalette"); dojo.require("dijit.ProgressBar"); + dojo.require("dijit.form.SimpleTextarea"); dojo.registerModulePath("lib", ".."); dojo.registerModulePath("fox", "../.."); @@ -1719,3 +1720,33 @@ function clearTwitterCredentials() { exception_error("clearTwitterCredentials", e); } } + +function customizeCSS() { + try { + var query = "backend.php?op=dlg&id=customizeCSS"; + + if (dijit.byId("cssEditDlg")) + dijit.byId("cssEditDlg").destroyRecursive(); + + dialog = new dijit.Dialog({ + id: "cssEditDlg", + title: __("Customize stylesheet"), + style: "width: 600px", + execute: function() { + notify_progress('Saving data...', true); + new Ajax.Request("backend.php", { + parameters: dojo.objectToQuery(this.attr('value')), + onComplete: function(transport) { + notify(''); + window.location.reload(); + } }); + + }, + href: query}); + + dialog.show(); + + } catch (e) { + exception_error("customizeCSS", e); + } +} diff --git a/prefs.php b/prefs.php index 972e577ca..891b9c8aa 100644 --- a/prefs.php +++ b/prefs.php @@ -28,12 +28,8 @@ + - - - - - diff --git a/sanity_check.php b/sanity_check.php index 1651ceec0..628499d17 100644 --- a/sanity_check.php +++ b/sanity_check.php @@ -2,7 +2,7 @@ require_once "functions.php"; define('EXPECTED_CONFIG_VERSION', 20); - define('SCHEMA_VERSION', 76); + define('SCHEMA_VERSION', 77); if (!file_exists("config.php")) { print "Fatal Error: You forgot to copy diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql index e64df5a90..cf0cbb5fa 100644 --- a/schema/ttrss_schema_mysql.sql +++ b/schema/ttrss_schema_mysql.sql @@ -258,7 +258,7 @@ create table ttrss_tags (id integer primary key auto_increment, create table ttrss_version (schema_version int not null) TYPE=InnoDB DEFAULT CHARSET=UTF8; -insert into ttrss_version values (76); +insert into ttrss_version values (77); create table ttrss_enclosures (id integer primary key auto_increment, content_url text not null, @@ -419,13 +419,15 @@ 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('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.'); create table ttrss_user_prefs ( owner_uid integer not null, pref_name varchar(250), - value text not null, + value longtext not null, profile integer, index (profile), foreign key (profile) references ttrss_settings_profiles(id) ON DELETE CASCADE, diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql index fbbcab05b..b7be21d8e 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 (76); +insert into ttrss_version values (77); create table ttrss_enclosures (id serial not null primary key, content_url text not null, @@ -385,6 +385,8 @@ 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('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'); + 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/77.sql b/schema/versions/mysql/77.sql new file mode 100644 index 000000000..944f31d84 --- /dev/null +++ b/schema/versions/mysql/77.sql @@ -0,0 +1,7 @@ +begin; + +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'); + +update ttrss_version set schema_version = 77; + +commit; diff --git a/schema/versions/pgsql/77.sql b/schema/versions/pgsql/77.sql new file mode 100644 index 000000000..944f31d84 --- /dev/null +++ b/schema/versions/pgsql/77.sql @@ -0,0 +1,7 @@ +begin; + +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'); + +update ttrss_version set schema_version = 77; + +commit; diff --git a/tt-rss.css b/tt-rss.css index e5184d73e..4e767efb8 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -306,13 +306,13 @@ input.editbox { /* preferences */ -table.prefPrefsList tr:hover td.prefValue { +/* table.prefPrefsList tr:hover td.prefValue { color : #88b0f0; } table.prefPrefsList tr:hover td.prefValue input { color : #88b0f0; -} +} */ table.prefPrefsList h3 { margin-top : 0px; @@ -1664,3 +1664,4 @@ a.bookmarklet { top : -1px; } + diff --git a/tt-rss.php b/tt-rss.php index f51648fef..b3dcd6a8d 100644 --- a/tt-rss.php +++ b/tt-rss.php @@ -31,11 +31,7 @@ - - - - - +