Revision 58308
Added by Sandro La Bruzzo about 3 years ago
modules/dli-service-portal/branches/ES_7/test/dli/testES.py | ||
---|---|---|
1 |
import unittest |
|
2 |
from eu.dnetlib.es_connector import DLIESConnector |
|
3 |
import time |
|
4 |
|
|
5 |
DLI_INDEX = 'dli' |
|
6 |
ES_HOST = 'ip-90-147-167-27.ct1.garrservices.it' |
|
7 |
|
|
8 |
|
|
9 |
class TestDLIESConnector(unittest.TestCase): |
|
10 |
def setUp(self): |
|
11 |
self.connector = DLIESConnector(ES_HOST, DLI_INDEX) |
|
12 |
|
|
13 |
def testQuery(self): |
|
14 |
start_time = time.time() |
|
15 |
result = self.connector.simple_query('protein') |
|
16 |
print("---Request time: %s milliseconds ---" % ((time.time() - start_time) * 1000)) |
|
17 |
self.assertTrue(result.total > 0) |
|
18 |
|
|
19 |
def tearDown(self): |
|
20 |
self.connector = None |
|
21 |
|
|
22 |
if __name__ == '__main__': |
|
23 |
unittest.main() |
modules/dli-service-portal/branches/ES_7/requirements.txt | ||
---|---|---|
1 |
aiofiles==0.4.0 |
|
2 |
certifi==2019.3.9 |
|
3 |
chardet==3.0.4 |
|
4 |
Click==7.0 |
|
5 |
elasticsearch==5.5.3 |
|
6 |
elasticsearch-dsl==5.4.0 |
|
7 |
fastapi==0.20.0 |
|
8 |
h11==0.8.1 |
|
9 |
httptools==0.0.13 |
|
10 |
idna==2.8 |
|
11 |
memory-profiler==0.55.0 |
|
12 |
prometheus-client==0.5.0 |
|
13 |
psutil==5.6.2 |
|
14 |
pydantic==0.23 |
|
15 |
Pympler==0.7 |
|
16 |
python-dateutil==2.8.0 |
|
17 |
python-multipart==0.0.5 |
|
18 |
requests==2.22.0 |
|
19 |
six==1.12.0 |
|
20 |
starlette==0.12.0 |
|
21 |
starlette-prometheus==0.2.0 |
|
22 |
urllib3==1.25.2 |
|
23 |
uvicorn==0.7.1 |
|
24 |
uvloop==0.12.2 |
|
25 |
websockets==7.0 |
modules/dli-service-portal/branches/ES_7/api.properties | ||
---|---|---|
1 |
api.index = dli_shadow |
|
2 |
es_index = ip-90-147-167-25.ct1.garrservices.it,ip-90-147-167-26.ct1.garrservices.it,ip-90-147-167-27.ct1.garrservices.it, ip-90-147-167-28.ct1.garrservices.it |
modules/dli-service-portal/branches/ES_7/logger.py | ||
---|---|---|
1 |
import logging |
|
2 |
|
|
3 |
dlilogger = logging.getLogger('dli') |
|
4 |
hdlr = logging.FileHandler('dli.log') |
|
5 |
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') |
|
6 |
hdlr.setFormatter(formatter) |
|
7 |
dlilogger.addHandler(hdlr) |
|
8 |
dlilogger.setLevel(logging.WARNING) |
modules/dli-service-portal/branches/ES_7/static/partials/datasourceDetail.html | ||
---|---|---|
1 |
<div class="container"> |
|
2 |
<div class="row"> |
|
3 |
<div class="col-lg-12"> |
|
4 |
<h3>Datasource Info </h3> |
|
5 |
</div> |
|
6 |
</div> |
|
7 |
|
|
8 |
<div class="row"> |
|
9 |
<div class="col-lg-12"> |
|
10 |
<img src="{{ datasource.iconURI }}" style="max-height: 100px"/> |
|
11 |
</div> |
|
12 |
</div> |
|
13 |
<div class="row"> |
|
14 |
<div class="col-lg-6"> |
|
15 |
<ul> |
|
16 |
|
|
17 |
<li>Datasource Name: <b class=blue-text>{{ datasource.officialName }}</b></li> |
|
18 |
<li>Datasource webPage: <a href="{{ datasource.webSite }}">{{ datasource.webSite }}</a></li> |
|
19 |
<li>Number of Datasets: <b>{{ lastStats.numberOfDatasets }}</b></li> |
|
20 |
<li>Number of Publications: <b>{{ lastStats.numberOfPublication }}</b></li> |
|
21 |
<li>Number of Relations: <b>{{ lastStats.numberOfRelations }}</b></li> |
|
22 |
|
|
23 |
|
|
24 |
</ul> |
|
25 |
</div> |
|
26 |
</div> |
|
27 |
|
|
28 |
<div class="row"> |
|
29 |
<div class="col-lg-12"> |
|
30 |
<ul id="myTabs" class="nav nav-tabs text-center" role="tablist"> |
|
31 |
<li role="presentation" class="active"><a href="#stats" role="tab" id="profile-tab" data-toggle="tab" |
|
32 |
aria-controls="profile" aria-expanded="false"><h4> |
|
33 |
Statistics</h4></a></li> |
|
34 |
<li role="presentation"><a href="#dataset" id="home-tab" role="tab" data-toggle="tab" |
|
35 |
aria-controls="home" aria-expanded="true"><h4>Datasets</h4></a></li> |
|
36 |
<li role="presentation"><a href="#publication" role="tab" id="profile-tab" data-toggle="tab" |
|
37 |
aria-controls="profile" aria-expanded="false"><h4>Publications</h4></a></li> |
|
38 |
|
|
39 |
</ul> |
|
40 |
<div id="myTabContent" class="tab-content"> |
|
41 |
<div role="tabpanel" class="tab-pane fade active in" id="stats" aria-labelledby="home-tab"> |
|
42 |
<h1>Stats</h1> |
|
43 |
|
|
44 |
<div id="chart_history_links"></div> |
|
45 |
</div> |
|
46 |
<div role="tabpanel" class="tab-pane fade " id="dataset" aria-labelledby="dropdown1-tab"> |
|
47 |
<h1>Dataset</h1> |
|
48 |
|
|
49 |
<div class="row" ng-show="result_dataset.length"> |
|
50 |
<div class="col-lg-6 col-lg-offset-6"> |
|
51 |
<a href='#/query/q=entitytype:"dataset" AND provenance:"{{ datasource.officialName }}"' |
|
52 |
class="btn btn-primary">See other Datasets <span |
|
53 |
class="glyphicon glyphicon-circle-arrow-right"></span></a> |
|
54 |
</div> |
|
55 |
</div> |
|
56 |
|
|
57 |
<div class="row" ng-repeat="result in result_dataset"> |
|
58 |
<div class="col-lg-12"> |
|
59 |
<a href="#/detail/{{ result.identifier }}"> |
|
60 |
<i ng-hide="result.objectType!= 'unknown' " |
|
61 |
style="padding: 10px" |
|
62 |
class="fa fa-question-circle fa-2x blue-text circle responsive-img"></i> |
|
63 |
<i ng-show="result.objectType=='dataset'" style="padding: 10px" |
|
64 |
class="fa fa-database fa-2x blue-text circle responsive-img"></i> |
|
65 |
<i style="padding: 10px" ng-show="result.objectType=='publication'" |
|
66 |
class="fa fa-book fa-2x blue-text circle responsive-img"></i> |
|
67 |
<b ng-show="result.title">{{ result.title }}</b> |
|
68 |
<b ng-hide="result.title">Metadata non resolved for pid : {{ result.pid }}</b> |
|
69 |
</a> |
|
70 |
</div> |
|
71 |
|
|
72 |
<div class="col-lg-12"> |
|
73 |
<d style="font-size: small"></d> |
|
74 |
<auth style="font-size: small; color: #1565C0" |
|
75 |
ng-repeat="author in result.authors"> |
|
76 |
<f ng-hide="$index==0">,</f> |
|
77 |
{{ author }} |
|
78 |
</auth> |
|
79 |
<d ng-show="result.date">- {{ result.date }}</d> |
|
80 |
</d> |
|
81 |
</div> |
|
82 |
<p> |
|
83 |
|
|
84 |
<div class="col-lg-2"> |
|
85 |
<auth style="font-size: small" class="orange-text"><b>{{ countRelatedDatasets(result) }}</b> |
|
86 |
Related Datasets |
|
87 |
</auth> |
|
88 |
</div> |
|
89 |
<div class="col-lg-2"> |
|
90 |
<auth style="font-size: small" class="orange-text"> |
|
91 |
<b> {{ countRelatedPublication(result) }}</b> Related Publications |
|
92 |
</auth> |
|
93 |
</div> |
|
94 |
<div class="col-lg-2"> |
|
95 |
<auth style="font-size: small" class="orange-text"><b>{{ countOtherRelations(result) }}</b> |
|
96 |
Other Relations |
|
97 |
</auth> |
|
98 |
</div> |
|
99 |
<div class="col-lg-2"> |
|
100 |
<auth style="font-size: small" class="orange-text"><a |
|
101 |
href="{{ result.resolved_url }}" class="orange-text"> <i |
|
102 |
class="fa fa-link"></i> Original Object </a></auth> |
|
103 |
</div> |
|
104 |
<div class="col-lg-3"> |
|
105 |
[ |
|
106 |
<auth style="font-size: small" class="orange-text" |
|
107 |
ng-repeat="prov in result.provenance_record"> |
|
108 |
<f ng-hide="$index==0">,</f> |
|
109 |
<a href='#/datasource/name/{{ prov.name }}' style="color: orange">{{ prov.name }}</a> |
|
110 |
</auth> |
|
111 |
<d style="font-size: small">]</d> |
|
112 |
</div> |
|
113 |
|
|
114 |
</div> |
|
115 |
|
|
116 |
|
|
117 |
</div> |
|
118 |
<div role="tabpanel" class="tab-pane fade" id="publication" aria-labelledby="profile-tab"> |
|
119 |
<h1>Publication</h1> |
|
120 |
|
|
121 |
<div class="row" ng-show="result_publication"> |
|
122 |
<div class="col-lg-6 col-lg-offset-6"> |
|
123 |
<a href='#/query/q=entitytype:"publication" AND provenance:"{{ datasource.officialName }}"' |
|
124 |
class="btn btn-primary">See other Publication <span |
|
125 |
class="glyphicon glyphicon-circle-arrow-right"></span></a> |
|
126 |
</div> |
|
127 |
</div> |
|
128 |
<div class="row" ng-repeat="result in result_publication"> |
|
129 |
<div class="col-lg-12"> |
|
130 |
<a href="#/detail/{{ result.identifier }}"> |
|
131 |
<i ng-hide="result.objectType!= 'unknown' " |
|
132 |
style="padding: 10px" |
|
133 |
class="fa fa-question-circle fa-2x blue-text circle responsive-img"></i> |
|
134 |
<i ng-show="result.objectType=='dataset'" style="padding: 10px" |
|
135 |
class="fa fa-database fa-2x blue-text circle responsive-img"></i> |
|
136 |
<i style="padding: 10px" ng-show="result.objectType=='publication'" |
|
137 |
class="fa fa-book fa-2x blue-text circle responsive-img"></i> |
|
138 |
<b ng-show="result.title">{{ result.title }}</b> |
|
139 |
<b ng-hide="result.title">Metadata non resolved for pid : {{ result.pid }}</b> |
|
140 |
</a> |
|
141 |
</div> |
|
142 |
|
|
143 |
<div class="col-lg-12"> |
|
144 |
<d style="font-size: small"></d> |
|
145 |
<auth style="font-size: small; color: #1565C0" |
|
146 |
ng-repeat="author in result.authors"> |
|
147 |
<f ng-hide="$index==0">,</f> |
|
148 |
{{ author }} |
|
149 |
</auth> |
|
150 |
<d ng-show="result.date">- {{ result.date }}</d> |
|
151 |
</d> |
|
152 |
</div> |
|
153 |
<p> |
|
154 |
|
|
155 |
<div class="col-lg-2"> |
|
156 |
<auth style="font-size: small" class="orange-text"><b>{{ countRelatedDatasets(result) }}</b> |
|
157 |
Related Datasets |
|
158 |
</auth> |
|
159 |
</div> |
|
160 |
<div class="col-lg-2"> |
|
161 |
<auth style="font-size: small" class="orange-text"> |
|
162 |
<b> {{ countRelatedPublication(result) }}</b> Related Publications |
|
163 |
</auth> |
|
164 |
</div> |
|
165 |
<div class="col-lg-2"> |
|
166 |
<auth style="font-size: small" class="orange-text"><b>{{ countOtherRelations(result) }}</b> |
|
167 |
Other Relations |
|
168 |
</auth> |
|
169 |
</div> |
|
170 |
<div class="col-lg-2"> |
|
171 |
<auth style="font-size: small" class="orange-text"><a |
|
172 |
href="{{ result.resolved_url }}" class="orange-text"> <i |
|
173 |
class="fa fa-link"></i> Original Object </a></auth> |
|
174 |
</div> |
|
175 |
<div class="col-lg-3"> |
|
176 |
[ |
|
177 |
<auth style="font-size: small" class="orange-text" |
|
178 |
ng-repeat="prov in result.provenance_record"> |
|
179 |
<f ng-hide="$index==0">,</f> |
|
180 |
<a href='#/datasource/name/{{ prov.name }}' style="color: orange">{{ prov.name }}</a> |
|
181 |
</auth> |
|
182 |
<d style="font-size: small">]</d> |
|
183 |
</div> |
|
184 |
|
|
185 |
</div> |
|
186 |
|
|
187 |
</div> |
|
188 |
|
|
189 |
</div> |
|
190 |
</div> |
|
191 |
</div> |
|
192 |
|
|
193 |
|
|
194 |
</div> |
|
195 |
|
|
196 |
<script> |
|
197 |
$('#myTabs a').click(function (e) { |
|
198 |
e.preventDefault() |
|
199 |
$(this).tab('show') |
|
200 |
}); |
|
201 |
</script> |
modules/dli-service-portal/branches/ES_7/static/partials/datasources.html | ||
---|---|---|
1 |
<div class="row container-fluid"> |
|
2 |
|
|
3 |
|
|
4 |
<h1>Datasource's Map</h1> |
|
5 |
|
|
6 |
|
|
7 |
<div class="row"> |
|
8 |
<div class="col-lg-2"> |
|
9 |
<ul class="list-group"> |
|
10 |
<li class="list-group-item" ng-repeat="item in my_markers"> |
|
11 |
<a href="{{ item.weburl }}" > {{ item.name }}</a></li> |
|
12 |
|
|
13 |
</ul> |
|
14 |
|
|
15 |
</div> |
|
16 |
<div class="col-lg-8" > |
|
17 |
<div id="world-map" style="width: 100%; height: 500px; margin: 40px" ></div> |
|
18 |
|
|
19 |
|
|
20 |
</div> |
|
21 |
</div> |
|
22 |
</div> |
|
23 |
|
|
24 |
<script src="js/createMap.js"></script> |
modules/dli-service-portal/branches/ES_7/static/partials/detail.html | ||
---|---|---|
1 |
<style> |
|
2 |
.loader { |
|
3 |
border: 16px solid #f3f3f3; /* Light grey */ |
|
4 |
border-top: 16px solid #3498db; /* Blue */ |
|
5 |
border-radius: 50%; |
|
6 |
width: 120px; |
|
7 |
height: 120px; |
|
8 |
animation: spin 2s linear infinite; |
|
9 |
margin: auto; |
|
10 |
} |
|
11 |
|
|
12 |
@keyframes spin { |
|
13 |
0% { |
|
14 |
transform: rotate(0deg); |
|
15 |
} |
|
16 |
100% { |
|
17 |
transform: rotate(360deg); |
|
18 |
} |
|
19 |
} |
|
20 |
</style> |
|
21 |
|
|
22 |
|
|
23 |
<section ng-hide="item"> |
|
24 |
<div class="row"> |
|
25 |
<div class="col-lg-12 center-align"> |
|
26 |
<div class="loader"></div> |
|
27 |
</div> |
|
28 |
</div> |
|
29 |
|
|
30 |
</section> |
|
31 |
|
|
32 |
|
|
33 |
<section ng-show="item"> |
|
34 |
|
|
35 |
|
|
36 |
<div ng-show='nf'> |
|
37 |
<div class="row"> |
|
38 |
<div class="col-lg-7 col-lg-offset-1"> |
|
39 |
<div class="row" style="margin-bottom: 5px"> |
|
40 |
<div class="col-lg-12"> |
|
41 |
<h4>Error: Item not found </h4> |
|
42 |
</div> |
|
43 |
</div> |
|
44 |
</div> |
|
45 |
</div> |
|
46 |
</div> |
|
47 |
|
|
48 |
<div ng-hide='nf'> |
|
49 |
<div> |
|
50 |
<div class="row"> |
|
51 |
|
|
52 |
<div class="col-lg-7 col-lg-offset-1"> |
|
53 |
<div class="row" style="margin-bottom: 5px"> |
|
54 |
<div class="col-lg-12"> |
|
55 |
<span class="label label-info" style="font-size: 100%">{{ item.typology }}</span> |
|
56 |
<span ng-repeat="date in showDate(item.date)" class="label label-warning" |
|
57 |
style="font-size: 100%"> {{ date }}</span> |
|
58 |
</div> |
|
59 |
</div> |
|
60 |
<div class="row"> |
|
61 |
<div class="col-lg-12"> |
|
62 |
<p><b style="color: black">{{ item.title[0] }}</b></p> |
|
63 |
</div> |
|
64 |
<div class="col-lg-12"> |
|
65 |
<auth style="font-size: small; color: darkred" |
|
66 |
ng-repeat="author in item.author"> |
|
67 |
<f ng-hide="$index==0">,</f> |
|
68 |
<i>{{ author }}</i> |
|
69 |
</auth> |
|
70 |
</div> |
|
71 |
<div class="col-lg-12"> |
|
72 |
<span ng-repeat="d in item.date">{{ d }}</span> |
|
73 |
</div> |
|
74 |
<div class="col-lg-12"> |
|
75 |
<p style="color: grey; border-left: 4px solid #eeeeee; padding-left: 10px; font-size:15px; text-align: justify"> |
|
76 |
{{item.abstract}} |
|
77 |
</p> |
|
78 |
</div> |
|
79 |
</div> |
|
80 |
</div> |
|
81 |
|
|
82 |
|
|
83 |
<div class="col-lg-3"> |
|
84 |
<div class="row"> |
|
85 |
<div class="panel panel-primary"> |
|
86 |
<div class="panel-body"> |
|
87 |
<div ng-repeat="id in item.localIdentifier">{{id.type }}: <a href="{{ id.url }}">{{ id.id}}</a> </div> |
|
88 |
<hr> |
|
89 |
Sources |
|
90 |
<ul> |
|
91 |
<li ng-repeat="d in item.datasources"><a> {{ d.datasourceName }}</a></li> |
|
92 |
</ul> |
|
93 |
<div ng-show="item.publisher.length"> |
|
94 |
<hr> |
|
95 |
Publisher: |
|
96 |
<ul> |
|
97 |
<li ng-repeat="d in item.publisher"><a> {{ d }}</a></li> |
|
98 |
</ul> |
|
99 |
</div> |
|
100 |
<hr> |
|
101 |
<div id="share"></div> |
|
102 |
|
|
103 |
</div> |
|
104 |
</div> |
|
105 |
</div> |
|
106 |
</div> |
|
107 |
|
|
108 |
|
|
109 |
</div> |
|
110 |
</div> |
|
111 |
|
|
112 |
|
|
113 |
|
|
114 |
<div class="row"> |
|
115 |
<div class="col-lg-11 col-lg-offset-1"> |
|
116 |
<ul id="myTabs" class="nav nav-tabs text-center" role="tablist"> |
|
117 |
<li role="presentation" ng-class="active"><a href="#dataset" id="home-tab" role="tab" data-toggle="tab" |
|
118 |
aria-controls="home" aria-expanded="true"><h4>Link To |
|
119 |
Datasets ({{ item.relatedDatasets }})</h4></a></li> |
|
120 |
<li role="presentation" ng-class=""><a href="#publication" role="tab" id="profile-tab" data-toggle="tab" |
|
121 |
aria-controls="profile" aria-expanded="false"><h4>Link To |
|
122 |
Publications ({{ item.relatedPublications }})</h4></a></li> |
|
123 |
<li role="presentation" ng-class=""><a href="#other" role="tab" id="profile-tab" data-toggle="tab" |
|
124 |
aria-controls="profile" aria-expanded="false"><h4>Other Links |
|
125 |
({{ item.relatedUnknown }})</h4></a></li> |
|
126 |
</ul> |
|
127 |
<div id="myTabContent" class="tab-content"> |
|
128 |
<div role="tabpanel" class="tab-pane fade active in" id="dataset" aria-labelledby="home-tab"> |
|
129 |
|
|
130 |
<div ng-repeat="rels in relations.related_dataset"> |
|
131 |
<div class="row"> |
|
132 |
<div class="col-lg-12" style="padding: 10px;"> |
|
133 |
<span class="label label-info" style="font-size: 100%">{{ rels.target.objectType }}</span> |
|
134 |
<span ng-repeat="date in showDate(rels.target.date)" class="label label-warning" |
|
135 |
style="font-size: 100%"> {{ date }}</span> |
|
136 |
</div> |
|
137 |
<div class="col-lg-12"> |
|
138 |
<a href="#/detail/{{ rels.target.dnetIdentifier }}"class="blue-text"><b>{{ rels.target.title }}</b> |
|
139 |
</a></div> |
|
140 |
|
|
141 |
<div class="col-lg-12"> |
|
142 |
<i style="color: darkred" ng-repeat="a in rels.target.creator">{{ a.name }},</i> |
|
143 |
</div> |
|
144 |
<div ng-repeat="ids in rels.target.identifier"> |
|
145 |
<div class="col-lg-12"><b>{{ ids.schema }}</b> : <a href="{{ ids.url }}"> {{ ids.identifier }}</a></div> |
|
146 |
</div> |
|
147 |
</div> |
|
148 |
<div class="row"> |
|
149 |
<div class="col-lg-2"> |
|
150 |
<b>Sources:</b> <span ng-repeat="d in rels.linkprovider">{{ d.name }}</span> |
|
151 |
</div> |
|
152 |
|
|
153 |
</div> |
|
154 |
</div> |
|
155 |
|
|
156 |
<div class="row centered"> |
|
157 |
<div class="text-center"> |
|
158 |
<ul class="pagination centered"> |
|
159 |
<li><a ng-click="prevPage('dataset')"><</a></li> |
|
160 |
<li><a ng-click="nextPage('dataset')">></a></li> |
|
161 |
</ul> |
|
162 |
</div> |
|
163 |
</div> |
|
164 |
</div> |
|
165 |
<div role="tabpanel" class="tab-pane fade" id="publication" aria-labelledby="profile-tab"> |
|
166 |
<div ng-repeat="rels in relations.related_publications"> |
|
167 |
<div class="row"> |
|
168 |
<div class="col-lg-12" style="padding: 10px;"> |
|
169 |
<span class="label label-info" style="font-size: 100%">{{ rels.target.objectType }}</span> |
|
170 |
<span ng-repeat="date in showDate(rels.target.date)" class="label label-warning" |
|
171 |
style="font-size: 100%"> {{ date }}</span> |
|
172 |
</div> |
|
173 |
<div class="col-lg-12"> |
|
174 |
<a href="#/detail/{{ rels.target.dnetIdentifier }}"class="blue-text"><b>{{ rels.target.title }}</b> |
|
175 |
</a></div> |
|
176 |
|
|
177 |
<div class="col-lg-12"> |
|
178 |
<i style="color: darkred" ng-repeat="a in rels.target.creator">{{ a.name }},</i> |
|
179 |
</div> |
|
180 |
<div ng-repeat="ids in rels.target.identifier"> |
|
181 |
<div class="col-lg-12"><b>{{ ids.schema }}</b> : <a href="{{ ids.url }}"> {{ ids.identifier }}</a></div> |
|
182 |
</div> |
|
183 |
</div> |
|
184 |
<div class="row"> |
|
185 |
<div class="col-lg-2"> |
|
186 |
<b>Sources:</b> <span ng-repeat="d in rels.linkprovider">{{ d.name }}</span> |
|
187 |
</div> |
|
188 |
|
|
189 |
</div> |
|
190 |
</div> |
|
191 |
<div class="row centered"> |
|
192 |
<div class="text-center"> |
|
193 |
<ul class="pagination centered"> |
|
194 |
<li><a ng-click="prevPage('publication')"><</a></li> |
|
195 |
<li><a ng-click="nextPage('publication')">></a></li> |
|
196 |
</ul> |
|
197 |
</div> |
|
198 |
</div> |
|
199 |
</div> |
|
200 |
<div role="tabpanel" class="tab-pane fade" id="other" aria-labelledby="dropdown1-tab"> |
|
201 |
<div ng-repeat="rels in relations.related_unknown"> |
|
202 |
<div class="row"> |
|
203 |
<div class="col-lg-12"><a href="#/detail/{{ rels.target.dnetIdentifier }}" |
|
204 |
class="blue-text"> <i |
|
205 |
style="padding: 10px" |
|
206 |
class="fa fa-question-circle fa-2x blue-text circle responsive-img"></i><b>{{ rels.target.identifier[0].identifier }}</b> |
|
207 |
</a></div> |
|
208 |
|
|
209 |
<div class="col-lg-12"> |
|
210 |
<f style="color: green" ng-repeat="a in rels.target.creator">{{ a.name }},</f> |
|
211 |
</div> |
|
212 |
<div ng-repeat="ids in rels.target.identifier"> |
|
213 |
<div class="col-lg-12"><b>PID</b> : {{ ids.identifier }}</div> |
|
214 |
<div class="col-lg-12"><b>PID Type</b> : {{ ids.schema }}</div> |
|
215 |
</div> |
|
216 |
</div> |
|
217 |
<div class="row"> |
|
218 |
<div class="col-lg-2"> |
|
219 |
<b>provenance (of this link): </b> |
|
220 |
</div> |
|
221 |
<div class="col-lg-8"> |
|
222 |
<table style="width: 100%"> |
|
223 |
<thead> |
|
224 |
<tr> |
|
225 |
<th class="center-align" style="width: 20%">Date Of Collection</th> |
|
226 |
<th class="center-align" style="width: 20%">Datasource</th> |
|
227 |
<th class="center-align" style="width: 60%">Action</th> |
|
228 |
</tr> |
|
229 |
</thead> |
|
230 |
<tbody> |
|
231 |
<tr ng-repeat="d in rels.linkprovider"> |
|
232 |
<td class="left-align">{{ d.collectionDate }}</td> |
|
233 |
<td class="left-align">{{ d.name }}</td> |
|
234 |
<td class="left-align"> |
|
235 |
Relation collected from {{ d.name }} |
|
236 |
</td> |
|
237 |
</tr> |
|
238 |
</tbody> |
|
239 |
</table> |
|
240 |
</div> |
|
241 |
</div> |
|
242 |
</div> |
|
243 |
<div class="row centered"> |
|
244 |
<div class="text-center"> |
|
245 |
<ul class="pagination centered"> |
|
246 |
<li><a ng-click="prevPage('unknown')"><</a></li> |
|
247 |
<li><a ng-click="nextPage('unknown')">></a></li> |
|
248 |
</ul> |
|
249 |
</div> |
|
250 |
</div> |
|
251 |
|
|
252 |
</div> |
|
253 |
</div> |
|
254 |
</div> |
|
255 |
</div> |
|
256 |
</div> |
|
257 |
</section> |
|
258 |
<script> |
|
259 |
$("#share").jsSocials({ |
|
260 |
showLabel: false, |
|
261 |
showCount: false, |
|
262 |
shares: ["email", "twitter", "facebook", "googleplus", "linkedin"] |
|
263 |
}); |
|
264 |
</script> |
modules/dli-service-portal/branches/ES_7/static/partials/contactus.html | ||
---|---|---|
1 |
<section> |
|
2 |
<div class="row" > |
|
3 |
<div class="col-lg-8 col-lg-offset-2"> |
|
4 |
|
|
5 |
<div class="card z-depth-2" style="padding-top: 10px"> |
|
6 |
<div class="row"> |
|
7 |
<div class="col-lg-12"> |
|
8 |
<div class="row"> |
|
9 |
<h4 class="center-align"><b>Contact us</b></h4> |
|
10 |
<div class="col-lg-12"> |
|
11 |
|
|
12 |
<p> |
|
13 |
DLI Service is the result of a cooperation among major publishers, |
|
14 |
data centers, and research/academic institutions and projects under the umbrella of the |
|
15 |
Publishing Data Services Working Group <a href="https://www.rd-alliance.org/filedepot/folder/114?fid=239"> (Case Statement)</a> . |
|
16 |
</p> |
|
17 |
</div> |
|
18 |
</div> |
|
19 |
<div class="row"> |
|
20 |
<div class="col-lg-12"> |
|
21 |
<div class="row"> |
|
22 |
<div class="col-lg-12"> |
|
23 |
<div class="card white"> |
|
24 |
<div class="card-content black-text"> |
|
25 |
<span class="card-title black-text "><b>WDS-RDA working group contacts</b> </span> |
|
26 |
<ul> |
|
27 |
<li><a href="mailto:rdawds_services_wg@rda-groups.org">WG mailing list</a> </li> |
|
28 |
<li><a href="mailto:h.koers@elsevier.com">Hylke Koers</a>, Elsevier, Amsterdam, The Netherlands</li> |
|
29 |
<li> <a href="mailto:adrian.burton@ands.org.au"> Adrian Burton</a>, Australian National Data Service, Melbourne, Australia </li> |
|
30 |
</ul> |
|
31 |
</div> |
|
32 |
</div> |
|
33 |
</div> |
|
34 |
|
|
35 |
<div class="col-lg-12"> |
|
36 |
<div class="card white"> |
|
37 |
<div class="card-content black-text"> |
|
38 |
<span class="card-title black-text "><b>Stakeholders</b> </span> |
|
39 |
<ul> |
|
40 |
<li><a href="https://rd-alliance.org/groups/rdawds-publishing-data-services-wg.html">RDA DPS-WG</a> </li> |
|
41 |
<li><a href="www.openaire.it">OpenAIRE infrastructure</a> </li> |
|
42 |
<li><a href="https://rd-alliance.org">The Research Data Alliance (RDA)</a> </li> |
|
43 |
<li><a href="https://www.icsu-wds.org">ICSU World Data Systems</a> </li> |
|
44 |
<li><a href="http://www.stm-assoc.org ">STM</a> </li> |
|
45 |
<li><a href="www.crossref.org">CrossRef</a> </li> |
|
46 |
<li><a href="www.datacite.org">DataCite</a> </li> |
|
47 |
<li><a href="www.orcid.org">ORCID</a> </li> |
|
48 |
<li><a href="www.nationaldataservice.org">The National Data Service</a> </li> |
|
49 |
<li><a href="www.rmap-project.info">RMap project</a> </li> |
|
50 |
<li><a href="http://datacentrum.3tu.nl/en/home/" >3TU.Datacentrum</a> </li> |
|
51 |
<li><a href="http://www.ands.org.au/"> Australian National Data Service (ANDS)</a> </li> |
|
52 |
<li><a href="http://www.ccdc.cam.ac.uk/pages/Home.aspx">Cambridge Crystallographic Data Centre (CCDC)</a></li> |
|
53 |
<li><a href="http://www.elsevier.com/">Elsevier</a></li> |
|
54 |
<li><a href="http://www.ebi.ac.uk/">EMBL European Bioinformatics Institute (EMBL-EBI)</a></li> |
|
55 |
<li><a href="https://www.icpsr.umich.edu/icpsrweb/landing.jsp">Interuniversity Consortium for Political and Social Research (ICPSR)</a></li> |
|
56 |
<li><a href="https://www.ieee.org/index.html">Institute of Electrical and Electronics Engineers (IEEE)</a></li> |
|
57 |
<li><a href="http://www.stm-assoc.org/">International Association of STM Publishers</a></li> |
|
58 |
<li><a href="http://www.rcsb.org/pdb/home/home.do">Protein Data Bank (PDB)</a></li> |
|
59 |
<li><a href="http://pangaea.de/">PANGAEA</a></li> |
|
60 |
<li><a href="http://rmap-project.info/rmap/">RMap</a></li> |
|
61 |
<li><a href="http://www.rsc.org/">Royal Society of Chemistry (RSc)</a></li> |
|
62 |
<li><a href="http://www.springer.com">Springer</a></li> |
|
63 |
|
|
64 |
|
|
65 |
|
|
66 |
|
|
67 |
</ul> |
|
68 |
</div> |
|
69 |
</div> |
|
70 |
</div> |
|
71 |
|
|
72 |
</div> |
|
73 |
|
|
74 |
|
|
75 |
</div> |
|
76 |
|
|
77 |
<div class="col-lg-12"> |
|
78 |
<div class="card white"> |
|
79 |
<div class="card-content black-text"> |
|
80 |
<span class="card-title black-text "><b>Service realization and operation</b> </span> |
|
81 |
<ul> |
|
82 |
<li class="collection-item"><i>Aggregation system and portal</i></li> |
|
83 |
<li style="text-indent: 1em;" class="collection-item"> <a href="mailto:paolo.manghi@isti.cnr.it">Paolo Manghi</a> and |
|
84 |
<a href="mailto:sandro.labruzzo@isti.cnr.it">Sandro La Bruzzo</a> (OpenAIRE project) |
|
85 |
Institute of Information Science and Technologies, CNR, Pisa, Italy |
|
86 |
</li> |
|
87 |
<br> |
|
88 |
<li class="collection-item"><i>APIs</i></li> |
|
89 |
<li style="text-indent: 1em;" class="collection-item"> <a href="mailto:mdiepenbroek@pangaea.de">Michael Diepenbroek</a> and |
|
90 |
<a href="mailto:uschindler@pangaea.de">Uwe Shindler</a> |
|
91 |
PANGAEA, Bremen, Germany |
|
92 |
</li> |
|
93 |
<li style="text-indent: 1em;" class="collection-item"> <a href="mailto:paolo.manghi@isti.cnr.it">Paolo Manghi</a> and |
|
94 |
<a href="mailto:sandro.labruzzo@isti.cnr.it">Sandro La Bruzzo</a> (OpenAIRE project) |
|
95 |
Institute of Information Science and Technologies, CNR, Pisa, Italy |
|
96 |
</li> |
|
97 |
|
|
98 |
<br> |
|
99 |
<li class="collection-item"><i>RD-Switchboard</i></li> |
|
100 |
<li style="text-indent: 1em;" class="collection-item"> <a href="mailto:amir.aryani@ands.org.au">Amir Aryani</a> and |
|
101 |
<a href="mailto:adrian.burton@ands.org.au">Adrian Burton</a> |
|
102 |
Australian National Data Service, Melbourne, Australia |
|
103 |
|
|
104 |
</li> |
|
105 |
</ul> |
|
106 |
</div> |
|
107 |
</div> |
|
108 |
</div> |
|
109 |
|
|
110 |
|
|
111 |
|
|
112 |
</div> |
|
113 |
|
|
114 |
<div class="row"> |
|
115 |
<div class="col-lg-12"> |
|
116 |
This work is co-funded by the EU projects <a href="https://rd-alliance.org/groups/rdawds-publishing-data-ig.html">RDA Europe</a> (FP7-INFRASTRUCTURES-2013-2, grant agreement: 632756) |
|
117 |
and <a href="http://www.openaire.eu">OpenAIRE2020</a> (H2020-EINFRA-2014-1, grant agreement: 643410). |
|
118 |
</div> |
|
119 |
|
|
120 |
</div> |
|
121 |
</div> |
|
122 |
|
|
123 |
</div> |
|
124 |
|
|
125 |
</div> |
|
126 |
|
|
127 |
</div> |
|
128 |
</div> |
|
129 |
|
|
130 |
|
|
131 |
</section> |
modules/dli-service-portal/branches/ES_7/static/partials/query.html | ||
---|---|---|
1 |
<style> |
|
2 |
.loader { |
|
3 |
border: 16px solid #f3f3f3; /* Light grey */ |
|
4 |
border-top: 16px solid #3498db; /* Blue */ |
|
5 |
border-radius: 50%; |
|
6 |
width: 120px; |
|
7 |
height: 120px; |
|
8 |
animation: spin 2s linear infinite; |
|
9 |
margin: auto; |
|
10 |
} |
|
11 |
|
|
12 |
@keyframes spin { |
|
13 |
0% { |
|
14 |
transform: rotate(0deg); |
|
15 |
} |
|
16 |
100% { |
|
17 |
transform: rotate(360deg); |
|
18 |
} |
|
19 |
} |
|
20 |
</style> |
|
21 |
|
|
22 |
|
|
23 |
<section class="container-fluid"> |
|
24 |
|
|
25 |
|
|
26 |
<div class="row"> |
|
27 |
<div class="col-lg-8"> |
|
28 |
<form ng-submit="makeQuery()"> |
|
29 |
<b>Query:</b> |
|
30 |
<input style="width: 80%" ng-model="query" ng-enter="doSomething()"> <a |
|
31 |
href="#/query/q={{ query }}"><span class="glyphicon glyphicon-search"></span> Search</a> |
|
32 |
</form> |
|
33 |
</div> |
|
34 |
<div class="col-lg-2 right-align"> |
|
35 |
<b class="header black-text ">Total Items:</b> |
|
36 |
<f class="header blue-text flow-text"> {{ total }}</f> |
|
37 |
</div> |
|
38 |
<div class="col-lg-2 right-align"> |
|
39 |
<b class="header black-text ">Total pages:</b> |
|
40 |
<f class="header blue-text flow-text"> {{ totalPages }}</f> |
|
41 |
</div> |
|
42 |
</div> |
|
43 |
<div class="row" ng-show="searching"> |
|
44 |
<div class="col-lg-12 center-align"> |
|
45 |
<div class="loader"></div> |
|
46 |
</div> |
|
47 |
</div> |
|
48 |
<div class="row centered" ng-hide="result_query.length"> |
|
49 |
<div class="text-center"> |
|
50 |
<h5 class="red-text">No match found</h5> |
|
51 |
</div> |
|
52 |
</div> |
|
53 |
|
|
54 |
<div class="row centered" ng-show="result_query.length"> |
|
55 |
<div class="text-center"> |
|
56 |
<ul class="pagination centered"> |
|
57 |
<li ng-show="page ==1" class="disabled"><a href=""><</a></li> |
|
58 |
<li ng-hide="page ==1"><a href="#/query/{{ filterPath() }}page={{ page - 1 }}/q={{ query }}"><</a> |
|
59 |
</li> |
|
60 |
<li ng-class="activePage(n)" ng-repeat="n in pageRange"> |
|
61 |
<a href="#/query/{{ filterPath() }}page={{ n }}/q={{ query }}">{{ n }}</a> |
|
62 |
</li> |
|
63 |
<li ng-hide="page == lastPage"><a href="#/query/{{ filterPath() }}page={{ page + 1 }}/q={{ query }}">></a> |
|
64 |
</li> |
|
65 |
<li ng-show="page ==lastPage" class="disabled"><a href="">></a></li> |
|
66 |
|
|
67 |
|
|
68 |
</ul> |
|
69 |
</div> |
|
70 |
</div> |
|
71 |
|
|
72 |
<div class="row container-fluid" ng-show="result_query.length"> |
|
73 |
<div class="col-md-3" id="leftCol"> |
|
74 |
<div class="row"> |
|
75 |
<div class="panel panel-primary"> |
|
76 |
<div class="panel-heading"><b>Typology</b></div> |
|
77 |
<div class="panel-body"> |
|
78 |
<ul class="list-group"> |
|
79 |
<li class="list-group-item" ng-repeat="value in facet.typology "> |
|
80 |
<span class="badge">{{ value.count }}</span> |
|
81 |
<a class="browseLink" |
|
82 |
href='#/query/{{ calculateFilter("typology", value.key) }}/q={{ query }}'>{{ value.key }}</a> |
|
83 |
</li> |
|
84 |
</ul> |
|
85 |
</div> |
|
86 |
</div> |
|
87 |
</div> |
|
88 |
|
|
89 |
<div class="row"> |
|
90 |
<div class="panel panel-primary"> |
|
91 |
<div class="panel-heading"><b>Link Provider</b></div> |
|
92 |
<div class="panel-body"> |
|
93 |
<ul class="list-group"> |
|
94 |
<li class="list-group-item" ng-repeat="value in facet.datasource "> |
|
95 |
<span class="badge">{{ value.count }}</span> |
|
96 |
<a class="browseLink" |
|
97 |
href='#/query/{{ calculateFilter("datasource", value.key) }}/q={{ query }}'>{{ value.key }}</a> |
|
98 |
</li> |
|
99 |
</ul> |
|
100 |
</div> |
|
101 |
</div> |
|
102 |
</div> |
|
103 |
|
|
104 |
<div class="row"> |
|
105 |
<div class="panel panel-primary"> |
|
106 |
<div class="panel-heading"><b>Link Publisher</b></div> |
|
107 |
<div class="panel-body"> |
|
108 |
<ul class="list-group"> |
|
109 |
<li class="list-group-item" ng-repeat="value in facet.publishers "> |
|
110 |
<span class="badge">{{ value.count }}</span> |
|
111 |
<a class="browseLink" |
|
112 |
href='#/query/{{ calculateFilter("publisher", value.key) }}/q={{ query }}'>{{ value.key }}</a> |
|
113 |
</li> |
|
114 |
</ul> |
|
115 |
</div> |
|
116 |
</div> |
|
117 |
</div> |
|
118 |
|
|
119 |
<div class="row"> |
|
120 |
<div class="panel panel-primary"> |
|
121 |
<div class="panel-heading"><b>Pid Type</b></div> |
|
122 |
<div class="panel-body"> |
|
123 |
<ul class="list-group"> |
|
124 |
<li class="list-group-item" ng-repeat="value in facet.pid "> |
|
125 |
<span class="badge">{{ value.count }}</span> |
|
126 |
<a class="browseLink" |
|
127 |
href='#/query/{{ calculateFilter("pidtype", value.key) }}/q={{ query }}'>{{ value.key }}</a> |
|
128 |
</li> |
|
129 |
</ul> |
|
130 |
</div> |
|
131 |
</div> |
|
132 |
</div> |
|
133 |
|
|
134 |
</div> |
|
135 |
<div class="col-md-9 col-xs-12"> |
|
136 |
|
|
137 |
<div class="row" ng-repeat="result in result_query"> |
|
138 |
<div class="col-lg-12" style="margin-top: 10px"> |
|
139 |
<span class="label label-info" style="font-size: 100%">{{ result.typology }}</span> |
|
140 |
<span ng-repeat="date in showDate(result.date)" class="label label-warning" |
|
141 |
style="font-size: 100%"> {{ date }}</span> |
|
142 |
</div> |
|
143 |
|
|
144 |
<div class="col-lg-12" style="margin-top: 10px"> |
|
145 |
<a href="#/detail/{{ result.id }}"> |
|
146 |
<b ng-show="result.title.length">{{ result.title[0] }}</b> |
|
147 |
<b ng-hide="result.title.length">Metadata non resolved for pid : {{ result.localIdentifier[0].id }}</b> |
|
148 |
</a> |
|
149 |
</div> |
|
150 |
|
|
151 |
<div class="col-lg-12"> |
|
152 |
<div> |
|
153 |
|
|
154 |
<auth style="font-size: small; color: darkred" |
|
155 |
ng-repeat="author in result.author"> |
|
156 |
<f ng-hide="$index==0">,</f> |
|
157 |
<i>{{ author }}</i> |
|
158 |
</auth> |
|
159 |
</div> |
|
160 |
<span class="more" style="color: #9ba4ad"> |
|
161 |
{{ result.abstract }} |
|
162 |
|
|
163 |
</span> |
|
164 |
|
|
165 |
|
|
166 |
</div> |
|
167 |
|
|
168 |
|
|
169 |
<div class="col-lg-12"> |
|
170 |
<d style="font-size: small"></d> |
|
171 |
|
|
172 |
|
|
173 |
Sources: |
|
174 |
<span ng-repeat="datatasource in result.datasources"> |
|
175 |
<a ng-show="datatasource.datasourceName.length"> {{ datatasource.datasourceName }}</a> |
|
176 |
</span> |
|
177 |
<dd ng-repeat="publisher in result.publisher"> |
|
178 |
<d style="font-size: small; color:darkgreen" ng-show="publisher.length"> |
|
179 |
Publisher: {{ publisher }}</d> |
|
180 |
</dd> |
|
181 |
</div> |
|
182 |
|
|
183 |
|
|
184 |
<div class="col-lg-12 text-right"> |
|
185 |
|
|
186 |
|
|
187 |
<auth style="font-size: small; margin-left: 10px" class="orange-text"> |
|
188 |
Link to Datasets: <b>{{ result.relatedDatasets }}</b> |
|
189 |
</auth> |
|
190 |
|
|
191 |
<auth style="font-size: small; margin-left: 10px" class="orange-text">Link to Literature: |
|
192 |
<b> {{ result.relatedPublications }}</b> |
|
193 |
|
|
194 |
</auth> |
|
195 |
|
|
196 |
<auth style="font-size: small; margin-left: 10px" class="orange-text"> |
|
197 |
Link to other Objects: |
|
198 |
<b>{{ result.relatedUnknown }}</b> |
|
199 |
</auth> |
|
200 |
|
|
201 |
|
|
202 |
<hr> |
|
203 |
</div> |
|
204 |
|
|
205 |
|
|
206 |
</div> |
|
207 |
|
|
208 |
</div> |
|
209 |
|
|
210 |
|
|
211 |
</div> |
|
212 |
|
|
213 |
|
|
214 |
</section> |
modules/dli-service-portal/branches/ES_7/static/partials/index.html | ||
---|---|---|
1 |
<style> |
|
2 |
hr { |
|
3 |
border-top: 1px dotted #000000 !important; |
|
4 |
margin-bottom:5px !important; |
|
5 |
margin-top:5px !important; |
|
6 |
} |
|
7 |
|
|
8 |
.form-control { |
|
9 |
border: 0px solid #ffffff; |
|
10 |
} |
|
11 |
</style> |
|
12 |
<!-- Header --> |
|
13 |
<section style="padding-bottom: 0px"> |
|
14 |
<div class="container centered"> |
|
15 |
<div class="row"> |
|
16 |
<div class="col-lg-12 centered"> |
|
17 |
<img ng-hide="facet" img class="img-responsive img-centered" style="max-width:400px" src="static/img/logo_big.png" alt=""> |
|
18 |
<div class="row"> |
|
19 |
<div class="form-group col-lg-12 "> |
|
20 |
<form ng-submit="makeQuery()"> |
|
21 |
<div class="row"> |
|
22 |
<div class="col-lg-10"> |
|
23 |
<input class="form-control" placeholder="Type your search!" id="query" ng-autocomplete options="options" required data-validation-required-message="Please enter your query" ng-model="query"> |
|
24 |
</div> |
|
25 |
<div class="col-lg-2" > |
|
26 |
<a ng-click="makeQuery()" class="btn btn-primary form-control"><span class="glyphicon glyphicon-search"></span> Search</a> |
|
27 |
</div> |
|
28 |
</div> |
|
29 |
</form> |
|
30 |
</div> |
|
31 |
|
|
32 |
</div> |
|
33 |
|
|
34 |
<div class="row" style="margin-top: 20px"> |
|
35 |
<div class="form-group col-lg-12 "> |
|
36 |
<form ng-submit="makeQuery()"> |
|
37 |
<div class="row"> |
|
38 |
<div class="col-lg-10"> |
|
39 |
<input class="form-control" placeholder="Search by persistent Identifier" id="query" ng-autocomplete options="options" required data-validation-required-message="Please enter your query" ng-model="queryPid"> |
|
40 |
</div> |
|
41 |
|
|
42 |
<div class="col-lg-2" > |
|
43 |
<a ng-click="makeQueryPid()" class="btn btn-primary form-control"><span class="glyphicon glyphicon-search"></span> Search PID</a> |
|
44 |
</div> |
|
45 |
</div> |
|
46 |
</form> |
|
47 |
</div> |
|
48 |
|
|
49 |
</div> |
|
50 |
|
|
51 |
|
|
52 |
</div> |
|
53 |
</div> |
|
54 |
</div> |
|
55 |
</section> |
|
56 |
|
|
57 |
<section id="#stats"> |
|
58 |
<div class="container"> |
|
59 |
<div class="row text-center"> |
|
60 |
<div class="col-lg-12 col-xs-12"> |
|
61 |
|
|
62 |
<p >Search and browse in <span style="color: darkred">{{ main_stats.publication }}</span> literature objects, |
|
63 |
<span style="color: darkred">{{ main_stats.dataset }}</span> datasets, |
|
64 |
<span style="color: darkred">{{ main_stats.total }}</span> bi-directional scholix links,</p> |
|
65 |
<p style=> |
|
66 |
from <span style="color: darkred">13000</span> publishers, |
|
67 |
<span style="color: darkred">10</span> data centers, |
|
68 |
<span style="color: darkred"> CrossRef, DataCite</span>, and <span style="color: darkred">OpenAIRE</span>.</p> |
|
69 |
</div> |
|
70 |
<div class="col-lg-6 col-xs-12"> |
|
71 |
<h4><b> </b></h4> |
|
72 |
</div> |
|
73 |
</div> |
|
74 |
</div> |
|
75 |
|
|
76 |
|
|
77 |
</section> |
modules/dli-service-portal/branches/ES_7/static/partials/api.html | ||
---|---|---|
1 |
<style> |
|
2 |
table, th, td { |
|
3 |
border: 1px solid black; |
|
4 |
border-collapse: collapse; |
|
5 |
} |
|
6 |
th, td { |
|
7 |
padding: 5px; |
|
8 |
text-align: left; |
|
9 |
} |
|
10 |
table>thead>tr>th, .table>thead>tr>th, table>tbody>tr>th, .table>tbody>tr>th, table>tfoot>tr>th, .table>tfoot>tr>th, table>thead>tr>td, .table>thead>tr>td, table>tbody>tr>td, .table>tbody>tr>td, table>tfoot>tr>td, .table>tfoot>tr>td { |
|
11 |
border: 1px solid black; |
|
12 |
} |
|
13 |
</style> |
|
14 |
|
|
15 |
<section style="font-size: 20px; font-family: Lato"> |
|
16 |
|
|
17 |
<div class="row"> |
|
18 |
<div class="col-lg-8 col-lg-offset-2"> |
|
19 |
|
|
20 |
<div class="card z-depth-2" style="padding-top: 10px ;"> |
|
21 |
<div class="row" style="margin-top: 10px; text-align: justify; text-justify: inter-word;"> |
|
22 |
<h4 class="center-align"><b>ABOUT SCHOLEXPLORER: THE OPENAIRE’S SCHOLIX HUB</b></h4> |
|
23 |
<b>Scholix</b> The goal of the Scholix initiative is to establish a high level interoperability |
|
24 |
framework for exchanging information about the links between scholarly literature and data. |
|
25 |
It aims to enable an open information ecosystem to understand systematically what data underpins |
|
26 |
literature and what literature references data. Scholix maintains an evolving set |
|
27 |
of<a href="http://www.scholix.org">Guidelines</a> consisting of: |
|
28 |
(i) an information model (conceptual definition of what is a Scholix scholarly link), |
|
29 |
(ii) a link metadata schema (set of metadata fields representing a Scholix link), |
|
30 |
and (iii) a corresponding XML and JSON schema. |
|
31 |
</div> |
|
32 |
<div class="row" style="text-align: center;"> |
|
33 |
<img src="static/img/ScholixDM.png" style="max-width: 80%;"> |
|
34 |
</div> |
|
35 |
<div class="row" style="text-align: justify; text-justify: inter-word; margin-top: 10px"> |
|
36 |
<b>How to expose Scholix data from this hub</b> Scholexplorer harvests scholarly links |
|
37 |
(i.e. collects metadata records about links from public APIs) from the Scholix |
|
38 |
compatible sources and from DataCite compatible sources. The main sources collected |
|
39 |
by the service are listed in Table 1. |
|
40 |
</div> |
|
41 |
<div class="row" style="font-size: 12px; margin-top: 10px"> |
|
42 |
<b>Table 1.</b> Scholexplorer: data sources. Legenda: Hub (aggregator of sources that exposes Scholix links), Source (data source that exposes Scholix links) |
|
43 |
|
|
44 |
</div> |
|
45 |
<div class="row" style="text-align: justify;"> |
|
46 |
<table class="table"> |
|
47 |
<thead> |
|
48 |
<tr> |
|
49 |
<th scope="col">Data Source</th> |
|
50 |
<th scope="col">Type of source</th> |
|
51 |
</tr> |
|
52 |
<tr> |
|
53 |
<td>DataCite from the DataCite OAI-PMH <a href="https://oai.datacite.org/"> end point</a></td> |
|
54 |
<td>Hub: a <i>provider</i> of links <i>published</i> by data repositories; links are between datasets (DOIs) and articles (DOIs, handles, URLs) or datasets (DOI)</td> |
|
55 |
</tr> |
|
56 |
<tr> |
|
57 |
<td>CrossRef from the Event Data <a href="https://www.crossref.org/services/event-data/"> end point</a></td> |
|
58 |
<td>Hub: a <i>provider</i> of links <i>published</i> by publishers; links are between articles (DOIs) and datasets (DOI, accession numbers, URLs)</td> |
|
59 |
</tr> |
|
60 |
<tr> |
|
61 |
<td>Data repositories that are not yet DataCite members</td> |
|
62 |
<td>Source: a <i>publisher</i> of links between datasets (no DOI) and articles</td> |
|
63 |
</tr> |
|
64 |
<tr> |
|
65 |
<td>Thematic publishers, e.g. Europe PMC</td> |
|
66 |
<td>Source: a <i>publisher</i> of links between articles and accession numbers</td> |
|
67 |
</tr> |
|
68 |
|
|
69 |
<tr> |
|
70 |
<td>Dataset databases, e.g. ENA</td> |
|
71 |
<td>Source: a <i>publisher</i> of links between accession numbers of sequences and articles</td> |
|
72 |
</tr> |
|
73 |
</table> |
|
74 |
</div> |
|
75 |
<div class="row" style="text-align: justify; text-justify: inter-word"> |
|
76 |
Data sources willing to include the links they publish or provide within Scholexplorer have two options: |
|
77 |
<ul> |
|
78 |
<li> |
|
79 |
Become Scholix-compliant and register to become a Scholexplorer data source; |
|
80 |
</li> |
|
81 |
<li> |
|
82 |
Become a data source aggregated by any of the hubs above. |
|
83 |
</li> |
|
84 |
</ul> |
|
85 |
|
|
86 |
</div> |
|
87 |
|
|
88 |
</div> |
|
89 |
</div> |
|
90 |
</div> |
|
91 |
|
|
92 |
|
|
93 |
<div class="row"> |
|
94 |
<div class="col-lg-8 col-lg-offset-2"> |
|
95 |
|
|
96 |
<div class="card z-depth-2" style="padding-top: 10px;text-align: justify; text-justify: inter-word"> |
|
97 |
<div class="row" style="margin-top: 10px"> |
|
98 |
<h4 class="center-align"><b>HOW TO ACCESS SCHOLIX DATA FROM THIS HUB</b></h4> |
|
99 |
The Scholix Swagger API allows clients to run REST queries over the Scholexplorer index |
|
100 |
in order to fetch links matching given criteria. In the current version, clients can search for: |
|
101 |
<ul> |
|
102 |
<li> Links whose source object has a given PID or PID type; </li> |
|
103 |
<li> Links whose source object has been <b>published</b> by a given data source ("data source as publisher");</li> |
|
104 |
<li> Links that were <b>collected</b> from a given data source ("data source as provider"). </li> |
|
105 |
</ul> |
|
106 |
The APIs are available from <a |
|
107 |
href="https://api.scholexplorer.openaire.eu/v2/ui"> here</a>. The results of queries return lists of links |
|
108 |
encoded as JSON Scholix records. JSON (and XML) schema and example records for Scholix links are availabe on |
|
109 |
<a href="https://github.com/scholix/schema">GitHub</a>. |
|
110 |
</div> |
|
111 |
</div> |
|
112 |
</div> |
|
113 |
</div> |
|
114 |
|
|
115 |
|
|
116 |
<div class="row"> |
|
117 |
<div class="col-lg-8 col-lg-offset-2"> |
|
118 |
<div class="card z-depth-2" style="padding-top: 10px;text-align: justify; text-justify: inter-word"> |
|
119 |
<div class="row" style="margin-top: 10px"> |
|
120 |
<h4 class="center-align"><b>TERMS OF USE and SLA</b></h4> |
|
121 |
<b>REST APIs:</b> ScholeXplorer's REST APIs are free-to-use (no sign-up needed) by any third-party service. Note that: |
|
122 |
<ul> |
|
123 |
<li> The service limits each query to around 10,000 paged results (pages are by default of length 100 and can be navigated via resumption token); </li> |
|
124 |
<li> Since March 2018 a full <a href="https://zenodo.org/search?page=1&size=20&q=openaire%20scholexplorer%20service%20JSON%20dump"> JSON dump of the service is made available in Zenodo.org</a> |
|
125 |
every six months </li> |
|
126 |
<li> For unlimited access to the APIs please contact the <a href="mailto:paolo.manghi@isti.cnr.it">service administrators</a> </li> |
|
127 |
</ul> |
|
128 |
<p> |
|
129 |
<b>Metadata license is CC-BY:</b> Scholix metadata records returned by the service can be freely re-used by commercial and non-commercial |
|
130 |
partners under CC-BY license, hence as long as OpenAIRE ScholeXplorer is acknowledged as content provider provider. |
|
131 |
</p> |
|
132 |
<p> |
|
133 |
<b>SLA:</b> the service is running in production 24/7 within the OpenAIRE infrastructure premises deployed at the |
|
134 |
<a href="http://icm.edu.pl/en/centre-of-technology/">data center</a> facilities |
|
135 |
of the <a href="http://icm.edu.pl/en/">Interdisciplinary Centre for Mathematical and Computational Modelling</a> (ICM) |
|
136 |
</p> |
|
137 |
</div> |
|
138 |
<div class="row" style="margin-top: 10px"> |
|
139 |
<h4 class="center-align"><b>Faq</b></h4> |
|
140 |
For any questions you may have about this service please contact <a href="mailto:sandro.labruzzo@isti.cnr.it">Sandro La Bruzzo</a>. |
|
141 |
|
|
142 |
<p style="margin-top: 10px">1. <i>How to I expose Scholix links to Scholexplorer (or other services)? Does Scholix recommend an access protocol?</i></p> |
|
143 |
Scholix does not recommend any specific protocol to expose links, although any community standard is strongly encouraged. |
|
144 |
As to Scholexplorer, its harvesting layer bulk-collects links from external data sources via public APIs. OAI-PMH is preferable, |
|
145 |
but also REST APIs can be accepted. The option of “incremental” harvesting is strongly encouraged (not mandatory), |
|
146 |
for example allowing to search links by "last date of indexing": http://www.mydomain.eu/scholix?lastIndexingDate=yyyy-mm-dd). |
|
147 |
If Scholix links are returned with all metadata fields, including the optional ones, the APIs above are enough. If instead, the links are limited to |
|
148 |
the mandatory fields, then a "resolution" API would be required: given a PID of an object the API returns its full metadata record. |
|
149 |
|
|
150 |
<p style="margin-top: 10px">2. <i>Which PIDs are compatible with Scholexplorer?</i></p> |
|
151 |
Scholexplorer accepts links between any kind of persistent identifiers, including URLs. |
|
152 |
The major standard identifiers (e.g. DOIs, PDBs, PMCID, etc) are also resolved to include the complete record information in Scholexplorer, |
|
153 |
while in general URLs are not resolved as the variability of the associated resolvers cannot be handled by one service. |
|
154 |
In principle if your data source is Scholix compliant and provides proprietary PIDs you can include complete Scholix links records in Scholexplorer in two ways: |
|
155 |
(i) exposing complete Scholix records or (ii) exposing minimally compliant records but making a resolver available, |
|
156 |
so that Scholexplorer can collect the PID complete records (note: your PIDs will have a specific type, associated by Scholexplorer to your resolver service). |
|
157 |
|
|
158 |
|
|
159 |
</div> |
|
160 |
</div> |
|
161 |
</div> |
|
162 |
</div> |
|
163 |
</section> |
|
164 |
|
|
165 |
|
modules/dli-service-portal/branches/ES_7/static/partials/about.html | ||
---|---|---|
1 |
<section style="font-size: 20px; font-family: Lato"> |
|
2 |
<div class="row"> |
|
3 |
<div class="col-lg-8 col-lg-offset-2"> |
|
4 |
|
|
5 |
<div class="card z-depth-2" style="padding-top: 10px"> |
|
6 |
<div class="row"> |
|
7 |
<div class="col l8 offset-l2"> |
|
8 |
<div class="row"> |
|
9 |
<h4 class="center-align"><b>About</b></h4> |
|
10 |
<div class="col-lg-12"> |
|
11 |
Scholexplorer populates and provides access to a graph of links between dataset |
|
12 |
and literature objects and dataset |
|
13 |
and dataset objects. Links (and objects) are provided by data sources managed by |
|
14 |
publishers, data centers, or other |
|
15 |
organizations providing services to store and manage links between data sets and |
|
16 |
publications such as CrossRef, DataCite, and OpenAIRE. Scholexplorer aggregates link metadata |
|
17 |
harvested from the data sources and out of these builds and harmonised and de-duplicated graph of scholarly |
|
18 |
objects. The graph is openly accessible (CC-0) via <a |
|
19 |
href="api.scholexplorer.openaire.eu/v1/ui">search REST APIs </a> |
|
20 |
that return links in <a href="http://www.scholix.org"> Scholix format</a>. |
|
21 |
|
|
22 |
|
|
23 |
</div> |
|
24 |
|
|
25 |
</div> |
|
26 |
</div> |
|
27 |
</div> |
|
28 |
</div> |
|
29 |
</div> |
|
30 |
</div> |
|
31 |
|
|
32 |
|
|
33 |
<div class="row"> |
|
34 |
<div class="col-lg-8 col-lg-offset-2"> |
|
35 |
|
|
36 |
<div class="card z-depth-2" style="padding-top: 10px"> |
|
37 |
<div class="row"> |
|
38 |
<div class="col l8 offset-l2"> |
|
39 |
<div class="row"> |
|
40 |
<h4 class="center-align"><b>References (@ OpenAIRE)</b></h4> |
|
41 |
<div class="col-lg-12"> |
|
42 |
<ul> |
|
43 |
<li> |
|
44 |
<a href="https://www.openaire.eu/search/publication?articleId=dedup_wf_001::309cd9083a888d86db07849b9011ad51">On |
|
45 |
Bridging Data Centers and Publishers: The Data-Literature Interlinking |
|
46 |
Service</a> Burton, Adrian; Koers, Hylke; Manghi, Paolo; La Bruzzo, Sandro; Aryani, Amir; Diepenbroek, Michael; SCHINDLER Uwe (2015)</li> |
|
47 |
<li><a href="https://www.openaire.eu/search/publication?articleId=od______2659::a84cec8e6970d6608256103f1146da3f"> |
|
48 |
Persistent Identifiers: a Prerequisite to Establish the Framework for Scholarly Link Exchange—Scholix</a> |
|
49 |
Mustapha Mokrane; Adrian Burton; Hylke Koers; Markus Stocker (2016)</li> |
|
50 |
<li> |
|
51 |
<a href="https://www.openaire.eu/search/publication?articleId=od______2367::72a2ecc3e2d7d17b3c49f47f7d0b3294">The |
|
52 |
data-literature interlinking service: towards a common infrastructure for |
|
53 |
sharing data-article links</a> Burton, Adrian; Koers, Hylke; Manghi, Paolo; La Bruzzo, Sandro; Aryani, Amir; Diepenbroek, Michael; SCHINDLER Uwe (2017) |
|
54 |
</li> |
|
55 |
<li> <a href="http://mirror.dlib.org/dlib/january17/burton/01burton.html">The Scholix Framework for Interoperability in Data-Literature Information Exchange</a> |
|
56 |
Adrian Burton, Hylke Koers, Paolo Manghi, Martin Fenner, Sandro La Bruzzo, Amir Aryani, Michael Diepenbroek, Uwe Schindler, Markus Stocker (2017) |
|
57 |
</li> |
|
58 |
|
|
59 |
</ul> |
|
60 |
|
|
61 |
|
|
62 |
</div> |
|
63 |
|
|
64 |
</div> |
|
65 |
</div> |
|
66 |
</div> |
|
67 |
</div> |
|
68 |
</div> |
|
69 |
</div> |
|
70 |
</section> |
modules/dli-service-portal/branches/ES_7/static/partials/statistics.html | ||
---|---|---|
1 |
<section> |
|
2 |
<div class="row"> |
|
3 |
<div class="col-lg-8 col-lg-offset-2"> |
|
4 |
|
|
5 |
<div class="row"> |
|
6 |
<ul id="myTabs" class="nav nav-tabs text-center" role="tablist"> |
|
7 |
<li role="presentation" class="active"><a href="#tabstats" role="tab" id="profile-tab" |
|
8 |
data-toggle="tab" |
|
9 |
aria-controls="profile" aria-expanded="false"><h4> |
|
10 |
Statistics</h4></a></li> |
|
11 |
|
|
12 |
<li role="presentation"><a href="#historystats" role="tab" id="profile-tab" data-toggle="tab" |
|
13 |
aria-controls="profile" aria-expanded="false"><h4>History</h4></a></li> |
|
14 |
|
|
15 |
</ul> |
|
16 |
|
|
17 |
<div id="myTabContent" class="tab-content"> |
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
<div role="tabpanel" class="tab-pane fade in active" id="tabstats" aria-labelledby="dropdown1-tab"> |
|
23 |
<div class="row"> |
|
24 |
<div class="col-lg-12"> |
|
25 |
|
|
26 |
<div class="card z-depth-2" style="padding-top: 10px"> |
|
27 |
<div class="row"> |
|
28 |
<div class="col-lg-12"> |
|
29 |
<div class="row"> |
|
30 |
|
|
31 |
<div class="col-lg-12"> |
|
32 |
<table class="table "> |
|
33 |
|
|
34 |
<col> |
|
35 |
<colgroup span="3"></colgroup> |
|
36 |
<tr> |
|
37 |
<td rowspan="1" class="text-left"><b>Content Provider</b></td> |
|
38 |
<th rowspan="1" class="text-right">Links</th> |
|
39 |
<th colspan="4" scope="colgroup" class="text-center">Object</th> |
|
40 |
</tr> |
|
41 |
<tr> |
|
42 |
<th class="text-left"></th> |
|
43 |
<th class="text-right"></th> |
|
44 |
<th class="text-right" scope="col">Publication</th> |
|
45 |
<th class="text-right" scope="col">Dataset</th> |
|
46 |
<th class="text-right" scope="col">Unknown</th> |
|
47 |
<th class="text-right" scope="col">total</th> |
|
48 |
</tr> |
|
49 |
|
|
50 |
|
|
51 |
|
|
52 |
<!-- |
|
53 |
<tr class="orange-text"> |
|
54 |
|
|
55 |
<td class="text-left"><b>Content provider</b></td> |
|
56 |
<td class="text-right"><b>Contributed links</b></td> |
|
57 |
<td class="text-right"><b>Referred objects</b></td> |
|
58 |
<td class="text-right"><b>Referred publications</b></td> |
|
59 |
<td class="text-right"><b>Referred datasets</b></td> |
|
60 |
<td class="text-right"><b>Referred objects of unknown |
|
61 |
typology</b></td> |
|
62 |
</tr> |
|
63 |
--> |
|
64 |
|
|
65 |
<tr ng-repeat="item in stats"> |
|
66 |
<td class="left-align"><a |
|
67 |
href='#/datasource/id/{{ item.acronym }}'>{{ item.datasourceName }} </a> |
|
68 |
</td> |
|
69 |
<td class="text-right"> {{ item.links }}</td> |
|
70 |
<td class="text-right">{{ item.publication }}</td> |
|
71 |
<td class="text-right">{{ item.dataset }}</td> |
|
72 |
<td class="text-right">{{ item.unknown }}</td> |
|
73 |
<td class="text-right">{{ item.total }} |
|
74 |
</td> |
|
75 |
|
|
76 |
</tr> |
|
77 |
</table> |
|
78 |
</div> |
|
79 |
</div> |
|
80 |
</div> |
|
81 |
</div> |
|
82 |
</div> |
|
83 |
</div> |
|
84 |
|
|
85 |
</div> |
|
86 |
</div> |
|
87 |
|
|
88 |
|
|
89 |
<div role="tabpanel" class="tab-pane fade" id="historystats" aria-labelledby="profile-tab"> |
|
90 |
<div class="row"> |
|
91 |
<div class="col-lg-12"> |
|
92 |
<div class="row text-center"> |
|
93 |
<h4><b>Timeseries of contributed Links</b></h4> |
|
94 |
<div id="chart_history_links"></div> |
|
95 |
</div> |
|
96 |
<div class="row text-center"> |
|
97 |
<h4><b>Timeseries of referred Objects</b></h4> |
|
98 |
|
|
99 |
<div id="chart_history_objects"></div> |
|
100 |
</div> |
|
101 |
</div> |
|
102 |
</div> |
|
103 |
</div> |
|
104 |
|
|
105 |
|
|
106 |
</div> |
|
107 |
|
|
108 |
|
|
109 |
</div> |
|
110 |
|
|
111 |
</div> |
|
112 |
</div> |
|
113 |
|
|
114 |
|
|
115 |
</section> |
|
116 |
<script> |
|
117 |
$('#myTabs a').click(function (e) { |
|
118 |
e.preventDefault() |
|
119 |
$(this).tab('show') |
|
120 |
}); |
|
121 |
</script> |
|
122 |
|
modules/dli-service-portal/branches/ES_7/static/mail/contact_me.php | ||
---|---|---|
1 |
<?php |
|
2 |
// Check for empty fields |
|
3 |
if(empty($_POST['name']) || |
|
4 |
empty($_POST['email']) || |
|
5 |
empty($_POST['phone']) || |
|
6 |
empty($_POST['message']) || |
|
7 |
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) |
|
8 |
{ |
|
9 |
echo "No arguments Provided!"; |
|
10 |
return false; |
|
11 |
} |
|
12 |
|
|
13 |
$name = $_POST['name']; |
|
14 |
$email_address = $_POST['email']; |
|
15 |
$phone = $_POST['phone']; |
|
16 |
$message = $_POST['message']; |
|
17 |
|
|
18 |
// Create the email and send the message |
|
19 |
$to = 'yourname@yourdomain.com'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to. |
|
20 |
$email_subject = "Website Contact Form: $name"; |
|
21 |
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message"; |
|
22 |
$headers = "From: noreply@yourdomain.com\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com. |
|
23 |
$headers .= "Reply-To: $email_address"; |
|
24 |
mail($to,$email_subject,$email_body,$headers); |
|
25 |
return true; |
|
26 |
?> |
modules/dli-service-portal/branches/ES_7/static/bower_components/jquery/LICENSE.txt | ||
---|---|---|
1 |
Copyright JS Foundation and other contributors, https://js.foundation/ |
|
2 |
|
|
3 |
This software consists of voluntary contributions made by many |
|
4 |
individuals. For exact contribution history, see the revision history |
|
5 |
available at https://github.com/jquery/jquery |
|
6 |
|
|
7 |
The following license applies to all parts of this software except as |
|
8 |
documented below: |
|
9 |
|
|
10 |
==== |
|
11 |
|
|
12 |
Permission is hereby granted, free of charge, to any person obtaining |
|
13 |
a copy of this software and associated documentation files (the |
|
14 |
"Software"), to deal in the Software without restriction, including |
|
15 |
without limitation the rights to use, copy, modify, merge, publish, |
|
16 |
distribute, sublicense, and/or sell copies of the Software, and to |
|
17 |
permit persons to whom the Software is furnished to do so, subject to |
|
18 |
the following conditions: |
|
19 |
|
|
20 |
The above copyright notice and this permission notice shall be |
|
21 |
included in all copies or substantial portions of the Software. |
|
22 |
|
|
23 |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
24 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
25 |
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
26 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
|
27 |
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
|
28 |
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|
29 |
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
30 |
|
|
31 |
==== |
|
32 |
|
|
33 |
All files located in the node_modules and external directories are |
|
34 |
externally maintained libraries used by this software which have their |
|
35 |
own licenses; we recommend you read them, as their terms may differ from |
|
36 |
the terms above. |
modules/dli-service-portal/branches/ES_7/static/bower_components/jquery/external/sizzle/LICENSE.txt | ||
---|---|---|
1 |
Copyright jQuery Foundation and other contributors, https://jquery.org/ |
|
2 |
|
|
3 |
This software consists of voluntary contributions made by many |
|
4 |
individuals. For exact contribution history, see the revision history |
|
5 |
available at https://github.com/jquery/sizzle |
|
6 |
|
|
7 |
The following license applies to all parts of this software except as |
|
8 |
documented below: |
|
9 |
|
|
10 |
==== |
|
11 |
|
|
12 |
Permission is hereby granted, free of charge, to any person obtaining |
|
13 |
a copy of this software and associated documentation files (the |
|
14 |
"Software"), to deal in the Software without restriction, including |
|
15 |
without limitation the rights to use, copy, modify, merge, publish, |
|
16 |
distribute, sublicense, and/or sell copies of the Software, and to |
|
17 |
permit persons to whom the Software is furnished to do so, subject to |
|
18 |
the following conditions: |
|
19 |
|
|
20 |
The above copyright notice and this permission notice shall be |
|
21 |
included in all copies or substantial portions of the Software. |
|
22 |
|
Also available in: Unified diff
created branch for es 7