Compare commits

...

71 Commits

Author SHA1 Message Date
Mojib Wali
41bfcf0cee v2.0.7 2021-04-09 14:01:17 +02:00
Mojib Wali
bc1c9bcc9c depositform: increase the fileupload 2021-04-09 13:56:17 +02:00
Mojib Wali
ae21366bfa v2.0.6 2021-04-08 09:14:27 +02:00
Mojib Wali
9e92934451 bugfixes: configs & translations
* bugfixes: modified config vars
* refactor: text of instance message
* translations: adds new trans
* translation: refactor some german translation
* footer: adds handbook link
2021-04-08 09:13:58 +02:00
david
0df53c42fa style: translation and minor documentation 2021-04-07 10:39:57 +02:00
david
88d7125acf fix: rename, set and use env variable 2021-04-07 10:39:57 +02:00
David Eckhard
8425d410f2 feature: add test instance notification 2021-04-07 10:39:57 +02:00
Mojib Wali
c4f80c42a1 v2.0.5 2021-04-01 10:43:40 +02:00
Unix
4698c797b2 bugfix: adds datacite host url 2021-04-01 10:43:13 +02:00
Unix
0e5f08768d bugfix: password should b unicode
else: request Error UnicodeEncodeError
2021-04-01 10:43:13 +02:00
Mojib Wali
e4d38632a9 v2.0.4 2021-03-31 17:07:16 +02:00
Unix
4fa0e2851f doimint: removes link to doi.org 2021-03-31 17:02:40 +02:00
Mojib Wali
2c10cc885d v2.0.3 2021-03-31 15:08:32 +02:00
Mojib Wali
f993fda3f6 bugfix: space requires before next query 2021-03-31 15:07:48 +02:00
Mojib Wali
ecacf0ba59 v2.0.2 2021-03-31 09:51:54 +02:00
Unix
592d59e54d depositform: disable field languages 2021-03-31 08:53:44 +02:00
Mojib Wali
f40fb37ec4 v2.0.1 2021-03-29 11:20:47 +02:00
Unix
44e4b01332 bugfix: hyperlink no-decoration 2021-03-29 10:42:40 +02:00
Mojib Wali
97feb284cf v2.0.0 2021-03-29 10:07:03 +02:00
Unix
20fc3e62be bugfix: recent uploads filter only latest version 2021-03-29 09:46:16 +02:00
Mojib Wali
530d32d7c7 migrate: to invenio-app-rdm:v2 2021-03-29 09:41:35 +02:00
Mojib Wali
b27d54b6f0 v1.9.6 2021-03-23 11:43:52 +01:00
Mojib Wali
f81ca88835 footer: adds documentation link
* footer: adds documentation link

