diff options
author | Andrew Dolgov <[email protected]> | 2010-11-24 19:23:24 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2010-11-24 19:23:24 +0300 |
commit | 88e4e5979c505cdbb494c2624b7a4e09c8145217 (patch) | |
tree | 3bc816f3e2087b462c9028108ceb9c32af32ac09 | |
parent | dcb38ced56c33463bb55f266b2d586308ff12b2f (diff) |
rework user CSS support (bump schema)
-rw-r--r-- | functions.php | 11 | ||||
-rw-r--r-- | modules/popup-dialog.php | 24 | ||||
-rw-r--r-- | modules/pref-prefs.php | 6 | ||||
-rw-r--r-- | prefs.js | 31 | ||||
-rw-r--r-- | prefs.php | 6 | ||||
-rw-r--r-- | sanity_check.php | 2 | ||||
-rw-r--r-- | schema/ttrss_schema_mysql.sql | 6 | ||||
-rw-r--r-- | schema/ttrss_schema_pgsql.sql | 4 | ||||
-rw-r--r-- | schema/versions/mysql/77.sql | 7 | ||||
-rw-r--r-- | schema/versions/pgsql/77.sql | 7 | ||||
-rw-r--r-- | tt-rss.css | 5 | ||||
-rw-r--r-- | tt-rss.php | 6 |
12 files changed, 98 insertions, 17 deletions
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 "<style type=\"text/css\">"; + print $value; + print "</style>"; + } + + } + ?> 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. <a target=\"_blank\" class=\"visibleLink\" href=\"%s\">This file</a> can be used as a baseline.", "tt-rss.css"); + + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">"; + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"subop\" value=\"setpref\">"; + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"key\" value=\"USER_STYLESHEET\">"; + + print "<p><textarea dojoType=\"dijit.form.SimpleTextarea\" + style='font-size : 12px; width : 100%; height: 200px;' + placeHolder='body#ttrssMain { font-size : 14px; };' + name='value'>$value</textarea>"; + + print "<div class='dlgButtons'>"; + print "<button dojoType=\"dijit.form.Button\" + onclick=\"dijit.byId('cssEditDlg').execute()\">".__('Save')."</button> "; + print "<button dojoType=\"dijit.form.Button\" + onclick=\"dijit.byId('cssEditDlg').hide()\">".__('Cancel')."</button>"; + print "</div>"; + + } + print "</dlg>"; } ?> 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 "<button dojoType=\"dijit.form.Button\" + onclick=\"customizeCSS()\">" . __('Customize') . "</button>"; } else if ($pref_name == "DEFAULT_UPDATE_INTERVAL") { @@ -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); + } +} @@ -28,12 +28,8 @@ <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/> <?php print_theme_includes($link) ?> + <?php print_user_stylesheet($link) ?> - <?php $user_css_url = get_pref($link, 'USER_STYLESHEET_URL'); ?> - <?php if ($user_css_url) { ?> - <link type="text/css" href="<?php echo $user_css_url ?>"/> - <?php } ?> - <link rel="shortcut icon" type="image/png" href="images/favicon.png"/> <script type="text/javascript" src="lib/prototype.js"></script> 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 "<b>Fatal Error</b>: 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 @@ <link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/> <?php print_theme_includes($link) ?> - - <?php $user_css_url = get_pref($link, 'USER_STYLESHEET_URL'); ?> - <?php if ($user_css_url) { ?> - <link rel="stylesheet" type="text/css" href="<?php echo $user_css_url ?>"/> - <?php } ?> + <?php print_user_stylesheet($link) ?> <link rel="shortcut icon" type="image/png" href="images/favicon.png"/> |