Changeset View
Changeset View
Standalone View
Standalone View
assets/src/bundles/browse/origin-search.js
Show First 20 Lines • Show All 103 Lines • ▼ Show 20 Lines | |||||
function searchOriginsFirst(searchQueryText, limit) { | function searchOriginsFirst(searchQueryText, limit) { | ||||
let baseSearchUrl; | let baseSearchUrl; | ||||
const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); | const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); | ||||
if (searchMetadata) { | if (searchMetadata) { | ||||
baseSearchUrl = new URL(Urls.api_1_origin_metadata_search(), window.location); | baseSearchUrl = new URL(Urls.api_1_origin_metadata_search(), window.location); | ||||
baseSearchUrl.searchParams.append('fulltext', searchQueryText); | baseSearchUrl.searchParams.append('fulltext', searchQueryText); | ||||
} else { | } else { | ||||
const useSearchQL = $('#swh-search-use-ql').prop('checked'); | |||||
baseSearchUrl = new URL(Urls.api_1_origin_search(searchQueryText), window.location); | baseSearchUrl = new URL(Urls.api_1_origin_search(searchQueryText), window.location); | ||||
baseSearchUrl.searchParams.append('use_ql', useSearchQL ?? false); | |||||
} | } | ||||
const withVisit = $('#swh-search-origins-with-visit').prop('checked'); | const withVisit = $('#swh-search-origins-with-visit').prop('checked'); | ||||
baseSearchUrl.searchParams.append('limit', limit); | baseSearchUrl.searchParams.append('limit', limit); | ||||
baseSearchUrl.searchParams.append('with_visit', withVisit); | baseSearchUrl.searchParams.append('with_visit', withVisit); | ||||
const visitType = $('#swh-search-visit-type').val(); | const visitType = $('#swh-search-visit-type').val(); | ||||
if (visitType !== 'any') { | if (visitType !== 'any') { | ||||
baseSearchUrl.searchParams.append('visit_type', visitType); | baseSearchUrl.searchParams.append('visit_type', visitType); | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | export function initOriginSearch() { | ||||
$(document).ready(() => { | $(document).ready(() => { | ||||
$('#swh-search-origins').submit(event => { | $('#swh-search-origins').submit(event => { | ||||
event.preventDefault(); | event.preventDefault(); | ||||
if (event.target.checkValidity()) { | if (event.target.checkValidity()) { | ||||
$(event.target).removeClass('was-validated'); | $(event.target).removeClass('was-validated'); | ||||
const searchQueryText = $('#swh-origins-url-patterns').val().trim(); | const searchQueryText = $('#swh-origins-url-patterns').val().trim(); | ||||
const withVisit = $('#swh-search-origins-with-visit').prop('checked'); | const withVisit = $('#swh-search-origins-with-visit').prop('checked'); | ||||
const withContent = $('#swh-filter-empty-visits').prop('checked'); | const withContent = $('#swh-filter-empty-visits').prop('checked'); | ||||
const useSearchQL = $('#swh-search-use-ql').prop('checked'); | |||||
const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); | const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); | ||||
const visitType = $('#swh-search-visit-type').val(); | const visitType = $('#swh-search-visit-type').val(); | ||||
const queryParameters = new URLSearchParams(); | const queryParameters = new URLSearchParams(); | ||||
queryParameters.append('q', searchQueryText); | queryParameters.append('q', searchQueryText); | ||||
if (withVisit) { | if (withVisit) { | ||||
queryParameters.append('with_visit', withVisit); | queryParameters.append('with_visit', withVisit); | ||||
} | } | ||||
if (withContent) { | if (withContent) { | ||||
queryParameters.append('with_content', withContent); | queryParameters.append('with_content', withContent); | ||||
} | } | ||||
if (useSearchQL) { | |||||
queryParameters.append('use_ql', useSearchQL ?? false); | |||||
} | |||||
if (searchMetadata) { | if (searchMetadata) { | ||||
queryParameters.append('search_metadata', searchMetadata); | queryParameters.append('search_metadata', searchMetadata); | ||||
} | } | ||||
if (visitType !== 'any') { | if (visitType !== 'any') { | ||||
queryParameters.append('visit_type', visitType); | queryParameters.append('visit_type', visitType); | ||||
} | } | ||||
// Update the url, triggering page reload and effective search | // Update the url, triggering page reload and effective search | ||||
window.location = `${Urls.browse_search()}?${queryParameters.toString()}`; | window.location = `${Urls.browse_search()}?${queryParameters.toString()}`; | ||||
Show All 19 Lines | $('#origins-prev-results-button').click(event => { | ||||
inSearch = true; | inSearch = true; | ||||
searchOrigins(linksPrev.pop()); | searchOrigins(linksPrev.pop()); | ||||
event.preventDefault(); | event.preventDefault(); | ||||
}); | }); | ||||
const urlParams = new URLSearchParams(window.location.search); | const urlParams = new URLSearchParams(window.location.search); | ||||
const query = urlParams.get('q'); | const query = urlParams.get('q'); | ||||
const withVisit = urlParams.has('with_visit'); | const withVisit = urlParams.has('with_visit'); | ||||
const useSearchQL = urlParams.has('use_ql'); | |||||
const withContent = urlParams.has('with_content'); | const withContent = urlParams.has('with_content'); | ||||
const searchMetadata = urlParams.has('search_metadata'); | const searchMetadata = urlParams.has('search_metadata'); | ||||
const visitType = urlParams.get('visit_type'); | const visitType = urlParams.get('visit_type'); | ||||
if (query) { | if (query) { | ||||
$('#swh-origins-url-patterns').val(query); | $('#swh-origins-url-patterns').val(query); | ||||
$('#swh-search-origins-with-visit').prop('checked', withVisit); | $('#swh-search-origins-with-visit').prop('checked', withVisit); | ||||
$('#swh-search-use-ql').prop('checked', useSearchQL ?? false); | |||||
$('#swh-filter-empty-visits').prop('checked', withContent); | $('#swh-filter-empty-visits').prop('checked', withContent); | ||||
$('#swh-search-origin-metadata').prop('checked', searchMetadata); | $('#swh-search-origin-metadata').prop('checked', searchMetadata); | ||||
if (visitType) { | if (visitType) { | ||||
$('#swh-search-visit-type').val(visitType); | $('#swh-search-visit-type').val(visitType); | ||||
} | } | ||||
doSearch(); | doSearch(); | ||||
} | } | ||||
}); | }); | ||||
} | } |