1st Commit 24012024
|
@ -0,0 +1 @@
|
|||
12
|
|
@ -0,0 +1 @@
|
|||
12
|
|
@ -0,0 +1,108 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class UsageStats implements Serializable {
|
||||
|
||||
private final static long serialVersionUID = 1;
|
||||
|
||||
private final List<RepositoryStats> downloads = new ArrayList<>();
|
||||
private final List<RepositoryStats> views = new ArrayList<>();
|
||||
|
||||
private String total_downloads = "0";
|
||||
private String total_views = "0";
|
||||
private String pageviews = "0";
|
||||
private String total_openaire_views = "0";
|
||||
private String total_openaire_downloads = "0";
|
||||
|
||||
public UsageStats() {
|
||||
}
|
||||
|
||||
@JsonProperty("downloads")
|
||||
public List<RepositoryStats> getDownloads() {
|
||||
return downloads;
|
||||
}
|
||||
|
||||
@JsonProperty("views")
|
||||
public List<RepositoryStats> getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void addViews(RepositoryStats view) {
|
||||
views.add(view);
|
||||
}
|
||||
|
||||
public void addDownloads(RepositoryStats download) {
|
||||
downloads.add(download);
|
||||
}
|
||||
|
||||
@JsonProperty("total_downloads")
|
||||
public String getTotal_downloads() {
|
||||
return total_downloads;
|
||||
}
|
||||
|
||||
public void setTotal_downloads(String total_downloads) {
|
||||
this.total_downloads = total_downloads;
|
||||
}
|
||||
|
||||
@JsonProperty("total_views")
|
||||
public String getTotal_views() {
|
||||
return total_views;
|
||||
}
|
||||
|
||||
public void setTotal_views(String total_views) {
|
||||
this.total_views = total_views;
|
||||
}
|
||||
|
||||
@JsonProperty("pageviews")
|
||||
public String getPageViews() {
|
||||
return pageviews;
|
||||
}
|
||||
|
||||
public void setPageViews(String pageviews) {
|
||||
this.pageviews = pageviews;
|
||||
}
|
||||
|
||||
@JsonProperty("total_openaire_views")
|
||||
public String getTotal_openaire_views() {
|
||||
return total_openaire_views;
|
||||
}
|
||||
|
||||
public void setTotal_openaire_views(String total_openaire_views) {
|
||||
this.total_openaire_views = total_openaire_views;
|
||||
}
|
||||
|
||||
@JsonProperty("total_openaire_downloads")
|
||||
public String getTotal_openaire_downloads() {
|
||||
return total_openaire_downloads;
|
||||
}
|
||||
|
||||
public void setTotal_openaire_downloads(String total_openaire_downloads) {
|
||||
this.total_openaire_downloads = total_openaire_downloads;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public String toString(){
|
||||
String string;
|
||||
string = total_downloads + " ";
|
||||
string += total_views + " ";
|
||||
string += pageviews + " ";
|
||||
string += total_openaire + " ";
|
||||
|
||||
for(RepositoryStats repositoryStats : downloads){
|
||||
string += repositoryStats.toString() + " ";
|
||||
}
|
||||
|
||||
for(RepositoryStats repositoryStats : views){
|
||||
string += repositoryStats.toString() + " ";
|
||||
}
|
||||
return string;
|
||||
}
|
||||
*/
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../assets/jquery.js"></script>
|
||||
<script src="../assets/uikit.js"></script>
|
||||
<script src="../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="./sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="./sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header=""><!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="./sushilite/">
|
||||
SUSHI Lite Client</a> </h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
|
||||
<div class="uk-container">
|
||||
<h2 class="uk-text-center">
|
||||
404: Page not found
|
||||
</h2>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,40 @@
|
|||
package eu.dnetlib.usagestats.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
||||
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
|
||||
|
||||
/**
|
||||
* Created by tsampikos on 12/4/2017.
|
||||
*/
|
||||
@Configuration
|
||||
//public class WebMvcConfiguration implements WebMvcConfigurer {
|
||||
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
|
||||
|
||||
@Override
|
||||
public void addViewControllers(ViewControllerRegistry registry) {
|
||||
registry.addViewController("/sushilite").setViewName("redirect:/sushilite/");
|
||||
registry.addViewController("/sushilite/").setViewName("forward:/sushilite/index.html");
|
||||
|
||||
registry.addViewController("/sushilite/AR1").setViewName("redirect:/sushilite/AR1/");
|
||||
registry.addViewController("/sushilite/AR1/").setViewName("forward:/sushilite/AR1/index.html");
|
||||
|
||||
registry.addViewController("/sushilite/IR1").setViewName("redirect:/sushilite/IR1/");
|
||||
registry.addViewController("/sushilite/IR1/").setViewName("forward:/sushilite/IR1/index.html");
|
||||
|
||||
registry.addViewController("/sushilite/RR1").setViewName("redirect:/sushilite/RR1/");
|
||||
registry.addViewController("/sushilite/RR1/").setViewName("forward:/sushilite/RR1/index.html");
|
||||
|
||||
registry.addViewController("/sushilite/JR1").setViewName("redirect:/sushilite/JR1/");
|
||||
registry.addViewController("/sushilite/JR1/").setViewName("forward:/sushilite/JR1/index.html");
|
||||
|
||||
registry.addViewController("/sushilite/BR1").setViewName("redirect:/sushilite/BR1/");
|
||||
registry.addViewController("/sushilite/BR1/").setViewName("forward:/sushilite/BR1/index.html");
|
||||
|
||||
registry.addViewController("/sushilite/BR2").setViewName("redirect:/sushilite/BR2/");
|
||||
registry.addViewController("/sushilite/BR2/").setViewName("forward:/sushilite/BR2/index.html");
|
||||
|
||||
super.addViewControllers(registry);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-forml uk-width-1-1@s uk-width-2-3@m uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='AR1'>AR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,230 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-forml uk-width-1-1@s uk-width-2-3@m uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='RR1'>RR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Optional Filters</h5>
|
||||
<p>By default results are returned for all repositories. Use this filter to get results for a single repository<br />
|
||||
Repository Identifier format: <b>namespace:value</b><br />
|
||||
valid namespace: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<p>Optional filter to only show results for a single item type, e.g. article, book, etc.</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Data Type:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='ItemDataType'>
|
||||
<option value="">--- Select ItemDataType ---</option>
|
||||
<option value='Annotation'>Annotation</option>
|
||||
<option value='Article'>Article</option>
|
||||
<option value='Bachelor thesis'>Bachelor thesis</option>
|
||||
<option value='Book'>Book</option>
|
||||
<option value='clinical trial'>clinical trial</option>
|
||||
<option value='Collection'>Collection</option>
|
||||
<option value='Conference object'>Conference object</option>
|
||||
<option value='Contribution for newspaper or weekly magazine'>Contribution for newspaper or weekly magazine</option>
|
||||
<option value='Dataset'>Dataset</option>
|
||||
<option value='Doctoral thesis'>Doctoral thesis</option>
|
||||
<option value='Event'>Event</option>
|
||||
<option value='External research report'>External research report</option>
|
||||
<option value='Film'>Film</option>
|
||||
<option value='Image'>Image</option>
|
||||
<option value='InteractiveResource'>InteractiveResource</option>
|
||||
<option value='Internal report'>Internal report</option>
|
||||
<option value='Lecture'>Lecture</option>
|
||||
<option value='Master thesis'>Master thesis</option>
|
||||
<option value='Newsletter'>Newsletter</option>
|
||||
<option value='Other'>Other</option>
|
||||
<option value='Part of book or chapter of book'>Part of book or chapter of book</option>
|
||||
<option value='Patent'>Patent</option>
|
||||
<option value='PhysicalObject'>PhysicalObject</option>
|
||||
<option value='Preprint'>Preprint</option>
|
||||
<option value='Report'>Report</option>
|
||||
<option value='Research'>Research</option>
|
||||
<option value='Review'>Review</option>
|
||||
<option value='Software'>Software</option>
|
||||
<option value='Sound'>Sound</option>
|
||||
<option value='Unknown'>Unknown</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-forml uk-width-1-1@s uk-width-2-3@m uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='BR2'>BR2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,322 @@
|
|||
|
||||
.tm-toolbar .uk-subnav-line .custom-discover-li {
|
||||
color:#05007A !important;
|
||||
background:#fff;
|
||||
display: block;
|
||||
}
|
||||
.tm-toolbar .uk-subnav-line .custom-discover-li a{
|
||||
color:#05007A !important;
|
||||
}
|
||||
.custom-discover-toolbar ul.uk-subnav.uk-subnav-line{
|
||||
background-color: #f25f30 !important;
|
||||
}
|
||||
|
||||
.custom-discover-toolbar .inner {
|
||||
background-color: #f25f30 !important;
|
||||
}
|
||||
|
||||
.custom-discover-toolbar{
|
||||
border-top-color:#f25f30 !important;
|
||||
}
|
||||
.custom-footer{
|
||||
position:relative;
|
||||
bottom:0;
|
||||
left:0;
|
||||
}
|
||||
.custom-external {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/icon_external.png") no-repeat scroll left center;
|
||||
padding: 0 0 0 16px;
|
||||
}
|
||||
|
||||
.custom-navbar-toggle-icon, .custom-user-mini-panel{
|
||||
color:#444 !important
|
||||
}
|
||||
.custom-user-mini-panel a{
|
||||
color:rgb(36, 91, 204);
|
||||
}
|
||||
.custom-main-content{
|
||||
min-height: 550px;
|
||||
}
|
||||
|
||||
.custom-autocomplete .uk-nav-autocomplete > li > a:hover {
|
||||
background: #00a8e6 none repeat scroll 0 0;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;
|
||||
color: #FFF;
|
||||
outline: medium none;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.custom-autocomplete .uk-nav-navbar > li > a {
|
||||
color: #444;
|
||||
}
|
||||
.custom-description-list-horizontal{ line-height:200%}
|
||||
.uk-alert-default {
|
||||
background: #fff none repeat scroll 0 0;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
color: #444;
|
||||
height: 30px;
|
||||
max-width: 100%;
|
||||
padding: 4px 6px;
|
||||
|
||||
}
|
||||
.custom-hidden-dropdown-menu {position:static !important;}
|
||||
.searchFilterBoxValues {overflow:auto; max-height:200px; }
|
||||
.selected-filters-box {margin:5px; background-color:#F8F8F8; }
|
||||
.search-form {margin:5px; }
|
||||
.clickable { cursor:pointer; }
|
||||
.search-filters .uk-accordion-title{
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
}
|
||||
.search-results {
|
||||
min-height: 1100px;
|
||||
}
|
||||
.other-results {
|
||||
min-height: 300px;
|
||||
}
|
||||
.OPEN {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/openAccess.png") no-repeat scroll right center;
|
||||
padding-right: 18px;
|
||||
min-height: 18px;
|
||||
}
|
||||
|
||||
.EMBARGO, .CLOSED, .RESTRICTED {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/closedAccess.png") no-repeat scroll right center;
|
||||
padding-right: 18px;
|
||||
}
|
||||
|
||||
.sc39 {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/sc39.png") no-repeat scroll right center;
|
||||
padding-right: 24px;
|
||||
}
|
||||
|
||||
.projectIcon {
|
||||
display: inline-table;
|
||||
}
|
||||
|
||||
.dateFilter .mydp{
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
|
||||
/*.tooltip {
|
||||
max-width: none;
|
||||
background: rgba(100, 100, 100, 1);
|
||||
}*/
|
||||
.tooltip-custom-font-size {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.custom-select-mini{
|
||||
max-width:170px !important;
|
||||
}
|
||||
.custom-icon {
|
||||
line-height: unset;
|
||||
}
|
||||
/*.custom-tab-content-large{
|
||||
min-height: 800px;
|
||||
}
|
||||
*/
|
||||
.custom-tab-content {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.custom-dataTable-content {
|
||||
min-height: 600px;
|
||||
}
|
||||
|
||||
.custom-html-table-height {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.filterItem span {
|
||||
display: inline-flex;
|
||||
}
|
||||
.filterItem .filterName {
|
||||
max-width: 71%;
|
||||
|
||||
}
|
||||
.browseFilters .filterItem .filterName {
|
||||
max-width: 68%;
|
||||
}
|
||||
|
||||
.filterItem .filterNumber {
|
||||
width: 20%;
|
||||
}
|
||||
.filterItem span {
|
||||
|
||||
white-space: nowrap;
|
||||
}
|
||||
.browseFilters .filterItem span div {
|
||||
/*min-width: 45px;*/
|
||||
}
|
||||
.filterItem span div {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
/*min-width: 81px;*/
|
||||
}
|
||||
|
||||
.browseFilters{
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
max-height:265px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.custom-offcanvas-close {
|
||||
position: relative;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
.uk-link{
|
||||
color: #292C3D !important;
|
||||
}
|
||||
.uk-breadcrumb > :last-child > * {
|
||||
color:#cbcbcb !important;
|
||||
}
|
||||
.uk-breadcrumb .uk-active a{
|
||||
color: #767779 !important;
|
||||
}
|
||||
|
||||
.publicationTitleIcon {
|
||||
background: url("/assets/publication.png") no-repeat;
|
||||
}
|
||||
.datasetTitleIcon {
|
||||
background: url("/assets/dataset.png") no-repeat;
|
||||
}
|
||||
.projectTitleIcon {
|
||||
background: url("/assets/project.png") no-repeat;
|
||||
}
|
||||
.organizationTitleIcon {
|
||||
background: url("/assets/organization.png") no-repeat;
|
||||
}
|
||||
.datasourceTitleIcon {
|
||||
background: url("/assets/datasource.png") no-repeat;
|
||||
}
|
||||
.entityTitleIcon{
|
||||
background-repeat: :no-repeat;
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 36px;
|
||||
width: 42px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.entityIcon{
|
||||
height: 15px;
|
||||
width: 20px;
|
||||
|
||||
}
|
||||
/*.uk-tab{
|
||||
border-bottom: 1px #cbcbcb solid;
|
||||
}*/
|
||||
.label-underCuration{
|
||||
background: #fef5d2 !important;
|
||||
}
|
||||
|
||||
.label-blue {
|
||||
background:#d4f3ff;
|
||||
color:#00a0de
|
||||
}
|
||||
.label-green {
|
||||
background:#d1f6e8;
|
||||
color:#01a566
|
||||
}
|
||||
.label-yellow {
|
||||
background:#fef5d2;
|
||||
color:#cca607
|
||||
}
|
||||
.label-red {
|
||||
background:#fef0ef;
|
||||
color:#f54f43
|
||||
}
|
||||
.label-grey{
|
||||
background: #f8f8f8;
|
||||
color: #666;
|
||||
}
|
||||
.label-orange{
|
||||
background: #fef5d2;
|
||||
color: #f0506e;
|
||||
|
||||
}
|
||||
.uk-tab {
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
margin-left: -20px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
position: relative;
|
||||
}
|
||||
.uk-tab::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 20px;
|
||||
right: 0;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
.mainPageSearchForm{
|
||||
background-image: url("./globe_tech.jpg"); background-color: rgb(255, 255, 255); box-sizing: border-box; min-height: calc(100vh - 412.767px);
|
||||
}
|
||||
.searchForm, .publicationsSearchForm, .projectsSearchForm, .organizationsSearchForm, .datasetsSearchForm, .datasourcesSearchForm, .journalsSearchForm,
|
||||
.entityRegistriesSearchForm, .compatibleDatasourcesSearchForm,
|
||||
.journalsTableSearchForm, .compatibleDatasourcesTableSearchForm, .entityRegistriesTableSearchForm{
|
||||
background-image: url('./formImage.jpg'); box-sizing: border-box; height: 250px;
|
||||
}
|
||||
|
||||
.divider-table tbody td, .uk-table th {
|
||||
border-bottom: 1px solid #E5E5E5;
|
||||
}
|
||||
|
||||
#feedback {
|
||||
float: left;
|
||||
position: fixed;
|
||||
top: calc(50% - 47px);
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#feedback a {
|
||||
background: #F25F30;
|
||||
border-radius: 5px 0 0 5px;
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, .3);
|
||||
border: 3px solid #fff;
|
||||
border-right: 0;
|
||||
display: block;
|
||||
padding: 20px 12px;
|
||||
transition: all .2s ease-in-out;
|
||||
}
|
||||
|
||||
#feedback a:hover {
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.descriptionText{
|
||||
Padding-left: 25px !important;
|
||||
Border-left: 10px solid #fafafa;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
li span {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.item span {
|
||||
width: 100px;
|
||||
margin-left: 1em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.item span div {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}*/
|
|
@ -0,0 +1,12 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import eu.dnetlib.usagestats.portal.TotalStats;
|
||||
import eu.dnetlib.usagestats.portal.UsageStats;
|
||||
|
||||
public interface UsageStatsService {
|
||||
UsageStats getDatasourceClicks(String id);
|
||||
UsageStats getProjectClicks(String id);
|
||||
UsageStats getResultClicks(String id);
|
||||
//UsageStats getOrganizationClicks(String id);
|
||||
TotalStats getTotalStats();
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#spring.jpa.database=POSTGRESQL
|
||||
#spring.datasource.platform=postgres
|
||||
#spring.jpa.show-sql=true
|
||||
#spring.jpa.hibernate.ddl-auto=validate
|
||||
name=usageStatsAPI
|
||||
#logging.config=log4j.properties
|
||||
#spring.database.driverClassName=org.postgresql.Driver
|
||||
#spring.datasource.url=jdbc:postgresql://vatopedi.di.uoa.gr:5432/stats
|
||||
#spring.datasource.username=sqoop
|
||||
#spring.datasource.password=sqoop
|
||||
#usagestats.driverClassName=org.postgresql.Driver
|
||||
#usagestats.url=jdbc:postgresql://localhost:5432/stats
|
||||
#usagestats.username=sqoop
|
||||
#usagestats.password=sqoop
|
||||
#server.port=8080
|
||||
|
||||
#spring.jackson.serialization.INDENT_OUTPUT=true
|
|
@ -0,0 +1,53 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Created by tsampikos on 8/11/2016.
|
||||
*/
|
||||
public class RepositoryStats implements Serializable {
|
||||
private final static long serialVersionUID = 1;
|
||||
private String datasource_name = "";
|
||||
private String datasource_id = "";
|
||||
private String value = "";
|
||||
private String openaire = "";
|
||||
|
||||
public RepositoryStats() {
|
||||
}
|
||||
|
||||
public RepositoryStats(String datasource_name, String datasource_id, String value, String openaire) {
|
||||
this.datasource_name = datasource_name;
|
||||
this.datasource_id = datasource_id;
|
||||
this.value = value;
|
||||
this.openaire = openaire;
|
||||
}
|
||||
|
||||
@JsonProperty("datasource_name")
|
||||
public String getDatasource_name() {
|
||||
return datasource_name;
|
||||
}
|
||||
|
||||
@JsonProperty("datasource_id")
|
||||
public String getDatasource_id() {
|
||||
return datasource_id;
|
||||
}
|
||||
|
||||
@JsonProperty("value")
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@JsonProperty("openaire")
|
||||
public String getOpenaire() {
|
||||
return openaire;
|
||||
}
|
||||
|
||||
/*
|
||||
public String toString(){
|
||||
return datasource_name + " " + datasource_id + " " + value + " " + openaire;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../assets/jquery.js"></script>
|
||||
<script src="../assets/uikit.js"></script>
|
||||
<script src="../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header=""><!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../sushilite/">
|
||||
SUSHI Lite Client</a> </h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
|
||||
<div class="uk-container uk-text-center">
|
||||
<h3> Supported Reports</h3>
|
||||
<ul class="uk-list">
|
||||
<li><a href="./AR1/">AR1 Report</a></li>
|
||||
<li><a href="./IR1/">IR1 Report</a></li>
|
||||
<li><a href="./RR1/">RR1 Report</a></li>
|
||||
<li><a href="./JR1/">JR1 Report</a></li>
|
||||
<li><a href="./BR1/">BR1 Report</a></li>
|
||||
<li><a href="./BR2/">BR2 Report</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 410 B |
|
@ -0,0 +1,80 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import eu.dnetlib.usagestats.portal.TotalStats;
|
||||
import eu.dnetlib.usagestats.portal.UsageStats;
|
||||
import eu.dnetlib.usagestats.repositories.UsageStatsRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class UsageStatsServiceImpl implements UsageStatsService{
|
||||
|
||||
private final UsageStatsRepository usageStatsRepository;
|
||||
|
||||
public UsageStatsServiceImpl(UsageStatsRepository usageStatsRepository) {
|
||||
this.usageStatsRepository = usageStatsRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsageStats getDatasourceClicks(String id) {
|
||||
String query = "SELECT 'views', sum(s.count), sum(s.openaire) FROM views_stats s where s.repository_id=? " +
|
||||
"UNION ALL SELECT 'downloads', sum(s.count), sum(s.openaire) FROM downloads_stats s where s.repository_id=? " +
|
||||
"UNION ALL SELECT 'pageviews', sum(s.count), '0' FROM pageviews_stats s, result_datasources rd where rd.id=s.result_id and rd.datasource=? ";
|
||||
|
||||
List<String> values = new ArrayList<>();
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
|
||||
return usageStatsRepository.executeUsageStats(query, values, "datasource");
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public UsageStats getOrganizationClicks(String organizationId) {
|
||||
|
||||
String query = "select sum(number_of_views) from organization_stats where id=?";
|
||||
|
||||
List<String> values = new ArrayList<>();
|
||||
values.add(organizationId);
|
||||
|
||||
return usageStatsRepository.executeUsageStats(query, values, "organization");
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
@Override
|
||||
public UsageStats getProjectClicks(String projectId) {
|
||||
String query = "SELECT 'views', sum(s.count), sum(s.openaire) FROM views_stats s, project_results pr where pr.result=s.result_id and pr.id=? " +
|
||||
"UNION ALL SELECT 'downloads', sum(s.count), sum(s.openaire) FROM downloads_stats s, project_results pr where pr.result=s.result_id and pr.id=? " +
|
||||
"UNION ALL SELECT 'pageviews', sum(s.count), '0' FROM pageviews_stats s, project_results pr where pr.result=s.result_id and pr.id=?;";
|
||||
|
||||
List<String> values = new ArrayList<>();
|
||||
values.add(projectId);
|
||||
values.add(projectId);
|
||||
values.add(projectId);
|
||||
|
||||
return usageStatsRepository.executeUsageStats(query, values, "project");
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsageStats getResultClicks(String id) {
|
||||
String query = "SELECT 'views', s.repository_id, CASE WHEN s.source='OpenAIRE' THEN d.name ELSE d.name ||' - '|| s.source END, sum(count), sum(openaire) FROM views_stats s, datasource d WHERE s.repository_id=d.id AND s.result_id=? GROUP BY s.source, s.repository_id, d.name " +
|
||||
"UNION ALL SELECT 'downloads', s.repository_id, CASE WHEN s.source='OpenAIRE' THEN d.name ELSE d.name ||' - '|| s.source END, sum(count), sum(s.openaire) FROM downloads_stats s, datasource d WHERE s.repository_id=d.id AND s.result_id=? GROUP BY s.source, s.repository_id, d.name " +
|
||||
"UNION ALL SELECT 'pageviews', 'OpenAIRE id', 'OpenAIRE', sum(count), '0' FROM pageviews_stats s WHERE result_id=?;";
|
||||
|
||||
List<String> values = new ArrayList<>();
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
|
||||
return usageStatsRepository.executeUsageStats(query, values, "result");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TotalStats getTotalStats() {
|
||||
return usageStatsRepository.executeTotalStats();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,239 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-forml uk-width-1-1@s uk-width-2-3@m uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='IR1'>IR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. openaire:opendoar____::5cbdfd0dfa22a3fca7266376887f549b">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________7::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<p>Optional filter to only show results for a single item type, e.g. article, book, etc.</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Data Type:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='ItemDataType'>
|
||||
<option value="">--- Select ItemDataType ---</option>
|
||||
<option value='Annotation'>Annotation</option>
|
||||
<option value='Article'>Article</option>
|
||||
<option value='Bachelor thesis'>Bachelor thesis</option>
|
||||
<option value='Book'>Book</option>
|
||||
<option value='clinical trial'>clinical trial</option>
|
||||
<option value='Collection'>Collection</option>
|
||||
<option value='Conference object'>Conference object</option>
|
||||
<option value='Contribution for newspaper or weekly magazine'>Contribution for newspaper or weekly magazine</option>
|
||||
<option value='Dataset'>Dataset</option>
|
||||
<option value='Doctoral thesis'>Doctoral thesis</option>
|
||||
<option value='Event'>Event</option>
|
||||
<option value='External research report'>External research report</option>
|
||||
<option value='Film'>Film</option>
|
||||
<option value='Image'>Image</option>
|
||||
<option value='InteractiveResource'>InteractiveResource</option>
|
||||
<option value='Internal report'>Internal report</option>
|
||||
<option value='Lecture'>Lecture</option>
|
||||
<option value='Master thesis'>Master thesis</option>
|
||||
<option value='Newsletter'>Newsletter</option>
|
||||
<option value='Other'>Other</option>
|
||||
<option value='Part of book or chapter of book'>Part of book or chapter of book</option>
|
||||
<option value='Patent'>Patent</option>
|
||||
<option value='PhysicalObject'>PhysicalObject</option>
|
||||
<option value='Preprint'>Preprint</option>
|
||||
<option value='Report'>Report</option>
|
||||
<option value='Research'>Research</option>
|
||||
<option value='Review'>Review</option>
|
||||
<option value='Software'>Software</option>
|
||||
<option value='Sound'>Sound</option>
|
||||
<option value='Unknown'>Unknown</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,65 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class YearlyStats {
|
||||
private int year;
|
||||
private int repositories;
|
||||
private int items;
|
||||
private int downloads;
|
||||
private int views;
|
||||
private List<MonthlyStats> monthlyStats;
|
||||
|
||||
@JsonProperty("monthly_stats")
|
||||
public List<MonthlyStats> getMonthlyStats() {
|
||||
return monthlyStats;
|
||||
}
|
||||
|
||||
public void setMonthlyStats(List<MonthlyStats> monthlyStats) {
|
||||
this.monthlyStats = monthlyStats;
|
||||
}
|
||||
|
||||
public YearlyStats() {}
|
||||
|
||||
public int getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
public void setYear(int year) {
|
||||
this.year = year;
|
||||
}
|
||||
|
||||
public int getRepositories() {
|
||||
return repositories;
|
||||
}
|
||||
|
||||
public void setRepositories(int repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
public int getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(int items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public int getDownloads() {
|
||||
return downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(int downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public int getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void setViews(int views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 4.5 KiB |
|
@ -0,0 +1,125 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>eu.dnetlib</groupId>
|
||||
<artifactId>dnet-openaire-usage-stats-api</artifactId>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.15.RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>eu.dnetlib</groupId>
|
||||
<artifactId>dnet-openaire-usage-stats-sushilite</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-logging</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-log4j2</artifactId>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.googlecode.json-simple</groupId>
|
||||
<artifactId>json-simple</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-dbutils</groupId>
|
||||
<artifactId>commons-dbutils</artifactId>
|
||||
<version>1.7</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<tomcat.version>7.0.52</tomcat.version>
|
||||
</properties>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<finalName>usagestats</finalName>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spring-releases</id>
|
||||
<url>https://repo.spring.io/libs-release</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>spring-releases</id>
|
||||
<url>https://repo.spring.io/libs-release</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</project>
|
|
@ -0,0 +1,235 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.dnetlib.usagestats.repositories.UsageStatsRepository;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportItem;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportException;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportResponse;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportResponseWrapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
@Service
|
||||
public class SushiLiteServiceImpl implements SushiLiteService {
|
||||
|
||||
|
||||
private final UsageStatsRepository usageStatsRepository;
|
||||
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
|
||||
public SushiLiteServiceImpl(UsageStatsRepository usageStatsRepository) {
|
||||
this.usageStatsRepository = usageStatsRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportResponseWrapper buildReport(String reportName, String release, String requestorId, String beginDate,
|
||||
String endDate, String repositoryIdentifier, String itemIdentifier,
|
||||
String itemDataType, String hasDoi, String granularity, String callback) {
|
||||
|
||||
List<ReportItem> reportItems = new ArrayList<>();
|
||||
List<ReportException> reportExceptions = new ArrayList<>();
|
||||
|
||||
if (!granularity.equalsIgnoreCase("totals") && !granularity.equalsIgnoreCase("monthly")) {
|
||||
reportExceptions.add(new ReportException("3062", "Warning", "Invalid ReportAttribute Value", "Granularity: \'" + granularity + "\' unknown. Defaulting to Monthly"));
|
||||
granularity = "Monthly";
|
||||
}
|
||||
|
||||
Date beginDateParsed;
|
||||
if (!beginDate.equals("")) {
|
||||
beginDateParsed = tryParse(beginDate);
|
||||
if (beginDateParsed != null && (granularity.toLowerCase().equals("monthly") || beginDate.length() == 7)) {
|
||||
Calendar temp = Calendar.getInstance();
|
||||
temp.setTime(beginDateParsed);
|
||||
temp.set(Calendar.DAY_OF_MONTH, temp.getActualMinimum(Calendar.DAY_OF_MONTH));
|
||||
beginDateParsed = temp.getTime();
|
||||
}
|
||||
} else {
|
||||
Calendar temp = Calendar.getInstance();
|
||||
temp.add(Calendar.MONTH, -1);
|
||||
temp.set(Calendar.DAY_OF_MONTH, temp.getActualMinimum(Calendar.DAY_OF_MONTH));
|
||||
beginDateParsed = temp.getTime();
|
||||
reportExceptions.add(new ReportException("3021", "Warning", "Unspecified Date Arguments", "Begin Date set to default: " + new SimpleDateFormat("yyyy-MM-dd").format(beginDateParsed)));
|
||||
}
|
||||
|
||||
Date endDateParsed;
|
||||
if (!endDate.equals("")) {
|
||||
endDateParsed = tryParse(endDate);
|
||||
if (endDateParsed != null && (granularity.toLowerCase().equals("monthly") || endDate.length() == 7)) {
|
||||
Calendar temp = Calendar.getInstance();
|
||||
temp.setTime(endDateParsed);
|
||||
temp.set(Calendar.DAY_OF_MONTH, temp.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
endDateParsed = temp.getTime();
|
||||
}
|
||||
} else {
|
||||
Calendar temp = Calendar.getInstance();
|
||||
temp.add(Calendar.MONTH, -1);
|
||||
temp.set(Calendar.DAY_OF_MONTH, temp.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
endDateParsed = temp.getTime();
|
||||
reportExceptions.add(new ReportException("3021", "Warning", "Unspecified Date Arguments", "End Date set to default: " + new SimpleDateFormat("yyyy-MM-dd").format(endDateParsed)));
|
||||
}
|
||||
//log.error("dates: " + beginDateParsed.toString() + " - " + endDateParsed.toString());
|
||||
|
||||
if (beginDateParsed == null) {
|
||||
reportExceptions.add(new ReportException("3020", "Error", "Invalid Date Arguments", "Begin Date: " + beginDate + " is not a valid date"));
|
||||
}
|
||||
if (endDateParsed == null) {
|
||||
reportExceptions.add(new ReportException("3020", "Error", "Invalid Date Arguments", "End Date: " + endDate + " is not a valid date"));
|
||||
}
|
||||
if (beginDateParsed != null && endDateParsed != null && !beginDateParsed.before(endDateParsed)) {
|
||||
reportExceptions.add(new ReportException("3020", "Error", "Invalid Date Arguments", "BeginDate \'" + new SimpleDateFormat("yyyy-MM-dd").format(beginDateParsed) + "\' is greater than EndDate \'" + new SimpleDateFormat("yyyy-MM-dd").format(endDateParsed) + "\'"));
|
||||
}
|
||||
|
||||
String repoid = "";
|
||||
if (!repositoryIdentifier.equals("")) {
|
||||
repoid = usageStatsRepository.executeRepoId(repositoryIdentifier, reportName.toLowerCase());
|
||||
if (repoid.equals("-1")) {
|
||||
reportExceptions.add(new ReportException("3060", "Error", "Invalid Filter Value", "RepositoryIdentifier: " + repositoryIdentifier + " is not valid"));
|
||||
}
|
||||
}
|
||||
String itemid = "";
|
||||
if (!itemIdentifier.equals("")) {
|
||||
String[] split = itemIdentifier.split(":");
|
||||
switch (split[0].toLowerCase()) {
|
||||
case "oid":
|
||||
itemid = itemIdentifier;
|
||||
break;
|
||||
case "doi":
|
||||
itemid = itemIdentifier;
|
||||
break;
|
||||
case "openaire":
|
||||
itemid = itemIdentifier;
|
||||
break;
|
||||
default:
|
||||
reportExceptions.add(new ReportException("3060", "Error", "Invalid Filter Value", "ItemIdentifier: " + itemIdentifier + " is not valid"));
|
||||
itemid = "-1";
|
||||
}
|
||||
}
|
||||
if (itemid.equals("") && repoid.equals("") && !reportName.equalsIgnoreCase("rr1") && !reportName.equalsIgnoreCase("jr1")) {
|
||||
reportExceptions.add(new ReportException("3070", "Error", "Required Filter Missing", "ItemIdentifier or RepositoryIdentifier must be supplied"));
|
||||
}
|
||||
if (reportName.equalsIgnoreCase("ar1")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
if (itemDataType.equalsIgnoreCase("") || itemDataType.equalsIgnoreCase("article")) {
|
||||
usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, "Article", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else if (!repoid.equals("")) {
|
||||
usageStatsRepository.executeBatchItems(reportItems, repoid, "Article", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("br1")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
if (itemDataType.equalsIgnoreCase("") || itemDataType.equalsIgnoreCase("book")) {
|
||||
usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, "Book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else if (!repoid.equals("")) {
|
||||
usageStatsRepository.executeBatchItems(reportItems, repoid, "Book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("br2")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
if (itemDataType.equalsIgnoreCase("") || itemDataType.equalsIgnoreCase("part of book or chapter of book")) {
|
||||
usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, "Part of book or chapter of book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else if (!repoid.equals("")) {
|
||||
usageStatsRepository.executeBatchItems(reportItems, repoid, "Part of book or chapter of book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("ir1")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
} else if (!repoid.equals("")) {
|
||||
usageStatsRepository.executeBatchItems(reportItems, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
}
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("rr1")) {
|
||||
if (!repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
usageStatsRepository.executeRepo(reportItems, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
}
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("jr1")) {
|
||||
if (!repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
usageStatsRepository.executeJournal(reportItems, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
}
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}else if (reportName.equals("")) {
|
||||
reportExceptions.add(new ReportException("3050", "Error", "Report argument is missing", "You must supply a Report argument"));
|
||||
} else {
|
||||
reportExceptions.add(new ReportException("3000", "Error", "Report " + reportName + " not supported", "Supported reports: AR1, IR1, RR1, BR1, BR2"));
|
||||
}
|
||||
|
||||
|
||||
ReportResponse reportResponse = new ReportResponse(reportName, release, requestorId, beginDate, endDate,
|
||||
repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback, reportItems, reportExceptions);
|
||||
|
||||
return new ReportResponseWrapper(reportResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String displayReport(String reportName, String release, String requestorId, String beginDate, String endDate, String repositoryIdentifier, String itemIdentifier, String itemDataType, String hasDoi, String granularity, String callback, String pretty) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
if (pretty.equalsIgnoreCase("pretty")) {
|
||||
return "<pre>" + objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(buildReport(reportName, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback)).replaceAll("/", "\\\\/") + "</pre>";
|
||||
}
|
||||
return objectMapper.writeValueAsString(buildReport(reportName, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback)).replaceAll("/", "\\\\/");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
//return report.getReport(reportP, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback, pretty);
|
||||
}
|
||||
|
||||
private Date tryParse(String dateString) {
|
||||
try {
|
||||
if (dateString.length() == 7) {
|
||||
return new SimpleDateFormat("yyyy-MM").parse(dateString);
|
||||
} else if (dateString.length() == 10) {
|
||||
return new SimpleDateFormat("yyyy-MM-dd").parse(dateString);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("ParseError: ", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="./assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="./assets/jquery.js"></script>
|
||||
<script src="./assets/uikit.js"></script>
|
||||
<script src="./assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="./assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="./assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="./assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="./assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="./sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="./sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header=""><!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="./assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="./sushilite/">
|
||||
SUSHI Lite Client</a> </h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
|
||||
<div class="uk-container uk-text-center">
|
||||
<h3> Supported Reports</h3>
|
||||
<ul class="uk-list">
|
||||
<li><a href="./sushilite/AR1/">AR1 Report</a></li>
|
||||
<li><a href="./sushilite/IR1/">IR1 Report</a></li>
|
||||
<li><a href="./sushilite/RR1/">RR1 Report</a></li>
|
||||
<li><a href="./sushilite/JR1/">JR1 Report</a></li>
|
||||
<li><a href="./sushilite/BR1/">BR1 Report</a></li>
|
||||
<li><a href="./sushilite/BR2/">BR2 Report</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="./assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="./assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,26 @@
|
|||
package eu.dnetlib.usagestats.config;
|
||||
|
||||
//import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
/**
|
||||
* Created by tsampikos on 8/3/2017.
|
||||
*/
|
||||
@Configuration
|
||||
public class DataSourceConfiguration {
|
||||
|
||||
@ConfigurationProperties(prefix = "usagestats")
|
||||
@Bean
|
||||
@Primary
|
||||
public DataSource getDataSource() {
|
||||
return DataSourceBuilder
|
||||
.create()
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
log4j.rootLogger = WARN, R
|
||||
|
||||
log4j.logger.eu.dnetlib = WARN
|
||||
log4j.logger.org.springframework = INFO, S
|
||||
|
||||
log4j.additivity.org.springframework = false
|
||||
|
||||
log4j.appender.R=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.R.File=/var/log/dnet/usageStatsAPI/usageStatsAPI.log
|
||||
log4j.appender.R.MaxFileSize=10MB
|
||||
log4j.appender.R.MaxBackupIndex=10
|
||||
log4j.appender.R.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n
|
||||
|
||||
log4j.appender.S=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.S.File=/var/log/dnet/usageStatsAPI/usageStatsAPI-spring.log
|
||||
log4j.appender.S.MaxFileSize=10MB
|
||||
log4j.appender.S.MaxBackupIndex=10
|
||||
log4j.appender.S.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n
|
|
@ -0,0 +1,226 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-forml uk-width-1-1@s uk-width-2-3@m uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='JR1'>JR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Optional Filters</h5>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Journal Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. issn:0430-5027">
|
||||
</div>
|
||||
</div>
|
||||
<p>Optional filter to only show results for a single item type, e.g. article, book, etc.</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Data Type:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='ItemDataType'>
|
||||
<option value="">--- Select ItemDataType ---</option>
|
||||
<option value='Annotation'>Annotation</option>
|
||||
<option value='Article'>Article</option>
|
||||
<option value='Bachelor thesis'>Bachelor thesis</option>
|
||||
<option value='Book'>Book</option>
|
||||
<option value='clinical trial'>clinical trial</option>
|
||||
<option value='Collection'>Collection</option>
|
||||
<option value='Conference object'>Conference object</option>
|
||||
<option value='Contribution for newspaper or weekly magazine'>Contribution for newspaper or weekly magazine</option>
|
||||
<option value='Dataset'>Dataset</option>
|
||||
<option value='Doctoral thesis'>Doctoral thesis</option>
|
||||
<option value='Event'>Event</option>
|
||||
<option value='External research report'>External research report</option>
|
||||
<option value='Film'>Film</option>
|
||||
<option value='Image'>Image</option>
|
||||
<option value='InteractiveResource'>InteractiveResource</option>
|
||||
<option value='Internal report'>Internal report</option>
|
||||
<option value='Lecture'>Lecture</option>
|
||||
<option value='Master thesis'>Master thesis</option>
|
||||
<option value='Newsletter'>Newsletter</option>
|
||||
<option value='Other'>Other</option>
|
||||
<option value='Part of book or chapter of book'>Part of book or chapter of book</option>
|
||||
<option value='Patent'>Patent</option>
|
||||
<option value='PhysicalObject'>PhysicalObject</option>
|
||||
<option value='Preprint'>Preprint</option>
|
||||
<option value='Report'>Report</option>
|
||||
<option value='Research'>Research</option>
|
||||
<option value='Review'>Review</option>
|
||||
<option value='Software'>Software</option>
|
||||
<option value='Sound'>Sound</option>
|
||||
<option value='Unknown'>Unknown</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,47 @@
|
|||
package eu.dnetlib.usagestats.config;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
/**
|
||||
* Created by tsampikos on 20/4/2017.
|
||||
*/
|
||||
@Configuration
|
||||
public class SpringRedisConfiguration {
|
||||
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
|
||||
@Value("${usagestats.redis.hostname}")
|
||||
private String hostname;
|
||||
|
||||
@Value("${usagestats.redis.port}")
|
||||
private int port;
|
||||
|
||||
@Bean
|
||||
public JedisConnectionFactory connectionFactory() {
|
||||
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
|
||||
connectionFactory.setHostName(hostname);
|
||||
connectionFactory.setPort(port);
|
||||
connectionFactory.setUsePool(false);
|
||||
log.info("Opening redis connection to : " + connectionFactory.getHostName() + ":" + connectionFactory.getPort());
|
||||
return connectionFactory;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Autowired
|
||||
public RedisTemplate<String, String> redisTemplate() {
|
||||
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
|
||||
redisTemplate.setConnectionFactory(connectionFactory());
|
||||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setValueSerializer(new StringRedisSerializer());
|
||||
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
|
||||
return redisTemplate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package eu.dnetlib.usagestats.controllers;
|
||||
|
||||
import eu.dnetlib.usagestats.services.SushiLiteService;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* Created by tsampikos on 10/4/2017.
|
||||
*/
|
||||
|
||||
@RestController
|
||||
class SushiLiteController {
|
||||
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
|
||||
private final SushiLiteService sushiLiteService;
|
||||
|
||||
public SushiLiteController(SushiLiteService sushiLiteService) {
|
||||
this.sushiLiteService = sushiLiteService;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/sushilite/GetReport/", method = RequestMethod.GET)
|
||||
public String getReport(@RequestParam(value = "Report", defaultValue = "") String reportP, @RequestParam(value = "Release", defaultValue = "4") String release, @RequestParam(value = "RequestorID", defaultValue = "anonymous") String requestorId,
|
||||
@RequestParam(value = "BeginDate", defaultValue = "") String beginDate, @RequestParam(value = "EndDate", defaultValue = "") String endDate, @RequestParam(value = "RepositoryIdentifier", defaultValue = "") String repositoryIdentifier,
|
||||
@RequestParam(value = "ItemIdentifier", defaultValue = "") String itemIdentifier, @RequestParam(value = "ItemDataType", defaultValue = "") String itemDataType,
|
||||
@RequestParam(value = "hasDOI", defaultValue = "") String hasDoi, @RequestParam(value = "Granularity", defaultValue = "Monthly") String granularity, @RequestParam(value = "Callback", defaultValue = "") String callback,
|
||||
@RequestParam(value = "Pretty", defaultValue = "") String pretty) {
|
||||
log.info("Sushi Report request: " + reportP + " from " + requestorId);
|
||||
log.info("repository identifier: " + repositoryIdentifier + " - item identifier: " + itemIdentifier);
|
||||
|
||||
return sushiLiteService.displayReport(reportP, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback, pretty);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TotalStats {
|
||||
private int repositories;
|
||||
private int items;
|
||||
private int downloads;
|
||||
private int views;
|
||||
private List<YearlyStats> yearlyStats;
|
||||
|
||||
@JsonProperty("yearly_stats")
|
||||
public List<YearlyStats> getYearlyStats() {
|
||||
return yearlyStats;
|
||||
}
|
||||
|
||||
public void setYearlyStats(List<YearlyStats> yearlyStats) {
|
||||
this.yearlyStats = yearlyStats;
|
||||
}
|
||||
|
||||
|
||||
public TotalStats() {}
|
||||
|
||||
public int getRepositories() {
|
||||
return repositories;
|
||||
}
|
||||
|
||||
public void setRepositories(int repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
public int getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(int items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public int getDownloads() {
|
||||
return downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(int downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public int getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void setViews(int views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package eu.dnetlib.usagestats;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.web.support.SpringBootServletInitializer;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.context.annotation.PropertySources;
|
||||
|
||||
@PropertySources({
|
||||
@PropertySource("classpath:usageStatsAPI.properties"),
|
||||
@PropertySource("classpath:dnet-override.properties")}
|
||||
)
|
||||
@SpringBootApplication
|
||||
public class UsageStatsApi extends SpringBootServletInitializer {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(UsageStatsApi.class, args);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportResponseWrapper;
|
||||
|
||||
public interface SushiLiteService {
|
||||
ReportResponseWrapper buildReport(String reportName, String release, String requestorId, String beginDate,
|
||||
String endDate, String repositoryIdentifier, String itemIdentifier,
|
||||
String itemDataType, String hasDoi, String granularity, String callback);
|
||||
|
||||
String displayReport(String reportName, String release, String requestorId, String beginDate,
|
||||
String endDate, String repositoryIdentifier, String itemIdentifier,
|
||||
String itemDataType, String hasDoi, String granularity, String callback, String pretty);
|
||||
}
|
||||
|
|
@ -0,0 +1,251 @@
|
|||
<!DOCTYPE html><html lang="en-gb" dir="ltr" vocab="http://schema.org/"><head>
|
||||
<!--link href="http://demo.openaire.eu" rel="canonical" /-->
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<base href="/">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
|
||||
|
||||
<meta property="og:description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
|
||||
<meta property="og:title" content="Search OpenAIRE">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://demo.openaire.eu">
|
||||
<meta property="og:site_name" content="OpenAIRE">
|
||||
|
||||
<meta property="og:image" content="https://demo.openaire.eu/assets/dl119_files/Symbol.png">
|
||||
<meta property="og:image:secure_url" content="https://demo.openaire.eu/assets/dl119_files/Symbol.png">
|
||||
<meta property="og:image:type" content="image/png">
|
||||
<meta property="og:image:width" content="360">
|
||||
<meta property="og:image:height" content="359">
|
||||
|
||||
<link href="assets/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
|
||||
<title>OpenAIRE | Error page</title>
|
||||
<script>
|
||||
window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
|
||||
// console.log(errorMsg + " __" + url + " __" + lineNumber + " __" + column + " __" + errorObj);
|
||||
if(errorMsg.indexOf("uikit.js") != -1 || url.indexOf("uikit.js") != -1 ){
|
||||
console.log("********UIKIT Error ***********");
|
||||
$.getScript("assets/dl119_files/uikit.js");
|
||||
$.getScript("assets/dl119_files/uikit-icons-max.js");
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<!-- <script src="assets/jquery/jquery.min.js" type="text/javascript"></script> -->
|
||||
<script src="assets/dl119_files/jquery.js"></script>
|
||||
<!-- <script src="assets/dl119_files/uikit.js"></script> -->
|
||||
<script src="assets/dl119_files/uikit-icons-max.js"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
console.log("Is ready - load uikit ***")
|
||||
$.getScript("assets/dl119_files/uikit.js");
|
||||
$.getScript("assets/dl119_files/uikit-icons-max.js");
|
||||
});
|
||||
</script>
|
||||
<!-- <script src="assets/dl119_files/uikit.js"></script> -->
|
||||
<!-- <script src="assets/dl119_files/uikit-icons-max.js"></script> -->
|
||||
|
||||
|
||||
<!-- <link rel="stylesheet" href="node_modules/uikit/dist/css/uikit.min.css"> -->
|
||||
<link rel="stylesheet" href="assets/dl119_files/theme.css">
|
||||
<link rel="stylesheet" href="assets/dl119_files/custom.css">
|
||||
<link rel="stylesheet" href="assets/custom.css">
|
||||
|
||||
<!-- <script async src="assets/dl119_files/theme.js"></script> -->
|
||||
|
||||
<!--script src="node_modules/uikit/dist/js/uikit.min.js"></script-->
|
||||
|
||||
<!-- Google sitename markup-->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context" : "http://schema.org",
|
||||
"@type" : "WebSite",
|
||||
"name" : "OpenAIRE",
|
||||
"url" : "http://demo.openaire.eu"
|
||||
}
|
||||
</script>
|
||||
<!-- End of Google sitename markup-->
|
||||
<!-- Google sitelinks search markup-->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "WebSite",
|
||||
"url" : "http://demo.openaire.eu",
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": "http://demo.openaire.eu/search/find/?keyword={search_term_string}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="//cdn.jsdelivr.net/clipboard.js/1.5.16/clipboard.min.js"></script>
|
||||
<!--script type='text/javascript' src="node_modules/clipboard/dist/clipboard.min.js"></script-->
|
||||
<!--script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script-->
|
||||
|
||||
<!--script type='text/javascript' src='https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js'></script-->
|
||||
|
||||
<!-- End of Google sitelinks search markup-->
|
||||
|
||||
<script src="../node_modules/angular2/bundles/angular2-polyfills.js"></script>
|
||||
|
||||
<style></style></head>
|
||||
<body class="" style="">
|
||||
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<script async="" src="/main.bundle.js"></script>
|
||||
|
||||
<app _nghost-5ee2-1="">
|
||||
<navbar _ngcontent-5ee2-1="">
|
||||
|
||||
|
||||
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-left">
|
||||
<a class="uk-navbar-toggle" href="#tm-mobile" uk-toggle="">
|
||||
<div class="uk-navbar-toggle-icon uk-icon custom-navbar-toggle-icon" uk-navbar-toggle-icon=""> </div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-navbar-item uk-logo" routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="assets/OA DISCOVER_A.png"> </a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<user-mini>
|
||||
|
||||
<!--template bindings={}-->
|
||||
|
||||
</user-mini>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="uk-offcanvas" id="tm-mobile" mode="slide" overlay="" uk-offcanvas="">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<button class="uk-offcanvas-close uk-close uk-icon" type="button" uk-close=""></button>
|
||||
<div class="uk-child-width-1-1 uk-grid" uk-grid="">
|
||||
<div>
|
||||
<!--template bindings={}-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-toolbar custom-discover-toolbar uk-visible@m">
|
||||
<div class="uk-container uk-flex uk-flex-middle uk-container-expand">
|
||||
<div class="uk-margin-auto-left">
|
||||
<div class="uk-grid-medium uk-child-width-auto uk-flex-middle uk-grid uk-grid-stack" uk-grid="margin: uk-margin-small-top">
|
||||
<div class="uk-first-column">
|
||||
<div class="uk-panel inner" id="module-119">
|
||||
<ul class="uk-subnav uk-subnav-line">
|
||||
<li class="uk-active"><a href="https://beta.openaire.eu"><img alt="home" class="uk-responsive-height" src="assets/dl119_files/Home-icon.png"></a></li>
|
||||
<li class="custom-discover-li"><a routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">Discover</a></li>
|
||||
<li><a>Join</a></li>
|
||||
<li><a>Connect</a></li>
|
||||
<li><a>Monitor</a></li>
|
||||
<li><a>Develop</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" style="" top=".tm-header + [class*="uk-section"]" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}">
|
||||
<div class="uk-navbar-left uk-visible@l ">
|
||||
<a class="uk-logo uk-navbar-item" routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="assets/OA DISCOVER_B.png"></a>
|
||||
</div>
|
||||
<div class="uk-navbar-left uk-visible@m uk-hidden@l">
|
||||
<a class="uk-logo uk-navbar-item" routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="assets/OA DISCOVER_A.png"></a>
|
||||
</div>
|
||||
<div class="uk-navbar-center">
|
||||
<!--template bindings={}-->
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<user-mini>
|
||||
|
||||
<!--template bindings={}-->
|
||||
|
||||
</user-mini>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid uk-grid-stack" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</navbar>
|
||||
|
||||
|
||||
|
||||
|
||||
<div _ngcontent-5ee2-1="" class="custom-main-content">
|
||||
<main _ngcontent-5ee2-1="">
|
||||
<router-outlet _ngcontent-5ee2-1=""></router-outlet><error>
|
||||
<div class=" uk-section uk-margin-small-top tm-middle" id="tm-main">
|
||||
<div uk-grid="">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
|
||||
|
||||
<div class="uk-container">
|
||||
<h2>
|
||||
Bad karma: we can't find that page!
|
||||
</h2>
|
||||
<br>
|
||||
|
||||
<p>
|
||||
You asked for /assets/dl119_files/uikit-icon-max.js, but despite our computers looking very hard, we could not find it. What happened ?
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>the link you clicked to arrive here has a typo in it</li>
|
||||
<li>or somehow we removed that page, or gave it another name</li>
|
||||
<li>or, quite unlikely for sure, maybe you typed it yourself and there was a little mistake ?</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</error>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!--template bindings={}-->
|
||||
<!--template bindings={}-->
|
||||
<!--template bindings={}-->
|
||||
|
||||
</app>
|
||||
</div>
|
||||
|
||||
<!-- Go to www.addthis.com/dashboard to customize your tools -->
|
||||
<!-- to update addThis: https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080-->
|
||||
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080"></script>
|
||||
<script type="text/javascript">
|
||||
function loadAltmetrics(e,t,n){
|
||||
var d="createElement",c="getElementsByTagName",m="setAttribute",n=document.getElementById(e);
|
||||
return n&&n.parentNode&&n.parentNode.removeChild(n),n=document[d+"NS"]&&document.documentElement.namespaceURI,n=n?document[d+"NS"](n,"script"):document[d]("script"),n[m]("id",e),n[m]("src",t),(document[c]("head")[0]||document[c]("body")[0]).appendChild(n),n=new Image,void n[m]("src","https://d1uo4w7k31k5mn.cloudfront.net/donut/0.png")
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<universal-script><script>
|
||||
try {window.UNIVERSAL_CACHE = ({"APP_ID":"5ee2","CacheService":"{}"}) || {};} catch(e) { console.warn("Angular Universal: There was a problem parsing data from the server")}
|
||||
</script></universal-script></body></html>
|
|
@ -0,0 +1,49 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
public class MonthlyStats {
|
||||
private int month;
|
||||
private int repositories;
|
||||
private int items;
|
||||
private int downloads;
|
||||
private int views;
|
||||
|
||||
public int getMonth() {
|
||||
return month;
|
||||
}
|
||||
|
||||
public void setMonth(int month) {
|
||||
this.month = month;
|
||||
}
|
||||
|
||||
public int getRepositories() {
|
||||
return repositories;
|
||||
}
|
||||
|
||||
public void setRepositories(int repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
public int getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(int items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public int getDownloads() {
|
||||
return downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(int downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public int getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void setViews(int views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section uk-margin-large-top tm-middle custom-main-content">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-forml uk-width-1-1@s uk-width-2-3@m uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='BR1'>BR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,57 @@
|
|||
package eu.dnetlib.usagestats.controllers;
|
||||
|
||||
import eu.dnetlib.usagestats.portal.TotalStats;
|
||||
import eu.dnetlib.usagestats.portal.UsageStats;
|
||||
|
||||
import eu.dnetlib.usagestats.services.UsageStatsService;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@CrossOrigin(methods = RequestMethod.GET, origins = "*")
|
||||
public class UsageStatsController {
|
||||
|
||||
private final UsageStatsService usageStatsService;
|
||||
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
|
||||
public UsageStatsController(UsageStatsService usageStatsService) {
|
||||
this.usageStatsService = usageStatsService;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/datasources/{datasourceId}/clicks")
|
||||
public UsageStats getDatasourceClicks(@PathVariable(value = "datasourceId") String datasourceId) {
|
||||
log.info("stats request for datasource: " + datasourceId);
|
||||
return usageStatsService.getDatasourceClicks(datasourceId);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/projects/{projectId}/clicks")
|
||||
public UsageStats getProjectClicks(@PathVariable(value = "projectId") String projectId) {
|
||||
log.info("stats request for project: " + projectId);
|
||||
return usageStatsService.getProjectClicks(projectId);
|
||||
}
|
||||
|
||||
/*
|
||||
@RequestMapping(value = "/organizations/{organizationId}/clicks")
|
||||
public UsageStats getOrganizationClicks(@PathVariable(value = "organizationId") String organizationId) {
|
||||
log.info("stats request for organization: " + organizationId);
|
||||
return usageStatsService.getOrganizationClicks(organizationId);
|
||||
}
|
||||
*/
|
||||
|
||||
@RequestMapping(value = "/results/{resultId}/clicks")
|
||||
public UsageStats getResultClicks(@PathVariable(value = "resultId") String resultId) {
|
||||
log.info("stats request for result: " + resultId);
|
||||
return usageStatsService.getResultClicks(resultId);
|
||||
}
|
||||
@RequestMapping(value = "/totals")
|
||||
public TotalStats getTotalStats() {
|
||||
log.info("total stats request");
|
||||
return usageStatsService.getTotalStats();
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 32 KiB |
|
@ -0,0 +1,184 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>eu.dnetlib</groupId>
|
||||
<artifactId>dnet-openaire-usage-stats-api</artifactId>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.15.RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.retry</groupId>
|
||||
<artifactId>spring-retry</artifactId>
|
||||
<version>1.2.0.RELEASE</version>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aspects</artifactId>
|
||||
<version>5.2.9.RELEASE</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hive</groupId>
|
||||
<artifactId>hive-jdbc</artifactId>
|
||||
<version>0.13.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>eu.dnetlib</groupId>
|
||||
<artifactId>dnet-openaire-usage-stats-sushilite</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-logging</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-log4j2</artifactId>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hsqldb</groupId>
|
||||
<artifactId>hsqldb</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.googlecode.json-simple</groupId>
|
||||
<artifactId>json-simple</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-dbutils</groupId>
|
||||
<artifactId>commons-dbutils</artifactId>
|
||||
<version>1.7</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.cloudera</groupId>-->
|
||||
<!-- <artifactId>ImpalaJDBC41</artifactId>-->
|
||||
<!-- <version>2.6.3</version>-->
|
||||
<!-- <scope>runtime</scope>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.cloudera.impala</groupId>
|
||||
<artifactId>jdbc</artifactId>
|
||||
<version>2.5.31</version>
|
||||
<scope>runtime</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.apache.derby</groupId>
|
||||
<artifactId>derby</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId> org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-all</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>apache-log4j-extras</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>libthrift</artifactId>
|
||||
<version>0.5.0.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<tomcat.version>7.0.52</tomcat.version>
|
||||
</properties>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<finalName>usagestats</finalName>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spring-releases</id>
|
||||
<url>https://repo.spring.io/libs-release</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>spring-releases</id>
|
||||
<url>https://repo.spring.io/libs-release</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</project>
|
|
@ -0,0 +1,20 @@
|
|||
package eu.dnetlib.usagestats;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.web.support.SpringBootServletInitializer;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.context.annotation.PropertySources;
|
||||
import org.springframework.retry.annotation.EnableRetry;
|
||||
|
||||
@PropertySources({@PropertySource({"classpath:usageStatsAPI.properties"})})
|
||||
@EnableRetry
|
||||
@SpringBootApplication
|
||||
public class UsageStatsApi extends SpringBootServletInitializer {
|
||||
public UsageStatsApi() {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(UsageStatsApi.class, args);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package eu.dnetlib.usagestats.config;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.tomcat.jdbc.pool.PoolProperties;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
@Configuration
|
||||
public class DataSourceConfiguration {
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
@Value("${usagestats.driverClassName}")
|
||||
private String driverClassName;
|
||||
@Value("${usagestats.url}")
|
||||
private String dbURL;
|
||||
|
||||
public DataSourceConfiguration() {
|
||||
}
|
||||
|
||||
@ConfigurationProperties(
|
||||
prefix = "usagestats"
|
||||
)
|
||||
@Bean
|
||||
@Primary
|
||||
public DataSource getDataSource() {
|
||||
PoolProperties poolProperties = new PoolProperties();
|
||||
poolProperties.setUrl(this.dbURL);
|
||||
poolProperties.setDriverClassName(this.driverClassName);
|
||||
this.log.info("dbURL " + this.dbURL);
|
||||
this.log.info("driverClassName " + this.driverClassName);
|
||||
poolProperties.setTestOnBorrow(true);
|
||||
poolProperties.setValidationQuery("SELECT 1");
|
||||
poolProperties.setValidationInterval(0L);
|
||||
DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource(poolProperties);
|
||||
return ds;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package eu.dnetlib.usagestats.config;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
@Configuration
|
||||
public class SpringRedisConfiguration {
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
@Value("${usagestats.redis.hostname}")
|
||||
private String hostname;
|
||||
@Value("${usagestats.redis.port}")
|
||||
private int port;
|
||||
|
||||
public SpringRedisConfiguration() {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public JedisConnectionFactory connectionFactory() {
|
||||
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
|
||||
connectionFactory.setHostName(this.hostname);
|
||||
connectionFactory.setPort(this.port);
|
||||
connectionFactory.setUsePool(false);
|
||||
this.log.info("Opening redis connection to : " + connectionFactory.getHostName() + ":" + connectionFactory.getPort());
|
||||
return connectionFactory;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Autowired
|
||||
public RedisTemplate<String, String> redisTemplate() {
|
||||
RedisTemplate<String, String> redisTemplate = new RedisTemplate();
|
||||
redisTemplate.setConnectionFactory(this.connectionFactory());
|
||||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setValueSerializer(new StringRedisSerializer());
|
||||
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
|
||||
return redisTemplate;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package eu.dnetlib.usagestats.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
|
||||
|
||||
@Configuration
|
||||
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
|
||||
public WebMvcConfiguration() {
|
||||
}
|
||||
|
||||
public void addViewControllers(ViewControllerRegistry registry) {
|
||||
registry.addViewController("/sushilite").setViewName("redirect:/sushilite/");
|
||||
registry.addViewController("/sushilite/").setViewName("forward:/sushilite/index.html");
|
||||
registry.addViewController("/sushilite/AR1").setViewName("redirect:/sushilite/AR1/");
|
||||
registry.addViewController("/sushilite/AR1/").setViewName("forward:/sushilite/AR1/index.html");
|
||||
registry.addViewController("/sushilite/IR1").setViewName("redirect:/sushilite/IR1/");
|
||||
registry.addViewController("/sushilite/IR1/").setViewName("forward:/sushilite/IR1/index.html");
|
||||
registry.addViewController("/sushilite/RR1").setViewName("redirect:/sushilite/RR1/");
|
||||
registry.addViewController("/sushilite/RR1/").setViewName("forward:/sushilite/RR1/index.html");
|
||||
registry.addViewController("/sushilite/JR1").setViewName("redirect:/sushilite/JR1/");
|
||||
registry.addViewController("/sushilite/JR1/").setViewName("forward:/sushilite/JR1/index.html");
|
||||
registry.addViewController("/sushilite/BR1").setViewName("redirect:/sushilite/BR1/");
|
||||
registry.addViewController("/sushilite/BR1/").setViewName("forward:/sushilite/BR1/index.html");
|
||||
registry.addViewController("/sushilite/BR2").setViewName("redirect:/sushilite/BR2/");
|
||||
registry.addViewController("/sushilite/BR2/").setViewName("forward:/sushilite/BR2/index.html");
|
||||
super.addViewControllers(registry);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
package eu.dnetlib.usagestats.controllers;
|
||||
|
||||
import eu.dnetlib.usagestats.services.SushiLiteService;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@RestController
|
||||
class SushiLiteController {
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
private final SushiLiteService sushiLiteService;
|
||||
|
||||
public SushiLiteController(SushiLiteService sushiLiteService) {
|
||||
this.sushiLiteService = sushiLiteService;
|
||||
}
|
||||
|
||||
@RequestMapping(
|
||||
value = {"/sushilite/GetReport/"},
|
||||
method = {RequestMethod.GET}
|
||||
)
|
||||
public String getReport(@RequestParam(value = "Report",defaultValue = "") String reportP,
|
||||
@RequestParam(value = "Release",defaultValue = "4") String release,
|
||||
@RequestParam(value = "RequestorID",defaultValue = "anonymous") String requestorId,
|
||||
@RequestParam(value = "BeginDate",defaultValue = "") String beginDate,
|
||||
@RequestParam(value = "EndDate",defaultValue = "") String endDate,
|
||||
@RequestParam(value = "RepositoryIdentifier",defaultValue = "") String repositoryIdentifier,
|
||||
@RequestParam(value = "ItemIdentifier",defaultValue = "") String itemIdentifier,
|
||||
@RequestParam(value = "ItemDataType",defaultValue = "") String itemDataType,
|
||||
@RequestParam(value = "hasDOI",defaultValue = "") String hasDoi,
|
||||
@RequestParam(value = "Granularity",defaultValue = "Monthly") String granularity,
|
||||
@RequestParam(value = "Callback",defaultValue = "") String callback,
|
||||
@RequestParam(value = "Pretty",defaultValue = "") String pretty) {
|
||||
this.log.info("Sushi Report request: " + reportP + " from " + requestorId);
|
||||
this.log.info("repository identifier: " + repositoryIdentifier + " - item identifier: " + itemIdentifier);
|
||||
return this.sushiLiteService.displayReport(reportP, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback, pretty);
|
||||
}
|
||||
|
||||
@RequestMapping(value = {"/sushilite/DownloadReport/"},
|
||||
method = RequestMethod.GET)
|
||||
public HttpEntity<byte[]> downloadExcelReport(@RequestParam(value = "Report",defaultValue = "") String reportP,
|
||||
@RequestParam(value = "Release",defaultValue = "4") String release,
|
||||
@RequestParam(value = "RequestorID",defaultValue = "anonymous") String requestorId,
|
||||
@RequestParam(value = "BeginDate",defaultValue = "") String beginDate,
|
||||
@RequestParam(value = "EndDate",defaultValue = "") String endDate,
|
||||
@RequestParam(value = "RepositoryIdentifier",defaultValue = "") String repositoryIdentifier,
|
||||
@RequestParam(value = "ItemIdentifier",defaultValue = "") String itemIdentifier,
|
||||
@RequestParam(value = "ItemDataType",defaultValue = "") String itemDataType,
|
||||
@RequestParam(value = "hasDOI",defaultValue = "") String hasDoi,
|
||||
@RequestParam(value = "Granularity",defaultValue = "Monthly") String granularity,
|
||||
@RequestParam(value = "Callback",defaultValue = "") String callback,
|
||||
@RequestParam(value = "Pretty",defaultValue = "") String pretty) {
|
||||
|
||||
this.log.info("Sushi Report request: " + reportP + " from " + requestorId);
|
||||
this.log.info("repository identifier: " + repositoryIdentifier + " - item identifier: " + itemIdentifier);
|
||||
|
||||
byte[] jsonContent = this.sushiLiteService.displayReport(reportP, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback, "").getBytes(StandardCharsets.UTF_8);
|
||||
HttpHeaders header = new HttpHeaders();
|
||||
header.setContentType(new MediaType("application", "json"));
|
||||
header.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+reportP+".json");
|
||||
header.setContentLength(jsonContent.length);
|
||||
|
||||
return new HttpEntity<byte[]>(jsonContent, header);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
package eu.dnetlib.usagestats.controllers;
|
||||
|
||||
import eu.dnetlib.usagestats.portal.CountryRepositories;
|
||||
import eu.dnetlib.usagestats.portal.CountryUsageStats;
|
||||
import eu.dnetlib.usagestats.portal.CountryUsageStatsAll;
|
||||
import eu.dnetlib.usagestats.portal.MonthlyUsageStats;
|
||||
import eu.dnetlib.usagestats.portal.TotalStats;
|
||||
import eu.dnetlib.usagestats.portal.TotalStatsReposViewsDownloads;
|
||||
import eu.dnetlib.usagestats.portal.UsageStats;
|
||||
import eu.dnetlib.usagestats.services.UsageStatsService;
|
||||
import java.util.List;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@CrossOrigin(
|
||||
methods = {RequestMethod.GET},
|
||||
origins = {"*"}
|
||||
)
|
||||
public class UsageStatsController {
|
||||
private final UsageStatsService usageStatsService;
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
|
||||
public UsageStatsController(UsageStatsService usageStatsService) {
|
||||
this.usageStatsService = usageStatsService;
|
||||
}
|
||||
|
||||
@RequestMapping({"/datasources/{datasourceId}/clicks"})
|
||||
public UsageStats getDatasourceClicks(@PathVariable("datasourceId") String datasourceId) {
|
||||
this.log.info("stats request for datasource: " + datasourceId);
|
||||
return this.usageStatsService.getDatasourceClicks(datasourceId);
|
||||
}
|
||||
|
||||
@RequestMapping({"/projects/{projectId}/clicks"})
|
||||
public UsageStats getProjectClicks(@PathVariable("projectId") String projectId) {
|
||||
this.log.info("stats request for project: " + projectId);
|
||||
return this.usageStatsService.getProjectClicks(projectId);
|
||||
}
|
||||
|
||||
@RequestMapping({"/monthlyusagestats"})
|
||||
public List<MonthlyUsageStats> getMonthlyUsageStats() {
|
||||
this.log.info("stats request for months");
|
||||
return this.usageStatsService.getMonthlyUsageStats();
|
||||
}
|
||||
|
||||
@RequestMapping({"/countryusagestats"})
|
||||
public CountryUsageStatsAll getCountryUsageStatsAll() {
|
||||
this.log.info("stats request for countries");
|
||||
return this.usageStatsService.getCountryUsageStatsAll();
|
||||
}
|
||||
|
||||
@RequestMapping({"/countryusagestats/{country}"})
|
||||
public CountryUsageStats getCountryUsageStats(@PathVariable("country") String country) {
|
||||
this.log.info("stats request for country " + country);
|
||||
return this.usageStatsService.getCountryUsageStats(country);
|
||||
}
|
||||
|
||||
@RequestMapping({"/countryrepositories"})
|
||||
public List<CountryRepositories> getCountryRepositories() {
|
||||
this.log.info("stats request for countries/repos");
|
||||
return this.usageStatsService.getCountryRepositories();
|
||||
}
|
||||
|
||||
@RequestMapping({"/totals"})
|
||||
public TotalStats getTotalStats() {
|
||||
this.log.info("total stats request");
|
||||
return this.usageStatsService.getTotalStats();
|
||||
}
|
||||
|
||||
@RequestMapping({"/monthlyusagestats/{datasourceId}"})
|
||||
public List<MonthlyUsageStats> getMonthlyUsageStatsForRepo(@PathVariable("datasourceId") String datasourceId) {
|
||||
this.log.info("stats request for datasource: " + datasourceId);
|
||||
return this.usageStatsService.getMonthlyUsageStatsForRepo(datasourceId);
|
||||
}
|
||||
|
||||
@RequestMapping({"/results/{resultId}/clicks"})
|
||||
public UsageStats getResultClicks(@PathVariable("resultId") String resultId) {
|
||||
this.log.info("stats request for result: " + resultId);
|
||||
return this.usageStatsService.getResultClicks(resultId);
|
||||
}
|
||||
|
||||
@RequestMapping({"/allmetrics"})
|
||||
public TotalStatsReposViewsDownloads getTotalStatsReposViewsDownloads() {
|
||||
this.log.info("total stats request");
|
||||
return this.usageStatsService.getTotalStatsReposViewsDownloads();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CountryRepositories implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String country = "";
|
||||
private String repository = "";
|
||||
|
||||
public CountryRepositories() {
|
||||
}
|
||||
|
||||
@JsonProperty("country")
|
||||
public String getCountry() {
|
||||
return this.country;
|
||||
}
|
||||
|
||||
@JsonProperty("repository")
|
||||
public String getRepository() {
|
||||
return this.repository;
|
||||
}
|
||||
|
||||
public void addCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public void addRepository(String repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CountryUsageStats implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String country = "";
|
||||
private String total_repos = "";
|
||||
private String downloads = "";
|
||||
private String views = "";
|
||||
|
||||
public CountryUsageStats() {
|
||||
}
|
||||
|
||||
@JsonProperty("country")
|
||||
public String getCountry() {
|
||||
return this.country;
|
||||
}
|
||||
|
||||
@JsonProperty("total_repos")
|
||||
public String getTotalRepos() {
|
||||
return this.total_repos;
|
||||
}
|
||||
|
||||
@JsonProperty("downloads")
|
||||
public String getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
@JsonProperty("views")
|
||||
public String getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void addCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public void addTotalRepos(String total_repos) {
|
||||
this.total_repos = total_repos;
|
||||
}
|
||||
|
||||
public void addViews(String views) {
|
||||
this.views = views;
|
||||
}
|
||||
|
||||
public void addDownloads(String downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CountryUsageStatsAll implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String country_all = "all";
|
||||
private String downloads_all = "0";
|
||||
private String views_all = "0";
|
||||
private List<CountryUsageStats> countryUsageStats = new ArrayList();
|
||||
|
||||
public CountryUsageStatsAll() {
|
||||
}
|
||||
|
||||
@JsonProperty("country")
|
||||
public String getCountry() {
|
||||
return this.country_all;
|
||||
}
|
||||
|
||||
@JsonProperty("downloads_all")
|
||||
public String getDownloads() {
|
||||
return this.downloads_all;
|
||||
}
|
||||
|
||||
@JsonProperty("views_all")
|
||||
public String getViews() {
|
||||
return this.views_all;
|
||||
}
|
||||
|
||||
@JsonProperty("CountriesList")
|
||||
public List<CountryUsageStats> getCountryUsageStats() {
|
||||
return this.countryUsageStats;
|
||||
}
|
||||
|
||||
public void addViewsAll(String views_all) {
|
||||
this.views_all = views_all;
|
||||
}
|
||||
|
||||
public void addDownloadsAll(String downloads_all) {
|
||||
this.downloads_all = downloads_all;
|
||||
}
|
||||
|
||||
public void addCountryUsageStats(List<CountryUsageStats> countryUsageStats) {
|
||||
this.countryUsageStats = countryUsageStats;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
public class MonthlyStats {
|
||||
private int month;
|
||||
private int repositories;
|
||||
private int items;
|
||||
private int downloads;
|
||||
private int views;
|
||||
|
||||
public MonthlyStats() {
|
||||
}
|
||||
|
||||
public int getMonth() {
|
||||
return this.month;
|
||||
}
|
||||
|
||||
public void setMonth(int month) {
|
||||
this.month = month;
|
||||
}
|
||||
|
||||
public int getRepositories() {
|
||||
return this.repositories;
|
||||
}
|
||||
|
||||
public void setRepositories(int repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
public int getItems() {
|
||||
return this.items;
|
||||
}
|
||||
|
||||
public void setItems(int items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public int getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(int downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public int getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void setViews(int views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class MonthlyUsageStats implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String date = "0";
|
||||
private String downloads = "0";
|
||||
private String views = "0";
|
||||
|
||||
public MonthlyUsageStats() {
|
||||
}
|
||||
|
||||
@JsonProperty("date")
|
||||
public String getDate() {
|
||||
return this.date;
|
||||
}
|
||||
|
||||
@JsonProperty("downloads")
|
||||
public String getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
@JsonProperty("views")
|
||||
public String getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void addDate(String date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public void addViews(String views) {
|
||||
this.views = views;
|
||||
}
|
||||
|
||||
public void addDownloads(String downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class RepositoryStats implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String datasource_name = "";
|
||||
private String datasource_id = "";
|
||||
private String value = "";
|
||||
private String openaire = "";
|
||||
|
||||
public RepositoryStats() {
|
||||
}
|
||||
|
||||
public RepositoryStats(String datasource_name, String datasource_id, String value, String openaire) {
|
||||
this.datasource_name = datasource_name;
|
||||
this.datasource_id = datasource_id;
|
||||
this.value = value;
|
||||
this.openaire = openaire;
|
||||
}
|
||||
|
||||
@JsonProperty("datasource_name")
|
||||
public String getDatasource_name() {
|
||||
return this.datasource_name;
|
||||
}
|
||||
|
||||
@JsonProperty("datasource_id")
|
||||
public String getDatasource_id() {
|
||||
return this.datasource_id;
|
||||
}
|
||||
|
||||
@JsonProperty("value")
|
||||
public String getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
@JsonProperty("openaire")
|
||||
public String getOpenaire() {
|
||||
return this.openaire;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.util.List;
|
||||
|
||||
public class TotalStats {
|
||||
private int repositories;
|
||||
private int items;
|
||||
private int downloads;
|
||||
private int views;
|
||||
private List<YearlyStats> yearlyStats;
|
||||
|
||||
@JsonProperty("yearly_stats")
|
||||
public List<YearlyStats> getYearlyStats() {
|
||||
return this.yearlyStats;
|
||||
}
|
||||
|
||||
public void setYearlyStats(List<YearlyStats> yearlyStats) {
|
||||
this.yearlyStats = yearlyStats;
|
||||
}
|
||||
|
||||
public TotalStats() {
|
||||
}
|
||||
|
||||
public int getRepositories() {
|
||||
return this.repositories;
|
||||
}
|
||||
|
||||
public void setRepositories(int repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
public int getItems() {
|
||||
return this.items;
|
||||
}
|
||||
|
||||
public void setItems(int items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public int getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(int downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public int getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void setViews(int views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class TotalStatsReposViewsDownloads {
|
||||
private String repositories;
|
||||
private String downloads;
|
||||
private String views;
|
||||
|
||||
public TotalStatsReposViewsDownloads() {
|
||||
}
|
||||
|
||||
@JsonProperty("repositories")
|
||||
public String getRepositories() {
|
||||
return this.repositories;
|
||||
}
|
||||
|
||||
public void addRepositories(String repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
@JsonProperty("total_views")
|
||||
public String getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void addViews(String views) {
|
||||
this.views = views;
|
||||
}
|
||||
|
||||
@JsonProperty("total_downloads")
|
||||
public String getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
public void addDownloads(String downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UsageStats implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private final List<RepositoryStats> downloads = new ArrayList();
|
||||
private final List<RepositoryStats> views = new ArrayList();
|
||||
private String total_downloads = "0";
|
||||
private String total_views = "0";
|
||||
private String pageviews = "0";
|
||||
private String total_openaire_views = "0";
|
||||
private String total_openaire_downloads = "0";
|
||||
|
||||
public UsageStats() {
|
||||
}
|
||||
|
||||
@JsonProperty("downloads")
|
||||
public List<RepositoryStats> getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
@JsonProperty("views")
|
||||
public List<RepositoryStats> getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void addViews(RepositoryStats view) {
|
||||
this.views.add(view);
|
||||
}
|
||||
|
||||
public void addDownloads(RepositoryStats download) {
|
||||
this.downloads.add(download);
|
||||
}
|
||||
|
||||
@JsonProperty("total_downloads")
|
||||
public String getTotal_downloads() {
|
||||
return this.total_downloads;
|
||||
}
|
||||
|
||||
public void setTotal_downloads(String total_downloads) {
|
||||
this.total_downloads = total_downloads;
|
||||
}
|
||||
|
||||
@JsonProperty("total_views")
|
||||
public String getTotal_views() {
|
||||
return this.total_views;
|
||||
}
|
||||
|
||||
public void setTotal_views(String total_views) {
|
||||
this.total_views = total_views;
|
||||
}
|
||||
|
||||
@JsonProperty("pageviews")
|
||||
public String getPageViews() {
|
||||
return this.pageviews;
|
||||
}
|
||||
|
||||
public void setPageViews(String pageviews) {
|
||||
this.pageviews = pageviews;
|
||||
}
|
||||
|
||||
@JsonProperty("total_openaire_views")
|
||||
public String getTotal_openaire_views() {
|
||||
return this.total_openaire_views;
|
||||
}
|
||||
|
||||
public void setTotal_openaire_views(String total_openaire_views) {
|
||||
this.total_openaire_views = total_openaire_views;
|
||||
}
|
||||
|
||||
@JsonProperty("total_openaire_downloads")
|
||||
public String getTotal_openaire_downloads() {
|
||||
return this.total_openaire_downloads;
|
||||
}
|
||||
|
||||
public void setTotal_openaire_downloads(String total_openaire_downloads) {
|
||||
this.total_openaire_downloads = total_openaire_downloads;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
package eu.dnetlib.usagestats.portal;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import java.util.List;
|
||||
|
||||
public class YearlyStats {
|
||||
private int year;
|
||||
private int repositories;
|
||||
private int items;
|
||||
private int downloads;
|
||||
private int views;
|
||||
private List<MonthlyStats> monthlyStats;
|
||||
|
||||
@JsonProperty("monthly_stats")
|
||||
public List<MonthlyStats> getMonthlyStats() {
|
||||
return this.monthlyStats;
|
||||
}
|
||||
|
||||
public void setMonthlyStats(List<MonthlyStats> monthlyStats) {
|
||||
this.monthlyStats = monthlyStats;
|
||||
}
|
||||
|
||||
public YearlyStats() {
|
||||
}
|
||||
|
||||
public int getYear() {
|
||||
return this.year;
|
||||
}
|
||||
|
||||
public void setYear(int year) {
|
||||
this.year = year;
|
||||
}
|
||||
|
||||
public int getRepositories() {
|
||||
return this.repositories;
|
||||
}
|
||||
|
||||
public void setRepositories(int repositories) {
|
||||
this.repositories = repositories;
|
||||
}
|
||||
|
||||
public int getItems() {
|
||||
return this.items;
|
||||
}
|
||||
|
||||
public void setItems(int items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public int getDownloads() {
|
||||
return this.downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(int downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public int getViews() {
|
||||
return this.views;
|
||||
}
|
||||
|
||||
public void setViews(int views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
1262
trunk/src/main/java/eu/dnetlib/usagestats/repositories/UsageStatsRepository.java
Executable file
|
@ -0,0 +1,9 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportResponseWrapper;
|
||||
|
||||
public interface SushiLiteService {
|
||||
ReportResponseWrapper buildReport(String var1, String var2, String var3, String var4, String var5, String var6, String var7, String var8, String var9, String var10, String var11);
|
||||
|
||||
String displayReport(String var1, String var2, String var3, String var4, String var5, String var6, String var7, String var8, String var9, String var10, String var11, String var12);
|
||||
}
|
|
@ -0,0 +1,250 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.dnetlib.usagestats.repositories.UsageStatsRepository;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportException;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportItem;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportResponse;
|
||||
import eu.dnetlib.usagestats.sushilite.domain.ReportResponseWrapper;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class SushiLiteServiceImpl implements SushiLiteService {
|
||||
private final UsageStatsRepository usageStatsRepository;
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
|
||||
public SushiLiteServiceImpl(UsageStatsRepository usageStatsRepository) {
|
||||
this.usageStatsRepository = usageStatsRepository;
|
||||
}
|
||||
|
||||
public ReportResponseWrapper buildReport(String reportName, String release, String requestorId, String beginDate, String endDate, String repositoryIdentifier, String itemIdentifier, String itemDataType, String hasDoi, String granularity, String callback) {
|
||||
List<ReportItem> reportItems = new ArrayList();
|
||||
List<ReportException> reportExceptions = new ArrayList();
|
||||
if (!granularity.equalsIgnoreCase("totals") && !granularity.equalsIgnoreCase("monthly")) {
|
||||
reportExceptions.add(new ReportException("3062", "Warning", "Invalid ReportAttribute Value", "Granularity: '" + granularity + "' unknown. Defaulting to Monthly"));
|
||||
granularity = "Monthly";
|
||||
}
|
||||
|
||||
Date beginDateParsed;
|
||||
Calendar temp;
|
||||
if (!beginDate.equals("")) {
|
||||
beginDateParsed = this.tryParse(beginDate);
|
||||
if (beginDateParsed != null && (granularity.toLowerCase().equals("monthly") || beginDate.length() == 7)) {
|
||||
temp = Calendar.getInstance();
|
||||
temp.setTime(beginDateParsed);
|
||||
temp.set(5, temp.getActualMinimum(5));
|
||||
beginDateParsed = temp.getTime();
|
||||
}
|
||||
} else {
|
||||
temp = Calendar.getInstance();
|
||||
temp.add(2, -1);
|
||||
temp.set(5, temp.getActualMinimum(5));
|
||||
beginDateParsed = temp.getTime();
|
||||
reportExceptions.add(new ReportException("3021", "Warning", "Unspecified Date Arguments", "Begin Date set to default: " + (new SimpleDateFormat("yyyy-MM-dd")).format(beginDateParsed)));
|
||||
}
|
||||
|
||||
// Calendar temp;
|
||||
Date endDateParsed;
|
||||
if (!endDate.equals("")) {
|
||||
endDateParsed = this.tryParse(endDate);
|
||||
if (endDateParsed != null && (granularity.toLowerCase().equals("monthly") || endDate.length() == 7)) {
|
||||
temp = Calendar.getInstance();
|
||||
temp.setTime(endDateParsed);
|
||||
temp.set(5, temp.getActualMaximum(5));
|
||||
endDateParsed = temp.getTime();
|
||||
}
|
||||
} else {
|
||||
temp = Calendar.getInstance();
|
||||
temp.add(2, -1);
|
||||
temp.set(5, temp.getActualMaximum(5));
|
||||
endDateParsed = temp.getTime();
|
||||
reportExceptions.add(new ReportException("3021", "Warning", "Unspecified Date Arguments", "End Date set to default: " + (new SimpleDateFormat("yyyy-MM-dd")).format(endDateParsed)));
|
||||
}
|
||||
|
||||
if (beginDateParsed == null) {
|
||||
reportExceptions.add(new ReportException("3020", "Error", "Invalid Date Arguments", "Begin Date: " + beginDate + " is not a valid date"));
|
||||
}
|
||||
|
||||
if (endDateParsed == null) {
|
||||
reportExceptions.add(new ReportException("3020", "Error", "Invalid Date Arguments", "End Date: " + endDate + " is not a valid date"));
|
||||
}
|
||||
|
||||
if (beginDateParsed != null && endDateParsed != null && !beginDateParsed.before(endDateParsed)) {
|
||||
reportExceptions.add(new ReportException("3020", "Error", "Invalid Date Arguments", "BeginDate '" + (new SimpleDateFormat("yyyy-MM-dd")).format(beginDateParsed) + "' is greater than EndDate '" + (new SimpleDateFormat("yyyy-MM-dd")).format(endDateParsed) + "'"));
|
||||
}
|
||||
|
||||
String repoid = "";
|
||||
if (!repositoryIdentifier.equals("")) {
|
||||
repoid = this.usageStatsRepository.executeRepoId(repositoryIdentifier, reportName.toLowerCase());
|
||||
if (repoid.equals("-1")) {
|
||||
reportExceptions.add(new ReportException("3060", "Error", "Invalid Filter Value", "RepositoryIdentifier: " + repositoryIdentifier + " is not valid"));
|
||||
}
|
||||
}
|
||||
|
||||
String itemid = "";
|
||||
if (!itemIdentifier.equals("")) {
|
||||
String[] split = itemIdentifier.split(":");
|
||||
String var19 = split[0].toLowerCase();
|
||||
byte var20 = -1;
|
||||
switch(var19.hashCode()) {
|
||||
case -504258139:
|
||||
if (var19.equals("openaire")) {
|
||||
var20 = 2;
|
||||
}
|
||||
break;
|
||||
case 99646:
|
||||
if (var19.equals("doi")) {
|
||||
var20 = 1;
|
||||
}
|
||||
break;
|
||||
case 110026:
|
||||
if (var19.equals("oid")) {
|
||||
var20 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
switch(var20) {
|
||||
case 0:
|
||||
itemid = itemIdentifier;
|
||||
break;
|
||||
case 1:
|
||||
itemid = itemIdentifier;
|
||||
break;
|
||||
case 2:
|
||||
itemid = itemIdentifier;
|
||||
break;
|
||||
default:
|
||||
reportExceptions.add(new ReportException("3060", "Error", "Invalid Filter Value", "ItemIdentifier: " + itemIdentifier + " is not valid"));
|
||||
itemid = "-1";
|
||||
}
|
||||
}
|
||||
|
||||
if (itemid.equals("") && repoid.equals("") && !reportName.equalsIgnoreCase("rr1") && !reportName.equalsIgnoreCase("jr1")) {
|
||||
reportExceptions.add(new ReportException("3070", "Error", "Required Filter Missing", "ItemIdentifier or RepositoryIdentifier must be supplied"));
|
||||
}
|
||||
|
||||
if (reportName.equalsIgnoreCase("ar1")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
if (!itemDataType.equalsIgnoreCase("") && !itemDataType.equalsIgnoreCase("article")) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
} else {
|
||||
this.usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, "Article", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
} else if (!repoid.equals("")) {
|
||||
this.usageStatsRepository.executeBatchItems(reportItems, repoid, "Article", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("br1")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
if (!itemDataType.equalsIgnoreCase("") && !itemDataType.equalsIgnoreCase("book")) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
} else {
|
||||
this.usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, "Book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
} else if (!repoid.equals("")) {
|
||||
this.usageStatsRepository.executeBatchItems(reportItems, repoid, "Book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("br2")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
if (!itemDataType.equalsIgnoreCase("") && !itemDataType.equalsIgnoreCase("part of book or chapter of book")) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
} else {
|
||||
this.usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, "Part of book or chapter of book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
} else if (!repoid.equals("")) {
|
||||
this.usageStatsRepository.executeBatchItems(reportItems, repoid, "Part of book or chapter of book", beginDateParsed, endDateParsed, granularity);
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("ir1")) {
|
||||
if (!itemid.equals("-1") && !repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
if (!itemid.equals("")) {
|
||||
this.usageStatsRepository.executeItem(reportItems, itemIdentifier, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
} else if (!repoid.equals("")) {
|
||||
this.usageStatsRepository.executeBatchItems(reportItems, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
}
|
||||
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("rr1")) {
|
||||
if (!repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
this.usageStatsRepository.executeRepo(reportItems, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
}
|
||||
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else if (reportName.equalsIgnoreCase("jr1")) {
|
||||
if (!repoid.equals("-1") && beginDateParsed != null && endDateParsed != null && beginDateParsed.before(endDateParsed)) {
|
||||
this.usageStatsRepository.executeJournal(reportItems, repoid, itemDataType, beginDateParsed, endDateParsed, granularity);
|
||||
}
|
||||
|
||||
if (reportItems.isEmpty()) {
|
||||
reportExceptions.add(new ReportException("3030", "Error", "No Usage Available for Requested Dates", "Service did not find any data"));
|
||||
}
|
||||
} else if (reportName.equals("")) {
|
||||
reportExceptions.add(new ReportException("3050", "Error", "Report argument is missing", "You must supply a Report argument"));
|
||||
} else {
|
||||
reportExceptions.add(new ReportException("3000", "Error", "Report " + reportName + " not supported", "Supported reports: AR1, IR1, RR1, BR1, BR2"));
|
||||
}
|
||||
|
||||
ReportResponse reportResponse = new ReportResponse(reportName, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback, reportItems, reportExceptions);
|
||||
return new ReportResponseWrapper(reportResponse);
|
||||
}
|
||||
|
||||
public String displayReport(String reportName, String release, String requestorId, String beginDate, String endDate, String repositoryIdentifier, String itemIdentifier, String itemDataType, String hasDoi, String granularity, String callback, String pretty) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
return pretty.equalsIgnoreCase("pretty") ? "<pre>" + objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(this.buildReport(reportName, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback)).replaceAll("/", "\\\\/") + "</pre>" : objectMapper.writeValueAsString(this.buildReport(reportName, release, requestorId, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, hasDoi, granularity, callback)).replaceAll("/", "\\\\/");
|
||||
} catch (Exception var15) {
|
||||
var15.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private Date tryParse(String dateString) {
|
||||
try {
|
||||
if (dateString.length() == 7) {
|
||||
return (new SimpleDateFormat("yyyy-MM")).parse(dateString);
|
||||
}
|
||||
|
||||
if (dateString.length() == 10) {
|
||||
return (new SimpleDateFormat("yyyy-MM-dd")).parse(dateString);
|
||||
}
|
||||
} catch (Exception var3) {
|
||||
this.log.error("ParseError: ", var3);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import eu.dnetlib.usagestats.portal.CountryRepositories;
|
||||
import eu.dnetlib.usagestats.portal.CountryUsageStats;
|
||||
import eu.dnetlib.usagestats.portal.CountryUsageStatsAll;
|
||||
import eu.dnetlib.usagestats.portal.MonthlyUsageStats;
|
||||
import eu.dnetlib.usagestats.portal.TotalStats;
|
||||
import eu.dnetlib.usagestats.portal.TotalStatsReposViewsDownloads;
|
||||
import eu.dnetlib.usagestats.portal.UsageStats;
|
||||
import java.util.List;
|
||||
|
||||
public interface UsageStatsService {
|
||||
UsageStats getDatasourceClicks(String var1);
|
||||
|
||||
UsageStats getProjectClicks(String var1);
|
||||
|
||||
UsageStats getResultClicks(String var1);
|
||||
|
||||
TotalStats getTotalStats();
|
||||
|
||||
List<MonthlyUsageStats> getMonthlyUsageStats();
|
||||
|
||||
List<MonthlyUsageStats> getMonthlyUsageStatsForRepo(String var1);
|
||||
|
||||
CountryUsageStatsAll getCountryUsageStatsAll();
|
||||
|
||||
CountryUsageStats getCountryUsageStats(String var1);
|
||||
|
||||
List<CountryRepositories> getCountryRepositories();
|
||||
|
||||
TotalStatsReposViewsDownloads getTotalStatsReposViewsDownloads();
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package eu.dnetlib.usagestats.services;
|
||||
|
||||
import eu.dnetlib.usagestats.portal.CountryRepositories;
|
||||
import eu.dnetlib.usagestats.portal.CountryUsageStats;
|
||||
import eu.dnetlib.usagestats.portal.CountryUsageStatsAll;
|
||||
import eu.dnetlib.usagestats.portal.MonthlyUsageStats;
|
||||
import eu.dnetlib.usagestats.portal.TotalStats;
|
||||
import eu.dnetlib.usagestats.portal.TotalStatsReposViewsDownloads;
|
||||
import eu.dnetlib.usagestats.portal.UsageStats;
|
||||
import eu.dnetlib.usagestats.repositories.UsageStatsRepository;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UsageStatsServiceImpl implements UsageStatsService {
|
||||
private final UsageStatsRepository usageStatsRepository;
|
||||
private final Logger log = Logger.getLogger(this.getClass());
|
||||
@Value("${prod.statsdb}")
|
||||
private String statsDB;
|
||||
@Value("${prod.usagestatsImpalaDB}")
|
||||
private String usagestatsImpalaDB;
|
||||
|
||||
public UsageStatsServiceImpl(UsageStatsRepository usageStatsRepository) {
|
||||
this.usageStatsRepository = usageStatsRepository;
|
||||
}
|
||||
|
||||
public UsageStats getDatasourceClicks(String id) {
|
||||
String query = "SELECT 'views', sum(s.count), sum(s.openaire) FROM " + this.usagestatsImpalaDB + ".views_stats s where s.repository_id=? UNION ALL SELECT 'downloads', sum(s.count), sum(s.openaire) FROM " + this.usagestatsImpalaDB + ".downloads_stats s where s.repository_id=? UNION ALL SELECT 'pageviews', sum(s.count), 0 FROM " + this.usagestatsImpalaDB + ".pageviews_stats s, " + this.statsDB + ".result_datasources rd where rd.id=s.result_id and rd.datasource=? ";
|
||||
List<String> values = new ArrayList();
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
return this.usageStatsRepository.executeUsageStats(query, values, "datasource");
|
||||
}
|
||||
|
||||
public UsageStats getProjectClicks(String projectId) {
|
||||
String query = "SELECT 'views', sum(s.count), sum(s.openaire) FROM " + this.usagestatsImpalaDB + ".views_stats s, " + this.statsDB + ".project_results pr where pr.result=s.result_id and pr.id=? UNION ALL SELECT 'downloads', sum(s.count), sum(s.openaire) FROM " + this.usagestatsImpalaDB + ".downloads_stats s, " + this.statsDB + ".project_results pr where pr.result=s.result_id and pr.id=? UNION ALL SELECT 'pageviews', sum(s.count), 0 FROM " + this.usagestatsImpalaDB + ".pageviews_stats s, " + this.statsDB + ".project_results pr where pr.result=s.result_id and pr.id=?;";
|
||||
List<String> values = new ArrayList();
|
||||
values.add(projectId);
|
||||
values.add(projectId);
|
||||
values.add(projectId);
|
||||
return this.usageStatsRepository.executeUsageStats(query, values, "project");
|
||||
}
|
||||
|
||||
public UsageStats getResultClicks(String id) {
|
||||
String query = "SELECT 'views', s.repository_id, CASE WHEN s.source='OpenAIRE' THEN d.name ELSE concat(d.name,' - ',s.source) END, sum(count), sum(openaire) FROM (select distinct * from " + this.usagestatsImpalaDB + ".views_stats) s, " + this.statsDB + ".datasource d WHERE s.repository_id=d.id AND s.result_id=? GROUP BY s.source, s.repository_id, d.name UNION ALL SELECT 'downloads', s.repository_id, CASE WHEN s.source='OpenAIRE' THEN d.name ELSE concat(d.name,' - ',s.source) END, sum(count), sum(s.openaire) FROM (select distinct * from " + this.usagestatsImpalaDB + ".downloads_stats) s, " + this.statsDB + ".datasource d WHERE s.repository_id=d.id AND s.result_id=? GROUP BY s.source, s.repository_id, d.name UNION ALL SELECT 'pageviews', 'OpenAIRE id', 'OpenAIRE', sum(count), 0 FROM " + this.usagestatsImpalaDB + ".pageviews_stats s WHERE result_id=?;";
|
||||
List<String> values = new ArrayList();
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
values.add(id);
|
||||
return this.usageStatsRepository.executeUsageStats(query, values, "result");
|
||||
}
|
||||
|
||||
public TotalStats getTotalStats() {
|
||||
return this.usageStatsRepository.executeTotalStats();
|
||||
}
|
||||
|
||||
public List<MonthlyUsageStats> getMonthlyUsageStats() {
|
||||
String query = "select `date`, sum(downloads) as downloads, sum(views) as views from " + this.usagestatsImpalaDB + ".usage_stats group by `date` order by `date` asc";
|
||||
return this.usageStatsRepository.executeMontlyUsageStats(query);
|
||||
}
|
||||
|
||||
public List<MonthlyUsageStats> getMonthlyUsageStatsForRepo(String id) {
|
||||
String query = "select `date`, sum(downloads) as downloads, sum(views) as views from " + this.usagestatsImpalaDB + ".usage_stats where repository_id=? group by `date` order by `date` asc";
|
||||
return this.usageStatsRepository.executeMontlyUsageStatsForRepo(query, id);
|
||||
}
|
||||
|
||||
public CountryUsageStatsAll getCountryUsageStatsAll() {
|
||||
String query = "SELECT c.name, count(distinct repository_id) as total_repos, sum(views) as views, sum(downloads) as downloads FROM " + this.statsDB + ".organization t, " + this.statsDB + ".organization_datasources o, " + this.statsDB + ".country c, " + this.usagestatsImpalaDB + ".usage_stats WHERE o.id=t.id AND c.code=t.country AND o.datasource=repository_id GROUP BY c.name";
|
||||
return this.usageStatsRepository.executeCountryUsageStats(query);
|
||||
}
|
||||
|
||||
public CountryUsageStats getCountryUsageStats(String country) {
|
||||
String query = "SELECT count(distinct repository_id) as total_repos, sum(views) as views, sum(downloads) as downloads from " + this.statsDB + ".organization t, " + this.statsDB + ".organization_datasources o, " + this.statsDB + ".country c, " + this.usagestatsImpalaDB + ".usage_stats where o.id=t.id and c.code=t.country and o.datasource=repository_id and c.name='" + country + "'";
|
||||
this.log.info("Country Usage Stats query " + query);
|
||||
return this.usageStatsRepository.executeCountryUsageStats(query, country);
|
||||
}
|
||||
|
||||
public List<CountryRepositories> getCountryRepositories() {
|
||||
String query = "SELECT c.name, d.name FROM " + this.statsDB + ".datasource d, " + this.statsDB + ".organization t, " + this.statsDB + ".organization_datasources o, " + this.statsDB + ".country c, " + this.usagestatsImpalaDB + ".usage_stats WHERE o.id=t.id AND c.code=t.country AND o.datasource=repository_id and repository_id=d.id GROUP BY d.name, c.name ORDER BY c.name";
|
||||
return this.usageStatsRepository.executeCountryRepositories(query);
|
||||
}
|
||||
|
||||
public TotalStatsReposViewsDownloads getTotalStatsReposViewsDownloads() {
|
||||
String query = "SELECT COUNT(DISTINCT repository_id) as repositories, sum(views) as views, sum(downloads) as downloads from " + this.usagestatsImpalaDB + ".usage_stats";
|
||||
this.log.info("Total Repositories-Views-Downlaods " + query);
|
||||
return this.usageStatsRepository.executeTotalStatsReposViewsDownloads(query);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
#log4j.rootLogger = WARN, R
|
||||
log4j.rootLogger = INFO, R
|
||||
|
||||
#log4j.logger.eu.dnetlib = WARN
|
||||
log4j.logger.eu.dnetlib = INFO
|
||||
log4j.logger.org.springframework = INFO, S
|
||||
|
||||
log4j.additivity.org.springframework = false
|
||||
|
||||
log4j.appender.R=org.apache.log4j.RollingFileAppender
|
||||
#log4j.appender.R.File=/var/log/dnet/usageStatsAPI/usageStatsAPI.log
|
||||
log4j.appender.R.File=/Users/dpie/OneDrive/Github/OpenAIRE-SushiLite-CoP-R4/usageStatsAPI.log
|
||||
log4j.appender.R.MaxFileSize=10MB
|
||||
log4j.appender.R.MaxBackupIndex=10
|
||||
log4j.appender.R.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n
|
||||
|
||||
log4j.appender.S=org.apache.log4j.RollingFileAppender
|
||||
#log4j.appender.S.File=/var/log/dnet/usageStatsAPI/usageStatsAPI-spring.log
|
||||
log4j.appender.S.File=/Users/dpie/OneDrive/Github/OpenAIRE-SushiLite-CoP-R4/usageStatsAPI-spring.log
|
||||
log4j.appender.S.MaxFileSize=10MB
|
||||
log4j.appender.S.MaxBackupIndex=10
|
||||
log4j.appender.S.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n
|
After Width: | Height: | Size: 410 B |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.5 KiB |
|
@ -0,0 +1,322 @@
|
|||
|
||||
.tm-toolbar .uk-subnav-line .custom-discover-li {
|
||||
color:#05007A !important;
|
||||
background:#fff;
|
||||
display: block;
|
||||
}
|
||||
.tm-toolbar .uk-subnav-line .custom-discover-li a{
|
||||
color:#05007A !important;
|
||||
}
|
||||
.custom-discover-toolbar ul.uk-subnav.uk-subnav-line{
|
||||
background-color: #f25f30 !important;
|
||||
}
|
||||
|
||||
.custom-discover-toolbar .inner {
|
||||
background-color: #f25f30 !important;
|
||||
}
|
||||
|
||||
.custom-discover-toolbar{
|
||||
border-top-color:#f25f30 !important;
|
||||
}
|
||||
.custom-footer{
|
||||
position:relative;
|
||||
bottom:0;
|
||||
left:0;
|
||||
}
|
||||
.custom-external {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/icon_external.png") no-repeat scroll left center;
|
||||
padding: 0 0 0 16px;
|
||||
}
|
||||
|
||||
.custom-navbar-toggle-icon, .custom-user-mini-panel{
|
||||
color:#444 !important
|
||||
}
|
||||
.custom-user-mini-panel a{
|
||||
color:rgb(36, 91, 204);
|
||||
}
|
||||
.custom-main-content{
|
||||
min-height: 550px;
|
||||
}
|
||||
|
||||
.custom-autocomplete .uk-nav-autocomplete > li > a:hover {
|
||||
background: #00a8e6 none repeat scroll 0 0;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;
|
||||
color: #FFF;
|
||||
outline: medium none;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.custom-autocomplete .uk-nav-navbar > li > a {
|
||||
color: #444;
|
||||
}
|
||||
.custom-description-list-horizontal{ line-height:200%}
|
||||
.uk-alert-default {
|
||||
background: #fff none repeat scroll 0 0;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
color: #444;
|
||||
height: 30px;
|
||||
max-width: 100%;
|
||||
padding: 4px 6px;
|
||||
|
||||
}
|
||||
.custom-hidden-dropdown-menu {position:static !important;}
|
||||
.searchFilterBoxValues {overflow:auto; max-height:200px; }
|
||||
.selected-filters-box {margin:5px; background-color:#F8F8F8; }
|
||||
.search-form {margin:5px; }
|
||||
.clickable { cursor:pointer; }
|
||||
.search-filters .uk-accordion-title{
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
}
|
||||
.search-results {
|
||||
min-height: 1100px;
|
||||
}
|
||||
.other-results {
|
||||
min-height: 300px;
|
||||
}
|
||||
.OPEN {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/openAccess.png") no-repeat scroll right center;
|
||||
padding-right: 18px;
|
||||
min-height: 18px;
|
||||
}
|
||||
|
||||
.EMBARGO, .CLOSED, .RESTRICTED {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/closedAccess.png") no-repeat scroll right center;
|
||||
padding-right: 18px;
|
||||
}
|
||||
|
||||
.sc39 {
|
||||
background: rgba(0, 0, 0, 0) url("/assets/sc39.png") no-repeat scroll right center;
|
||||
padding-right: 24px;
|
||||
}
|
||||
|
||||
.projectIcon {
|
||||
display: inline-table;
|
||||
}
|
||||
|
||||
.dateFilter .mydp{
|
||||
margin-top:5px;
|
||||
}
|
||||
|
||||
|
||||
/*.tooltip {
|
||||
max-width: none;
|
||||
background: rgba(100, 100, 100, 1);
|
||||
}*/
|
||||
.tooltip-custom-font-size {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.custom-select-mini{
|
||||
max-width:170px !important;
|
||||
}
|
||||
.custom-icon {
|
||||
line-height: unset;
|
||||
}
|
||||
/*.custom-tab-content-large{
|
||||
min-height: 800px;
|
||||
}
|
||||
*/
|
||||
.custom-tab-content {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.custom-dataTable-content {
|
||||
min-height: 600px;
|
||||
}
|
||||
|
||||
.custom-html-table-height {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.filterItem span {
|
||||
display: inline-flex;
|
||||
}
|
||||
.filterItem .filterName {
|
||||
max-width: 71%;
|
||||
|
||||
}
|
||||
.browseFilters .filterItem .filterName {
|
||||
max-width: 68%;
|
||||
}
|
||||
|
||||
.filterItem .filterNumber {
|
||||
width: 20%;
|
||||
}
|
||||
.filterItem span {
|
||||
|
||||
white-space: nowrap;
|
||||
}
|
||||
.browseFilters .filterItem span div {
|
||||
/*min-width: 45px;*/
|
||||
}
|
||||
.filterItem span div {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
/*min-width: 81px;*/
|
||||
}
|
||||
|
||||
.browseFilters{
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
max-height:265px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.custom-offcanvas-close {
|
||||
position: relative;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
.uk-link{
|
||||
color: #292C3D !important;
|
||||
}
|
||||
.uk-breadcrumb > :last-child > * {
|
||||
color:#cbcbcb !important;
|
||||
}
|
||||
.uk-breadcrumb .uk-active a{
|
||||
color: #767779 !important;
|
||||
}
|
||||
|
||||
.publicationTitleIcon {
|
||||
background: url("/assets/publication.png") no-repeat;
|
||||
}
|
||||
.datasetTitleIcon {
|
||||
background: url("/assets/dataset.png") no-repeat;
|
||||
}
|
||||
.projectTitleIcon {
|
||||
background: url("/assets/project.png") no-repeat;
|
||||
}
|
||||
.organizationTitleIcon {
|
||||
background: url("/assets/organization.png") no-repeat;
|
||||
}
|
||||
.datasourceTitleIcon {
|
||||
background: url("/assets/datasource.png") no-repeat;
|
||||
}
|
||||
.entityTitleIcon{
|
||||
background-repeat: :no-repeat;
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 36px;
|
||||
width: 42px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.entityIcon{
|
||||
height: 15px;
|
||||
width: 20px;
|
||||
|
||||
}
|
||||
/*.uk-tab{
|
||||
border-bottom: 1px #cbcbcb solid;
|
||||
}*/
|
||||
.label-underCuration{
|
||||
background: #fef5d2 !important;
|
||||
}
|
||||
|
||||
.label-blue {
|
||||
background:#d4f3ff;
|
||||
color:#00a0de
|
||||
}
|
||||
.label-green {
|
||||
background:#d1f6e8;
|
||||
color:#01a566
|
||||
}
|
||||
.label-yellow {
|
||||
background:#fef5d2;
|
||||
color:#cca607
|
||||
}
|
||||
.label-red {
|
||||
background:#fef0ef;
|
||||
color:#f54f43
|
||||
}
|
||||
.label-grey{
|
||||
background: #f8f8f8;
|
||||
color: #666;
|
||||
}
|
||||
.label-orange{
|
||||
background: #fef5d2;
|
||||
color: #f0506e;
|
||||
|
||||
}
|
||||
.uk-tab {
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
margin-left: -20px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
position: relative;
|
||||
}
|
||||
.uk-tab::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 20px;
|
||||
right: 0;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
.mainPageSearchForm{
|
||||
background-image: url("./globe_tech.jpg"); background-color: rgb(255, 255, 255); box-sizing: border-box; min-height: calc(100vh - 412.767px);
|
||||
}
|
||||
.searchForm, .publicationsSearchForm, .projectsSearchForm, .organizationsSearchForm, .datasetsSearchForm, .datasourcesSearchForm, .journalsSearchForm,
|
||||
.entityRegistriesSearchForm, .compatibleDatasourcesSearchForm,
|
||||
.journalsTableSearchForm, .compatibleDatasourcesTableSearchForm, .entityRegistriesTableSearchForm{
|
||||
background-image: url('./formImage.jpg'); box-sizing: border-box; height: 250px;
|
||||
}
|
||||
|
||||
.divider-table tbody td, .uk-table th {
|
||||
border-bottom: 1px solid #E5E5E5;
|
||||
}
|
||||
|
||||
#feedback {
|
||||
float: left;
|
||||
position: fixed;
|
||||
top: calc(50% - 47px);
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#feedback a {
|
||||
background: #F25F30;
|
||||
border-radius: 5px 0 0 5px;
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, .3);
|
||||
border: 3px solid #fff;
|
||||
border-right: 0;
|
||||
display: block;
|
||||
padding: 20px 12px;
|
||||
transition: all .2s ease-in-out;
|
||||
}
|
||||
|
||||
#feedback a:hover {
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.descriptionText{
|
||||
Padding-left: 25px !important;
|
||||
Border-left: 10px solid #fafafa;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
li span {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.item span {
|
||||
width: 100px;
|
||||
margin-left: 1em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.item span div {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}*/
|
After Width: | Height: | Size: 32 KiB |
|
@ -0,0 +1,251 @@
|
|||
<!DOCTYPE html><html lang="en-gb" dir="ltr" vocab="http://schema.org/"><head>
|
||||
<!--link href="http://demo.openaire.eu" rel="canonical" /-->
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<base href="/">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
|
||||
|
||||
<meta property="og:description" content="open access, research, scientific publication, European Commission, EC, FP7, ERC, Horizon 2020, H2020, search, projects ">
|
||||
<meta property="og:title" content="Search OpenAIRE">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://demo.openaire.eu">
|
||||
<meta property="og:site_name" content="OpenAIRE">
|
||||
|
||||
<meta property="og:image" content="https://demo.openaire.eu/assets/dl119_files/Symbol.png">
|
||||
<meta property="og:image:secure_url" content="https://demo.openaire.eu/assets/dl119_files/Symbol.png">
|
||||
<meta property="og:image:type" content="image/png">
|
||||
<meta property="og:image:width" content="360">
|
||||
<meta property="og:image:height" content="359">
|
||||
|
||||
<link href="assets/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
|
||||
<title>OpenAIRE | Error page</title>
|
||||
<script>
|
||||
window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
|
||||
// console.log(errorMsg + " __" + url + " __" + lineNumber + " __" + column + " __" + errorObj);
|
||||
if(errorMsg.indexOf("uikit.js") != -1 || url.indexOf("uikit.js") != -1 ){
|
||||
console.log("********UIKIT Error ***********");
|
||||
$.getScript("assets/dl119_files/uikit.js");
|
||||
$.getScript("assets/dl119_files/uikit-icons-max.js");
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<!-- <script src="assets/jquery/jquery.min.js" type="text/javascript"></script> -->
|
||||
<script src="assets/dl119_files/jquery.js"></script>
|
||||
<!-- <script src="assets/dl119_files/uikit.js"></script> -->
|
||||
<script src="assets/dl119_files/uikit-icons-max.js"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
console.log("Is ready - load uikit ***")
|
||||
$.getScript("assets/dl119_files/uikit.js");
|
||||
$.getScript("assets/dl119_files/uikit-icons-max.js");
|
||||
});
|
||||
</script>
|
||||
<!-- <script src="assets/dl119_files/uikit.js"></script> -->
|
||||
<!-- <script src="assets/dl119_files/uikit-icons-max.js"></script> -->
|
||||
|
||||
|
||||
<!-- <link rel="stylesheet" href="node_modules/uikit/dist/css/uikit.min.css"> -->
|
||||
<link rel="stylesheet" href="assets/dl119_files/theme.css">
|
||||
<link rel="stylesheet" href="assets/dl119_files/custom.css">
|
||||
<link rel="stylesheet" href="assets/custom.css">
|
||||
|
||||
<!-- <script async src="assets/dl119_files/theme.js"></script> -->
|
||||
|
||||
<!--script src="node_modules/uikit/dist/js/uikit.min.js"></script-->
|
||||
|
||||
<!-- Google sitename markup-->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context" : "http://schema.org",
|
||||
"@type" : "WebSite",
|
||||
"name" : "OpenAIRE",
|
||||
"url" : "http://demo.openaire.eu"
|
||||
}
|
||||
</script>
|
||||
<!-- End of Google sitename markup-->
|
||||
<!-- Google sitelinks search markup-->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "WebSite",
|
||||
"url" : "http://demo.openaire.eu",
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": "http://demo.openaire.eu/search/find/?keyword={search_term_string}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="//cdn.jsdelivr.net/clipboard.js/1.5.16/clipboard.min.js"></script>
|
||||
<!--script type='text/javascript' src="node_modules/clipboard/dist/clipboard.min.js"></script-->
|
||||
<!--script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script-->
|
||||
|
||||
<!--script type='text/javascript' src='https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js'></script-->
|
||||
|
||||
<!-- End of Google sitelinks search markup-->
|
||||
|
||||
<script src="../node_modules/angular2/bundles/angular2-polyfills.js"></script>
|
||||
|
||||
<style></style></head>
|
||||
<body class="" style="">
|
||||
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<script async="" src="/main.bundle.js"></script>
|
||||
|
||||
<app _nghost-5ee2-1="">
|
||||
<navbar _ngcontent-5ee2-1="">
|
||||
|
||||
|
||||
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-left">
|
||||
<a class="uk-navbar-toggle" href="#tm-mobile" uk-toggle="">
|
||||
<div class="uk-navbar-toggle-icon uk-icon custom-navbar-toggle-icon" uk-navbar-toggle-icon=""> </div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-navbar-item uk-logo" routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="assets/OA DISCOVER_A.png"> </a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<user-mini>
|
||||
|
||||
<!--template bindings={}-->
|
||||
|
||||
</user-mini>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="uk-offcanvas" id="tm-mobile" mode="slide" overlay="" uk-offcanvas="">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<button class="uk-offcanvas-close uk-close uk-icon" type="button" uk-close=""></button>
|
||||
<div class="uk-child-width-1-1 uk-grid" uk-grid="">
|
||||
<div>
|
||||
<!--template bindings={}-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-toolbar custom-discover-toolbar uk-visible@m">
|
||||
<div class="uk-container uk-flex uk-flex-middle uk-container-expand">
|
||||
<div class="uk-margin-auto-left">
|
||||
<div class="uk-grid-medium uk-child-width-auto uk-flex-middle uk-grid uk-grid-stack" uk-grid="margin: uk-margin-small-top">
|
||||
<div class="uk-first-column">
|
||||
<div class="uk-panel inner" id="module-119">
|
||||
<ul class="uk-subnav uk-subnav-line">
|
||||
<li class="uk-active"><a href="https://beta.openaire.eu"><img alt="home" class="uk-responsive-height" src="assets/dl119_files/Home-icon.png"></a></li>
|
||||
<li class="custom-discover-li"><a routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">Discover</a></li>
|
||||
<li><a>Join</a></li>
|
||||
<li><a>Connect</a></li>
|
||||
<li><a>Monitor</a></li>
|
||||
<li><a>Develop</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" style="" top=".tm-header + [class*="uk-section"]" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}">
|
||||
<div class="uk-navbar-left uk-visible@l ">
|
||||
<a class="uk-logo uk-navbar-item" routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="assets/OA DISCOVER_B.png"></a>
|
||||
</div>
|
||||
<div class="uk-navbar-left uk-visible@m uk-hidden@l">
|
||||
<a class="uk-logo uk-navbar-item" routerLink="/search/find" routerLinkActive="uk-link" href="/search/find">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="assets/OA DISCOVER_A.png"></a>
|
||||
</div>
|
||||
<div class="uk-navbar-center">
|
||||
<!--template bindings={}-->
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<user-mini>
|
||||
|
||||
<!--template bindings={}-->
|
||||
|
||||
</user-mini>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid uk-grid-stack" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</navbar>
|
||||
|
||||
|
||||
|
||||
|
||||
<div _ngcontent-5ee2-1="" class="custom-main-content">
|
||||
<main _ngcontent-5ee2-1="">
|
||||
<router-outlet _ngcontent-5ee2-1=""></router-outlet><error>
|
||||
<div class=" uk-section uk-margin-small-top tm-middle" id="tm-main">
|
||||
<div uk-grid="">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
|
||||
|
||||
<div class="uk-container">
|
||||
<h2>
|
||||
Bad karma: we can't find that page!
|
||||
</h2>
|
||||
<br>
|
||||
|
||||
<p>
|
||||
You asked for /assets/dl119_files/uikit-icon-max.js, but despite our computers looking very hard, we could not find it. What happened ?
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>the link you clicked to arrive here has a typo in it</li>
|
||||
<li>or somehow we removed that page, or gave it another name</li>
|
||||
<li>or, quite unlikely for sure, maybe you typed it yourself and there was a little mistake ?</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</error>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!--template bindings={}-->
|
||||
<!--template bindings={}-->
|
||||
<!--template bindings={}-->
|
||||
|
||||
</app>
|
||||
</div>
|
||||
|
||||
<!-- Go to www.addthis.com/dashboard to customize your tools -->
|
||||
<!-- to update addThis: https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080-->
|
||||
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080"></script>
|
||||
<script type="text/javascript">
|
||||
function loadAltmetrics(e,t,n){
|
||||
var d="createElement",c="getElementsByTagName",m="setAttribute",n=document.getElementById(e);
|
||||
return n&&n.parentNode&&n.parentNode.removeChild(n),n=document[d+"NS"]&&document.documentElement.namespaceURI,n=n?document[d+"NS"](n,"script"):document[d]("script"),n[m]("id",e),n[m]("src",t),(document[c]("head")[0]||document[c]("body")[0]).appendChild(n),n=new Image,void n[m]("src","https://d1uo4w7k31k5mn.cloudfront.net/donut/0.png")
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<universal-script><script>
|
||||
try {window.UNIVERSAL_CACHE = ({"APP_ID":"5ee2","CacheService":"{}"}) || {};} catch(e) { console.warn("Angular Universal: There was a problem parsing data from the server")}
|
||||
</script></universal-script></body></html>
|
|
@ -0,0 +1,101 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../assets/jquery.js"></script>
|
||||
<script src="../assets/uikit.js"></script>
|
||||
<script src="../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="./sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="./sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header=""><!-- top=".tm-header" + [class*="uk-section"] -->
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="./sushilite/">
|
||||
SUSHI Lite Client</a> </h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
|
||||
<div class="uk-container">
|
||||
<h2 class="uk-text-center">
|
||||
404: Page not found
|
||||
</h2>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,107 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="./assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="./assets/jquery.js"></script>
|
||||
<script src="./assets/uikit.js"></script>
|
||||
<script src="./assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="./assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="./assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="./assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!--<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="./assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="./sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="./sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header=""><!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="./assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="./sushilite/">
|
||||
SUSHI Lite Client</a> </h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
|
||||
<div class="uk-container uk-text-center">
|
||||
<h3> Supported Reports</h3>
|
||||
<ul class="uk-list">
|
||||
<li><a href="./sushilite/AR1/">AR1 Report</a></li>
|
||||
<li><a href="./sushilite/IR1/">IR1 Report</a></li>
|
||||
<li><a href="./sushilite/RR1/">RR1 Report</a></li>
|
||||
<li><a href="./sushilite/JR1/">JR1 Report</a></li>
|
||||
<li><a href="./sushilite/BR1/">BR1 Report</a></li>
|
||||
<li><a href="./sushilite/BR2/">BR2 Report</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="./assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="./assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!-- <div class="tm-header-mobile uk-hidden@m">-->
|
||||
<!-- <div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">-->
|
||||
<!-- <nav class="uk-navbar-container uk-navbar" uk-navbar="">-->
|
||||
<!-- <div class="uk-navbar-center">-->
|
||||
<!-- <a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">-->
|
||||
<!-- <img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">-->
|
||||
<!-- </a>-->
|
||||
<!-- <a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >-->
|
||||
<!-- OpenAIRE SUSHI Lite Client</a>-->
|
||||
<!-- <a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">-->
|
||||
<!-- SUSHI Lite Client</a>-->
|
||||
<!-- </div>-->
|
||||
<!-- </nav>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="tm-header uk-visible@m tm-header-transparent" uk-header="">-->
|
||||
<!-- <!– top=".tm-header" + [class*="uk-section"] –>-->
|
||||
<!-- <div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">-->
|
||||
<!-- <div class="uk-container uk-container-expand">-->
|
||||
<!-- <nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">-->
|
||||
<!-- <div class="uk-navbar-center">-->
|
||||
<!-- <div class="uk-logo uk-navbar-item uk-margin-small-top">-->
|
||||
<!-- <a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">-->
|
||||
<!-- <img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">-->
|
||||
<!-- </a>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="uk-logo uk-navbar-item uk-margin-medium-top">-->
|
||||
<!-- <h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">-->
|
||||
<!-- SUSHI Lite Client</a>-->
|
||||
<!-- </h3>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </nav>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-form uk-width-1-1 uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='AR1'>AR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,204 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!--<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<!-- Breadcrumb-->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="../../sushilite/">SUSHI Lite Client</a></li>
|
||||
<li><span>BR1</span></li>
|
||||
</ul>
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-form uk-width-1-1 uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='BR1'>BR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!--<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-form uk-width-1-1 uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='BR2'>BR2</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,239 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!--<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-form uk-width-1-1 uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='IR1'>IR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Filters</h5>
|
||||
<p>Provide either a Repository Identifier or an Item Identifier<br />
|
||||
Identifier format: <b>namespace:value</b><br />
|
||||
Valid namespace for Repository Identifier: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
Valid namespace for Item Identifier: <b>openaire</b>, <b>doi</b> or <b>oid</b>(for OAI-PMH).
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. openaire:opendoar____::5cbdfd0dfa22a3fca7266376887f549b">
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="ItemIdentifier" placeholder="e.g. openaire:od_________7::fb90de6f20d79783d05749d8f60417d5">
|
||||
</div>
|
||||
</div>
|
||||
<p>Optional filter to only show results for a single item type, e.g. article, book, etc.</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Data Type:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='ItemDataType'>
|
||||
<option value="">--- Select ItemDataType ---</option>
|
||||
<option value='Annotation'>Annotation</option>
|
||||
<option value='Article'>Article</option>
|
||||
<option value='Bachelor thesis'>Bachelor thesis</option>
|
||||
<option value='Book'>Book</option>
|
||||
<option value='clinical trial'>clinical trial</option>
|
||||
<option value='Collection'>Collection</option>
|
||||
<option value='Conference object'>Conference object</option>
|
||||
<option value='Contribution for newspaper or weekly magazine'>Contribution for newspaper or weekly magazine</option>
|
||||
<option value='Dataset'>Dataset</option>
|
||||
<option value='Doctoral thesis'>Doctoral thesis</option>
|
||||
<option value='Event'>Event</option>
|
||||
<option value='External research report'>External research report</option>
|
||||
<option value='Film'>Film</option>
|
||||
<option value='Image'>Image</option>
|
||||
<option value='InteractiveResource'>InteractiveResource</option>
|
||||
<option value='Internal report'>Internal report</option>
|
||||
<option value='Lecture'>Lecture</option>
|
||||
<option value='Master thesis'>Master thesis</option>
|
||||
<option value='Newsletter'>Newsletter</option>
|
||||
<option value='Other'>Other</option>
|
||||
<option value='Part of book or chapter of book'>Part of book or chapter of book</option>
|
||||
<option value='Patent'>Patent</option>
|
||||
<option value='PhysicalObject'>PhysicalObject</option>
|
||||
<option value='Preprint'>Preprint</option>
|
||||
<option value='Report'>Report</option>
|
||||
<option value='Research'>Research</option>
|
||||
<option value='Review'>Review</option>
|
||||
<option value='Software'>Software</option>
|
||||
<option value='Sound'>Sound</option>
|
||||
<option value='Unknown'>Unknown</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,226 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!-- <div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-form uk-width-1-1 uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='JR1'>JR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Optional Filters</h5>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Journal Identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. issn:0430-5027">
|
||||
</div>
|
||||
</div>
|
||||
<p>Optional filter to only show results for a single item type, e.g. article, book, etc.</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Data Type:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='ItemDataType'>
|
||||
<option value="">--- Select ItemDataType ---</option>
|
||||
<option value='Annotation'>Annotation</option>
|
||||
<option value='Article'>Article</option>
|
||||
<option value='Bachelor thesis'>Bachelor thesis</option>
|
||||
<option value='Book'>Book</option>
|
||||
<option value='clinical trial'>clinical trial</option>
|
||||
<option value='Collection'>Collection</option>
|
||||
<option value='Conference object'>Conference object</option>
|
||||
<option value='Contribution for newspaper or weekly magazine'>Contribution for newspaper or weekly magazine</option>
|
||||
<option value='Dataset'>Dataset</option>
|
||||
<option value='Doctoral thesis'>Doctoral thesis</option>
|
||||
<option value='Event'>Event</option>
|
||||
<option value='External research report'>External research report</option>
|
||||
<option value='Film'>Film</option>
|
||||
<option value='Image'>Image</option>
|
||||
<option value='InteractiveResource'>InteractiveResource</option>
|
||||
<option value='Internal report'>Internal report</option>
|
||||
<option value='Lecture'>Lecture</option>
|
||||
<option value='Master thesis'>Master thesis</option>
|
||||
<option value='Newsletter'>Newsletter</option>
|
||||
<option value='Other'>Other</option>
|
||||
<option value='Part of book or chapter of book'>Part of book or chapter of book</option>
|
||||
<option value='Patent'>Patent</option>
|
||||
<option value='PhysicalObject'>PhysicalObject</option>
|
||||
<option value='Preprint'>Preprint</option>
|
||||
<option value='Report'>Report</option>
|
||||
<option value='Research'>Research</option>
|
||||
<option value='Review'>Review</option>
|
||||
<option value='Software'>Software</option>
|
||||
<option value='Sound'>Sound</option>
|
||||
<option value='Unknown'>Unknown</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,230 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../../assets/jquery.js"></script>
|
||||
<script src="../../assets/uikit.js"></script>
|
||||
<script src="../../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!--<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
|
||||
<!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
<div class="uk-container">
|
||||
<form action="../../sushilite/GetReport/" method="get" class="uk-form uk-width-1-1 uk-container ">
|
||||
<h3>Report Request</h3>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Report Name:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Report'>
|
||||
<option value='RR1'>RR1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Release:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Release'>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Requestor:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RequestorID" value="anonymous">
|
||||
</div>
|
||||
</div>
|
||||
<h3>Report Filters</h3>
|
||||
<h5>Date range</h5>
|
||||
<p>Valid date formats are yyyy-mm-dd or yyyy-mm. Default range is the last available month.
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Begin Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="BeginDate" placeholder="2016-03" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
End Date:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="EndDate" placeholder="2016-06" />
|
||||
</div>
|
||||
</div>
|
||||
<h5>Optional Filters</h5>
|
||||
<p>By default results are returned for all repositories. Use this filter to get results for a single repository<br />
|
||||
Repository Identifier format: <b>namespace:value</b><br />
|
||||
valid namespace: <b>openaire</b> or <b>opendoar</b>.<br />
|
||||
</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Repository identifier:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<input type="text" name="RepositoryIdentifier" placeholder="e.g. opendoar:1503">
|
||||
</div>
|
||||
</div>
|
||||
<p>Optional filter to only show results for a single item type, e.g. article, book, etc.</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Item Data Type:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='ItemDataType'>
|
||||
<option value="">--- Select ItemDataType ---</option>
|
||||
<option value='Annotation'>Annotation</option>
|
||||
<option value='Article'>Article</option>
|
||||
<option value='Bachelor thesis'>Bachelor thesis</option>
|
||||
<option value='Book'>Book</option>
|
||||
<option value='clinical trial'>clinical trial</option>
|
||||
<option value='Collection'>Collection</option>
|
||||
<option value='Conference object'>Conference object</option>
|
||||
<option value='Contribution for newspaper or weekly magazine'>Contribution for newspaper or weekly magazine</option>
|
||||
<option value='Dataset'>Dataset</option>
|
||||
<option value='Doctoral thesis'>Doctoral thesis</option>
|
||||
<option value='Event'>Event</option>
|
||||
<option value='External research report'>External research report</option>
|
||||
<option value='Film'>Film</option>
|
||||
<option value='Image'>Image</option>
|
||||
<option value='InteractiveResource'>InteractiveResource</option>
|
||||
<option value='Internal report'>Internal report</option>
|
||||
<option value='Lecture'>Lecture</option>
|
||||
<option value='Master thesis'>Master thesis</option>
|
||||
<option value='Newsletter'>Newsletter</option>
|
||||
<option value='Other'>Other</option>
|
||||
<option value='Part of book or chapter of book'>Part of book or chapter of book</option>
|
||||
<option value='Patent'>Patent</option>
|
||||
<option value='PhysicalObject'>PhysicalObject</option>
|
||||
<option value='Preprint'>Preprint</option>
|
||||
<option value='Report'>Report</option>
|
||||
<option value='Research'>Research</option>
|
||||
<option value='Review'>Review</option>
|
||||
<option value='Software'>Software</option>
|
||||
<option value='Sound'>Sound</option>
|
||||
<option value='Unknown'>Unknown</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>You may also limit the results to include or exclude items that have a DOI<br />
|
||||
//Valid values: Yes or No</p>
|
||||
//hasDOI:
|
||||
//<select name='hasDOI'>
|
||||
//<option value="">Not applicable</option>
|
||||
//<option value="Yes">Yes</option>
|
||||
//<option value="No">No</option>
|
||||
//</select>
|
||||
-->
|
||||
<h3>Report Attributes</h3>
|
||||
<p>Valid Granularity values: Monthly or Totals</p>
|
||||
<div class="uk-grid">
|
||||
<div class=" uk-width-1-3 uk-text-right">
|
||||
Granularity:
|
||||
</div>
|
||||
<div class="uk-width-2-3">
|
||||
<select name='Granularity'>
|
||||
<option value="Monthly">Monthly</option>
|
||||
<option value="Totals">Totals</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
//<p>The format in which the response is to be returned defaults to JSON unless a callback function name is entered in which case JSONP is returned.</p>
|
||||
//<input type="text" name="Callback">
|
||||
-->
|
||||
<p>The Pretty attribute is just for humans playing with the API and looking at results in a browser.</p>
|
||||
<p><input type="checkbox" name="Pretty" value="Pretty" checked="checked">Pretty print json(p) for humans</p>
|
||||
<input type="submit" class="uk-button uk-button-primary" value="Get Report"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,107 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="OpenAIRE SUSHI Lite Client, open access, research, scientific publication, European Commission,
|
||||
EC, FP7, ERC, Horizon 2020, H2020, search, projects "/>
|
||||
<link href="../assets/favicon.ico" />
|
||||
<title>OpenAIRE SUSHI Lite Client</title>
|
||||
<script src="../assets/jquery.js"></script>
|
||||
<script src="../assets/uikit.js"></script>
|
||||
<script src="../assets/uikit-icon-max.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../assets/theme.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/custom.css.1">
|
||||
</head>
|
||||
<body class="" style="">
|
||||
<div class="uk-offcanvas-content uk-height-viewport">
|
||||
<!-- MENU STARTS HERE-->
|
||||
<!-- MAIN MENU STARTS HERE-->
|
||||
<!--<div class="tm-header-mobile uk-hidden@m">
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" uk-sticky="">
|
||||
<nav class="uk-navbar-container uk-navbar" uk-navbar="">
|
||||
|
||||
<div class="uk-navbar-center">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img src="../assets/apple-icon-72x72.png" alt="OpenAIRE" class="uk-responsive-height">
|
||||
</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-visible@m" href="../sushilite/" >
|
||||
OpenAIRE SUSHI Lite Client</a>
|
||||
<a class="uk-navbar-item uk-logo uk-padding-remove-left uk-hidden@m" href="../sushilite/">
|
||||
SUSHI Lite Client</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tm-header uk-visible@m tm-header-transparent" uk-header=""><!– top=".tm-header" + [class*="uk-section"] –>
|
||||
<div animation="uk-animation-slide-top" class="uk-navbar-container uk-sticky uk-navbar-transparent uk-light" cls-active="uk-active uk-navbar-sticky" cls-inactive="uk-navbar-transparent uk-light" media="768" uk-sticky="">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar" uk-navbar="{"align":"left"}" style="background-color:white !important;">
|
||||
<div class="uk-navbar-center">
|
||||
<div class="uk-logo uk-navbar-item uk-margin-small-top">
|
||||
<a class="uk-logo uk-navbar-item uk-link" href="https://www.openaire.eu">
|
||||
<img alt="OpenAIRE" class="uk-responsive-height" src="../assets/Logo_Horizontal.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-logo uk-navbar-item uk-margin-medium-top">
|
||||
<h3 style="color: #767779 !important;"><a class="uk-navbar-item uk-logo" href="../sushilite/">
|
||||
SUSHI Lite Client</a> </h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- MENU ENDS HERE-->
|
||||
<div class="first_page_section uk-section-default uk-section uk-padding-remove-vertical">
|
||||
<div class="first_page_banner_headline uk-grid-collapse uk-flex-middle uk-margin-remove-vertical uk-grid" uk-grid="">
|
||||
</div>
|
||||
</div>
|
||||
<div id="tm-main" class=" uk-section tm-middle custom-main-content uk-padding-remove">
|
||||
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first uk-first-column">
|
||||
|
||||
<div class="uk-container uk-text-center">
|
||||
<h3> Supported Reports</h3>
|
||||
<ul class="uk-list">
|
||||
<li><a href="./AR1/">AR1 Report</a></li>
|
||||
<li><a href="./IR1/">IR1 Report</a></li>
|
||||
<li><a href="./RR1/">RR1 Report</a></li>
|
||||
<li><a href="./JR1/">JR1 Report</a></li>
|
||||
<li><a href="./BR1/">BR1 Report</a></li>
|
||||
<li><a href="./BR2/">BR2 Report</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- FOOTER STARTS HERE-->
|
||||
<!--<div class="custom-footer" style="">
|
||||
<div class="uk-section-primary uk-section uk-section-small">
|
||||
<div class="uk-container">
|
||||
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||
<div class="uk-width-1-1@m uk-first-column">
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-center">
|
||||
<img alt="OpenAIRE" class="el-image" src="../assets/Logo_Horizontal_white_small.png">
|
||||
</div>
|
||||
<div class="footer-license uk-margin uk-margin-remove-bottom uk-text-center uk-text-lead">
|
||||
<div><a href="http://creativecommons.org/licenses/by/4.0/" rel="license" target="_blank"><img alt="Creative" src="../assets/80x15.png" style="height: auto; max-width: 100%; vertical-align: middle;"></a> UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.</div>
|
||||
<div>OPENAIRE IS POWERED BY <a href="http://www.d-net.research-infrastructures.eu/" target="_blank">D-NET</a>.</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-margin-remove-top uk-margin-remove-bottom uk-text-right">
|
||||
<a class="uk-totop uk-icon" href="#" uk-scroll="" uk-totop=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Context path="/dnet-openaire-usage-stats-api"/>
|