Whole project format with some minor codestyle fixes

This commit is contained in:
2025-05-14 13:23:23 +01:00
parent 5c9dc284e8
commit 38e3dccdfd
28 changed files with 1131 additions and 959 deletions

View File

@@ -3,15 +3,15 @@
"workspaces": { "workspaces": {
"": { "": {
"devDependencies": { "devDependencies": {
"@eslint/css": "^0.7.0", "@eslint/css": "latest",
"@eslint/js": "^9.26.0", "@eslint/js": "latest",
"@eslint/json": "^0.12.0", "@eslint/json": "latest",
"eslint": "^9.26.0", "eslint": "latest",
"eslint-plugin-react": "^7.37.5", "eslint-plugin-react": "latest",
"globals": "^16.1.0", "globals": "latest",
"lint-staged": "^16.0.0", "lint-staged": "latest",
"prettier": "^3.5.3", "prettier": "latest",
"prettier-plugin-jinja-template": "^2.1.0", "prettier-plugin-jinja-template": "latest",
}, },
}, },
}, },
@@ -78,8 +78,6 @@
"array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="],
"array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="],
"array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="],
"array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="],
@@ -358,7 +356,7 @@
"json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="],
"jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], "jsx-ast-utils": ["jsx-ast-utils@2.4.1", "", { "dependencies": { "array-includes": "^3.1.1", "object.assign": "^4.1.0" } }, "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w=="],
"keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="],

View File

@@ -1,4 +1,4 @@
# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json # yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
inputs: inputs:
nixpkgs: nixpkgs:
url: github:cachix/devenv-nixpkgs/rolling url: github:cachix/devenv-nixpkgs/rolling

View File

@@ -5,13 +5,27 @@ import json from "@eslint/json";
import css from "@eslint/css"; import css from "@eslint/css";
import { defineConfig } from "eslint/config"; import { defineConfig } from "eslint/config";
export default defineConfig([ export default defineConfig([
{ files: ["**/*.{js,mjs,cjs,jsx}"], plugins: { js }, extends: ["js/recommended"] }, { files: ["**/*.{js,mjs,cjs,jsx}"], plugins: { js }, extends: ["js/recommended"] },
{ files: ["**/*.{js,mjs,cjs,jsx}"], languageOptions: { globals: globals.browser } }, { files: ["**/*.{js,mjs,cjs,jsx}"], languageOptions: { globals: globals.browser } },
pluginReact.configs.flat.recommended, pluginReact.configs.flat.recommended,
{ files: ["**/*.json"], plugins: { json }, language: "json/json", extends: ["json/recommended"] }, {
{ files: ["**/*.jsonc"], plugins: { json }, language: "json/jsonc", extends: ["json/recommended"] }, files: ["**/*.json"],
{ files: ["**/*.json5"], plugins: { json }, language: "json/json5", extends: ["json/recommended"] }, plugins: { json },
{ files: ["**/*.css"], plugins: { css }, language: "css/css", extends: ["css/recommended"] }, language: "json/json",
]); extends: ["json/recommended"],
},
{
files: ["**/*.jsonc"],
plugins: { json },
language: "json/jsonc",
extends: ["json/recommended"],
},
{
files: ["**/*.json5"],
plugins: { json },
language: "json/json5",
extends: ["json/recommended"],
},
{ files: ["**/*.css"], plugins: { css }, language: "css/css", extends: ["css/recommended"] },
]);

View File

@@ -7,38 +7,38 @@ import React from "react";
// called on document ready // called on document ready
$(function () { $(function () {
importZammadScript(); importZammadScript();
syncLogoHover(); syncLogoHover();
}); });
function importZammadScript() { function importZammadScript() {
let scriptNode = document.createElement("hidden"); //needed for zammad script let scriptNode = document.createElement("hidden"); //needed for zammad script
scriptNode.id = "zammad_form_script"; scriptNode.id = "zammad_form_script";
scriptNode.src = "https://ub-support.tugraz.at/assets/form/form.js"; scriptNode.src = "https://ub-support.tugraz.at/assets/form/form.js";
document.head.appendChild(scriptNode); document.head.appendChild(scriptNode);
$.getScript("https://ub-support.tugraz.at/assets/form/form.js", () => { $.getScript("https://ub-support.tugraz.at/assets/form/form.js", () => {
$("#feedback-form").ZammadForm({ $("#feedback-form").ZammadForm({
messageTitle: "Contact us", messageTitle: "Contact us",
showTitle: true, showTitle: true,
messageSubmit: "Submit", messageSubmit: "Submit",
messageThankYou: messageThankYou:
"Thank you for your message, (#%s). We will get back to you as quickly as possible!", "Thank you for your message, (#%s). We will get back to you as quickly as possible!",
modal: true, modal: true,
});
}); });
});
} }
// used for sticky test instance notification // used for sticky test instance notification
$(".ui.sticky.test-instance").sticky({ $(".ui.sticky.test-instance").sticky({
context: "body", context: "body",
}); });
export function toggleVisibility(id) { export function toggleVisibility(id) {
var element = document.getElementById(id); var element = document.getElementById(id);
var isHided = element.style.display === "none"; var isHided = element.style.display === "none";
element.style.display = isHided ? "block" : "none"; element.style.display = isHided ? "block" : "none";
} }
window.toggleVisibility = toggleVisibility; window.toggleVisibility = toggleVisibility;
@@ -48,39 +48,39 @@ const searchBarOptions = JSON.parse(headerSearchbar.dataset.options);
// Synchronises the hover states of the subcomponents of the logo // Synchronises the hover states of the subcomponents of the logo
export function syncLogoHover() { export function syncLogoHover() {
const logoGrad = document.getElementById("int-header-logo-grad"); const logoGrad = document.getElementById("int-header-logo-grad");
const logoText = document.getElementById("int-header-logo-text"); const logoText = document.getElementById("int-header-logo-text");
const originalFillGrad = logoGrad.getAttribute("fill"); const originalFillGrad = logoGrad.getAttribute("fill");
const originalColorGrad = logoGrad.getAttribute("color"); const originalColorGrad = logoGrad.getAttribute("color");
const originalFillText = logoText.getAttribute("fill"); const originalFillText = logoText.getAttribute("fill");
const originalColorText = logoText.getAttribute("color"); const originalColorText = logoText.getAttribute("color");
logoGrad.addEventListener("mouseover", () => { logoGrad.addEventListener("mouseover", () => {
logoText.setAttribute("fill", "@primaryLinkHoverBackground"); logoText.setAttribute("fill", "@primaryLinkHoverBackground");
logoText.setAttribute("color", "@primaryLinkHoverBackground"); logoText.setAttribute("color", "@primaryLinkHoverBackground");
}); });
logoGrad.addEventListener("mouseout", () => { logoGrad.addEventListener("mouseout", () => {
logoText.setAttribute("fill", originalFillText); logoText.setAttribute("fill", originalFillText);
logoText.setAttribute("color", originalColorText); logoText.setAttribute("color", originalColorText);
}); });
logoText.addEventListener("mouseover", () => { logoText.addEventListener("mouseover", () => {
logoGrad.setAttribute("fill", "@primaryLinkHoverBackground"); logoGrad.setAttribute("fill", "@primaryLinkHoverBackground");
logoGrad.setAttribute("color", "@primaryLinkHoverBackground"); logoGrad.setAttribute("color", "@primaryLinkHoverBackground");
}); });
logoText.addEventListener("mouseout", () => { logoText.addEventListener("mouseout", () => {
logoGrad.setAttribute("fill", originalFillGrad); logoGrad.setAttribute("fill", originalFillGrad);
logoGrad.setAttribute("color", originalColorGrad); logoGrad.setAttribute("color", originalColorGrad);
}); });
} }
window.syncLogoHover = syncLogoHover; window.syncLogoHover = syncLogoHover;
ReactDOM.render( ReactDOM.render(
<MultipleOptionsSearchBar <MultipleOptionsSearchBar
options={searchBarOptions} options={searchBarOptions}
placeholder={i18next.t("Search records...")} placeholder={i18next.t("Search records...")}
/>, />,
headerSearchbar, headerSearchbar,
); );

View File

@@ -6,37 +6,37 @@
import $ from "jquery"; import $ from "jquery";
async function generateForm() { async function generateForm() {
// get email from `/api/me` // get email from `/api/me`
let email = "???"; let email = "???";
const response = await fetch("/api/me"); const response = await fetch("/api/me");
if (response.ok) { if (response.ok) {
const json = await response.json(); const json = await response.json();
email = json?.email || "???"; email = json?.email || "???";
} }
// show form // show form
$.getScript("https://ub-support.tugraz.at/assets/form/form.js", () => { $.getScript("https://ub-support.tugraz.at/assets/form/form.js", () => {
$("#anchor-unlock-form").ZammadForm({ $("#anchor-unlock-form").ZammadForm({
attributes: [ attributes: [
{}, {},
{ defaultValue: email }, { defaultValue: email },
{ {
defaultValue: `Could you unlock my account (${email}) for research-uploads?`, defaultValue: `Could you unlock my account (${email}) for research-uploads?`,
// TODO: add to defaultValue once policy on how to get accepted is decided... // TODO: add to defaultValue once policy on how to get accepted is decided...
}, },
], ],
modal: false, modal: false,
});
// focus first entry of now-shown form
document.getElementById("zammad-form-name-inline").focus();
}); });
// focus first entry of now-shown form
document.getElementById("zammad-form-name-inline").focus();
});
} }
$(function() { $(function () {
// called when DOM is ready // called when DOM is ready
const generateFormElement = document.getElementById("generate-unlock-form"); const generateFormElement = document.getElementById("generate-unlock-form");
if (generateFormElement) { if (generateFormElement) {
generateFormElement.onclick = generateForm; generateFormElement.onclick = generateForm;
} }
}); });

