Skip to content

Commit

Permalink
Editor / Associated resources panel / Extend DOI to support Crossref …
Browse files Browse the repository at this point in the history
…in addition to Datacite searches
  • Loading branch information
josegar74 committed Jan 20, 2025
1 parent f4890d5 commit 7f12a0e
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2460,6 +2460,8 @@
doiUrl: "=?",
doiPrefix: "=?",
doiQueryPattern: "=?",
doiCrossrefUrl: "=?",
doiCrossrefQueryPattern: "=?",
mode: "@",
addToSelectionCb: "&?",
removeFromSelectionCb: "&?"
Expand All @@ -2469,6 +2471,7 @@
link: function (scope, element, attrs) {
// select (single value) / add mode (used in siblings dialog)
scope.mode = scope.mode || "select";
scope.searchedValue = false;
scope.updateSelection = angular.isFunction(scope.addToSelectionCb)
? function (md) {
if (scope.isSelected(md)) {
Expand All @@ -2491,13 +2494,15 @@
scope.isSearching = false;

scope.clearSearch = function () {
scope.searchedValue = false;
scope.queryValue = "";
scope.results = [];
scope.resultsCrossref = [];
};

scope.$on("resetSearch", scope.clearSearch);

scope.search = function () {
var searchDatacite = function () {
var searchQuery =
scope.queryValue !== ""
? scope.doiQueryPattern.replaceAll("{query}", scope.queryValue)
Expand Down Expand Up @@ -2534,6 +2539,52 @@
}
);
};

var searchCrossref = function () {
var searchQuery =
scope.crossrefQueryValue !== ""
? scope.doiCrossrefQueryPattern
.replaceAll("{query}", scope.queryValue)
.replaceAll("{prefix}", scope.doiPrefix)
: "";
scope.isSearchingCrossref = true;
gnDoiSearchService
.searchCrossref(scope.doiCrossrefUrl, scope.doiPrefix, searchQuery)
.then(
function (response) {
scope.isSearchingCrossref = false;
var results = [];

angular.forEach(response.data.message.items, function (r) {
results.push({
uuid: r.DOI,
remoteUrl: r.URL,
resourceTitle: r.title && r.title.length > 0 ? r.title[0] : "",
title: r.title && r.title.length > 0 ? r.title[0] : "",
description:
r.abstract && r.abstract.length > 0 ? r.abstract[0] : ""
});
});

scope.resultsCrossref = results;
},
function (response) {
scope.isSearchingCrossref = false;
}
);
};

scope.search = function () {
scope.searchedValue = true;

if (scope.doiUrl) {
searchDatacite();
}

if (scope.doiCrossrefUrl) {
searchCrossref();
}
};
}
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -939,6 +939,11 @@
"&query=" +
query.replaceAll("https://doi.org/", "")
);
},
searchCrossref: function (url, prefix, query) {
return $http.get(
url + "?select=DOI%2Ctitle%2Ctype%2Cprefix%2Cabstract%2CURL&" + query
);
}
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,38 +29,82 @@
</span>
</div>

<i data-ng-show="isSearching" class="fa fa-spinner fa-spin gn-margin-top-sm"></i>
<p
<i
data-ng-show="isSearching || isSearchingCrossref"
class="fa fa-spinner fa-spin gn-margin-top-sm"
></i>
<!--<p
class="gn-margin-top-sm"
data-ng-show="!isSearching && results.length == 0"
data-translate=""
data-ng-show="(doiUrl && !isSearching && results.length == 0 && !doiCrossrefUrl) || (doiCrossrefUrl && !isSearchingCrossref && resultsCrossref.length == 0)"
>
zarooResult
</p>
{{ 'zarooResult' | translate }}
</p>-->

<ul class="list-group gn-nopadding-left gn-nopadding-right">
<li
data-ng-repeat="md in results"
class="list-group-item"
data-ng-class="(mode == 'select' && isSelected(md)) ? 'active' : ''"
>
<div class="d-inline pull-right gn-margin-left-sm">
<a target="_blank" href="{{md.remoteUrl}}" rel="noopener noreferrer">
<span class="fa fa-eye"></span
></a>
</div>
<div
class="d-inline"
style="cursor: pointer"
data-ng-click="updateSelection(md, associationType, initiativeType)"
<!-- Datacite results -->
<div data-ng-if="doiUrl && searchedValue && !isSearching">
<h4 data-ng-show="doiUrl && doiCrossrefUrl">Datacite results</h4>

<p class="gn-margin-top-sm" data-ng-show="results.length == 0">
{{ 'zarooResult' | translate }}
</p>

