feed browser: allow subscribing by url for linked feeds
This commit is contained in:
parent
572d66c6ee
commit
6f907113ef
3 changed files with 82 additions and 13 deletions
36
functions.js
36
functions.js
|
@ -1430,7 +1430,7 @@ function feedBrowser() {
|
||||||
id: "feedBrowserDlg",
|
id: "feedBrowserDlg",
|
||||||
title: __("More Feeds"),
|
title: __("More Feeds"),
|
||||||
style: "width: 600px",
|
style: "width: 600px",
|
||||||
getSelectedFeeds: function() {
|
getSelectedFeedIds: function() {
|
||||||
var list = $$("#browseFeedList li[id*=FBROW]");
|
var list = $$("#browseFeedList li[id*=FBROW]");
|
||||||
var selected = new Array();
|
var selected = new Array();
|
||||||
|
|
||||||
|
@ -1444,26 +1444,48 @@ function feedBrowser() {
|
||||||
|
|
||||||
return selected;
|
return selected;
|
||||||
},
|
},
|
||||||
|
getSelectedFeeds: function() {
|
||||||
|
var list = $$("#browseFeedList li.Selected");
|
||||||
|
var selected = new Array();
|
||||||
|
|
||||||
|
list.each(function(child) {
|
||||||
|
var title = child.getElementsBySelector("span.fb_feedTitle")[0].innerHTML;
|
||||||
|
var url = child.getElementsBySelector("a.fb_feedUrl")[0].href;
|
||||||
|
|
||||||
|
selected.push([title,url]);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return selected;
|
||||||
|
},
|
||||||
|
|
||||||
subscribe: function() {
|
subscribe: function() {
|
||||||
var selected = this.getSelectedFeeds();
|
|
||||||
var mode = this.attr('value').mode;
|
var mode = this.attr('value').mode;
|
||||||
|
var selected = [];
|
||||||
|
|
||||||
|
if (mode == "1")
|
||||||
|
selected = this.getSelectedFeeds();
|
||||||
|
else
|
||||||
|
selected = this.getSelectedFeedIds();
|
||||||
|
|
||||||
if (selected.length > 0) {
|
if (selected.length > 0) {
|
||||||
dijit.byId("feedBrowserDlg").hide();
|
dijit.byId("feedBrowserDlg").hide();
|
||||||
|
|
||||||
notify_progress("Loading, please wait...", true);
|
notify_progress("Loading, please wait...", true);
|
||||||
|
|
||||||
var query = "?op=rpc&subop=massSubscribe&ids="+
|
// we use dojo.toJson instead of JSON.stringify because
|
||||||
param_escape(selected.toString()) + "&mode=" + param_escape(mode);
|
// it somehow escapes everything TWICE, at least in Chrome 9
|
||||||
|
|
||||||
|
var query = "?op=rpc&subop=massSubscribe&payload="+
|
||||||
|
param_escape(dojo.toJson(selected)) + "&mode=" + param_escape(mode);
|
||||||
|
|
||||||
console.log(query);
|
console.log(query);
|
||||||
|
|
||||||
new Ajax.Request("backend.php", {
|
new Ajax.Request("backend.php", {
|
||||||
parameters: query,
|
parameters: query,
|
||||||
onComplete: function(transport) {
|
onComplete: function(transport) {
|
||||||
if (inPreferences()) {
|
notify('');
|
||||||
updateFeedList();
|
updateFeedList();
|
||||||
}
|
|
||||||
} });
|
} });
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -514,9 +514,53 @@
|
||||||
// Silent
|
// Silent
|
||||||
if ($subop == "massSubscribe") {
|
if ($subop == "massSubscribe") {
|
||||||
|
|
||||||
$ids = split(",", db_escape_string($_REQUEST["ids"]));
|
$payload = json_decode($_REQUEST["payload"], false);
|
||||||
$mode = $_REQUEST["mode"];
|
$mode = $_REQUEST["mode"];
|
||||||
|
|
||||||
|
if (!$payload || !is_array($payload)) return;
|
||||||
|
|
||||||
|
if ($mode == 1) {
|
||||||
|
foreach ($payload as $feed) {
|
||||||
|
|
||||||
|
$title = db_escape_string($feed[0]);
|
||||||
|
$feed_url = db_escape_string($feed[1]);
|
||||||
|
|
||||||
|
$result = db_query($link, "SELECT id FROM ttrss_feeds WHERE
|
||||||
|
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
if (db_num_rows($result) == 0) {
|
||||||
|
$result = db_query($link, "INSERT INTO ttrss_feeds
|
||||||
|
(owner_uid,feed_url,title,cat_id,site_url)
|
||||||
|
VALUES ('".$_SESSION["uid"]."',
|
||||||
|
'$feed_url', '$title', NULL, '')");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if ($mode == 2) {
|
||||||
|
// feed archive
|
||||||
|
foreach ($payload as $id) {
|
||||||
|
$result = db_query($link, "SELECT * FROM ttrss_archived_feeds
|
||||||
|
WHERE id = '$id' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
if (db_num_rows($result) != 0) {
|
||||||
|
$site_url = db_escape_string(db_fetch_result($result, 0, "site_url"));
|
||||||
|
$feed_url = db_escape_string(db_fetch_result($result, 0, "feed_url"));
|
||||||
|
$title = db_escape_string(db_fetch_result($result, 0, "title"));
|
||||||
|
|
||||||
|
$result = db_query($link, "SELECT id FROM ttrss_feeds WHERE
|
||||||
|
feed_url = '$feed_url' AND owner_uid = " . $_SESSION["uid"]);
|
||||||
|
|
||||||
|
if (db_num_rows($result) == 0) {
|
||||||
|
$result = db_query($link, "INSERT INTO ttrss_feeds
|
||||||
|
(owner_uid,feed_url,title,cat_id,site_url)
|
||||||
|
VALUES ('$id','".$_SESSION["uid"]."',
|
||||||
|
'$feed_url', '$title', NULL, '$site_url')");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* $ids = split(",", db_escape_string($_REQUEST["ids"]));
|
||||||
|
|
||||||
$subscribed = array();
|
$subscribed = array();
|
||||||
|
|
||||||
foreach ($ids as $id) {
|
foreach ($ids as $id) {
|
||||||
|
@ -551,7 +595,7 @@
|
||||||
}
|
}
|
||||||
array_push($subscribed, $title_orig);
|
array_push($subscribed, $title_orig);
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1607,13 +1607,16 @@
|
||||||
$site_url = "";
|
$site_url = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
$feed_url = "<a target=\"_blank\" href=\"$feed_url\"><img
|
$feed_url = "<a class=\"fb_feedUrl\" target=\"_blank\"
|
||||||
|
href=\"$feed_url\"><img
|
||||||
style='border-width : 0px; vertical-align : middle'
|
style='border-width : 0px; vertical-align : middle'
|
||||||
src='images/feed-icon-12x12.png'></a>";
|
src='images/feed-icon-12x12.png'></a>";
|
||||||
|
|
||||||
$rv .= "<li title=\"".htmlspecialchars($details["site_url"])."\"
|
$rv .= "<li title=\"".htmlspecialchars($details["site_url"])."\">
|
||||||
id=\"FBROW-".$details["id"]."\">$check_box".
|
$check_box".
|
||||||
"$feed_icon $feed_url " . htmlspecialchars($line["title"]) .
|
"$feed_icon $feed_url " .
|
||||||
|
"<span class=\"fb_feedTitle\">".htmlspecialchars($line["title"]).
|
||||||
|
"</span>".
|
||||||
" <span class='subscribers'>($subscribers)</span>
|
" <span class='subscribers'>($subscribers)</span>
|
||||||
$site_url</li>";
|
$site_url</li>";
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue