generated feed: use client dialog
This commit is contained in:
parent
1a680d4eae
commit
4182018cb7
|
@ -128,41 +128,4 @@ class Dlg extends Handler_Protected {
|
|||
print "</footer>";
|
||||
|
||||
}
|
||||
|
||||
function generatedFeed() {
|
||||
|
||||
$this->params = explode(":", $this->param, 3);
|
||||
$feed_id = $this->params[0];
|
||||
$is_cat = (bool) $this->params[1];
|
||||
|
||||
$key = Feeds::get_feed_access_key($feed_id, $is_cat);
|
||||
|
||||
$url_path = htmlspecialchars($this->params[2]) . "&key=" . $key;
|
||||
|
||||
$feed_title = Feeds::getFeedTitle($feed_id, $is_cat);
|
||||
|
||||
print "<header>".T_sprintf("%s can be accessed via the following secret URL:", $feed_title)."</header>";
|
||||
|
||||
print "<section>";
|
||||
print "<div class='panel text-center'>";
|
||||
print "<a id='gen_feed_url' href='$url_path' target='_blank'>$url_path</a>";
|
||||
print "</div>";
|
||||
print "</section>";
|
||||
|
||||
print "<footer>";
|
||||
|
||||
print "<button dojoType='dijit.form.Button' style='float : left' class='alt-info' onclick='window.open(\"https://tt-rss.org/wiki/GeneratedFeeds\")'>
|
||||
<i class='material-icons'>help</i> ".__("More info...")."</button>";
|
||||
|
||||
print "<button dojoType='dijit.form.Button' onclick=\"return CommonDialogs.genUrlChangeKey('$feed_id', '$is_cat')\">".
|
||||
__('Generate new URL')."</button> ";
|
||||
|
||||
print "<button dojoType='dijit.form.Button' onclick=\"return CommonDialogs.closeInfoBox()\">".
|
||||
__('Close this window')."</button>";
|
||||
|
||||
print "</footer>";
|
||||
|
||||
//return;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ class Feeds extends Handler_Protected {
|
|||
|
||||
$reply .= "<a href=\"#\"
|
||||
title=\"".__("Show as feed")."\"
|
||||
onclick=\"App.displayDlg('".__("Show as feed")."','generatedFeed', '$feed_id:$is_cat:$rss_link')\">
|
||||
onclick='CommonDialogs.generatedFeed(\"$feed_id\", \"$is_cat\", \"$rss_link\")'>
|
||||
<i class='icon-syndicate material-icons'>rss_feed</i></a>";
|
||||
|
||||
$reply .= "<span id='feed_title'>";
|
||||
|
|
|
@ -1391,10 +1391,10 @@ class Pref_Feeds extends Handler_Protected {
|
|||
|
||||
print "<h3>" . __('Published articles can be subscribed by anyone who knows the following URL:') . "</h3>";
|
||||
|
||||
$rss_url = '-2::' . htmlspecialchars(get_self_url_prefix() .
|
||||
$rss_url = htmlspecialchars(get_self_url_prefix() .
|
||||
"/public.php?op=rss&id=-2&view-mode=all_articles");;
|
||||
|
||||
print "<button dojoType='dijit.form.Button' class='alt-primary' onclick=\"return App.displayDlg('".__("Show as feed")."','generatedFeed', '$rss_url')\">".
|
||||
print "<button dojoType='dijit.form.Button' class='alt-primary' onclick='CommonDialogs.generatedFeed('-2', false, \"$rss_url\")'>".
|
||||
__('Display URL')."</button> ";
|
||||
|
||||
print "<button class=\"alt-danger\" dojoType=\"dijit.form.Button\" onclick=\"return Helpers.clearFeedAccessKeys()\">".
|
||||
|
@ -1714,23 +1714,26 @@ class Pref_Feeds extends Handler_Protected {
|
|||
$this->update_feed_access_key('OPML:Publish',
|
||||
false, $_SESSION["uid"]);
|
||||
|
||||
$new_link = OPML::opml_publish_url();
|
||||
|
||||
print json_encode(["link" => $new_link]);
|
||||
print json_encode(["link" => OPML::opml_publish_url()]);
|
||||
}
|
||||
|
||||
function regenFeedKey() {
|
||||
$feed_id = clean($_REQUEST['id']);
|
||||
$is_cat = clean($_REQUEST['is_cat']);
|
||||
|
||||
$new_key = $this->update_feed_access_key($feed_id, $is_cat);
|
||||
$new_key = $this->update_feed_access_key($feed_id, $is_cat, $_SESSION["uid"]);
|
||||
|
||||
print json_encode(["link" => $new_key]);
|
||||
}
|
||||
|
||||
function getFeedKey() {
|
||||
$feed_id = clean($_REQUEST['id']);
|
||||
$is_cat = clean($_REQUEST['is_cat']);
|
||||
|
||||
private function update_feed_access_key($feed_id, $is_cat, $owner_uid = false) {
|
||||
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
|
||||
print json_encode(["link" => Feeds::get_feed_access_key($feed_id, $is_cat, $_SESSION["uid"])]);
|
||||
}
|
||||
|
||||
private function update_feed_access_key($feed_id, $is_cat, $owner_uid) {
|
||||
|
||||
// clear old value and generate new one
|
||||
$sth = $this->pdo->prepare("DELETE FROM ttrss_access_keys
|
||||
|
|
|
@ -370,7 +370,7 @@ const CommonDialogs = {
|
|||
dijit.byId("publicOPMLDlg").destroyRecursive();
|
||||
|
||||
const dialog = new dijit.Dialog({
|
||||
title: "Public OPML URL",
|
||||
title: __("Public OPML URL"),
|
||||
id: 'publicOPMLDlg',
|
||||
style: "width: 600px",
|
||||
onCancel: function () {
|
||||
|
@ -386,7 +386,7 @@ const CommonDialogs = {
|
|||
<header>${__("Your Public OPML URL is:")}</header>
|
||||
<section>
|
||||
<div class='panel text-center'>
|
||||
<a id='pub_opml_url' href='$url_path' target='_blank'>${reply.link}</a>
|
||||
<a id='pub_opml_url' href="${App.escapeHtml(reply.link)}" target='_blank'>${reply.link}</a>
|
||||
</div>
|
||||
</section>
|
||||
<footer class='text-center'>
|
||||
|
@ -396,7 +396,63 @@ const CommonDialogs = {
|
|||
<button dojoType='dijit.form.Button' type='submit' class='alt-primary'>
|
||||
${__('Close this window')}
|
||||
</button>
|
||||
</footer>
|
||||
</footer>
|
||||
`
|
||||
});
|
||||
|
||||
dialog.show();
|
||||
|
||||
Notify.close();
|
||||
|
||||
} catch (e) {
|
||||
this.Error.report(e);
|
||||
}
|
||||
});
|
||||
},
|
||||
generatedFeed: function(feed, is_cat, rss_url) {
|
||||
|
||||
Notify.progress("Loading, please wait...", true);
|
||||
|
||||
xhrJson("backend.php", {op: "pref-feeds", method: "getFeedKey", id: feed, is_cat: is_cat}, (reply) => {
|
||||
try {
|
||||
if (dijit.byId("genFeedDlg"))
|
||||
dijit.byId("genFeedDlg").destroyRecursive();
|
||||
|
||||
const feed_title = Feeds.getName(feed, is_cat);
|
||||
|
||||
const secret_url = rss_url + "&key=" + encodeURIComponent(reply.link);
|
||||
|
||||
const dialog = new dijit.Dialog({
|
||||
title: __("Show as feed"),
|
||||
id: 'genFeedDlg',
|
||||
style: "width: 600px",
|
||||
onCancel: function () {
|
||||
return true;
|
||||
},
|
||||
onExecute: function () {
|
||||
return true;
|
||||
},
|
||||
onClose: function () {
|
||||
return true;
|
||||
},
|
||||
content: `
|
||||
<header>${__("%s can be accessed via the following secret URL:").replace("%s", feed_title)}</header>
|
||||
<section>
|
||||
<div class='panel text-center'>
|
||||
<a id='gen_feed_url' href="${App.escapeHtml(secret_url)}" target='_blank'>${secret_url}</a>
|
||||
</div>
|
||||
</section>
|
||||
<footer>
|
||||
<button dojoType='dijit.form.Button' style='float : left' class='alt-info'
|
||||
onclick='window.open("https://tt-rss.org/wiki/GeneratedFeeds")'>
|
||||
<i class='material-icons'>help</i> ${__("More info...")}</button>
|
||||
<button dojoType='dijit.form.Button' onclick="return CommonDialogs.genUrlChangeKey('${feed}', '${is_cat}')">
|
||||
${__('Generate new URL')}
|
||||
</button>
|
||||
<button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
|
||||
${__('Close this window')}
|
||||
</button>
|
||||
</footer>
|
||||
`
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue