refactor feed edit dialog
This commit is contained in:
parent
141fb6e3a6
commit
f9c388f509
6 changed files with 88 additions and 191 deletions
|
@ -107,7 +107,7 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
|
|||
menu.addChild(new dijit.MenuItem({
|
||||
label: __("Edit feed"),
|
||||
onClick: function() {
|
||||
editFeedDlg(this.getParent().row_id);
|
||||
editFeed(this.getParent().row_id);
|
||||
}}));
|
||||
|
||||
menu.addChild(new dijit.MenuItem({
|
||||
|
|
48
functions.js
48
functions.js
|
@ -1330,7 +1330,7 @@ function has_local_storage() {
|
|||
|
||||
function catSelectOnChange(elem) {
|
||||
try {
|
||||
var value = elem[elem.selectedIndex].value;
|
||||
/* var value = elem[elem.selectedIndex].value;
|
||||
var def = elem.getAttribute('default');
|
||||
|
||||
if (value == "ADD_CAT") {
|
||||
|
@ -1341,7 +1341,7 @@ function catSelectOnChange(elem) {
|
|||
elem.selectedIndex = 0;
|
||||
|
||||
quickAddCat(elem);
|
||||
}
|
||||
} */
|
||||
|
||||
} catch (e) {
|
||||
exception_error("catSelectOnChange", e);
|
||||
|
@ -1563,3 +1563,47 @@ function getSelectedTableRowIds(id) {
|
|||
return rows;
|
||||
}
|
||||
|
||||
function editFeed(feed, event) {
|
||||
|
||||
try {
|
||||
var query = "backend.php?op=pref-feeds&subop=editfeed&id=" +
|
||||
param_escape(feed);
|
||||
|
||||
console.log(query);
|
||||
|
||||
if (dijit.byId("feedEditDlg"))
|
||||
dijit.byId("feedEditDlg").destroyRecursive();
|
||||
|
||||
dialog = new dijit.Dialog({
|
||||
id: "feedEditDlg",
|
||||
title: __("Edit Feed"),
|
||||
style: "width: 600px",
|
||||
execute: function() {
|
||||
if (this.validate()) {
|
||||
console.log(dojo.objectToQuery(this.attr('value')));
|
||||
|
||||
notify_progress("Saving data...", true);
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: dojo.objectToQuery(dialog.attr('value')),
|
||||
onComplete: function(transport) {
|
||||
dialog.hide();
|
||||
if (inPreferences()) {
|
||||
updateFeedList();
|
||||
} else {
|
||||
notify('');
|
||||
dlg_frefresh_callback(transport);
|
||||
}
|
||||
}})
|
||||
}
|
||||
},
|
||||
href: query});
|
||||
|
||||
dialog.show();
|
||||
|
||||
} catch (e) {
|
||||
exception_error("editFeed", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2998,7 +2998,7 @@
|
|||
$line["id"], htmlspecialchars($line["title"]));
|
||||
}
|
||||
|
||||
print "<option value=\"ADD_CAT\">" .__("Add category...") . "</option>";
|
||||
# print "<option value=\"ADD_CAT\">" .__("Add category...") . "</option>";
|
||||
|
||||
print "</select>";
|
||||
}
|
||||
|
|
|
@ -245,11 +245,6 @@
|
|||
}
|
||||
|
||||
if ($subop == "editfeed") {
|
||||
header("Content-Type: text/xml");
|
||||
|
||||
print "<dlg id=\"$subop\">";
|
||||
print "<title>".__('Feed Editor')."</title>";
|
||||
print "<content><![CDATA[";
|
||||
|
||||
$feed_id = db_escape_string($_REQUEST["id"]);
|
||||
|
||||
|
@ -260,28 +255,17 @@
|
|||
$title = htmlspecialchars(db_fetch_result($result,
|
||||
0, "title"));
|
||||
|
||||
$icon_file = ICONS_DIR . "/$feed_id.ico";
|
||||
|
||||
if (file_exists($icon_file) && filesize($icon_file) > 0) {
|
||||
$feed_icon = "<img width=\"16\" height=\"16\"
|
||||
src=\"" . ICONS_URL . "/$feed_id.ico\">";
|
||||
} else {
|
||||
$feed_icon = "";
|
||||
}
|
||||
|
||||
print "<form id=\"edit_feed_form\" onsubmit=\"return false\">";
|
||||
|
||||
print "<input type=\"hidden\" name=\"id\" value=\"$feed_id\">";
|
||||
print "<input type=\"hidden\" name=\"op\" value=\"pref-feeds\">";
|
||||
print "<input type=\"hidden\" name=\"subop\" value=\"editSave\">";
|
||||
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$feed_id\">";
|
||||
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-feeds\">";
|
||||
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"subop\" value=\"editSave\">";
|
||||
|
||||
print "<div class=\"dlgSec\">".__("Feed")."</div>";
|
||||
print "<div class=\"dlgSecCont\">";
|
||||
|
||||
/* Title */
|
||||
|
||||
print "<input style=\"font-size : 16px\" size=\"40\" onkeypress=\"return filterCR(event, feedEditSave)\"
|
||||
name=\"title\" value=\"$title\">";
|
||||
print "<input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\"
|
||||
style=\"font-size : 16px; width: 20em\" name=\"title\" value=\"$title\">";
|
||||
|
||||
/* Feed URL */
|
||||
|
||||
|
@ -292,7 +276,8 @@
|
|||
print "<br/>";
|
||||
|
||||
print __('URL:') . " ";
|
||||
print "<input size=\"40\" onkeypress=\"return filterCR(event, feedEditSave)\"
|
||||
print "<input dojoType=\"dijit.form.ValidationTextBox\" required=\"1\"
|
||||
regExp='^(http|https)://.*' style=\"width : 20em\"
|
||||
name=\"feed_url\" value=\"$feed_url\">";
|
||||
|
||||
/* Category */
|
||||
|
@ -305,7 +290,8 @@
|
|||
|
||||
print __('Place in category:') . " ";
|
||||
|
||||
print_feed_cat_select($link, "cat_id", $cat_id, $disabled);
|
||||
print_feed_cat_select($link, "cat_id", $cat_id,
|
||||
'dojoType="dijit.form.Select"');
|
||||
}
|
||||
|
||||
print "</div>";
|
||||
|
@ -317,14 +303,17 @@
|
|||
|
||||
$update_interval = db_fetch_result($result, 0, "update_interval");
|
||||
|
||||
print_select_hash("update_interval", $update_interval, $update_intervals);
|
||||
print_select_hash("update_interval", $update_interval, $update_intervals,
|
||||
'dojoType="dijit.form.Select"');
|
||||
|
||||
/* Update method */
|
||||
|
||||
$update_method = db_fetch_result($result, 0, "update_method");
|
||||
$update_method = db_fetch_result($result, 0, "update_method",
|
||||
'dojoType="dijit.form.Select"');
|
||||
|
||||
print " " . __('using') . " ";
|
||||
print_select_hash("update_method", $update_method, $update_methods);
|
||||
print_select_hash("update_method", $update_method, $update_methods,
|
||||
'dojoType="dijit.form.Select"');
|
||||
|
||||
$purge_interval = db_fetch_result($result, 0, "purge_interval");
|
||||
|
||||
|
@ -336,7 +325,8 @@
|
|||
|
||||
print __('Article purging:') . " ";
|
||||
|
||||
print_select_hash("purge_interval", $purge_interval, $purge_intervals);
|
||||
print_select_hash("purge_interval", $purge_interval, $purge_intervals,
|
||||
'dojoType="dijit.form.Select"');
|
||||
|
||||
} else {
|
||||
print "<input type='hidden' name='purge_interval' value='$purge_interval'>";
|
||||
|
@ -353,15 +343,14 @@
|
|||
|
||||
print "<tr><td>" . __('Login:') . "</td><td>";
|
||||
|
||||
print "<input size=\"20\" onkeypress=\"return filterCR(event, feedEditSave)\"
|
||||
print "<input dojoType=\"dijit.form.TextBox\"
|
||||
name=\"auth_login\" value=\"$auth_login\">";
|
||||
|
||||
print "</tr><tr><td>" . __("Password:") . "</td><td>";
|
||||
|
||||
$auth_pass = htmlspecialchars(db_fetch_result($result, 0, "auth_pass"));
|
||||
|
||||
print "<input size=\"20\" type=\"password\" name=\"auth_pass\"
|
||||
onkeypress=\"return filterCR(event, feedEditSave)\"
|
||||
print "<input dojoType=\"dijit.form.TextBox\" type=\"password\" name=\"auth_pass\"
|
||||
value=\"$auth_pass\">";
|
||||
|
||||
print "</td></tr></table>";
|
||||
|
@ -370,39 +359,39 @@
|
|||
print "<div class=\"dlgSec\">".__("Options")."</div>";
|
||||
print "<div class=\"dlgSecCont\">";
|
||||
|
||||
print "<div style=\"line-height : 100%\">";
|
||||
# print "<div style=\"line-height : 100%\">";
|
||||
|
||||
$private = sql_bool_to_bool(db_fetch_result($result, 0, "private"));
|
||||
|
||||
if ($private) {
|
||||
$checked = "checked";
|
||||
$checked = "checked=\"1\"";
|
||||
} else {
|
||||
$checked = "";
|
||||
}
|
||||
|
||||
print "<input type=\"checkbox\" name=\"private\" id=\"private\"
|
||||
print "<input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" name=\"private\" id=\"private\"
|
||||
$checked> <label for=\"private\">".__('Hide from Popular feeds')."</label>";
|
||||
|
||||
$rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content"));
|
||||
|
||||
if ($rtl_content) {
|
||||
$checked = "checked";
|
||||
$checked = "checked=\"1\"";
|
||||
} else {
|
||||
$checked = "";
|
||||
}
|
||||
|
||||
print "<br/><input type=\"checkbox\" id=\"rtl_content\" name=\"rtl_content\"
|
||||
print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"rtl_content\" name=\"rtl_content\"
|
||||
$checked> <label for=\"rtl_content\">".__('Right-to-left content')."</label>";
|
||||
|
||||
$include_in_digest = sql_bool_to_bool(db_fetch_result($result, 0, "include_in_digest"));
|
||||
|
||||
if ($include_in_digest) {
|
||||
$checked = "checked";
|
||||
$checked = "checked=\"1\"";
|
||||
} else {
|
||||
$checked = "";
|
||||
}
|
||||
|
||||
print "<br/><input type=\"checkbox\" id=\"include_in_digest\"
|
||||
print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"include_in_digest\"
|
||||
name=\"include_in_digest\"
|
||||
$checked> <label for=\"include_in_digest\">".__('Include in e-mail digest')."</label>";
|
||||
|
||||
|
@ -415,7 +404,7 @@
|
|||
$checked = "";
|
||||
}
|
||||
|
||||
print "<br/><input type=\"checkbox\" id=\"always_display_enclosures\"
|
||||
print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"always_display_enclosures\"
|
||||
name=\"always_display_enclosures\"
|
||||
$checked> <label for=\"always_display_enclosures\">".__('Always display image attachments')."</label>";
|
||||
|
||||
|
@ -423,21 +412,19 @@
|
|||
$cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
|
||||
|
||||
if ($cache_images) {
|
||||
$checked = "checked";
|
||||
$checked = "checked=\"1\"";
|
||||
} else {
|
||||
$checked = "";
|
||||
}
|
||||
|
||||
print "<br/><input type=\"checkbox\" id=\"cache_images\"
|
||||
print "<br/><input dojoType=\"dijit.form.CheckBox\" type=\"checkbox\" id=\"cache_images\"
|
||||
name=\"cache_images\"
|
||||
$checked> <label for=\"cache_images\">".
|
||||
__('Cache images locally (SimplePie only)')."</label>";
|
||||
|
||||
|
||||
# print "</div>";
|
||||
print "</div>";
|
||||
print "</div>";
|
||||
|
||||
print "</form>";
|
||||
|
||||
/* Icon */
|
||||
|
||||
|
@ -456,9 +443,9 @@
|
|||
<input type=\"hidden\" name=\"op\" value=\"pref-feeds\">
|
||||
<input type=\"hidden\" name=\"feed_id\" value=\"$feed_id\">
|
||||
<input type=\"hidden\" name=\"subop\" value=\"uploadicon\">
|
||||
<button onclick=\"return uploadFeedIcon();\"
|
||||
<button dojoType=\"dijit.form.Button\" onclick=\"return uploadFeedIcon();\"
|
||||
type=\"submit\">".__('Replace')."</button>
|
||||
<button onclick=\"return removeFeedIcon($feed_id);\"
|
||||
<button dojoType=\"dijit.form.Button\" onclick=\"return removeFeedIcon($feed_id);\"
|
||||
type=\"submit\">".__('Remove')."</button>
|
||||
</form>";
|
||||
|
||||
|
@ -468,15 +455,13 @@
|
|||
|
||||
print "<div class='dlgButtons'>
|
||||
<div style=\"float : left\">
|
||||
<button onclick='return unsubscribeFeed($feed_id, \"$title\")'>".
|
||||
<button dojoType=\"dijit.form.Button\" onclick='return unsubscribeFeed($feed_id, \"$title\")'>".
|
||||
__('Unsubscribe')."</button>
|
||||
</div>
|
||||
<button onclick=\"return feedEditSave()\">".__('Save')."</button>
|
||||
<button onclick=\"return feedEditCancel()\">".__('Cancel')."</button>
|
||||
<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').execute()\">".__('Save')."</button>
|
||||
<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('feedEditDlg').hide()\">".__('Cancel')."</button>
|
||||
</div>";
|
||||
|
||||
print "]]></content></dlg>";
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
64
prefs.js
64
prefs.js
|
@ -347,39 +347,6 @@ function editFilter(id, event) {
|
|||
}
|
||||
}
|
||||
|
||||
function editFeed(feed, event) {
|
||||
|
||||
try {
|
||||
|
||||
if (event && !event.ctrlKey) {
|
||||
|
||||
notify_progress("Loading, please wait...");
|
||||
|
||||
// selectTableRows('prefFeedList', 'none');
|
||||
// selectTableRowById('FEEDR-'+feed, 'FRCHK-'+feed, true);
|
||||
|
||||
var query = "?op=pref-feeds&subop=editfeed&id=" +
|
||||
param_escape(feed);
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: query,
|
||||
onComplete: function(transport) {
|
||||
infobox_callback2(transport);
|
||||
document.forms["edit_feed_form"].title.focus();
|
||||
} });
|
||||
|
||||
} else if (event.ctrlKey) {
|
||||
// var cb = $('FRCHK-' + feed);
|
||||
// cb.checked = !cb.checked;
|
||||
// toggleSelectRow(cb);
|
||||
}
|
||||
|
||||
|
||||
} catch (e) {
|
||||
exception_error("editFeed", e);
|
||||
}
|
||||
}
|
||||
|
||||
function getSelectedLabels() {
|
||||
var tree = dijit.byId("labelTree");
|
||||
var items = tree.model.getCheckedItems();
|
||||
|
@ -679,36 +646,6 @@ function removeSelectedFeedCats() {
|
|||
return false;
|
||||
}
|
||||
|
||||
function feedEditCancel() {
|
||||
closeInfoBox();
|
||||
return false;
|
||||
}
|
||||
|
||||
function feedEditSave() {
|
||||
|
||||
try {
|
||||
|
||||
// FIXME: add parameter validation
|
||||
|
||||
var query = Form.serialize("edit_feed_form");
|
||||
|
||||
notify_progress("Saving feed...");
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: query,
|
||||
onComplete: function(transport) {
|
||||
feedlist_callback2(transport);
|
||||
} });
|
||||
|
||||
closeInfoBox();
|
||||
|
||||
return false;
|
||||
|
||||
} catch (e) {
|
||||
exception_error("feedEditSave", e);
|
||||
}
|
||||
}
|
||||
|
||||
function userEditCancel() {
|
||||
closeInfoBox();
|
||||
return false;
|
||||
|
@ -1080,6 +1017,7 @@ function init() {
|
|||
dojo.require("dijit.form.Select");
|
||||
dojo.require("dijit.form.FilteringSelect");
|
||||
dojo.require("dijit.form.TextBox");
|
||||
dojo.require("dijit.form.CheckBox");
|
||||
dojo.require("dijit.form.ValidationTextBox");
|
||||
dojo.require("dijit.form.RadioButton");
|
||||
dojo.require("dijit.form.Select");
|
||||
|
|
76
tt-rss.js
76
tt-rss.js
|
@ -279,6 +279,7 @@ function init() {
|
|||
dojo.require("dijit.form.TextBox");
|
||||
dojo.require("dijit.form.ValidationTextBox");
|
||||
dojo.require("dijit.form.FilteringSelect");
|
||||
dojo.require("dijit.form.CheckBox");
|
||||
dojo.require("dijit.Toolbar");
|
||||
dojo.require("dijit.ProgressBar");
|
||||
dojo.require("dijit.Menu");
|
||||
|
@ -375,7 +376,7 @@ function quickMenuGo(opid) {
|
|||
}
|
||||
|
||||
if (opid == "qmcEditFeed") {
|
||||
editFeedDlg(getActiveFeedId());
|
||||
editFeed(getActiveFeedId());
|
||||
}
|
||||
|
||||
if (opid == "qmcRemoveFeed") {
|
||||
|
@ -530,77 +531,6 @@ function catchupFeedInGroup(id) {
|
|||
}
|
||||
}
|
||||
|
||||
function editFeedDlg(feed) {
|
||||
try {
|
||||
|
||||
if (!feed) {
|
||||
alert(__("Please select some feed first."));
|
||||
return;
|
||||
}
|
||||
|
||||
if ((feed <= 0) || activeFeedIsCat()) {
|
||||
alert(__("You can't edit this kind of feed."));
|
||||
return;
|
||||
}
|
||||
|
||||
var query = "";
|
||||
|
||||
if (feed > 0) {
|
||||
query = "?op=pref-feeds&subop=editfeed&id=" + param_escape(feed);
|
||||
} else {
|
||||
query = "?op=pref-labels&subop=edit&id=" + param_escape(-feed-11);
|
||||
}
|
||||
|
||||
disableHotkeys();
|
||||
|
||||
notify_progress("Loading, please wait...", true);
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: query,
|
||||
onComplete: function(transport) {
|
||||
infobox_callback2(transport);
|
||||
document.forms["edit_feed_form"].title.focus();
|
||||
} });
|
||||
|
||||
} catch (e) {
|
||||
exception_error("editFeedDlg", e);
|
||||
}
|
||||
}
|
||||
|
||||
/* this functions duplicate those of prefs.js feed editor, with
|
||||
some differences because there is no feedlist */
|
||||
|
||||
function feedEditCancel() {
|
||||
closeInfoBox();
|
||||
return false;
|
||||
}
|
||||
|
||||
function feedEditSave() {
|
||||
|
||||
try {
|
||||
|
||||
// FIXME: add parameter validation
|
||||
|
||||
var query = Form.serialize("edit_feed_form");
|
||||
|
||||
notify_progress("Saving feed...");
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: query,
|
||||
onComplete: function(transport) {
|
||||
dlg_frefresh_callback(transport);
|
||||
} });
|
||||
|
||||
cache_flush();
|
||||
closeInfoBox();
|
||||
|
||||
return false;
|
||||
|
||||
} catch (e) {
|
||||
exception_error("feedEditSave (main)", e);
|
||||
}
|
||||
}
|
||||
|
||||
function collapse_feedlist() {
|
||||
try {
|
||||
|
||||
|
@ -913,7 +843,7 @@ function hotkey_handler(e) {
|
|||
}
|
||||
|
||||
if (keycode == 69) { // e
|
||||
editFeedDlg(getActiveFeedId());
|
||||
editFeed(getActiveFeedId());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue