1st Commit 24012024

This commit is contained in:
dimitrispie 2023-01-24 14:52:48 +02:00
commit d279e2bb4b
86 changed files with 11487 additions and 0 deletions

1
trunk/.svn/entries Executable file
View File

@ -0,0 +1 @@
12

1
trunk/.svn/format Executable file
View File

@ -0,0 +1 @@
12

View File

@ -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;
}
*/
}

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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);
}
}

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -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;
}*/

View File

@ -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();
}

View File

@ -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

View File

@ -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;
}
*/
}

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

View File

@ -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();
}
}

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

File diff suppressed because it is too large Load Diff

View File

@ -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;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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>

File diff suppressed because one or more lines are too long

View File

@ -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;
}
}

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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();
}
}

View File

@ -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

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}

File diff suppressed because one or more lines are too long

View File

@ -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*=&quot;uk-section&quot;]" uk-sticky="">
<div class="uk-container uk-container-expand">
<nav class="uk-navbar" uk-navbar="{&quot;align&quot;:&quot;left&quot;}">
<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>

View File

@ -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;
}
}

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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();
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
trunk/.svn/wc.db Executable file

Binary file not shown.

184
trunk/pom.xml Executable file
View File

@ -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>

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

File diff suppressed because it is too large Load Diff

View 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);
}

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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);
}
}

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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;
}*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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*=&quot;uk-section&quot;]" uk-sticky="">
<div class="uk-container uk-container-expand">
<nav class="uk-navbar" uk-navbar="{&quot;align&quot;:&quot;left&quot;}">
<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>

File diff suppressed because one or more lines are too long

View File

@ -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*=&quot;uk-section&quot;] -->
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">-->
<!-- &lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;-->
<!-- <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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">
&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">
&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">
&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">
&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">
&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -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="">&lt;!&ndash; top=".tm-header" + [class*=&quot;uk-section&quot;] &ndash;&gt;
<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="{&quot;align&quot;:&quot;left&quot;}" 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>&nbsp;UNLESS OTHERWISE INDICATED, ALL MATERIALS CREATED BY THE OPENAIRE CONSORTIUM ARE LICENSED UNDER A&nbsp;<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&nbsp;<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>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/dnet-openaire-usage-stats-api"/>