shared opml and feed dialogs: remove unique target element id, move associated methods into dialog

master
Andrew Dolgov 4 years ago
parent 9f31381bb6
commit 3c584376ca

@ -369,35 +369,6 @@ const CommonDialogs = {
dialog.show(); dialog.show();
}, },
genUrlChangeKey: function(feed, is_cat) {
if (confirm(__("Generate new syndication address for this feed?"))) {
Notify.progress("Trying to change address...", true);
const query = {op: "pref-feeds", method: "regenFeedKey", id: feed, is_cat: is_cat};
xhrJson("backend.php", query, (reply) => {
const new_link = reply.link;
const e = $('gen_feed_url');
if (new_link) {
e.innerHTML = e.innerHTML.replace(/&key=.*$/,
"&key=" + new_link);
e.href = e.href.replace(/&key=.*$/,
"&key=" + new_link);
new Effect.Highlight(e);
Notify.close();
} else {
Notify.error("Could not change feed URL.");
}
});
}
return false;
},
publishedOPML: function() { publishedOPML: function() {
Notify.progress("Loading, please wait...", true); Notify.progress("Loading, please wait...", true);
@ -406,15 +377,40 @@ const CommonDialogs = {
try { try {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
title: __("Public OPML URL"), title: __("Public OPML URL"),
regenOPMLKey: function() {
if (confirm(__("Replace current OPML publishing address with a new one?"))) {
Notify.progress("Trying to change address...", true);
xhrJson("backend.php", {op: "pref-feeds", method: "regenOPMLKey"}, (reply) => {
if (reply) {
const new_link = reply.link;
const target = this.domNode.querySelector('.generated_url');
if (new_link && target) {
target.href = new_link;
target.innerHTML = new_link;
new Effect.Highlight(target);
Notify.close();
} else {
Notify.error("Could not change feed URL.");
}
}
});
}
return false;
},
content: ` content: `
<header>${__("Your Public OPML URL is:")}</header> <header>${__("Your Public OPML URL is:")}</header>
<section> <section>
<div class='panel text-center'> <div class='panel text-center'>
<a id='pub_opml_url' href="${App.escapeHtml(reply.link)}" target='_blank'>${reply.link}</a> <a class='generated_url' href="${App.escapeHtml(reply.link)}" target='_blank'>${App.escapeHtml(reply.link)}</a>
</div> </div>
</section> </section>
<footer class='text-center'> <footer class='text-center'>
<button dojoType='dijit.form.Button' onclick="return Helpers.OPML.changeKey()"> <button dojoType='dijit.form.Button' onclick="return App.dialogOf(this).regenOPMLKey()">
${__('Generate new URL')} ${__('Generate new URL')}
</button> </button>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary'> <button dojoType='dijit.form.Button' type='submit' class='alt-primary'>
@ -441,18 +437,47 @@ const CommonDialogs = {
try { try {
const dialog = new fox.SingleUseDialog({ const dialog = new fox.SingleUseDialog({
title: __("Show as feed"), title: __("Show as feed"),
regenFeedKey: function(feed, is_cat) {
if (confirm(__("Generate new syndication address for this feed?"))) {
Notify.progress("Trying to change address...", true);
const query = {op: "pref-feeds", method: "regenFeedKey", id: feed, is_cat: is_cat};
xhrJson("backend.php", query, (reply) => {
const new_link = reply.link;
const target = this.domNode.querySelector(".generated_url");
if (new_link && target) {
target.innerHTML = target.innerHTML.replace(/&amp;key=.*$/,
"&amp;key=" + new_link);
target.href = target.href.replace(/&key=.*$/,
"&key=" + new_link);
new Effect.Highlight(target);
Notify.close();
} else {
Notify.error("Could not change feed URL.");
}
});
}
return false;
},
content: ` content: `
<header>${__("%s can be accessed via the following secret URL:").replace("%s", App.escapeHtml(reply.title))}</header> <header>${__("%s can be accessed via the following secret URL:").replace("%s", App.escapeHtml(reply.title))}</header>
<section> <section>
<div class='panel text-center'> <div class='panel text-center'>
<a id='gen_feed_url' href="${App.escapeHtml(reply.link)}" target='_blank'>${App.escapeHtml(reply.link)}</a> <a class='generated_url' href="${App.escapeHtml(reply.link)}" target='_blank'>${App.escapeHtml(reply.link)}</a>
</div> </div>
</section> </section>
<footer> <footer>
<button dojoType='dijit.form.Button' style='float : left' class='alt-info' <button dojoType='dijit.form.Button' style='float : left' class='alt-info'
onclick='window.open("https://tt-rss.org/wiki/GeneratedFeeds")'> onclick='window.open("https://tt-rss.org/wiki/GeneratedFeeds")'>
<i class='material-icons'>help</i> ${__("More info...")}</button> <i class='material-icons'>help</i> ${__("More info...")}</button>
<button dojoType='dijit.form.Button' onclick="return CommonDialogs.genUrlChangeKey('${feed}', '${is_cat}')"> <button dojoType='dijit.form.Button' onclick="return App.dialogOf(this).regenFeedKey('${feed}', '${is_cat}')">
${__('Generate new URL')} ${__('Generate new URL')}
</button> </button>
<button dojoType='dijit.form.Button' class='alt-primary' type='submit'> <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>

@ -291,30 +291,5 @@ const Helpers = {
console.log("export"); console.log("export");
window.open("backend.php?op=opml&method=export&" + dojo.formToQuery("opmlExportForm")); window.open("backend.php?op=opml&method=export&" + dojo.formToQuery("opmlExportForm"));
}, },
changeKey: function() {
if (confirm(__("Replace current OPML publishing address with a new one?"))) {
Notify.progress("Trying to change address...", true);
xhrJson("backend.php", {op: "pref-feeds", method: "regenOPMLKey"}, (reply) => {
if (reply) {
const new_link = reply.link;
const e = $('pub_opml_url');
if (new_link) {
e.href = new_link;
e.innerHTML = new_link;
new Effect.Highlight(e);
Notify.close();
} else {
Notify.error("Could not change feed URL.");
}
}
});
}
return false;
},
} }
}; };

Loading…
Cancel
Save