<ul class="list-group gn-nopadding-left gn-nopadding-right">
<li
data-ng-repeat="md in results"
class="list-group-item"
data-ng-class="(mode == 'select' && isSelected(md)) ? 'active' : ''"
>
{{md.resourceTitle}}
<div data-ng-if="mode == 'add'" class="pull-right">
<span class="fa fa-plus"></span>
<div class="d-inline pull-right gn-margin-left-sm">
<a target="_blank" href="{{md.remoteUrl}}" rel="noopener noreferrer">
<span class="fa fa-eye"></span
></a>
</div>
<div
class="d-inline"
style="cursor: pointer"
data-ng-click="updateSelection(md, associationType, initiativeType)"
>
{{md.resourceTitle}}
<div data-ng-if="mode == 'add'" class="pull-right">
<span class="fa fa-plus"></span>
</div>
</div>
</div>
</li>
</ul>
</li>
</ul>
</div>

<!-- Crossref results -->
<div data-ng-if="doiCrossrefUrl && searchedValue && !isSearchingCrossref">
<h4 data-ng-show="doiUrl && doiCrossrefUrl">Crossref results</h4>

<p class="gn-margin-top-sm" data-ng-show="resultsCrossref.length == 0">
{{ 'zarooResult' | translate }}
</p>

<ul class="list-group gn-nopadding-left gn-nopadding-right">
<li
data-ng-repeat="md in resultsCrossref"
class="list-group-item"
data-ng-class="(mode == 'select' && isSelected(md)) ? 'active' : ''"
>
<div class="d-inline pull-right gn-margin-left-sm">
<a target="_blank" href="{{md.remoteUrl}}" rel="noopener noreferrer">
<span class="fa fa-eye"></span
></a>
</div>
<div
class="d-inline"
style="cursor: pointer"
data-ng-click="updateSelection(md, associationType, initiativeType)"
>
{{md.resourceTitle}}
<div data-ng-if="mode == 'add'" class="pull-right">
<span class="fa fa-plus"></span>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@
<div
class="form-group gn-nomargin-bottom"
data-gn-doi-search-panel=""
data-doi-url="config.sources['doiapi'].url"
data-doi-prefix="config.sources['doiapi'].params.prefix"
data-doi-query-pattern="config.sources['doiapi'].params.query"
data-doi-url="config.sources['doiapi']['datacite'].url"
data-doi-prefix="config.sources['doiapi'].prefix"
data-doi-query-pattern="config.sources['doiapi']['datacite'].params.query"
data-doi-crossref-url="config.sources['doiapi']['crossref'].url"
data-doi-crossref-query-pattern="config.sources['doiapi']['crossref'].params.query"
data-add-to-selection-cb="addToSelection(record)"
data-remove-from-selection-cb="removeFromSelection(record)"
data-ng-show="config.sources['doiapi']"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@
<div
class="form-group gn-nomargin-bottom"
data-gn-doi-search-panel=""
data-doi-url="config.sources['doiapi'].url"
data-doi-prefix="config.sources['doiapi'].params.prefix"
data-doi-query-pattern="config.sources['doiapi'].params.query"
data-doi-url="config.sources['doiapi']['datacite'].url"
data-doi-prefix="config.sources['doiapi'].prefix"
data-doi-query-pattern="config.sources['doiapi']['datacite'].params.query"
data-doi-crossref-url="config.sources['doiapi']['crossref'].url"
data-doi-crossref-query-pattern="config.sources['doiapi']['crossref'].params.query"
data-add-to-selection-cb="addToSelection(record)"
data-remove-from-selection-cb="removeFromSelection(record)"
data-ng-show="config.sources['doiapi']"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,11 @@
<div
class="form-group gn-nomargin-bottom"
data-gn-doi-search-panel=""
data-doi-url="config.sources['doiapi'].url"
data-doi-prefix="config.sources['doiapi'].params.prefix"
data-doi-query-pattern="config.sources['doiapi'].params.query"
data-doi-url="config.sources['doiapi']['datacite'].url"
data-doi-prefix="config.sources['doiapi'].prefix"
data-doi-query-pattern="config.sources['doiapi']['datacite'].params.query"
data-doi-crossref-url="config.sources['doiapi']['crossref'].url"
data-doi-crossref-query-pattern="config.sources['doiapi']['crossref'].params.query"
data-mode="add"
data-add-to-selection-cb="addToSelection(record, config.associationType, config.initiativeType)"
data-remove-from-selection-cb="removeFromSelection(record)"
Expand Down

0 comments on commit 7f12a0e

Please sign in to comment.