* landingpage: disable jump btn
2021-03-23 11:40:47 +01:00
Mojib Wali
39c19238dd v1.9.5 2021-03-19 14:40:29 +01:00
Mojib Wali
3f14a3ada4 PublisherField: makes field required
* Publisher: makes field required
* publisherField: change in helptext
2021-03-19 14:39:29 +01:00
Mojib Wali
0a5a78312e v1.9.4 2021-03-19 12:56:27 +01:00
Mojib Wali
0cc1635e3a bugfix: translation order for tug logo (#176) 2021-03-19 12:54:35 +01:00
Mojib Wali
0f8ebffaa2 Translations: updated 2021-03-19 11:14:16 +01:00
Unix
0e2c1a0f60 style: login form 2021-03-19 09:55:49 +01:00
Mojib Wali
4d902f014b v1.9.3 2021-03-18 08:28:20 +01:00
Mojib Wali
ea54a17c43 bugfix: adds check for scheme 'doi' 2021-03-17 17:11:00 +01:00
Mojib Wali
db01116eeb v1.9.2 2021-03-17 10:32:11 +01:00
Mojib Wali
ea92a2f563 dep: adds invenio_config_tugraz 2021-03-17 10:27:55 +01:00
Mojib Wali
a4558e02bf doimint: adds suffix config 2021-03-17 10:15:30 +01:00
Mojib Wali
c87e65d89f dep: bump in webpack 2021-03-17 09:40:05 +01:00
Mojib Wali
6360bcab7b doimint: adds positive message on doi register 2021-03-16 12:53:47 +01:00
Mojib Wali
95710c440e depositform: get doi from backend 2021-03-16 09:55:59 +01:00
David Eckhard
063ddc985a refactor: remove unused files 2021-03-16 08:37:04 +01:00
David Eckhard
6cb248644b feature: add doi retrieve endpoint 2021-03-16 08:37:04 +01:00
Mojib Wali
e3897c8d46 v1.9.1 2021-03-12 13:27:51 +01:00
Unix
dd4bc1ffdf bugfix: read env variables of datacite 2021-03-12 13:10:47 +01:00
Unix
046b009420 bugfix: removed css which caused the btn to disapear 2021-03-12 12:59:00 +01:00
Unix
6210a8bad9 global: adds copyrights 2021-03-12 12:59:00 +01:00
Unix
de83dd0d1b frontpage: show a message when there are no public record. 2021-03-12 12:59:00 +01:00
Unix
462fc27ae7 footer: adds target blank for extern link 2021-03-12 12:59:00 +01:00
Mojib Wali
f45a74ac42 v1.9.0 2021-03-11 14:53:49 +01:00
Mojib Wali
b475da5abf ui: removes links that are not implemented 2021-03-11 14:49:23 +01:00
Mojib Wali
050d7b0feb style: adds styling for zammad form
* style: adds styling for zammad form
config: added config var for enable/disable form
 (#158)
2021-03-11 14:49:06 +01:00
Mojib Wali
67c3828fc0 DOI minting
* feature: adds doi minting(#161)
* overrides deposit page
* deposit edit page
* record landingpage
2021-03-11 14:48:24 +01:00
rekt-hard
4094730481 doi plugin
* feature: encrypt doi password
* bugfix: add URL rule for pages
2021-03-10 15:30:17 +01:00
Mojib Wali
daace427b9 v1.8.0 2021-03-09 09:33:17 +01:00
rekt-hard
baa7d290c7 zammad contact form (#156) 2021-03-09 09:04:32 +01:00
Mojib Wali
d17b83b67f v1.7.0 2021-03-01 18:47:36 +01:00
rekt-hard
2b60954fe4 modification: add theming variables (#152) 2021-03-01 18:33:47 +01:00
Mojib Wali
ee94d72b65 global: required changes for feb release (#155)
* disabled search and landingpage override
* search query modified
* routes: injecting routes to override
2021-03-01 16:10:28 +01:00
Christoph Ladurner
5d39ad5fdd Merge pull request #154 from rekt-hard/bugfix_record-name-access
bugfix(*): fix record creators name access
2021-02-23 09:48:24 +01:00
David Eckhard
07e205f04c bugfix(*): fix record creators name access
access name via creator.person_or_org.name.
2021-02-10 10:01:39 +01:00
Mojib Wali
28403053d2 v1.6.0 2021-01-29 10:58:02 +01:00
Mojib Wali
1aaaeaf6a2 bugfix(tests): modified dep & gh 2021-01-29 10:57:17 +01:00
Christoph Ladurner
1e9ea81f1c Merge pull request #141 from utnapischtim/feature/override-landing-page
override landing page
2021-01-19 11:28:25 +01:00
Christoph Ladurner
c4356b744b Merge pull request #142 from utnapischtim/feature/override-search-v2
Feature/override search v2
2021-01-18 13:33:34 +01:00
Christoph Ladurner
752b5128bf Merge pull request #143 from utnapischtim/feature/frontpage-fixes
Feature/frontpage fixes
2021-01-18 13:32:41 +01:00
Christoph Ladurner
c6c4a0aa52 bugfix(ci): add invenio-app-rdm and sqlalchemy-continuum to install_requires
those install_requires where missing to use the RECORDS_UI_ENPOINTS from
invenio-app-rdm.config
2021-01-14 11:14:30 +01:00
Christoph Ladurner
a2c77a8332 bugfix(ui): start page license was not a url 2021-01-11 23:28:40 +01:00
Christoph Ladurner
69aff9f7b0 feature(ui): show the license also in the frontpage 2021-01-11 23:28:40 +01:00
Christoph Ladurner
61a00bfbbc bugfix(ui): creator could have potentially no identifiers
The macro authors should handle the case where there are no identifiers for a
author. Therefore this check had to be added.

NOTE:
further removed the copyright noting Mojib Wali. we stick with TU Graz
further added a newline in the end of the file
2021-01-11 23:28:40 +01:00
Christoph Ladurner
8913ef6301 feature(ui): add license to the accessRight visualisation on the search 2021-01-11 17:01:51 +01:00
Christoph Ladurner
ccfde55f45 bug(ui): colors of the accessRights should be different
there was only one color for the accessRights: the open access color.
now every type has his own color.
2021-01-11 17:01:51 +01:00
Christoph Ladurner
2543ee9cbf bugfix(config): add source of SEARCH_UI_SEARCH_TEMPLATE variable 2021-01-11 17:01:51 +01:00
Christoph Ladurner
1598b04ed6 feature(ui): override the default search react app from invenio-app-rdm
The look of the result entries should now be the same as on the frontpage.

The main difference from the default layout is that the access badge is not more a
badge. It is now in the footer on the right side. The main reason is that the
green color of the badge could lead to the wrong conclusion that if this record
has the access right "Open Acess" it would be a "Green Open Access" record.

NOTES:
It was necessary to import also some React classes into the components.js file
which were not really overriden. This was because it was not possible to import
it from invenio-app-rdm/search/components.js directly. This should be repaired
in some ways.
2021-01-11 17:01:51 +01:00
Christoph Ladurner
90bd39a010 modification(ui): use invenio-app-rdm/landing_page to update landing_page 2021-01-11 15:52:56 +01:00
76 changed files with 2456 additions and 447 deletions

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -20,9 +20,42 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy: strategy:
matrix: matrix:
python-version: [3.6, 3.7, 3.8] python-version: [3.6, 3.7, 3.8, 3.9]
requirements-level: [min, pypi] requirements-level: [min, pypi]
db-service: [postgresql12]
search-service: [elasticsearch7]
exclude:
- python-version: 3.6
requirements-level: pypi
- python-version: 3.7
requirements-level: min
- python-version: 3.8
requirements-level: min
- python-version: 3.9
requirements-level: min
- db-service: postgresql12
requirements-level: min
- search-service: elasticsearch7
requirements-level: min
include:
- db-service: postgresql12
DB_EXTRAS: "postgresql"
- search-service: elasticsearch7
SEARCH_EXTRAS: "elasticsearch7"
env:
DB: ${{ matrix.db-service }}
SEARCH: ${{ matrix.search-service }}
EXTRAS: all,${{ matrix.DB_EXTRAS }},${{ matrix.SEARCH_EXTRAS }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -35,8 +68,7 @@ jobs:
- name: Generate dependencies - name: Generate dependencies
run: | run: |
python -m pip install --upgrade pip setuptools py wheel requirements-builder python -m pip install --upgrade pip setuptools py wheel requirements-builder
requirements-builder -e all --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
- name: Cache pip - name: Cache pip
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
@@ -45,10 +77,11 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
pip install -r .${{matrix.requirements-level}}-${{ matrix.python-version }}-requirements.txt pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
pip install .[all] pip install ".[$EXTRAS]"
pip freeze pip freeze
docker --version
docker-compose --version
- name: Run tests - name: Run tests
run: | run: |
./run-tests.sh ./run-tests.sh

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 Mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,5 +1,5 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -8,4 +7,3 @@
$navbar_background_image: unset; $navbar_background_image: unset;
$navbar_background_color: #ffffff; $navbar_background_color: #ffffff;

View File

@@ -0,0 +1,203 @@
import React, { Component } from "react";
import {
Button,
Card,
Icon,
Label,
Loader,
Dimmer,
Message,
} from "semantic-ui-react";
import { FieldArray } from "formik";
import { FetchDoi, MapDatacite } from "datacite-rest";
export class DoiMint extends Component {
constructor(props) {
super(props);
this.record = props.record || {};
this.configs = props.config || {};
this.metadata = this.record.metadata;
this.is_doi = false;
this.id_doi = "";
// check for existing identifiers
if (
typeof this.metadata.identifiers != "undefined" &&
this.metadata.identifiers != null &&
this.metadata.identifiers.length != null &&
this.metadata.identifiers.length > 0 &&
this.metadata.identifiers[0] != null
) {
for(var identifier of this.metadata.identifiers){
if (identifier.scheme == "doi"){
this.is_doi = true;
this.id_doi = identifier.identifier;
}
}
}
// add metadata to the state
this.state = {
identifiers: [],
showLoader: false,
doi_id: "",
errorMsg: "",
isError: false,
};
}
render() {
// this should fetch a new doi
var pushDoi = (form) => {
// activate the loader
this.setState({
showLoader: true,
});
// get the prefix from backend
const prefix = this.configs.datacite_prefix;
const suffix = this.configs.datacite_suffix;
const host_url = this.configs.datacite_host_url
if (prefix !== null && suffix !== null) {
// get mapped DOI
const mapped = MapDatacite(this.metadata, this.record.id, prefix, suffix, host_url);
const _fetchdoi = new FetchDoi("/getdoi");
// Create a new DOI
_fetchdoi
.create(mapped)
.then((data) => {
// if there is an error
if (data.data.errors) {
this.setState({
showLoader: false,
isError: true,
errorMsg: data.data.errors[0].title,
});
}
// new doi is fetched
else {
// add new identifier
const _identifiers = [
{
identifier: data.data.data.data.id,
scheme: "doi",
},
];
// submit the value to the form
this.setState({ identifiers: _identifiers });
form.setFieldValue(
"metadata.identifiers",
this.state.identifiers
);
this.is_doi = true;
// deactivate the loader
this.setState({
showLoader: false,
doi_id: this.state.identifiers[0].identifier,
});
}
})
.catch((error) => {
console.log("error", error);
});
} else {
this.setState({
showLoader: false,
isError: true,
errorMsg: "Not configured!",
});
}
};
// // get a link of dio
// var doiLink = (doiId) => {
// window.open(`https://doi.org/${doiId}`, "_blank");
// };
return (
<Card className="actions">
<Card.Content>
<Card.Header>
<Icon name="certificate" />
Datacite DOI
</Card.Header>
<Card.Description>
<span style={{ color: "#B6B6B6" }}>
Record must be a <b>published</b> record to mint a DOI.
</span>
</Card.Description>
{this.state.isError && (
<Message negative>
<Message.Header>{this.state.errorMsg}</Message.Header>
<p>Please contact Repository supporters!</p>
</Message>
)}
{/* when the Component is rendered */}
{!this.is_doi && (
<FieldArray name="metadata.identifiers">
{(fieldArrayProps) => {
const { form } = fieldArrayProps;
return (
<div
style={{
marginTop: "10px",
textAlign: "center",
}}
>
<Button
compact
className="save-button"
disabled={!this.record.is_published}
as={"label"}
color="green"
size="large"
onClick={() => pushDoi(form)}
>
<Icon name="certificate" />
Get DOI Now!
</Button>
{this.state.showLoader && (
<Dimmer active inverted>
<Loader inverted>Loading...</Loader>
</Dimmer>
)}
</div>
);
}}
</FieldArray>
)}
{this.is_doi && (
<div
style={{
textAlign: "center",
marginTop: "10px",
}}
>
{this.state.doi_id && (
<Message positive>
<Message.Header>A DOI is registered!</Message.Header>
<p>Please save the deposit. </p>
</Message>
)}
<Label
size="large"
color="blue"
>
<strong>DOI: </strong>
<Label.Detail>{this.state.doi_id || this.id_doi}</Label.Detail>
</Label>
</div>
)}
</Card.Content>
</Card>
);
}
}

View File

@@ -0,0 +1,47 @@
// This file is part of React-Invenio-Deposit
// Copyright (C) 2020 CERN.
// Copyright (C) 2020 Northwestern University.
// Copyright (C) 2021 Graz University of Technology.
//
// React-Invenio-Deposit is free software; you can redistribute it and/or modify it
// under the terms of the MIT License; see LICENSE file for more details.
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { FieldLabel, TextField } from 'react-invenio-forms';
export class PublisherField extends Component {
render() {
const { fieldPath, label, labelIcon, placeholder, required } = this.props;
return (
<TextField
fieldPath={fieldPath}
helpText={
'The publisher is used to formulate the citation, if you are plannig to mint a new DOI this publisher will be cited.'
}
label={
<FieldLabel htmlFor={fieldPath} icon={labelIcon} label={label} />
}
placeholder={placeholder}
required={required}
/>
);
}
}
PublisherField.propTypes = {
fieldPath: PropTypes.string.isRequired,
label: PropTypes.string,
labelIcon: PropTypes.string,
placeholder: PropTypes.string,
required: PropTypes.bool,
};
PublisherField.defaultProps = {
fieldPath: 'metadata.publisher',
label: 'Publisher',
labelIcon: 'building outline',
placeholder: 'Enter publisher name',
};

View File

@@ -0,0 +1,522 @@
// This file is part of InvenioRDM
// Copyright (C) 2020 CERN.
// Copyright (C) 2020 Northwestern University.
// Copyright (C) 2021 Graz University of Technology.
//
// Invenio App RDM is free software; you can redistribute it and/or modify it
// under the terms of the MIT License; see LICENSE file for more details.
import _get from "lodash/get";
import React, { Component, createRef } from "react";
import {
Button,
Card,
Container,
Grid,
Icon,
Ref,
Sticky,
} from "semantic-ui-react";
import {
AccessRightField,
ComingSoonField,
CreatibutorsField,
DatesField,
DepositFormApp,
FormFeedback,
DeleteButton,
DepositFormTitle,
DescriptionsField,
FileUploader,
FundingField,
IdentifiersField,
LanguagesField,
PublishButton,
PublicationDateField,
ResourceTypeField,
SaveButton,
SubjectsField,
TitlesField,
RelatedWorksField,
VersionField,
LicenseField,
} from "react-invenio-deposit";
import { AccordionField } from "react-invenio-forms";
import { DoiMint } from "./DoiMint";
import { PublisherField } from "./PublisherField";
export class RDMDepositForm extends Component {
constructor(props) {
super(props);
this.config = props.config || {};
// TODO: retrieve from backend
this.config["canHaveMetadataOnlyRecords"] = true;
// TODO: Make ALL vocabulary be generated by backend.
// Currently, some vocabulary is generated by backend and some is
// generated by frontend here. Iteration is faster and abstractions can be
// discovered by generating vocabulary here. Once happy with vocabularies,
// then we can generate it in the backend.
this.vocabularies = {
metadata: {
...this.config.vocabularies,
titles: {
...this.config.vocabularies.titles,
},
descriptions: {
type: [
{ text: "Abstract", value: "abstract" },
{ text: "Methods", value: "methods" },
{ text: "Series Information", value: "seriesinformation" },
{ text: "Table of Contents", value: "tableofcontents" },
{ text: "Technical Info", value: "technicalinfo" },
{ text: "Other", value: "other" },
],
},
creators: {
type: [
{ text: "Person", value: "personal" },
{ text: "Organization", value: "organizational" },
],
role: [
{ text: "Editor", value: "editor" },
{ text: "Data Curator", value: "datacurator" },
{ text: "Data Manager", value: "datamanager" },
{ text: "Project Manager", value: "projectmanager" },
],
},
contributors: {
type: [
{ text: "Person", value: "personal" },
{ text: "Organization", value: "organizational" },
],
role: [
{ text: "Editor", value: "editor" },
{ text: "Data Curator", value: "datacurator" },
{ text: "Data Manager", value: "datamanager" },
{ text: "Project Manager", value: "projectmanager" },
],
},
dates: {
type: [
{ text: "Accepted", value: "accepted" },
{ text: "Available", value: "available" },
{ text: "Copyrighted", value: "copyrighted" },
{ text: "Collected", value: "collected" },
{ text: "Created", value: "created" },
{ text: "Issued", value: "issued" },
{ text: "Submitted", value: "submitted" },
{ text: "Updated", value: "updated" },
{ text: "Valid", value: "valid" },
{ text: "Withdrawn", value: "withdrawn" },
{ text: "Other", value: "other" },
],
},
// TODO: Replace with an API backend
funding: {
funder: [
{
name: "National Institutes of Health (US)",
identifier: "funder1",
scheme: "funderScheme1",
},
{
name: "European Commission (EU)",
identifier: "funder2",
scheme: "funderScheme2",
},
],
award: [
{
title: "CANCER &AIDS DRUGS--PRECLIN PHARMACOL/TOXICOLOGY",
number: "N01CM037835-016",
identifier: "awardA",
scheme: "awardSchemeA",
parentScheme: "funderScheme1",
parentIdentifier: "funder1",
},
{
title:
"Beyond the Standard Model at the LHC and with Atom Interferometers.",
number: "228169",
identifier: "awardB1",
scheme: "awardSchemeB",
parentScheme: "funderScheme2",
parentIdentifier: "funder2",
},
{
title: "ENvironmental COnditions in GLAucoma Patients",
number: "747441",
identifier: "awardB2",
scheme: "awardSchemeB",
parentScheme: "funderScheme2",
parentIdentifier: "funder2",
},
],
},
related_identifiers: {
resource_type: this.config.vocabularies.resource_type,
scheme: [
{ text: "ARK", value: "ark" },
{ text: "ARXIV", value: "arxiv" },
{ text: "BIBCODE", value: "bibcode" },
{ text: "DOI", value: "doi" },
{ text: "EAN13", value: "ean13" },
{ text: "EISSN", value: "eissn" },
{ text: "HANDLE", value: "handle" },
{ text: "IGSN", value: "igsn" },
{ text: "ISBN", value: "isbn" },
{ text: "ISSN", value: "issn" },
{ text: "ISTC", value: "istc" },
{ text: "LISSN", value: "lissn" },
{ text: "LSID", value: "lsid" },
{ text: "PMID", value: "pmid" },
{ text: "PURL", value: "purl" },
{ text: "UPC", value: "upc" },
{ text: "URL", value: "url" },
{ text: "URN", value: "urn" },
{ text: "W3ID", value: "w3id" },
],
relations: [
{ text: "Is cited by", value: "iscitedby" },
{ text: "Cites", value: "cites" },
{ text: "Is supplement to", value: "issupplementto" },
{ text: "Is supplemented by", value: "issupplementedby" },
{ text: "Is continued by", value: "iscontinuedby" },
{ text: "Continues", value: "continues" },
{ text: "Is described by", value: "isdescribedby" },
{ text: "Describes", value: "describes" },
{ text: "Has metadata", value: "hasmetadata" },
{ text: "Is metadata for", value: "ismetadatafor" },
{ text: "Has version", value: "hasversion" },
{ text: "Is version of", value: "isversionof" },
{ text: "Is new version of", value: "isnewversionof" },
{ text: "Is previous version of", value: "ispreviousversionof" },
{ text: "Is part of", value: "ispartof" },
{ text: "Has part", value: "haspart" },
{ text: "Is referenced by", value: "isreferencedby" },
{ text: "References", value: "references" },
{ text: "Is documented by", value: "isdocumentedby" },
{ text: "Documents", value: "documents" },
{ text: "Is compiled by", value: "iscompiledby" },
{ text: "Compiles", value: "compiles" },
{ text: "Is variant form of", value: "isvariantformof" },
{ text: "Is original form of", value: "isoriginalformof" },
{ text: "Is identical to", value: "isidenticalto" },
{ text: "Is reviewed by", value: "isreviewedby" },
{ text: "Reviews", value: "reviews" },
{ text: "Is derived from", value: "isderivedfrom" },
{ text: "Is source of", value: "issourceof" },
{ text: "Is required by", value: "isrequiredby" },
{ text: "Requires", value: "requires" },
{ text: "Is obsoleted by", value: "isobsoletedby" },
{ text: "Obsoletes", value: "obsoletes" },
],
},
subjects: {
options: [
{
text: "Deep Learning",
value: {
subject: "Deep Learning",
scheme: "user",
identifier: "U1",
},
},
{
text: "MeSH: Cognitive Neuroscience",
value: {
subject: "Cognitive Neuroscience",
scheme: "mesh",
identifier: "D000066494",
},
},
{
text: "FAST: Glucagonoma",
value: {
subject: "Glucagonoma",
scheme: "fast",
identifier: "943672",
},
},
],
limitToOptions: [
{ text: "All", value: "all" },
{ text: "MeSH", value: "mesh" },
{ text: "FAST", value: "fast" },
],
},
},
};
// check if files are present
this.noFiles = false;
if (
!Array.isArray(this.props.files.entries) ||
(!this.props.files.entries.length && this.props.record.is_published)
) {
this.noFiles = true;
}
}
formFeedbackRef = createRef();
sidebarRef = createRef();
accordionStyle = {
header: { className: "inverted brand", style: { cursor: "pointer" } },
};
render() {
return (
<DepositFormApp
config={this.config}
record={this.props.record}
files={this.props.files}
permissions={this.props.permissions}
>
<FormFeedback fieldPath="message" />
<Container style={{ marginTop: "10px" }}>
<DepositFormTitle />
<Grid>
<Grid.Row>
<Grid.Column width={11}>
<AccordionField
fieldPath=""
active={true}
label={"Files"}
ui={this.accordionStyle}
>
{this.noFiles && this.props.record.is_published && (
<p
style={{
textAlign: "center",
opacity: "0.5",
cursor: "default !important",
}}
>
<em>The record has no files.</em>
</p>
)}
<FileUploader
isDraftRecord={!this.props.record.is_published}
quota={{
maxFiles: 100,
maxStorage: 14 ** 10,
}}
/>
</AccordionField>
{/**TODO: uncomment to use IdentifiersField*/}
{/* <AccordionField
fieldPath=""
active={true}
label={"Files"}
ui={this.accordionStyle}
>
<IdentifiersField />
<ComingSoonField
fieldPath="metadata.identifiers"
label="Identifier(s)"
labelIcon="barcode"
/>
<br />
</AccordionField> */}
<AccordionField
fieldPath=""
active={true}
label={"Basic Information"}
ui={this.accordionStyle}
>
<ResourceTypeField
options={this.vocabularies.metadata.resource_type}
required
/>
<TitlesField
options={this.vocabularies.metadata.titles}
required
/>
<PublicationDateField required />
<CreatibutorsField
label={"Creators"}
labelIcon={"user"}
fieldPath={"metadata.creators"}
roleOptions={this.vocabularies.metadata.creators.role}
schema="creators"
required
/>
<DescriptionsField
options={this.vocabularies.metadata.descriptions}
editorConfig={{
removePlugins: [
"Image",
"ImageCaption",
"ImageStyle",
"ImageToolbar",
"ImageUpload",
"MediaEmbed",
"Table",
"TableToolbar",
"TableProperties",
"TableCellProperties",
],
}}
/>
<LicenseField
fieldPath="metadata.rights"
searchConfig={{
searchApi: {
axios: {
headers: {
Accept: "application/vnd.inveniordm.v1+json",
},
url: "/api/vocabularies/licenses",
withCredentials: false,
},
},
initialQueryState: {
filters: [["tags", "recommended"]],
},
}}
serializeLicenses={(result) => ({
title: result.title_l10n,
description: result.description_l10n,
id: result.id,
link: result.props.url,
})}
/>
<br />
</AccordionField>
<AccordionField
fieldPath=""
active={true}
label={"Recommended Information"}
ui={this.accordionStyle}
>
<CreatibutorsField
addButtonLabel={"Add contributor"}
label={"Contributors"}
labelIcon={"user plus"}
fieldPath={"metadata.contributors"}
roleOptions={this.vocabularies.metadata.contributors.role}
schema="contributors"
modal={{
addLabel: "Add contributor",
editLabel: "Edit contributor",
}}
/>
{/**TODO: uncomment to use Subjects*/}
{/* <SubjectsField
initialOptions={_get(
this.props.record,
"metadata.subjects",
null
)}
limitToOptions={
this.vocabularies.metadata.subjects.limitToOptions
}
/>
<ComingSoonField
fieldPath="metadata.subjects"
label="Subjects"
labelIcon="tag"
/> */}
{/**TODO- enable once issue is solved:
* https://github.com/inveniosoftware/invenio-app-rdm/issues/738
*/}
{/* <LanguagesField
initialOptions={_get(
this.props.record,
"ui.languages",
[]
).filter((lang) => lang !== null)} // needed because dumped empty record from backend gives [null]
serializeSuggestions={(suggestions) =>
suggestions.map((item) => ({
text: item.title_l10n,
value: item.id,
key: item.id,
}))
}
/> */}
<DatesField options={this.vocabularies.metadata.dates} />
<VersionField />
<PublisherField required />
<br />
</AccordionField>
{/**TODO: uncomment to use FundingField*/}
{/* <AccordionField
fieldPath=""
active={true}
label={"Funding"}
ui={this.accordionStyle}
>
<FundingField options={this.vocabularies.metadata.funding} />
<ComingSoonField
fieldPath="metadata.funding"
label="Awards"
labelIcon="money bill alternate outline"
/>
<br />
</AccordionField> */}
<AccordionField
fieldPath=""
active={true}
label={"Related works"}
ui={this.accordionStyle}
>
<RelatedWorksField
options={this.vocabularies.metadata.related_identifiers}
/>
<br />
</AccordionField>
</Grid.Column>
<Ref innerRef={this.sidebarRef}>
<Grid.Column width={5} className="deposit-sidebar">
<Sticky context={this.sidebarRef} offset={50}>
<Card className="actions">
<Card.Content>
<SaveButton fluid className="save-button" />
<PublishButton fluid />
</Card.Content>
</Card>
<Card className="actions">
<Card.Content>
<DeleteButton
fluid
// TODO: make is_published part of the API response
// so we don't have to do this
isPublished={this.props.record.is_published}
/>
</Card.Content>
</Card>
<AccessRightField
label={"Protection"}
labelIcon={"shield"}
/>
{this.config.data_cite && (
<DoiMint
record={this.props.record}
config={this.config.data_cite}
/>
)}
</Sticky>
</Grid.Column>
</Ref>
</Grid.Row>
</Grid>
</Container>
</DepositFormApp>
);
}
}

View File

@@ -0,0 +1,23 @@
// This file is part of InvenioRDM
// Copyright (C) 2020 CERN.
// Copyright (C) 2020 Northwestern University.
//
// Invenio App RDM is free software; you can redistribute it and/or modify it
// under the terms of the MIT License; see LICENSE file for more details.
import React from "react";
import ReactDOM from "react-dom";
import "semantic-ui-css/semantic.min.css";
import { getInputFromDOM } from "react-invenio-deposit";
import { RDMDepositForm } from "./RDMDepositForm";
ReactDOM.render(
<RDMDepositForm
record={getInputFromDOM("deposits-record")}
files={getInputFromDOM("deposits-record-files")}
config={getInputFromDOM("deposits-config")}
permissions={getInputFromDOM("deposits-record-permissions")}
/>,
document.getElementById("deposit-form")
);

View File

@@ -0,0 +1,324 @@
/*
* Copyright (C) 2020 CERN.
* Copyright (C) 2020 Northwestern University.
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-tugraz is free software; you can redistribute it
* and/or modify it under the terms of the MIT License; see LICENSE
* file for more details.
*
* origin: invenio_app_rdm/search/components.js
*/
import React, { useState } from "react";
import { Card, Item, Input, Label, Button, Grid, Checkbox, List, } from "semantic-ui-react";
import { BucketAggregation, Toggle } from "react-searchkit";
import _ from "lodash";
import _truncate from "lodash/truncate";
import Overridable from "react-overridable";
import { SearchBar } from "@js/invenio_search_ui/components";
export const RDMRecordResultsListItem = ({ result, index }) => {
const description = _.get(result, "metadata.description", "No description");
const version = _.get(result, "metadata.version", "");
const creators = _.get(result, "metadata.creators", []);
const title = _.get(result, "metadata.title", "No title");
const subjects = _.get(result, "metadata.subjects", null);
const rights = _.get(result, "metadata.rights", null)
const publicationDate = _.get(result, "ui.publication_date_l10n_long", "No publication date found");
const createdDate = _.get(result, "ui.created_date_l10n_long", "No creation date found.");
const resourceType = _.get(result, "ui.resource_type", "No resource type");
const access = _.get(result, "ui.access_right.title", "No access rights");
const accessRightCategory = _.get(result, "ui.access_right.category", "closed");
const accessRightIcon = _.get(result, "ui.access_right.icon", "closed");
const accessRight = {type: access, category: accessRightCategory, icon: accessRightIcon, rights};
const href = `/records/${result.id}`;
return (
<Item key={index}>
<Item.Content>
<div className="badges">
<Label className="record-version">
{publicationDate} {version ? `(${version})` : null}
</Label>
<Label className="teal">
{resourceType}
</Label>
</div>
<Item.Header href={href}>{title}</Item.Header>
<Creators creators={creators}/>
<Item.Description href={href}>
{_truncate(description.replace(/(<([^>]+)>)/ig, ''), { length: 350 })}
</Item.Description>
<Footer subjects={subjects} createdDate={createdDate} accessRight={accessRight}/>
</Item.Content>
</Item>
);
};
const Creators = ({creators}) => {
const creatorTags = creators.map((creator, index) => {
return <Creator key={index} creator={creator}/>;
});
return (
<div className="creators">
{creatorTags}
</div>
);
};
const Identifiers = ({creator}) => {
return (
<div className="identifiers">
{_.isObject(creator.identifiers) && creator.identifiers.hasOwnProperty("orcid") &&
<Orcid creator={creator}/>
}
</div>
);
};
const Orcid = ({creator}) => {
const href = `https://orcid.org/${creator.identifiers.orcid}`
return (
<a href={href} target="_blank">
<img className="inline-orcid" src="/static/extra/orcid.png"/>
</a>
);
};
const Creator = ({creator}) => {
return (
<div className="creator">
<Identifiers creator={creator}/>
<span className="text-muted">{creator.person_or_org.name}</span>
</div>
);
};
const Footer = ({subjects, createdDate, accessRight}) => {
return (
<Item.Extra>
<div className="left floated column">
{subjects && subjects.map((subject, index) => (
<Label key={index} size="tiny">
{subject.subject}
</Label>
))}
{createdDate && (
<div>
<small>
Uploaded on <span>{createdDate}</span>
</small>
</div>
)}
</div>
<div className="right floated column">
<span className={`ui access-right ${accessRight.category}`}>
<i className={`icon ${accessRight.icon}`}></i>
{accessRight.type} {accessRight.rights && accessRight.rights.map((right, index) => (
<a key={index} href={right.uri}>({right.identifier})</a>
))}
</span>
</div>
</Item.Extra>
);
};
/**
* ATTENTION:
* The following classes are only here because it is not easily possible to
* import it from the original module.
* If there is in the future a possibility to import following classes from
* invenio_app_rdm then this should be done!
*/
export const RDMRecordResultsGridItem = ({ result, index }) => {
const description = _.get(result, "metadata.description", "No description");
return (
<Card fluid key={index} href={`/records/${result.pid}`}>
<Card.Content>
<Card.Header>{result.metadata.title}</Card.Header>
<Card.Description>
{_truncate(description, { length: 200 })}
</Card.Description>
</Card.Content>
</Card>
);
};
export const RDMRecordSearchBarContainer = () => {
return (
<Overridable id={"SearchApp.searchbar"}>
<SearchBar />
</Overridable>
);
};
export const RDMRecordSearchBarElement = ({
placeholder: passedPlaceholder,
queryString,
onInputChange,
executeSearch,
}) => {
const placeholder = passedPlaceholder || "Search";
const onBtnSearchClick = () => {
executeSearch();
};
const onKeyPress = (event) => {
if (event.key === "Enter") {
executeSearch();
}
};
return (
<Input
action={{
icon: "search",
onClick: onBtnSearchClick,
className: "search",
}}
placeholder={placeholder}
onChange={(event, { value }) => {
onInputChange(value);
}}
value={queryString}
onKeyPress={onKeyPress}
/>
);
};
export const RDMRecordFacetsValues = ({
bucket,
isSelected,
onFilterClicked,
getChildAggCmps,
}) => {
const childAggCmps = getChildAggCmps(bucket);
const [isActive, setisActive] = useState(false);
const hasChildren = childAggCmps && childAggCmps.props.buckets.length > 0;
return (
<List.Item key={bucket.key}>
<div
className={`title ${hasChildren ? "" : "facet-subtitle"} ${
isActive ? "active" : ""
}`}
>
<List.Content floated="right">
<Label circular>{bucket.doc_count}</Label>
</List.Content>
{hasChildren ? (
<i
className={`angle ${isActive ? "down" : "right"} icon`}
onClick={() => setisActive(!isActive)}
></i>
) : null}
<Checkbox
label={bucket.label}
value={bucket.key}
onClick={() => onFilterClicked(bucket.key)}
checked={isSelected}
/>
</div>
<div className={`content facet-content ${isActive ? "active" : ""}`}>
{childAggCmps}
</div>
</List.Item>
);
};
const SearchHelpLinks = () => {
return (
<Overridable id={"RdmSearch.SearchHelpLinks"}>
<Grid className="padded-small">
<Grid.Row className="no-padded">
<Grid.Column>
<Card className="borderless-facet">
<Card.Content>
<a>Advanced search</a>
</Card.Content>
</Card>
</Grid.Column>
</Grid.Row>
<Grid.Row className="no-padded">
<Grid.Column>
<Card className="borderless-facet">
<Card.Content>
<a>Search guide</a>
</Card.Content>
</Card>
</Grid.Column>
</Grid.Row>
</Grid>
</Overridable>
);
};
export const RDMRecordFacets = ({ aggs, currentResultsState }) => {
return (
<>
<Toggle
title="Versions"
label="View all versions"
filterValue={["all_versions", "true"]}
/>
{aggs.map((agg) => {
return (
<div key={agg.title} className="ui accordion">
<BucketAggregation title={agg.title} agg={agg} />
</div>
);
})}
<SearchHelpLinks />
</>
);
};
export const RDMBucketAggregationElement = ({ title, containerCmp }) => {
return (
<Card className="borderless-facet">
<Card.Content>
<Card.Header>{title}</Card.Header>
</Card.Content>
<Card.Content>{containerCmp}</Card.Content>
</Card>
);
};
export const RDMToggleComponent = ({
updateQueryFilters,
userSelectionFilters,
filterValue,
label,
title,
isChecked,
}) => {
const _isChecked = (userSelectionFilters) => {
const isFilterActive =
userSelectionFilters.filter((filter) => filter[0] === filterValue[0])
.length > 0;
return isFilterActive;
};
const onToggleClicked = () => {
updateQueryFilters(filterValue);
};
var isChecked = _isChecked(userSelectionFilters);
return (
<Card className="borderless-facet">
<Card.Content>
<Card.Header>{title}</Card.Header>
</Card.Content>
<Card.Content>
<Checkbox
toggle
label={label}
onClick={onToggleClicked}
checked={isChecked}
/>
</Card.Content>
</Card>
);
};

View File

@@ -0,0 +1,30 @@
/*
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-tugraz is free software; you can redistribute it and/or modify
* it under the terms of the MIT License; see LICENSE file for more details.
*/
import { defaultComponents, createSearchAppInit } from "@js/invenio_search_ui";
import {
RDMRecordResultsListItem,
RDMBucketAggregationElement,
RDMRecordFacets,
RDMRecordFacetsValues,
RDMRecordResultsGridItem,
RDMRecordSearchBarContainer,
RDMRecordSearchBarElement,
RDMToggleComponent,
} from "./components";
const initSearchApp = createSearchAppInit({
"ResultsList.item": RDMRecordResultsListItem,
"BucketAggregation.element": RDMBucketAggregationElement,
"BucketAggregationValues.element": RDMRecordFacetsValues,
"ResultsGrid.item": RDMRecordResultsGridItem,
"SearchApp.facets": RDMRecordFacets,
"SearchApp.searchbarContainer": RDMRecordSearchBarContainer,
"SearchBar.element": RDMRecordSearchBarElement,
"SearchFilters.ToggleComponent": RDMToggleComponent,
});

View File

@@ -1,3 +1,30 @@
import $ from 'jquery';
import 'semantic-ui-css';
$(function() {
let scriptNode = document.createElement("hidden"); //needed for zammad script
scriptNode.id = "zammad_form_script";
scriptNode.src = "https://ub-support.tugraz.at/assets/form/form.js";
document.head.appendChild(scriptNode);
$.getScript("https://ub-support.tugraz.at/assets/form/form.js", () => {
$('#feedback-form').ZammadForm({
messageTitle: 'Contact us',
showTitle: true,
messageSubmit: 'Submit',
messageThankYou: 'Thank you for your message, (#%s). We will get back to you as quickly as possible!',
modal: true
});
});
});
// used for sticky test instance notification
$('.ui.sticky.test-instance')
.sticky({
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";

View File

@@ -13,68 +13,68 @@
#login-tug-logo { #login-tug-logo {
& g { & g {
fill: #e4154b; fill: @tugrazRed;
} }
} }
#login-tug-logo:hover { #login-tug-logo:hover {
& g { & g {
fill: #231f20; fill: @tugrazBlack;
} }
} }
.accounts-link { .accounts-link {
margin: 5%; margin: 5%;
color: #fff; color: @primaryLink;
border: 1px solid #fff; border: 1px solid @primaryLink;
background-color: transparent; background-color: transparent;
} }
.accounts-link :hover { .accounts-link :hover {
font-size: smaller !important; font-size: smaller !important;
color: white; color: @primaryLink;
background-color: #000000 !important; background-color: @primaryLinkHoverBackground !important;
} }
.tu-button-style button { .tu-button-style button {
cursor: pointer; cursor: pointer;
border: 1px solid #fff; border: 1px solid @primaryButton;
background-color: transparent; background-color: transparent;
height: 29px; height: 29px;
color: #fff; color: @primaryButton;
font-family: "Source Sans Pro"; font-family: "Source Sans Pro";
font-weight: 300; font-weight: 300;
font-size: 16px; font-size: 16px;
} }
.tu-button-style button:hover { .tu-button-style button:hover {
cursor: pointer; cursor: pointer;
color: white; color: @primaryButton;
background-color: #000000 !important; background-color: @primaryButtonHoverBackground !important;
} }
.form-accounts { .form-accounts {
margin: 15%; margin: 15%;
text-align: left !important; text-align: left !important;
& i { & i {
color: #fff !important; color: @primaryFormAccounts !important;
} }
& label { & label {
display: flex !important; display: flex !important;
font-weight: 300 !important; font-weight: 300 !important;
color: white !important; color: @primaryFormAccounts !important;
} }
& input { & input {
border: 0px none !important; border: 0px none !important;
padding: 0px !important; padding: 0px !important;
border-bottom: 1px solid white !important; border-bottom: 1px solid @primaryFormAccounts !important;
background-color: transparent !important; background-color: transparent !important;
color: white !important; color: @primaryFormAccounts !important;
border-radius: 0 !important; border-radius: 0 !important;
width: 100% !important; width: 100% !important;
} }
& input::placeholder { & input::placeholder {
opacity: 1 !important; opacity: 1 !important;
color: silver !important; color: @formAccountsInputPlaceholder !important;
} }
& th { & th {
display: block; display: block;
@@ -85,7 +85,7 @@
} }
.field > input::selection { .field > input::selection {
background: #50a2ce; background: @fieldInputSelectionBackground;
} }
.accounts-header { .accounts-header {
@@ -96,7 +96,7 @@
login and sign-up pages form background color login and sign-up pages form background color
*/ */
.sign-form { .sign-form {
background-color: #245b78 !important; background-color: @signInBackground !important;
padding: 0 !important; padding: 0 !important;
height: 100%; height: 100%;
} }
@@ -104,10 +104,10 @@ login and sign-up pages form background color
.tug-button-login { .tug-button-login {
display: flex; display: flex;
align-items: center; align-items: center;
fill: #e4154b; fill: @tugrazRed;
} }
.tug-button-login :hover { .tug-button-login :hover {
fill: #000000; fill: @primaryButtonHoverBackground;
} }
.login-page-button { .login-page-button {
margin: 5%; margin: 5%;
@@ -118,20 +118,20 @@ login and sign-up pages form background color
cursor: pointer; cursor: pointer;
} }
& a:hover { & a:hover {
background-color: #000; background-color: @primaryLinkHoverBackground;
color: #fff !important; color: @primaryLink !important;
text-decoration: none; text-decoration: none;
} }
} }
.login-page-button-white { .login-page-button-white {
color: #fff !important; color: @primaryButton !important;
font-family: "Source Sans Pro"; font-family: "Source Sans Pro";
font-size: initial; font-size: initial;
} }
.login-page-button-black { .login-page-button-black {
color: #000 !important; color: @primaryButtonInverted !important;
font-family: "Source Sans Pro"; font-family: "Source Sans Pro";
font-size: initial; font-size: initial;
} }

View File

@@ -1,13 +1,12 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
*/ */
#footer { #footer {
color: #5E5E5E; color: @footerGrey;
/*background-image: url("/static/images/footer.jpg");*/ /*background-image: url("/static/images/footer.jpg");*/
-webkit-background-size: 100% 100%; -webkit-background-size: 100% 100%;
@@ -22,18 +21,18 @@
background-attachment: fixed; background-attachment: fixed;
&.footer-bottom { &.footer-bottom {
background-color: #f2f2f2; background-color: @footerBottomBackground;
padding-top: 15px; padding-top: 15px;
padding-bottom: 15px; padding-bottom: 15px;
font-size: 16px; font-size: 16px;
a { a {
text-decoration: none; text-decoration: none;
color: #5E5E5E; color: @footerGrey;
&:hover, &:focus { &:hover, &:focus {
color: #ffffff; color: @primaryLink;
background-color: #000000; background-color: @primaryLinkHoverBackground;
} }
} }
} }
@@ -47,5 +46,5 @@
margin-top: 10px; margin-top: 10px;
} }
.spacer-long{ .spacer-long{
margin-top: 20px; margin-top: 30px;
} }

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -22,12 +21,12 @@ h2 {
} }
.record-version { .record-version {
color: #777777; color: @greyDark;
background-color: #f2f2f2 !important; background-color: @recordVersionBackground !important;
} }
.random-records-frontpage article { .random-records-frontpage article {
border-bottom: 1px solid rgba(34,36,38,.15); border-bottom: 1px solid @randomRecordsFrontpageArticle;
margin-bottom: 1rem; margin-bottom: 1rem;
padding-bottom: 1rem; padding-bottom: 1rem;
} }
@@ -44,3 +43,46 @@ h2 {
.badges { .badges {
float: right; float: right;
} }
/*Zammad form**/
.zammad-form{
h2{
text-align: center;
}
.form-group{
label{
color: @tugrazBlack;
}
input.form-control{
height: 30px;
// width: auto;
border-radius: 0;
font-family: "Source Sans Pro";
background: @primaryLinkBackgroundInverted;
border: 1px solid rgba(34, 36, 38, 0.15);
}
textarea{
border: 1px solid rgba(34, 36, 38, 0.15);
}
}
.btn{
width: 100% !important;
cursor: pointer;
font-family: "Source Sans Pro";
min-height: 1em;
line-height: 1em;
padding: 0.78571429em 1.5em 0.78571429em;
background: @greyLight none;
border: 0;
}
.btn:hover{
background: @primaryLinkHoverBackground;
color: @primaryButton;
font-size: 1rem;
font-weight: bold;
}
}:focus{
outline: thin;
outline-style: solid;
outline-color: @outlineColor;
}

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -10,7 +9,7 @@
width: 18px; width: 18px;
height: 18px; height: 18px;
vertical-align: top; vertical-align: top;
fill: #e4154b; fill: @tugrazRed;
} }
/*****logo section******/ /*****logo section******/
@@ -18,18 +17,18 @@
vertical-align: middle; vertical-align: middle;
white-space: nowrap; white-space: nowrap;
& a { & a {
fill: #e4154b; fill: @tugrazRed;
} }
} }
.affiliation-logo :hover { .affiliation-logo :hover {
text-decoration: none; text-decoration: none;
fill: #000000; fill: @primaryLinkHoverBackground;
color: #000000; color: @primaryLinkHoverBackground;
} }
.affiliation { .affiliation {
background-color: white; background-color: @primaryLink;
display: table; display: table;
margin: 0 auto 80px; margin: 0 auto 80px;
max-width: 1060px; max-width: 1060px;
@@ -55,11 +54,6 @@
vertical-align: top; vertical-align: top;
} }
a {
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s;
}
/*****END logo section******/ /*****END logo section******/
.short-menu { .short-menu {
@@ -78,12 +72,12 @@ a {
.short-menu-right { .short-menu-right {
display: table-cell; display: table-cell;
width: 50%; width: 50%;
color: #000000; color: @primaryLinkInverted;
} }
.short-menu-right :hover { .short-menu-right :hover {
background-color: #000000; background-color: @primaryLinkHoverBackground;
color: #ffffff; color: @primaryLink;
} }
.short-menu-right-button { .short-menu-right-button {
@@ -104,15 +98,15 @@ a {
& a { & a {
padding: 5px; padding: 5px;
background-color: transparent; background-color: transparent;
color: #000; color: @primaryLinkInverted;
text-decoration: none; text-decoration: none;
} }
} }
.short-menu-left-lang:hover { .short-menu-left-lang:hover {
& a { & a {
background-color: #000; background-color: @primaryLinkHoverBackground;
color: #fff; color: @primaryLink;
text-decoration: none; text-decoration: none;
} }
} }
@@ -126,7 +120,7 @@ a {
& svg { & svg {
& g { & g {
stroke-linejoin: round; stroke-linejoin: round;
stroke: #000; stroke: @primaryLinkInverted;
stroke-miterlimit: 10; stroke-miterlimit: 10;
stroke-width: 2; stroke-width: 2;
fill: none; fill: none;
@@ -137,11 +131,11 @@ a {
.search-icon-header:hover { .search-icon-header:hover {
& a { & a {
background-color: #000; background-color: @primaryLinkHoverBackground;
text-decoration: none; text-decoration: none;
& svg { & svg {
& g { & g {
stroke: #fff; stroke: @primaryLink;
} }
} }
} }
@@ -150,7 +144,7 @@ a {
.short-menu-left-search { .short-menu-left-search {
display: inline-block; display: inline-block;
margin: 12px 9px 6px 0; margin: 12px 9px 6px 0;
color: #000000; color: @primaryLinkInverted;
} }
.short-menu-right-main-menu { .short-menu-right-main-menu {
@@ -181,8 +175,8 @@ svg:not(:root) {
} }
.main-menu-entry a:hover { .main-menu-entry a:hover {
background-color: #000; background-color: @primaryLinkHoverBackground;
color: #fff; color: @primaryLink;
text-decoration: none; text-decoration: none;
} }
@@ -191,7 +185,7 @@ svg:not(:root) {
} }
.main-menu-underline-line { .main-menu-underline-line {
border: 2px solid #e0e1e2 !important; border: 2px solid @greyLight !important;
border-radius: 0; border-radius: 0;
} }
@@ -200,13 +194,13 @@ svg:not(:root) {
} }
.affiliation-text a:hover { .affiliation-text a:hover {
background-color: #000000; background-color: @primaryLinkHoverBackground;
color: #ffffff; color: @primaryLink;
text-decoration: none; text-decoration: none;
} }
.main-menu { .main-menu {
border-bottom: 1px solid #000; border-bottom: 1px solid @primaryLinkInverted;
box-sizing: border-box; box-sizing: border-box;
height: 39px; height: 39px;
margin-top: -1px; margin-top: -1px;
@@ -253,3 +247,10 @@ svg:not(:root) {
span.home-inline{ span.home-inline{
white-space: nowrap; white-space: nowrap;
} }
.test-instance{
text-align: center;
background-color: @notificationBackground;
border: solid @notificationBorder 1px;
z-index: 100000;
}

View File

@@ -1,5 +1,5 @@
.ui.inverted.header{ .ui.inverted.header{
color:#000; color: @primaryLinkInverted;
} }
.login-page-button { .login-page-button {
@@ -10,14 +10,14 @@
cursor: pointer; cursor: pointer;
} }
& a:hover { & a:hover {
background-color: #000; background-color: @primaryLinkHoverBackground;
color: #fff !important; color: @primaryLink !important;
text-decoration: none; text-decoration: none;
} }
} }
.text-color{ .text-color{
color: #000; color: @primaryLinkInverted;
} }
@media (max-width: 767px) { @media (max-width: 767px) {

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -14,5 +13,5 @@
} }
.text-muted { .text-muted {
color: #777; color: @greyDark;
} }

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -12,7 +11,7 @@
* to #ffffff * to #ffffff
***/ ***/
.section-content-light-bg { .section-content-light-bg {
background-color: #ffffff; background-color: @primaryBackground;
} }
/*** /***
@@ -21,7 +20,7 @@
* to #000000 * to #000000
***/ ***/
.section-title { .section-title {
color: #000000; color: @primaryText;
} }
@@ -32,7 +31,7 @@
***/ ***/
.cover-page { .cover-page {
//text-align: center; //text-align: center;
background-color: #ffffff; background-color: @primaryBackground;
} }
@@ -42,7 +41,7 @@
* To #000000 * To #000000
***/ ***/
.panel-free-title { .panel-free-title {
color: #000000; color: @primaryText;
} }
@@ -75,16 +74,16 @@ pre {
***/ ***/
/*.ui.button,*/ /*.ui.button,*/
.ui.search.button { .ui.search.button {
background-color:#e4154b; background-color: @tugrazRed;
} }
.ui.button:hover, .ui.button:hover,
.ui.search.button:hover { .ui.search.button:hover {
background-color:#000000; background-color: @primaryButtonHoverBackground;
} }
.ui.button:hover { .ui.button:hover {
color:#fff; color: @primaryButton;
} }
/*** /***
@@ -123,3 +122,33 @@ pre {
.ui.label { .ui.label {
font-weight: 400; font-weight: 400;
} }
.ui.label.access-right {
float: right;
color: @accessRight;
background-color: white;
&.open {
color: @accessRightOpen;
background-color: white;
}
&.restricted {
color: @accessRightRestricted;
background-color: white;
}
&.embargoed {
color: @accessRightEmbargoed;
background-color: white;
}
&.closed {
color: @accessRightClosed;
background-color: white;
}
}

View File

@@ -5,7 +5,13 @@
* it under the terms of the MIT License; see LICENSE file for more details. * it under the terms of the MIT License; see LICENSE file for more details.
*/ */
.access-right { .top-bottom-padded {
color: #e9711c; margin: unset;
float: right; }
.label.label-keyword {
font-size: 0.71428571rem;
font-weight: 400;
background-color: @labelKeywordBackground;
border: unset;
} }

View File

@@ -0,0 +1,28 @@
/*
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-tugraz is free software; you can redistribute it and/or modify
* it under the terms of the MIT License; see LICENSE file for more details.
*/
.creators {
margin: 0 0 1em;
}
.creators span {
margin-left: 2px;
}
.creator:not(:last-child):after {
color: @greyDark;
content: ';';
}
.creator {
display: inline-block;
margin-right: 5px;
}
.identifiers {
display: inline;
}

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -12,6 +11,7 @@
@import "overrides"; @import "overrides";
@import "frontpage"; @import "frontpage";
@import "record"; @import "record";
@import "search";
@import "macros"; @import "macros";
@import "login"; @import "login";
@import (css) @import (css)
@@ -24,3 +24,11 @@
//@import "../invenio_app_rdm/theme"; //@import "../invenio_app_rdm/theme";
//@import "variables"; //@import "variables";
// used in various templates
// add no hyperlink decoration
.no-decoration{
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s;
}

View File

@@ -1,6 +1,5 @@
/* /*
* Copyright (C) 2020 TUGRAZ. * Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2020 mojib wali.
* *
* invenio-theme-tugraz is free software; you can redistribute it and/or modify it * invenio-theme-tugraz is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details. * under the terms of the MIT License; see LICENSE file for more details.
@@ -12,6 +11,63 @@
***/ ***/
//@import "../invenio_app_rdm/variables.less"; //@import "../invenio_app_rdm/variables.less";
//@navbar_background_image: unset; //@navbar_background_image: unset;
//@navbar_background_color: #ffffff; //@navbar_background_color: #ffffff;
// badge colors, accessibility
@accessRight : #e9711c;
@accessRightOpen : #e9711c;
@accessRightRestricted: #fbbd08;
@accessRightEmbargoed : #db2828;
@accessRightClosed : #db2828;
// primary colors TU Graz
@tugrazBlack: #231f20;
@tugrazRed : #e4154b;
// accent colors
@greyDark : #777;
@greyLight : #E0E1E2;
@labelKeywordBackground: #E8E8E8;
// link and button colors
@primaryLinkInverted : #000;
@primaryLinkBackgroundInverted: #fff;
@primaryLink : #fff;
@primaryLinkHoverBackground : #000;
@primaryButton : #fff;
@primaryButtonHoverBackground : #000;
@primaryButtonInverted : #000f;
// general
@primaryBackground: #fff;
@primaryText : #000;
// account (signin, signup) specific
@primaryFormAccounts : #fff;
@formAccountsInputPlaceholder : silver;
@fieldInputSelectionBackground: #50a2ce;
@signInBackground : #245b78;
// footer specific
@footerGrey : #5E5E5E;
@footerBottomBackground: #f2f2f2;
// record specific
@recordVersionBackground : #f2f2f2;
@randomRecordsFrontpageArticle: rgba(34, 36, 38, .15);
// input
@outlineColor: #85B7D9;
// notification
@notificationBackground: #fffaf3;
@notificationBorder: #e2d5c2;

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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
@@ -9,6 +9,7 @@
"""invenio module for TUGRAZ theme.""" """invenio module for TUGRAZ theme."""
from flask_babelex import gettext as _ from flask_babelex import gettext as _
from invenio_app_rdm.config import RECORDS_UI_ENDPOINTS
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository") INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
"""Default value for the application.""" """Default value for the application."""
@@ -16,7 +17,9 @@ INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = "invenio_theme_tugraz/base.html" INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = "invenio_theme_tugraz/base.html"
"""TU Graz Default base template""" """TU Graz Default base template"""
INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = "invenio_theme_tugraz/accounts/accounts_base.html" INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = (
"invenio_theme_tugraz/accounts/accounts_base.html"
)
"""TU Graz Default account base template""" """TU Graz Default account base template"""
INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png" INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png"
@@ -25,6 +28,16 @@ INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png"
INVENIO_THEME_TUGRAZ_LOGIN_IMG = "images/login_logo.png" INVENIO_THEME_TUGRAZ_LOGIN_IMG = "images/login_logo.png"
"""TU Logo for forms""" """TU Logo for forms"""
THEME_TUGRAZ_CONTACT_FORM = False
"""Enable/Disable Contact form."""
THEME_TUGRAZ_PRODUCTION = False
"""Production environment.
Can also be set as an environment variable in a .env file. Then the name
has to be 'INVENIO_THEME_TUGRAZ_PRODUCTION'.
"""
# Invenio-theme # Invenio-theme
# ============ # ============
# See https://invenio-theme.readthedocs.io/en/latest/configuration.html # See https://invenio-theme.readthedocs.io/en/latest/configuration.html
@@ -63,7 +76,9 @@ THEME_SITENAME = _("Repository")
SECURITY_LOGIN_USER_TEMPLATE = "invenio_theme_tugraz/accounts/login_user.html" SECURITY_LOGIN_USER_TEMPLATE = "invenio_theme_tugraz/accounts/login_user.html"
"""Login template""" """Login template"""
SECURITY_REGISTER_USER_TEMPLATE = "invenio_theme_tugraz/accounts/register_user.html" SECURITY_REGISTER_USER_TEMPLATE = (
"invenio_theme_tugraz/accounts/register_user.html"
)
"""Sigup template""" """Sigup template"""
# Invenio-I18N # Invenio-I18N
@@ -94,3 +109,24 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
# template="invenio_theme_tugraz/record_landing_page.html" # template="invenio_theme_tugraz/record_landing_page.html"
# ) # )
"""override the default record landing page""" """override the default record landing page"""
# Invenio-search-ui
# =============
# See https://invenio-search-ui.readthedocs.io/en/latest/configuration.html
# SEARCH_UI_SEARCH_TEMPLATE = "invenio_theme_tugraz/search.html"
# """override the default search page"""
TUG_ROUTES = {
"index": "/",
"comingsoon": "/comingsoon",
"deposit_create": "/uploads/new",
"deposit_edit": "/uploads/<pid_value>",
"getdoi": "/getdoi",
"record_detail": "/records/<pid_value>",
}
# Datacite
# INVENIO_DATACITE_URL = ""
# INVENIO_DATACITE_UNAME = ""
# INVENIO_DATACITE_PASS = "password"
# INVENIO_DATACITE_PREFIX = ""

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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
@@ -9,6 +9,7 @@
"""invenio module for TUGRAZ theme.""" """invenio module for TUGRAZ theme."""
from . import config from . import config
from .views import deposit_create, deposit_edit, index, record_detail
class InvenioThemeTugraz(object): class InvenioThemeTugraz(object):
@@ -21,11 +22,17 @@ class InvenioThemeTugraz(object):
def init_app(self, app): def init_app(self, app):
"""Flask application initialization.""" """Flask application initialization."""
# add index route rule
# https://flask.palletsprojects.com/en/1.1.x/api/#flask.Flask.add_url_rule
app.add_url_rule("/", "index", index)
app.add_url_rule("/uploads/new", "deposit_create", deposit_create)
app.add_url_rule("/uploads/<pid_value>", "deposit_edit", deposit_edit)
app.add_url_rule("/records/<pid_value>", "record_detail", record_detail)
self.init_config(app) self.init_config(app)
app.extensions["invenio-theme-tugraz"] = self app.extensions["invenio-theme-tugraz"] = self
def init_config(self, app): def init_config(self, app):
"""Initialize configuration.""" """Initialize configuration."""
for k in dir(config): for k in dir(config):
if k.startswith("INVENIO_THEME_TUGRAZ_"): if k.startswith("INVENIO_THEME_TUGRAZ_") or k.startswith("THEME_TUGRAZ_"):
app.config.setdefault(k, getattr(config, k)) app.config.setdefault(k, getattr(config, k))

View File

@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 TU Graz. # Copyright (C) 2020-2021 Graz University of Technology.
# Copyright (C) 2020 mojib wali.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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
@@ -22,4 +21,6 @@ class FrontpageRecordsSearch(RecordsSearch):
"""Default index and filter for frontpage search.""" """Default index and filter for frontpage search."""
index = "rdmrecords-records" index = "rdmrecords-records"
default_filter = Q("query_string", query=("access.access_right:open")) default_filter = Q(
"query_string", query=(
"access.record:public " "AND versions.is_latest:true"))

View File

@@ -1,6 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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
@@ -57,6 +56,12 @@
{%- endblock head %} {%- endblock head %}
</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"> <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_TUGRAZ_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>{{_ ("Test Instance") }}</h4>
<p>{{_ ("This is the test instance of the TU Graz Repository.") }}</p>
</div>
{% endif %}
{%- block body %} {%- block body %}
{%- block browserupgrade %} {%- block browserupgrade %}
<!--[if lt IE 8]> <!--[if lt IE 8]>

View File

@@ -4,14 +4,14 @@
{%- 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') }}"> <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"> <div class="short-menu-right-button">
<a href="{{url_for_security('login', next=request.path)}}" style="text-decoration:none"> <a href="{{url_for_security('login', next=request.path)}}" class="no-decoration">
{{_ ("Log in")}} {{_ ("Log in")}}
</a> </a>
</div> </div>
@@ -21,12 +21,12 @@
{%- if config.USERPROFILES %} {%- if config.USERPROFILES %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{ url_for('invenio_userprofiles.profile') }}"> <a href="{{ url_for('invenio_userprofiles.profile') }}" class="no-decoration">
<i class="user icon"></i> {{ current_user.email }} <i class="user icon"></i> {{ current_user.email }}
</a> </a>
</div> </div>
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a class="dropdown-item" href="{{url_for_security('logout')}}"> <a class="dropdown-item no-decoration" href="{{url_for_security('logout')}}">
{{_('Sign out')}} {{_('Sign out')}}
</a> </a>
</div> </div>

View File

@@ -1,7 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali
Copyright (C) 2020 Nikita Lvov
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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
@@ -14,30 +12,32 @@
{% 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="spacer-long"></div>
<div class="ui container"> <div class="ui container">
<div class="ui centered grid"> <div class="ui centered grid padded">
<div class="ui padded segments big form"> <div class="ui padded segments huge form">
<div class="ui login segment padded"> <div class="ui login segment padded">
<div class="divider hidden"></div> <div class="divider hidden"></div>
{%- block form_header %} {%- block form_header %}
<h3 class="ui login header">{{ _('Log in to Repository') }}</h3> <h3 class="ui login header">{{ _('Log in to Repository') }}</h3>
{%- endblock form_header %} {%- endblock form_header %}
<div class="ui divider"></div>
<!--Log in with SSO--> <!--Log in with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %} {%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="ui divider"></div>
<div class="login-page-button ui fluid large button"> <div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label"> <a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
{% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %} {% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" /> <img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a> </a>
</div> </div>
<div class="spacer-long"></div>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div> <div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %} {%- endif %}
{%- block form_outer %} {%- block form_outer %}
{%- with form = login_user_form %} {%- with form = login_user_form %}
<div style="padding-bottom: 20px;padding-top: 6px;">
<form action="{{ url_for_security('login') }}" method="POST" name="login_user_form" class="ui big form"> <form action="{{ url_for_security('login') }}" method="POST" name="login_user_form" class="ui big form">
{{ form.hidden_tag() }} {{ form.hidden_tag() }}
{{ form_errors(form) }} {{ form_errors(form) }}
@@ -47,6 +47,7 @@
<i class="ui sign-in icon"></i>{{ _('Log In') }} <i class="ui sign-in icon"></i>{{ _('Log In') }}
</button> </button>
</form> </form>
</div>
{%- endwith %} {%- endwith %}
{%- endblock form_outer %} {%- endblock form_outer %}
<div class="divider hidden"></div> <div class="divider hidden"></div>

View File

@@ -1,6 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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

View File

@@ -0,0 +1,7 @@
{%- extends config.INVENIO_THEME_TUGRAZ_BASE_TEMPLATE %}
{%- block page_body %}
<div class="ui container">
<h1 style="text-align: center;">comingsoon</h1>
</div>
{%- endblock %}

View File

@@ -0,0 +1,31 @@
{#
Copyright (C) 2020 CERN.
Copyright (C) 2020 Northwestern University.
Copyright (C) 2021 Graz University of Technology.
Invenio-them-tugraz is free software; you can redistribute it and/or modify it
under the terms of the MIT License; see LICENSE file for more details.
#}
{%- extends config.BASE_TEMPLATE %}
{%- block page_body %}
{%- if record %}
<input id="deposits-record" type="hidden" name="deposits-record" value='{{record | tojson }}'></input>
{%- endif %}
{%- if files %}
<input id="deposits-record-files" type="hidden" name="deposits-record-files" value='{{files | tojson }}'></input>
{%- endif %}
{%- if forms_config %}
<input type="hidden" name="deposits-config" value='{{forms_config | tojson }}'></input>
{%- endif %}
{%- if permissions %}
<input id="deposits-record-permissions" type="hidden" name="deposits-record-permissions" value='{{permissions | tojson }}'></input>
{%- endif %}
<div id="deposit-form"></div>
{%- endblock page_body %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-theme-tugraz-rdm-deposit.js'] }}
{%- endblock %}

View File

@@ -1,6 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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
@@ -30,17 +29,27 @@
<h2>{{_ ("Repository")}}</h2> <h2>{{_ ("Repository")}}</h2>
<p class="bodytext"> <p class="bodytext">
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}"> <a href="https://tu-graz-library.github.io/docs-repository" title="Repository documentation" target="_blank">
{{_ ("Documentation")}} <i class="external alternate icon"></i>
</a>
<br>
<a
href="https://www.tugraz.at/fileadmin/user_upload/tugrazExternal/0c4b9c02-50a6-4a31-b5fd-24a0f93b69c5/TUGraz_Repository_Guide.pdf"
title="Quick guide" target="_blank">
{{_ ("Handbook")}} <i class="external alternate icon"></i>
</a>
<br>
<!-- <a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Impressum")}}<i class="angle right icon"></i> {{_ ("Impressum")}}<i class="angle right icon"></i>
</a> </a>
<br> <br>
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}"> <a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Data protection")}}<i class="angle right icon"></i> {{_ ("Data protection")}}<i class="angle right icon"></i>
</a> </a>
<br> <br>
<a href="{{ url_for('invenio_app_rdm.coming_soon') }}"> <a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Feedback")}}<i class="angle right icon"></i> {{_ ("Feedback")}}<i class="angle right icon"></i>
</a> </a> -->
</p> </p>
</div> </div>
@@ -69,13 +78,13 @@
<h2>{{_ ("Connected Services")}}</h2> <h2>{{_ ("Connected Services")}}</h2>
<p class="bodytext"> <p class="bodytext">
<a href="https://pure.tugraz.at" title="PURE"> <a href="https://pure.tugraz.at" title="PURE" target="_blank">
{{_ ("PURE")}} <i class="external alternate icon"></i></a><br> {{_ ("PURE")}} <i class="external alternate icon"></i></a><br>
<a href="http://campusonline.tugraz.at" title="CAMPUS online"> <a href="http://campusonline.tugraz.at" title="CAMPUS online" target="_blank">
{{_ ("CampusOnline")}} <i class="external alternate icon"></i></a><br> {{_ ("CampusOnline")}} <i class="external alternate icon"></i></a><br>
<a href="https://rdm.tugraz.at" title="CAMPUS online"> <a href="https://rdm.tugraz.at" title="Research Data Management" target="_blank">
{{_ ("Research Data Management")}} <i class="external alternate icon"></i></a><br> {{_ ("Research Data Management")}} <i class="external alternate icon"></i></a><br>
</p> </p>

View File

@@ -1,15 +1,19 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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.
#} #}
{% if not config.THEME_TUGRAZ_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>{{_ ("Test Instance") }}</h4>
<p>{{_ ("This is the test instance of the TU Graz Repository.") }}</p>
</div>
{% endif %}
<header> <header>
{%- block navbar %} {%- block navbar %}
<nav> <nav>
{%- block navbar_header %} {%- block navbar_header %}
@@ -20,7 +24,7 @@
<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_tugraz.index')}}" title="Home"> <a href="{{url_for('invenio_theme_tugraz.index')}}" title="Home" class="no-decoration">
<span class="home-inline"> <span class="home-inline">
<svg shape-rendering="geometricPrecision" id="int-menu-q-home-icon" <svg shape-rendering="geometricPrecision" id="int-menu-q-home-icon"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg"
@@ -45,7 +49,7 @@
<!--TODO: remove this once above is uncommented--> <!--TODO: remove this once above is uncommented-->
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_app_rdm.deposits_user')}}">{{_ ("Uploads")}}</a> <a href="{{url_for('invenio_app_rdm_records.deposit_search')}}" class="no-decoration">{{_ ("Uploads")}}</a>
</div> </div>
</div> </div>

View File

@@ -1,6 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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
@@ -9,6 +8,10 @@
{%- extends config.INVENIO_THEME_TUGRAZ_BASE_TEMPLATE %} {%- extends config.INVENIO_THEME_TUGRAZ_BASE_TEMPLATE %}
{%- block javascript %}
{{ webpack['invenio-theme-tugraz-js.js'] }}
{%- endblock javascript %}
{%- from "invenio_theme_tugraz/macros/authors.html" import creators -%} {%- from "invenio_theme_tugraz/macros/authors.html" import creators -%}
{%- block page_body %} {%- block page_body %}
@@ -39,9 +42,15 @@
<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 %}
<div class="ui centered grid">
<p style="font-size: medium;">{{_('There are no public records to show.')}}</p>
</div>
{% 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 = url_for('invenio_records_ui.recid', pid_value=r['id']) %} {%- set record_url = url_for('invenio_app_rdm_records.record_detail', pid_value=r.id) %}
<article> <article>
<!--TODO: <!--TODO:
@@ -64,7 +73,7 @@
</div> </div>
<h4> <h4>
<a href="{{ record_url }}"> <a href="{{ record_url }}" class="no-decoration">
{{r.metadata.title}} {{r.metadata.title}}
</a> </a>
</h4> </h4>
@@ -74,7 +83,7 @@
</p> </p>
<p class="hidden-xs"> <p class="hidden-xs">
<a href="{{record_url}}"> <a href="{{record_url}}" class="no-decoration">
{{ r.metadata.description | striptags | truncate(300) }} {{ r.metadata.description | striptags | truncate(300) }}
</a> </a>
</p> </p>
@@ -94,12 +103,17 @@
</div> </div>
</div> </div>
<div class="right floated column"> <!--Disabled on feb-relase - enable when stable-->
<!-- <div class="right floated column">
<span class="access-right"> <span class="access-right">
<i class="icon lock open"></i> <i class="icon lock open"></i>
{{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }} {{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
{%- for right in r.metadata.rights %}
<a target="_blank" href="{{right.url}}">{{ '(' ~ right.identifier ~ ')' }}</a>
{%- endfor %}
</span> </span>
</div> </div> -->
</div> </div>
</div> </div>
</article> </article>
@@ -107,9 +121,11 @@
--> -->
{%- endfor %} {%- endfor %}
{% 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 %}
</div> </div>
@@ -117,13 +133,14 @@
<div class="six wide column"> <div class="six wide column">
<!--contact us--> <!--contact us-->
<div class="ui segment" style="padding-bottom: 10px;"> <div class="ui segment" style="padding-bottom: 10px;">
<h4>{{_ ("Need help?")}} </h4> <h4>{{_ ("Need help?")}}</h4>
{%- if config.THEME_TUGRAZ_CONTACT_FORM %}
<div style="padding-bottom: 10px;"> <div style="padding-bottom: 10px;">
<a href="{{ url_for('invenio_theme_tugraz.index')}}" class="fluid ui button"> <a id="feedback-form" class="fluid ui button">
{{_ ("Contact us")}} {{_ ("Contact us")}}
</a> </a>
</div> </div>
{%- endif %}
<p> <p>
{{config.THEME_SITENAME}} {{_ ("prioritizes all Recent uploads.")}} {{config.THEME_SITENAME}} {{_ ("prioritizes all Recent uploads.")}}
</p> </p>

View File

@@ -0,0 +1,153 @@
{#
Copyright (C) 2020-2021 CERN.
Copyright (C) 2020 Northwestern University.
Copyright (C) 2021 TU Wien.
Copyright (C) 2021 Graz University of Technology.
Invenio RDM Records is free software; you can redistribute it and/or modify
it under the terms of the MIT License; see LICENSE file for more details.
#}
{%- extends config.BASE_TEMPLATE %}
{%- from "invenio_app_rdm/records/macros/files.html" import file_list_box, preview_file_box %}
{%- from "invenio_app_rdm/records/macros/detail.html" import show_detail %}
{%- set title = record.metadata.title -%}
{%- set metadata = record.metadata %}
{%- block page_body %}
<div class="banners">
{% if permissions is defined and permissions.can_edit %}
<div class="ui warning flashed top-attached manage message">
<div class="ui container">
<div id="recordManagement" data-record='{{ record | tojson }}' data-permissions='{{ permissions | tojson }}'></div>
</div>
</div>
{% endif %}
{% if not record.versions.is_latest %}
<div class="ui warning flashed top-attached manage message">
<div class="ui container">
<div class="ui relaxed grid">
<div class="column">
<div class="row">
<p>
{% trans link_start=('<a href="' + record.links.latest_html + '"><b>')|safe, link_end='</b></a>'|safe %}
There is a {{ link_start }}newer version{{ link_end }} of the record available.
{% endtrans %}
</p>
</div>
</div>
</div>
</div>
</div>
{% endif %}
</div>
<div class="ui container">
<div class="ui relaxed grid">
<div class="two column row top-padded">
<div class="eleven wide column">
{%- block record_body -%}
{%- block record_header -%}
<div class="ui grid middle aligned">
<div class="two column row">
<div class="left floated left aligned column">
<span class="ui" title="Publication date">{{ record.ui.publication_date_l10n_long }}</span>
<span class="label text-muted"> | Version {{ record.ui.version }}</span>
</div>
<div class="right floated right aligned column">
<span class="ui label small grey">{{ record.ui.resource_type }}</span>
<!--TODO: Re-enable in next releases-->
<!-- <span class="ui label small access-right {{ 'unlock' }}">
<i class="icon {{ 'unlock' }}"></i>{{ _("Open Access") }}</span> -->
</div>
</div>
</div>
{%- endblock record_header -%}
{%- block record_title -%}
<h1>{{ metadata.title }}</h1>
<p>{%- include "invenio_app_rdm/records/details/creators.html" %}</p>
{%- endblock record_title -%}
{%- block record_content -%}
<p>{%- include "invenio_app_rdm/records/details/contributors.html" %}</p>
{%- include "invenio_app_rdm/records/details/subjects.html" %}
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/description.html" %}
</div>
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/licenses.html" %}
</div>
{%- endblock record_content -%}
{# files #}
{%- block record_files -%}
{%- if files is not none -%}
{%- if files.enabled and record|can_list_files %}
{%- set default_preview = files.default_preview %}
{%- set files = files|order_entries %}
{%- if files|has_previewable_files -%}
{%- set default_preview_file = files|select_preview_file(default_preview=default_preview) %}
{{ preview_file_box(default_preview_file, pid) }}
{%- endif -%}
{{ file_list_box(files, pid) }}
{% endif %}
{%- else -%}
{# TODO: come up with a proper display #}
<div>Sorry, the files are restricted!</div>
{%- endif -%}
{%- endblock record_files -%}
{%- block record_details -%}
{# More details #}
<div class="top-padded">
{%- include "invenio_app_rdm/records/details/details.html" %}
</div>
{%- endblock record_details -%}
{%- block record_footer -%}
<div class="ui grid">
<div class="two column row top-bottom-padded font-small">
<div class="four wide column">
<p><b>Upload information</b></p>
</div>
<div class="twelve wide column">
<span class="label text-muted">
<b>Created:</b> {{ record.ui.created_date_l10n_long }} | <b>Modified:</b> {{ record.ui.updated_date_l10n_long }}
</span>
</div>
</div>
</div>
{%- endblock record_footer -%}
<!-- {%- block jump -%}
<div class="ui grid">
<div class="centered row" id="jump-btn">
<a style="cursor: pointer;">
<span class="ui button">
<i class="arrow alternate circle up outline icon"></i>Jump up</span>
</a>
</div>
</div>
{%- endblock jump -%} -->
{%- endblock record_body %}
</div>
<div class="five wide column">
{% block record_sidebar %}
{%- include "invenio_app_rdm/records/details/side_bar.html" %}
<div style="text-align: center;">
{%- include "invenio_theme_tugraz/landingpage/doi.html" %}
</div>
{% endblock record_sidebar %}
</div>
</div>
</div>
</div>
{%- endblock page_body %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-app-rdm-landing-page.js'] }}
{# Communities management -- TODO include again when communities are ready #}
{# {{ webpack['invenio-communities-records.js'] }} #}
{{ webpack['previewer_theme.js'] }}
{%- endblock javascript %}

View File

@@ -0,0 +1,43 @@
{#
Copyright (C) 2020 CERN.
Copyright (C) 2020 Northwestern University.
Invenio RDM Records is free software; you can redistribute it and/or modify
it under the terms of the MIT License; see LICENSE file for more details.
#}
{% if metadata.identifiers %}
{% for identifier in metadata.identifiers %}
{% if identifier.scheme == 'doi' %}
{%- set id_doi = identifier.identifier %}
<dd>
{% if id_doi %}
<span class="get-badge" data-toggle="tooltip" data-placement="bottom" style="cursor: pointer;"
title="Get the DOI badge!">
<img id="record-doi-badge" data-target="[data-modal='{{ id_doi }}']"
src="{{ url_for('invenio_formatter_badges.badge', title='DOI', value=id_doi, ext='svg') }}" alt="{{ id_doi }}">
</img>
</span>
<div id="doi-modal" class="ui modal fade badge-modal" data-modal="{{ id_doi }}">
<div class="header">RDM DOI Badge</div>
<div class="content">
<h4>
<small>DOI</small>
</h4>
<h4>
<pre>{{ id_doi }}</pre>
</h4>
{% from "semantic-ui/invenio_formatter/macros/badges.html" import badges_formats_list %}
{{ badges_formats_list(url_for('invenio_formatter_badges.badge', title='DOI', value=id_doi, ext='svg', _external=True, _scheme='https'), id_doi|pid_url(scheme='doi')) }}
</div>
</div>
{% else %}
{{ _("No minted DOI") }}
{% endif %}
</dd>
{% endif %}
{% endfor %}
{% endif %}

View File

@@ -1,7 +1,6 @@
{# {#
Copyright (C) 2020 Zenodo Copyright (C) 2020 Zenodo
Copyright (C) 2020 TUGRAZ Copyright (C) 2020 TUGRAZ
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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
@@ -12,11 +11,11 @@
{%- for creators in authors_list %} {%- for creators in authors_list %}
{%- if 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" ><img class="inline-orcid" src="{{ url_for('static', filename='extra/orcid.png')}}" /></a>
{%- endif %} {%- endif %}
<span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-toggle="tooltip" title="{{affiliation.name}}" {%- endfor %} {% endif %}>{{creators.name}}</span> <span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-toggle="tooltip" title="{{affiliation.name}}" {%- endfor %} {% endif %}>{{creators.person_or_org.name}}</span>
{% if not loop.last %}; {% endif %} {% if not loop.last %}; {% endif %}
{%- endfor %} {%- endfor %}

View File

@@ -1,6 +1,5 @@
{# {#
Copyright (C) 2020 TUGRAZ Copyright (C) 2020-2021 Graz University of Technology.
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-tugraz is free software; you can redistribute it and/or
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
@@ -17,13 +16,13 @@
{%- for l in current_i18n.get_locales() %} {%- for l in current_i18n.get_locales() %}
{%- if current_i18n.language != l.language %} {%- if current_i18n.language != l.language %}
<a <a
href="{{ url_for('invenio_i18n.set_lang', lang_code=l.language) }}">{{ l.get_display_name().upper() [0:2]}}</a> href="{{ url_for('invenio_i18n.set_lang', lang_code=l.language) }}" class="no-decoration">{{ l.get_display_name().upper() [0:2]}}</a>
{%- endif %} {%- endif %}
{%- endfor %} {%- endfor %}
</div> </div>
{%- endif %} {%- endif %}
<div class="search-icon-header"> <div class="search-icon-header">
<a href="{{url_for('invenio_search_ui.search')}}"> <a href="{{url_for('invenio_search_ui.search')}}" class="no-decoration">
<svg class="short-menu-icon" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" <svg class="short-menu-icon" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg" height="26.015" width="26.015" version="1.1" xmlns="http://www.w3.org/2000/svg" height="26.015" width="26.015" version="1.1"
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
@@ -61,7 +60,7 @@
<img height="51.862" src="{{ url_for('static', filename='images/library_logo.png')}}"> <img height="51.862" src="{{ url_for('static', filename='images/library_logo.png')}}">
</div> </div>
<div class="affiliation-text"> <div class="affiliation-text">
<a title="RDM" href="{{url_for('invenio_theme_tugraz.index')}}"> <a title="Home" href="{{url_for('invenio_theme_tugraz.index')}}" class="no-decoration">
TU GRAZ TU GRAZ
<br> <br>
{{_ ("REPOSITORY")}} {{_ ("REPOSITORY")}}
@@ -74,7 +73,7 @@
<!--Right--> <!--Right-->
<div class="right floated right aligned six wide column"> <div class="right floated right aligned six wide column">
<div class="affiliation-logo" id="int-header-logo"> <div class="affiliation-logo" id="int-header-logo">
<a href="https://www.tugraz.at" title="TU Graz Home" target="_blank"> <a href="https://www.tugraz.at" title="TU Graz Home" target="_blank" class="no-decoration">
<div class="affiliation-logo-claim"> <div class="affiliation-logo-claim">
<div class="affiliation-logo-claim-single">{{_ ("SCIENCE")}}</div> <div class="affiliation-logo-claim-single">{{_ ("SCIENCE")}}</div>
<div class="affiliation-logo-claim-single">{{_ ("PASSION")}}</div> <div class="affiliation-logo-claim-single">{{_ ("PASSION")}}</div>

View File

@@ -13,89 +13,82 @@
{%- block css %} {%- block css %}
{{ super() }} {{ super() }}
{{ webpack['invenio-rdm-records-theme.css'] }}
{%- endblock css %} {%- endblock css %}
{%- from "invenio_rdm_records/macros/files.html" import file_list_box, preview_file_box %} {%- from "invenio_app_rdm/landing_page/macros/files.html" import file_list_box, preview_file_box %}
{%- from "invenio_app_rdm/landing_page/macros/detail.html" import show_detail %}
{%- set record = record|dereference_record|serialize_ui %}
{%- set metadata = record.metadata %}
{%- block page_body %} {%- block page_body %}
<div class="ui container"> <div class="ui container">
<div class="ui padded relaxed grid"> <div class="ui padded relaxed grid">
<div class="two column row"> <div class="two column row">
<div class="ten wide column"> <div class="ten wide column">
{%- block record_body %} {%- block record_body %}
<div class="left floated left aligned column"> <div class="badges">
<span class="ui label teal" title="Publication date"> <span class="ui label record-version" title="{{_('Publication date')}}">
{{ record.publication_date|to_date|format_date(format='long') }} {{ record.metadata.publication_date }} {{ '(' ~ record.metadata.version ~ ')' if record.metadata.version }}
</span> </span>
<span class="ui label record-version"> <!--Resource type badge-->
Version {{ record.version }} <span class="ui label teal" title="{{_('Resource type')}}">
</span> {{record.ui.resource_type }}
<span class="ui label grey">
{{ record.resource_type | vocabulary_title('resource_type') }}
</span> </span>
</div> </div>
<h1>{{ record.titles[0].title }}</h1> <h1 style="margin-top: -6px">{{ record.metadata.title }}</h1>
<p> <p>{%- include "invenio_app_rdm/landing_page/details/creators.html" %}</p>
{%- include "invenio_rdm_records/details/creators.html" %} <p>{%- include "invenio_app_rdm/landing_page/details/contributors.html" %}</p>
</p>
{%- if record.contributors %} <div class="ui grid" style="margin-bottom: 10px;">
<p>
{%- include "invenio_rdm_records/details/contributors.html" %}
</p>
{%- endif %}
<div class="ui grid">
<div class="two column row"> <div class="two column row">
<div class="left floated column"> <div class="left floated column">
{%- include "invenio_theme_tugraz/details/doi.html" %} {%- for s in record.metadata.subjects %}
<div class="ui tiny label">{{s.subject}}</div>
{%- endfor %}
<div style="margin-top: 5px;">
<b>Created:</b> {{ record.ui.created_date_l10n_long }} | <b>Modified:</b> {{ record.ui.updated_date_l10n_long }}
</div>
</div> </div>
<div class="right floated column"> <div class="right floated column">
{# <span class="ui label access-right">
{%- include "invenio_rdm_records/details/contact.html" %} <i class="icon lock open"></i>
#} {{ record.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
{%- for right in record.metadata.rights %}
<a target="_blank" href="{{right.url}}">{{ '(' ~ right.identifier ~ ')' }}</a>
{%- endfor %}
<span class="access-right">
{{ record | vocabulary_title('access_right') | lower_case }}
</span> </span>
</div> </div>
</div> </div>
</div> </div>
{%- include "invenio_rdm_records/details/citation.html" %} {%- include "invenio_app_rdm/landing_page/details/description.html" %}
{%- include "invenio_rdm_records/details/keywords.html" %}
{%- include "invenio_rdm_records/details/description.html" %}
{%- include "invenio_rdm_records/details/licenses.html" %}
{# files #} {# files #}
{%- if record.files and record | can_list_files %} {%- if record.files and record | can_list_files %}
{%- set files = record.files %} {%- set files = record.files | make_files_preview_compatible %}
{{ preview_file_box(files | select_preview_file, pid) }} {%- set default_preview_file = files | select_preview_file(default_preview=record.files.default_preview) %}
{{ file_list_box(files.dumps(), pid) }} {{ preview_file_box(default_preview_file, pid) }}
{%- else %} {{ file_list_box(files, pid) }}
<br>
<p style="text-align: center;">
No associated files.
</p>
{% endif %} {% endif %}
{# More details #}
{%- endblock record_body %} {%- endblock record_body %}
</div> </div>
<div class="six wide column"> <div class="six wide column">
{% block sidebar %} <div id="recordManagement"
<div class="ui segment rdm-sidebar"> class="ui container"
{%- include "invenio_rdm_records/details/side_bar.html" %} data-recid='{{ record["id"] | tojson }}'>
</div> </div>
{% block sidebar %}
{%- include "invenio_app_rdm/landing_page/details/side_bar.html" %}
{% endblock sidebar %} {% endblock sidebar %}
</div> </div>
</div> </div>
@@ -106,8 +99,9 @@
{%- block javascript %} {%- block javascript %}
{{ super() }} {{ super() }}
{{ webpack['invenio-rdm-records-js.js'] }} {{ webpack['invenio-app-rdm-records.js'] }}
{# Communities management #} {# Communities management #}
{{ webpack['invenio-communities-records.js'] }} {{ webpack['invenio-communities-records.js'] }}
{{webpack['previewer_theme.js']}} {{ webpack['previewer_theme.js'] }}
{{ webpack['invenio-app-rdm-record-management.js'] }}
{%- endblock javascript %} {%- endblock javascript %}

View File

@@ -0,0 +1,82 @@
{#
Copyright (C) 2020 Graz University of Technology
invenio-theme-tugraz is free software; you can redistribute it and/or modify
it under the terms of the MIT License; see LICENSE file for more details.
#}
{%- extends config.BASE_TEMPLATE %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-theme-tugraz-search-app.js'] }}
{%- endblock %}
{%- block page_body %}
<div data-invenio-search-config='{
"aggs": [
{
"aggName": "access_right",
"field": "access_right",
"title": "Access Right"
},
{
"aggName": "resource_type",
"field": "resource_type.type",
"title": "Resource Type",
"childAgg": {
"aggName": "subtype",
"field": "resource_type.subtype",
"title": "Resource Type"
}
}
],
"appId": "rdm-search",
"initialQueryState": {
"hiddenParams": null,
"size": 10
},
"layoutOptions": {
"gridView": false,
"listView": true
},
"paginationOptions": {
"defaultValue": 10,
"resultsPerPage": [
{
"text": "10",
"value": 10
},
{
"text": "20",
"value": 20
},
{
"text": "50",
"value": 50
}
]
},
"searchApi": {
"axios": {
"headers": {
"Accept": "application/vnd.inveniordm.v1+json"
},
"url": "/api/records",
"withCredentials": true
}
},
"sortOrderDisabled": true,
"sortOptions": [
{
"sortBy": "bestmatch",
"text": "Best match"
},
{
"sortBy": "newest",
"text": "Newest"
}
]
}'></div>
{%- endblock page_body %}

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.4\n" "Project-Id-Version: invenio-theme-tugraz 1.0.4\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2021-01-04 14:18+0100\n" "POT-Creation-Date: 2021-04-08 08:50+0200\n"
"PO-Revision-Date: 2020-10-06 10:27+0200\n" "PO-Revision-Date: 2020-10-06 10:27+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n" "Language: de\n"
@@ -19,21 +19,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50 #: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:63
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "TU Graz Repository" msgstr "TU Graz Repository"
#: invenio_theme_tugraz/config.py:53 #: invenio_theme_tugraz/config.py:66
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository" msgid "Repository"
msgstr "Repository" msgstr "Repository"
#: invenio_theme_tugraz/config.py:76 #: invenio_theme_tugraz/config.py:91
msgid "German" msgid "German"
msgstr "Deutsche" msgstr "Deutsche"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:26
msgid "Invenio" msgid "Invenio"
msgstr "Invenio" msgstr "Invenio"
@@ -46,8 +46,8 @@ msgid ""
"your research is stored safely for the future in TU Graz library for as " "your research is stored safely for the future in TU Graz library for as "
"long as TU Graz library exists." "long as TU Graz library exists."
msgstr "" msgstr ""
"Ihre Forschung wird für die Zukunft sicher in der Bibliothek der TU Graz " "Ihre Forschung ist in der Bibliothek der TU Graz für die Zukunft "
"gespeichert als solange die Bibliothek TU Graz existiert." "gespeichert,solange die Bibliothek der TU Graz existiert."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "Trusted" msgid "Trusted"
@@ -58,8 +58,8 @@ msgid ""
"built and operated by CERN and OpenAIRE to ensure that everyone can join " "built and operated by CERN and OpenAIRE to ensure that everyone can join "
"in Open Science." "in Open Science."
msgstr "" msgstr ""
"Gebaut und betrieben von CERN und OpenAIRE; um sicherzugehen, dass jedeR " "Aufgebaut und betrieben von CERN und OpenAIRE, um sicherzustellen, dass "
"Zugang zu Open Science hat" "jeder an Open Science teilnehmen kann."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "Citeable" msgid "Citeable"
@@ -70,8 +70,8 @@ msgid ""
"every upload is assigned a Digital Object Identifier (DOI), to make them " "every upload is assigned a Digital Object Identifier (DOI), to make them "
"citable and trackable." "citable and trackable."
msgstr "" msgstr ""
"Jeder Upload erhält eine DOI um sicherzustellen,dass er zitierbar und " "Jeder Upload wird mit einem Digital Object Identifier (DOI) versehen,um "
"auffindbar ist" "ihn zitierfähig und nachverfolgbar zu"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid "No waiting time" msgid "No waiting time"
@@ -95,7 +95,7 @@ msgid ""
" via our restricted access mode." " via our restricted access mode."
msgstr "" msgstr ""
"Teilen Sie z.B. anonymisierte klinische Studiendaten nur mit " "Teilen Sie z.B. anonymisierte klinische Studiendaten nur mit "
"medizinischem Fachpersonalüber unseren eingeschränkten Zugriffsmodus." "medizinischem Fachpersonal über unseren eingeschränkten Zugriffsmodus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Versioning" msgid "Versioning"
@@ -103,7 +103,7 @@ msgstr "Versionierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Easily update your dataset with our versioning feature." msgid "Easily update your dataset with our versioning feature."
msgstr "Einfaches Updaten ihrer Datensätze mit unserere Versionierung." msgstr "Einfaches Updaten ihrer Datensätze mit unserer Versionierung."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "Usage statisics" msgid "Usage statisics"
@@ -113,103 +113,123 @@ msgstr "Nutzungsstatistiken"
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken." msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
msgid "Documentation"
msgstr "Dokumentation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:39
msgid "Handbook"
msgstr "Handbuch"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:44
msgid "Impressum" msgid "Impressum"
msgstr "Imprint" msgstr "Imprint"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:48
msgid "Data protection" msgid "Data protection"
msgstr "Datenschutzerklärung" msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
msgid "Feedback" msgid "Feedback"
msgstr "Feedback" msgstr "Feedback"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
msgid "Features" msgid "Features"
msgstr "Features" msgstr "Features"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:63
msgid "Scalability" msgid "Scalability"
msgstr "Skalierbarkeit" msgstr "Skalierbarkeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:65
msgid "Institutional integration" msgid "Institutional integration"
msgstr "Institutionelle Einbindung" msgstr "Institutionelle Einbindung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:67
msgid "Next Generation Repository" msgid "Next Generation Repository"
msgstr "Repositorium der nächsten Generation" msgstr "Repositorium der nächsten Generation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:70
msgid "Repository Profiles" msgid "Repository Profiles"
msgstr "Repositorienprofile" msgstr "Repositorienprofile"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "Resilient" msgid "Resilient"
msgstr "Resilient, widerstandsfähig" msgstr "Resilient, widerstandsfähig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79
msgid "Connected Services" msgid "Connected Services"
msgstr "Verbundene Services " msgstr "Verbundene Services "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:83
msgid "PURE" msgid "PURE"
msgstr "PURE" msgstr "PURE"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "CampusOnline" msgid "CampusOnline"
msgstr "CampusOnline" msgstr "CampusOnline"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:89
msgid "Research Data Management" msgid "Research Data Management"
msgstr "Forschungsdatenmanagement" msgstr "Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:96
msgid "Accessibility" msgid "Accessibility"
msgstr "Barrierefreiheit" msgstr "Barrierefreiheit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:97
msgid "Tipp:" msgid "Tipp:"
msgstr "" msgstr "Tipp"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:97
msgid "Use Ctrl + and Crtl -" msgid "Use Ctrl + and Crtl -"
msgstr "Verwenden Sie Strg+ und Strg-" msgstr "Verwenden Sie Strg+ und Strg-"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:97
msgid "to change the font size." msgid "to change the font size."
msgstr "Um die Schriftgröße zu ändern." msgstr "Um die Schriftgröße zu ändern."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:11
msgid "Test Instance"
msgstr "Testumgebung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:62
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:12
msgid "This is the test instance of the TU Graz Repository."
msgstr "Dies ist die Testumgebung des TU Graz Repositorys."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:39
msgid "Home" msgid "Home"
msgstr "Startseite" msgstr "Startseite"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:52
msgid "Uploads" msgid "Uploads"
msgstr "Hochladen" msgstr "Hochladen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:27
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "Suchbegriff eingeben und “Enter” drücken (?)" msgstr "Suchbegriff eingeben und “Enter” drücken (?)"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:43
msgid "Recent uploads" msgid "Recent uploads"
msgstr "Kürzlich hochgeladene Dateien" msgstr "Kürzlich hochgeladene Dateien"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:47
msgid "There are no public records to show."
msgstr "Es sind keine öffentlich zugänglichen Datensätze vorhanden."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:33
msgid "Publication date" msgid "Publication date"
msgstr "Datum der Veröffentlichung" msgstr "Datum der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:66
msgid "Version" #: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:38
msgstr "Version"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
msgid "Resource type" msgid "Resource type"
msgstr "Art der Veröffentlichung" msgstr "Art der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:99
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -217,73 +237,73 @@ msgid ""
" " " "
msgstr "Hochgeladen am %(date)s\n" msgstr "Hochgeladen am %(date)s\n"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:126
msgid "More" msgid "More"
msgstr "Mehr" msgstr "Mehr"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "Need help?" msgid "Need help?"
msgstr "Brauchen Sie Hilfe?" msgstr "Brauchen Sie Hilfe?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:140
msgid "Contact us" msgid "Contact us"
msgstr "Kontaktiere uns" msgstr "Kontaktiere uns"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
msgid "prioritizes all Recent uploads." msgid "prioritizes all Recent uploads."
msgstr "Reiht die neuesten Uploads vor." msgstr "reiht die neuesten Uploads vor."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:148
msgid "We can help with:" msgid "We can help with:"
msgstr "Wir können helfen bei:" msgstr "Dabei können wir helfen:"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc." msgid "Uploading your research data, software, preprints, etc."
msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw." msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with" msgid "One-on-one with"
msgstr "Eins-zu-eins mit" msgstr "One-on-one mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters." msgid "supporters."
msgstr "Unterstützern" msgstr "Unterstützern"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy." msgid "Quota increases beyond our default policy."
msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus." msgstr "Quota Erhöhungen über unsere Standard Policy hinaus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets." msgid "Scripts for automated uploading of larger datasets."
msgstr "Skripte zum automatisierten Hochladen größerer Datensätze." msgstr "Skripte zum automatisierten Hochladen größerer Datensätze."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:161
msgid "Why use" msgid "Why use"
msgstr "Warum" msgstr "Warum"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:66
#, fuzzy #, fuzzy
msgid "REPOSITORY" msgid "REPOSITORY"
msgstr "Repository" msgstr "Repository"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:68
msgid "LIBRARY & ARCHIVES" msgid "LIBRARY & ARCHIVES"
msgstr "Bibliothek und Archiv" msgstr "Bibliothek und Archiv"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
msgid "SCIENCE" msgid "SCIENCE"
msgstr "Wissenschaft" msgstr "WISSEN"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "PASSION"
msgstr "TECHNIK"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "PASSION"
msgstr "Leidenschaft"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "Technik" msgstr "LEIDENSCHAFT"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up" msgid "Sign up"
msgstr "Registrierung" msgstr "Registrierung"
@@ -296,16 +316,16 @@ msgstr "Einloggen"
msgid "Sign out" msgid "Sign out"
msgstr "Ausloggen" msgstr "Ausloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:23
msgid "Log in to Repository" msgid "Log in to Repository"
msgstr "Anmelden" msgstr "Anmelden"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#, python-format #, python-format
msgid " Log in with %(type)s" msgid " Log in with %(type)s"
msgstr "Einloggen mit" msgstr "Einloggen mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or" msgid "Or"
msgstr "Oder" msgstr "Oder"
@@ -314,12 +334,12 @@ msgstr "Oder"
msgid "Log In" msgid "Log In"
msgstr "Einloggen" msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "Neu im %(sitename)s?" msgstr "Neu im %(sitename)s?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Passwort vergessen" msgstr "Passwort vergessen"
@@ -373,3 +393,31 @@ msgstr "RDM DOI Abzeichen"
msgid "DOI" msgid "DOI"
msgstr "DOI" msgstr "DOI"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:35
#, python-format
msgid ""
"\n"
" There is a %(link_start)snewer version%(link_end)s of the "
"record available.\n"
" "
msgstr ""
"Es ist eine %(link_start)sneuere Version%(link_end)s des Eintrags "
"verfügbar."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:64
msgid "Open Access"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/doi.html:37
msgid "No minted DOI"
msgstr ""
#~ msgid "Version"
#~ msgstr "Version"
#~ msgid ""
#~ "\n"
#~ " Uploaded on %(date)s\n"
#~ " "
#~ msgstr "Hochgeladen am %(date)s\n"

View File

@@ -7,9 +7,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.3.1\n" "Project-Id-Version: invenio-theme-tugraz 2.0.5\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2021-01-04 14:18+0100\n" "POT-Creation-Date: 2021-04-08 08:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,21 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50 #: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:63
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:53 #: invenio_theme_tugraz/config.py:66
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository" msgid "Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:76 #: invenio_theme_tugraz/config.py:91
msgid "German" msgid "German"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:26
msgid "Invenio" msgid "Invenio"
msgstr "" msgstr ""
@@ -102,103 +102,123 @@ msgstr ""
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
msgid "Documentation"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:39
msgid "Handbook"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:44
msgid "Impressum" msgid "Impressum"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:48
msgid "Data protection" msgid "Data protection"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
msgid "Feedback" msgid "Feedback"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
msgid "Features" msgid "Features"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:63
msgid "Scalability" msgid "Scalability"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:65
msgid "Institutional integration" msgid "Institutional integration"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:67
msgid "Next Generation Repository" msgid "Next Generation Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:70
msgid "Repository Profiles" msgid "Repository Profiles"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "Resilient" msgid "Resilient"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79
msgid "Connected Services" msgid "Connected Services"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:83
msgid "PURE" msgid "PURE"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "CampusOnline" msgid "CampusOnline"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:89
msgid "Research Data Management" msgid "Research Data Management"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:96
msgid "Accessibility" msgid "Accessibility"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:97
msgid "Tipp:" msgid "Tipp:"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:97
msgid "Use Ctrl + and Crtl -" msgid "Use Ctrl + and Crtl -"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:97
msgid "to change the font size." msgid "to change the font size."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:11
msgid "Test Instance"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:62
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:12
msgid "This is the test instance of the TU Graz Repository."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:39
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:52
msgid "Uploads" msgid "Uploads"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:27
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:43
msgid "Recent uploads" msgid "Recent uploads"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:47
msgid "There are no public records to show."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:33
msgid "Publication date" msgid "Publication date"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:66
msgid "Version" #: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:38
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
msgid "Resource type" msgid "Resource type"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:99
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
@@ -206,72 +226,72 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:126
msgid "More" msgid "More"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "Need help?" msgid "Need help?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:140
msgid "Contact us" msgid "Contact us"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
msgid "prioritizes all Recent uploads." msgid "prioritizes all Recent uploads."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:148
msgid "We can help with:" msgid "We can help with:"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc." msgid "Uploading your research data, software, preprints, etc."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with" msgid "One-on-one with"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters." msgid "supporters."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy." msgid "Quota increases beyond our default policy."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets." msgid "Scripts for automated uploading of larger datasets."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:161
msgid "Why use" msgid "Why use"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:66
msgid "REPOSITORY" msgid "REPOSITORY"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:68
msgid "LIBRARY & ARCHIVES" msgid "LIBRARY & ARCHIVES"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
msgid "SCIENCE" msgid "SCIENCE"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "PASSION" msgid "PASSION"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up" msgid "Sign up"
msgstr "" msgstr ""
@@ -284,16 +304,16 @@ msgstr ""
msgid "Sign out" msgid "Sign out"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:23
msgid "Log in to Repository" msgid "Log in to Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#, python-format #, python-format
msgid " Log in with %(type)s" msgid " Log in with %(type)s"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or" msgid "Or"
msgstr "" msgstr ""
@@ -302,12 +322,12 @@ msgstr ""
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
msgid "Forgot password?" msgid "Forgot password?"
msgstr "" msgstr ""
@@ -357,3 +377,20 @@ msgstr ""
msgid "DOI" msgid "DOI"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:35
#, python-format
msgid ""
"\n"
" There is a %(link_start)snewer version%(link_end)s of the "
"record available.\n"
" "
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:64
msgid "Open Access"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/doi.html:37
msgid "No minted DOI"
msgstr ""

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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
@@ -12,4 +12,4 @@ This file is imported by ``invenio_theme_tugraz.__init__``,
and parsed by ``setup.py``. and parsed by ``setup.py``.
""" """
__version__ = "1.3.1" __version__ = "2.0.7"

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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
@@ -8,40 +8,177 @@
"""invenio module for TUGRAZ theme.""" """invenio module for TUGRAZ theme."""
import binascii
from os import environ
from typing import Dict from typing import Dict
import requests
from elasticsearch_dsl.utils import AttrDict from elasticsearch_dsl.utils import AttrDict
from flask import Blueprint, render_template from flask import Blueprint, current_app, g, render_template, request
from flask_login import login_required
from flask_menu import current_menu
from invenio_app_rdm.records_ui.views.decorators import (
pass_draft,
pass_record,
pass_record_files,
service,
)
from invenio_app_rdm.records_ui.views.deposits import (
get_form_config,
get_search_url,
new_record,
)
from invenio_rdm_records.proxies import current_rdm_records
from invenio_rdm_records.resources.config import RDMDraftFilesResourceConfig
from invenio_rdm_records.resources.serializers import UIJSONSerializer
from invenio_rdm_records.services import RDMDraftFilesService
from .search import FrontpageRecordsSearch from .search import FrontpageRecordsSearch
blueprint = Blueprint(
def ui_blueprint(app):
"""Blueprint for the routes and resources provided by Invenio-theme-tugraz."""
routes = app.config.get("TUG_ROUTES")
blueprint = Blueprint(
"invenio_theme_tugraz", "invenio_theme_tugraz",
__name__, __name__,
template_folder="templates", template_folder="templates",
static_folder="static", static_folder="static",
)
@blueprint.route("/")
def index():
"""Render frontpage view."""
return render_template(
"invenio_theme_tugraz/index.html",
records=FrontpageRecordsSearch()[:5].sort("-created").execute(),
) )
blueprint.add_url_rule(routes["index"], view_func=index)
blueprint.add_url_rule(routes["comingsoon"], view_func=comingsoon)
blueprint.add_url_rule(routes["deposit_create"], view_func=deposit_create)
blueprint.add_url_rule(routes["record_detail"], view_func=record_detail)
blueprint.add_url_rule(routes["getdoi"], view_func=retrieve_doi, methods=["POST"])
@blueprint.app_template_filter("make_dict_like") @blueprint.app_template_filter("make_dict_like")
def make_dict_like(value: str, key: str) -> Dict[str, str]: def make_dict_like(value: str, key: str) -> Dict[str, str]:
"""Convert the value to a dict like structure. """Convert the value to a dict like structure.
in the form of a key -> value pair. in the form of a key -> value pair.
""" """
return {key: value} return {key: value}
@blueprint.app_template_filter("cast_to_dict")
@blueprint.app_template_filter("cast_to_dict") def cast_to_dict(attr_dict):
def cast_to_dict(attr_dict):
"""Return the dict structure of AttrDict variable.""" """Return the dict structure of AttrDict variable."""
return AttrDict.to_dict(attr_dict) return AttrDict.to_dict(attr_dict)
return blueprint
def index():
"""Frontpage."""
return render_template(
"invenio_theme_tugraz/index.html",
records=FrontpageRecordsSearch()[:5].sort("-created").execute(),
)
def comingsoon():
"""Comingsoon."""
return render_template("invenio_theme_tugraz/comingsoon.html")
def get_datacite_details():
"""Application credentials for DOI."""
prefix = environ.get("INVENIO_DATACITE_PREFIX")
suffix = environ.get("INVENIO_DATACITE_SUFFIX")
host_url = environ.get("INVENIO_SITE_HOSTNAME")
details = {
"datacite_prefix": prefix,
"datacite_suffix": suffix,
"datacite_host_url": host_url,
}
return details
@login_required
def retrieve_doi():
"""Retrieve DOI from datacite API."""
doi_metadata = request.get_json()
url = environ.get("INVENIO_DATACITE_URL")
username = environ.get("INVENIO_DATACITE_UNAME")
password = environ.get("INVENIO_DATACITE_PASS")
doi_response = requests.post(
url,
auth=(username, password.encode('utf-8')),
json=doi_metadata,
)
response_data = {"code": doi_response.status_code}
try:
doi_response.raise_for_status()
response_data["data"] = doi_response.json()
except requests.exceptions.RequestException:
response_data["errors"] = doi_response.json()["errors"]
return response_data, response_data["code"]
#
# TODO: change this override behaviour once
# PR is merged:
# https://github.com/inveniosoftware/invenio-app-rdm/pull/638
#
@login_required
def deposit_create():
"""Create a new deposit."""
forms_config = get_form_config(createUrl=("/api/records"))
forms_config["data_cite"] = get_datacite_details()
return render_template(
"invenio_theme_tugraz/deposit/deposit.html",
forms_config=forms_config,
searchbar_config=dict(searchUrl=get_search_url()),
record=new_record(),
files=dict(default_preview=None, enabled=True, entries=[], links={}),
)
@login_required
@pass_draft
def deposit_edit(draft=None, pid_value=None):
"""Edit an existing deposit."""
files_list = current_rdm_records.draft_files_service.list_files(
id_=pid_value,
identity=g.identity,
links_config=RDMDraftFilesResourceConfig.links_config,
)
serializer = UIJSONSerializer()
record = serializer.serialize_object_to_dict(draft.to_dict())
forms_config = get_form_config(apiUrl=f"/api/records/{pid_value}/draft")
forms_config["data_cite"] = get_datacite_details()
return render_template(
"invenio_theme_tugraz/deposit/deposit.html",
forms_config=forms_config,
record=record,
files=files_list.to_dict(),
searchbar_config=dict(searchUrl=get_search_url()),
permissions=draft.has_permissions_to(['new_version'])
)
@pass_record
@pass_record_files
def record_detail(record=None, files=None, pid_value=None):
"""Record detail page (aka landing page)."""
files_dict = None if files is None else files.to_dict()
return render_template(
"invenio_theme_tugraz/landingpage/detail.html",
record=UIJSONSerializer().serialize_object_to_dict(record.to_dict()),
pid=pid_value,
files=files_dict,
permissions=record.has_permissions_to(['edit', 'new_version']),
)

View File

@@ -17,8 +17,32 @@ theme = WebpackThemeBundle(
entry={ entry={
"invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less", "invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less",
"invenio-theme-tugraz-js": "./js/invenio_theme_tugraz/theme.js", "invenio-theme-tugraz-js": "./js/invenio_theme_tugraz/theme.js",
"invenio-theme-tugraz-search-app": "./js/invenio_theme_tugraz/search/index.js",
# overrides RDM deposit form
'invenio-theme-tugraz-rdm-deposit': './js/invenio_theme_tugraz/deposit/index.js',
},
dependencies={
# required for RDM deposit form
# keep in sync
"@babel/runtime": "^7.9.0",
'formik': '^2.1.4',
'luxon': '^1.23.0',
'path': '^0.12.7',
'prop-types': '^15.7.2',
'react-dnd': '^11.1.3',
'react-dnd-html5-backend': '^11.1.3',
'react-invenio-deposit': '^0.12.0',
'react-invenio-forms': '^0.6.3',
'react-dropzone': "^11.0.3",
'yup': '^0.27.0',
'@ckeditor/ckeditor5-build-classic': '^16.0.0',
'@ckeditor/ckeditor5-react': '^2.1.0',
# datacite - rest api plugin
'datacite-rest': '^0.1.8',
}, },
dependencies={},
) )
}, },
) )

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -3,7 +3,7 @@
# #
# Copyright (C) 2019-2020 CERN. # Copyright (C) 2019-2020 CERN.
# Copyright (C) 2019-2020 Northwestern University. # Copyright (C) 2019-2020 Northwestern University.
# Copyright (C) 2020 Graz University of Technology. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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
@@ -17,28 +17,33 @@ history = open("CHANGES.rst").read()
tests_require = [ tests_require = [
"pytest-invenio>=1.4.0", "pytest-invenio>=1.4.0",
'invenio-app>=1.3.0,<2.0.0', "invenio-app>=1.3.0,<2.0.0",
"psycopg2-binary>=2.8.6",
] ]
# Should follow invenio-app-rdm
invenio_search_version = ">=1.4.0,<1.5.0"
invenio_db_version = ">=1.0.9,<1.1.0"
extras_require = { extras_require = {
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
"mysql": [f"invenio-db[mysql,versioning]{invenio_db_version}"],
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
"docs": [ "docs": [
"Sphinx>=3", "Sphinx>=3",
], ],
"mysql": [
"invenio-db[mysql]>=1.0.0",
],
"postgresql": [
"invenio-db[postgresql]>=1.0.0",
],
"sqlite": [
"invenio-db>=1.0.0",
],
"tests": tests_require, "tests": tests_require,
} }
extras_require["all"] = [] extras_require["all"] = []
for reqs in extras_require.values(): for name, reqs in extras_require.items():
if name[0] == ":" or name in (
"elasticsearch7",
"mysql",
"postgresql",
"sqlite",
):
continue
extras_require["all"].extend(reqs) extras_require["all"].extend(reqs)
setup_requires = [ setup_requires = [
@@ -52,7 +57,10 @@ install_requires = [
"invenio-assets>=1.2.0", "invenio-assets>=1.2.0",
"invenio-i18n>=1.2.0", "invenio-i18n>=1.2.0",
"elasticsearch_dsl>=7.2.1", "elasticsearch_dsl>=7.2.1",
"invenio_search>=1.3.1", "invenio_search>=1.4.0,<2.0.0",
"invenio_config_tugraz>=0.5.1",
# keep this package updated.
"invenio_app_rdm==2.0.1",
] ]
packages = find_packages() packages = find_packages()
@@ -83,7 +91,7 @@ setup(
"invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz", "invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz",
], ],
"invenio_base.blueprints": [ "invenio_base.blueprints": [
"invenio_theme_tugraz = invenio_theme_tugraz.views:blueprint", "invenio_theme_tugraz = invenio_theme_tugraz.views:ui_blueprint",
], ],
"invenio_i18n.translations": [ "invenio_i18n.translations": [
"messages = invenio_theme_tugraz", "messages = invenio_theme_tugraz",

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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

View File

@@ -1,33 +1,33 @@
# -*- coding: utf-8 -*- # # -*- coding: utf-8 -*-
# # #
# Copyright (C) 2020 mojib wali. # # Copyright (C) 2020-2021 Graz University of Technology.
# # #
# invenio-theme-tugraz is free software; you can redistribute it and/or # # invenio-theme-tugraz is free software; you can redistribute it and/or
# 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.
"""Test views.""" # """Test views."""
from elasticsearch_dsl.utils import AttrDict # from elasticsearch_dsl.utils import AttrDict
from invenio_theme_tugraz.views import cast_to_dict, make_dict_like # from invenio_theme_tugraz.views import cast_to_dict, make_dict_like
def test_make_dict_like(): # def test_make_dict_like():
"""Test make_dict_like.""" # """Test make_dict_like."""
access = { # access = {
"access_right" : "open" # "access_right" : "open"
} # }
dicts = make_dict_like("open", "access_right") # dicts = make_dict_like("open", "access_right")
assert access == dicts # assert access == dicts
def test_cast_to_dict(): # def test_cast_to_dict():
"""Test cast_to_dict.""" # """Test cast_to_dict."""
resource_type = { # resource_type = {
"subtype" : "publication-datamanagementplan", # "subtype" : "publication-datamanagementplan",
"type" : "publication" # "type" : "publication"
} # }
expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'} # expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'}
attr = cast_to_dict(AttrDict(resource_type)) # attr = cast_to_dict(AttrDict(resource_type))
assert expected == attr # assert expected == attr