View File

@@ -91,7 +91,7 @@
} }
} }
.field>input::selection { .field > input::selection {
background: @fieldInputSelectionBackground; background: @fieldInputSelectionBackground;
} }

View File

@@ -23,7 +23,6 @@
color: @primaryText; color: @primaryText;
} }
/*** /***
* login background color * login background color
* from : rgba(13,95,137,.8) * from : rgba(13,95,137,.8)
@@ -34,7 +33,6 @@
background-color: @primaryBackground; background-color: @primaryBackground;
} }
/*** /***
* login & sigup page title * login & sigup page title
* from : #0377cd * from : #0377cd
@@ -44,7 +42,6 @@
color: @primaryText; color: @primaryText;
} }
/*** /***
* anchor color * anchor color
* from : #ef4444 * from : #ef4444
@@ -54,7 +51,6 @@ a {
color: @iformBlue; color: @iformBlue;
} }
/*** /***
* force: the font changes * force: the font changes
***/ ***/
@@ -71,8 +67,8 @@ pre,
.ui.button, .ui.button,
.ui.items, .ui.items,
.ui.accordion .title:not(.ui), .ui.accordion .title:not(.ui),
.ui.items>.item>.content>.header, .ui.items > .item > .content > .header,
.ui.modal>.header, .ui.modal > .header,
.ui.menu, .ui.menu,
.ui.header, .ui.header,
.ui.form input[type], .ui.form input[type],
@@ -84,7 +80,6 @@ pre {
font-size: 14px; font-size: 14px;
} }
/*** /***
* search.button * search.button
***/ ***/
@@ -97,7 +92,6 @@ pre {
* accordion title * accordion title
***/ ***/
.ui.accordion.styled { .ui.accordion.styled {
.title, .title,
.title.active { .title.active {
background-color: @greyLight; background-color: @greyLight;
@@ -164,7 +158,6 @@ pre {
&.embargoed { &.embargoed {
background-color: @accessRightEmbargoed; background-color: @accessRightEmbargoed;
;
} }
&.metadata-only { &.metadata-only {
@@ -174,14 +167,14 @@ pre {
@font-face { @font-face {
font-family: "Source Sans Pro"; font-family: "Source Sans Pro";
src: url('./fonts/SourceSansPro/SourceSansPro-Regular.ttf') format('truetype'); src: url("./fonts/SourceSansPro/SourceSansPro-Regular.ttf") format("truetype");
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
} }
@font-face { @font-face {
font-family: "Source Sans Pro"; font-family: "Source Sans Pro";
src: url('./fonts/SourceSansPro/SourceSansPro-Italic.ttf') format('truetype'); src: url("./fonts/SourceSansPro/SourceSansPro-Italic.ttf") format("truetype");
font-weight: 400; font-weight: 400;
font-style: italic; font-style: italic;
} }

View File

@@ -15,7 +15,7 @@
.creator:not(:last-child):after { .creator:not(:last-child):after {
color: @greyDark; color: @greyDark;
content: ';'; content: ";";
} }
.creator { .creator {

View File

@@ -30,7 +30,9 @@
.no-decoration { .no-decoration {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s; transition:
background-color 0.15s ease 0s,
color 0.15s ease 0s;
outline: none; outline: none;
} }
@@ -42,7 +44,8 @@
border: 1px solid #bfb5b5; border: 1px solid #bfb5b5;
} }
.random-records-frontpage {} .random-records-frontpage {
}
.random-records-frontpage .grid .column { .random-records-frontpage .grid .column {
width: 380px !important; width: 380px !important;

View File

@@ -15,57 +15,57 @@
//@navbar_background_color: #FFFFFF; //@navbar_background_color: #FFFFFF;
// badge colors, accessibility // badge colors, accessibility
@accessRight : #E9711C; @accessRight: #e9711c;
@accessRightOpen : @accessRight; @accessRightOpen: @accessRight;
@accessRightRestricted: #FBBD08; @accessRightRestricted: #fbbd08;
@accessRightEmbargoed : #DB2828; @accessRightEmbargoed: #db2828;
@accessRightClosed : @accessRightEmbargoed; @accessRightClosed: @accessRightEmbargoed;
@accessRightMetadata : #2185D0; @accessRightMetadata: #2185d0;
@schema: #17B3F3; @schema: #17b3f3;
// primary colors of I-Form // primary colors of I-Form
@iformBlack : #140826; @iformBlack: #140826;
@iformBlue: #060E9F; @iformBlue: #060e9f;
@iformLightGreen: #08E673; @iformLightGreen: #08e673;
@iformDarkGreen: #069F4B; @iformDarkGreen: #069f4b;
@iformCyan: #02E8F7; @iformCyan: #02e8f7;
// general // general
@primaryBackground: #FFF; @primaryBackground: #fff;
@primaryText : #000; @primaryText: #000;
// accent colors // accent colors
@greyDark : #777; @greyDark: #777;
@greyLight : #E0E1E2; @greyLight: #e0e1e2;
@labelKeywordBackground: #E8E8E8; @labelKeywordBackground: #e8e8e8;
// link and button colors // link and button colors
@primaryLinkInverted : @primaryText; @primaryLinkInverted: @primaryText;
@primaryLinkBackgroundInverted: @primaryBackground; @primaryLinkBackgroundInverted: @primaryBackground;
@primaryLink : @primaryBackground; @primaryLink: @primaryBackground;
@primaryLinkHoverBackground : @primaryText; @primaryLinkHoverBackground: @primaryText;
@primaryButton : @primaryBackground; @primaryButton: @primaryBackground;
@primaryButtonHoverBackground : @primaryText; @primaryButtonHoverBackground: @primaryText;
@primaryButtonInverted : @primaryText; @primaryButtonInverted: @primaryText;
// account (signin, signup) specific // account (signin, signup) specific
@primaryFormAccounts : @primaryBackground; @primaryFormAccounts: @primaryBackground;
@formAccountsInputPlaceholder : silver; @formAccountsInputPlaceholder: silver;
@fieldInputSelectionBackground: #50A2CE; @fieldInputSelectionBackground: #50a2ce;
@signInBackground : #245B78; @signInBackground: #245b78;
// footer specific // footer specific
@footerGrey : #5E5E5E; @footerGrey: #5e5e5e;
@footerBottomBackground: #F2F2F2; @footerBottomBackground: #f2f2f2;
// record specific // record specific
@recordVersionBackground : #F2F2F2; @recordVersionBackground: #f2f2f2;
@randomRecordsFrontpageArticle: #22242626; @randomRecordsFrontpageArticle: #22242626;
// input // input
@outlineColor: #85B7D9; @outlineColor: #85b7d9;
// notification // notification
@notificationBackground: #FFFAF3; @notificationBackground: #fffaf3;
@notificationBorder: #E2D5C2; @notificationBorder: #e2d5c2;

View File

@@ -5,10 +5,9 @@
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
#} #}
{% extends config.THEME_ERROR_TEMPLATE %} {% extends config.THEME_ERROR_TEMPLATE %}
{% block message %} {% block message %}
<h1><i class="bolt icon"></i> Locked</h1> <h1><i class="bolt icon"></i> Locked</h1>
<p>The resource that is being accessed is locked.</p> <p>The resource that is being accessed is locked.</p>
{% endblock message %} {% endblock message %}

View File

@@ -6,95 +6,128 @@
details. details.
#} #}
<!DOCTYPE html> {% set lang_attr = g.ln.split('_', 1)[0]|safe if g.ln else '' %}
<html{% if html_css_classes %} class="{{ html_css_classes|join(' ') }}"{% endif %} lang="{{ current_i18n.locale.language|safe }}" dir="{{ current_i18n.locale.text_direction }}"> {% set html_class_attr = html_css_classes|join(' ') if html_css_classes else '' %}
<head> {% set body_class_attr = body_css_classes|join(' ') if body_css_classes else '' %}
{%- block head %} {% set rtl_attr = rtl_direction|safe if rtl_direction and g.ln else '' %}
{%- block head_meta %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{%- if description %}<meta name="description" content="{{ description }}" />{% endif %}
{%- if keywords %}<meta name="keywords" content="{{ keywords }}" />{% endif %}
{%- if config.get('THEME_GOOGLE_SITE_VERIFICATION', None) %}
{%- for google_id in config.THEME_GOOGLE_SITE_VERIFICATION %}
<meta name="google-site-verification" content="{{google_id}}"/>
{%- endfor %}
{%- endif %}
{%- endblock head_meta %}
{%- block head_title %}
{%- set title = title or config.THEME_SITENAME %}
<title>{{title}}</title>
{%- endblock head_title %}
{%- block head_links %}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}"/>
{%- if keywords %}<link rel="canonical" href="{{ canonical_url }}"/>{% endif %}
{%- block head_links_langs %}
{%- if alternate_urls %}
{%- for alt_ln, alternate_url in alternate_urls.items() %}
<link rel="alternate" hreflang="{{ alt_ln }}" href="{{ alternate_url }}"/>
{%- endfor %}
{%- endif %}
{%- endblock %}
{%- block head_apple_icons %}
{%- for size in [144, 114, 72, 57] %}
{%- set icon_name = 'apple-touch-icon-%d-precomposed.png' | format(size) %}
<link rel="apple-touch-icon-precomposed" sizes="{{ size }}x{{ size }}" href="{{ url_for('static', filename=icon_name) }}"/>
{%- endfor %}
{%- endblock head_apple_icons %}
{%- endblock head_links %}
{%- block header %}{% endblock header %}
{%- block css %}
{{ webpack['theme.css'] }}
{{ webpack['invenio-theme-iform-theme.css'] }}
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
{%- endblock css %}
{%- endblock head %}
</head>
<body ng-csp {% if body_css_classes %} class="{{ body_css_classes|join(' ') }}"{% endif %}{% if g.ln %} lang="{{ g.ln.split('_', 1)[0]|safe }}"{% if rtl_direction %} {{ rtl_direction|safe }}{% endif %}{% endif %} itemscope itemtype="http://schema.org/WebPage" data-spy="scroll" data-target=".scrollspy-target">
{% if not config.THEME_IFORM_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>{{_ ("Test Instance") }}</h4>
<p>{{_ ("This is the test instance of the I-Form Repository.") }}</p>
</div>
{% endif %}
{%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 8]>
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
{%- endblock browserupgrade %}
{%- block body_inner %}
{%- block navbar_header %} <!doctype html>
{%- include "invenio_theme_iform/navbar.html" %} <html
<!--Flask messages for accounts--> {% if html_class_attr %}class="{{ html_class_attr }}"{% endif %}
{%- block flashmessages %} lang="{{ lang_attr }}"
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%} dir="{{ rtl_attr }}"
{{ flashed_messages() }} >
<head>
{%- block head %}
{%- block head_meta %}
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
{%- if description %}
<meta name="description" content="{{ description }}" />
{% endif %}
{%- if keywords %}<meta name="keywords" content="{{ keywords }}" />{% endif %}
{%- if config.get('THEME_GOOGLE_SITE_VERIFICATION', None) %}
{%- for google_id in config.THEME_GOOGLE_SITE_VERIFICATION %}
<meta name="google-site-verification" content="{{ google_id }}" />
{%- endfor %}
{%- endif %}
{%- endblock head_meta %}
{%- block head_title %}
{%- set title = title or config.THEME_SITENAME %}
<title>{{ title }}</title>
{%- endblock head_title %}
{%- block head_links %}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" />
{%- if keywords %}<link rel="canonical" href="{{ canonical_url }}" />{% endif %}
{%- block head_links_langs %}
{%- if alternate_urls %}
{%- for alt_ln, alternate_url in alternate_urls.items() %}
<link
rel="alternate"
hreflang="{{ alt_ln }}"
href="{{ alternate_url }}"
/>
{%- endfor %}
{%- endif %}
{%- endblock %}
{%- block head_apple_icons %}
{%- for size in [144, 114, 72, 57] %}
{%- set icon_name = 'apple-touch-icon-%d-precomposed.png' | format(size) %}
<link
rel="apple-touch-icon-precomposed"
sizes="{{ size }}x{{ size }}"
href="{{ url_for('static', filename=icon_name) }}"
/>
{%- endfor %}
{%- endblock head_apple_icons %}
{%- endblock head_links %}
{%- block header %}
{% endblock header %}
{%- block css %}
{{ webpack['theme.css'] }}
{{ webpack['invenio-theme-iform-theme.css'] }}
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
{%- endblock css %}
{%- endblock head %}
</head>
<body
ng-csp
{% if body_class_attr %}class="{{ body_class_attr }}"{% endif %}
{% if lang_attr %}lang="{{ lang_attr }}"{% endif %}
{{ rtl_attr }}
itemscope
itemtype="http://schema.org/WebPage"
data-spy="scroll"
data-target=".scrollspy-target"
>
{% if not config.THEME_IFORM_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>"Test Instance"</h4>
<p>"This is the test instance of the I-Form Repository."</p>
</div>
{% endif %}
{%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 8]>
<p class="browserupgrade">
You are using an <strong>outdated</strong> browser. Please
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your
experience.
</p>
<![endif]-->
{%- endblock browserupgrade %}
{%- block body_inner %}
{%- endblock %} {%- block navbar_header %}
{%- endblock navbar_header %} {%- include "invenio_theme_iform/navbar.html" %}
<!--Flask messages for accounts-->
{%- block flashmessages %}
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
{%- endblock flashmessages %}
{%- endblock navbar_header %}
{# {#
{%- block page_header %} {%- block page_header %}
{% include config.THEME_HEADER_TEMPLATE %} {% include config.THEME_HEADER_TEMPLATE %}
{%- endblock page_header %} {%- endblock page_header %}
#} #}
{%- block page_body %} {%- block page_body %}
{% include "invenio_theme/body.html" %} {% include "invenio_theme/body.html" %}
{%- endblock page_body %} {%- endblock page_body %}
{%- endblock body_inner %} {%- endblock body_inner %}
{%- block javascript %} {%- block javascript %}
{% include config.THEME_JAVASCRIPT_TEMPLATE %} {% include config.THEME_JAVASCRIPT_TEMPLATE %}
{%- endblock javascript %} {%- endblock javascript %}
{%- block trackingcode %}{% include config.THEME_TRACKINGCODE_TEMPLATE %} {%- block trackingcode %}
{%- endblock %} {% include config.THEME_TRACKINGCODE_TEMPLATE %}
{%- endblock body %} {%- endblock %}
</body> {%- endblock body %}
</body>
</html> </html>

View File

@@ -1,34 +1,32 @@
{%- if config.ACCOUNTS %} {%- if config.ACCOUNTS %}
{%- if not current_user.is_authenticated %} {%- if not current_user.is_authenticated %}
{%- if config.SECURITY_REGISTERABLE %} {%- if config.SECURITY_REGISTERABLE %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{ url_for('security.register') }}" class="no-decoration"> <a href="{{ url_for('security.register') }}" class="no-decoration">
{{_ ("Sign up")}} {{ _ ("Sign up") }}
</a> </a>
</div> </div>
{%- endif %} {%- endif %}
<div class="short-menu-right-button">
<a href="{{url_for_security('login', next=request.path)}}" class="no-decoration">
{{_ ("Log in")}}
</a>
</div>
{%- else %}
{%- if config.USERPROFILES %}
<div class="short-menu-right-button">
<a href="{{ url_for('invenio_userprofiles.profile') }}" class="no-decoration">
<i class="user icon"></i> {{ current_user.email }}
</a>
</div>
<div class="short-menu-right-button">
<a class="dropdown-item no-decoration" href="{{url_for_security('logout')}}">Sign out</a>
</div>
{%- endif %} <div class="short-menu-right-button">
{%- endif %} <a href="{{ url_for_security('login', next=request.path) }}" class="no-decoration">
{{ _ ("Log in") }}
</a>
</div>
{%- else %}
{%- if config.USERPROFILES %}
<div class="short-menu-right-button">
<a href="{{ url_for('invenio_userprofiles.profile') }}" class="no-decoration">
<i class="user icon"></i> {{ current_user.email }}
</a>
</div>
<div class="short-menu-right-button">
<a class="dropdown-item no-decoration" href="{{ url_for_security('logout') }}"
>Sign out</a
>
</div>
{%- endif %}
{%- endif %}
{%- endif %} {%- endif %}

View File

@@ -5,90 +5,107 @@
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
#} #}
{% extends config.INVENIO_THEME_IFORM_ACCOUNT_BASE %} {% extends config.INVENIO_THEME_IFORM_ACCOUNT_BASE %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %} {% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{%- from "invenio_oauthclient/_macros.html" import oauth_button %} {%- from "invenio_oauthclient/_macros.html" import oauth_button %}
{% block page_body %} {% block page_body %}
<div class="spacer-long"></div> <div class="spacer-long"></div>
<div class="spacer-long"></div> <div class="spacer-long"></div>
<div class="ui container"> <div class="ui container">
<div class="ui centered grid padded"> <div class="ui centered grid padded">
<div class="ui padded segments large form">
<div class="ui login segment padded">
<div class="divider hidden"></div>
{%- block form_header %}
<h3 class="ui login header">Log in to Repository</h3>
{%- endblock form_header %}
<div class="ui divider"></div>
<!--Log in with SSO-->
{% if config.OAUTHCLIENT_REMOTE_APPS or config.SSO_SAML_IDPS %}
<div class="ui form">
{% for name in config.OAUTHCLIENT_REMOTE_APPS.keys() %}
{{ oauth_button(name, next=request.args.get('next')) }}
{% endfor %}
</div>
{% for name in config.SSO_SAML_IDPS.keys() %}
<div class="field">
<a
class="login-page-button ui fluid large button"
href="{{ url_for('sso_saml.sso', idp=name) }}"
>
Log in with
{{ config.SSO_SAML_IDPS[name]['title']|default("SAML", true) }}
<img
src="{{ url_for('static', filename=config.INVENIO_THEME_IFORM_ICON) }}"
height="20px"
/>
</a>
</div>
{% endfor %}
{%- if config.ACCOUNTS_LOCAL_LOGIN_ENABLED %}
<div class="ui horizontal divider">Or</div>
{%- endif %}
{% endif %}
<div class="ui padded segments large form"> {%- block form_outer %}
<div class="ui login segment padded"> {%- if config.ACCOUNTS_LOCAL_LOGIN_ENABLED %}
<div class="divider hidden"></div> {%- with form = login_user_form %}
{%- block form_header %} {%- set accordion_active = "active" if form.errors else "" %}
<h3 class="ui login header">Log in to Repository</h3> <div class="ui styled accordion">
{%- endblock form_header %} <div class="title trigger {{ accordion_active }}">
<div class="ui divider"></div> Log in with repository credentials
<!--Log in with SSO--> <i class="user icon button"></i>
{% if config.OAUTHCLIENT_REMOTE_APPS or config.SSO_SAML_IDPS %} </div>
<div class="ui form"> <div class="content {{ accordion_active }}">
{% for name in config.OAUTHCLIENT_REMOTE_APPS.keys() %} <form
{{ oauth_button(name, next=request.args.get('next')) }} action="{{ url_for_security('login') }}"
{% endfor %} method="POST"
name="login_user_form"
class="ui large form"
>
{{ form.hidden_tag() }}
{{ form_errors(form) }}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
<button
type="submit"
class="ui fluid large submit button"
>
<i class="ui sign-in icon"></i>Log In
</button>
</form>
</div>
</div>
{%- endwith %}
{%- endif %}
{%- endblock form_outer %}
<div class="divider hidden"></div>
</div>
{%- block registerable %}
{%- if security.registerable %}
<div class="ui primary segment padded text-muted">
{% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %}
<a
href="{{ url_for_security('register', next=request.args.get('next')) }}"
>Sign up</a
>
</div>
{%- endif %}
{%- endblock registerable %}
{%- block recoverable %}
{%- if security.recoverable %}
<div class="ui basic segment padded">
<a
class="ui inverted header tiny"
href="{{ url_for_security('forgot_password') }}"
>Forgot password?</a
>
</div>
{%- endif %}
{%- endblock recoverable %}
</div>
</div> </div>
{% for name in config.SSO_SAML_IDPS.keys() %}
<div class="field">
<a class="login-page-button ui fluid large button" href="{{ url_for('sso_saml.sso', idp=name) }}">
Log in with {{ config.SSO_SAML_IDPS[name]['title']|default("SAML", true) }}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_IFORM_ICON)}}" height="20px" />
</a>
</div>
{% endfor %}
{%- if config.ACCOUNTS_LOCAL_LOGIN_ENABLED %}
<div class="ui horizontal divider">Or</div>
{%- endif %}
{% endif %}
{%- block form_outer %}
{%- if config.ACCOUNTS_LOCAL_LOGIN_ENABLED %}
{%- with form = login_user_form %}
{%- set accordion_active = "active" if form.errors else "" %}
<div class="ui styled accordion">
<div class="title trigger {{ accordion_active }}">
Log in with repository credentials
<i class="user icon button"></i>
</div>
<div class="content {{ accordion_active }}">
<form action="{{ url_for_security('login') }}" method="POST" name="login_user_form" class="ui large form">
{{ form.hidden_tag() }}
{{ form_errors(form) }}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
<button type="submit" class="ui fluid large submit button">
<i class="ui sign-in icon"></i>Log In
</button>
</form>
</div>
</div>
{%- endwith %}
{%- endif %}
{%- endblock form_outer %}
<div class="divider hidden"></div>
</div>
{%- block registerable %}
{%- if security.registerable %}
<div class="ui primary segment padded text-muted">
{% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %}
<a href="{{ url_for_security('register', next=request.args.get('next')) }}">Sign up</a>
</div>
{%- endif %}
{%- endblock registerable %}
{%- block recoverable %}
{%- if security.recoverable %}
<div class="ui basic segment padded">
<a class="ui inverted header tiny"
href="{{ url_for_security('forgot_password') }}">Forgot password?</a>
</div>
{%- endif %}
{%- endblock recoverable %}
</div> </div>
</div>
</div>
{% endblock page_body %} {% endblock page_body %}

View File

@@ -5,92 +5,104 @@
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
#} #}
{% extends config.INVENIO_THEME_IFORM_ACCOUNT_BASE %} {% extends config.INVENIO_THEME_IFORM_ACCOUNT_BASE %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %} {% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{% block page_body %} {% block page_body %}
<div class="spacer-long"></div> <div class="spacer-long"></div>
<div class="ui container"> <div class="ui container">
<div class="ui stackable two column grid">
<div class="ui stackable two column grid"> <div class="centered row">
<div class="centered row"> <h1 class="ui header">Create an Account</h1>
<h1 class="ui header">Create an Account</h1>
</div>
<div class="column" id="switch_left">
<div class="ui basic segment">
<h4 class="ui header">Citeable. Discoverable.</h4>
<p class="bodytext">
Uploads get a Digital Object Identifier (DOI) to make them easily and uniquely citeable.
<h4 class="ui header">Communities.</h4>
<p class="bodytext">
Accept or reject uploads to your own community (e.g workshops, EU projects, institutions or entire disciplines).
</h5>
<h4 class="ui header">Trusted Research Data Management</h4>
<p class="bodytext">
Built on top of I-Form expertise in the managing of research data.
</h5>
</div>
</div>
<div class="column" id="switch_right">
{# Sigup with SSO #}
{%- if config.INVENIO_CONFIG_IFORM_SHIBBOLETH %}
<div class="ui divider"></div>
<a href="{{ url_for("sso_saml.sso", idp="idp") }}" class="login-page-button ui fluid large button">
<span style="font-size: 18px;">Sign up with I-Form</span>
<img src="{{ url_for("static", filename=config.INVENIO_THEME_IFORM_ICON) }}" height="20px" />
</a>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or") }}</span></div>
{%- endif %}
{%- block form_header %}
{# can add a header img #}
{%- block form_outer %}
{%- endblock form_outer %}
{%- endblock form_header %}
{%- with form = register_user_form %}
{%- set accordion_active = "active" if form.errors else "" %}
<div class="ui padded centered large form">
<div class="ui styled accordion">
<div class="title trigger {{ accordion_active }}">
Sign up with repository credentials
<i class="user icon button"></i>
</div> </div>
<div class="content {{ accordion_active }}">
<form class="ui large form" action="{{ url_for_security("register") }}" method="POST" name="register_user_form">
{{ form_errors(form) }}
{{ form.hidden_tag() }}
{%- block registration_form_fields scoped %}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
{%- if form.password_confirm %}
{{ render_field(form.password_confirm, icon="lock icon", errormsg=False) }}
{%- endif %}
{%- endblock registration_form_fields %}
{%- if form.recaptcha %} <div class="column" id="switch_left">
<div class="grouped fields">{{ form.recaptcha() }}</div> <div class="ui basic segment">
{%- endif %} <h4 class="ui header">Citeable. Discoverable.</h4>
<p class="bodytext">
Uploads get a Digital Object Identifier (DOI) to make them easily and
uniquely citeable.
</p>
<div class="centered row"> <h4 class="ui header">Communities.</h4>
<button type="submit" class="ui fluid large submit button"> <p class="bodytext">
<i class="ui edit outline icon"></i>Sign up Accept or reject uploads to your own community (e.g workshops, EU projects,
</button> institutions or entire disciplines).
</p>
<h4 class="ui header">Trusted Research Data Management</h4>
<p class="bodytext">
Built on top of I-Form expertise in the managing of research data.
</p>
</div> </div>
</form>
</div> </div>
</div>
<div class="column" id="switch_right">
{# Sigup with SSO #}
{%- if config.INVENIO_CONFIG_IFORM_SHIBBOLETH %}
<div class="ui divider"></div>
<a
href="{{ url_for("sso_saml.sso", idp="idp") }}"
class="login-page-button ui fluid large button"
>
<span style="font-size: 18px;">Sign up with I-Form</span>
<img
src="{{ url_for("static", filename=config.INVENIO_THEME_IFORM_ICON) }}"
height="20px"
/>
</a>
<div class="ui inverted horizontal divider">
<span class="text-color">{{ _ ("Or") }}</span>
</div>
{%- endif %}
{%- block form_header %}
{# can add a header img #}
{%- block form_outer %}
{%- endblock form_outer %}
{%- endblock form_header %}
{%- with form = register_user_form %}
{%- set accordion_active = "active" if form.errors else "" %}
<div class="ui padded centered large form">
<div class="ui styled accordion">
<div class="title trigger {{ accordion_active }}">
Sign up with repository credentials
<i class="user icon button"></i>
</div>
<div class="content {{ accordion_active }}">
<form
class="ui large form"
action="{{ url_for_security("register") }}"
method="POST"
name="register_user_form"
>
{{ form_errors(form) }}
{{ form.hidden_tag() }}
{%- block registration_form_fields scoped %}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
{%- if form.password_confirm %}
{{ render_field(form.password_confirm, icon="lock icon", errormsg=False) }}
{%- endif %}
{%- endblock registration_form_fields %}
{%- if form.recaptcha %}
<div class="grouped fields">{{ form.recaptcha() }}</div>
{%- endif %}
<div class="centered row">
<button type="submit" class="ui fluid large submit button">
<i class="ui edit outline icon"></i>Sign up
</button>
</div>
</form>
</div>
</div>
</div>
{%- endwith %}
<div class="ui divider"></div>
</div>
</div> </div>
{%- endwith %}
<div class="ui divider"></div>
</div> </div>
</div>
</div>
{% endblock page_body %} {% endblock page_body %}

View File

@@ -6,89 +6,103 @@
details. details.
#} #}
<!DOCTYPE html> <!doctype html>
<html lang="{{ current_i18n.locale.language|safe }}" dir="{{ current_i18n.locale.text_direction }}"> <html lang="{{ current_i18n.locale.language|safe }}" dir="{{ current_i18n.locale.text_direction }}">
<head> <head>
{%- block head %} {%- block head %}
{%- block head_meta %} {%- block head_meta %}
<meta charset="utf-8"> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1" />
{%- if description %} {%- if description %}
<meta name="description" content="{{ description }}" /> <meta name="description" content="{{ description }}" />
{% endif %} {% endif %}
{%- if keywords %} {%- if keywords %}
<meta name="keywords" content="{{ keywords }}" /> <meta name="keywords" content="{{ keywords }}" />
{% endif %} {% endif %}
{%- if config.get("THEME_GOOGLE_SITE_VERIFICATION", None) %} {%- if config.get("THEME_GOOGLE_SITE_VERIFICATION", None) %}
{%- for google_id in config.THEME_GOOGLE_SITE_VERIFICATION %} {%- for google_id in config.THEME_GOOGLE_SITE_VERIFICATION %}
<meta name="google-site-verification" content="{{google_id}}"/> <meta name="google-site-verification" content="{{ google_id }}" />
{%- endfor %} {%- endfor %}
{%- endif %} {%- endif %}
{%- endblock head_meta %} {%- endblock head_meta %}
{%- block head_title %} {%- block head_title %}
{%- set title = title or config.THEME_SITENAME %} {%- set title = title or config.THEME_SITENAME %}
<title>{{title}}</title> <title>{{ title }}</title>
{%- endblock head_title %} {%- endblock head_title %}
{%- block head_links %} {%- block head_links %}
<link rel="shortcut icon" href="{{ url_for("static", filename="favicon.ico") }}"/> <link rel="shortcut icon" href="{{ url_for("static", filename="favicon.ico") }}" />
{%- if keywords %} {%- if keywords %}
<link rel="canonical" href="{{ canonical_url }}"/> <link rel="canonical" href="{{ canonical_url }}" />
{% endif %} {% endif %}
{%- block head_links_langs %} {%- block head_links_langs %}
{%- if alternate_urls %} {%- if alternate_urls %}
{%- for alt_ln, alternate_url in alternate_urls.items() %} {%- for alt_ln, alternate_url in alternate_urls.items() %}
<link rel="alternate" hreflang="{{ alt_ln }}" href="{{ alternate_url }}"/> <link
{%- endfor %} rel="alternate"
{%- endif %} hreflang="{{ alt_ln }}"
{%- endblock %} href="{{ alternate_url }}"
{%- endblock head_links %} />
{%- endfor %}
{%- endif %}
{%- endblock %}
{%- endblock head_links %}
{%- block header %}{% endblock header %} {%- block header %}
{% endblock header %}
{%- block css %} {%- block css %}
{{ webpack["theme.css"] }} {{ webpack["theme.css"] }}
{{ webpack["invenio-theme-iform-theme.css"] }} {{ webpack["invenio-theme-iform-theme.css"] }}
{%- endblock css %} {%- endblock css %}
{%- endblock head %} {%- endblock head %}
</head> </head>
<body itemscope itemtype="http://schema.org/WebPage" data-spy="scroll" data-target=".scrollspy-target"> <body
{%- block body %} itemscope
{%- block browserupgrade %} itemtype="http://schema.org/WebPage"
<!--[if lt IE 10]> data-spy="scroll"
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> data-target=".scrollspy-target"
<![endif]--> >
{%- endblock browserupgrade %} {%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 10]>
<p class="browserupgrade">
You are using an <strong>outdated</strong> browser. Please
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your
experience.
</p>
<![endif]-->
{%- endblock browserupgrade %}
{%- block body_inner %} {%- block body_inner %}
{%- block page_header %} {%- block page_header %}
{% include config.THEME_HEADER_TEMPLATE %} {% include config.THEME_HEADER_TEMPLATE %}
{%- endblock page_header %} {%- endblock page_header %}
{%- block page_body %} {%- block page_body %}
{% include "invenio_theme/body.html" %} {% include "invenio_theme/body.html" %}
{%- endblock page_body %} {%- endblock page_body %}
{%- block page_footer %} {%- block page_footer %}
{% include config.THEME_FOOTER_TEMPLATE %} {% include config.THEME_FOOTER_TEMPLATE %}
{%- endblock page_footer %} {%- endblock page_footer %}
{%- endblock body_inner %} {%- endblock body_inner %}
{%- block javascript %} {%- block javascript %}
{% include config.THEME_JAVASCRIPT_TEMPLATE %} {% include config.THEME_JAVASCRIPT_TEMPLATE %}
{%- endblock javascript %} {%- endblock javascript %}
{%- block trackingcode %} {%- block trackingcode %}
{% include config.THEME_TRACKINGCODE_TEMPLATE %} {% include config.THEME_TRACKINGCODE_TEMPLATE %}
{%- endblock %} {%- endblock %}
{%- endblock body %} {%- endblock body %}
</body> </body>
</html> </html>

View File

@@ -7,15 +7,33 @@
#} #}
<div class="ui segment" style="padding-bottom: 10px;"> <div class="ui segment" style="padding-bottom: 10px;">
<h4>Good reasons to use the I-Form Repository</h4> <h4>Good reasons to use the I-Form Repository</h4>
<ul> <ul>
<li><strong>Safe</strong> &mdash; Your research results are permanently available.</li> <li><strong>Safe</strong> &mdash; Your research results are permanently available.</li>
<li><strong>Trusted</strong> &mdash; A service from I-Form, based on software developed by CERN.</li> <li>
<li><strong>Citeable</strong> &mdash; Every upload is assigned a Digital Object Identifier (DOI).</li> <strong>Trusted</strong> &mdash; A service from I-Form, based on software developed by
<li><strong>No waiting time</strong> &mdash; Uploads are made available online as soon as you hit publish. Your DOI is registered within seconds.</li> CERN.
<li><strong>Open or closed</strong> &mdash; You determine the visibility of your uploads. A restricted access mode is possible.</li> </li>
<li><strong>Versioning</strong> &mdash; Easily update your dataset with the versioning feature.</li> <li>
<li><strong>Usage statistics</strong> &mdash; All uploads display standards compliant usage statistics. <a href="help/statistics">(More)</a></li> <strong>Citeable</strong> &mdash; Every upload is assigned a Digital Object Identifier
</ul> (DOI).
</li>
<li>
<strong>No waiting time</strong> &mdash; Uploads are made available online as soon as
you hit publish. Your DOI is registered within seconds.
</li>
<li>
<strong>Open or closed</strong> &mdash; You determine the visibility of your uploads. A
restricted access mode is possible.
</li>
<li>
<strong>Versioning</strong> &mdash; Easily update your dataset with the versioning
feature.
</li>
<li>
<strong>Usage statistics</strong> &mdash; All uploads display standards compliant usage
statistics. <a href="help/statistics">(More)</a>
</li>
</ul>
</div> </div>

View File

@@ -7,19 +7,19 @@
#} #}
<div class="ui segment"> <div class="ui segment">
<h4>Need help?</h4> <h4>Need help?</h4>
{%- if config.THEME_IFORM_CONTACT_FORM %} {%- if config.THEME_IFORM_CONTACT_FORM %}
<div style="padding-bottom: 10px;"> <div style="padding-bottom: 10px;">
<a id="feedback-form" class="fluid ui button">Contact us</a> <a id="feedback-form" class="fluid ui button">Contact us</a>
</div> </div>
{%- endif %} {%- endif %}
<p>We can help with:</p> <p>We can help with:</p>
<ul> <ul>
<li>Uploading your research results, software, preprints, etc.</li> <li>Uploading your research results, software, preprints, etc.</li>
<li>Increasing upload limit beyond our default policy of 10GB.</li> <li>Increasing upload limit beyond our default policy of 10GB.</li>
<li>Establishing contact with data stewards.</li> <li>Establishing contact with data stewards.</li>
<li>Finding individual solutions.</li> <li>Finding individual solutions.</li>
</ul> </ul>
</div> </div>

View File

@@ -5,14 +5,13 @@
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
#} #}
{% extends config.THEME_ERROR_TEMPLATE %}
{% extends config.THEME_ERROR_TEMPLATE %} {% block message %}
<h1>Internal server error</h1>
{% block message %}
<h1> Internal server error </h1>
<p> <p>
Please contact <a href="mailto:{{config.THEME_IFORM_SUPPORT_EMAIL}}">our support</a> to let Please contact <a href="mailto:{{ config.THEME_IFORM_SUPPORT_EMAIL }}">our support</a> to
us know about this error. let us know about this error.
</p> </p>
{# TODO: provide g.sentry_event_id here once sentry is configured, cf. invenio_theme/500.html #} {# TODO: provide g.sentry_event_id here once sentry is configured, cf. invenio_theme/500.html #}
{% endblock message %} {% endblock message %}

View File

@@ -7,74 +7,86 @@
#} #}
{%- block css %} {%- block css %}
{{ webpack['invenio-theme-iform-theme.css'] }} {{ webpack['invenio-theme-iform-theme.css'] }}
{%- endblock %} {%- endblock %}
{%- block javascript %} {%- block javascript %}
{{ webpack['invenio-theme-iform-js.js'] }} {{ webpack['invenio-theme-iform-js.js'] }}
{%- endblock javascript %} {%- endblock javascript %}
<div class="spacer"></div> <div class="spacer"></div>
<footer id="footer" class="footer-bottom"> <footer id="footer" class="footer-bottom">
<div class="ui container"> <div class="ui container">
<div class="ui grid"> <div class="ui grid">
<div class="doubling three column row"> <div class="doubling three column row">
<div class="column"> <div class="column">
<h2>Repository</h2> <h2>Repository</h2>
<div class="ui list"> <div class="ui list">
<div class="item"> <div class="item">
<a href="https://tu-graz-library.github.io/docs-repository" title="Repository documentation" <a
target="_blank"> href="https://tu-graz-library.github.io/docs-repository"
Documentation <i class="external alternate icon"></i> title="Repository documentation"
</a> target="_blank"
</div> >
Documentation <i class="external alternate icon"></i>
</a>
</div>
<div class="item"> <div class="item">
<a href="{{ url_for('invenio_config_iform.guide') }}" <a
title="Quick guide" target="_blank"> href="{{ url_for('invenio_config_iform.guide') }}"
Reference Guide <i class="download icon"></i> title="Quick guide"
</a> target="_blank"
</div> >
Reference Guide <i class="download icon"></i>
</a>
</div>
<div class="item"> <div class="item">
<a href="{{ url_for('invenio_app_rdm.help_search') }}" <a
title="Search guide"> href="{{ url_for('invenio_app_rdm.help_search') }}"
Search Guide<i class="angle right icon"></i> title="Search guide"
</a> >
</div> Search Guide<i class="angle right icon"></i>
</a>
</div>
<div class="item"> <div class="item">
<a href="{{ url_for('invenio_config_iform.gdpr') }}" <a
title="General Data Protection Rights" target="_blank"> href="{{ url_for('invenio_config_iform.gdpr') }}"
Data Protection <i class="download icon"></i> title="General Data Protection Rights"
</a> target="_blank"
</div> >
Data Protection <i class="download icon"></i>
</a>
</div>
<div class="item"> <div class="item">
<a href="{{ url_for('invenio_config_iform.terms') }}" <a
title="Terms and Conditions" target="_blank"> href="{{ url_for('invenio_config_iform.terms') }}"
Terms and Conditions <i class="download icon"></i> title="Terms and Conditions"
</a> target="_blank"
</div> >
</div> Terms and Conditions <i class="download icon"></i>
</div> </a>
</div>
</div>
</div>
<div class="column">
<h2>Features</h2>
<div class="column"> <div class="ui list">
<h2>Features</h2> <div class="item">Scalability</div>
<div class="item">Institutional integration</div>
<div class="item">Next Generation Repository</div>
<div class="item">Repository Profiles</div>
<div class="item">Resilient</div>
</div>
</div>
<div class="ui list"> <!-- <div class="column">
<div class="item">Scalability</div>
<div class="item">Institutional integration</div>
<div class="item">Next Generation Repository</div>
<div class="item">Repository Profiles</div>
<div class="item">Resilient</div>
</div>
</div>
<!-- <div class="column">
<h2>Connected Services</h2> <h2>Connected Services</h2>
<div class="ui list"> <div class="ui list">
<div class="item"> <div class="item">
@@ -97,41 +109,52 @@
</div> </div>
</div> --> </div> -->
<div class="column"> <div class="column">
<h2>Accessibility</h2> <h2>Accessibility</h2>
<div class="ui list"> <div class="ui list">
<div class="item">Tip:</div> <div class="item">Tip:</div>
<div class="item">Use Ctrl + and Crtl -</div> <div class="item">Use Ctrl + and Crtl -</div>
<div class="item">to change the font size.</div> <div class="item">to change the font size.</div>
</div> </div>
</div> </div>
</div>
</div> <div class="ui divider"></div>
<div class="ui divider"></div> <div class="doubling two column row">
<div class="column">
<div class="doubling two column row"> <div class="logos">
<div class="column"> <strong>Powered by</strong>
<div class="logos"> <a
<strong>Powered by</strong> href="http://inveniosoftware.org/products/rdm"
<a href="http://inveniosoftware.org/products/rdm" target="_blank" title="invenioRDM"> target="_blank"
<img src="{{ url_for("static", filename="images/inveniordm-tail.svg")}}" title="invenioRDM"
alt="InvenioRDM logo" >
style="display: block; height: 90px; margin-top: 8px;"> <img
</a> src="{{ url_for("static", filename="images/inveniordm-tail.svg") }}"
</div> alt="InvenioRDM logo"
style="display: block; height: 90px; margin-top: 8px;"
/>
</a>
</div>
</div>
<div class="column">
<div class="logos">
<strong>Funded by</strong>
<a
href="https://www.sfi.ie"
target="_blank"
title="Science Foundation Ireland"
>
<img
src="{{ url_for("static", filename="images/SFI_logo.png") }}"
alt="Science Foundation Ireland"
style="display: block; height: auto; margin-top: 15px; width: 230px;"
/>
</a>
</div>
</div>
</div>
</div> </div>
<div class="column">
<div class="logos">
<strong>Funded by</strong>
<a href="https://www.sfi.ie" target="_blank" title="Science Foundation Ireland">
<img src="{{ url_for("static", filename="images/SFI_logo.png")}}"
alt="Science Foundation Ireland"
style="display: block; height: auto; margin-top: 15px; width: 230px;">
</a>
</div>
</div>
</div>
</div> </div>
</div>
</footer> </footer>

View File

@@ -7,66 +7,66 @@
#} #}
<div class="sixteen wide column random-records-frontpage"> <div class="sixteen wide column random-records-frontpage">
<div class="center aligned ui equal height grid"> <div class="center aligned ui equal height grid">
<div class="left aligned column"> <div class="left aligned column">
<div class="ui segment image"> <div class="ui segment image">
<h2>Research Results</h2> <h2>Research Results</h2>
<div>Frontpage: Description for research results</div> <div>Frontpage: Description for research results</div>
<ul> <ul>
{# {#
<li> <li>
<a href="research-results/browse">Browse</a> <a href="research-results/browse">Browse</a>
</li> </li>
#} #}
<li> <li>
<a href="records/search">Search for research results</a> <a href="records/search">Search for research results</a>
</li> </li>
<li> <li>
<a href="me/uploads">Upload research results</a> <a href="me/uploads">Upload research results</a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="left aligned column"> <div class="left aligned column">
<div class="ui segment image"> <div class="ui segment image">
<h2>Publications</h2> <h2>Publications</h2>
<div>Frontpage: Description for publications</div> <div>Frontpage: Description for publications</div>
<ul> <ul>
{# {#
<li> <li>
<a href="publications/browse">Browse</a> <a href="publications/browse">Browse</a>
</li> </li>
#} #}
<li> <li>
<a href="publications/search">Search for publications</a> <a href="publications/search">Search for publications</a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="left aligned column"> <div class="left aligned column">
<div class="ui segment image"> <div class="ui segment image">
<h2>Educational Resources</h2> <h2>Educational Resources</h2>
<div>Frontpage: Description for open educational resources</div> <div>Frontpage: Description for open educational resources</div>
<ul> <ul>
{# {#
<li> <li>
<a href="oer/browse">Browse</a> <a href="oer/browse">Browse</a>
</li> </li>
#} #}
<li> <li>
<a href="oer/search">Search for educational resourses</a> <a href="oer/search">Search for educational resourses</a>
</li> </li>
<li> <li>
<a href="oer/uploads">Upload educational resources</a> <a href="oer/uploads">Upload educational resources</a>
</li> </li>
</ul> </ul>
</div> </div>
</div>
</div> </div>
</div>
</div> </div>

View File

@@ -7,58 +7,63 @@
#} #}
{% if not config.THEME_IFORM_PRODUCTION %} {% if not config.THEME_IFORM_PRODUCTION %}
<div class="ui sticky test-instance"> <div class="ui sticky test-instance">
<h4>Test Instance</h4> <h4>Test Instance</h4>
<p>This is the test instance of the I-Form Repository.</p> <p>This is the test instance of the I-Form Repository.</p>
</div> </div>
{% endif %} {% endif %}
<div> <div>
<header> <header>
{%- block site_banner %} {%- block site_banner %}
{% from 'invenio_banners/banner.html' import banner %} {% from 'invenio_banners/banner.html' import banner %}
{{ banner() }} {{ banner() }}
{%- endblock site_banner %} {%- endblock site_banner %}
{%- block navbar %} {%- block navbar %}
<nav> <nav>
{%- block navbar_header %} {%- block navbar_header %}
{%- include "invenio_theme_iform/navbar.html" %} {%- include "invenio_theme_iform/navbar.html" %}
{%- endblock navbar_header %} {%- endblock navbar_header %}
<div class="ui container"> <div class="ui container">
<div class="ui grid stackable container"> <div class="ui grid stackable container">
<div class="three column row centered" style="padding-bottom: 0;"> <div class="three column row centered" style="padding-bottom: 0;">
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_theme_iform.index')}}" title="Home" class="no-decoration"> <a
<span class="home-inline"> href="{{ url_for('invenio_theme_iform.index') }}"
{%- include "invenio_theme_iform/home_icon.svg" %} Home title="Home"
</span> class="no-decoration"
</a> >
</div> <span class="home-inline">
{%- include "invenio_theme_iform/home_icon.svg" %} Home
</span>
</a>
</div>
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a role="menuitem" href="/communities" class="no-decoration">Communities</a> <a role="menuitem" href="/communities" class="no-decoration"
</div> >Communities</a
<div class="two wide column main-menu-entry"> >
<a role="menuitem" href="/me/overview" class="no-decoration">Dashboard</a> </div>
</div> <div class="two wide column main-menu-entry">
</div> <a role="menuitem" href="/me/overview" class="no-decoration"
>Dashboard</a
>
</div>
</div>
<div id="margin-divider" class="ui divider main-menu-underline-line"> <div id="margin-divider" class="ui divider main-menu-underline-line"></div>
</div>
</div> <div class="spacer"></div>
</div> </div>
</nav>
{%- endblock navbar %}
<div class="spacer"></div> {%- block flashmessages %}
</div> {%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
</nav> {%- endblock %}
{%- endblock navbar %} </header>
{%- block flashmessages %}
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
{%- endblock %}
</header>
</div> </div>

View File

@@ -5,31 +5,25 @@
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
#} #}
{%- extends config.INVENIO_THEME_IFORM_BASE_TEMPLATE %} {%- extends config.INVENIO_THEME_IFORM_BASE_TEMPLATE %}
{%- block javascript %} {%- block javascript %}
{{ webpack['invenio-theme-iform-js.js'] }} {{ webpack['invenio-theme-iform-js.js'] }}
{%- endblock javascript %} {%- endblock javascript %}
{%- block page_body %} {%- block page_body %}
<div class="ui container">
<div class="ui divider hidden"></div>
<div class="ui container"> <div class="ui stackable grid">
<div class="ui divider hidden"></div> {% include "invenio_theme_iform/frontpage_overview.html" %}
{% include "invenio_theme_iform/recent_uploads.html" %}
<div class="ui stackable grid"> <!---segments-->
<div class="six wide column">
{% include "invenio_theme_iform/frontpage_overview.html" %} {% include "invenio_theme_iform/contact_us.html" %}
{% include "invenio_theme_iform/benefits.html" %}
{% include "invenio_theme_iform/recent_uploads.html" %} </div>
</div>
<!---segments-->
<div class="six wide column">
{% include "invenio_theme_iform/contact_us.html" %}
{% include "invenio_theme_iform/benefits.html" %}
</div> </div>
</div>
</div>
{%- endblock %} {%- endblock %}

View File

@@ -9,22 +9,31 @@
{%- macro creators (authors_list) %} {%- macro creators (authors_list) %}
{%- for creators in authors_list %} {%- for creators in authors_list %}
{%- if creators.identifiers and creators.identifiers.orcid %} {%- if creators.identifiers and creators.identifiers.orcid %}
<a href="{{creators.identifiers.orcid|pid_url('orcid')}}" target="_blank" ><img class="inline-orcid" src="{{ url_for('static', filename='extra/orcid.png')}}" /></a> <a href="{{ creators.identifiers.orcid|pid_url('orcid') }}" target="_blank"
{%- endif %} ><img
class="inline-orcid"
src="{{ url_for('static', filename='extra/orcid.png') }}"
/></a>
{%- endif %}
<span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-tooltip="{{affiliation.name}}" data-inverted="" {%- endfor %} {% endif %}>{{creators.person_or_org.name}}</span> <span
{% if not loop.last %}; {% endif %} class="text-muted"
{% if creators.affiliations %}{% for affiliation in creators.affiliations %}
{%- endfor %} data-tooltip="{{ affiliation.name }}" data-inverted=""
{%- endfor %}{% endif %}
>{{ creators.person_or_org.name }}</span
>
{% if not loop.last %};{% endif %}
{%- endfor %}
{%- endmacro %} {%- endmacro %}
<!--TODO: contributers--> <!--TODO: contributers-->
{%- macro contributors(contributors_list) %} {%- macro contributors(contributors_list) %}
{%- for group in contributors_list|groupby('type')%} {%- for group in contributors_list|groupby('type') %}
<h5>{{group.grouper}}(s)</h5> <h5>{{ group.grouper }}(s)</h5>
{{authors(group.list)}} {{ authors(group.list) }}
{%- endfor %} {%- endfor %}
{%- endmacro %} {%- endmacro %}

View File

@@ -6,85 +6,92 @@
details. details.
#} #}
{% set options = [ {%
{ set options = [
"key": "records", {
"text": "All", "key": "records",
"value": url_for("invenio_search_ui.search"), "text": "All",
"title": "repo", "value": url_for("invenio_search_ui.search"),
},{ "title": "repo",
"key": "rdm", },{
"text": "Research Results", "key": "rdm",
"value": "/records/search", "text": "Research Results",
"title": "Research Data", "value": "/records/search",
},{ "title": "Research Data",
"key": "marc21", },{
"text": "Publications", "key": "marc21",
"value": url_for("invenio_records_marc21.search"), "text": "Publications",
"title": "publication", "value": url_for("invenio_records_marc21.search"),
},{ "title": "publication",
"key": "lom", },{
"text": "Educational Resources", "key": "lom",
"value": url_for("invenio_records_lom.search"), "text": "Educational Resources",
"title": "oer", "value": url_for("invenio_records_lom.search"),
} "title": "oer",
] }
]
%} %}
<div class="ui container"> <div class="ui container">
<div class="short-menu" id="all-menu-top-table"> <div class="short-menu" id="all-menu-top-table">
<div class="short-menu-left"> <div class="short-menu-left">
<div id="all-menu-top-left-item"> <div id="all-menu-top-left-item">
<div class="short-menu-left-search"> <div class="short-menu-left-search">
<div style="display: inline-block;"> <div style="display: inline-block;">
<div class="item p-0 search-bar rel-mr-1"> <div class="item p-0 search-bar rel-mr-1">
<div id="header-search-bar" data-options='{{ options | tojson }}'></div> <div id="header-search-bar" data-options="{{ options | tojson }}"></div>
</div>
</div>
</div>
</div> </div>
</div>
</div> </div>
</div>
</div>
<div class="short-menu-right"> <div class="short-menu-right">
{%- block navbar_right %} {%- block navbar_right %}
{%- include config.THEME_HEADER_LOGIN_TEMPLATE %} {%- include config.THEME_HEADER_LOGIN_TEMPLATE %}
{%- endblock navbar_right %} {%- endblock navbar_right %}
</div>
</div>
<!----END MENU------------------------------------------------------------->
<div class="ui grid" id="main-logo">
<!-- Left -->
<div class="left floated left aligned six wide column" id="repo-logo">
<div class="inline-elements">
<div class="repo-img">
{%- include "invenio_theme_iform/repository_logo.svg" %}
</div> </div>
<div class="affiliation-text"> </div>
<a title="Home" href="{{url_for("invenio_theme_iform.index")}}" class="no-decoration">
I-FORM <!----END MENU------------------------------------------------------------->
<br>
RESEARCH DATA <div class="ui grid" id="main-logo">
<br> <!-- Left -->
REPOSITORY <div class="left floated left aligned six wide column" id="repo-logo">
</a> <div class="inline-elements">
<div class="repo-img">{%- include "invenio_theme_iform/repository_logo.svg" %}</div>
<div class="affiliation-text">
<a
title="Home"
href="{{ url_for("invenio_theme_iform.index") }}"
class="no-decoration"
>
I-FORM
<br />
RESEARCH DATA
<br />
REPOSITORY
</a>
</div>
</div>
</div>
<!-- Right -->
<div class="right floated right aligned six wide column">
<div class="affiliation-logo" id="int-header-logo">
<div class="affiliation-logo-claim">
<div class="affiliation-logo-claim-single">Excellence</div>
<div class="affiliation-logo-claim-single">Through</div>
<div class="affiliation-logo-claim-single">Expertise</div>
</div>
<a
href="https://www.i-form.ie"
title="I-Form Home"
target="_blank"
class="no-decoration"
>
{%- include "invenio_theme_iform/iform_logo.svg" %}
</a>
</div>
</div> </div>
</div>
</div> </div>
<!-- Right -->
<div class="right floated right aligned six wide column">
<div class="affiliation-logo" id="int-header-logo">
<div class="affiliation-logo-claim">
<div class="affiliation-logo-claim-single">Excellence</div>
<div class="affiliation-logo-claim-single">Through</div>
<div class="affiliation-logo-claim-single">Expertise</div>
</div>
<a href="https://www.i-form.ie" title="I-Form Home" target="_blank" class="no-decoration">
{%- include "invenio_theme_iform/iform_logo.svg" %}
</a>
</div>
</div>
</div>
</div> </div>

View File

@@ -5,114 +5,150 @@
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
#} #}
{%- extends config.INVENIO_THEME_IFORM_BASE_TEMPLATE %} {%- extends config.INVENIO_THEME_IFORM_BASE_TEMPLATE %}
{%- set active_dashboard_menu_item = "overview" %} {%- set active_dashboard_menu_item = "overview" %}
{%- set title = "Overview" %} {%- set title = "Overview" %}
{% block javascript %} {% block javascript %}
{{ super() }} {{ super() }}
{{ webpack['invenio-theme-iform-unlock.js'] }} {{ webpack['invenio-theme-iform-unlock.js'] }}
{% endblock javascript %} {% endblock javascript %}
{%- block page_body %} {%- block page_body %}
{%- block user_dashboard_header %} {%- block user_dashboard_header %}
{% include "invenio_app_rdm/users/header.html" %} {% include "invenio_app_rdm/users/header.html" %}
{%- endblock user_dashboard_header %} {%- endblock user_dashboard_header %}
<div class="ui container rel-mt-2"> <div class="ui container rel-mt-2">
<h2>Overview</h2> <h2>Overview</h2>
<div class="ui five column stackable grid overview"> <div class="ui five column stackable grid overview">
{% if is_iform_authenticated %} {% if is_iform_authenticated %}
{# 3 columns: Research-Uploads, Communities, and Requests #} {# 3 columns: Research-Uploads, Communities, and Requests #}
<div class="column"> <div class="column">
<div class="ui segment" style="height: 480px"> <div class="ui segment" style="height: 480px">
<h2>Research Results</h2> <h2>Research Results</h2>
<a class="ui left floated image" href="/me/uploads"> <a class="ui left floated image" href="/me/uploads">
<img width="400px" alt="Research Results" src="{{ url_for("static", filename="images/diamond.svg") }}"> <img
</a> width="400px"
<div class="ui right floated text">Overview: Description for research results</div> alt="Research Results"
</div> src="{{ url_for("static", filename="images/diamond.svg") }}"
</div> />
<div class="column"> </a>
<div class="ui segment" style="height: 480px"> <div class="ui right floated text">
<h2>Communities</h2> Overview: Description for research results
<a class="ui left floated image" href="/me/communities"> </div>
<img width="400px" alt="Communities" src="{{ url_for("static", filename="images/group-discussion.svg") }}"> </div>
</a> </div>
<div>Overview: Description of Communities</div> <div class="column">
</div> <div class="ui segment" style="height: 480px">
</div> <h2>Communities</h2>
<div class="column"> <a class="ui left floated image" href="/me/communities">
<div class="ui segment" style="height: 480px"> <img
<h2>Requests</h2> width="400px"
<a class="ui left floated image" href="/me/requests"> alt="Communities"
<img width="400px" alt="Requests" src="{{ url_for("static", filename="images/umbrella.svg") }}"> src="{{ url_for("static", filename="images/group-discussion.svg") }}"
</a> />
<div>Overview: Description of Requests</div> </a>
</div> <div>Overview: Description of Communities</div>
</div> </div>
{% else %} {# not is_iform_authenticated #} </div>
{# 1 column: greyed out Research-Uploads #} <div class="column">
<div class="column"> <div class="ui segment" style="height: 480px">
{# a modal's HTML can be placed anywhere, so I placed it here, right before it's used #} <h2>Requests</h2>
<div class="ui small modal" id="iform-unlock-modal"> <a class="ui left floated image" href="/me/requests">
<div class="header">On unlocking research uploads</div> <img
<div class="content"> width="400px"
<p> alt="Requests"
To ensure a well-curated repository, new users need to get unlocked src="{{ url_for("static", filename="images/umbrella.svg") }}"
before being allowed to upload. Once unlocked, you can upload your research, />
request its inclusion in a community, generate a DOI for it, and publish it. </a>
{# TODO: extra lines on policy about who gets accepted how for Research-Uploads #} <div>Overview: Description of Requests</div>
</p> </div>
<div id="anchor-unlock-form"> {# will be replaced with ZammadForm when generating it #} </div>
<button class="ui fluid button" onclick=" {% else %}
{# not is_iform_authenticated #}
{# 1 column: greyed out Research-Uploads #}
<div class="column">
{# a modal's HTML can be placed anywhere, so I placed it here, right before it's used #}
<div class="ui small modal" id="iform-unlock-modal">
<div class="header">On unlocking research uploads</div>
<div class="content">
<p>
To ensure a well-curated repository, new users need to get unlocked
before being allowed to upload. Once unlocked, you can upload your
research, request its inclusion in a community, generate a DOI for
it, and publish it.
{# TODO: extra lines on policy about who gets accepted how for Research-Uploads #}
</p>
<div id="anchor-unlock-form">
{# will be replaced with ZammadForm when generating it #}
<button
class="ui fluid button"
onclick="
$('#iform-unlock-modal') $('#iform-unlock-modal')
.modal('hide')" .modal('hide')"
>Got it!</button> >
<button id="generate-unlock-form" class="ui fluid button">Request unlocking</button> Got it!
</div> </button>
</div> <button id="generate-unlock-form" class="ui fluid button">
</div> Request unlocking
</button>
</div>
</div>
</div>
{# actual column contents start here #} {# actual column contents start here #}
<div class="ui disabled segment" style="height: 480px"> <div class="ui disabled segment" style="height: 480px">
<h2>Research Results</h2> <h2>Research Results</h2>
<div class="ui left floated image" style="cursor: pointer" onclick=" <div
class="ui left floated image"
style="cursor: pointer"
onclick="
$('#iform-unlock-modal') $('#iform-unlock-modal')
.modal('show')" .modal('show')"
> >
<img width="400px" alt="Research Results" src="{{ url_for("static", filename="images/diamond.svg") }}"> <img
</div> width="400px"
<div class="ui right floated text"> alt="Research Results"
Overview: Description for research results src="{{ url_for("static", filename="images/diamond.svg") }}"
</div> />
</div>
<div class="ui right floated text">
Overview: Description for research results
</div>
</div>
</div>
{% endif %}
{% if can_view_marc21 %}
<div class="column">
<div class="ui segment" style="height: 480px">
<h2>Publications</h2>
<a class="ui left floated image" href="/publications/uploads">
<img
width="400px"
alt="Publications"
src="{{ url_for("static", filename="images/library-book-svgrepo-com.svg") }}"
/>
</a>
<div>Overview: Description for publications</div>
</div>
</div>
{% endif %}
<div class="column">
<div class="ui segment" style="height: 480px">
<h2>Educational Resources</h2>
<a class="ui left floated image" href="/oer/uploads">
<img
width="400px"
alt="Open Educational Resources"
src="{{ url_for("static", filename="images/play.svg") }}"
/>
</a>
<div>Overview: Description for open educational resources</div>
</div>
</div>
</div> </div>
</div>
{% endif %}
{% if can_view_marc21 %}
<div class="column">
<div class="ui segment" style="height: 480px">
<h2>Publications</h2>
<a class="ui left floated image" href="/publications/uploads">
<img width="400px" alt="Publications" src="{{ url_for("static", filename="images/library-book-svgrepo-com.svg") }}">
</a>
<div>Overview: Description for publications</div>
</div>
</div>
{% endif %}
<div class="column">
<div class="ui segment" style="height: 480px">
<h2>Educational Resources</h2>
<a class="ui left floated image" href="/oer/uploads">
<img width="400px" alt="Open Educational Resources" src="{{ url_for("static", filename="images/play.svg") }}">
</a>
<div>Overview: Description for open educational resources</div>
</div>
</div>
</div> </div>
</div>
{%- endblock %} {%- endblock %}

View File

@@ -8,82 +8,82 @@
<!---Recent uploads--> <!---Recent uploads-->
<div class="ten wide column random-records-frontpage"> <div class="ten wide column random-records-frontpage">
<h2>Recent uploads</h2> <h2>Recent uploads</h2>
{% if not records %} {% if not records %}
<div class="ui centered grid"> <div class="ui centered grid">
<p style="font-size: medium;">There are no public records to show.</p> <p style="font-size: medium;">There are no public records to show.</p>
</div> </div>
{% endif %} {% endif %}
{%- for r in records %} {%- for r in records %}
{%- set creation_date = r.created | from_isodatetime -%} {%- set creation_date = r.created | from_isodatetime -%}
{%- set record_url = r.original.view %} {%- set record_url = r.original.view %}
<article> <article>
<div class="badges"> <div class="badges">
{# Publication date/Version badge #} {# Publication date/Version badge #}
<span class="ui label blue" data-tooltip="Publication date" data-inverted=""> <span class="ui label blue" data-tooltip="Publication date" data-inverted="">
{{ r.created_date_l10n_long }} {{ r.created_date_l10n_long }}
</span> </span>
{# Resource type badge #} {# Resource type badge #}
{% if r.metadata.types | length > 0%} {% if r.metadata.types | length > 0 %}
<span class="ui label grey" data-tooltip="Resource type" data-inverted=""> <span class="ui label grey" data-tooltip="Resource type" data-inverted="">
{{ r.metadata.types[0] }} {{ r.metadata.types[0] }}
</span> </span>
{% endif %} {% endif %}
<span class="ui label access-status {{ r.access_status.id }}" <span
data-tooltip="{{ r.access_status.description_l10n }}" class="ui label access-status {{ r.access_status.id }}"
data-inverted=""> data-tooltip="{{ r.access_status.description_l10n }}"
<i class="icon {{ r.access_status.icon }}"></i> data-inverted=""
{{ r.access_status.title_l10n }} >
</span> <i class="icon {{ r.access_status.icon }}"></i>
{{ r.access_status.title_l10n }}
</span>
<span class="ui label schema" data-tooltip="Schema Type" data-inverted=""> <span class="ui label schema" data-tooltip="Schema Type" data-inverted="">
{{ r.original.schema_l10n }} {{ r.original.schema_l10n }}
</span> </span>
</div> </div>
<h4> <h4>
<a href="{{ record_url }}" class="no-decoration"> <a href="{{ record_url }}" class="no-decoration"> {{ r.metadata.titles[0] }} </a>
{{ r.metadata.titles[0] }} </h4>
</a>
</h4>
<p> <p>
{%- for creator in r.metadata.creators %} {%- for creator in r.metadata.creators %}
<span>{{ creator }}</span> <span>{{ creator }}</span>
{%- endfor %} {%- endfor %}
</p> </p>
<p class="hidden-xs"> <p class="hidden-xs">
<a href="{{record_url}}" class="no-decoration"> <a href="{{ record_url }}" class="no-decoration">
{{ r.metadata.descriptions | join(" ") | striptags | truncate(300) }} {{ r.metadata.descriptions | join(" ") | striptags | truncate(300) }}
</a> </a>
</p> </p>
<div class="ui"> <div class="ui">
{%- for subject in r.metadata.subjects %} {%- for subject in r.metadata.subjects %}
<span class="ui tiny label">{{ subject }}</span> <span class="ui tiny label">{{ subject }}</span>
{%- endfor %} {%- endfor %}
<div> <div>
<small> <small>
{# {#
{% trans user=userprofile, date=creation_date | dateformat("long")%} {% trans user=userprofile, date=creation_date | dateformat("long")%}
Uploaded on {{date}} Uploaded on {{date}}
{% endtrans %} {% endtrans %}
#} #}
</small> </small>
</div> </div>
</div> </div>
</article> </article>
{%- endfor %} {%- endfor %}
{% if records %} {% if records %}
<div class="ui centered grid"> <div class="ui centered grid">
<a class="ui button more" href="{{ url_for("invenio_search_ui.search") }}">More</a> <a class="ui button more" href="{{ url_for("invenio_search_ui.search") }}">More</a>
</div> </div>
{%- endif %} {%- endif %}
</div> </div>

View File

@@ -1,17 +1,17 @@
const config = { const config = {
singleQuote: false, singleQuote: false,
tabWidth: 4, tabWidth: 4,
trailingComma: "all", trailingComma: "all",
printWidth: 100, printWidth: 100,
plugins: ["prettier-plugin-jinja-template"], plugins: ["prettier-plugin-jinja-template"],
overrides: [ overrides: [
{ {
files: ["*.html"], files: ["*.html"],
options: { options: {
parser: "jinja-template" parser: "jinja-template",
} },
} },
] ],
}; };
export default config; export default config;