Default external off and filter channels/backlink queries
Some checks failed
docker-build / build (push) Has been cancelled
Some checks failed
docker-build / build (push) Has been cancelled
This commit is contained in:
parent
4c20329f36
commit
c6b46edacc
@ -746,6 +746,8 @@ def create_app(config: AppConfig = CONFIG) -> Flask:
|
||||
|
||||
@app.route("/api/channels")
|
||||
def channels():
|
||||
include_external = request.args.get("external", default="0", type=str)
|
||||
include_external = include_external.lower() not in {"0", "false", "no"}
|
||||
base_channels_body = {
|
||||
"size": 0,
|
||||
"aggs": {
|
||||
@ -762,6 +764,10 @@ def create_app(config: AppConfig = CONFIG) -> Flask:
|
||||
}
|
||||
},
|
||||
}
|
||||
if not include_external:
|
||||
base_channels_body["query"] = {
|
||||
"bool": {"must_not": [{"term": {"external_reference": True}}]}
|
||||
}
|
||||
|
||||
def run_channels_request(field_name: str):
|
||||
body = json.loads(json.dumps(base_channels_body)) # deep copy
|
||||
@ -920,7 +926,7 @@ def create_app(config: AppConfig = CONFIG) -> Flask:
|
||||
use_fuzzy = parse_flag("fuzzy", True)
|
||||
use_phrase = parse_flag("phrase", True)
|
||||
use_query_string = parse_flag("query_string", False)
|
||||
include_external = parse_flag("external", True)
|
||||
include_external = parse_flag("external", False)
|
||||
if use_query_string:
|
||||
use_exact = use_fuzzy = use_phrase = False
|
||||
|
||||
@ -1075,7 +1081,7 @@ def create_app(config: AppConfig = CONFIG) -> Flask:
|
||||
use_exact = parse_flag("exact", True)
|
||||
use_fuzzy = parse_flag("fuzzy", True)
|
||||
use_phrase = parse_flag("phrase", True)
|
||||
include_external = parse_flag("external", True)
|
||||
include_external = parse_flag("external", False)
|
||||
if use_query_string:
|
||||
use_exact = use_fuzzy = use_phrase = False
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@
|
||||
fuzzyToggle.checked = parseBoolParam("fuzzy", true);
|
||||
phraseToggle.checked = parseBoolParam("phrase", true);
|
||||
if (externalToggle) {
|
||||
externalToggle.checked = parseBoolParam("external", true);
|
||||
externalToggle.checked = parseBoolParam("external", false);
|
||||
}
|
||||
queryToggle.checked = parseBoolParam("query_string", false);
|
||||
applyQueryMode();
|
||||
@ -281,7 +281,11 @@
|
||||
});
|
||||
if (!collected.length) return null;
|
||||
const escaped = collected.map((id) => `"${escapeQueryValue(id)}"`);
|
||||
return `${field}:(${escaped.join(" OR ")})`;
|
||||
const variants = field.endsWith(".keyword")
|
||||
? [field]
|
||||
: [`${field}.keyword`, field];
|
||||
const clauses = variants.map((fname) => `${fname}:(${escaped.join(" OR ")})`);
|
||||
return clauses.length > 1 ? `(${clauses.join(" OR ")})` : clauses[0];
|
||||
}
|
||||
|
||||
async function loadChannels() {
|
||||
@ -290,7 +294,8 @@
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const res = await fetch("/api/channels");
|
||||
const includeExternal = externalToggle ? externalToggle.checked : false;
|
||||
const res = await fetch(`/api/channels?external=${includeExternal ? "1" : "0"}`);
|
||||
const data = await res.json();
|
||||
channelMap.clear();
|
||||
channelSelect.innerHTML = '<option value="">All Channels</option>';
|
||||
@ -1198,7 +1203,7 @@ async function updateFrequencyChart(term, channels, year, queryMode, toggles = {
|
||||
if (queryMode) {
|
||||
params.set("query_string", "1");
|
||||
}
|
||||
const { exact = true, fuzzy = true, phrase = true, external = true } = toggles || {};
|
||||
const { exact = true, fuzzy = true, phrase = true, external = false } = toggles || {};
|
||||
params.set("exact", exact ? "1" : "0");
|
||||
params.set("fuzzy", fuzzy ? "1" : "0");
|
||||
params.set("phrase", phrase ? "1" : "0");
|
||||
@ -1529,7 +1534,7 @@ async function updateFrequencyChart(term, channels, year, queryMode, toggles = {
|
||||
let exact = !!exactToggle.checked;
|
||||
let fuzzy = !!fuzzyToggle.checked;
|
||||
let phrase = !!phraseToggle.checked;
|
||||
const includeExternal = externalToggle ? externalToggle.checked : true;
|
||||
const includeExternal = externalToggle ? externalToggle.checked : false;
|
||||
if (queryMode) {
|
||||
exact = false;
|
||||
fuzzy = false;
|
||||
@ -1608,7 +1613,10 @@ async function updateFrequencyChart(term, channels, year, queryMode, toggles = {
|
||||
fuzzyToggle.addEventListener("change", () => { rememberToggleState(); runSearch(0); });
|
||||
phraseToggle.addEventListener("change", () => { rememberToggleState(); runSearch(0); });
|
||||
if (externalToggle) {
|
||||
externalToggle.addEventListener("change", () => runSearch(0));
|
||||
externalToggle.addEventListener("change", () => {
|
||||
pendingChannelSelection = "";
|
||||
loadChannels().then(() => runSearch(0));
|
||||
});
|
||||
}
|
||||
if (queryToggle) {
|
||||
queryToggle.addEventListener("change", () => { applyQueryMode(); runSearch(0); });
|
||||
|
||||
@ -82,7 +82,7 @@
|
||||
</div>
|
||||
|
||||
<div class="toggle-item">
|
||||
<input type="checkbox" id="externalToggle" checked />
|
||||
<input type="checkbox" id="externalToggle" />
|
||||
<label for="externalToggle">External</label>
|
||||
<span class="toggle-help">Include externally referenced items.</span>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user