Skip to content

Commit cd858f7

Browse files
committed
Support searching on collections
1 parent 73f226c commit cd858f7

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

zotero.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@
44
<head>
55
<title>Demo Zotero Search</title>
66
<meta charset="utf-8" />
7-
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU"
8-
crossorigin="anonymous">
7+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css"
8+
integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
99
<link href="search.css" rel="stylesheet" type="text/css">
1010
<script src="cors.js"></script>
1111
<script src="pagination.js"></script>
1212
<script src="zotero.js"></script>
1313
</head>
1414

1515
<body>
16-
<p>Enter a search term, e.g., groundwater. The LTER group, with ID <span id="displayId">(not set)</span>, will be
16+
<p>Enter a search term, e.g., groundwater. The user or group with ID <span id="displayId">(not set)</span> will be
1717
searched.</p>
1818
<form id="zoteroSearchForm" name="zoteroSearchForm">
1919
<input type="hidden" id="sort" name="sort" value="date">
2020
<input class="search-input" name="q" placeholder="Enter search term" type="text">
2121
<input type="submit" value="Search">
2222

2323
<div style="margin-top: 10px">
24-
<input aria-expanded="false" aria-controls="advancedInputs" class="collapse-toggle" name="expanded" type="checkbox"
25-
value="true" id="advancedToggle" role="button">
24+
<input aria-expanded="false" aria-controls="advancedInputs" class="collapse-toggle" name="expanded"
25+
type="checkbox" value="true" id="advancedToggle" role="button">
2626
<label class="lbl-toggle" tabindex="0" for="advancedToggle">
2727
Advanced
2828
</label>
@@ -70,7 +70,7 @@
7070
<div id="searchResults"></div>
7171
<div class="pagination" id="paginationBot"></div>
7272
<script>
73-
document.getElementById("displayId").innerHTML = ZOTERO_CONFIG["publicGroupId"];
73+
document.getElementById("displayId").innerHTML = ZOTERO_CONFIG["zotId"];
7474
</script>
7575
</body>
7676

zotero.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
"use strict";
44

55
var ZOTERO_CONFIG = {
6-
"publicGroupId": "2055673", // ID of public group to search in Zotero
6+
"zotId": "2055673", // ID of group or user library to search in Zotero
7+
"zotIdType": "group", // group or user
8+
"collectionKey": "", // Key of collection within library to search, or "" if no collection.
79
"limit": 10, // Max number of results to retrieve per page
810
"resultsElementId": "searchResults", // Element to contain results
911
"urlElementId": "searchUrl", // Element to display search URL
@@ -50,7 +52,7 @@ function parseZoteroResults(resultText) {
5052
}
5153

5254

53-
function show_loading(isLoading) {
55+
function showLoading(isLoading) {
5456
var x = document.getElementById("loading-div");
5557
if (isLoading) {
5658
document.body.style.cursor = "wait";
@@ -64,7 +66,7 @@ function show_loading(isLoading) {
6466

6567
// Function to call if CORS request is successful
6668
function successCallback(headers, response) {
67-
show_loading(false);
69+
showLoading(false);
6870

6971
// Write results to page
7072
var resultHtml = parseZoteroResults(response);
@@ -92,7 +94,7 @@ function successCallback(headers, response) {
9294

9395
// Function to call if CORS request fails
9496
function errorCallback() {
95-
show_loading(false);
97+
showLoading(false);
9698
alert("There was an error making the request.");
9799
}
98100

@@ -108,14 +110,15 @@ function showUrl(url) {
108110

109111
// Passes search URL and callbacks to CORS function
110112
function searchZotero(query, itemType, sort, start) {
111-
var base = "https://api.zotero.org/groups/" +
112-
ZOTERO_CONFIG["publicGroupId"] + "/items?v=3&include=bib";
113+
var zotId = (ZOTERO_CONFIG["zotIdType"] === "group") ? "groups/" + ZOTERO_CONFIG["zotId"] : "users/" + ZOTERO_CONFIG["zotId"];
114+
var collection = (ZOTERO_CONFIG["collectionKey"] === "") ? "/" : "/collections/" + ZOTERO_CONFIG["collectionKey"] + "/";
115+
var base = "https://api.zotero.org/" + zotId + collection + "/items?v=3&include=bib,data";
113116
var params = "&q=" + encodeURI(query) + "&itemType=" + itemType +
114117
"&sort=" + sort + "&start=" + start;
115118
var limit = "&limit=" + ZOTERO_CONFIG["limit"];
116119
var url = base + params + limit;
117120
showUrl(url);
118-
show_loading(true);
121+
showLoading(true);
119122
makeCorsRequest(url, successCallback, errorCallback);
120123
}
121124

0 commit comments

Comments
 (0)