misc code cleanup, allow ctrl-key selection in prefs

This commit is contained in:
Andrew Dolgov 2010-11-11 18:59:21 +03:00
parent b0d32d324c
commit a998dbef95
6 changed files with 98 additions and 135 deletions

View File

@ -80,8 +80,8 @@
WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title"); WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
print __('Select:')." print __('Select:')."
<a href=\"javascript:selectPrefRows('fcat', true)\">".__('All')."</a>, <a href=\"#\" onclick=\"selectPrefRows('fcat', true)\">".__('All')."</a>,
<a href=\"javascript:selectPrefRows('fcat', false)\">".__('None')."</a>"; <a href=\"#\" onclick=\"selectPrefRows('fcat', false)\">".__('None')."</a>";
print "<div class=\"prefFeedCatHolder\">"; print "<div class=\"prefFeedCatHolder\">";
@ -93,7 +93,7 @@
print "<tr class=\"odd\" id=\"FCATR-0\">"; print "<tr class=\"odd\" id=\"FCATR-0\">";
print "<td width='5%' align='center'><input print "<td width='5%' align='center'><input
onclick='toggleSelectPrefRow(this, \"fcat\");' onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"FCCHK-0\"></td>"; type=\"checkbox\" id=\"FCCHK-0\"></td>";
if (!$_SESSION["profile"]) { if (!$_SESSION["profile"]) {
@ -121,7 +121,7 @@
$edit_title = htmlspecialchars($line["title"]); $edit_title = htmlspecialchars($line["title"]);
print "<td width='5%' align='center'><input print "<td width='5%' align='center'><input
onclick='toggleSelectPrefRow(this, \"fcat\");' onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"FCCHK-$cat_id\"></td>"; type=\"checkbox\" id=\"FCCHK-$cat_id\"></td>";
if ($_SESSION["profile"] == $line["id"]) { if ($_SESSION["profile"] == $line["id"]) {

View File

@ -981,7 +981,7 @@
<input id=\"fadd_cat\" <input id=\"fadd_cat\"
onkeypress=\"return filterCR(event, addFeedCat)\" onkeypress=\"return filterCR(event, addFeedCat)\"
size=\"40\"> size=\"40\">
<button onclick=\"javascript:addFeedCat()\">". <button onclick=\"addFeedCat()\">".
__('Create category')."</button></div>"; __('Create category')."</button></div>";
$result = db_query($link, "SELECT title,id FROM ttrss_feed_categories $result = db_query($link, "SELECT title,id FROM ttrss_feed_categories
@ -993,8 +993,8 @@
if (db_num_rows($result) != 0) { if (db_num_rows($result) != 0) {
print __('Select:')." print __('Select:')."
<a href=\"javascript:selectPrefRows('fcat', true)\">".__('All')."</a>, <a href=\"#\" onclick=\"selectPrefRows('fcat', true)\">".__('All')."</a>,
<a href=\"javascript:selectPrefRows('fcat', false)\">".__('None')."</a>"; <a href=\"#\" onclick=\"selectPrefRows('fcat', false)\">".__('None')."</a>";
print "<div class=\"prefFeedCatHolder\">"; print "<div class=\"prefFeedCatHolder\">";
@ -1017,7 +1017,7 @@
$edit_title = htmlspecialchars($line["title"]); $edit_title = htmlspecialchars($line["title"]);
print "<td width='5%' align='center'><input print "<td width='5%' align='center'><input
onclick='toggleSelectPrefRow(this, \"fcat\");' onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"FCCHK-$cat_id\"></td>"; type=\"checkbox\" id=\"FCCHK-$cat_id\"></td>";
print "<td><span id=\"FCATT-$cat_id\">" . print "<td><span id=\"FCATT-$cat_id\">" .
@ -1078,10 +1078,10 @@
print "<div style='float : right'> print "<div style='float : right'>
<input id=\"feed_search\" size=\"20\" type=\"search\" <input id=\"feed_search\" size=\"20\" type=\"search\"
onfocus=\"javascript:disableHotkeys();\" onfocus=\"disableHotkeys();\"
onblur=\"javascript:enableHotkeys();\" onblur=\"enableHotkeys();\"
onchange=\"javascript:updateFeedList()\" value=\"$feed_search\"> onchange=\"updateFeedList()\" value=\"$feed_search\">
<button onclick=\"javascript:updateFeedList()\">". <button onclick=\"updateFeedList()\">".
__('Search')."</button> __('Search')."</button>
</div>"; </div>";
@ -1093,11 +1093,11 @@
if (get_pref($link, 'ENABLE_FEED_CATS')) { if (get_pref($link, 'ENABLE_FEED_CATS')) {
print "<button onclick=\"javascript:editFeedCats()\">". print "<button onclick=\"editFeedCats()\">".
__('Edit categories')."</button> "; __('Edit categories')."</button> ";
} }
print "<button onclick=\"javascript:removeSelectedFeeds()\">" print "<button onclick=\"removeSelectedFeeds()\">"
.__('Unsubscribe')."</button> "; .__('Unsubscribe')."</button> ";
if (defined('_ENABLE_FEED_DEBUGGING')) { if (defined('_ENABLE_FEED_DEBUGGING')) {
@ -1199,8 +1199,8 @@
$show_last_article_checked><label $show_last_article_checked><label
for='show_last_article_times'>".__('Show last article times')."</label></div>". for='show_last_article_times'>".__('Show last article times')."</label></div>".
__('Select:')." __('Select:')."
<a href=\"javascript:selectPrefRows('feed', true)\">".__('All')."</a>, <a href=\"#\" onclick=\"selectPrefRows('feed', true)\">".__('All')."</a>,
<a href=\"javascript:selectPrefRows('feed', false)\">".__('None')."</a> <a href=\"#\" onclick=\"selectPrefRows('feed', false)\">".__('None')."</a>
</td</tr>"; </td</tr>";
if (!get_pref($link, 'ENABLE_FEED_CATS')) { if (!get_pref($link, 'ENABLE_FEED_CATS')) {
@ -1209,13 +1209,13 @@
print "<td width='3%'>&nbsp;</td>"; print "<td width='3%'>&nbsp;</td>";
print "<td width='60%'><a href=\"javascript:updateFeedList('title')\">".__('Title')."</a></td>"; print "<td width='60%'><a href=\"#\" onclick=\"updateFeedList('title')\">".__('Title')."</a></td>";
if ($show_last_article_info) { if ($show_last_article_info) {
print "<td width='20%' align='right'><a href=\"javascript:updateFeedList('last_article')\">".__('Last&nbsp;Article')."</a></td>"; print "<td width='20%' align='right'><a href=\"#\" onclick=\"updateFeedList('last_article')\">".__('Last&nbsp;Article')."</a></td>";
} }
print "<td width='20%' align='right'><a href=\"javascript:updateFeedList('last_updated')\">".__('Updated')."</a></td>"; print "<td width='20%' align='right'><a href=\"#\" onclick=\"updateFeedList('last_updated')\">".__('Updated')."</a></td>";
} }
$lnum = 0; $lnum = 0;
@ -1260,15 +1260,15 @@
print "<td width='3%'>&nbsp;</td>"; print "<td width='3%'>&nbsp;</td>";
print "<td width='60%'><a href=\"javascript:updateFeedList('title')\">".__('Title')."</a></td>"; print "<td width='60%'><a href=\"#\" onclick=\"updateFeedList('title')\">".__('Title')."</a></td>";
if ($show_last_article_info) { if ($show_last_article_info) {
print "<td width='20%' align='right'> print "<td width='20%' align='right'>
<a href=\"javascript:updateFeedList('last_article')\">".__('Last&nbsp;Article')."</a></td>"; <a href=\"#\" onclick=\"updateFeedList('last_article')\">".__('Last&nbsp;Article')."</a></td>";
} }
print "<td width='20%' align='right'> print "<td width='20%' align='right'>
<a href=\"javascript:updateFeedList('last_updated')\">".__('Updated')."</a></td>"; <a href=\"#\" onclick=\"updateFeedList('last_updated')\">".__('Updated')."</a></td>";
$cur_cat_id = $cat_id; $cur_cat_id = $cat_id;
} }
@ -1286,10 +1286,10 @@
$feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">"; $feed_icon = "<img class=\"tinyFeedIcon\" src=\"images/blank_icon.gif\">";
} }
print "<td class='feedSelect'><input onclick='toggleSelectPrefRow(this, \"feed\");' print "<td class='feedSelect'><input onclick='toggleSelecRow(this);'
type=\"checkbox\" id=\"FRCHK-".$line["id"]."\"></td>"; type=\"checkbox\" id=\"FRCHK-".$line["id"]."\"></td>";
$onclick = "onclick='editFeed($feed_id)' title='".__('Click to edit')."'"; $onclick = "onclick='editFeed($feed_id, event)' title='".__('Click to edit')."'";
print "<td $onclick class='feedIcon'>$feed_icon</td>"; print "<td $onclick class='feedIcon'>$feed_icon</td>";

View File

@ -377,8 +377,8 @@
print "<tr><td class=\"selectPrompt\" colspan=\"8\"> print "<tr><td class=\"selectPrompt\" colspan=\"8\">
".__('Select:')." ".__('Select:')."
<a href=\"javascript:selectPrefRows('filter', true)\">".__('All')."</a>, <a href=\"#\" onclick=\"selectPrefRows('filter', true)\">".__('All')."</a>,
<a href=\"javascript:selectPrefRows('filter', false)\">".__('None')."</a> <a href=\"#\" onclick=\"selectPrefRows('filter', false)\">".__('None')."</a>
</td</tr>"; </td</tr>";
$lnum = 0; $lnum = 0;
@ -405,10 +405,10 @@
print "<tr class=\"title\"> print "<tr class=\"title\">
<td align='center' width=\"5%\">&nbsp;</td> <td align='center' width=\"5%\">&nbsp;</td>
<td width=\"20%\"><a href=\"javascript:updateFilterList('reg_exp')\">".__('Match')."</a></td> <td width=\"20%\"><a href=\"#\" onclick=\"updateFilterList('reg_exp')\">".__('Match')."</a></td>
<td width=\"\"><a href=\"javascript:updateFilterList('feed_title')\">".__('Feed')."</a></td> <td width=\"\"><a href=\"#\" onclick=\"updateFilterList('feed_title')\">".__('Feed')."</a></td>
<td width=\"20%\"><a href=\"javascript:updateFilterList('filter_type')\">".__('Field')."</a></td> <td width=\"20%\"><a href=\"#\" onclick=\"updateFilterList('filter_type')\">".__('Field')."</a></td>
<td width=\"20%\"><a href=\"javascript:updateFilterList('action_param')\">".__('Params')."</a></td>"; <td width=\"20%\"><a href=\"#\" onclick=\"updateFilterList('action_param')\">".__('Params')."</a></td>";
$lnum = 0; $lnum = 0;
} }
@ -436,7 +436,7 @@
$line["feed_title"] = htmlspecialchars($line["feed_title"]); $line["feed_title"] = htmlspecialchars($line["feed_title"]);
print "<td align='center'><input onclick='toggleSelectPrefRow(this, \"filter\");' print "<td align='center'><input onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"FICHK-".$line["id"]."\"></td>"; type=\"checkbox\" id=\"FICHK-".$line["id"]."\"></td>";
$filter_params = array( $filter_params = array(
@ -486,7 +486,7 @@
$line["action_param"] . "</span>"; $line["action_param"] . "</span>";
} }
$onclick = "onclick='editFilter($filter_id)' title='".__('Click to edit')."'"; $onclick = "onclick='editFilter($filter_id, event)' title='".__('Click to edit')."'";
$inverse_label = ""; $inverse_label = "";

View File

@ -208,8 +208,8 @@
print "<tr><td class=\"selectPrompt\" colspan=\"8\"> print "<tr><td class=\"selectPrompt\" colspan=\"8\">
".__('Select:')." ".__('Select:')."
<a href=\"javascript:selectPrefRows('label', true)\">".__('All')."</a>, <a href=\"#\" onclick=\"selectPrefRows('label', true)\">".__('All')."</a>,
<a href=\"javascript:selectPrefRows('label', false)\">".__('None')."</a> <a href=\"#\" onclick=\"selectPrefRows('label', false)\">".__('None')."</a>
</td</tr>"; </td</tr>";
/* print "<tr class=\"title\"> /* print "<tr class=\"title\">
@ -238,7 +238,7 @@
if (!$bg_color) $bg_color = ""; if (!$bg_color) $bg_color = "";
print "<td width='5%' align='center'><input print "<td width='5%' align='center'><input
onclick='toggleSelectPrefRow(this, \"label\");' onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"LICHK-".$line["id"]."\"></td>"; type=\"checkbox\" id=\"LICHK-".$line["id"]."\"></td>";
$id = $line['id']; $id = $line['id'];

View File

@ -417,16 +417,16 @@
print "<tr><td class=\"selectPrompt\" colspan=\"8\"> print "<tr><td class=\"selectPrompt\" colspan=\"8\">
".__('Select:')." ".__('Select:')."
<a href=\"javascript:selectPrefRows('user', true)\">".__('All')."</a>, <a href=\"#\" onclick=\"selectPrefRows('user', true)\">".__('All')."</a>,
<a href=\"javascript:selectPrefRows('user', false)\">".__('None')."</a> <a href=\"#\" onclick=\"selectPrefRows('user', false)\">".__('None')."</a>
</td</tr>"; </td</tr>";
print "<tr class=\"title\"> print "<tr class=\"title\">
<td align='center' width=\"5%\">&nbsp;</td> <td align='center' width=\"5%\">&nbsp;</td>
<td width=''><a href=\"javascript:updateUsersList('login')\">".__('Login')."</a></td> <td width=''><a href=\"#\" onclick=\"updateUsersList('login')\">".__('Login')."</a></td>
<td width='20%'><a href=\"javascript:updateUsersList('access_level')\">".__('Access Level')."</a></td> <td width='20%'><a href=\"#\" onclick=\"updateUsersList('access_level')\">".__('Access Level')."</a></td>
<td width='20%'><a href=\"javascript:updateUsersList('created')\">".__('Registered')."</a></td> <td width='20%'><a href=\"#\" onclick=\"updateUsersList('created')\">".__('Registered')."</a></td>
<td width='20%'><a href=\"javascript:updateUsersList('last_login')\">".__('Last login')."</a></td></tr>"; <td width='20%'><a href=\"#\" onclick=\"updateUsersList('last_login')\">".__('Last login')."</a></td></tr>";
$lnum = 0; $lnum = 0;
@ -451,10 +451,10 @@
$line["created"] = make_local_datetime($link, $line["created"], false); $line["created"] = make_local_datetime($link, $line["created"], false);
$line["last_login"] = make_local_datetime($link, $line["last_login"], false); $line["last_login"] = make_local_datetime($link, $line["last_login"], false);
print "<td align='center'><input onclick='toggleSelectPrefRow(this, \"user\");' print "<td align='center'><input onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"UMCHK-$uid\"></td>"; type=\"checkbox\" id=\"UMCHK-$uid\"></td>";
$onclick = "onclick='editUser($uid)' title='".__('Click to edit')."'"; $onclick = "onclick='editUser($uid, event)' title='".__('Click to edit')."'";
print "<td $onclick>" . $line["login"] . "</td>"; print "<td $onclick>" . $line["login"] . "</td>";

147
prefs.js
View File

@ -14,6 +14,8 @@ var mouse_is_down = false;
var db = false; var db = false;
var store = false; var store = false;
var seq = "";
function feedlist_callback2(transport) { function feedlist_callback2(transport) {
try { try {
@ -325,10 +327,12 @@ function addUser() {
} }
} }
function editUser(id) { function editUser(id, event) {
try { try {
if (!event || !event.ctrlKey) {
disableHotkeys(); disableHotkeys();
notify_progress("Loading, please wait..."); notify_progress("Loading, please wait...");
@ -346,58 +350,81 @@ function editUser(id) {
document.forms['user_edit_form'].login.focus(); document.forms['user_edit_form'].login.focus();
} }); } });
} else if (event.ctrlKey) {
var cb = $('UMCHK-' + id);
cb.checked = !cb.checked;
toggleSelectRow(cb);
}
} catch (e) { } catch (e) {
exception_error("editUser", e); exception_error("editUser", e);
} }
} }
function editFilter(id) { function editFilter(id, event) {
try { try {
disableHotkeys(); if (!event || !event.ctrlKey) {
notify_progress("Loading, please wait..."); disableHotkeys();
selectTableRowsByIdPrefix('prefFilterList', 'FILRR-', 'FICHK-', false); notify_progress("Loading, please wait...");
selectTableRowById('FILRR-'+id, 'FICHK-'+id, true);
var query = "?op=pref-filters&subop=edit&id=" + selectTableRowsByIdPrefix('prefFilterList', 'FILRR-', 'FICHK-', false);
param_escape(id); selectTableRowById('FILRR-'+id, 'FICHK-'+id, true);
var query = "?op=pref-filters&subop=edit&id=" +
param_escape(id);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
infobox_callback2(transport);
document.forms['filter_edit_form'].reg_exp.focus();
} });
} else if (event.ctrlKey) {
var cb = $('FICHK-' + id);
cb.checked = !cb.checked;
toggleSelectRow(cb);
}
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
infobox_callback2(transport);
document.forms['filter_edit_form'].reg_exp.focus();
} });
} catch (e) { } catch (e) {
exception_error("editFilter", e); exception_error("editFilter", e);
} }
} }
function editFeed(feed) { function editFeed(feed, event) {
try { try {
disableHotkeys(); if (event && !event.ctrlKey) {
disableHotkeys();
notify_progress("Loading, please wait..."); notify_progress("Loading, please wait...");
// clean selection from all rows & select row being edited // clean selection from all rows & select row being edited
selectTableRowsByIdPrefix('prefFeedList', 'FEEDR-', 'FRCHK-', false); selectTableRowsByIdPrefix('prefFeedList', 'FEEDR-', 'FRCHK-', false);
selectTableRowById('FEEDR-'+feed, 'FRCHK-'+feed, true); selectTableRowById('FEEDR-'+feed, 'FRCHK-'+feed, true);
var query = "?op=pref-feeds&subop=editfeed&id=" + var query = "?op=pref-feeds&subop=editfeed&id=" +
param_escape(feed); param_escape(feed);
new Ajax.Request("backend.php", { new Ajax.Request("backend.php", {
parameters: query, parameters: query,
onComplete: function(transport) { onComplete: function(transport) {
infobox_callback2(transport); infobox_callback2(transport);
document.forms["edit_feed_form"].title.focus(); document.forms["edit_feed_form"].title.focus();
} }); } });
} else if (event.ctrlKey) {
var cb = $('FRCHK-' + feed);
cb.checked = !cb.checked;
toggleSelectRow(cb);
}
} catch (e) { } catch (e) {
exception_error("editFeed", e); exception_error("editFeed", e);
@ -1263,39 +1290,6 @@ function selectPrefRows(kind, select) {
} }
function toggleSelectPrefRow(sender, kind) {
toggleSelectRow(sender);
if (kind) {
var opbarid = false;
var nsel = -1;
if (kind == "feed") {
opbarid = "feedOpToolbar";
nsel = getSelectedFeeds();
} else if (kind == "fcat") {
opbarid = "catOpToolbar";
nsel = getSelectedFeedCats();
} else if (kind == "filter") {
opbarid = "filterOpToolbar";
nsel = getSelectedFilters();
} else if (kind == "label") {
opbarid = "labelOpToolbar";
nsel = getSelectedLabels();
} else if (kind == "user") {
opbarid = "userOpToolbar";
nsel = getSelectedUsers();
}
}
}
function toggleSelectFBListRow(sender) {
toggleSelectListRow(sender);
}
var seq = "";
function pref_hotkey_handler(e) { function pref_hotkey_handler(e) {
try { try {
@ -1794,37 +1788,6 @@ function removeFilter(id, title) {
return false; return false;
} }
/*function unsubscribeFeed(id, title) {
try {
var msg = __("Unsubscribe from %s?").replace("%s", title);
var ok = confirm(msg);
if (ok) {
closeInfoBox();
notify_progress("Removing feed...");
var query = "?op=pref-feeds&subop=remove&ids="+
param_escape(id);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
feedlist_callback2(transport);
} });
}
} catch (e) {
exception_error("unsubscribeFeed", e);
}
return false;
} */
function feedsEditSave() { function feedsEditSave() {
try { try {