1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-15 16:55:57 +00:00

af_psql_trgm: cleanup

This commit is contained in:
Andrew Dolgov
2021-02-18 13:41:40 +03:00
parent a2c75257f1
commit bed36cbf9f

View File

@@ -124,113 +124,117 @@ class Af_Psql_Trgm extends Plugin {
function hook_prefs_tab($args) { function hook_prefs_tab($args) {
if ($args != "prefFeeds") return; if ($args != "prefFeeds") return;
print "<div dojoType=\"dijit.layout.AccordionPane\" $similarity = $this->host->get($this, "similarity", $this->default_similarity);
title=\"<i class='material-icons'>extension</i> ".__('Mark similar articles as read (af_psql_trgm)')."\">"; $min_title_length = $this->host->get($this, "min_title_length", $this->default_min_length);
$enable_globally = sql_bool_to_bool($this->host->get($this, "enable_globally"));
?>
<div dojoType="dijit.layout.AccordionPane"
title="<i class='material-icons'>extension</i> <?= __('Mark similar articles as read (af_psql_trgm)') ?>">
<?php
if (DB_TYPE != "pgsql") { if (DB_TYPE != "pgsql") {
print_error("Database type not supported."); print_error("Database type not supported.");
} else { } else {
$res = $this->pdo->query("select 'similarity'::regproc"); $res = $this->pdo->query("select 'similarity'::regproc");
if (!$res || !$res->fetch()) { if (!$res || !$res->fetch()) {
print_error("pg_trgm extension not found."); print_error("pg_trgm extension not found.");
} }
} ?>
$similarity = $this->host->get($this, "similarity", $this->default_similarity); <form dojoType="dijit.form.Form">
$min_title_length = $this->host->get($this, "min_title_length", $this->default_min_length);
$enable_globally = sql_bool_to_bool($this->host->get($this, "enable_globally"));
print "<form dojoType=\"dijit.form.Form\">"; <?= \Controls\pluginhandler_tags($this, "save") ?>
print "<script type=\"dojo/method\" event=\"onSubmit\" args=\"evt\"> <script type="dojo/method" event="onSubmit" args="evt">
evt.preventDefault(); evt.preventDefault();
if (this.validate()) { if (this.validate()) {
console.log(dojo.objectToQuery(this.getValues())); Notify.progress('Saving data...', true);
new Ajax.Request('backend.php', { xhrPost("backend.php", this.getValues(), (transport) => {
parameters: dojo.objectToQuery(this.getValues()),
onComplete: function(transport) {
Notify.info(transport.responseText); Notify.info(transport.responseText);
})
} }
}); </script>
//this.reset();
}
</script>";
print \Controls\pluginhandler_tags($this, "save"); <?= format_notice("Enable for specific feeds in the feed editor.") ?>
print_notice("Enable for specific feeds in the feed editor."); <fieldset>
<label><?= __("Minimum similarity:") ?></label>
<input dojoType="dijit.form.NumberSpinner"
placeholder="<?= $this->default_similarity ?>"
id='psql_trgm_similarity'
required="1"
name="similarity" value="<?= htmlspecialchars($similarity) ?>">
print "<fieldset>"; <div dojoType='dijit.Tooltip' connectId='psql_trgm_similarity' position='below'>
<?= __("PostgreSQL trigram extension returns string similarity as a floating point number (0-1). Setting it too low might produce false positives, zero disables checking.") ?>
</div>
</fieldset>
print "<label>" . __("Minimum similarity:") . "</label> "; <fieldset>
print "<input dojoType=\"dijit.form.NumberSpinner\" <label><?= __("Minimum title length:") ?></label>
placeholder=\"0.75\" id='psql_trgm_similarity' <input dojoType="dijit.form.NumberSpinner"
required=\"1\" name=\"similarity\" value=\"$similarity\">"; placeholder="<?= $this->default_min_length ?>"
required="1"
name="min_title_length" value="<?= htmlspecialchars($min_title_length) ?>">
</fieldset>
print "<div dojoType='dijit.Tooltip' connectId='psql_trgm_similarity' position='below'>" . <fieldset>
__("PostgreSQL trigram extension returns string similarity as a floating point number (0-1). Setting it too low might produce false positives, zero disables checking.") . <label class='checkbox'>
"</div>"; <?= \Controls\checkbox_tag("enable_globally", $enable_globally) ?>
<?= __("Enable for all feeds.") ?>
</label>
</fieldset>
print "</fieldset><fieldset>"; <hr/>
print "<label>" . __("Minimum title length:") . "</label> "; <?= \Controls\submit_tag(__("Save")) ?>
print "<input dojoType=\"dijit.form.NumberSpinner\" </form>
placeholder=\"32\"
required=\"1\" name=\"min_title_length\" value=\"$min_title_length\">";
print "</fieldset><fieldset>";
print "<label class='checkbox'>";
print \Controls\checkbox_tag("enable_globally", $enable_globally);
print " " . __("Enable for all feeds:");
print "</label>";
print "</fieldset>";
print "<hr/>";
print \Controls\submit_tag(__("Save"));
print "</form>";
<?php
/* cleanup */ /* cleanup */
$enabled_feeds = $this->filter_unknown_feeds( $enabled_feeds = $this->filter_unknown_feeds(
$this->get_stored_array("enabled_feeds")); $this->get_stored_array("enabled_feeds"));
$this->host->set($this, "enabled_feeds", $enabled_feeds); $this->host->set($this, "enabled_feeds", $enabled_feeds);
?>
if (count($enabled_feeds) > 0) { <?php if (count($enabled_feeds) > 0) { ?>
print "<hr/>"; <hr/>
print "<h3>" . __("Currently enabled for (click to edit):") . "</h3>"; <h3><?= __("Currently enabled for (click to edit):") ?></h3>
print "<ul class=\"panel panel-scrollable list list-unstyled\">"; <ul class="panel panel-scrollable list list-unstyled">
foreach ($enabled_feeds as $f) { <?php foreach ($enabled_feeds as $f) { ?>
print "<li>" . <li>
"<i class='material-icons'>rss_feed</i> <a href='#' <i class='material-icons'>rss_feed</i>
onclick='CommonDialogs.editFeed($f)'>" . <a href='#' onclick="CommonDialogs.editFeed(<?= $f ?>)">
Feeds::_get_title($f) . "</a></li>"; <?= Feeds::_get_title($f) ?>
} </a>
print "</ul>"; </li>
} <?php } ?>
} </ul>
<?php } ?>
print "</div>"; </div>
<?php
} }
function hook_prefs_edit_feed($feed_id) { function hook_prefs_edit_feed($feed_id) {
print "<header>".__("Similarity (af_psql_trgm)")."</header>";
print "<section>";
$enabled_feeds = $this->get_stored_array("enabled_feeds"); $enabled_feeds = $this->get_stored_array("enabled_feeds");
$checked = in_array($feed_id, $enabled_feeds) ? "checked" : ""; ?>
<header><?= __("Similarity (af_psql_trgm)") ?></header>
print "<fieldset>"; <section>
<fieldset>
print "<label class='checkbox'><input dojoType='dijit.form.CheckBox' type='checkbox' id='trgm_similarity_enabled' <label class="checkbox">
name='trgm_similarity_enabled' $checked> ".__('Mark similar articles as read')."</label>"; <?= \Controls\checkbox_tag("trgm_similarity_enabled", in_array($feed_id, $enabled_feeds)) ?>
<?= __('Mark similar articles as read') ?>
print "</fieldset>"; </label>
</fieldset>
print "</section>"; </section>
</section>
<?php
} }
function hook_prefs_save_feed($feed_id) { function hook_prefs_save_feed($feed_id) {