diff --git a/feedlist.js b/feedlist.js
index 954215fe8..53fc4c6e4 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -176,6 +176,11 @@ function feedlist_init() {
correctPNG();
}
+ if (getActiveFeedId()) {
+ debug("some feed is open on feedlist refresh, reloading");
+ setTimeout("viewCurrentFeed()", 100);
+ }
+
} catch (e) {
exception_error("feedlist/init", e);
}
diff --git a/tt-rss.js b/tt-rss.js
index bf673174f..472c90a6b 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -453,6 +453,10 @@ function quickMenuGo(opid) {
displayDlg("quickAddFeed");
return;
}
+
+ if (opid == "qmcEditFeed") {
+ editFeedDlg(getActiveFeedId());
+ }
if (opid == "qmcRemoveFeed") {
var actid = getActiveFeedId();
@@ -596,4 +600,57 @@ function userSwitch() {
window.location = "tt-rss.php?swu=" + user;
}
+function editFeedDlg(feed) {
+
+ if (!feed) {
+ alert("Please select some feed first.");
+ return;
+ }
+
+ if (xmlhttp_ready(xmlhttp)) {
+ xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editfeed&id=" +
+ param_escape(feed), true);
+ xmlhttp.onreadystatechange=infobox_callback;
+ xmlhttp.send(null);
+ } else {
+ printLockingError();
+ }
+}
+
+/* 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 {
+
+ if (!xmlhttp_ready(xmlhttp)) {
+ printLockingError();
+ return
+ }
+
+ // FIXME: add parameter validation
+
+ var query = Form.serialize("edit_feed_form");
+
+ notify("Saving feed...");
+
+ xmlhttp.open("POST", "backend.php", true);
+ xmlhttp.onreadystatechange=dlg_frefresh_callback;
+ xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+ xmlhttp.send(query);
+
+ closeInfoBox();
+
+ return false;
+
+ } catch (e) {
+ exception_error("feedEditSave (main)", e);
+ }
+}
diff --git a/tt-rss.php b/tt-rss.php
index 8531c4ca1..5ad9c0045 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -134,6 +134,7 @@ window.onload = init;
+