Compare commits

...

37 Commits

Author SHA1 Message Date
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
Mojib Wali
b09c491e9c bugfix: sigup page 2021-01-12 12:58:56 +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
Mojib Wali
858f02ba19 bugfix: search for published records. (#139)
This closes #126
2021-01-08 13:05:25 +01:00
Mojib Wali
a4a4d13322 refactor: coming_soon url change 2021-01-08 13:05:01 +01:00
Christoph Ladurner
02d171009e Merge pull request #133 from utnapischtim/feature/various-ui-bugfixes
Feature/various UI bugfixes
2021-01-07 21:39:50 +01:00
Mojib Wali
a6681cbe4b feature(ui): refactor submenu
* get rid of Communities link
* adding translation to Uploads

This closes #131
2021-01-05 09:46:25 +01:00
Mojib Wali
4e613637f9 refactor: translations
* bugfix: adding missing (date) var.

* refactor(translations): re-translat of some texts.

* modification(translate): changed the translation text
2020-12-30 10:42:43 +01:00
Christoph Ladurner
4af121bda3 feature(ui): add subjects to frontpage article items 2020-12-29 15:56:08 +01:00
Christoph Ladurner
feba2ff440 bugfix(ui): adapt badges on frontpage to look the same as on search page
resource type color was different. publication date badge and version badge were
moved together into one badge.
2020-12-29 15:56:03 +01:00
Christoph Ladurner
5eb9c40081 bugfix(ui): display access right on frontpage the same way as in search page 2020-12-29 15:55:57 +01:00
Christoph Ladurner
22aed7444a bugfix(ui): center More button
the More button was slightly floated to the left side of the column. This looked
weird. Now it is in the center of the column.
2020-12-29 15:55:51 +01:00
Mojib Wali
0a0ae05331 global(module): refactor tests and ci
modified run-test.sh to newer invenio-pytest commands- which will now also run the tests written /test directory.
* removed docker-service-cli version restriction
* bump Sphinx version
*added missing imports (tests)
2020-12-21 15:28:06 +01:00
Mojib Wali
4ce5bc6043 v1.3.1 2020-12-15 15:23:47 +01:00
Mojib Wali
5e5464969b bugfix: adding flash messages for accounts template. (#124) 2020-12-15 15:23:00 +01:00
Mojib Wali
2e5f27a590 v1.3.0 2020-12-14 10:46:22 +01:00
Mojib Wali
42259b4cb5 feature: adding translation. 2020-12-14 10:45:01 +01:00
Mojib Wali
924dde4fa7 v1.2.0 2020-12-10 12:54:15 +01:00
Mojib Wali
204f7b81c3 test: adding tests
* test: removed no cover
* tests: adding tests for functions.
   * test_make_dict_like
   * test_cast_to_dict
2020-12-10 12:25:52 +01:00
Mojib Wali
10881c5627 refactor/accounts (#120)
* style(ui): adding divider for login with.

* login_user.html
* register_user.html

* style(ui): 'login with' hyperlink same style as button.

style(css): adding semantic ui css class.

* build: restricting the version for docker-services-cli

the new release was not stable.
2020-12-10 11:19:35 +01:00
37 changed files with 1070 additions and 312 deletions

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

@@ -8,4 +8,3 @@
$navbar_background_image: unset; $navbar_background_image: unset;
$navbar_background_color: #ffffff; $navbar_background_color: #ffffff;

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

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

@@ -7,7 +7,7 @@
*/ */
#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 +22,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;
} }
} }
} }

View File

@@ -22,12 +22,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;
} }

View File

@@ -10,7 +10,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 +18,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;
@@ -78,12 +78,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 +104,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 +126,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 +137,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 +150,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 +181,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 +191,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 +200,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;

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

@@ -14,5 +14,5 @@
} }
.text-muted { .text-muted {
color: #777; color: @greyDark;
} }

View File

