From 145fc3162526e221c9092df6df414a9b1465dd58 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 10 Oct 2021 22:08:17 +0300 Subject: [PATCH] feed tree context menu: add an entry to open originating website --- classes/feeds.php | 17 +++++++++++++++++ js/FeedTree.js | 9 +++++++++ 2 files changed, 26 insertions(+) diff --git a/classes/feeds.php b/classes/feeds.php index 348c42c9e..7b6b35645 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -587,6 +587,23 @@ class Feeds extends Handler_Protected { ]); } + function opensite() { + $feed = ORM::for_table('ttrss_feeds') + ->find_one((int)$_REQUEST['feed_id']); + + if ($feed) { + $site_url = UrlHelper::validate($feed->site_url); + + if ($site_url) { + header("Location: $site_url"); + return; + } + } + + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); + print "Feed not found or has an empty site URL."; + } + function updatedebugger() { header("Content-type: text/html"); diff --git a/js/FeedTree.js b/js/FeedTree.js index e0c44e2b5..f6c44a71e 100755 --- a/js/FeedTree.js +++ b/js/FeedTree.js @@ -101,6 +101,15 @@ define(["dojo/_base/declare", "dojo/dom-construct", "dojo/_base/array", "dojo/co CommonDialogs.editFeed(this.getParent().row_id, false); }})); + menu.addChild(new dijit.MenuItem({ + label: __("Open site"), + onClick: function() { + App.postOpenWindow("backend.php", {op: "feeds", method: "opensite", + feed_id: this.getParent().row_id, csrf_token: __csrf_token}); + }})); + + menu.addChild(new dijit.MenuSeparator()); + menu.addChild(new dijit.MenuItem({ label: __("Debug feed"), onClick: function() {