Compare commits

..

159 Commits

Author SHA1 Message Date
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
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
Mojib Wali
804bd108c5 v1.1.0 2020-12-04 10:21:04 +01:00
Mojib Wali
bbea43d227 Refactor header (#116)
* bugfix(ui): home text & icon collapse in small screen.

* added home text & icon inside span tag.
* inline css with nowrap white-space.

* refactor(ui): adding the text of 'Library & Archives', This closes #110

* bugfix(format): adding new line a the end of the file.

* refactor(ui): changing the text to capital letters, to match the other.

* adding extra css for position/style of the text.

* style(ui): fixed misspelled.

* bugfix(format): adding new line a the end of the file.

* modification(ui): from Logout/SignUp to Sign up

* modification(ui): changing texts to - Log in, Log out and Sign up

removing icons from header.
2020-12-04 10:14:02 +01:00
Mojib Wali
84f963b407 ci(repo): migrate to github actions. (#119)
tests(repo): modified to github actions.
2020-12-03 15:19:45 +01:00
Mojib Wali
e45832be2b v1.0.9
Patch change - October release data model fields updated.
2020-11-13 09:28:32 +01:00
mb
75bb5377c8 migrate(datamodel):changed fields to match the new data model structure.
* Orcid => orcid
* filter contributertype_title deprecated
* records.metadata.title and for additional title there is a new field additional_titles.
* records.metadata.description and for additional description there is a new field additional_descriptions.
This closes #114.
2020-11-12 11:12:55 +01:00
Mojib Wali
e4fc2ff14d v1.0.8 2020-10-21 10:59:42 +02:00
Mojib Wali
b33274a3ea repository transfer
Repository transfer from https://github.com/mb-wali to https://github.com/tu-graz-library.

* updated badges
* readthedocs - URL paths 
* Setup.py repository URL
2020-10-21 10:53:10 +02:00
Mojib Wali
11abd513e9 v1.0.7 2020-10-21 09:48:57 +02:00
Mojib Wali
4e35220e5b Update README.rst
badge for code style black.
2020-10-21 09:43:48 +02:00
mb
9126efbe42 repository logo set to library logo. This closes #109 2020-10-21 09:37:54 +02:00
Mojib Wali
2227e8d204 v1.0.6 2020-10-15 11:43:06 +02:00
Mojib Wali
8cee8ad7ac v1.0.5 2020-10-15 11:37:12 +02:00
Mojib Wali
deb7caad87 migrate:upon the changes to the datamodel.
modified the frontpage to render the latest datamodel schema.
2020-10-15 11:34:55 +02:00
Christoph Ladurner
95f566d48d all python files are now formated with black (#106)
* all python files are now formated with black

NOTE:
some configurations where necessary. flake8 line-length has to be set to 88
which is the default for black. but this was not enough some lines of black
where formated longer then 88 characters. found flake8-bugbear with B950.

with that and in combination with ignore=E501 it is possible to ignore long
lines, but if there are lines to long it will still point it out.

further also for isort some configuration was necessary

REFERENCES:
https://github.com/psf/black/blob/master/docs/compatible_configs.md#isort
https://github.com/psf/black/blob/master/docs/compatible_configs.md#flake8
https://github.com/PyCQA/flake8-bugbear#opinionated-warnings

* removed commented import statments

Co-authored-by: Christoph Ladurner <christoph.ladurner@tugraz.at>
2020-10-14 14:10:05 +02:00
Mojib Wali
f9993369f2 global: extension class to uppercase. (#105)
The extension class name is changed to uppercase.
2020-10-12 09:42:12 +02:00
Mojib Wali
c5edf62a9d translations: marked for translation
* Marked the strings & Url hyperlinks for translation.
* compiled and updated the translation files with the help of Babel commands.
* Added some test translations to check if it works.
2020-10-06 14:40:38 +02:00
Mojib Wali
900baa4b5b release: v1.0.4 2020-10-05 14:30:08 +02:00
Mojib Wali
3462a0c69d ci:use github actions to publish to pypi 2020-10-05 14:25:33 +02:00
Mojib
800ef950fa ci:use github actions to publish to pypi
This closes #94.
2020-10-05 14:15:26 +02:00
Mojib Wali
ec4aaf9c37 1.0.3d 2020-10-05 13:01:28 +02:00
Mojib Wali
5f7bcb6939 test:migrate to latest pytest-invenio and docker-services-cli (#97) 2020-10-01 11:44:18 +02:00
Mojib
917ad9a95e adding python 3.8 2020-10-01 10:54:16 +02:00
Mojib Wali
dac28d569e 1.0.3c 2020-10-01 10:32:18 +02:00
Christoph Ladurner
4c3a4f8eb3 layout updates (#83)
* changed menu bottom line from red to grey
* added more space around the more button

Following changes are about the article view on the front page
  - added color grey around the version badge
  - moved version badges to the right side
  - removed view button
  - moved open access badge to right bottom
  - changed open access badge to text only without background-color
  - added bottom border to the last article

The following changes are about the record landing page.
NOTE: the modified record landing page is for now disabled
  - added color grey around the version badge
  - moved DOI to the left side
  - moved open access to the same level as the DOI
  - changed open access badge to text only without background-color
  - unset box-shadow from the .rdm-sidebar
2020-09-30 13:39:25 +02:00
mb-wali
7a60cef6a6 1.0.3b 2020-09-21 13:52:23 +02:00
mb-wali
b54d6882a6 Update .travis.yml
added to compile catalog
2020-09-21 13:51:50 +02:00
mb-wali
07ddc61c0e 1.0.3a
pre-release
2020-09-21 10:52:14 +02:00
mb-wali
6871308b08 I18n (WIP)
# Translation (WIP)
* modified .pot file.
* created .po files for german translation with the help on Babel.
* Translated some text just to test the translation.
2020-09-21 10:44:07 +02:00
mb-wali
bcdbf225cd Accounts (WIP)
# Login template
* added the SSO login for TUGRAZ.
* corresponding styles to login.less.
* added a couple of semantic UI classes in order to adjust the form to the center.
* buttons/hyperlink using the standard tugraz theme with hover background color black.

# signup template
* added the SSO signup for TUGRAZ.
* added two columns, left some texts and right the signup form using semantic-UI classes.
*buttons/hyperlink using the standard tugraz theme with hover background color black.
2020-09-21 10:43:25 +02:00
mb-wali
f65dbf9342 base template for login and signup
# Login & Signup templates
invenio rdm default template for login and signup is using account_base template.
in order to create our own these steps are taken:

* Created base template for ```invenio-theme-tugraz```.
* Created account base template which has only extended ```navbar``` from the header template.
* Assigned the account_base template to the login and signup templates.
* updated ```config.py``` with new variables for base template and account_base template.
2020-09-04 11:58:22 +02:00
Nikita Lvov
9798dd9fa1 Improvements for the sign-up and login pages (#80)
* improvements to the login and sign up pages
* margin fixes
2020-09-01 13:39:51 +02:00
mb-wali
7ca5e97f0d Theme improvement (#78)
# Frontpage
* red divider border to 2px
* Recent uploads ```more``` button to the center of the column.
* Searchbar aligned with the rest of content, inside frontpage container.

# Header
* logos row from bootstrap to semantic UI classes.
* added first version repository logo.
* removed extra margin between menu and content.
* Navbar to a separate file, this way we can include with jinja to other pages such as login&signup.

# Html/Body
* Button element has the same hover as the hyperlinks.
2020-09-01 13:38:57 +02:00
Nikita Lvov
0239d1d8e7 First draft login/signup templates.
* Sign up and sign in templates.

* Update invenio_theme_tugraz/config.py

* Created a base template for accounts ```accounts_base.html```
2020-08-19 11:56:16 +02:00
mb-wali
7dbfaa178d Footer enhancement
* changes upon request see #66.
* footer checklist
background-color to #fbfcff & divider removed, also some small changed in frontpage templet. This closes #66.
2020-08-17 13:10:13 +02:00
mb-wali
942f05688d overriden some styles (#73)
* overriden some styles

square shape to the elements, button more float to the right. also keep the inpit to the search endpoint. This closes #72.

* removed unused css class
2020-08-14 08:16:05 +02:00
mb
a08d267227 version limit removed
This closes #43.
2020-08-12 09:26:52 +02:00
mb-wali
6c535de02e theme custom_changes 2020-08-11 15:26:21 +02:00
mb
e92c02cb49 theme custom changes
zero border radius to button, badges, segments etc. This closes #67.
2020-08-11 15:22:14 +02:00
mb
3dc86691a6 aligned grids
removed unnecessary styles, add space between underline and body.
2020-08-11 14:05:10 +02:00
mb
20d782aca7 forcing font-family
overriden some other css classes s
2020-08-10 11:10:56 +02:00
mb
a8c39262ff forcing font-family
custom theme changes see #67
2020-08-10 10:00:11 +02:00
mb-wali
f4e2fb93b7 footer template
Custom footer design.
2020-08-04 17:25:36 +02:00
mb
7f9ecbe4e4 footer template
first footer design concept is approved. This closes #10.
2020-08-04 17:20:06 +02:00
mb
e41918ec02 modified footer template upon change request. 2020-08-03 10:39:35 +02:00
mb
fd40186f8c updated test files
new releases from pytest required these changes.
2020-07-30 11:10:22 +02:00
mb
5e260acadd using coming-soon from invenio-rdm-records 2020-07-30 10:43:33 +02:00
mb
0887cf59bc updated ext
removed Todo & unnecessary lines.
2020-07-30 10:32:26 +02:00
mb
c500ddd914 footer draft
first draft of footer based on tugraz.at footer see issue #10, added new view /comingsoon for the views to come.
2020-07-28 15:03:00 +02:00
mb-wali
536f567901 Update .travis.yml 2020-07-27 11:50:38 +02:00
mb-wali
bb3fb7949b Update .travis.yml 2020-07-27 11:28:33 +02:00
mb-wali
f9d5e93544 Update README.rst 2020-07-27 10:55:27 +02:00
mb-wali
f441d3a854 modification
added missing css
* autofocus to search input
* changed the name to Repository
2020-07-24 12:02:31 +02:00
mb
96b53493e7 header page modification
changed the name to Repository. This closes #61.
2020-07-24 11:56:29 +02:00
mb
3c582bca5c added missing css
logo svg fill color changed to defaul, also added autofocus to search input. This closes #60
2020-07-23 14:18:01 +02:00
mb-wali
13ad4e0742 Update README.rst
typo fixed
2020-07-21 20:42:13 +02:00
mb-wali
d3b6b5f453 Merge pull request #55 from mb-wali/recent_uploads
Frontpage *recent_uploads
2020-07-21 14:32:16 +02:00
mb
00145cc0ee enhancement
reduced recent_uploads to 5 records, added searchbar to frontpage. This closes #47
2020-07-21 14:28:29 +02:00
mb
46faf1a7a5 adjustment to module
isort fixed this closes #53
2020-07-21 08:29:54 +02:00
mb-wali
11b3fef59f Update README.rst
coverage badge updated
2020-07-20 18:42:31 +02:00
Mojib
827e8224ab The width of underline is smaller now.
added margin left and right, This closes #51.
2020-07-20 10:14:27 +02:00
Mojib
141df29666 version badge
seperated version badge from publication_date
2020-07-20 09:24:08 +02:00
mb
aa21a8ad22 orcid logo
added orcid logo to static
2020-07-18 16:33:36 +02:00
mb
347f3edc03 fixed mapping on creators for authors.html
fixed margin of h2,h4 plus added some css style.
2020-07-17 22:13:36 +02:00
mb
de06337ae2 frontpage data
first draft designing the frontpage with recent uploads and segment for contact us.
2020-07-17 15:12:30 +02:00
mb-wali
503779d5b4 Merge pull request #49 from freelion93/issue_37
fix the browser compatibility; this closes #40
2020-07-15 09:23:36 +02:00
mb-wali
2ba22eba7f Merge pull request #52 from freelion93/issue_50
Fix the font-family import
2020-07-15 09:21:24 +02:00
mb
879fbdb385 limit isort to lower version 2020-07-15 09:17:25 +02:00
mb
64967416b3 dependencies: upgrade isort 2020-07-15 08:56:12 +02:00
Nikita Lvov
d00a5f1e55 fixing the font import for the new invenio rdm release; this closes #50 2020-07-14 22:15:21 +02:00
Nikita Lvov
125088d92c increase the underline menu line border size to 3px 2020-07-14 21:43:37 +02:00
Nikita Lvov
f8668b9f06 fix the browser compatibility; this closes #40 2020-07-13 14:29:01 +02:00
Mojib
47fd19c571 frontpage draft
views.py is rendering index.html which is / endpoint, which is the frontpage. config.py is disabling the default frontpage from invenio-app-rdm.
2020-07-13 13:16:00 +02:00
Mojib
47a4121fc3 arranged config.py variables
clear comments and module names added, also fixed the type this closes #15
2020-07-13 11:27:51 +02:00
mb-wali
32cd8c78fb v1.0.3 2020-07-10 13:53:12 +02:00
mb-wali
f6a8c15a60 v1.0.2a 2020-07-10 13:48:37 +02:00
mb
39688c0a67 hyperlink bug
fixed bug in login.html
2020-07-10 13:47:19 +02:00
mb
61d486edf1 hyperlink bug
fixed bug in login.html
2020-07-10 13:46:08 +02:00
93 changed files with 4528 additions and 1051 deletions

View File

@@ -1,15 +0,0 @@
.git
*.gitignore
*.mo
*.pyc
*.swp
*.swo
*.~
.dockerignore
Dockerfile
docker-compose.yml
docker-compose-dev.yml
Procfile*

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -32,8 +32,8 @@ indent_size = 4
[*.{css,html,js,json,yml}]
indent_size = 2
# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
# Matches the exact files either package.json or .github/workflows/*.yml
[{package.json, .github/workflows/*.yml}]
indent_size = 2
# Dockerfile

26
.github/workflows/pypi-publish.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
on:
push:
tags:
- v*
jobs:
build-n-publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
- name: Build package
run: |
python setup.py compile_catalog sdist bdist_wheel
- name: pypi-publish
uses: pypa/gh-action-pypi-publish@v1.3.1
with:
user: __token__
password: ${{ secrets.pypi_password }}

87
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,87 @@
name: CI
on:
push:
branches: master
pull_request:
branches: master
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 3 * * 6'
workflow_dispatch:
inputs:
reason:
description: 'Reason'
required: false
default: 'Manual trigger'
jobs:
Tests:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
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:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Generate dependencies
run: |
python -m pip install --upgrade pip setuptools py wheel requirements-builder
requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
- name: Cache pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('.${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt') }}
- name: Install dependencies
run: |
pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
pip install ".[$EXTRAS]"
pip freeze
docker --version
docker-compose --version
- name: Run tests
run: |
./run-tests.sh

View File

@@ -1,64 +0,0 @@
# -*- 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.
notifications:
email: false
sudo: false
language: python
matrix:
fast_finish: true
allow_failures:
# To allow failures, you need to specify the full environment
- env: REQUIREMENTS=devel
cache:
- pip
env:
- REQUIREMENTS=lowest
- REQUIREMENTS=release DEPLOY=true
- REQUIREMENTS=devel
python:
- "3.6"
- "3.7"
before_install:
- "nvm install 6; nvm use 6"
- "travis_retry pip install --upgrade pip setuptools py"
- "travis_retry pip install twine wheel coveralls requirements-builder"
- "requirements-builder -e all --level=min setup.py > .travis-lowest-requirements.txt"
- "requirements-builder -e all --level=pypi setup.py > .travis-release-requirements.txt"
- "requirements-builder -e all --level=dev --req requirements-devel.txt setup.py > .travis-devel-requirements.txt"
install:
- "travis_retry pip install -r .travis-${REQUIREMENTS}-requirements.txt"
- "travis_retry pip install -e .[all]"
script:
- "./run-tests.sh"
after_success:
- coveralls
deploy:
skip_cleanup: true
skip_existing: true
provider: pypi
username: __token__
password:
secure: liNULZujbc8nScZRlDiGu5YxnCaiWZ+LJ4IyYJvC5+rZjl5dr/cf1t7STgrN7SckP/7jGO4mJjClroDG3mj/a8y4tA32XSupeRQClDeETuUcOoTvagZnHBPQ8bVOrYUeH0IEpBvGLcBIrt3WEh0ZolP+KOHhrbbkV00hleqlcN78RB1rPEP+zKVOYftzPiaRZJFl338K6Jf4AIoZPaUZNK5HdNBa5cv29VYwJkw+SeOy50duAAaDVQQsXXonIBtzcI9tLqKMbBhiSguHBt+AaKsGeK96n2LwRhBevFtc3iz1bPhJkUxrzsW+6gp1uzHUHgknotM3HPnR1wD+uKU3fc+j7xA4db/tTJpOCBae3Wzmxd13OZx0qLOUaYr5z/Drd+bPRJM9UMmaPtQGTn+kz13ATPvKEGgRzjmWEOrvrnuX9JLVux7zV9sfpfqritxtdfYGzHchw41Kfk8OFLPFTRPO1KE0Nr9CGzV6THSqR6n4AyteZ2VT0sU3w25bQu6obKTvxFq+tdcaHOeZoCCJYJzGwRdkrrWQl+joWJQ8AssOlv3vrmzPWuAWhPjcm2cK9MVTu/LMM1vvUr0vqn58GDylNYyifJFUitZQ7ReWb5GzzgwpcyDYfEK1bOUD00l2kEvrUL1lA64FLCSSjZeBCcnxMq/+odzNfOkXWLk34Ek=
distributions: sdist bdist_wheel
on:
tags: true
python: "3.6"
repo: mb-wali/invenio-theme-tugraz
condition: $DEPLOY = true

View File

@@ -1,28 +1,11 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
# details.
# TODO: Transifex integration
#
# 1) Create message catalog:
# $ python setup.py extract_messages
# $ python setup.py init_catalog -l <lang>
# $ python setup.py compile_catalog
# 2) Ensure project has been created on Transifex under the inveniosoftware
# organisation.
# 3) Install the transifex-client
# $ pip install transifex-client
# 4) Push source (.pot) and translations (.po) to Transifex
# $ tx push -s -t
# 5) Pull translations for a single language from Transifex
# $ tx pull -l <lang>
# 6) Pull translations for all languages from Transifex
# $ tx pull -a
[main]
host = https://www.transifex.com

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
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
modify it under the terms of the MIT License; see LICENSE file for more

View File

@@ -10,7 +10,7 @@ Types of Contributions
Report Bugs
~~~~~~~~~~~
Report bugs at https://github.com/mb-wali/invenio-theme-tugraz/issues.
Report bugs at https://github.com/tu-graz-library/invenio-theme-tugraz/issues.
If you are reporting a bug, please include:
@@ -41,7 +41,7 @@ Submit Feedback
~~~~~~~~~~~~~~~
The best way to send feedback is to file an issue at
https://github.com/mb-wali/invenio-theme-tugraz/issues.
https://github.com/tu-graz-library/invenio-theme-tugraz/issues.
If you are proposing a feature:
@@ -55,7 +55,7 @@ Get Started!
Ready to contribute? Here's how to set up `invenio-theme-tugraz` for local development.
1. Fork the `https://github.com/mb-wali/invenio-theme-tugraz.git` repo on GitHub.
1. Fork the `https://github.com/tu-graz-library/invenio-theme-tugraz.git` repo on GitHub.
2. Clone your fork locally:
.. code-block:: console
@@ -114,5 +114,5 @@ Before you submit a pull request, check that it meets these guidelines:
2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring.
3. The pull request should work for Python 2.7, 3.5 and 3.6. Check
https://travis-ci.com/github/mb-wali/invenio-theme-tugraz/pull_requests
https://github.com/tu-graz-library/invenio-theme-tugraz/actions?query=event%3Apull_request
and make sure that the tests pass for all supported Python versions.

View File

@@ -1,19 +1,11 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
# details.
# TODO: Generate this manifest file by running the following commands:
# (please sort the lines in this file after running below commands)
#
# git init
# git add -A
# pip install -e .[all]
# check-manifest -u
include .dockerignore
include .editorconfig
include .tx/config
@@ -41,4 +33,7 @@ recursive-include invenio_theme_tugraz *.scss
recursive-include invenio_theme_tugraz *.svg
recursive-include invenio_theme_tugraz *.less
recursive-include invenio_theme_tugraz *.ico
recursive-include tests *.py
recursive-include tests *.py
recursive-include invenio_theme_tugraz *.jpg
recursive-include invenio_theme_tugraz *.gitkeep
recursive-include .github/workflows *.yml

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
modify it under the terms of the MIT License; see LICENSE file for more
@@ -9,22 +9,26 @@
invenio-theme-tugraz
======================
.. image:: https://img.shields.io/travis/inveniosoftware/invenio-app-rdm.svg
:target: https://travis-ci.com/github/mb-wali/invenio-theme-tugraz
.. image:: https://github.com/tu-graz-library/invenio-theme-tugraz/workflows/CI/badge.svg
:target: https://github.com/tu-graz-library/invenio-theme-tugraz/actions
.. image:: https://img.shields.io/pypi/dm/invenio-theme-tugraz.svg
:target: https://pypi.python.org/pypi/invenio-theme-tugraz
.. image:: https://img.shields.io/github/tag/mb-wali/invenio-theme-tugraz.svg
:target: https://github.com/mb-wali/invenio-theme-tugraz/releases
.. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-theme-tugraz.svg
:target: https://github.com/tu-graz-library/invenio-theme-tugraz/releases
.. image:: https://img.shields.io/github/license/mb-wali/invenio-theme-tugraz.svg
:target: https://github.com/mb-wali/invenio-theme-tugraz/blob/master/LICENSE
.. image:: https://img.shields.io/github/license/tu-graz-library/invenio-theme-tugraz.svg
:target: https://github.com/tu-graz-library/invenio-theme-tugraz/blob/master/LICENSE
.. image:: https://readthedocs.org/projects/invenio-theme-tugraz/badge/?version=latest
:target: https://invenio-theme-tugraz.readthedocs.io/en/latest/?badge=latest
.. image:: https://coveralls.io/repos/github/mb-wali/invenio-theme-tugraz/badge.svg?branch=master
:target: https://coveralls.io/github/mb-wali/invenio-theme-tugraz?branch=master
.. image:: https://img.shields.io/coveralls/mb-wali/invenio-theme-tugraz.svg
:target: https://coveralls.io/r/mb-wali/invenio-theme-tugraz
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
TU Graz standard theme.
@@ -32,9 +36,9 @@ Features:
* TU Graz custom header template.
* TU Graz custom footer template.
* TU Graz custom login template.
* TU Graz custom sign up template.
* TU Grau custom frontpage template.
* TU Graz custom login/signup templates.
* TU Graz custom frontpage template.
* TU Graz custom contact template.
* TU Graz overriden theme.
Further documentation is available on

View File

@@ -1,6 +1,6 @@
# -*- 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
# 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
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
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
modify it under the terms of the MIT License; see LICENSE file for more

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -10,45 +10,43 @@
import os
import sphinx.environment
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# needs_sphinx = '1.0'
# Do not warn on external images.
suppress_warnings = ['image.nonlocal_uri']
suppress_warnings = ["image.nonlocal_uri"]
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.coverage',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.viewcode',
"sphinx.ext.autodoc",
"sphinx.ext.coverage",
"sphinx.ext.doctest",
"sphinx.ext.intersphinx",
"sphinx.ext.viewcode",
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
templates_path = ["_templates"]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
source_suffix = ".rst"
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
master_doc = "index"
# General information about the project.
project = u'invenio-theme-tugraz'
copyright = u'2020, mojib wali'
author = u'mojib wali'
project = u"invenio-theme-tugraz"
copyright = u"2020, mojib wali"
author = u"mojib wali"
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -58,11 +56,12 @@ author = u'mojib wali'
# Get the version string. Cannot be done with import!
g = {}
with open(os.path.join(os.path.dirname(__file__), '..',
'invenio_theme_tugraz', 'version.py'),
'rt') as fp:
with open(
os.path.join(os.path.dirname(__file__), "..", "invenio_theme_tugraz", "version.py"),
"rt",
) as fp:
exec(fp.read(), g)
version = g['__version__']
version = g["__version__"]
# The full version, including alpha/beta/rc tags.
release = version
@@ -76,9 +75,9 @@ language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
@@ -86,46 +85,46 @@ exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
pygments_style = "sphinx"
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
html_theme = 'alabaster'
html_theme = "alabaster"
html_theme_options = {
'description': 'invenio module for TUGRAZ theme.',
'github_user': 'inveniosoftware',
'github_repo': 'invenio-theme-tugraz',
'github_button': False,
'github_banner': True,
'show_powered_by': False,
'extra_nav_links': {
'invenio-theme-tugraz@GitHub': 'https://github.com/mb-wali/invenio-theme-tugraz',
'invenio-theme-tugraz@PyPI': 'https://pypi.python.org/pypi/invenio-theme-tugraz/',
}
"description": "invenio module for TUGRAZ theme.",
"github_user": "TU Graz",
"github_repo": "invenio-theme-tugraz",
"github_button": False,
"github_banner": True,
"show_powered_by": False,
"extra_nav_links": {
"invenio-theme-tugraz@GitHub": "https://github.com/tu-graz-library/invenio-theme-tugraz",
"invenio-theme-tugraz@PyPI": "https://pypi.python.org/pypi/invenio-theme-tugraz/",
},
}
# The theme to use for HTML and HTML Help pages. See the documentation for
@@ -134,146 +133,148 @@ html_theme_options = {
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['_static']
# html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': [
'about.html',
'navigation.html',
'relations.html',
'searchbox.html',
'donate.html',
"**": [
"about.html",
"navigation.html",
"relations.html",
"searchbox.html",
"donate.html",
]
}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
#html_search_language = 'en'
# html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value
#html_search_options = {'type': 'default'}
# html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#html_search_scorer = 'scorer.js'
# html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = 'invenio-theme-tugraz_namedoc'
htmlhelp_basename = "invenio-theme-tugraz_namedoc"
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Latex figure (float) alignment
#'figure_align': 'htbp',
# The paper size ('letterpaper' or 'a4paper').
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
# 'preamble': '',
# Latex figure (float) alignment
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'invenio-theme-tugraz.tex', u'invenio-theme-tugraz Documentation',
u'mojib wali', 'manual'),
(
master_doc,
"invenio-theme-tugraz.tex",
u"invenio-theme-tugraz Documentation",
u"mojib wali",
"manual",
),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
@@ -281,12 +282,17 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'invenio-theme-tugraz', u'invenio-theme-tugraz Documentation',
[author], 1)
(
master_doc,
"invenio-theme-tugraz",
u"invenio-theme-tugraz Documentation",
[author],
1,
)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
@@ -295,30 +301,36 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'invenio-theme-tugraz', u'invenio-theme-tugraz Documentation',
author, 'invenio-theme-tugraz', 'invenio module for TUGRAZ theme.',
'Miscellaneous'),
(
master_doc,
"invenio-theme-tugraz",
u"invenio-theme-tugraz Documentation",
author,
"invenio-theme-tugraz",
"invenio module for TUGRAZ theme.",
"Miscellaneous",
),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
# texinfo_no_detailmenu = False
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {
'python': ('https://docs.python.org/', None),
"python": ("https://docs.python.org/", None),
# TODO: Configure external documentation references, eg:
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
}
# Autodoc configuraton.
autoclass_content = 'both'
autoclass_content = "both"

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
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
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
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
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
modify it under the terms of the MIT License; see LICENSE file for more

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -8,7 +8,7 @@
"""invenio module for TUGRAZ theme."""
from .ext import inveniothemetugraz
from .ext import InvenioThemeTugraz
from .version import __version__
__all__ = ('__version__', 'inveniothemetugraz')
__all__ = ("__version__", "InvenioThemeTugraz")

View File

@@ -1,6 +1,5 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* 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 mojib wali.
* Copyright (C) 2020-2021 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.

View File

@@ -1,6 +1,5 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* 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 mojib wali.
* Copyright (C) 2020-2021 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.

View File

@@ -1,6 +1,5 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* 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 mojib wali.
* Copyright (C) 2020-2021 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.

View File

@@ -1,6 +1,5 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* 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 mojib wali.
* Copyright (C) 2020-2021 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.
@@ -8,4 +7,3 @@
$navbar_background_image: unset;
$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: 10 ** 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={20}>
<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,22 @@
import $ from 'jquery';
$(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
});
});
});
export function toggleVisibility(id) {
var element = document.getElementById(id);
var isHided = element.style.display === "none";

View File

@@ -0,0 +1,153 @@
/*
* Copyright (C) 2020 TUGRAZ.
* Copyright (C) 2020 Nikita Lvov.
*
* 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.
*/
.cover-page {
//text-align: center;
background-color: #ffffff;
}
#login-tug-logo {
& g {
fill: @tugrazRed;
}
}
#login-tug-logo:hover {
& g {
fill: @tugrazBlack;
}
}
.accounts-link {
margin: 5%;
color: @primaryLink;
border: 1px solid @primaryLink;
background-color: transparent;
}
.accounts-link :hover {
font-size: smaller !important;
color: @primaryLink;
background-color: @primaryLinkHoverBackground !important;
}
.tu-button-style button {
cursor: pointer;
border: 1px solid @primaryButton;
background-color: transparent;
height: 29px;
color: @primaryButton;
font-family: "Source Sans Pro";
font-weight: 300;
font-size: 16px;
}
.tu-button-style button:hover {
cursor: pointer;
color: @primaryButton;
background-color: @primaryButtonHoverBackground !important;
}
.form-accounts {
margin: 15%;
text-align: left !important;
& i {
color: @primaryFormAccounts !important;
}
& label {
display: flex !important;
font-weight: 300 !important;
color: @primaryFormAccounts !important;
}
& input {
border: 0px none !important;
padding: 0px !important;
border-bottom: 1px solid @primaryFormAccounts !important;
background-color: transparent !important;
color: @primaryFormAccounts !important;
border-radius: 0 !important;
width: 100% !important;
}
& input::placeholder {
opacity: 1 !important;
color: @formAccountsInputPlaceholder !important;
}
& th {
display: block;
}
& td {
display: inline-block;
}
}
.field > input::selection {
background: @fieldInputSelectionBackground;
}
.accounts-header {
font-weight: 300 !important;
}
/***
login and sign-up pages form background color
*/
.sign-form {
background-color: @signInBackground !important;
padding: 0 !important;
height: 100%;
}
.tug-button-login {
display: flex;
align-items: center;
fill: @tugrazRed;
}
.tug-button-login :hover {
fill: @primaryButtonHoverBackground;
}
.login-page-button {
margin: 5%;
text-align: center !important;
& a {
padding: 5px;
text-decoration: underline !important;
cursor: pointer;
}
& a:hover {
background-color: @primaryLinkHoverBackground;
color: @primaryLink !important;
text-decoration: none;
}
}
.login-page-button-white {
color: @primaryButton !important;
font-family: "Source Sans Pro";
font-size: initial;
}
.login-page-button-black {
color: @primaryButtonInverted !important;
font-family: "Source Sans Pro";
font-size: initial;
}
/***
allowing to switch columns on the sign-up page on the small screen
*/
.switch-grid {
display: flex;
}
@media (max-width: 767px) {
#switch_left {
order: 2;
}
#switch_right {
order: 1;
}
}

View File

@@ -1,29 +1,50 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
#footer {
color: #fff;
color: @footerGrey;
&.footer-bottom {
background-color: #E4154B;
padding-top: 15px;
padding-bottom: 15px;
font-weight: 300;
font-size: 14px;
/*background-image: url("/static/images/footer.jpg");*/
-webkit-background-size: 100% 100%;
-moz-background-size: 100% 100%;
-o-background-size: 100% 100%;
background-size: 100% 100%;
min-height: 100%;
/* the following 2 lines are a hack for IE6 */
height: auto !important;
height: 100%;
width: 100%;
background-attachment: fixed;
a {
text-decoration: none;
color: #ffffffd6;
font-weight: 600;
&.footer-bottom {
background-color: @footerBottomBackground;
padding-top: 15px;
padding-bottom: 15px;
font-size: 16px;
a {
text-decoration: none;
color: @footerGrey;
&:hover, &:focus {
color: @primaryLink;
background-color: @primaryLinkHoverBackground;
}
}
}
}
&:hover, &:focus {
color: #ffffff;
}
}
}
.bodytext{
font-size: 16px;
}
.spacer{
margin-top: 10px;
}
.spacer-long{
margin-top: 30px;
}

View File

@@ -0,0 +1,88 @@
/*
* Copyright (C) 2020-2021 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.
*/
h4 {
display: block;
margin-block-start: 0.33em;
margin-block-end: 0.33em;
margin-inline-start: 0px;
margin-inline-end: 0px;
}
h2 {
margin-block-start: 0.83em;
margin-block-end: 0.83em;
margin-inline-start: 0px;
margin-inline-end: 0px;
}
.record-version {
color: @greyDark;
background-color: @recordVersionBackground !important;
}
.random-records-frontpage article {
border-bottom: 1px solid @randomRecordsFrontpageArticle;
margin-bottom: 1rem;
padding-bottom: 1rem;
}
.random-records-frontpage .more {
margin-top: 20px !important;
margin-bottom: 35px !important;
}
.random-records-frontpage h2 {
text-align: center;
}
.badges {
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 mojib wali.
* Copyright (C) 2020-2021 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.
@@ -10,34 +9,26 @@
width: 18px;
height: 18px;
vertical-align: top;
fill: red;
fill: @tugrazRed;
}
/*****logo section******/
.affiliation-spacer {
display: table-cell;
vertical-align: middle;
width: 100%;
}
.affiliation-logo {
display: table-cell;
padding: 0 50px 0 0;
vertical-align: middle;
white-space: nowrap;
& a {
fill: #e4154b;
fill: @tugrazRed;
}
}
.affiliation-logo :hover {
text-decoration: none;
fill: #000000;
color: #000000;
fill: @primaryLinkHoverBackground;
color: @primaryLinkHoverBackground;
}
.affiliation {
background-color: white;
background-color: @primaryLink;
display: table;
margin: 0 auto 80px;
max-width: 1060px;
@@ -47,9 +38,9 @@
.affiliation-text {
display: table-cell;
font-size: 17px;
padding: 0 0 0 50px;
vertical-align: middle;
font-size: 12px;
line-height: 17px;
letter-spacing: 2px;
white-space: nowrap;
}
@@ -63,11 +54,6 @@
vertical-align: top;
}
a {
color: inherit;
text-decoration: none;
transition: background-color 0.15s ease 0s, color 0.15s ease 0s;
}
/*****END logo section******/
.short-menu {
@@ -86,19 +72,12 @@ a {
.short-menu-right {
display: table-cell;
width: 50%;
color: #000000;
& div {
stroke: #000;
stroke-linecap: round;
stroke-width: 2;
fill: none;
}
color: @primaryLinkInverted;
}
.short-menu-right :hover {
background-color: #000000;
color: #ffffff;
stroke: #fff;
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
}
.short-menu-right-button {
@@ -119,15 +98,15 @@ a {
& a {
padding: 5px;
background-color: transparent;
color: #000;
color: @primaryLinkInverted;
text-decoration: none;
}
}
.short-menu-left-lang:hover {
& a {
background-color: #000;
color: #fff;
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
text-decoration: none;
}
}
@@ -141,7 +120,7 @@ a {
& svg {
& g {
stroke-linejoin: round;
stroke: #000;
stroke: @primaryLinkInverted;
stroke-miterlimit: 10;
stroke-width: 2;
fill: none;
@@ -152,11 +131,11 @@ a {
.search-icon-header:hover {
& a {
background-color: #000;
background-color: @primaryLinkHoverBackground;
text-decoration: none;
& svg {
& g {
stroke: #fff;
stroke: @primaryLink;
}
}
}
@@ -165,7 +144,7 @@ a {
.short-menu-left-search {
display: inline-block;
margin: 12px 9px 6px 0;
color: #000000;
color: @primaryLinkInverted;
}
.short-menu-right-main-menu {
@@ -196,8 +175,8 @@ svg:not(:root) {
}
.main-menu-entry a:hover {
background-color: #000;
color: #fff;
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
text-decoration: none;
}
@@ -205,24 +184,23 @@ svg:not(:root) {
padding-left: 0 !important;
}
.main-menu-underline {
text-align: -webkit-center;
.main-menu-underline-line {
border: 2px solid @greyLight !important;
border-radius: 0;
}
.main-menu-underline-line {
background-color: #e4154b;
height: 5px;
width: 50%;
#margin-divider{
margin-left: 155px; margin-right: 155px;
}
.affiliation-text a:hover {
background-color: #000000;
color: #ffffff;
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
text-decoration: none;
}
.main-menu {
border-bottom: 1px solid #000;
border-bottom: 1px solid @primaryLinkInverted;
box-sizing: border-box;
height: 39px;
margin-top: -1px;
@@ -230,43 +208,6 @@ svg:not(:root) {
transition: height 0.3s linear 0s;
}
@media (max-width: 767.9px) {
.main-menu {
height: auto;
}
}
@media screen and (max-width: 767.9px) {
#int-header-logo-img {
width: 200px;
height: 75px;
}
}
@media screen and (max-width: 767.9px) {
#int-header-logo {
padding: 50px 0;
text-align: center;
}
}
@media screen and (max-width: 767.9px) {
.affiliation {
margin: 0;
text-align: center;
}
.affiliation-text {
display: none;
}
.affiliation-logo-claim {
display: none;
}
.affiliation-spacer {
display: none;
}
}
.int-menu-q-open-icon {
width: 14px;
vertical-align: middle;
@@ -278,4 +219,31 @@ svg:not(:root) {
.col a {
cursor: pointer;
}
@media screen and (max-width: 767.9px) {
#int-header-logo-img {
width: 200px;
height: 75px;
}
#main-logo {
padding: 30px 0;
text-align: center;
display: block;
}
#repo-logo{
display: none;
}
.affiliation-logo-claim {
display: none;
}
}
.repo-img{
margin-right: 5px;
}
.inline-elements{
display: flex;
}
span.home-inline{
white-space: nowrap;
}

View File

@@ -0,0 +1,31 @@
.ui.inverted.header{
color: @primaryLinkInverted;
}
.login-page-button {
margin: 5%;
text-align: center !important;
& a {
padding: 5px;
cursor: pointer;
}
& a:hover {
background-color: @primaryLinkHoverBackground;
color: @primaryLink !important;
text-decoration: none;
}
}
.text-color{
color: @primaryLinkInverted;
}
@media (max-width: 767px) {
#switch_left {
order: 2;
}
#switch_right {
order: 1;
}
}

View File

@@ -0,0 +1,17 @@
/*
* Copyright (C) 2020-2021 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.
*/
/*
* authors.html
*/
.inline-orcid {
height: 14px;
}
.text-muted {
color: @greyDark;
}

View File

@@ -1,51 +1,154 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
/*
* Logos background frontpage.
* from rgba(173, 206, 224, 0.52)
* to #ffffff
*/
/***
* Logos background frontpage.
* from rgba(173, 206, 224, 0.52)
* to #ffffff
***/
.section-content-light-bg {
background-color: #ffffff;
}
/*
* section title.
* from #0377cd
* to #000000
*/
.section-title {
color: #000000;
background-color: @primaryBackground;
}
/***
login background color
from : rgba(13,95,137,.8)
To #ffffff
*/
* section title.
* from #0377cd
* to #000000
***/
.section-title {
color: @primaryText;
}
/***
* login background color
* from : rgba(13,95,137,.8)
* To #ffffff
***/
.cover-page {
//text-align: center;
background-color: #ffffff;
background-color: @primaryBackground;
}
/***
login & sigup page title
from : #0377cd
To #000000
*/
* login & sigup page title
* from : #0377cd
* To #000000
***/
.panel-free-title {
color: #000000;
color: @primaryText;
}
/***
forcing the font changes
*/
body {
* force: the font changes
***/
*,
html, body,
h1, h2, h3, h4, h5, h6,
pre,
.ui.button,
.ui.items,
.ui.accordion .title:not(.ui),
.ui.items > .item > .content > .header,
.ui.modal > .header,
.ui.menu,
.ui.header,
.ui.form input[type],
.ui.form input[type]:focus {
font-family: "Source Sans Pro";
}
pre {
font-size: 14px;
}
/***
* search.button
***/
/*.ui.button,*/
.ui.search.button {
background-color: @tugrazRed;
}
.ui.button:hover,
.ui.search.button:hover {
background-color: @primaryButtonHoverBackground;
}
.ui.button:hover {
color: @primaryButton;
}
/***
* force: remove corners from border
***/
.label-keyword,
.ui.label,
.ui.button,
.ui.rdm-sidebar,
.ui.menu,
.ui.input > input, /* it seams redundant but it is not */
.ui.segment,
.ui.selection.dropdown,
.ui.card,
.ui.cards > .card,
.ui.basic.button, .ui.basic.buttons .button,
.ui.action.input:not([class*="left action"]) > .button:last-child,
.ui.action.input:not([class*="left action"]) > .buttons:last-child > .button,
.ui.action.input:not([class*="left action"]) > .dropdown:last-child,
.ui.form input[type],
.ui.form input[type]:focus {
border-radius: 0;
}
/***
* force: rdm-side-bar same empty box as on the frontpage
***/
.ui.rdm-sidebar {
background-color: unset;
box-shadow: unset;
}
/***
* force: font weight: normal
***/
.ui.label {
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

@@ -0,0 +1,17 @@
/*
* 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.
*/
.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

@@ -1,15 +1,21 @@
/*
* Copyright (C) 2020 TUGRAZ.
* 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 modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
@import "variables";
@import "header";
@import "footer";
@import "overrides";
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro&display=swap");
@import "frontpage";
@import "record";
@import "search";
@import "macros";
@import "login";
@import (css)
url("https://fonts.googleapis.com/css?family=Source+Sans+Pro&display=swap");
/***
**TODO:
@@ -18,3 +24,11 @@
//@import "../invenio_app_rdm/theme";
//@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 mojib wali.
* Copyright (C) 2020-2021 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.
@@ -12,6 +11,59 @@
***/
//@import "../invenio_app_rdm/variables.less";
//@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;

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -9,58 +9,113 @@
"""invenio module for TUGRAZ theme."""
from flask_babelex import gettext as _
from invenio_app_rdm.config import RECORDS_UI_ENDPOINTS
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = 'foobar'
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
"""Default value for the application."""
INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = 'invenio_theme_tugraz/base.html'
"""Default base template for the demo page."""
INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = "invenio_theme_tugraz/base.html"
"""TU Graz Default base template"""
THEME_LOGO = 'images/tug_logo.png'
"""TU Graz logo"""
INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = "invenio_theme_tugraz/accounts/accounts_base.html"
"""TU Graz Default account base template"""
THEME_HEADER_TEMPLATE = 'invenio_theme_tugraz/header.html'
"""TU Graz header template"""
THEME_FRONTPAGE_TEMPLATE = 'invenio_theme_tugraz/frontpage.html'
"""Frontpage template"""
SECURITY_LOGIN_USER_TEMPLATE = 'invenio_theme_tugraz/accounts/login.html'
"""Login template"""
THEME_HEADER_LOGIN_TEMPLATE = 'invenio_theme_tugraz/accounts/header_login.html'
"""login page header"""
THEME_FOOTER_TEMPLATE = 'invenio_theme_tugraz/footer.html'
"""footer template"""
INVENIO_THEME_TUGRAZ_ICON = 'images/icon_use.png'
INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png"
"""icon used in login page"""
THEME_FRONTPAGE_TITLE = _('Frontpage Title')
INVENIO_THEME_TUGRAZ_LOGIN_IMG = "images/login_logo.png"
"""TU Logo for forms"""
INVENIO_THEME_TUGRAZ_CONTACT_FORM = False
"""Enable/Disable Contact form."""
# Invenio-theme
# ============
# See https://invenio-theme.readthedocs.io/en/latest/configuration.html
#
THEME_LOGO = "images/tug_logo.png"
"""TU Graz logo"""
THEME_SEARCHBAR = False
"""Enable or disable the header search bar."""
THEME_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
"""TU Graz header template"""
THEME_FRONTPAGE = False
"""Use default frontpage."""
THEME_HEADER_LOGIN_TEMPLATE = "invenio_theme_tugraz/accounts/header_login.html"
"""login page header"""
THEME_FOOTER_TEMPLATE = "invenio_theme_tugraz/footer.html"
"""footer template"""
THEME_FRONTPAGE_TITLE = _("TU Graz Repository")
"""Frontpage title."""
THEME_SITENAME = _('Application Name')
THEME_SITENAME = _("Repository")
"""Site name."""
SECURITY_REGISTER_USER_TEMPLATE = \
'invenio_theme_tugraz/accounts/register_user.html'
# Invenio-accounts
# ============
# See https://invenio-accounts.readthedocs.io/en/latest/configuration.html
# COVER_TEMPLATE = 'invenio_theme_tugraz/accounts/accounts_base.html'
"""Cover page template for login and sign up pages."""
SECURITY_LOGIN_USER_TEMPLATE = "invenio_theme_tugraz/accounts/login_user.html"
"""Login template"""
SECURITY_REGISTER_USER_TEMPLATE = "invenio_theme_tugraz/accounts/register_user.html"
"""Sigup template"""
# Invenio-I18N
# ============
# See https://invenio-i18n.readthedocs.io/en/latest/configuration.html
BABEL_DEFAULT_LOCALE = 'en'
BABEL_DEFAULT_LOCALE = "en"
# Default time zone
BABEL_DEFAULT_TIMEZONE = 'Europe/Vienna'
BABEL_DEFAULT_TIMEZONE = "Europe/Vienna"
# Other supported languages (do not include BABEL_DEFAULT_LOCALE in list).
I18N_LANGUAGES = [
('de', _('German'))
]
I18N_LANGUAGES = [("de", _("German"))]
# Invenio-APP-RDM
# Invenio-app-rdm
# =============
SEARCH_UI_HEADER_TEMPLATE = 'invenio_theme_tugraz/header.html'
# See https://invenio-app-rdm.readthedocs.io/en/latest/configuration.html
SEARCH_UI_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
"""Search page's header template."""
DEPOSITS_HEADER_TEMPLATE = 'invenio_theme_tugraz/header.html'
DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
"""Deposits header page's template."""
# Invenio-rdm-records
# =============
# See https://invenio-rdm-records.readthedocs.io/en/latest/configuration.html
# Uncomment below to override records landingpage.
# from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS
# RECORDS_UI_ENDPOINTS["recid"].update(
# template="invenio_theme_tugraz/record_landing_page.html"
# )
"""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 -*-
#
# 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -8,36 +8,31 @@
"""invenio module for TUGRAZ theme."""
from flask_babelex import gettext as _
from . import config
from .views import deposit_create, deposit_edit, index, record_detail
class inveniothemetugraz(object):
class InvenioThemeTugraz(object):
"""invenio-theme-tugraz extension."""
def __init__(self, app=None):
"""Extension initialization."""
# TODO: This is an example of translation string with comment. Please
# remove it.
# NOTE: This is a note to a translator.
_('A translation string')
if app:
self.init_app(app)
def init_app(self, app):
"""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)
app.extensions['invenio-theme-tugraz'] = self
app.extensions["invenio-theme-tugraz"] = self
def init_config(self, app):
"""Initialize configuration."""
# Use theme's base template if theme is installed
if 'BASE_TEMPLATE' in app.config:
app.config.setdefault(
'INVENIO_THEME_TUGRAZ_BASE_TEMPLATE',
app.config['BASE_TEMPLATE'],
)
for k in dir(config):
if k.startswith('INVENIO_THEME_TUGRAZ_'):
if k.startswith("INVENIO_THEME_TUGRAZ_"):
app.config.setdefault(k, getattr(config, k))

View File

@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020-2021 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.
"""Frontpage records."""
from __future__ import absolute_import, print_function
from elasticsearch_dsl.query import Q
from invenio_search.api import RecordsSearch
class FrontpageRecordsSearch(RecordsSearch):
"""Search class for records that goes on the frontpage."""
class Meta:
"""Default index and filter for frontpage search."""
index = "rdmrecords-records"
default_filter = Q(
"query_string", query=(
"access.record:public " "AND versions.is_latest:true"))

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
id="Ebene_1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
width="70px"
height="50px"
viewBox="190 340 200.28 241.89"
enable-background="new 0 0 595.28 841.89"
xml:space="preserve">
<line fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" x1="241.96" y1="442.299" x2="241.96" y2="595"/>
<polyline fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" points="373.803,349.25 241.933,442.299 146.321,442.299 "/>
<polyline fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" points="420.543,444.71 330.344,508.354 251.826,508.354 "/>
<line fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" x1="330.344" y1="508.354" x2="330.344" y2="544.901"/>
<polyline fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="10" points="373.703,466.061 373.703,403.966 281.505,469.021 281.505,508.354 "/>
<polyline fill="#e4154b" stroke="#000000" stroke-width="3" points="241.96,442.299 241.96,595 146.321,442.299 241.96,442.299"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,94 @@
{#
Copyright (C) 2020-2021 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.
#}
<!DOCTYPE html>
<html{% if html_css_classes %} class="{{ html_css_classes|join(' ') }}"{% endif %} lang="{{ current_i18n.locale.language|safe }}" dir="{{ current_i18n.locale.text_direction }}">
<head>
{%- block head %}
{%- block head_meta %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{%- if description %}<meta name="description" content="{{ description }}" />{% endif %}
{%- if keywords %}<meta name="keywords" content="{{ keywords }}" />{% endif %}
{%- if config.get('THEME_GOOGLE_SITE_VERIFICATION', None) %}
{%- for google_id in config.THEME_GOOGLE_SITE_VERIFICATION %}
<meta name="google-site-verification" content="{{google_id}}"/>
{%- endfor %}
{%- endif %}
{%- endblock head_meta %}
{%- block head_title %}
{%- set title = title or _(config.THEME_SITENAME) or _('Invenio') %}
<title>{{title}}</title>
{%- endblock head_title %}
{%- block head_links %}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}"/>
{%- if keywords %}<link rel="canonical" href="{{ canonical_url }}"/>{% endif %}
{%- block head_links_langs %}
{%- if alternate_urls %}
{%- for alt_ln, alternate_url in alternate_urls.items() %}
<link rel="alternate" hreflang="{{ alt_ln }}" href="{{ alternate_url }}"/>
{%- endfor %}
{%- endif %}
{%- endblock %}
{%- block head_apple_icons %}
{%- for size in [144, 114, 72, 57] %}
{%- set icon_name = 'apple-touch-icon-%d-precomposed.png' | format(size) %}
<link rel="apple-touch-icon-precomposed" sizes="{{ size }}x{{ size }}" href="{{ url_for('static', filename=icon_name) }}"/>
{%- endfor %}
{%- endblock head_apple_icons %}
{%- endblock head_links %}
{%- block header %}{% endblock header %}
{%- block css %}
{{ webpack['theme.css'] }}
{{ webpack['invenio-theme-tugraz-theme.css'] }}
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
{%- endblock css %}
{%- endblock head %}
</head>
<body ng-csp {% if body_css_classes %} class="{{ body_css_classes|join(' ') }}"{% endif %}{% if g.ln %} lang="{{ g.ln.split('_', 1)[0]|safe }}"{% if rtl_direction %} {{ rtl_direction|safe }}{% endif %}{% endif %} itemscope itemtype="http://schema.org/WebPage" data-spy="scroll" data-target=".scrollspy-target">
{%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 8]>
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
{%- endblock browserupgrade %}
{%- block body_inner %}
{%- block navbar_header %}
{%- 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 %}
{#
{%- block page_header %}
{% include config.THEME_HEADER_TEMPLATE %}
{%- endblock page_header %}
#}
{%- block page_body %}
{% include "invenio_theme/body.html" %}
{%- endblock page_body %}
{%- endblock body_inner %}
{%- block javascript %}
{% include config.THEME_JAVASCRIPT_TEMPLATE %}
{%- endblock javascript %}
{%- block trackingcode %}{% include config.THEME_TRACKINGCODE_TEMPLATE %}
{%- endblock %}
{%- endblock body %}
</body>
</html>

View File

@@ -4,15 +4,15 @@
{%- if config.SECURITY_REGISTERABLE %}
<div class="short-menu-right-button">
<a href="{{ url_for('security.register') }}">
<i class="user plus icon circular"></i> Sign Up
<a href="{{ url_for('security.register') }}" class="no-decoration">
{{_ ("Sign up")}}
</a>
</div>
{%- endif %}
<div class="short-menu-right-button">
<a href="{{url_for_security('login', next=request.path)}}" style="text-decoration:none">
<i class="sign in icon circular"></i> Login
<a href="{{url_for_security('login', next=request.path)}}" class="no-decoration">
{{_ ("Log in")}}
</a>
</div>
@@ -21,13 +21,13 @@
{%- if config.USERPROFILES %}
<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 }}
</a>
</div>
<div class="short-menu-right-button">
<a class="dropdown-item" href="{{url_for_security('logout')}}">
<i class="sign out icon circular"></i>{{_('Logout')}}
<a class="dropdown-item no-decoration" href="{{url_for_security('logout')}}">
{{_('Sign out')}}
</a>
</div>

View File

@@ -1,72 +0,0 @@
{#
Copyright (C) 2020 TUGRAZ
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.
#}
{%- extends "invenio_theme/page_cover.html" %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{% block page_body %}
<div class="ui padded segments big form">
<div class="ui segment padded">
<div class="divider hidden"></div>
{%- block form_header %}
<h3 class="ui header">{{ _('Log in to account') }}</h3>
{%- endblock form_header %}
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="ui fluid animated fade large button basic" tabindex="0">
<div class="visible content">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}">
{% trans type='TUG' %} Log in with {{ type }}{% endtrans %}
</a>
</div>
<div class="hidden content">
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px">
</div>
</div>
<div class="ui horizontal divider">
Or
</div>
{%- endif %}
{%- block form_outer %}
{%- with form = login_user_form %}
<form action="{{ url_for_security('login') }}" method="POST"
name="login_user_form">
{{ form.hidden_tag() }}
{{ form_errors(form) }}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
<button type="submit" class="ui fluid large submit primary button">
<i class="ui sign-in icon"></i>{{ _('Log In') }}
</button>
</form>
{%- endwith %}
{%- endblock form_outer %}
<div class="divider hidden"></div>
</div>
{%- block registerable %}
{%- if security.registerable %}
<div class="ui primary segment padded">
{% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %}
<a href="{{ url_for('security.register') }}">{{ _('Sign Up') }}</a>
</div>
{%- endif %}
{%- endblock registerable %}
</div>
{%- block recoverable %}
{%- if security.recoverable %}
<a class="ui inverted header tiny"
href="{{ url_for('security.forgot_password') }}">{{ _('Forgot password?') }}</a>
{%- endif %}
{%- endblock recoverable %}
{% endblock page_body %}

View File

@@ -0,0 +1,77 @@
{#
Copyright (C) 2020-2021 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.INVENIO_THEME_TUGRAZ_ACCOUNT_BASE %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{% block page_body %}
<div class="spacer-long"></div>
<div class="spacer-long"></div>
<div class="ui container">
<div class="ui centered grid padded">
<div class="ui padded segments huge form">
<div class="ui login segment padded">
<div class="divider hidden"></div>
{%- block form_header %}
<h3 class="ui login header">{{ _('Log in to Repository') }}</h3>
{%- endblock form_header %}
<div class="ui divider"></div>
<!--Log in with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
{% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a>
</div>
<div class="spacer-long"></div>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %}
{%- block form_outer %}
{%- 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.hidden_tag() }}
{{ form_errors(form) }}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
<button type="submit" class="ui fluid large submit button">
<i class="ui sign-in icon"></i>{{ _('Log In') }}
</button>
</form>
</div>
{%- endwith %}
{%- endblock form_outer %}
<div class="divider hidden"></div>
</div>
{%- block registerable %}
{%- if security.registerable %}
<div class="ui primary segment padded text-muted">
{% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %}
<a href="{{ url_for_security('register', next=request.args.get('next')) }}">{{ _('Sign up') }}</a>
</div>
{%- endif %}
{%- endblock registerable %}
{%- block recoverable %}
{%- if security.recoverable %}
<div class="ui basic segment padded">
<a class="ui inverted header tiny"
href="{{ url_for_security('forgot_password') }}">{{ _('Forgot password?') }}</a>
</div>
{%- endif %}
{%- endblock recoverable %}
</div>
</div>
</div>
{% endblock page_body %}

View File

@@ -1,55 +1,94 @@
{# -*- coding: utf-8 -*-
{#
Copyright (C) 2020 TUGRAZ
Copyright (C) 2020 mojib wali
Copyright (C) 2020 Nikita Lvov
This file is part of Invenio.
Copyright (C) 2015-2020 CERN.
Invenio is free software; you can redistribute it and/or modify it
under the terms of the MIT License; see LICENSE file for more details.
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.ACCOUNTS_COVER_TEMPLATE %}
{% extends config.INVENIO_THEME_TUGRAZ_ACCOUNT_BASE %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{% block page_body %}
<div class="spacer-long"></div>
<div class="ui padded segments big form">
<div class="ui segment padded relaxed">
<div class="divider hidden"></div>
<div class="ui container">
{%- block form_header %}
<h3 class="ui header">
{% trans sitename=config.ACCOUNTS_SITENAME %}Sign up for an {{ sitename }} account!{% endtrans %}
</h3>
{%- endblock form_header %}
<div class="ui stackable two column grid">
<div class="centered row">
<h1 class="ui header">{{ _('Create an Account') }}</h1>
</div>
{%- with form = register_user_form %}
<form action="{{ url_for_security('register') }}" method="POST"
name="register_user_form">
<div class="column" id="switch_left">
<div class="ui basic segment">
<h4 class="ui header">{{ _('Citeable. Discoverable.') }}</h4>
<p class="bodytext">
{{ _('Uploads get a Digital Object Identifier (DOI) to make them easily and uniquely citeable.')}}</h5>
<h4 class="ui header">{{ _('Communities.') }}</h4>
<p class="bodytext">
{{ _('Accept or reject uploads to your own community (e.g workshops, EU projects, institutions or entire disciplines).') }}
</h5>
<h4 class="ui header">{{ _('Trusted Research Data Management') }}</h4>
<p class="bodytext">
{{ _('Built on top of TU Graz expertise in managing of the research data from the Graz University of Technology.') }}
</h5>
</div>
</div>
<div class="column" id="switch_right">
<!--Sigup with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<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">
<span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span>
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a>
</div>
<div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %}
{%- block form_header %}
<!-- can add a header img-->
{%- block form_outer %}
{%- endblock form_outer %}
{%- endblock form_header %}
{%- with form = register_user_form %}
<form class="ui big form" action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
{{ form_errors(form) }}
{{ form.hidden_tag() }}
{%- block registration_form_fields scoped %}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
{%- if form.password_confirm %}
{{ render_field(form.password_confirm, icon="lock icon", errormsg=False) }}
{%- endif %}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
{%- if form.password_confirm %}
{{ render_field(form.password_confirm, icon="lock icon", errormsg=False) }}
{%- endif %}
{%- endblock registration_form_fields %}
{%- if form.recaptcha %}
<div class="grouped fields">{{ form.recaptcha() }}</div>
<div class="grouped fields">{{ form.recaptcha() }}</div>
{%- endif %}
<button type="submit" class="ui fluid large signup submit button">
<i class="ui edit outline icon"></i>{{ _('Sign Up') }}
</button>
<div class="centered row">
<button type="submit" class="ui fluid large submit button">
<i class="ui edit outline icon"></i>{{ _('Sign up') }}
</button>
</div>
</form>
{%- endwith %}
<div class="divider hidden"></div>
{%- endwith %}
<div class="ui divider"></div>
</div>
<div class="ui secondary segment padded">
{{ _('Already have an account?') }}
<a href="{{ url_for_security('login') }}">{{ _('Log In') }}</a>
</div>
</div>
</div>
{% endblock page_body %}
{% endblock page_body %}

View File

@@ -1,17 +1,88 @@
{#
Copyright (C) 2020 TUGRAZ
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
modify it under the terms of the MIT License; see LICENSE file for more
details.
#}
<!DOCTYPE html>
<html lang="en">
<html{% if html_css_classes %} class="{{ html_css_classes|join(' ') }}"{% endif %} lang="{{ current_i18n.locale.language|safe }}" dir="{{ current_i18n.locale.text_direction }}">
<head>
<meta charset="utf-8" />
{%- block head %}
{%- block head_meta %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{%- if description %}<meta name="description" content="{{ description }}" />{% endif %}
{%- if keywords %}<meta name="keywords" content="{{ keywords }}" />{% endif %}
{%- if config.get('THEME_GOOGLE_SITE_VERIFICATION', None) %}
{%- for google_id in config.THEME_GOOGLE_SITE_VERIFICATION %}
<meta name="google-site-verification" content="{{google_id}}"/>
{%- endfor %}
{%- endif %}
{%- endblock head_meta %}
{%- block head_title %}
{%- set title = title or _(config.THEME_SITENAME) or _('Invenio') %}
<title>{{title}}</title>
{%- endblock head_title %}
{%- block head_links %}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}"/>
{%- if keywords %}<link rel="canonical" href="{{ canonical_url }}"/>{% endif %}
{%- block head_links_langs %}
{%- if alternate_urls %}
{%- for alt_ln, alternate_url in alternate_urls.items() %}
<link rel="alternate" hreflang="{{ alt_ln }}" href="{{ alternate_url }}"/>
{%- endfor %}
{%- endif %}
{%- endblock %}
{%- block head_apple_icons %}
{%- for size in [144, 114, 72, 57] %}
{%- set icon_name = 'apple-touch-icon-%d-precomposed.png' | format(size) %}
<link rel="apple-touch-icon-precomposed" sizes="{{ size }}x{{ size }}" href="{{ url_for('static', filename=icon_name) }}"/>
{%- endfor %}
{%- endblock head_apple_icons %}
{%- endblock head_links %}
{%- block header %}{% endblock header %}
{%- block css %}
{{ webpack['theme.css'] }}
{{ webpack['invenio-theme-tugraz-theme.css'] }}
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
{%- endblock css %}
{%- endblock head %}
</head>
<body>
{%- block page_body %}{%- endblock page_body %}
<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">
{%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 8]>
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
{%- endblock browserupgrade %}
{%- block body_inner %}
{%- block page_header %}
{% include config.THEME_HEADER_TEMPLATE %}
{%- endblock page_header %}
{%- block page_body %}
{% include "invenio_theme/body.html" %}
{%- endblock page_body %}
{%- block page_footer %}
{% include config.THEME_FOOTER_TEMPLATE %}
{%- endblock page_footer %}
{%- endblock body_inner %}
{%- block javascript %}
{% include config.THEME_JAVASCRIPT_TEMPLATE %}
{%- endblock javascript %}
{%- block trackingcode %}{% include config.THEME_TRACKINGCODE_TEMPLATE %}
{%- endblock %}
{%- endblock body %}
</body>
</html>

View File

@@ -0,0 +1,10 @@
<ul>
<li><strong>{{_('Safe')}}</strong> &mdash; {{_('your research is stored safely for the future in TU Graz library for as long as TU Graz library exists.')}}</li>
<li><strong>{{_('Trusted')}}</strong> &mdash; {{_('built and operated by CERN and OpenAIRE to ensure that everyone can join in Open Science.')}}</li>
<li><strong>{{_('Citeable')}}</strong> &mdash; {{_('every upload is assigned a Digital Object Identifier (DOI), to make them citable and trackable.')}}</li>
<li><strong>{{_('No waiting time')}}</strong> &mdash; {{_('Uploads are made available online as soon as you hit publish, and your DOI is registered within seconds.')}}</li>
<li><strong>{{_('Open or closed')}}</strong> &mdash; {{_('Share e.g. anonymized clinical trial data with only medical professionals via our restricted access mode.')}}</li>
<li><strong>{{_('Versioning')}}</strong> &mdash; {{_("Easily update your dataset with our versioning feature.")}}</li>
<li><strong>{{_('Usage statisics')}}</strong> &mdash; {{_("All uploads display standards compliant usage statistics")}}</li>
</ul>

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

@@ -0,0 +1,41 @@
{#
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-rdm-records/doi.html
#}
{%- set id_doi = record.identifiers | doi_identifier %}
<div>
<div 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 }}">
</div>
<div id="doi-modal" class="ui modal fade badge-modal" data-modal="{{ id_doi }}">
<h2 class="header">
{{_ ("RDM DOI Badge")}}
</h2>
<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>
</div>

View File

@@ -1,6 +1,5 @@
{#
Copyright (C) 2020 TUGRAZ
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
modify it under the terms of the MIT License; see LICENSE file for more
@@ -16,19 +15,86 @@
{{ webpack['invenio-theme-tugraz-js.js'] }}
{%- endblock javascript %}
<div class="spacer"></div>
<footer id="footer" class="footer-bottom">
<div class="ui grid container">
<div class="eight wide column left aligned">
{% trans invenio_rdm="http://inveniosoftware.org/products/rdm" %}Powered by <a
href="{{invenio_rdm}}">InvenioRDM</a>{% endtrans %}
<div class="ui container">
<div class="ui grid">
<div class="doubling four column row">
<div class="column">
<h2>{{_ ("Repository")}}</h2>
<p class="bodytext">
<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="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Impressum")}}<i class="angle right icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Data protection")}}<i class="angle right icon"></i>
</a>
<br>
<a href="{{ url_for('invenio_theme_tugraz.comingsoon') }}">
{{_ ("Feedback")}}<i class="angle right icon"></i>
</a> -->
</p>
</div>
<div class="column">
<h2>{{_ ("Features")}}</h2>
<h4>{{_ ("Scalability")}}</h4>
<h4>{{_ ("Institutional integration")}}</h4>
<h4>{{_ ("Next Generation Repository")}}
</h4>
<h4>{{_ ("Repository Profiles")}}</h4>
<h4>{{_ ("Resilient")}}</h4>
</div>
<div class="column">
<h2>{{_ ("Connected Services")}}</h2>
<p class="bodytext">
<a href="https://pure.tugraz.at" title="PURE" target="_blank">
{{_ ("PURE")}} <i class="external alternate icon"></i></a><br>
<a href="http://campusonline.tugraz.at" title="CAMPUS online" target="_blank">
{{_ ("CampusOnline")}} <i class="external alternate icon"></i></a><br>
<a href="https://rdm.tugraz.at" title="Research Data Management" target="_blank">
{{_ ("Research Data Management")}} <i class="external alternate icon"></i></a><br>
</p>
</div>
<div class="eight wide column right aligned">
<!--
{%- if config.I18N_LANGUAGES %}
{% from "invenio_i18n/macros/language_selector.html" import language_selector_dropdown %}
{{ language_selector_dropdown() }}
{%- endif %}
-->
<div class="column">
<h2>{{_ ("Accessibility")}}</h2>
<p class="bodytext">{{_ ("Tipp:")}}<br> {{_ ("Use Ctrl + and Crtl -")}}<br> {{_ ("to change the font size.")}}</p>
</div>
</div>
</div>
</div>
</footer>

View File

@@ -1,25 +0,0 @@
{#
Copyright (C) 2020 TUGRAZ
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.
#}
{%- extends "semantic-ui/invenio_theme/frontpage.html" %}
{%- block page_header %}
{%- include "invenio_theme_tugraz/header_frontpage.html" %}
{%- endblock page_header %}
{%- block page_body %}
{%- block first_section%}
{%- endblock first_section%}
{%- block second_section%}
{%- endblock second_section%}
{%- endblock page_body%}

View File

@@ -1,6 +1,5 @@
{#
Copyright (C) 2020 TUGRAZ
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
modify it under the terms of the MIT License; see LICENSE file for more
@@ -11,110 +10,17 @@
<header>
{%- block navbar %}
<nav class="navbar navbar-default navbar-static-top">
<nav>
{%- block navbar_header %}
{%- include "invenio_theme_tugraz/navbar.html" %}
{%- endblock navbar_header %}
<div class="container">
{%- block navbar_header %}
<!----MENU------------------------------------------------------------->
<div class="short-menu" id="all-menu-top-table">
<div class="short-menu-left">
<div id="all-menu-top-left-item">
<div class="short-menu-left-search">
{%- if config.I18N_LANGUAGES %}
<div class="short-menu-left-lang" style="margin-right:10px; font-size:18px;">
{%- for l in current_i18n.get_locales() %}
{%- if current_i18n.language != l.language %}
<a
href="{{ url_for('invenio_i18n.set_lang', lang_code=l.language) }}">{{ l.get_display_name().upper() [0:2]}}</a>
{%- endif %}
{%- endfor %}
</div>
{%- endif %}
<div class="search-icon-header">
<a href="/search">
<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:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 26.01515 26.01515">
<g stroke-miterlimit="10" transform="translate(1,1)">
<circle cy="8.5" cx="8.5" r="8" style="stroke-miterlimit:10;stroke-width:2"></circle>
<path style="stroke-width:2;stroke-miterlimit:10;stroke-linecap:round" d="m14.156 14.156 9.344 9.344"></path>
</g>
</svg>
</a>
</div>
</div>
</div>
</div>
<div class="short-menu-right">
{# <div class="short-menu-right-h"> onclick="toggleVisibility('heading');"> #}
{%- block navbar_right %}
{%- include config.THEME_HEADER_LOGIN_TEMPLATE %}
{%- endblock navbar_right %}
</div>
</div>
</div>
<!----END MENU------------------------------------------------------------->
<div class="affiliation" id="int-header">
<div class="affiliation-text">
<a title="RDM" href="{{url_for('invenio_theme_frontpage.index')}}">
TU Graz
<br>{{_ ("Research Data Management")}}
</a>
</div>
<div class="affiliation-spacer"></div>
<div class="affiliation-logo" id="int-header-logo">
<a href="https://www.tugraz.at" title="TU Graz Home" target="_blank">
<div class="affiliation-logo-claim">
<div class="affiliation-logo-claim-single">{{_ ("SCIENCE")}}</div>
<div class="affiliation-logo-claim-single">{{_ ("PASSION")}}</div>
<div class="affiliation-logo-claim-single">{{_ ("TECHNOLOGY")}}</div>
</div>
<svg id="int-header-logo-img" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="51.862" width="141.1" version="1.1"
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
viewBox="0 0 141.10001 51.862499">
<g transform="matrix(1.25 0 0 -1.25 0 51.862)">
<g transform="scale(.1)">
<path d="m0 103.73h207.45v207.46l-207.45 0.01v-207.47z"></path>
<path d="m228.19 103.73h207.46v207.46h-207.46v-207.46z"></path>
<path d="m456.41 103.73h207.44v207.46h-207.44v-207.46z"></path>
<path d="m103.72 0h207.47v207.46h-207.47v-207.46z"></path>
<path d="m352.68 207.46h207.44v207.46h-207.44v-207.46z"></path>
<path style="fill:#231f20"
d="m751.04 277.91h-66.426v33.195h171.19v-33.195h-66.407v-173.73h-38.359v173.73"></path>
<path style="fill:#231f20"
d="m1048.3 180.22c0-12.461-2.25-23.711-6.72-33.75-4.5-10.039-10.61-18.555-18.36-25.567-7.76-7.031-16.9-12.421-27.503-16.21-10.605-3.809-22.109-5.7036-34.551-5.7036-12.422 0-23.945 1.8946-34.551 5.7036-10.605 3.789-19.824 9.179-27.656 16.21-7.851 7.012-13.984 15.528-18.34 25.567-4.394 10.039-6.582 21.289-6.582 33.75v130.89h38.379v-129.59c0-5.039 0.801-10.351 2.442-15.898 1.64-5.547 4.336-10.664 8.125-15.332s8.789-8.516 15.039-11.523c6.211-3.008 13.926-4.512 23.144-4.512 9.199 0 16.914 1.504 23.145 4.512 6.23 3.007 11.25 6.855 15.039 11.523 3.77 4.668 6.48 9.785 8.12 15.332 1.63 5.547 2.45 10.859 2.45 15.898v129.59h38.38v-130.89">
</path>
<path style="fill:#231f20"
d="m832.56 75.664c-7.597 3.2812-17.46 4.8632-25.332 4.8632-22.929 0-35.605-14.434-35.605-33.184 0-18.613 12.383-32.637 33.34-32.637 5.351 0 9.59 0.5274 12.969 1.3086v23.867h-20.84v14.414h39.687v-49.297c-10.41-2.6172-21.25-4.707-31.816-4.707-31.797 0-53.906 14.805-53.906 45.742 0 31.348 20.566 48.906 53.906 48.906 11.406 0 20.41-1.4453 28.867-3.8086l-1.27-15.469">
</path>
<path style="fill:#231f20"
d="m856.2 69.375h16.758v-15.332h0.293c0.84 6.289 8.574 16.914 19.824 16.914 1.836 0 3.828 0 5.782-0.5273v-17.715c-1.68 0.918-5.059 1.4454-8.457 1.4454-15.333 0-15.333-17.832-15.333-27.52v-24.785h-18.867v67.52">
</path>
<path style="fill:#231f20"
d="m913.75 65.84c7.324 3.1446 17.187 5.1172 25.215 5.1172 22.09 0 31.23-8.5351 31.23-28.457v-8.6523c0-6.8165 0.156-11.934 0.293-16.914 0.137-5.1172 0.41-9.8242 0.84-15.078h-16.602c-0.703 3.5352-0.703 8.0078-0.839 10.098h-0.293c-4.36-7.4618-13.81-11.661-22.38-11.661-12.793 0-25.332 7.207-25.332 20.059 0 10.078 5.195 15.976 12.383 19.258 7.187 3.2812 16.464 3.9453 24.355 3.9453h10.41c0 10.879-5.195 14.551-16.328 14.551-8.008 0-16.035-2.8907-22.363-7.3438l-0.586 15.078zm22.11-52.715c5.782 0 10.274 2.3633 13.223 6.0352 3.105 3.8086 3.945 8.6523 3.945 13.906h-8.164c-8.437 0-20.957-1.3086-20.957-11.68 0-5.7617 5.195-8.2617 11.953-8.2617">
</path>
<path style="fill:#231f20"
d="m985.69 69.375h57.422v-14.414l-36.04-39.473h37.31v-13.633h-60.235v14.297l36.715 39.59h-35.172v13.633">
</path>
<path d="m1059.6 0h69.102v69.121h-69.102v-69.121z"></path>
</g>
</g>
</svg>
</a>
</div>
</div>
{%- endblock navbar_header %}
<div class="ui container">
<div class="ui grid stackable container">
<div class="three column row centered" style="padding-bottom: 0;">
<div class="two wide column main-menu-entry main-menu-entry-svg">
<a href="{{url_for('invenio_theme_frontpage.index')}}" title="Home">
<div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_theme_tugraz.index')}}" title="Home" class="no-decoration">
<span class="home-inline">
<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"
version="1.1" xml:space="preserve" height="36.997" width="35.969"
@@ -125,60 +31,41 @@
transform="translate(-279.72 -403.28)">
</polyline>
</svg>
Home
{{_ ("Home")}}
</span>
</a>
</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">
<a href="{{ item.url }}">{{ item.text|safe }}</a>
</div>
{%- endfor %}
</div>
<div class="row">
<div class="column centered main-menu-underline">
<div class="main-menu-underline-line"></div>
{%- 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')}}" class="no-decoration">{{_ ("Uploads")}}</a>
</div>
</div>
<div class="row">
<div id="margin-divider" class="ui divider main-menu-underline-line">
</div>
</div>
<!--
{%- block navbar_inner %}
<div id="navbar" class="navbar-collapse collapse">
{%- block navbar_nav %}
{%- if config.THEME_SEARCHBAR %}
{%- block navbar_search %}
<div class="item" id="header-search-bar">
<form class="form" action="{{ config.THEME_SEARCH_ENDPOINT }}" role="search">
<div class="ui action icon input">
<input type="text" name="q" placeholder="{{ _('Search') }}">
<button type="submit" class="ui icon search button">
<i class="icon search"></i>
</button>
</div>
</form>
</div>
{%- endblock navbar_search %}
{%- endif %}
{%- endblock navbar_nav %}
</div>
{%- endblock navbar_inner %}
-->
<div class="spacer"></div>
</div>
{%- endblock navbar %}
</div>
</nav>
{%- endblock navbar %}
{%- block flashmessages %}
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
{%- endblock %}
{#
{%- block breadcrumbs %}
{%- include "invenio_theme/breadcrumbs.html" %}
{%- endblock breadcrumbs %}
</header>
#}
</header>

View File

@@ -1,53 +0,0 @@
{#
Copyright (C) 2020 TUGRAZ
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.
#}
{%- extends config.THEME_HEADER_TEMPLATE %}
{#- Remove search field from top bar on frontpage #}
{%- block navbar_search %}{% endblock %}
{%- block navbar %}
{{ super() }}
{%- block frontpage_search %}
<!--
<div id="frontpage-search-bar" class="ui container fluid cover-page">
-->
<div class="ui container two column centered middle aligned grid">
<div class="row middle aligned">
<div class="sixteen wide column frontpage-search">
<!--
{%- block frontpage_title %}
<h1 class="ui center aligned header">
{{ _(config.THEME_FRONTPAGE_TITLE) }}
</h1>
{%- endblock frontpage_title %}
-->
{%- block frontpage_form %}
<form action="/search" class="ui form">
<div class="ui fluid action input">
<input type="text" name="q" class="form-control" placeholder="Type and press enter to search">
<button type="submit" class="ui icon search button"><i class="search icon"></i></button>
</div>
</form>
<div class="ui divider hidden"></div>
{%- endblock frontpage_form %}
</div>
</div>
</div>
<!--
</div>
-->
{%- endblock frontpage_search %}
{% endblock %}

View File

@@ -1,6 +1,5 @@
{#
Copyright (C) 2020 TUGRAZ
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
modify it under the terms of the MIT License; see LICENSE file for more
@@ -9,8 +8,163 @@
{%- extends config.INVENIO_THEME_TUGRAZ_BASE_TEMPLATE %}
{%- block page_body %}
TODO: Example template, please remove if you do not need it.
{{_('Welcome to %(module_name)s', module_name=module_name)}}
{%- endblock %}
{%- block javascript %}
{{ webpack['invenio-theme-tugraz-js.js'] }}
{%- endblock javascript %}
{%- from "invenio_theme_tugraz/macros/authors.html" import creators -%}
{%- block page_body %}
<div class="ui container">
{%- block frontpage_search %}
{%- block frontpage_form %}
<div class="ui center aligned grid">
<div class="sixteen wide column">
<form action="{{config.THEME_SEARCH_ENDPOINT}}" class="ui form" role="search">
<div class="ui fluid big action icon input">
<input type="text" name="q" autofocus="autofocus" placeholder="{{ _("Type and press enter to search") }}">
<button type="submit" class="ui icon search button">
<i class="icon search"></i>
</button>
</div>
</form>
</div>
</div>
<div class="ui divider hidden"></div>
{%- endblock frontpage_form %}
{%- endblock frontpage_search %}
<div class="ui stackable grid">
<!---Recent uploads-->
<div class="ten wide column random-records-frontpage">
<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 %}
{%- set creation_date = r._created|from_isodatetime -%}
{%- set record_url = url_for('invenio_app_rdm_records.record_detail', pid_value=r.id) %}
<article>
<!--TODO:
something with doi
-->
<div class="badges">
<!--Publication date/Version badge-->
<span class="ui label record-version" title="{{_('Publication date')}}">
{{ r.metadata.publication_date }} {{ '(' ~ r.metadata.version ~ ')' if r.metadata.version }}
</span>
<!--Resource type badge-->
<span class="ui label teal" title="{{_('Resource type')}}">
{{r.metadata.resource_type | cast_to_dict | vocabulary_title('resource_type') }}
</span>
<span class="label record-version">
<!--TODO: add subtype--->
</span>
</div>
<h4>
<a href="{{ record_url }}" class="no-decoration">
{{r.metadata.title}}
</a>
</h4>
<p>
{{ creators(r.metadata.creators) }}
</p>
<p class="hidden-xs">
<a href="{{record_url}}" class="no-decoration">
{{ r.metadata.description | striptags | truncate(300) }}
</a>
</p>
<div class="ui grid">
<div class="two column row">
<div class="left floated column">
{%- for s in r.metadata.subjects %}
<div class="ui tiny label">{{s.subject}}</div>
{%- endfor %}
<div>
<small>
{% trans user=userprofile, date=creation_date | dateformat('long')%}
Uploaded on {{date}}
{% endtrans %}
</small>
</div>
</div>
<!--Disabled on feb-relase - enable when stable-->
<!-- <div class="right floated column">
<span class="access-right">
<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>
</div> -->
</div>
</div>
</article>
<!----TODO: more versions
-->
{%- endfor %}
{% if records %}
<div class="ui centered grid">
<a class="ui button more" href="{{url_for('invenio_search_ui.search')}}">{{_('More')}}</a>
</div>
{%- endif %}
</div>
<!---segments-->
<div class="six wide column">
<!--contact us-->
<div class="ui segment" style="padding-bottom: 10px;">
<h4>{{_ ("Need help?")}}</h4>
{%- if config.INVENIO_THEME_TUGRAZ_CONTACT_FORM %}
<div style="padding-bottom: 10px;">
<a id="feedback-form" class="fluid ui button">
{{_ ("Contact us")}}
</a>
</div>
{%- endif %}
<p>
{{config.THEME_SITENAME}} {{_ ("prioritizes all Recent uploads.")}}
</p>
<p>
{{_ ("We can help with:")}}
</p>
<ul>
<li>{{_ ("Uploading your research data, software, preprints, etc.")}}</li>
<li>{{_ ("One-on-one with")}} {{config.THEME_SITENAME}} {{_ ("supporters.")}}</li>
<li>{{_ ("Quota increases beyond our default policy.")}}</li>
<li>{{_ ("Scripts for automated uploading of larger datasets.")}}</li>
</ul>
</div>
<div class="ui segment" style="padding-bottom: 10px;">
<h4>{{_ ("Why use")}} {{config.THEME_SITENAME}}?</h4>
{% include "invenio_theme_tugraz/benefits.html" %}
</div>
</div>
</div>
</div>
{%- endblock %}

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

@@ -0,0 +1,30 @@
{#
Copyright (C) 2020 Zenodo
Copyright (C) 2020 TUGRAZ
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.
#}
{%- macro creators (authors_list) %}
{%- for creators in authors_list %}
{%- 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>
{%- endif %}
<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 %}
{%- endfor %}
{%- endmacro %}
<!--TODO: contributers-->
{%- macro contributors(contributors_list) %}
{%- for group in contributors_list|groupby('type')%}
<h5>{{group.grouper}}(s)</h5>
{{authors(group.list)}}
{%- endfor %}
{%- endmacro %}

View File

@@ -0,0 +1,118 @@
{#
Copyright (C) 2020-2021 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.
#}
<div class="ui container">
<div class="short-menu" id="all-menu-top-table">
<div class="short-menu-left">
<div id="all-menu-top-left-item">
<div class="short-menu-left-search">
{%- if config.I18N_LANGUAGES %}
<div class="short-menu-left-lang" style="margin-right:10px; font-size:18px;">
{%- for l in current_i18n.get_locales() %}
{%- if current_i18n.language != l.language %}
<a
href="{{ url_for('invenio_i18n.set_lang', lang_code=l.language) }}" class="no-decoration">{{ l.get_display_name().upper() [0:2]}}</a>
{%- endif %}
{%- endfor %}
</div>
{%- endif %}
<div class="search-icon-header">
<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#"
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/"
viewBox="0 0 26.01515 26.01515">
<g stroke-miterlimit="10" transform="translate(1,1)">
<circle cy="8.5" cx="8.5" r="8" style="stroke-miterlimit:10;stroke-width:2"></circle>
<path style="stroke-width:2;stroke-miterlimit:10;stroke-linecap:round" d="m14.156 14.156 9.344 9.344">
</path>
</g>
</svg>
</a>
</div>
</div>
</div>
</div>
<div class="short-menu-right">
{%- block navbar_right %}
{%- include config.THEME_HEADER_LOGIN_TEMPLATE %}
{%- endblock navbar_right %}
</div>
</div>
<!----END MENU------------------------------------------------------------->
<div class="ui grid" id="main-logo">
<!--Left-->
<div class="left floated left aligned six wide column" id="repo-logo">
<div class="inline-elements">
<div class="repo-img">
<img height="51.862" src="{{ url_for('static', filename='images/library_logo.png')}}">
</div>
<div class="affiliation-text">
<a title="Home" href="{{url_for('invenio_theme_tugraz.index')}}" class="no-decoration">
TU GRAZ
<br>
{{_ ("REPOSITORY")}}
<br>
{{_ ("LIBRARY & ARCHIVES")}}
</a>
</div>
</div>
</div>
<!--Right-->
<div class="right floated right aligned six wide column">
<div class="affiliation-logo" id="int-header-logo">
<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-single">{{_ ("SCIENCE")}}</div>
<div class="affiliation-logo-claim-single">{{_ ("PASSION")}}</div>
<div class="affiliation-logo-claim-single">{{_ ("TECHNOLOGY")}}</div>
</div>
<svg id="int-header-logo-img" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="51.862" width="141.1" version="1.1"
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"
viewBox="0 0 141.10001 51.862499">
<g transform="matrix(1.25 0 0 -1.25 0 51.862)">
<g transform="scale(.1)">
<path d="m0 103.73h207.45v207.46l-207.45 0.01v-207.47z"></path>
<path d="m228.19 103.73h207.46v207.46h-207.46v-207.46z"></path>
<path d="m456.41 103.73h207.44v207.46h-207.44v-207.46z"></path>
<path d="m103.72 0h207.47v207.46h-207.47v-207.46z"></path>
<path d="m352.68 207.46h207.44v207.46h-207.44v-207.46z"></path>
<path style="fill:#231f20"
d="m751.04 277.91h-66.426v33.195h171.19v-33.195h-66.407v-173.73h-38.359v173.73"></path>
<path style="fill:#231f20"
d="m1048.3 180.22c0-12.461-2.25-23.711-6.72-33.75-4.5-10.039-10.61-18.555-18.36-25.567-7.76-7.031-16.9-12.421-27.503-16.21-10.605-3.809-22.109-5.7036-34.551-5.7036-12.422 0-23.945 1.8946-34.551 5.7036-10.605 3.789-19.824 9.179-27.656 16.21-7.851 7.012-13.984 15.528-18.34 25.567-4.394 10.039-6.582 21.289-6.582 33.75v130.89h38.379v-129.59c0-5.039 0.801-10.351 2.442-15.898 1.64-5.547 4.336-10.664 8.125-15.332s8.789-8.516 15.039-11.523c6.211-3.008 13.926-4.512 23.144-4.512 9.199 0 16.914 1.504 23.145 4.512 6.23 3.007 11.25 6.855 15.039 11.523 3.77 4.668 6.48 9.785 8.12 15.332 1.63 5.547 2.45 10.859 2.45 15.898v129.59h38.38v-130.89">
</path>
<path style="fill:#231f20"
d="m832.56 75.664c-7.597 3.2812-17.46 4.8632-25.332 4.8632-22.929 0-35.605-14.434-35.605-33.184 0-18.613 12.383-32.637 33.34-32.637 5.351 0 9.59 0.5274 12.969 1.3086v23.867h-20.84v14.414h39.687v-49.297c-10.41-2.6172-21.25-4.707-31.816-4.707-31.797 0-53.906 14.805-53.906 45.742 0 31.348 20.566 48.906 53.906 48.906 11.406 0 20.41-1.4453 28.867-3.8086l-1.27-15.469">
</path>
<path style="fill:#231f20"
d="m856.2 69.375h16.758v-15.332h0.293c0.84 6.289 8.574 16.914 19.824 16.914 1.836 0 3.828 0 5.782-0.5273v-17.715c-1.68 0.918-5.059 1.4454-8.457 1.4454-15.333 0-15.333-17.832-15.333-27.52v-24.785h-18.867v67.52">
</path>
<path style="fill:#231f20"
d="m913.75 65.84c7.324 3.1446 17.187 5.1172 25.215 5.1172 22.09 0 31.23-8.5351 31.23-28.457v-8.6523c0-6.8165 0.156-11.934 0.293-16.914 0.137-5.1172 0.41-9.8242 0.84-15.078h-16.602c-0.703 3.5352-0.703 8.0078-0.839 10.098h-0.293c-4.36-7.4618-13.81-11.661-22.38-11.661-12.793 0-25.332 7.207-25.332 20.059 0 10.078 5.195 15.976 12.383 19.258 7.187 3.2812 16.464 3.9453 24.355 3.9453h10.41c0 10.879-5.195 14.551-16.328 14.551-8.008 0-16.035-2.8907-22.363-7.3438l-0.586 15.078zm22.11-52.715c5.782 0 10.274 2.3633 13.223 6.0352 3.105 3.8086 3.945 8.6523 3.945 13.906h-8.164c-8.437 0-20.957-1.3086-20.957-11.68 0-5.7617 5.195-8.2617 11.953-8.2617">
</path>
<path style="fill:#231f20"
d="m985.69 69.375h57.422v-14.414l-36.04-39.473h37.31v-13.633h-60.235v14.297l36.715 39.59h-35.172v13.633">
</path>
<path d="m1059.6 0h69.102v69.121h-69.102v-69.121z"></path>
</g>
</g>
</svg>
</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,107 @@
{#
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-rdm-records/record_landing_page.html
#}
{%- extends config.BASE_TEMPLATE %}
{%- block css %}
{{ super() }}
{%- endblock css %}
{%- 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 %}
<div class="ui container">
<div class="ui padded relaxed grid">
<div class="two column row">
<div class="ten wide column">
{%- block record_body %}
<div class="badges">
<span class="ui label record-version" title="{{_('Publication date')}}">
{{ record.metadata.publication_date }} {{ '(' ~ record.metadata.version ~ ')' if record.metadata.version }}
</span>
<!--Resource type badge-->
<span class="ui label teal" title="{{_('Resource type')}}">
{{record.ui.resource_type }}
</span>
</div>
<h1 style="margin-top: -6px">{{ record.metadata.title }}</h1>
<p>{%- include "invenio_app_rdm/landing_page/details/creators.html" %}</p>
<p>{%- include "invenio_app_rdm/landing_page/details/contributors.html" %}</p>
<div class="ui grid" style="margin-bottom: 10px;">
<div class="two column row">
<div class="left floated column">
{%- 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 class="right floated column">
<span class="ui label access-right">
<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>
</div>
</div>
</div>
{%- include "invenio_app_rdm/landing_page/details/description.html" %}
{# files #}
{%- if record.files and record | can_list_files %}
{%- set files = record.files | make_files_preview_compatible %}
{%- set default_preview_file = files | select_preview_file(default_preview=record.files.default_preview) %}
{{ preview_file_box(default_preview_file, pid) }}
{{ file_list_box(files, pid) }}
{% endif %}
{%- endblock record_body %}
</div>
<div class="six wide column">
<div id="recordManagement"
class="ui container"
data-recid='{{ record["id"] | tojson }}'>
</div>
{% block sidebar %}
{%- include "invenio_app_rdm/landing_page/details/side_bar.html" %}
{% endblock sidebar %}
</div>
</div>
</div>
</div>
{%- endblock page_body %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-app-rdm-records.js'] }}
{# Communities management #}
{{ webpack['invenio-communities-records.js'] }}
{{ webpack['previewer_theme.js'] }}
{{ webpack['invenio-app-rdm-record-management.js'] }}
{%- 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

@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.0\n"
"Project-Id-Version: invenio-theme-tugraz 1.0.4\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-06-25 14:39+0200\n"
"PO-Revision-Date: 2020-06-25 14:39+0200\n"
"POT-Creation-Date: 2021-03-19 10:53+0100\n"
"PO-Revision-Date: 2020-10-06 10:27+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n"
"Language-Team: de <LL@li.org>\n"
@@ -17,88 +17,378 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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:43
msgid "Application Name"
msgstr ""
#: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:54
msgid "TU Graz Repository"
msgstr "TU Graz Repository"
#: invenio_theme_tugraz/config.py:54
#: invenio_theme_tugraz/config.py:57
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository"
msgstr "Repository"
#: invenio_theme_tugraz/config.py:80
msgid "German"
msgstr "Deutsche"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:26
msgid "Invenio"
msgstr "Invenio"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid "Safe"
msgstr "Sicher"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid ""
"your research is stored safely for the future in TU Graz library for as "
"long as TU Graz library exists."
msgstr ""
"Ihre Forschung wird für die Zukunft sicher in der Bibliothek der TU Graz "
"gespeichert als solange die Bibliothek TU Graz existiert."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "Trusted"
msgstr "Vertrauenswürdig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid ""
"built and operated by CERN and OpenAIRE to ensure that everyone can join "
"in Open Science."
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
msgid "Citeable"
msgstr "Zitierfähig "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid ""
"every upload is assigned a Digital Object Identifier (DOI), to make them "
"citable and trackable."
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
msgid "No waiting time"
msgstr "Keine Wartezeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid ""
"Uploads are made available online as soon as you hit publish, and your "
"DOI is registered within seconds."
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
msgid "Open or closed"
msgstr "Offen oder geschlossen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid ""
"Share e.g. anonymized clinical trial data with only medical professionals"
" via our restricted access mode."
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
msgid "Versioning"
msgstr "Versionierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Easily update your dataset with our versioning feature."
msgstr "Einfaches Updaten ihrer Datensätze mit unserere Versionierung."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "Usage statisics"
msgstr "Nutzungsstatistiken"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "All uploads display standards compliant usage statistics"
msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
msgid "Impressum"
msgstr "Imprint"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:37
msgid "Data protection"
msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:41
msgid "Feedback"
msgstr "Feedback"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:50
msgid "Features"
msgstr "Features"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
msgid "Scalability"
msgstr "Skalierbarkeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:54
msgid "Institutional integration"
msgstr "Institutionelle Einbindung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:56
msgid "Next Generation Repository"
msgstr "Repositorium der nächsten Generation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:59
msgid "Repository Profiles"
msgstr "Repositorienprofile"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
msgid "Resilient"
msgstr "Resilient, widerstandsfähig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
msgid "Connected Services"
msgstr "Verbundene Services "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "PURE"
msgstr "PURE"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
msgid "CampusOnline"
msgstr "CampusOnline"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:78
msgid "Research Data Management"
msgstr "Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:85
msgid "Accessibility"
msgstr "Barrierefreiheit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Tipp:"
msgstr ""
#. NOTE: This is a note to a translator.
#: invenio_theme_tugraz/ext.py:24
msgid "A translation string"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Use Ctrl + and Crtl -"
msgstr "Verwenden Sie Strg+ und Strg-"
#: invenio_theme_tugraz/views.py:30
msgid "invenio-theme-tugraz"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "to change the font size."
msgstr "Um die Schriftgröße zu ändern."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:22
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
msgid "Home"
msgstr "Startseite"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:47
msgid "Uploads"
msgstr "Hochladen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:27
msgid "Type and press enter to search"
msgstr "Suchbegriff eingeben und “Enter” drücken (?)"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:43
msgid "Recent uploads"
msgstr "Kürzlich hochgeladene Dateien"
#: 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"
msgstr "Datum der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:66
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:38
msgid "Resource type"
msgstr "Art der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:99
#, python-format
msgid ""
"Powered by <a\n"
" href=\"%(invenio_rdm)s\">InvenioRDM</a>"
msgstr ""
"\n"
" Uploaded on %(date)s\n"
" "
msgstr "Hochgeladen am %(date)s\n"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:119
msgid "Main Menu"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:126
msgid "More"
msgstr "Mehr"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:132
msgid "Research Data Management"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "Need help?"
msgstr "Brauchen Sie Hilfe?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:141
msgid "WISSEN"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:140
msgid "Contact us"
msgstr "Kontaktiere uns"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:142
msgid "TECHNIK"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
msgid "prioritizes all Recent uploads."
msgstr "Reiht die neuesten Uploads vor."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:143
msgid "LEIDENSCHAFT"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:148
msgid "We can help with:"
msgstr "Wir können helfen bei:"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:191
msgid "Search"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc."
msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:14
#, python-format
msgid "Welcome to %(module_name)s"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with"
msgstr "Eins-zu-eins mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters."
msgstr "Unterstützern"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy."
msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets."
msgstr "Skripte zum automatisierten Hochladen größerer Datensätze."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:161
msgid "Why use"
msgstr "Warum"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:66
#, fuzzy
msgid "REPOSITORY"
msgstr "Repository"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:68
msgid "LIBRARY & ARCHIVES"
msgstr "Bibliothek und Archiv"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
msgid "SCIENCE"
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
msgid "TECHNOLOGY"
msgstr "LEIDENSCHAFT"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up"
msgstr "Registrierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
msgid "Log in"
msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
msgid "Logout"
msgstr ""
msgid "Sign out"
msgstr "Ausloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:18
msgid "Log in to account"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:23
msgid "Log in to Repository"
msgstr "Anmelden"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#, python-format
msgid " Log in with %(type)s"
msgstr ""
msgstr "Einloggen mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:41
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or"
msgstr "Oder"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
msgid "Log In"
msgstr ""
msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:53
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#, python-format
msgid "New to %(sitename)s?"
msgstr ""
msgstr "Neu im %(sitename)s?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:54
msgid "Sign Up"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:63
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
msgid "Forgot password?"
msgstr "Passwort vergessen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22
msgid "Create an Account"
msgstr "Einen Account erstellen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27
msgid "Citeable. Discoverable."
msgstr "Zitierfähig. Auffindbar."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29
msgid ""
"Uploads get a Digital Object Identifier (DOI) to make them easily and "
"uniquely citeable."
msgstr ""
"Uploads erhalten eine DOI und werden damit leichtauffindbar und "
"zitierfähig."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30
msgid "Communities."
msgstr "Communities"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32
msgid ""
"Accept or reject uploads to your own community (e.g workshops, EU "
"projects, institutions or entire disciplines)."
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
msgid "Trusted Research Data Management"
msgstr "Vertrauenswürdiges Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36
msgid ""
"Built on top of TU Graz expertise in managing of the research data from "
"the Graz University of Technology."
msgstr "Gebaut basierend auf Expertise derTU Graz im Bereich Data Management"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
msgid "Sign up with TUGRAZ "
msgstr "Mit Ihrem TUGonline-Account einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28
msgid "RDM DOI Badge"
msgstr "RDM DOI Abzeichen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32
msgid "DOI"
msgstr "DOI"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:44
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

@@ -1,103 +1,369 @@
# 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
# invenio-theme-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.0\n"
"Project-Id-Version: invenio-theme-tugraz 1.9.3\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-06-25 14:39+0200\n"
"POT-Creation-Date: 2021-03-19 10:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\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:43
msgid "Application Name"
#: invenio_theme_tugraz/config.py:14 invenio_theme_tugraz/config.py:54
msgid "TU Graz Repository"
msgstr ""
#: invenio_theme_tugraz/config.py:54
#: invenio_theme_tugraz/config.py:57
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:30
msgid "Repository"
msgstr ""
#: invenio_theme_tugraz/config.py:80
msgid "German"
msgstr ""
#. NOTE: This is a note to a translator.
#: invenio_theme_tugraz/ext.py:24
msgid "A translation string"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:26
msgid "Invenio"
msgstr ""
#: invenio_theme_tugraz/views.py:30
msgid "invenio-theme-tugraz"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid "Safe"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:22
#, python-format
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid ""
"Powered by <a\n"
" href=\"%(invenio_rdm)s\">InvenioRDM</a>"
"your research is stored safely for the future in TU Graz library for as "
"long as TU Graz library exists."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:119
msgid "Main Menu"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "Trusted"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:132
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid ""
"built and operated by CERN and OpenAIRE to ensure that everyone can join "
"in Open Science."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "Citeable"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid ""
"every upload is assigned a Digital Object Identifier (DOI), to make them "
"citable and trackable."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid "No waiting time"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid ""
"Uploads are made available online as soon as you hit publish, and your "
"DOI is registered within seconds."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid "Open or closed"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid ""
"Share e.g. anonymized clinical trial data with only medical professionals"
" via our restricted access mode."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Versioning"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Easily update your dataset with our versioning feature."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "Usage statisics"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "All uploads display standards compliant usage statistics"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:33
msgid "Impressum"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:37
msgid "Data protection"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:41
msgid "Feedback"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:50
msgid "Features"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:52
msgid "Scalability"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:54
msgid "Institutional integration"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:56
msgid "Next Generation Repository"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:59
msgid "Repository Profiles"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:61
msgid "Resilient"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:68
msgid "Connected Services"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:72
msgid "PURE"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:75
msgid "CampusOnline"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:78
msgid "Research Data Management"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:141
msgid "WISSEN"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:85
msgid "Accessibility"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:142
msgid "TECHNIK"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Tipp:"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:143
msgid "LEIDENSCHAFT"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Use Ctrl + and Crtl -"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:191
msgid "Search"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "to change the font size."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:14
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:34
msgid "Home"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:47
msgid "Uploads"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:27
msgid "Type and press enter to search"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:43
msgid "Recent uploads"
msgstr ""
#: 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"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:66
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/record_landing_page.html:38
msgid "Resource type"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:99
#, python-format
msgid "Welcome to %(module_name)s"
msgid ""
"\n"
" Uploaded on %(date)s\n"
" "
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:126
msgid "More"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "Need help?"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:140
msgid "Contact us"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:145
msgid "prioritizes all Recent uploads."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:148
msgid "We can help with:"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:153
msgid "Uploading your research data, software, preprints, etc."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "One-on-one with"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:154
msgid "supporters."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:155
msgid "Quota increases beyond our default policy."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:156
msgid "Scripts for automated uploading of larger datasets."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:161
msgid "Why use"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:66
msgid "REPOSITORY"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:68
msgid "LIBRARY & ARCHIVES"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78
msgid "SCIENCE"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "PASSION"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "TECHNOLOGY"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:61
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
msgid "Log in"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
msgid "Logout"
msgid "Sign out"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:18
msgid "Log in to account"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:23
msgid "Log in to Repository"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:26
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:30
#, python-format
msgid " Log in with %(type)s"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:41
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:35
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
msgid "Log In"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:53
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#, python-format
msgid "New to %(sitename)s?"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:54
msgid "Sign Up"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login.html:63
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:70
msgid "Forgot password?"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22
msgid "Create an Account"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27
msgid "Citeable. Discoverable."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29
msgid ""
"Uploads get a Digital Object Identifier (DOI) to make them easily and "
"uniquely citeable."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30
msgid "Communities."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32
msgid ""
"Accept or reject uploads to your own community (e.g workshops, EU "
"projects, institutions or entire disciplines)."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:34
msgid "Trusted Research Data Management"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36
msgid ""
"Built on top of TU Graz expertise in managing of the research data from "
"the Graz University of Technology."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
msgid "Sign up with TUGRAZ "
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28
msgid "RDM DOI Badge"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32
msgid "DOI"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/landingpage/detail.html:44
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 -*-
#
# 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
# 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``.
"""
__version__ = '1.0.2'
__version__ = "2.0.5"

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -8,23 +8,177 @@
"""invenio module for TUGRAZ theme."""
# TODO: This is an example file. Remove it if you do not need it, including
# the templates and static folders as well as the test case.
import binascii
from os import environ
from typing import Dict
from flask import Blueprint, render_template
from flask_babelex import gettext as _
blueprint = Blueprint(
'invenio_theme_tugraz',
__name__,
template_folder='templates',
static_folder='static',
import requests
from elasticsearch_dsl.utils import AttrDict
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
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",
__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.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")
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():
"""Render a basic view."""
"""Frontpage."""
return render_template(
"invenio_theme_tugraz/index.html",
module_name=_('invenio-theme-tugraz'))
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

@@ -10,17 +10,39 @@ from invenio_assets.webpack import WebpackThemeBundle
theme = WebpackThemeBundle(
__name__,
'assets',
default='semantic-ui',
"assets",
default="semantic-ui",
themes={
'semantic-ui': dict(
"semantic-ui": dict(
entry={
'invenio-theme-tugraz-theme':
'./less/invenio_theme_tugraz/theme.less',
'invenio-theme-tugraz-js':
'./js/invenio_theme_tugraz/theme.js'
"invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less",
"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,12 +1,12 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
# details.
[pytest]
pep8ignore = docs/conf.py ALL
addopts = --pep8 --doctest-glob="*.rst" --doctest-modules --cov=invenio_theme_tugraz --cov-report=term-missing
testpaths = docs tests invenio_theme_tugraz
addopts = --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_theme_tugraz --cov-report=term-missing tests invenio_theme_tugraz
testpaths = tests invenio_theme_tugraz
live_server_scope = module

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more

View File

@@ -1,14 +1,33 @@
#!/usr/bin/env sh
#!/usr/bin/env bash
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 mojib wali.
# Copyright (C) 2019-2020 CERN.
# Copyright (C) 2019-2020 Northwestern University.
# Copyright (C) 2020-2021 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.
pydocstyle invenio_theme_tugraz tests docs && \
isort -rc -c -df && \
check-manifest --ignore ".travis-*" && \
sphinx-build -qnNW docs docs/_build/html && \
python setup.py test
# 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 sphinx.cmd.build -qnNW docs docs/_build/html
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
python -m pytest
tests_exit_code=$?
python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
exit "$tests_exit_code"

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -37,3 +37,20 @@ output-dir = invenio_theme_tugraz/translations/
[update_catalog]
input-file = invenio_theme_tugraz/translations/messages.pot
output-dir = invenio_theme_tugraz/translations/
[flake8]
max-line-length = 88
extend-ignore = E203
select = C,E,F,W,B,B950
ignore = E501
[isort]
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
use_parentheses = True
ensure_newline_before_comments = True
line_length = 88
[pycodestyle]
ignore = E203,E501

135
setup.py
View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -12,40 +12,55 @@ import os
from setuptools import find_packages, setup
readme = open('README.rst').read()
history = open('CHANGES.rst').read()
readme = open("README.rst").read()
history = open("CHANGES.rst").read()
tests_require = [
'check-manifest>=0.25',
'coverage>=4.0',
'isort>=4.3.3, <5.0.0',
'pydocstyle>=2.0.0',
'pytest-cov>=2.5.1',
'pytest-pep8>=1.0.6',
'pytest-invenio>=1.2.1',
"pytest-invenio>=1.4.0",
"invenio-app>=1.3.0,<2.0.0",
]
# 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 = {
'docs': [
'Sphinx>=1.5.1',
"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": [
"Sphinx>=3",
],
'tests': tests_require,
"tests": tests_require,
}
extras_require['all'] = []
for reqs in extras_require.values():
extras_require['all'].extend(reqs)
extras_require["all"] = []
for name, reqs in extras_require.items():
if name[0] == ":" or name in (
"elasticsearch7",
"mysql",
"postgresql",
"sqlite",
):
continue
extras_require["all"].extend(reqs)
setup_requires = [
'Babel>=1.3',
'pytest-runner>=3.0.0,<5',
"Babel>=1.3",
"pytest-runner>=3.0.0,<5",
]
install_requires = [
'Flask-BabelEx>=0.9.4',
'Flask-WebpackExt>=1.0.0',
'invenio-assets>=1.2.0,<1.3.0',
'invenio-i18n>=1.2.0',
"Flask-BabelEx>=0.9.4",
"Flask-WebpackExt>=1.0.0",
"invenio-assets>=1.2.0",
"invenio-i18n>=1.2.0",
"elasticsearch_dsl>=7.2.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()
@@ -53,69 +68,57 @@ packages = find_packages()
# Get the version string. Cannot be done with import!
g = {}
with open(os.path.join('invenio_theme_tugraz', 'version.py'), 'rt') as fp:
with open(os.path.join("invenio_theme_tugraz", "version.py"), "rt") as fp:
exec(fp.read(), g)
version = g['__version__']
version = g["__version__"]
setup(
name='invenio-theme-tugraz',
name="invenio-theme-tugraz",
version=version,
description=__doc__,
long_description=readme + '\n\n' + history,
keywords='invenio, theme, invenioRDM, TU-Graz, Graz University of Technology, statistics',
license='MIT',
author='mojib wali',
author_email='mojib.wali@tugraz.at',
url='https://github.com/mb-wali/invenio-theme-tugraz',
long_description=readme + "\n\n" + history,
keywords="invenio, theme, invenioRDM, TU-Graz, Graz University of Technology, statistics",
license="MIT",
author="mojib wali",
author_email="mojib.wali@tugraz.at",
url="https://github.com/tu-graz-library/invenio-theme-tugraz",
packages=packages,
zip_safe=False,
include_package_data=True,
platforms='any',
platforms="any",
entry_points={
'invenio_base.apps': [
'invenio_theme_tugraz = invenio_theme_tugraz:inveniothemetugraz',
"invenio_base.apps": [
"invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz",
],
'invenio_base.blueprints': [
'invenio_theme_tugraz = invenio_theme_tugraz.views:blueprint',
"invenio_base.blueprints": [
"invenio_theme_tugraz = invenio_theme_tugraz.views:ui_blueprint",
],
'invenio_i18n.translations': [
'messages = invenio_theme_tugraz',
"invenio_i18n.translations": [
"messages = invenio_theme_tugraz",
],
'invenio_assets.webpack': [
'invenio_theme_tugraz_theme = invenio_theme_tugraz.webpack:theme',
"invenio_assets.webpack": [
"invenio_theme_tugraz_theme = invenio_theme_tugraz.webpack:theme",
],
'invenio_config.module': [
'invenio_theme_tugraz = invenio_theme_tugraz.config',
"invenio_config.module": [
"invenio_theme_tugraz = invenio_theme_tugraz.config",
],
# TODO: Edit these entry points to fit your needs.
# 'invenio_access.actions': [],
# 'invenio_admin.actions': [],
# 'invenio_assets.bundles': [],
# 'invenio_base.api_apps': [],
# 'invenio_base.api_blueprints': [],
# 'invenio_base.blueprints': [],
# 'invenio_celery.tasks': [],
# 'invenio_db.models': [],
# 'invenio_pidstore.minters': [],
# 'invenio_records.jsonresolver': [],
},
extras_require=extras_require,
install_requires=install_requires,
setup_requires=setup_requires,
tests_require=tests_require,
classifiers=[
'Environment :: Web Environment',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
'Topic :: Software Development :: Libraries :: Python Modules',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Development Status :: 1 - Planning',
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Development Status :: 3 - Alpha",
],
)

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -12,32 +12,22 @@ See https://pytest-invenio.readthedocs.io/ for documentation on which test
fixtures are available.
"""
import os
import shutil
import tempfile
import pytest
from flask import Flask
from flask_babelex import Babel
from invenio_db import InvenioDB, db
from invenio_i18n import InvenioI18N
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.views import blueprint
from invenio_theme_tugraz import InvenioThemeTugraz
@pytest.fixture()
def app():
"""Flask app fixture."""
app = Flask('myapp')
app.config.update(
I18N_LANGUAGES=[('en', 'English'), ('de', 'German')],
)
Babel(app)
InvenioI18N(app)
app.register_blueprint(create_blueprint_from_app(app))
return app
@pytest.fixture(scope='module')
@pytest.fixture(scope="module")
def celery_config():
"""Override pytest-invenio fixture.
@@ -46,14 +36,38 @@ def celery_config():
return {}
@pytest.fixture(scope='module')
def create_app(instance_path):
"""Application factory fixture."""
def factory(**config):
app = Flask('testapp', instance_path=instance_path)
app.config.update(**config)
Babel(app)
inveniothemetugraz(app)
app.register_blueprint(blueprint)
return app
return factory
@pytest.fixture()
def app(request):
"""Basic Flask application."""
instance_path = tempfile.mkdtemp()
app = Flask("testapp")
DB = os.getenv("SQLALCHEMY_DATABASE_URI", "sqlite://")
app.config.update(
I18N_LANGUAGES=[("en", "English"), ("de", "German")],
SQLALCHEMY_DATABASE_URI=DB,
SQLALCHEMY_TRACK_MODIFICATIONS=False,
)
Babel(app)
InvenioDB(app)
InvenioSearch(app)
InvenioThemeTugraz(app)
InvenioI18N(app)
with app.app_context():
db_url = str(db.engine.url)
if db_url != "sqlite://" and not database_exists(db_url):
create_database(db_url)
db.create_all()
def teardown():
with app.app_context():
db_url = str(db.engine.url)
db.session.close()
if db_url != "sqlite://":
drop_database(db_url)
shutil.rmtree(instance_path)
request.addfinalizer(teardown)
app.test_request_context().push()
return app

View File

@@ -1,6 +1,6 @@
# -*- 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
# modify it under the terms of the MIT License; see LICENSE file for more
@@ -10,30 +10,29 @@
from flask import Flask
from invenio_theme_tugraz import inveniothemetugraz
from invenio_theme_tugraz import InvenioThemeTugraz
def test_version():
"""Test version import."""
from invenio_theme_tugraz import __version__
assert __version__
def test_init():
"""Test extension initialization."""
app = Flask('testapp')
ext = inveniothemetugraz(app)
assert 'invenio-theme-tugraz' in app.extensions
app = Flask("testapp")
ext = InvenioThemeTugraz(app)
assert "invenio-theme-tugraz" in app.extensions
app = Flask('testapp')
ext = inveniothemetugraz()
assert 'invenio-theme-tugraz' not in app.extensions
app = Flask("testapp")
ext = InvenioThemeTugraz()
assert "invenio-theme-tugraz" not in app.extensions
ext.init_app(app)
assert 'invenio-theme-tugraz' in app.extensions
assert "invenio-theme-tugraz" in app.extensions
def test_view(base_client):
"""Test view."""
res = base_client.get("/")
assert res.status_code == 200
assert 'Welcome to invenio-theme-tugraz' in str(res.data)
def test_app(app):
"""Test extension initialization."""
theme = InvenioThemeTugraz(app)

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

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020-2021 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.
"""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-2021 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.
# """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