@@ -12,7 +12,7 @@
* to #ffffff * to #ffffff
***/ ***/
.section-content-light-bg { .section-content-light-bg {
background-color: #ffffff; background-color: @primaryBackground;
} }
/*** /***
@@ -21,7 +21,7 @@
* to #000000 * to #000000
***/ ***/
.section-title { .section-title {
color: #000000; color: @primaryText;
} }
@@ -32,7 +32,7 @@
***/ ***/
.cover-page { .cover-page {
//text-align: center; //text-align: center;
background-color: #ffffff; background-color: @primaryBackground;
} }
@@ -42,7 +42,7 @@
* To #000000 * To #000000
***/ ***/
.panel-free-title { .panel-free-title {
color: #000000; color: @primaryText;
} }
@@ -75,16 +75,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 +123,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,17 @@
* 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 { .title .dropdown {
color: #e9711c; display: none;
float: right; }
.top-bottom-padded {
margin: unset;
}
.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

@@ -12,6 +12,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)

View File

@@ -12,6 +12,56 @@
***/ ***/
//@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);

View File

@@ -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."""
@@ -91,6 +92,35 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
# Uncomment below to override records landingpage. # Uncomment below to override records landingpage.
# from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS # from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS
# RECORDS_UI_ENDPOINTS["recid"].update( # RECORDS_UI_ENDPOINTS["recid"].update(
# 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",
}
# Invenio-app-rdm
# =============
# See https://invenio-app-rdm.readthedocs.io/en/latest/configuration.html
# """override the default search page"""
# Keep this in sync
APP_RDM_ROUTES = {
"index": "/notvalid/notvalid/notvalid",
"help_search": "/help/search",
"record_search": "/search2",
"record_detail": "/records/<pid_value>",
"record_export": "/records/<pid_value>/export/<export_format>",
"record_file_preview": "/records/<pid_value>/preview/<path:filename>",
"record_file_download": "/records/<pid_value>/files/<path:filename>",
"deposit_search": "/uploads",
"deposit_create": "/uploads/new",
"deposit_edit": "/uploads/<pid_value>",
}

View File

@@ -21,5 +21,5 @@ class FrontpageRecordsSearch(RecordsSearch):
class Meta: class Meta:
"""Default index and filter for frontpage search.""" """Default index and filter for frontpage search."""
index = "rdmrecords" index = "rdmrecords-records"
default_filter = Q("query_string", query=("access.access_right:open")) default_filter = Q("query_string", query=("access.record:public"))

View File

@@ -67,6 +67,12 @@
{%- block navbar_header %} {%- block navbar_header %}
{%- include "invenio_theme_tugraz/navbar.html" %} {%- include "invenio_theme_tugraz/navbar.html" %}
<!--Flask messages for accounts-->
{%- block flashmessages %}
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
{%- endblock %}
{%- endblock navbar_header %} {%- endblock navbar_header %}
{# {#

View File

@@ -26,7 +26,8 @@
<!--Log in with SSO--> <!--Log in with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %} {%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="login-page-button"> <div class="ui divider"></div>
<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" />

View File

@@ -17,7 +17,7 @@
<div class="ui container"> <div class="ui container">
<div class="ui two column stackable centered grid switch-grid"> <div class="ui stackable two column grid">
<div class="centered row"> <div class="centered row">
<h1 class="ui header">{{ _('Create an Account') }}</h1> <h1 class="ui header">{{ _('Create an Account') }}</h1>
</div> </div>
@@ -45,7 +45,8 @@
<!--Sigup with SSO--> <!--Sigup with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %} {%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="login-page-button"> <div class="ui divider"></div>
<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">
<span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span> <span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span>
<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" />

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

@@ -30,15 +30,15 @@
<h2>{{_ ("Repository")}}</h2> <h2>{{_ ("Repository")}}</h2>
<p class="bodytext"> <p class="bodytext">
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}"> <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_rdm_records.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_rdm_records.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>

View File

@@ -36,11 +36,17 @@
</span> </span>
</a> </a>
</div> </div>
{%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %} <!--TODO: uncomment this once translation is on place-->
<!-- {%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %}
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a href="{{ item.url }}">{{ item.text|safe }}</a> <a href="{{ item.url }}">{{ item.text|safe }}</a>
</div> </div>
{%- endfor %} {%- endfor %} -->
<!--TODO: remove this once above is uncommented-->
<div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_app_rdm_records.deposit_search')}}">{{_ ("Uploads")}}</a>
</div>
</div> </div>
<div id="margin-divider" class="ui divider main-menu-underline-line"> <div id="margin-divider" class="ui divider main-menu-underline-line">

View File

@@ -41,25 +41,20 @@
{%- 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:
something with doi something with doi
--> -->
<div class="badges"> <div class="badges">
<!--Publication date badge--> <!--Publication date/Version badge-->
<span class="ui label teal" title="{{_('Publication date')}}"> <span class="ui label record-version" title="{{_('Publication date')}}">
{{ r.metadata.publication_date }} {{ r.metadata.publication_date }} {{ '(' ~ r.metadata.version ~ ')' if r.metadata.version }}
</span>
<!--Version badge-->
<span class="ui label record-version" title="{{_('Version')}}">
{{ (' Version ' ~ r.version ~ '') if r.version else 'Version' }}
</span> </span>
<!--Resource type badge--> <!--Resource type badge-->
<span class="ui label grey" title="{{_('Resource type')}}"> <span class="ui label teal" title="{{_('Resource type')}}">
{{r.metadata.resource_type | cast_to_dict | vocabulary_title('resource_type') }} {{r.metadata.resource_type | cast_to_dict | vocabulary_title('resource_type') }}
</span> </span>
@@ -87,18 +82,29 @@
<div class="ui grid"> <div class="ui grid">
<div class="two column row"> <div class="two column row">
<div class="left floated column"> <div class="left floated column">
<small> {%- for s in r.metadata.subjects %}
{% trans user=userprofile, date=creation_date | dateformat('long')%} <div class="ui tiny label">{{s.subject}}</div>
Uploaded on {{date}} {%- endfor %}
{% endtrans %} <div>
</small> <small>
{% trans user=userprofile, date=creation_date | dateformat('long')%}
Uploaded on {{date}}
{% endtrans %}
</small>
</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">
{{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') | lower }} <i class="icon lock open"></i>
{{ 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>
@@ -106,7 +112,7 @@
--> -->
{%- endfor %} {%- endfor %}
<div class="ui two column 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>
</div> </div>

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

@@ -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: 2020-10-06 14:28+0200\n" "POT-Creation-Date: 2021-01-04 14:18+0100\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"
@@ -17,19 +17,18 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:52 #: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "" msgstr "TU Graz Repository"
#: invenio_theme_tugraz/config.py:55 #: invenio_theme_tugraz/config.py:53
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
msgid "Repository" msgid "Repository"
msgstr "Repository" msgstr "Repository"
#: invenio_theme_tugraz/config.py:80 #: invenio_theme_tugraz/config.py:76
msgid "German" msgid "German"
msgstr "Deutsche" msgstr "Deutsche"
@@ -52,63 +51,71 @@ msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "Trusted" msgid "Trusted"
msgstr "" msgstr "Vertrauenswürdig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "" 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 "
"Zugang zu Open Science hat"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "Citeable" msgid "Citeable"
msgstr "" msgstr "Zitierfähig "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "" 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 "
"auffindbar ist"
#: 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"
msgstr "" msgstr "Keine Wartezeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid "" msgid ""
"Uploads are made available online as soon as you hit publish, and your " "Uploads are made available online as soon as you hit publish, and your "
"DOI is registered within seconds." "DOI is registered within seconds."
msgstr "" msgstr ""
"Uploads stehen sofort nach drücken auf “Veröffentlichen” zur Verfügung. "
"Ihre DOI wird innerhalb von Sekunden registriert."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid "Open or closed" msgid "Open or closed"
msgstr "" msgstr "Offen oder geschlossen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid "" msgid ""
"Share e.g. anonymized clinical trial data with only medical professionals" "Share e.g. anonymized clinical trial data with only medical professionals"
" via our restricted access mode." " via our restricted access mode."
msgstr "" msgstr ""
"Teilen Sie z.B. anonymisierte klinische Studiendaten nur mit "
"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"
msgstr "" 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 "" msgstr "Einfaches Updaten ihrer Datensätze mit unserere 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"
msgstr "" msgstr "Nutzungsstatistiken"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "" 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:34
msgid "Impressum" msgid "Impressum"
msgstr "" msgstr "Imprint"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38
msgid "Data protection" msgid "Data protection"
@@ -116,43 +123,43 @@ msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42
msgid "Feedback" msgid "Feedback"
msgstr "" msgstr "Feedback"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51
msgid "Features" msgid "Features"
msgstr "" msgstr "Features"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53
msgid "Scalability" msgid "Scalability"
msgstr "" msgstr "Skalierbarkeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55
msgid "Institutional integration" msgid "Institutional integration"
msgstr "" msgstr "Institutionelle Einbindung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57
msgid "Next Generation Repository" msgid "Next Generation Repository"
msgstr "" 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:60
msgid "Repository Profiles" msgid "Repository Profiles"
msgstr "" msgstr "Repositorienprofile"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62
msgid "Resilient" msgid "Resilient"
msgstr "" msgstr "Resilient, widerstandsfähig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69
msgid "Connected Services" msgid "Connected Services"
msgstr "" msgstr "Verbundene Services "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73
msgid "PURE" msgid "PURE"
msgstr "" msgstr "PURE"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76
msgid "CampusOnline" msgid "CampusOnline"
msgstr "" msgstr "CampusOnline"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79
msgid "Research Data Management" msgid "Research Data Management"
@@ -160,7 +167,7 @@ msgstr "Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Accessibility" msgid "Accessibility"
msgstr "" msgstr "Barrierefreiheit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "Tipp:" msgid "Tipp:"
@@ -168,15 +175,19 @@ msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "Use Ctrl + and Crtl -" msgid "Use Ctrl + and Crtl -"
msgstr "" 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:87
msgid "to change the font size." msgid "to change the font size."
msgstr "" msgstr "Um die Schriftgröße zu ändern."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35
msgid "Home" msgid "Home"
msgstr "" msgstr "Startseite"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48
msgid "Uploads"
msgstr "Hochladen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24
msgid "Type and press enter to search" msgid "Type and press enter to search"
@@ -184,19 +195,19 @@ 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:40
msgid "Recent uploads" msgid "Recent uploads"
msgstr "" msgstr "Kürzlich hochgeladene Dateien"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52
msgid "Publication date" msgid "Publication date"
msgstr "" msgstr "Datum der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57
msgid "Version" msgid "Version"
msgstr "" msgstr "Version"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
msgid "Resource type" msgid "Resource type"
msgstr "" msgstr "Art der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91
#, python-format #, python-format
@@ -204,157 +215,161 @@ msgid ""
"\n" "\n"
" Uploaded on %(date)s\n" " Uploaded on %(date)s\n"
" " " "
msgstr "" 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:110
msgid "More" msgid "More"
msgstr "" msgstr "Mehr"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119
msgid "Need help?" msgid "Need help?"
msgstr "" msgstr "Brauchen Sie Hilfe?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123
msgid "Contact us" msgid "Contact us"
msgstr "" msgstr "Kontaktiere uns"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127
msgid "prioritizes all Recent uploads." msgid "prioritizes all Recent uploads."
msgstr "" 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:130
msgid "We can help with:" msgid "We can help with:"
msgstr "" msgstr "Wir können helfen bei:"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135
msgid "Uploading your research data, software, preprints, etc." msgid "Uploading your research data, software, preprints, etc."
msgstr "" 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:136
msgid "One-on-one with" msgid "One-on-one with"
msgstr "" msgstr "Eins-zu-eins mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "supporters." msgid "supporters."
msgstr "" msgstr "Unterstützern"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137
msgid "Quota increases beyond our default policy." msgid "Quota increases beyond our default policy."
msgstr "" msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138
msgid "Scripts for automated uploading of larger datasets." msgid "Scripts for automated uploading of larger datasets."
msgstr "" 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:143
msgid "Why use" msgid "Why use"
msgstr "" msgstr "Warum"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:77 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
#, fuzzy
msgid "REPOSITORY"
msgstr "Repository"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69
msgid "LIBRARY & ARCHIVES"
msgstr "Bibliothek und Archiv"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "SCIENCE" msgid "SCIENCE"
msgstr "Wissenschaft" msgstr "Wissenschaft"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "PASSION" msgid "PASSION"
msgstr "Leidenschaft" msgstr "Leidenschaft"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "Technik" msgstr "Technik"
#: 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:59 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:80 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign Up" msgid "Sign up"
msgstr "" msgstr "Registrierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
msgid "Log in" msgid "Log in"
msgstr "Einloggen" msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
msgid "Logout" 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:24
msgid "Log in to Repository" msgid "Log in to Repository"
msgstr "" msgstr "Anmelden"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32
#, python-format #, python-format
msgid " Login with %(type)s" msgid " Log in with %(type)s"
msgstr "" msgstr "Einloggen mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:54 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or" msgid "Or"
msgstr "Oder" msgstr "Oder"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:46 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
msgid "Log In" msgid "Log In"
msgstr "Einloggen" msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:58 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "" msgstr "Neu im %(sitename)s?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:68 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69
msgid "Forgot password?" msgid "Forgot password?"
msgstr "" msgstr "Passwort vergessen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22
msgid "Create an Account" msgid "Create an Account"
msgstr "" msgstr "Einen Account erstellen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27
msgid "Citeable. Discoverable." msgid "Citeable. Discoverable."
msgstr "" msgstr "Zitierfähig. Auffindbar."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29
msgid "" msgid ""
"Uploads get a Digital Object Identifier (DOI) to make them easily and " "Uploads get a Digital Object Identifier (DOI) to make them easily and "
"uniquely citeable." "uniquely citeable."
msgstr "" msgstr ""
"Uploads erhalten eine DOI und werden damit leichtauffindbar und "
"zitierfähig."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30
msgid "Communities." msgid "Communities."
msgstr "" msgstr "Communities"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32
msgid "" msgid ""
"Accept or reject uploads to your own community (e.g workshops, EU " "Accept or reject uploads to your own community (e.g workshops, EU "
"projects, institutions or entire disciplines)." "projects, institutions or entire disciplines)."
msgstr "" msgstr ""
"Annehmen oder Ablehnen von Uploads in Ihrer eigenen Community (z.B. "
"workshop, EU-Projekt, Forschungseinrichtung, Disziplin)"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:34
msgid "Trusted Research Data Management" msgid "Trusted Research Data Management"
msgstr "" msgstr "Vertrauenswürdiges Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36
msgid "" msgid ""
"Built on top of TU Graz expertise in managing of the research data from " "Built on top of TU Graz expertise in managing of the research data from "
"the Graz University of Technology." "the Graz University of Technology."
msgstr "" msgstr "Gebaut basierend auf Expertise derTU Graz im Bereich Data Management"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:50 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
msgid "Sign up with TUGRAZ " msgid "Sign up with TUGRAZ "
msgstr "" msgstr "Mit Ihrem TUGonline-Account einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28
msgid "RDM DOI Badge" msgid "RDM DOI Badge"
msgstr "" msgstr "RDM DOI Abzeichen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32
msgid "DOI" msgid "DOI"
msgstr "" msgstr "DOI"
#~ msgid ""
#~ "your research is stored safely for "
#~ "the future in CERNs Data Centre "
#~ "for as long as CERN exists."
#~ msgstr ""
#~ msgid "One-on-one with {{config.THEME_SITENAME}} supporters."
#~ msgstr ""

View File

@@ -1,34 +1,33 @@
# Translations template for invenio-theme-tugraz. # Translations template for invenio-theme-tugraz.
# Copyright (C) 2020 mojib wali # Copyright (C) 2021 mojib wali
# This file is distributed under the same license as the # This file is distributed under the same license as the
# invenio-theme-tugraz project. # invenio-theme-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.4\n" "Project-Id-Version: invenio-theme-tugraz 1.3.1\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-10-06 14:28+0200\n" "POT-Creation-Date: 2021-01-04 14:18+0100\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"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:52 #: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:55 #: invenio_theme_tugraz/config.py:53
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
msgid "Repository" msgid "Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:80 #: invenio_theme_tugraz/config.py:76
msgid "German" msgid "German"
msgstr "" msgstr ""
@@ -171,10 +170,14 @@ msgstr ""
msgid "to change the font size." msgid "to change the font size."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48
msgid "Uploads"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "" msgstr ""
@@ -247,22 +250,30 @@ msgstr ""
msgid "Why use" msgid "Why use"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:77 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
msgid "SCIENCE" msgid "REPOSITORY"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69
msgid "PASSION" msgid "LIBRARY & ARCHIVES"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "SCIENCE"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "PASSION"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
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:59 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:80 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign Up" msgid "Sign up"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
@@ -270,33 +281,33 @@ msgid "Log in"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
msgid "Logout" 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:24
msgid "Log in to Repository" msgid "Log in to Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:31 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32
#, python-format #, python-format
msgid " Login with %(type)s" msgid " Log in with %(type)s"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:54 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or" msgid "Or"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:46 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:58 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59
#, 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:68 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69
msgid "Forgot password?" msgid "Forgot password?"
msgstr "" msgstr ""
@@ -334,7 +345,7 @@ msgid ""
"the Graz University of Technology." "the Graz University of Technology."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:50 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
msgid "Sign up with TUGRAZ " msgid "Sign up with TUGRAZ "
msgstr "" msgstr ""

View File

@@ -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.1.0" __version__ = "1.7.0"

View File

@@ -12,36 +12,48 @@ from typing import Dict
from elasticsearch_dsl.utils import AttrDict from elasticsearch_dsl.utils import AttrDict
from flask import Blueprint, render_template from flask import Blueprint, render_template
from flask_menu import current_menu
from .search import FrontpageRecordsSearch from .search import FrontpageRecordsSearch
blueprint = Blueprint(
"invenio_theme_tugraz", def ui_blueprint(app):
__name__, """Blueprint for the routes and resources provided by Invenio-theme-tugraz."""
template_folder="templates", routes = app.config.get("TUG_ROUTES")
static_folder="static",
) blueprint = Blueprint(
"invenio_theme_tugraz",
__name__,
template_folder="templates",
static_folder="static",
)
blueprint.add_url_rule(routes["index"], view_func=index)
blueprint.add_url_rule(routes["comingsoon"], view_func=comingsoon)
@blueprint.app_template_filter("make_dict_like")
def make_dict_like(value: str, key: str) -> Dict[str, str]:
"""Convert the value to a dict like structure.
in the form of a key -> value pair.
"""
return {key: value}
@blueprint.app_template_filter("cast_to_dict")
def cast_to_dict(attr_dict):
"""Return the dict structure of AttrDict variable."""
return AttrDict.to_dict(attr_dict)
return blueprint
@blueprint.route("/")
def index(): def index():
"""Render frontpage view.""" """Frontpage."""
return render_template( return render_template(
"invenio_theme_tugraz/index.html", "invenio_theme_tugraz/index.html",
records=FrontpageRecordsSearch()[:5].sort("-created").execute(), records=FrontpageRecordsSearch()[:5].sort("-created").execute())
) # pragma: no cover
@blueprint.app_template_filter("make_dict_like") def comingsoon():
def make_dict_like(value: str, key: str) -> Dict[str, str]: """Frontpage."""
"""Convert the value to a dict like structure. return render_template("invenio_theme_tugraz/comingsoon.html")
in the form of a key -> value pair.
"""
return {key: value} # pragma: no cover
@blueprint.app_template_filter("cast_to_dict")
def cast_to_dict(attr_dict):
"""Return the dict structure of AttrDict variable."""
return AttrDict.to_dict(attr_dict) # pragma: no cover

View File

@@ -17,6 +17,7 @@ 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",
}, },
dependencies={}, dependencies={},
) )

View File

@@ -1,16 +1,33 @@
#!/usr/bin/env sh #!/usr/bin/env bash
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2019-2020 CERN.
# Copyright (C) 2019-2020 Northwestern University.
# Copyright (C) 2020 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.
# Quit on errors
set -o errexit
# Quit on unbound symbols
set -o nounset
# Always bring down docker services
function cleanup() {
eval "$(docker-services-cli down --env)"
}
trap cleanup EXIT
python -m check_manifest --ignore ".*-requirements.txt" python -m check_manifest --ignore ".*-requirements.txt"
python -m sphinx.cmd.build -qnNW docs docs/_build/html python -m sphinx.cmd.build -qnNW docs docs/_build/html
docker-services-cli --verbose up es postgresql redis eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
python -m pytest python -m pytest
tests_exit_code=$? tests_exit_code=$?
docker-services-cli down python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
exit "$tests_exit_code" exit "$tests_exit_code"

View File

@@ -17,26 +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",
] ]
# Should follow inveniosoftware/invenio versions
invenio_search_version = ">=1.4.0,<2.0.0"
invenio_db_version = ">=1.0.5,<2.0.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>=1.5.1", "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 = [
@@ -50,7 +57,9 @@ 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",
# keep this package updated.
"invenio_app_rdm>=0.18.8",
] ]
packages = find_packages() packages = find_packages()
@@ -81,7 +90,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

@@ -22,6 +22,7 @@ from flask_babelex import Babel
from invenio_db import InvenioDB, db from invenio_db import InvenioDB, db
from invenio_i18n import InvenioI18N from invenio_i18n import InvenioI18N
from invenio_search import InvenioSearch from invenio_search import InvenioSearch
from sqlalchemy_utils.functions import create_database, database_exists, drop_database
from invenio_theme_tugraz import InvenioThemeTugraz from invenio_theme_tugraz import InvenioThemeTugraz

22
tests/ui/conftest.py Normal file
View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 mojib wali.
#
# 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.
"""Pytest configuration.
See https://pytest-invenio.readthedocs.io/ for documentation on which test
fixtures are available.
"""
import pytest
from invenio_app.factory import create_ui
@pytest.fixture(scope='module')
def create_app(instance_path):
"""Application factory fixture."""
return create_ui

33
tests/ui/test_views.py Normal file
View File

@@ -0,0 +1,33 @@
# # -*- coding: utf-8 -*-
# #
# # Copyright (C) 2020 mojib wali.
# #
# # 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.
# """Test views."""
# from elasticsearch_dsl.utils import AttrDict
# from invenio_theme_tugraz.views import cast_to_dict, make_dict_like
# def test_make_dict_like():
# """Test make_dict_like."""
# access = {
# "access_right" : "open"
# }
# dicts = make_dict_like("open", "access_right")
# assert access == dicts
# def test_cast_to_dict():
# """Test cast_to_dict."""
# resource_type = {
# "subtype" : "publication-datamanagementplan",
# "type" : "publication"
# }
# expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'}
# attr = cast_to_dict(AttrDict(resource_type))
# assert expected == attr