Compare commits

..

405 Commits

Author SHA1 Message Date
ab8a357137 Added logger output on error 500
Cherry picked and tweaked from
fdec916528
2025-06-06 16:34:32 +01:00
6cba9a6d2b Patch: revert static routes from package level to relative 2025-06-06 14:51:59 +01:00
b66f7a75df Version bump 2025-06-06 14:13:54 +01:00
b02b7aca14 Revert "Removed lom to fix py3.13 issues"
This reverts commit 926196b30f.
2025-06-06 14:13:26 +01:00
56d5d223f3 Version bump 2025-06-06 13:56:11 +01:00
c14168c194 Lock bump 2025-06-06 13:55:22 +01:00
5b71404fda removed depedency on i18n 2025-06-06 13:54:32 +01:00
926196b30f Removed lom to fix py3.13 issues 2025-06-06 13:54:14 +01:00
e74d2017fc Version bump 2025-06-06 13:15:29 +01:00
ef1f268298 Template reference fixes 2025-06-06 13:14:58 +01:00
af61f927f1 Removed translations entrypoint as was unused 2025-06-06 12:51:57 +01:00
d5b9686302 Switched blueprint creation to newer flask style
Noticed and cherry picked from tugraz theme during debugging of plugin
build issues. See:
62c572e483
2025-06-06 12:51:17 +01:00
c5bd3d138e Attempt to fix loading issues when oauth is not responding 2025-06-03 11:08:36 +01:00
d5f63f4387 Add dependabot config 2025-05-27 17:52:05 +01:00
f7d0aa1bcf patch: Added missing dependency 2025-05-27 13:26:31 +01:00
4155fb875a Patch: format fix 2025-05-23 17:24:21 +01:00
51dac9f287 Fix badge display 2025-05-23 17:24:07 +01:00
de36035b59 Patch: fixed code coverage badge display 2025-05-23 17:16:58 +01:00
f0643b3488 Patch: config cleanup 2025-05-23 17:15:26 +01:00
9b5e74ae67 Removed unnecessary docker version check 2025-05-23 16:26:44 +01:00
1a91b1c33c Added automatic coveralls coverage reporting 2025-05-23 16:13:39 +01:00
f4d6435146 Fixed url for code coverage badge 2025-05-23 16:12:19 +01:00
2297d2f3dd Removed unnecessary docs/requirements.txt 2025-05-23 15:25:08 +01:00
626eeafe25 Patch: documentation autobuild 2025-05-23 15:22:11 +01:00
62f4b88759 Updated shpinx config 2025-05-23 15:21:53 +01:00
d2ab271883 Added dependency group "docs" 2025-05-23 15:16:47 +01:00
725c4197b9 Fixed .readthedocs.yaml 2025-05-23 15:15:14 +01:00
7e690305a6 Added readthedocs config 2025-05-23 14:24:48 +01:00
7e6426b9a2 Version increment (patch) 2025-05-23 13:10:36 +01:00
fc21c491b2 Set yaml to 2 tab width and ran format 2025-05-23 13:09:06 +01:00
62ecc4e986 Improved workflows 2025-05-23 13:01:56 +01:00
31bf58574f Removed translation config 2025-05-23 12:53:28 +01:00
85ec2f7cef Version increment 2025-05-20 11:27:09 +01:00
8bf419a22f Update config version 2025-05-20 11:26:46 +01:00
3475f6e7e5 Improved check_version_increment script 2025-05-20 11:19:56 +01:00
2f7b008301 Version increment 2025-05-14 19:23:31 +01:00
4bb4e68cdd Fixed json parsing error created by prettier 2025-05-14 19:14:07 +01:00
4bb0bcfb8e Fixed conflicting embedded quotes 2025-05-14 17:52:22 +01:00
0a58f44a18 Updated copyright info in headers 2025-05-14 14:35:12 +01:00
6e5f414db0 Whole project lint 2025-05-14 14:20:09 +01:00
1661c02de0 Added correct react config to eslint config file 2025-05-14 14:19:25 +01:00
063094f338 Pinned react version at 16 (same as invenio) 2025-05-14 14:19:11 +01:00
2cb7bbbd18 Added pre-push hooks for consistency 2025-05-14 14:19:11 +01:00
38e3dccdfd Whole project format with some minor codestyle fixes 2025-05-14 13:53:02 +01:00
5c9dc284e8 Added bun and js tooling for better automation 2025-05-14 13:53:02 +01:00
11e4db6672 Added script for checking if version was incremented before push 2025-05-14 11:39:02 +01:00
3f85457c6e Switched to calver managed by hatchling 2025-05-14 10:03:43 +01:00
b325b2d4b2 Fixed footer layout 2025-05-14 09:17:13 +01:00
6cd04471e0 Removed babel from plugin 2025-05-13 14:57:12 +01:00
1ba51405d7 Replaced remaining image assets 2025-05-13 14:06:51 +01:00
73828219da Updated footer logos 2025-05-13 13:38:41 +01:00
d265ea7ca5 Changed default anchor color 2025-05-13 13:21:24 +01:00
dbb9a62b97 Made home icon for navbar more customised 2025-05-13 13:20:59 +01:00
2dad05ffb7 Changed theme colors 2025-05-13 12:42:54 +01:00
d821addad3 Replaced TUGraz library logo with a new repository logo 2025-05-13 12:42:26 +01:00
86a42f3c9b Changed header affiliation text 2025-05-13 10:50:01 +01:00
5309a72233 Added react component to keep logo hover state synced 2025-05-13 10:47:01 +01:00
eb31090c13 Renamed TUG_ROUTES to IFORM_ROUTES 2025-05-09 16:49:29 +01:00
ba9f7c35c9 Lock bump 2025-05-09 14:44:18 +01:00
48dde0079c Update devenv 2025-05-08 14:36:00 +01:00
65af4cffb3 Semver bump 2025-05-02 18:17:43 +01:00
28e8632128 Re-added Logo statements 2025-05-02 18:17:28 +01:00
d08b0faaeb Semver bump 2025-05-02 18:08:43 +01:00
d54811a755 Fixed logo size and optimized 2025-05-02 18:08:25 +01:00
3ed90a2392 Semver bump 2025-05-02 17:57:14 +01:00
2f10189a52 Updated logo for i-form 2025-05-02 17:55:36 +01:00
9d615f23e6 Version bump 2025-05-02 17:08:20 +01:00
c07d438ce3 Version bump 2025-05-02 17:07:13 +01:00
7ac561a033 Attempt to fix jinja templates 2025-05-02 17:07:13 +01:00
25a2a3a086 Fixed front page title 2025-05-02 15:55:09 +01:00
a4eae3cd87 Formatted jinja templates with djlint 2025-05-02 15:06:54 +01:00
35a17bde25 Fixed jinja formatting 2025-05-02 15:06:19 +01:00
1d5cd3501e Version bump 2025-05-02 14:43:10 +01:00
24b979f9fc Version bump 2025-05-02 14:05:08 +01:00
c70b127002 Re-added entrypoints 2025-05-02 13:59:21 +01:00
e23a3dcce1 Version bump 2025-05-01 13:26:33 +01:00
b061f509e8 Test color change 2025-05-01 13:25:50 +01:00
2895e4f5ab Changed logo 2025-05-01 12:18:43 +01:00
57212ea710 Fixed broken filepath 2025-05-01 12:13:28 +01:00
c54db69862 Updated for python 3.13 2025-05-01 09:52:54 +01:00
efa4551932 Switch config to published package 2025-04-29 14:45:59 +01:00
c01f2f44fd Removed automatic publish workflow 2025-04-29 14:37:57 +01:00
b5dba87a89 Replaced tests.yml with one designed for uv 2025-04-29 14:36:00 +01:00
5285471636 Switched from "run-tests.sh" script to package manager scripts 2025-04-29 14:33:17 +01:00
e8dcfa3c82 Added dynamic version number 2025-04-29 14:27:35 +01:00
f15ade1bf4 Switched build system to hatchling 2025-04-29 14:27:27 +01:00
3c4ac5580a Updated to use current local version of config 2025-04-29 14:18:37 +01:00
85f997a171 Updated devenv 2025-04-29 08:43:11 +01:00
3a8146bde7 Added act to test actions locally 2025-04-29 08:41:52 +01:00
1bf6293a0c Configured project for build and publish 2025-04-28 17:52:17 +01:00
dbd88c32af Added devenv 2025-04-28 17:52:01 +01:00
7c41838349 Updated README.rst 2025-04-25 16:42:46 +01:00
10e3682fa4 Update README.rst 2025-04-25 16:41:05 +01:00
7234881ae7 Update README.rst 2025-04-25 16:28:34 +01:00
e425a6cba5 Lint and format according to new codestyle 2025-04-25 16:25:09 +01:00
07f8c8c8b6 Switched from black to ruff 2025-04-25 16:21:55 +01:00
c3867ca695 Migrated from setup.py to package managed by uv 2025-04-25 16:05:21 +01:00
88a3aff0c2 Renames for new fork 2025-04-25 16:04:19 +01:00
Christoph Ladurner
8866b87459 release v4.13.0 2025-01-24 14:44:20 +01:00
Christoph Ladurner
3a91743f9b setup: necessary because devs not released 2025-01-24 14:43:45 +01:00
Christoph Ladurner
fa705221dd view: add route for rdm-search
* it is necessary to add it here because the old approach with adding to
  the invenio-search-ui blueprint is not possible anymore since it has
  been changed to a function.
2025-01-24 14:43:45 +01:00
Christoph Ladurner
aa21adb1cf setup: relax upper pins
* the idea is to break early.
2025-01-24 14:43:45 +01:00
Martin Obersteiner
5865f0df54 add default-page for unhandled errors 2024-09-19 10:21:41 +02:00
Martin Obersteiner
4b8d5bee9f guard views/dashboard by tugraz_authenticated 2024-07-08 10:16:38 +02:00
Martin Obersteiner
923d4e8120 fix deprecated before_app_first_request 2024-06-11 13:27:04 +02:00
Christoph Ladurner
049063fd7d release v4.12.9 2024-05-07 10:53:37 +02:00
Christoph Ladurner
4a13f22de4 overview: view publications only if permission 2024-05-07 10:53:01 +02:00
Christoph Ladurner
dac35b2e0e release v4.12.8 2024-03-11 20:20:52 +01:00
Christoph Ladurner
cf5ecfd2f6 ui: add banner to header 2024-03-11 20:20:16 +01:00
Christoph Ladurner
0919760cfd release v4.12.7 2024-02-12 13:34:50 +01:00
Christoph Ladurner
40be6ff4b4 translation: fix typo 2024-02-12 13:34:18 +01:00
Christoph Ladurner
602c4b6523 release v4.12.6 2024-02-02 12:43:31 +01:00
Christoph Ladurner
4a581d6703 fix: error_handler gets 1 parameter 2024-02-02 12:43:11 +01:00
Christoph Ladurner
b426e0cc39 release v4.12.5 2024-02-02 11:21:42 +01:00
Christoph Ladurner
b975800532 release v4.12.4 2024-02-02 10:39:20 +01:00
Christoph Ladurner
19143a7860 ui: add 423 error page 2024-02-02 10:38:57 +01:00
Christoph Ladurner
2d47e30416 fix: types could be empty list
* it is true that types will always exists, but it could be an empty
2024-02-02 09:51:18 +01:00
Christoph Ladurner
87bead9b7e setup: sort tests imports
* remove unnecessary special opensearch2. moved to tests.
2024-01-31 10:33:13 +01:00
Christoph Ladurner
11bce0a1ce workflows: change to reusable workflows 2024-01-31 10:33:13 +01:00
Christoph Ladurner
ebcd040be0 wording: update one string frontpage 2024-01-31 10:12:09 +01:00
Christoph Ladurner
515a02aed5 wording: update frontpage 2024-01-31 10:12:09 +01:00
Christoph Ladurner
7314baccc9 release v4.12.3 2024-01-28 21:19:08 +01:00
Christoph Ladurner
66a694a321 wording: update text in benefits 2024-01-28 21:18:21 +01:00
Christoph Ladurner
529b22ad20 translation: fix research result typo 2024-01-28 21:18:21 +01:00
Christoph Ladurner
a5d23135eb ui: remove commented code
* the overriding is solved by overriding the translation strings
2024-01-28 21:18:21 +01:00
Christoph Ladurner
4c3ebcee23 ui: remove comingsoon rule
* there is a more general solution used now.
2024-01-28 21:18:21 +01:00
Christoph Ladurner
2dcb7c1fab release v4.12.2 2024-01-07 16:50:06 +01:00
Christoph Ladurner
fd41e0c073 ui: use only first type
* multiple types may be more precise but sometimes also to much
  information on the starting page
2024-01-07 16:49:28 +01:00
Christoph Ladurner
264c915e89 ui: change overview logos 2024-01-07 16:49:28 +01:00
Christoph Ladurner
0f0bb85deb wording: improve 2024-01-07 16:49:28 +01:00
Christoph Ladurner
35e5ea38e0 wording: improve wording
* external input
2024-01-07 16:49:28 +01:00
Christoph Ladurner
7da3f16b00 fix: multiple subjects not displayed in one row 2024-01-07 16:49:28 +01:00
Christoph Ladurner
3e10059a6f release v4.12.1 2023-11-23 10:54:24 +01:00
Christoph Ladurner
4a0b65300d translation: change text on frontpage overview 2023-11-23 10:53:57 +01:00
Christoph Ladurner
4ad491dd7d ui: comment browse functionality
* there has to be first created a concept around the browse feature,
  which is to much work for the next release.
2023-11-23 10:53:57 +01:00
Christoph Ladurner
ed0fae0af0 ui: remove scss, not used 2023-11-23 10:53:57 +01:00
Christoph Ladurner
8cd1ba5d99 release v4.12.0 2023-11-10 09:19:26 +01:00
Christoph Ladurner
3f13368aa1 setup: move python supported window 2023-11-10 09:19:01 +01:00
Christoph Ladurner
e3e07541fe overview: rephrase text 2023-11-10 09:19:01 +01:00
Christoph Ladurner
39d87339c2 menu: temporarily remove overwrite 2023-11-10 09:19:01 +01:00
Christoph Ladurner
cf7ecf1f81 ui: change paths to data-models 2023-11-10 09:19:01 +01:00
Christoph Ladurner
4c5e888f18 global: change to invenio-records-global-search
* package name change
2023-11-10 09:19:01 +01:00
Christoph Ladurner
9187ffd661 refactor: apply semantic-ui, indentation, copyright 2023-11-10 09:19:01 +01:00
Christoph Ladurner
fffd744731 layout: improve
* add frontpage overview

* change recent uploads to global search

* add overview to dashboard

* change default link of the dashboard menu entry from uploads to
  overview

* change text of 'my uploads' buggy
2023-11-10 09:19:01 +01:00
Christoph Ladurner
105db720ea theme: add separate search entry for rdm 2023-11-10 09:19:01 +01:00
Christoph Ladurner
0cee624dbb global: make it compatible with v12 2023-11-10 09:19:01 +01:00
Christoph Ladurner
c8035571be release v4.11.3 2023-06-07 23:36:30 +02:00
Christoph Ladurner
6aba6bcaa0 fix: frontpage upload buttons small monitor 2023-06-07 23:36:08 +02:00
Christoph Ladurner
1022fa45f4 release v4.11.2 2023-06-01 12:45:40 +02:00
Christoph Ladurner
eb95994afa frontpage: layout changes 2023-06-01 12:00:30 +02:00
Christoph Ladurner
bcacce0644 translation: add oer frontpage translation 2023-06-01 12:00:30 +02:00
Christoph Ladurner
c2494401e9 WIP: oer upload button on frontpage 2023-06-01 12:00:30 +02:00
Christoph Ladurner
3afaca51c6 release v4.11.1 2023-04-20 23:28:57 +02:00
Christoph Ladurner
3a9fe9f385 fix: increase invenio-config-tugraz
* to solve the v11 compatibility problem. in particular the
  invenio-rdm-records to low dependency
2023-04-20 23:28:36 +02:00
Christoph Ladurner
02e9b3f90c release v4.11.0 2023-04-20 22:09:40 +02:00
Christoph Ladurner
9320fe3d5d global: make dependencies compatible with v11 2023-04-20 22:08:14 +02:00
Christoph Ladurner
d38e50a489 release v4.10.1 2022-11-10 09:21:59 +01:00
Mojib Wali
f1fc4d8b9e dep: bump in invenio-assets 2022-10-13 11:57:18 +02:00
Mojib Wali
b286b9adaa release: v4.10.0 2022-10-13 11:38:53 +02:00
Mojib Wali
19fada5940 global: migrate to v10 2022-10-13 11:32:22 +02:00
Christoph Ladurner
7cb3b5a83b release v4.0.2 2022-09-09 10:37:05 +02:00
David
936c085f05 css: adapt skip-to-main button (#280) 2022-08-18 18:32:09 +02:00
Christoph Ladurner
d43cf0e4b5 release v4.0.1 2022-08-05 10:28:27 +02:00
Christoph Ladurner
73a344eb52 update translation 2022-08-05 10:28:05 +02:00
Christoph Ladurner
aa37718a2c improve wording on search options 2022-08-05 10:28:05 +02:00
Christoph Ladurner
3a500543c6 release v4.0.0 2022-07-29 13:27:53 +02:00
Christoph Ladurner
e310a4ca38 remove unnecessary html code for header-search-bar
unnecessary because the react component which is handling this id is generating
the html code.
2022-07-29 13:22:52 +02:00
Christoph Ladurner
c3f55030dc fix warning from semantic-ui-react Search component 2022-07-29 13:22:52 +02:00
Christoph Ladurner
95d27fdd8c add marc21 and lom to the searchbar
copy pasted code from invenio_app_rdm/searchbar. it was necessary to
do that to configure the shown list.
2022-07-29 13:22:52 +02:00
Christoph Ladurner
28b956cfaa change searchbar layout and use invenio-app-rdm searchbar
the searchbar is now on the top of the header, left of the language switch. the
new searchbar introduced a new feature, it could handle different indices like
all repository or communities. But the problem is where to place the new search
bar. for the moment the compromise is to put it on the top right.

this position may not be compatible with tugraz layout.
2022-07-29 13:22:52 +02:00
Christoph Ladurner
5ac2a68848 remove grey color of community block and reduce size 2022-07-29 13:22:52 +02:00
Christoph Ladurner
0399814fe0 migrate js to use prettier 2022-07-29 13:22:52 +02:00
Christoph Ladurner
f11facc9d6 release v3.9.3 2022-07-17 20:55:54 +02:00
Christoph Ladurner
c9bc56e168 fix broken search page
the invenioRDM version v9.1 introduced a new search feature. the implementation
assumes that the id header-search-bar exists on the page. if that is not the
case the page will not be rendered.

this fix adds a hidden search element as invenioRDM v9.1 introduced. the page is
not using this at the moment because it would need some further layout
adjustments.

further moves this fix the local search element to the header to be existent on
the index and search page. for the future this should be undone and the new
invenioRDM search should be used.
2022-07-17 20:55:12 +02:00
Mojib Wali
cb9b80668c release: v3.9.2 2022-06-28 15:48:50 +02:00
David
5bf5ce4268 fix: adopt renaming of serialize function (#269) 2022-06-28 15:39:44 +02:00
Mojib Wali
79a9014878 release v3.9.1 2022-06-02 10:38:05 +02:00
David
708d10ae1a fix: restrict babel version (#266) 2022-05-30 15:39:15 +02:00
David
0dc9240e73 dep: adapt to v9 (#263) 2022-05-30 13:58:46 +02:00
David
7f1286bd6b fix: add trigger to accordion (#265) 2022-05-30 13:58:20 +02:00
Christoph Ladurner
f883dc7760 release v3.9.0 2022-05-27 15:32:50 +02:00
Christoph Ladurner
7c250a41fe refactor 2022-05-25 12:47:09 +02:00
Christoph Ladurner
c9ff126c28 align with invenio-app-rdm community changes 2022-05-25 12:47:09 +02:00
Christoph Ladurner
597b8b0905 add .git-blame-ignore-revs 2022-05-12 09:06:52 +02:00
Christoph Ladurner
903498185f migrate to use black as opinionated auto formater 2022-05-12 09:06:52 +02:00
Christoph Ladurner
4fd0501c58 global: migrate setup.py to setup.cfg 2022-05-12 09:06:52 +02:00
mb-wali
d8c91df396 v3.8.0 2022-03-03 11:01:12 +01:00
Mojib Wali
0da96559ec global: migrate to v8 2022-03-03 10:53:03 +01:00
mb-wali
e73fc3633d v3.7.0 2021-12-07 10:01:49 +01:00
David
aa2c3112df dep: bump config module (#252) 2021-12-06 14:51:33 +01:00
David
62d23f104c docs: adjust sphinx to flask2 (#251) 2021-12-06 14:47:55 +01:00
David
07d7e6fa0e update register and login view (#247)
fix: remove redundant closing div tag for register

ui: update register and login template with accordion

styling: modify accordion css

translation: add german translation
2021-11-08 10:33:11 +01:00
Mojib Wali
27f1501b31 v3.6.1 2021-09-01 12:02:36 +02:00
David Eckhard
6299da5ca2 fix: css for ui divider 2021-08-10 11:52:50 +02:00
David Eckhard
9ec241684d fix: add font locally and remove google dependency 2021-08-10 10:29:32 +02:00
Mojib Wali
c73571c2b7 v3.6.0 2021-08-05 10:05:49 +02:00
mb-wali
db52ca8aad config: removes i18n config
This closes #236
2021-08-05 10:05:03 +02:00
mb-wali
21b67cb3e0 revert: removes override for
* records landingpage (details)
* deposit page (deposit create and depsosit edit)
2021-08-05 09:54:12 +02:00
mb-wali
f22e62dfb0 style: changes deposit form segment color
css: refactor variables
2021-07-08 15:31:16 +02:00
mb-wali
8eb5152963 refactor: views & deposit override
separates the views from override deposit
2021-07-08 15:31:07 +02:00
mb-wali
a8a4aab191 i18n: update translations 2021-06-24 13:38:37 +02:00
mb-wali
2815c35590 styling: adds tug logo 2021-06-24 13:38:37 +02:00
mb-wali
fc13dc8228 login_user: extended user login template
adds support for oauth and new configs
2021-06-24 13:38:37 +02:00
Mojib Wali
2290dbe3cb v3.4.1 2021-06-04 12:02:12 +02:00
mb-wali
15f4d5fce3 dep: bump in config module 2021-06-04 11:55:41 +02:00
mb-wali
b76f27c037 global: route blueprint migrated to config-tugraz
This is required to make sure config module is independent
2021-06-04 11:55:41 +02:00
Mojib Wali
4aa72c003b v3.4.0 2021-06-01 12:37:16 +02:00
mb-wali
fb906bda72 global: refactor upon release changes
resource_type: change in index and values of resource type.

func: that will serialize list of records.
2021-06-01 12:32:03 +02:00
mb-wali
808aca3f60 details: modified resource_type 2021-06-01 12:32:03 +02:00
mb-wali
5f49389fb1 global: migrate v4 2021-06-01 12:32:03 +02:00
mb-wali
4930e78c3a documents: adds reference guide version 2 2021-05-27 12:53:59 +02:00
David Eckhard
1ad73cc001 ui: change title to data-tooltip 2021-05-27 12:24:45 +02:00
Mojib Wali
7623af2fb1 v3.0.3 2021-05-17 15:01:47 +02:00
mb-wali
b05d9cbf97 bugfix: removes overrides item 2021-05-17 15:01:26 +02:00
Mojib Wali
ef74ebd075 v3.0.2 2021-05-17 14:44:03 +02:00
mb-wali
af0258580c badges(ui): adds tug theme badge colors 2021-05-17 14:43:23 +02:00
David Eckhard
3423caaa70 refactor: use correct class for badge on index page. css rewrite/comment 2021-05-17 13:40:12 +02:00
David Eckhard
3c616bedd5 ui: adapt color badges 2021-05-17 13:40:12 +02:00
mb-wali
3376040e78 bugfix(ui): logos alignment 2021-05-17 12:40:15 +02:00
mb-wali
9906e0e635 feature: adds credits to footer 2021-05-17 10:33:53 +02:00
Mojib Wali
fa8299a032 v3.0.1 2021-05-07 11:57:20 +02:00
mb-wali
b79e0ff919 documents: adds missing documents
this closes #206
2021-05-07 11:56:06 +02:00
rekt-hard
34ecce4842 ui: display access badge
index: UIJSONSerializer is used in order to serialize the elasticsearch results
2021-05-06 09:46:25 +02:00
mb-wali
e47b2b169a feature: override deposit & deposit edit 2021-05-03 13:56:21 +02:00
Mojib Wali
58c1af28ab v3.0.0 2021-04-30 16:11:45 +02:00
mb-wali
a762615741 global: migrate to v3 2021-04-30 16:11:02 +02:00
Mojib Wali
e141afa602 v2.1.2 2021-04-30 13:52:25 +02:00
mb-wali
2b3d6bce7b dep: restrict config-tugraz to v2 release 2021-04-30 13:51:46 +02:00
Mojib Wali
abca369212 v2.1.1 2021-04-30 10:01:38 +02:00
mb-wali
5eaca4b8a3 footer: adds link to search guide 2021-04-29 15:18:26 +02:00
Mojib Wali
714305d646 global: copyrights 2021-04-26 09:21:50 +02:00
Mojib Wali
e8a8ee88b7 v2.1.0 2021-04-21 16:07:57 +02:00
mb-wali
7f5dae65ac ui: adds blueprint routes for footer links 2021-04-21 13:05:34 +02:00
Mojib Wali
8b606007cd v2.0.9 2021-04-15 09:32:22 +02:00
mb-wali
32e785cb28 bugfix: created field using old metadata field 2021-04-15 08:33:28 +02:00
rekt-hard
765c43c283 fix: blur link on click, clickable login with TUG button
closes #184 #183
2021-04-14 14:02:56 +02:00
Mojib Wali
bfe2c45b09 v2.0.8 2021-04-12 14:26:23 +02:00
Mojib Wali
d511a3d9c7 fileupload: max storage revert to default 2021-04-12 14:25:58 +02:00
rekt-hard
83fe44db8e feature: footer links 2021-04-12 14:25:39 +02:00
Mojib Wali
41bfcf0cee v2.0.7 2021-04-09 14:01:17 +02:00
Mojib Wali
bc1c9bcc9c depositform: increase the fileupload 2021-04-09 13:56:17 +02:00
Mojib Wali
ae21366bfa v2.0.6 2021-04-08 09:14:27 +02:00
Mojib Wali
9e92934451 bugfixes: configs & translations
* bugfixes: modified config vars
* refactor: text of instance message
* translations: adds new trans
* translation: refactor some german translation
* footer: adds handbook link
2021-04-08 09:13:58 +02:00
david
0df53c42fa style: translation and minor documentation 2021-04-07 10:39:57 +02:00
david
88d7125acf fix: rename, set and use env variable 2021-04-07 10:39:57 +02:00
David Eckhard
8425d410f2 feature: add test instance notification 2021-04-07 10:39:57 +02:00
Mojib Wali
c4f80c42a1 v2.0.5 2021-04-01 10:43:40 +02:00
Unix
4698c797b2 bugfix: adds datacite host url 2021-04-01 10:43:13 +02:00
Unix
0e5f08768d bugfix: password should b unicode
else: request Error UnicodeEncodeError
2021-04-01 10:43:13 +02:00
Mojib Wali
e4d38632a9 v2.0.4 2021-03-31 17:07:16 +02:00
Unix
4fa0e2851f doimint: removes link to doi.org 2021-03-31 17:02:40 +02:00
Mojib Wali
2c10cc885d v2.0.3 2021-03-31 15:08:32 +02:00
Mojib Wali
f993fda3f6 bugfix: space requires before next query 2021-03-31 15:07:48 +02:00
Mojib Wali
ecacf0ba59 v2.0.2 2021-03-31 09:51:54 +02:00
Unix
592d59e54d depositform: disable field languages 2021-03-31 08:53:44 +02:00
Mojib Wali
f40fb37ec4 v2.0.1 2021-03-29 11:20:47 +02:00
Unix
44e4b01332 bugfix: hyperlink no-decoration 2021-03-29 10:42:40 +02:00
Mojib Wali
97feb284cf v2.0.0 2021-03-29 10:07:03 +02:00
Unix
20fc3e62be bugfix: recent uploads filter only latest version 2021-03-29 09:46:16 +02:00
Mojib Wali
530d32d7c7 migrate: to invenio-app-rdm:v2 2021-03-29 09:41:35 +02:00
Mojib Wali
b27d54b6f0 v1.9.6 2021-03-23 11:43:52 +01:00
Mojib Wali
f81ca88835 footer: adds documentation link
* footer: adds documentation link

* landingpage: disable jump btn
2021-03-23 11:40:47 +01:00
Mojib Wali
39c19238dd v1.9.5 2021-03-19 14:40:29 +01:00
Mojib Wali
3f14a3ada4 PublisherField: makes field required
* Publisher: makes field required
* publisherField: change in helptext
2021-03-19 14:39:29 +01:00
Mojib Wali
0a5a78312e v1.9.4 2021-03-19 12:56:27 +01:00
Mojib Wali
0cc1635e3a bugfix: translation order for tug logo (#176) 2021-03-19 12:54:35 +01:00
Mojib Wali
0f8ebffaa2 Translations: updated 2021-03-19 11:14:16 +01:00
Unix
0e2c1a0f60 style: login form 2021-03-19 09:55:49 +01:00
Mojib Wali
4d902f014b v1.9.3 2021-03-18 08:28:20 +01:00
Mojib Wali
ea54a17c43 bugfix: adds check for scheme 'doi' 2021-03-17 17:11:00 +01:00
Mojib Wali
db01116eeb v1.9.2 2021-03-17 10:32:11 +01:00
Mojib Wali
ea92a2f563 dep: adds invenio_config_tugraz 2021-03-17 10:27:55 +01:00
Mojib Wali
a4558e02bf doimint: adds suffix config 2021-03-17 10:15:30 +01:00
Mojib Wali
c87e65d89f dep: bump in webpack 2021-03-17 09:40:05 +01:00
Mojib Wali
6360bcab7b doimint: adds positive message on doi register 2021-03-16 12:53:47 +01:00
Mojib Wali
95710c440e depositform: get doi from backend 2021-03-16 09:55:59 +01:00
David Eckhard
063ddc985a refactor: remove unused files 2021-03-16 08:37:04 +01:00
David Eckhard
6cb248644b feature: add doi retrieve endpoint 2021-03-16 08:37:04 +01:00
Mojib Wali
e3897c8d46 v1.9.1 2021-03-12 13:27:51 +01:00
Unix
dd4bc1ffdf bugfix: read env variables of datacite 2021-03-12 13:10:47 +01:00
Unix
046b009420 bugfix: removed css which caused the btn to disapear 2021-03-12 12:59:00 +01:00
Unix
6210a8bad9 global: adds copyrights 2021-03-12 12:59:00 +01:00
Unix
de83dd0d1b frontpage: show a message when there are no public record. 2021-03-12 12:59:00 +01:00
Unix
462fc27ae7 footer: adds target blank for extern link 2021-03-12 12:59:00 +01:00
Mojib Wali
f45a74ac42 v1.9.0 2021-03-11 14:53:49 +01:00
Mojib Wali
b475da5abf ui: removes links that are not implemented 2021-03-11 14:49:23 +01:00
Mojib Wali
050d7b0feb style: adds styling for zammad form
* style: adds styling for zammad form
config: added config var for enable/disable form
 (#158)
2021-03-11 14:49:06 +01:00
Mojib Wali
67c3828fc0 DOI minting
* feature: adds doi minting(#161)
* overrides deposit page
* deposit edit page
* record landingpage
2021-03-11 14:48:24 +01:00
rekt-hard
4094730481 doi plugin
* feature: encrypt doi password
* bugfix: add URL rule for pages
2021-03-10 15:30:17 +01:00
Mojib Wali
daace427b9 v1.8.0 2021-03-09 09:33:17 +01:00
rekt-hard
baa7d290c7 zammad contact form (#156) 2021-03-09 09:04:32 +01:00
Mojib Wali
d17b83b67f v1.7.0 2021-03-01 18:47:36 +01:00
rekt-hard
2b60954fe4 modification: add theming variables (#152) 2021-03-01 18:33:47 +01:00
Mojib Wali
ee94d72b65 global: required changes for feb release (#155)
* disabled search and landingpage override
* search query modified
* routes: injecting routes to override
2021-03-01 16:10:28 +01:00
Christoph Ladurner
5d39ad5fdd Merge pull request #154 from rekt-hard/bugfix_record-name-access
bugfix(*): fix record creators name access
2021-02-23 09:48:24 +01:00
David Eckhard
07e205f04c bugfix(*): fix record creators name access
access name via creator.person_or_org.name.
2021-02-10 10:01:39 +01:00
Mojib Wali
28403053d2 v1.6.0 2021-01-29 10:58:02 +01:00
Mojib Wali
1aaaeaf6a2 bugfix(tests): modified dep & gh 2021-01-29 10:57:17 +01:00
Christoph Ladurner
1e9ea81f1c Merge pull request #141 from utnapischtim/feature/override-landing-page
override landing page
2021-01-19 11:28:25 +01:00
Christoph Ladurner
c4356b744b Merge pull request #142 from utnapischtim/feature/override-search-v2
Feature/override search v2
2021-01-18 13:33:34 +01:00
Christoph Ladurner
752b5128bf Merge pull request #143 from utnapischtim/feature/frontpage-fixes
Feature/frontpage fixes
2021-01-18 13:32:41 +01:00
Christoph Ladurner
c6c4a0aa52 bugfix(ci): add invenio-app-rdm and sqlalchemy-continuum to install_requires
those install_requires where missing to use the RECORDS_UI_ENPOINTS from
invenio-app-rdm.config
2021-01-14 11:14:30 +01:00
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
151 changed files with 10726 additions and 2260 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,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-iform is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see LICENSE file for more # modify it under the terms of the MIT License; see LICENSE file for more
# details. # details.
@@ -15,15 +15,6 @@ insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
charset = utf-8 charset = utf-8
# Python files
[*.py]
indent_size = 4
# isort plugin configuration
known_first_party = invenio_theme_tugraz
multi_line_output = 2
default_section = THIRDPARTY
skip = .eggs
# RST files (used by sphinx) # RST files (used by sphinx)
[*.rst] [*.rst]
indent_size = 4 indent_size = 4
@@ -32,8 +23,8 @@ indent_size = 4
[*.{css,html,js,json,yml}] [*.{css,html,js,json,yml}]
indent_size = 2 indent_size = 2
# Matches the exact files either package.json or .travis.yml # Matches the exact files either package.json or .github/workflows/*.yml
[{package.json,.travis.yml}] [{package.json, .github/workflows/*.yml}]
indent_size = 2 indent_size = 2
# Dockerfile # Dockerfile

5
.envrc Normal file
View File

@@ -0,0 +1,5 @@
export DIRENV_WARN_TIMEOUT=20s
eval "$(devenv direnvrc)"
use devenv

1
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1 @@
cd71ecd24b8fc2253a58c60082c80a87c8085601

29
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
version: 2
updates:
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "04:00"
open-pull-requests-limit: 8
allow:
- dependency-type: "all"
reviewers:
- "Cian-H"
assignees:
- "Cian-H"
commit-message:
prefix: "uv-deps"
prefix-development: "uv-deps-dev"
include: "scope"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "04:00"
open-pull-requests-limit: 5
commit-message:
prefix: "ci"

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

@@ -0,0 +1,26 @@
name: Publish to PyPI
on:
workflow_run:
workflows:
- Auto Version Tag
types:
- completed
jobs:
publish:
runs-on: ubuntu-latest
environment: release
steps:
- uses: actions/checkout@v4
- name: Set up uv
uses: astral-sh/setup-uv@v6
with:
python-version: "${{ matrix.python-version }}"
enable-cache: true
cache-dependency-glob: |
pyproject.toml
- name: Build package
run: uv build
- name: Publish to PyPI
run: uv publish --token ${{ secrets.PYPI_API_TOKEN }}

20
.github/workflows/tagging.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Auto Version Tag
on:
workflow_run:
workflows:
- Tests
types:
- completed
jobs:
tag:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Version tag
uses: Jorricks/action-python-autotagging@1.0.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
path: invenio_theme_iform/__about__.py
variable: __version__

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

@@ -0,0 +1,92 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
#
# invenio-theme-iform is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see LICENSE file for more
# details.
name: Tests
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
inputs:
reason:
description: "Reason"
required: false
default: "Manual trigger"
jobs:
create-strategy:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.requirements.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: requirements
id: requirements
run: |
# Define a simple matrix with your Python version
# Since we're using pyproject.toml with Python 3.12 requirement
echo "matrix={\"include\": [{\"python-version\": \"3.12\"}]}" >> $GITHUB_OUTPUT
# Print the matrix for debugging
echo "-------------------"
echo "Matrix: {\"include\": [{\"python-version\": \"3.12\"}]}"
echo "-------------------"
tests:
needs: create-strategy
runs-on: ubuntu-latest
name: Test (Python ${{matrix.python-version}})
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.create-strategy.outputs.matrix) }}
# Simplified environment without service variables
env:
PYTHON_VERSION: ${{ matrix.python-version }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up uv
uses: astral-sh/setup-uv@v6
with:
python-version: "${{ matrix.python-version }}"
enable-cache: true
cache-dependency-glob: |
pyproject.toml
cache-suffix: ${{ matrix.python-version }}
- name: Show configuration
run: |
uv --version
uv run python --version
- name: Install dependencies
run: |
uv sync --group tests
- name: Run tests
env:
PYTEST_ADDOPTS: "--cov-report=lcov"
run: |
uv run test
- name: Upload coverage to Coveralls
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: coverage.lcov

13
.gitignore vendored
View File

@@ -60,3 +60,16 @@ target/
# Vim swapfiles # Vim swapfiles
.*.sw? .*.sw?
# Devenv
.devenv*
devenv.local.nix
# direnv
.direnv
# python version lock
.python-version
# bun modules
node_modules

45
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,45 @@
repos:
- repo: local
hooks:
- id: check-version-increment
name: Check Version Increment
entry: python scripts/hooks/pre-push/check_version_increment.py
language: system
pass_filenames: false
stages: [pre-push]
- id: tests
name: Run Python Tests
entry: uv run test
language: system
pass_filenames: false
stages: [pre-push]
- id: prettier-with-jinja
name: Prettier (with Jinja support)
entry: bun run prettier -c
language: system
types_or:
[javascript, jsx, ts, tsx, css, scss, sass, less, yaml, json, markdown, html, jinja]
stages: [pre-push]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.9
hooks:
- id: ruff
stages: [pre-push]
- id: ruff-format
stages: [pre-push]
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v9.26.0
hooks:
- id: eslint
additional_dependencies:
- eslint@latest
- eslint/js
- eslint/json
- eslint-plugin-react
files: \.(js|ts|jsx|tsx)$
stages: [pre-push]

20
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,20 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the OS, Python version, and other tools you might need
build:
os: ubuntu-24.04
tools:
python: "3.13"
jobs:
pre_create_environment:
- asdf plugin add uv
- asdf install uv latest
- asdf global uv latest
create_environment:
- uv sync --group docs
install:
- uv run python -m sphinx -T -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html

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,33 +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.
# 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
[invenio.invenio-theme-tugraz-messages]
file_filter = invenio_theme_tugraz/translations/<lang>/LC_MESSAGES/messages.po
source_file = invenio_theme_tugraz/translations/messages.pot
source_lang = en
type = PO

View File

@@ -1,13 +1,15 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
Authors Authors
======= =======
invenio module for TUGRAZ theme. Invenio module for iform theme.
- mojib wali <mojib.wali@tugraz.at> - cian hughes <cian.hughes@dcu.ie>
Forked from https://github.com/tu-graz-library/invenio-theme-tugraz

View File

@@ -1,13 +1,237 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
Changes Changes
======= =======
Version v4.13.0 (release 2025-01-24)
- setup: necessary because devs not released
- view: add route for rdm-search
- setup: relax upper pins
- add default-page for unhandled errors
- guard views/dashboard by `tugraz_authenticated`
- fix deprecated `before_app_first_request`
Version v4.12.9 (release 2024-05-07)
- overview: view publications only if permission
Version v4.12.8 (release 2024-03-11)
- ui: add banner to header
Version v4.12.7 (release 2024-02-12)
- translation: fix typo
Version v4.12.6 (release 2024-02-02)
- fix: error_handler gets 1 parameter
Version v4.12.5 (release 2024-02-02)
Version v4.12.4 (release 2024-02-02)
- ui: add 423 error page
- fix: types could be empty list
- setup: sort tests imports
- workflows: change to reusable workflows
- wording: update one string frontpage
- wording: update frontpage
Version v4.12.3 (release 2024-01-28)
- wording: update text in benefits
- translation: fix research result typo
- ui: remove commented code
- ui: remove comingsoon rule
Version v4.12.2 (release 2024-01-07)
- ui: use only first type
- ui: change overview logos
- wording: improve
- wording: improve wording
- fix: multiple subjects not displayed in one row
Version v4.12.1 (release 2023-11-23)
- translation: change text on frontpage overview
- ui: comment browse functionality
- ui: remove scss, not used
Version v4.12.0 (release 2023-11-10)
- setup: move python supported window
- overview: rephrase text
- menu: temporarily remove overwrite
- ui: change paths to data-models
- global: change to invenio-records-global-search
- refactor: apply semantic-ui, indentation, copyright
- layout: improve
- theme: add separate search entry for rdm
- global: make it compatible with v12
Version v4.11.3 (release 2023-06-07)
- fix: frontpage upload buttons small monitor
Version v4.11.2 (release 2023-06-01)
- frontpage: layout changes
- translation: add oer frontpage translation
- WIP: oer upload button on frontpage
Version v4.11.1 (release 2023-04-20)
- fix: increase invenio-config-tugraz
Version v4.11.0 (release 2023-04-20)
- global: make dependencies compatible with v11
Version v4.10.1 (release 2022-11-10)
- dep: bump in invenio-assets
Version v4.10.0 (release 2022-10-13)
- global: migrate to v10 (#282)
Version v4.0.2 (release 2022-09-09)
- release v4.0.1
- update translation
- improve wording on search options
Version v4.0.1 (release 2022-08-05)
- update translation
- improve wording on search options
Version v4.0.0 (release 2022-07-29)
- remove unnecessary html code for header-search-bar
- fix warning from semantic-ui-react Search component
- add marc21 and lom to the searchbar
- change searchbar layout and use invenio-app-rdm searchbar
- remove grey color of community block and reduce size
- migrate js to use prettier
Version 3.9.2 (released 2022-06-28)
- fix: adopt renaming of serialize function (#269)
Version 3.9.1 (released 2022-06-02)
- fix: add trigger to accordion (#265)
- dep: adapt to v9 of invenioRDM(#263)
Version 3.9.0 (released 2022-05-27)
- global: migrate setup.py to setup.cfg #260
Version 3.8.0 (released 2022-03-03)
- global: migrate to v8 of invenioRDM #257
Version 3.7.0 (released 2021-12-07)
- dep: bump config module #252
- docs: adjust sphinx to flask2 #251
- update register and login view #247
Version 3.6.1 (released 2021-09-01)
- fix: add font locally and remove google dependency #242
- fix: css for ui divider #243
Version 3.6.0 (released 2021-05-08)
- config: removes i18n config #239
- revert: removes override for details,deposit page #238
- styling: changes deposit form segment color #234
- refactor: views & deposit override #235
- login_user: extended user login template #230
Version 3.4.1 (released 2021-06-04)
- global: route blueprint migrated to config-tugraz #228
Version 3.4.0 (released 2021-06-01)
- documents: adds reference guide version 2 #225
- ui: change title to data-tooltip #224
- global: migrate inveniordm v4 #226
Version 3.0.3 (released 2021-06-01)
- bugfix: removes overrides item #222
Version 3.0.2 (released 2021-05-17)
- feature: adds credits to footer #217
- ui: adapt color badges #220
- badges(ui): adds tug theme badge colors #221
Version 3.0.1 (released 2021-05-07)
- override depsit & edit #210
- ui: display access badge #212
- documents: adds missing documents #216
Version 3.0.0 (released 2021-04-30)
- Migrated to invenioRDM v3 #209
Version 2.0.9 (released 2021-04-15)
- bugfix: created field using old metadata #196
- fix: blur link on click, clickable login with TUG button #194
Version 2.0.6 (released 2021-04-8)
- bugfixes: modified config vars #191
Version 1.9.0 (released 2021-03-11)
- DOI minting #161
- Zammad contact Form #156
Version 1.0.3 (released 2020-07-10)
- firefox compatibility: centering the menu underline #40
- adds font-family #50
Version 1.0.1 (released 2020-07-08)
- Login page modified #48
Version 0.1.0 (released TBD) Version 0.1.0 (released TBD)
- Initial public release. - Initial public release.

View File

@@ -10,7 +10,7 @@ Types of Contributions
Report Bugs Report Bugs
~~~~~~~~~~~ ~~~~~~~~~~~
Report bugs at https://github.com/mb-wali/invenio-theme-tugraz/issues. Report bugs at https://github.com/Cian-H/invenio-theme-iform/issues.
If you are reporting a bug, please include: If you are reporting a bug, please include:
@@ -33,15 +33,15 @@ is open to whoever wants to implement it.
Write Documentation Write Documentation
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
invenio-theme-tugraz could always use more documentation, whether as part of the invenio-theme-iform could always use more documentation, whether as part of the
official invenio-theme-tugraz docs, in docstrings, or even on the web in blog posts, official invenio-theme-iform docs, in docstrings, or even on the web in blog posts,
articles, and such. articles, and such.
Submit Feedback Submit Feedback
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
The best way to send feedback is to file an issue at The best way to send feedback is to file an issue at
https://github.com/mb-wali/invenio-theme-tugraz/issues. https://github.com/Cian-H/invenio-theme-iform/issues.
If you are proposing a feature: If you are proposing a feature:
@@ -53,14 +53,14 @@ If you are proposing a feature:
Get Started! Get Started!
------------ ------------
Ready to contribute? Here's how to set up `invenio-theme-tugraz` for local development. Ready to contribute? Here's how to set up `invenio-theme-iform` for local development.
1. Fork the `https://github.com/mb-wali/invenio-theme-tugraz.git` repo on GitHub. 1. Fork the `https://github.com/Cian-H/invenio-theme-iform.git` repo on GitHub.
2. Clone your fork locally: 2. Clone your fork locally:
.. code-block:: console .. code-block:: console
$ git clone git@github.com:your_name_here/invenio-theme-tugraz.git $ git clone git@github.com:your_name_here/invenio-theme-iform.git
3. Install your local copy into a virtualenv. Assuming you have 3. Install your local copy into a virtualenv. Assuming you have
virtualenvwrapper installed, this is how you set up your fork for local virtualenvwrapper installed, this is how you set up your fork for local
@@ -68,8 +68,8 @@ Ready to contribute? Here's how to set up `invenio-theme-tugraz` for local devel
.. code-block:: console .. code-block:: console
$ mkvirtualenv invenio-theme-tugraz $ mkvirtualenv invenio-theme-iform
$ cd invenio-theme-tugraz/ $ cd invenio-theme-iform/
$ pip install -e .[all] $ pip install -e .[all]
4. Create a branch for local development: 4. Create a branch for local development:
@@ -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 2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring. 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 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/Cian-H/invenio-theme-iform/actions?query=event%3Apull_request
and make sure that the tests pass for all supported Python versions. and make sure that the tests pass for all supported Python versions.

View File

@@ -1,8 +1,8 @@
Installation Installation
============ ============
invenio-theme-tugraz is on PyPI so all you need is: invenio-theme-iform is on PyPI so all you need is:
.. code-block:: console .. code-block:: console
$ pip install invenio-theme-tugraz $ pip install invenio-theme-iform

View File

@@ -1,6 +1,7 @@
MIT License MIT License
Copyright (C) 2020 mojib wali. Copyright (C) 2020 Graz University of Technology.
Copyright (C) 2025 I-Form Advanced Research Manufacturing Research Centre.
Permission is hereby granted, free of charge, to any person obtaining a copy of Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in this software and associated documentation files (the "Software"), to deal in

View File

@@ -1,24 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-iform is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see LICENSE file for more # modify it under the terms of the MIT License; see LICENSE file for more
# details. # details.
# 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 .dockerignore
include .editorconfig include .editorconfig
include .tx/config include .tx/config
prune docs/_build prune docs/_build
recursive-include invenio_theme_tugraz/translations *.po *.pot *.mo recursive-include invenio_theme_iform/translations *.po *.pot *.mo
# added by check_manifest.py # added by check_manifest.py
include *.md include *.md
@@ -27,18 +19,25 @@ include *.sh
include *.txt include *.txt
include *.rst include *.rst
include LICENSE include LICENSE
include babel.ini
include pytest.ini include pytest.ini
recursive-include docs *.bat recursive-include docs *.bat
recursive-include docs *.py recursive-include docs *.py
recursive-include docs *.rst recursive-include docs *.rst
recursive-include docs *.txt recursive-include docs *.txt
recursive-include docs Makefile recursive-include docs Makefile
recursive-include invenio_theme_tugraz *.html recursive-include invenio_theme_iform *.html
recursive-include invenio_theme_tugraz *.js recursive-include invenio_theme_iform *.js
recursive-include invenio_theme_tugraz *.png recursive-include invenio_theme_iform *.png
recursive-include invenio_theme_tugraz *.scss recursive-include invenio_theme_iform *.scss
recursive-include invenio_theme_tugraz *.svg recursive-include invenio_theme_iform *.svg
recursive-include invenio_theme_tugraz *.less recursive-include invenio_theme_iform *.less
recursive-include invenio_theme_tugraz *.ico recursive-include invenio_theme_iform *.ico
recursive-include invenio_theme_iform *.pdf
recursive-include invenio_theme_iform *.ttf
recursive-include invenio_theme_iform *.txt
recursive-include tests *.py recursive-include tests *.py
recursive-include invenio_theme_iform *.jpg
recursive-include invenio_theme_iform *.gitkeep
recursive-include .github/workflows *.yml
include .git-blame-ignore-revs

View File

@@ -1,41 +1,47 @@
.. ..
Copyright (C) 2020 Mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
====================== ======================
invenio-theme-tugraz invenio-theme-iform
====================== ======================
.. image:: https://img.shields.io/travis/inveniosoftware/invenio-app-rdm.svg .. image:: https://github.com/Cian-H/invenio-theme-iform/workflows/CI/badge.svg
:target: https://travis-ci.com/github/mb-wali/invenio-theme-tugraz :target: https://github.com/Cian-H/invenio-theme-iform/actions
.. image:: https://img.shields.io/pypi/dm/invenio-theme-tugraz.svg .. image:: https://img.shields.io/pypi/dm/invenio-theme-iform.svg
:target: https://pypi.python.org/pypi/invenio-theme-tugraz :target: https://pypi.python.org/pypi/invenio-theme-iform
.. image:: https://img.shields.io/github/tag/mb-wali/invenio-theme-tugraz.svg .. image:: https://img.shields.io/github/tag/Cian-H/invenio-theme-iform.svg
:target: https://github.com/mb-wali/invenio-theme-tugraz/releases :target: https://github.com/Cian-H/invenio-theme-iform/releases
.. image:: https://img.shields.io/github/license/mb-wali/invenio-theme-tugraz.svg .. image:: https://img.shields.io/github/license/Cian-H/invenio-theme-iform.svg
:target: https://github.com/mb-wali/invenio-theme-tugraz/blob/master/LICENSE :target: https://github.com/Cian-H/invenio-theme-iform/blob/master/LICENSE
.. image:: https://readthedocs.org/projects/invenio-theme-tugraz/badge/?version=latest .. image:: https://readthedocs.org/projects/invenio-theme-iform/badge/?version=latest
:target: https://invenio-theme-tugraz.readthedocs.io/en/latest/?badge=latest :target: https://invenio-theme-iform.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
TU Graz standard theme. .. image:: https://coveralls.io/repos/github/Cian-H/invenio-theme-iform/badge.svg?branch=master
:target: https://coveralls.io/github/Cian-H/invenio-theme-iform?branch=master
.. image:: https://img.shields.io/badge/code%20style-Ruff-D7FF64.svg
:target: https://github.com/astral-sh/ruff
I-Form standard theme.
Features: Features:
* TU Graz custom header template. * I-Form custom header template.
* TU Graz custom footer template. * I-Form custom footer template.
* TU Graz custom login template. * I-Form custom login/signup templates.
* TU Graz custom sign up template. * I-Form custom frontpage template.
* TU Grau custom frontpage template. * I-Form custom contact template.
* TU Graz overriden theme. * I-Form overriden theme.
Further documentation is available on Further documentation is available on
https://invenio-theme-tugraz.readthedocs.io/ https://invenio-theme-iform.readthedocs.io/
Forked from https://github.com/tu-graz-library/invenio-theme-tugraz

View File

@@ -1,24 +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.
# Extraction from Python source files
[python: **.py]
encoding = utf-8
# Extraction from Jinja2 templates
[jinja2: **/templates/**.html]
encoding = utf-8
extensions = jinja2.ext.autoescape, jinja2.ext.with_
# Extraction from JavaScript files
[javascript: **.js]
encoding = utf-8
extract_messages = $._, jQuery._

543
bun.lock Normal file
View File

@@ -0,0 +1,543 @@
{
"lockfileVersion": 1,
"workspaces": {
"": {
"devDependencies": {
"@eslint/css": "^0.7.0",
"@eslint/js": "^9.26.0",
"@eslint/json": "^0.12.0",
"eslint": "^9.26.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^16.1.0",
"prettier": "^3.5.3",
"prettier-plugin-jinja-template": "^2.1.0",
"react": "16",
},
},
},
"packages": {
"@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.7.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw=="],
"@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="],
"@eslint/config-array": ["@eslint/config-array@0.20.0", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ=="],
"@eslint/config-helpers": ["@eslint/config-helpers@0.2.2", "", {}, "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg=="],
"@eslint/core": ["@eslint/core@0.13.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw=="],
"@eslint/css": ["@eslint/css@0.7.0", "", { "dependencies": { "@eslint/core": "^0.13.0", "@eslint/css-tree": "^3.3.3", "@eslint/plugin-kit": "^0.2.5" } }, "sha512-d6mo8etv4igrTGxgvWSgA5+TsppfObM/Xhlu8JWbkqNBiaJXztUNH45R1B4i1GL2PNIFMLREI3Kh9lTBi19l7g=="],
"@eslint/css-tree": ["@eslint/css-tree@3.5.1", "", { "dependencies": { "mdn-data": "2.20.0", "source-map-js": "^1.0.1" } }, "sha512-gEej0mqMHD1xOwvciok6LGdAjjDVCXNASVg6cA3TLGVpqNcayzt5WgO6SXHrDialOl3N2Zc69ACE62QXLaYa1w=="],
"@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="],
"@eslint/js": ["@eslint/js@9.26.0", "", {}, "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ=="],
"@eslint/json": ["@eslint/json@0.12.0", "", { "dependencies": { "@eslint/core": "^0.12.0", "@eslint/plugin-kit": "^0.2.7", "@humanwhocodes/momoa": "^3.3.4", "natural-compare": "^1.4.0" } }, "sha512-n/7dz8HFStpEe4o5eYk0tdkBdGUS/ZGb0GQCeDWN1ZmRq67HMHK4vC33b0rQlTT6xdZoX935P4vstiWVk5Ying=="],
"@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="],
"@eslint/plugin-kit": ["@eslint/plugin-kit@0.2.8", "", { "dependencies": { "@eslint/core": "^0.13.0", "levn": "^0.4.1" } }, "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA=="],
"@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="],
"@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="],
"@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="],
"@humanwhocodes/momoa": ["@humanwhocodes/momoa@3.3.8", "", {}, "sha512-/3PZzor2imi/RLLcnHztkwA79txiVvW145Ve2cp5dxRcH5qOUNJPToasqLFHniTfw4B4lT7jGDdBOPXbXYlIMQ=="],
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="],
"@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.11.2", "", { "dependencies": { "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.3", "eventsource": "^3.0.2", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.24.1" } }, "sha512-H9vwztj5OAqHg9GockCQC06k1natgcxWQSRpQcPJf6i5+MWBzfKkRtxGbjQf0X2ihii0ffLZCRGbYV2f2bjNCQ=="],
"@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="],
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
"accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="],
"acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="],
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
"ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
"array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="],
"array-includes": ["array-includes@3.1.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" } }, "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ=="],
"array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="],
"array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="],
"array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="],
"arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="],
"async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="],
"available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="],
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
"body-parser": ["body-parser@2.2.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.0", "http-errors": "^2.0.0", "iconv-lite": "^0.6.3", "on-finished": "^2.4.1", "qs": "^6.14.0", "raw-body": "^3.0.0", "type-is": "^2.0.0" } }, "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg=="],
"brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
"bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
"call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="],
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
"call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="],
"callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
"concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
"content-disposition": ["content-disposition@1.0.0", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg=="],
"content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="],
"cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
"cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="],
"cors": ["cors@2.8.5", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="],
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
"data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="],
"data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="],
"data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="],
"debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
"deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
"define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="],
"define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="],
"depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="],
"doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="],
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
"es-abstract": ["es-abstract@1.23.9", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.3", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.0", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-regex": "^1.2.1", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.0", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.3", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.18" } }, "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA=="],
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
"es-iterator-helpers": ["es-iterator-helpers@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.4", "safe-array-concat": "^1.1.3" } }, "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w=="],
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
"es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="],
"es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="],
"escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="],
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
"eslint": ["eslint@9.26.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.13.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.26.0", "@eslint/plugin-kit": "^0.2.8", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@modelcontextprotocol/sdk": "^1.8.0", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", "zod": "^3.24.2" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ=="],
"eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="],
"eslint-scope": ["eslint-scope@8.3.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ=="],
"eslint-visitor-keys": ["eslint-visitor-keys@4.2.0", "", {}, "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw=="],
"espree": ["espree@10.3.0", "", { "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.0" } }, "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg=="],
"esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="],
"esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="],
"estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="],
"esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="],
"etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="],
"eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="],
"eventsource-parser": ["eventsource-parser@3.0.1", "", {}, "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA=="],
"express": ["express@5.1.0", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.0", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA=="],
"express-rate-limit": ["express-rate-limit@7.5.0", "", { "peerDependencies": { "express": "^4.11 || 5 || ^5.0.0-beta.1" } }, "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg=="],
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
"fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="],
"file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="],
"finalhandler": ["finalhandler@2.1.0", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q=="],
"find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="],
"flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="],
"flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="],
"for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="],
"forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="],
"fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="],
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
"function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="],
"functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="],
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
"get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="],
"glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
"globals": ["globals@16.1.0", "", {}, "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g=="],
"globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="],
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
"has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="],
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
"has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="],
"has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="],
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
"http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="],
"iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
"ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
"imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
"internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="],
"ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
"is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="],
"is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="],
"is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="],
"is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="],
"is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="],
"is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
"is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="],
"is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="],
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
"is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="],
"is-generator-function": ["is-generator-function@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ=="],
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
"is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="],
"is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="],
"is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="],
"is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="],
"is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="],
"is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="],
"is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="],
"is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="],
"is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="],
"is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="],
"is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="],
"is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="],
"isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="],
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
"iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="],
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
"js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
"json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="],
"json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
"json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="],
"jsx-ast-utils": ["jsx-ast-utils@2.4.1", "", { "dependencies": { "array-includes": "^3.1.1", "object.assign": "^4.1.0" } }, "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w=="],
"keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="],
"levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
"lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
"loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
"mdn-data": ["mdn-data@2.20.0", "", {}, "sha512-/d3otgvmquUkAN2RVxSg6lIbQrYX7isR4aC5Hvw8JuHvzctR3eUG50WmsAZjb9MkbJ5LbijPSy7uIxEtQDGI0w=="],
"media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
"merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="],
"mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
"mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="],
"minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
"object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="],
"object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="],
"object.entries": ["object.entries@1.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="],
"object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="],
"object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="],
"on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
"optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="],
"own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="],
"p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
"p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="],
"parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
"parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="],
"path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="],
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
"path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="],
"path-to-regexp": ["path-to-regexp@8.2.0", "", {}, "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ=="],
"pkce-challenge": ["pkce-challenge@5.0.0", "", {}, "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ=="],
"possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="],
"prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
"prettier": ["prettier@3.5.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw=="],
"prettier-plugin-jinja-template": ["prettier-plugin-jinja-template@2.1.0", "", { "peerDependencies": { "prettier": "^3.0.0" } }, "sha512-mzoCp2Oy9BDSug80fw3B3J4n4KQj1hRvoQOL1akqcDKBb5nvYxrik9zUEDs4AEJ6nK7QDTGoH0y9rx7AlnQ78Q=="],
"prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
"proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="],
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
"qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="],
"range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="],
"raw-body": ["raw-body@3.0.0", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.6.3", "unpipe": "1.0.0" } }, "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g=="],
"react": ["react@16.14.0", "", { "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2" } }, "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g=="],
"react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
"reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="],
"regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="],
"resolve": ["resolve@2.0.0-next.5", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="],
"resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
"router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="],
"safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="],
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
"safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="],
"safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="],
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
"send": ["send@1.2.0", "", { "dependencies": { "debug": "^4.3.5", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.0", "mime-types": "^3.0.1", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.1" } }, "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw=="],
"serve-static": ["serve-static@2.2.0", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ=="],
"set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="],
"set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="],
"set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="],
"setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
"side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="],
"side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="],
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
"statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
"string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="],
"string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="],
"string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="],
"string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="],
"string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="],
"strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
"supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
"toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
"type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="],
"type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="],
"typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="],
"typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="],
"typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="],
"typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="],
"unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="],
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
"uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
"vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="],
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
"which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="],
"which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="],
"which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="],
"which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="],
"word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="],
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
"yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
"zod": ["zod@3.24.4", "", {}, "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg=="],
"zod-to-json-schema": ["zod-to-json-schema@3.24.5", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="],
"@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
"@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="],
"@eslint/json/@eslint/core": ["@eslint/core@0.12.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg=="],
"@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="],
}
}

103
devenv.lock Normal file
View File

@@ -0,0 +1,103 @@
{
"nodes": {
"devenv": {
"locked": {
"dir": "src/modules",
"lastModified": 1746707904,
"owner": "cachix",
"repo": "devenv",
"rev": "fada79d97f2066c444766d039b0a62affd3e3cab",
"type": "github"
},
"original": {
"dir": "src/modules",
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1746537231,
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1745934659,
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "fbc071e5c11e23fba50037de37268e3d8a1858eb",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "rolling",
"repo": "devenv-nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": [
"git-hooks"
]
}
}
},
"root": "root",
"version": 7
}

26
devenv.nix Normal file
View File

@@ -0,0 +1,26 @@
{
pkgs,
lib,
config,
inputs,
...
}: {
packages = [
pkgs.git
pkgs.bun
pkgs.act
];
languages = {
python = {
enable = true;
uv = {
enable = true;
};
};
javascript.bun = {
enable = true;
install.enable = true;
};
};
}

4
devenv.yaml Normal file
View File

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

View File

@@ -87,9 +87,9 @@ qthelp:
@echo @echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:" ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/invenio-theme-tugraz.qhcp" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/invenio-theme-iform.qhcp"
@echo "To view the help file:" @echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/invenio-theme-tugraz.qhc" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/invenio-theme-iform.qhc"
applehelp: applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@@ -104,8 +104,8 @@ devhelp:
@echo @echo
@echo "Build finished." @echo "Build finished."
@echo "To view the help file:" @echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/invenio-theme-tugraz" @echo "# mkdir -p $$HOME/.local/share/devhelp/invenio-theme-iform"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/invenio-theme-tugraz" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/invenio-theme-iform"
@echo "# devhelp" @echo "# devhelp"
epub: epub:

View File

@@ -1,7 +1,7 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
@@ -9,11 +9,11 @@
API Docs API Docs
======== ========
.. automodule:: invenio_theme_tugraz.ext .. automodule:: invenio_theme_iform.ext
:members: :members:
Views Views
----- -----
.. automodule:: invenio_theme_tugraz.views .. automodule:: invenio_theme_iform.views
:members: :members:

View File

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

View File

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

View File

@@ -1,54 +1,52 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-iform is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see LICENSE file for more # modify it under the terms of the MIT License; see LICENSE file for more
# details. # details.
"""Sphinx configuration.""" """Sphinx configuration."""
import os from invenio_theme_iform import __version__
import sphinx.environment
# -- General configuration ------------------------------------------------ # -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here. # 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. # 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 # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
extensions = [ extensions = [
'sphinx.ext.autodoc', "sphinx.ext.autodoc",
'sphinx.ext.coverage', "sphinx.ext.coverage",
'sphinx.ext.doctest', "sphinx.ext.doctest",
'sphinx.ext.intersphinx', "sphinx.ext.intersphinx",
'sphinx.ext.viewcode', "sphinx.ext.viewcode",
] ]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ["_templates"]
# The suffix(es) of source filenames. # The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string: # You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md'] # source_suffix = ['.rst', '.md']
source_suffix = '.rst' source_suffix = ".rst"
# The encoding of source files. # The encoding of source files.
#source_encoding = 'utf-8-sig' # source_encoding = 'utf-8-sig'
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = "index"
# General information about the project. # General information about the project.
project = u'invenio-theme-tugraz' project = "invenio-theme-iform"
copyright = u'2020, mojib wali' copyright = "2025, I-Form"
author = u'mojib wali' author = "I-Form"
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
@@ -56,29 +54,21 @@ author = u'mojib wali'
# #
# The short X.Y version. # The short X.Y version.
# 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:
exec(fp.read(), g)
version = g['__version__']
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = version release = __version__
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
# #
# This is also used if you do content translation via gettext catalogs. # This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases. # Usually you set "language" from the command line for these cases.
language = None language = "en"
# There are two options for replacing |today|: either, you set today to some # There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used: # non-false value, then it is used:
#today = '' # today = ''
# Else, today_fmt is used as the format for a strftime call. # 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 # List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files. # directories to ignore when looking for source files.
@@ -86,46 +76,46 @@ exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all # The reST default role (used for this markup: `text`) to use for all
# documents. # documents.
#default_role = None # default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text. # 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 # If true, the current module name will be prepended to all description
# unit titles (such as .. function::). # unit titles (such as .. function::).
#add_module_names = True # add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the # If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default. # output. They are ignored by default.
#show_authors = False # show_authors = False
# The name of the Pygments (syntax highlighting) style to use. # 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. # 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. # 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. # If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False todo_include_todos = False
# -- Options for HTML output ---------------------------------------------- # -- Options for HTML output ----------------------------------------------
html_theme = 'alabaster' html_theme = "alabaster"
html_theme_options = { html_theme_options = {
'description': 'invenio module for TUGRAZ theme.', "description": "invenio module for I-Form theme.",
'github_user': 'inveniosoftware', "github_user": "Cian-H",
'github_repo': 'invenio-theme-tugraz', "github_repo": "invenio-theme-iform",
'github_button': False, "github_button": True,
'github_banner': True, "github_banner": False,
'show_powered_by': False, "show_powered_by": False,
'extra_nav_links': { "extra_nav_links": {
'invenio-theme-tugraz@GitHub': 'https://github.com/mb-wali/invenio-theme-tugraz', "invenio-theme-iform@GitHub": "https://github.com/Cian-H/invenio-theme-iform",
'invenio-theme-tugraz@PyPI': 'https://pypi.python.org/pypi/invenio-theme-tugraz/', "invenio-theme-iform@PyPI": "https://pypi.python.org/pypi/invenio-theme-iform/",
} },
} }
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
@@ -134,146 +124,148 @@ html_theme_options = {
# Theme options are theme-specific and customize the look and feel of a theme # 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 # further. For a list of options available for each theme, see the
# documentation. # documentation.
#html_theme_options = {} # html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory. # 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 # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
#html_title = None # html_title = None
# A shorter title for the navigation bar. Default is the same as html_title. # 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 # The name of an image file (relative to this directory) to place at the top
# of the sidebar. # 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 # 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 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large. # pixels large.
#html_favicon = None # html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here, # 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, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # 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 # Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied # .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation. # 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, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # 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 # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
#html_use_smartypants = True # html_use_smartypants = True
# Custom sidebar templates, maps document names to template names. # Custom sidebar templates, maps document names to template names.
html_sidebars = { html_sidebars = {
'**': [ "**": [
'about.html', "about.html",
'navigation.html', "navigation.html",
'relations.html', "relations.html",
'searchbox.html', "searchbox.html",
'donate.html', "donate.html",
] ]
} }
# Additional templates that should be rendered to pages, maps page names to # Additional templates that should be rendered to pages, maps page names to
# template names. # template names.
#html_additional_pages = {} # html_additional_pages = {}
# If false, no module index is generated. # If false, no module index is generated.
#html_domain_indices = True # html_domain_indices = True
# If false, no index is generated. # 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. # 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. # 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. # 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. # 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 # 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 # contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served. # 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"). # 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. # Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages: # Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' # '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. # A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value # 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 # The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used. # 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. # Output file base name for HTML help builder.
htmlhelp_basename = 'invenio-theme-tugraz_namedoc' htmlhelp_basename = "invenio-theme-iform_namedoc"
# -- Options for LaTeX output --------------------------------------------- # -- Options for LaTeX output ---------------------------------------------
latex_elements = { latex_elements = {
# The paper size ('letterpaper' or 'a4paper'). # The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper', # 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
# The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt',
#'pointsize': '10pt', # Additional stuff for the LaTeX preamble.
# 'preamble': '',
# Additional stuff for the LaTeX preamble. # Latex figure (float) alignment
#'preamble': '', # 'figure_align': 'htbp',
# Latex figure (float) alignment
#'figure_align': 'htbp',
} }
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
(master_doc, 'invenio-theme-tugraz.tex', u'invenio-theme-tugraz Documentation', (
u'mojib wali', 'manual'), master_doc,
"invenio-theme-iform.tex",
"invenio-theme-iform Documentation",
"I-Form",
"manual",
),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
# the title page. # the title page.
#latex_logo = None # latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts, # For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters. # not chapters.
#latex_use_parts = False # latex_use_parts = False
# If true, show page references after internal links. # If true, show page references after internal links.
#latex_show_pagerefs = False # latex_show_pagerefs = False
# If true, show URL addresses after external links. # 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. # Documents to append as an appendix to all manuals.
#latex_appendices = [] # latex_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#latex_domain_indices = True # latex_domain_indices = True
# -- Options for manual page output --------------------------------------- # -- Options for manual page output ---------------------------------------
@@ -281,12 +273,17 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
(master_doc, 'invenio-theme-tugraz', u'invenio-theme-tugraz Documentation', (
[author], 1) master_doc,
"invenio-theme-iform",
"invenio-theme-iform Documentation",
[author],
1,
)
] ]
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
#man_show_urls = False # man_show_urls = False
# -- Options for Texinfo output ------------------------------------------- # -- Options for Texinfo output -------------------------------------------
@@ -295,30 +292,38 @@ man_pages = [
# (source start file, target name, title, author, # (source start file, target name, title, author,
# dir menu entry, description, category) # dir menu entry, description, category)
texinfo_documents = [ texinfo_documents = [
(master_doc, 'invenio-theme-tugraz', u'invenio-theme-tugraz Documentation', (
author, 'invenio-theme-tugraz', 'invenio module for TUGRAZ theme.', master_doc,
'Miscellaneous'), "invenio-theme-iform",
"invenio-theme-iform Documentation",
author,
"invenio-theme-iform",
"invenio module for I-Form theme.",
"Miscellaneous",
),
] ]
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#texinfo_appendices = [] # texinfo_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#texinfo_domain_indices = True # texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'. # 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. # 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. # Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = { intersphinx_mapping = {
'python': ('https://docs.python.org/', None), "python": ("https://docs.python.org/", None),
"flask": ("https://flask.palletsprojects.com/", None),
"werkzeug": ("https://werkzeug.palletsprojects.com/", None),
# TODO: Configure external documentation references, eg: # TODO: Configure external documentation references, eg:
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None), # 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
} }
# Autodoc configuraton. # Autodoc configuraton.
autoclass_content = 'both' autoclass_content = "both"

View File

@@ -1,7 +1,7 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
@@ -9,5 +9,5 @@
Configuration Configuration
============= =============
.. automodule:: invenio_theme_tugraz.config .. automodule:: invenio_theme_iform.config
:members: :members:

View File

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

View File

@@ -1,7 +1,7 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
@@ -12,7 +12,7 @@ User's Guide
------------ ------------
This part of the documentation will show you how to get started in using This part of the documentation will show you how to get started in using
invenio-theme-tugraz. invenio-theme-iform.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2

View File

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

View File

@@ -127,9 +127,9 @@ if "%1" == "qthelp" (
echo. echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^ echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this: .qhcp project file in %BUILDDIR%/qthelp, like this:
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\invenio-theme-tugraz.qhcp echo.^> qcollectiongenerator %BUILDDIR%\qthelp\invenio-theme-iform.qhcp
echo.To view the help file: echo.To view the help file:
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\invenio-theme-tugraz.ghc echo.^> assistant -collectionFile %BUILDDIR%\qthelp\invenio-theme-iform.ghc
goto end goto end
) )

View File

@@ -1 +0,0 @@
-e .[docs,tests]

View File

@@ -1,7 +1,7 @@
.. ..
Copyright (C) 2020 mojib wali. Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more modify it under the terms of the MIT License; see LICENSE file for more
details. details.
@@ -9,4 +9,4 @@
Usage Usage
===== =====
.. automodule:: invenio_theme_tugraz .. automodule:: invenio_theme_iform

32
eslint.config.mjs Normal file
View File

@@ -0,0 +1,32 @@
import js from "@eslint/js";
import globals from "globals";
import pluginReact from "eslint-plugin-react";
import json from "@eslint/json";
import css from "@eslint/css";
import { defineConfig } from "eslint/config";
export default defineConfig([
{ files: ["**/*.{js,mjs,cjs,jsx}"], plugins: { js }, extends: ["js/recommended"] },
{ files: ["**/*.{js,mjs,cjs,jsx}"], languageOptions: { globals: globals.browser } },
pluginReact.configs.flat.recommended,
{
files: ["**/*.json"],
plugins: { json },
language: "json/json",
extends: ["json/recommended"],
},
{
files: ["**/*.jsonc"],
plugins: { json },
language: "json/jsonc",
extends: ["json/recommended"],
},
{
files: ["**/*.json5"],
plugins: { json },
language: "json/json5",
extends: ["json/recommended"],
},
{ files: ["**/*.css"], plugins: { css }, language: "css/css", extends: ["css/recommended"] },
{ settings: { react: { version: "detect" } } },
]);

View File

@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
#
# invenio-theme-iform is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see LICENSE file for more
# details.
"""Metadata for this python module."""
__version__ = "2025.6.6.4"

View File

@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020-2022 Graz University of Technology.
#
# invenio-theme-iform 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 module for I-Form theme."""
from .__about__ import __version__
from .ext import InvenioThemeIform
__all__ = ("__version__", "InvenioThemeIform")

View File

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

View File

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

View File

@@ -0,0 +1,165 @@
/*
* Copyright (C) 2020 TUGRAZ.
* Copyright (C) 2020 Nikita Lvov.
*
* invenio-theme-iform 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-iform-logo {
& g {
fill: @iformBlue;
}
}
#login-tug-logo:hover {
& g {
fill: @iformBlack;
}
}
.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: @iformBlue;
}
.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

@@ -0,0 +1,14 @@
/*
* Copyright (C) 2022 Graz University of Technology.
*
* invenio-theme-iform is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
.ui.container.page-subheader-outer {
background-color: unset;
}
.ui.fluid.container {
width: fit-content;
}

View File

@@ -0,0 +1,16 @@
/*
* Copyright (C) 2021 Graz University of Technology.
*
* invenio-theme-iform is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
// deposit form segment styling
.ui.inverted.brand.segment {
background-color: @greyLight !important;
color: @iformBlack !important;
label {
color: @iformBlack;
}
}

View File

@@ -0,0 +1,93 @@
Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name Source.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -0,0 +1,57 @@
/*
* Copyright (C) 2020-2023 Graz University of Technology.
* Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
*
* invenio-theme-iform 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: @footerGrey;
height: 100%;
width: 100%;
&.footer-bottom {
background-color: @footerBottomBackground;
padding-top: 15px;
padding-bottom: 15px;
font-size: 16px;
a {
text-decoration: none;
color: @footerGrey;
// :focus-visible activates on keyboard only
&:hover,
&:focus:focus-visible {
color: @primaryLink;
background-color: @primaryLinkHoverBackground;
i.icon.download {
color: @iformBlue;
}
}
// remove blue focus outline if clicked with mouse
&:focus:not(:focus-visible) {
outline-style: none;
}
}
}
div .logos a:hover {
background-color: transparent !important;
}
}
.bodytext {
font-size: 16px;
}
.spacer {
margin-top: 10px;
}
.spacer-long {
margin-top: 30px;
}

View File

@@ -0,0 +1,97 @@
/*
* Copyright (C) 2020-2021 Graz University of Technology.
*
* invenio-theme-iform 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;
}
.ui.blue.labels .label,
.ui.blue.label {
color: @greyDark !important;
background-color: @recordVersionBackground !important;
border-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: @iformBlack;
}
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

@@ -0,0 +1,264 @@
/*
* Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
*
* invenio-theme-iform is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
#int-menu-q-home-icon {
width: 18px;
height: 18px;
vertical-align: top;
}
#home-polyline {
fill: @iformDarkGreen;
}
/*****logo section******/
.affiliation-logo {
vertical-align: middle;
white-space: nowrap;
& a {
fill: @iformBlue;
}
}
.affiliation-logo :hover {
text-decoration: none;
fill: @primaryLinkHoverBackground;
color: @primaryLinkHoverBackground;
}
.affiliation {
background-color: @primaryLink;
display: table;
margin: 0 auto 80px;
max-width: 1060px;
width: 100%;
text-decoration: none;
}
.affiliation-text {
display: table-cell;
font-size: 12px;
line-height: 17px;
letter-spacing: 2px;
white-space: nowrap;
}
.affiliation-logo-claim {
display: inline-block;
font-size: 12px;
letter-spacing: 2px;
line-height: 17px;
padding: 0 17px 0 0;
text-align: right;
vertical-align: top;
}
/*****END logo section******/
.short-menu {
display: table;
height: 49px;
width: 100%;
}
.short-menu-left {
border-right: 1px solid black;
display: table-cell;
text-align: right;
width: 50%;
}
.short-menu-right {
display: table-cell;
width: 50%;
color: @primaryLinkInverted;
}
.short-menu-right :hover {
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
}
.short-menu-right-button {
cursor: pointer;
display: inline-block;
margin: 12px 0 6px 9px;
padding: 5px;
}
.short-menu-right-button a:hover {
text-decoration: none;
}
.search-icon-header {
display: inline-block;
& a {
background-color: transparent;
padding: 5px;
text-decoration: none;
& svg {
& g {
stroke-linejoin: round;
stroke: @primaryLinkInverted;
stroke-miterlimit: 10;
stroke-width: 2;
fill: none;
}
}
}
}
.search-icon-header:hover {
& a {
background-color: @primaryLinkHoverBackground;
text-decoration: none;
& svg {
& g {
stroke: @primaryLink;
}
}
}
}
.short-menu-left-search {
display: inline-block;
margin: 12px 9px 6px 0;
color: @primaryLinkInverted;
}
.short-menu-right-main-menu {
display: inline-block;
margin-right: 3px;
vertical-align: top;
width: 21px;
}
.short-menu-icon {
vertical-align: top;
width: 20px;
height: 19px;
}
svg:not(:root) {
overflow: hidden;
}
/***********MAIN menu*************/
.main-menu-entry {
text-align: center !important;
& a {
font-size: 1.2rem;
padding: 5px 8px;
}
}
.main-menu-entry a:hover {
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
text-decoration: none;
}
.main-menu-entry-svg {
padding-left: 0 !important;
}
.main-menu-underline-line {
border: 2px solid @greyLight !important;
border-radius: 0;
background-color: @greyLight;
}
#margin-divider {
margin-left: 155px;
margin-right: 155px;
}
.affiliation-text a:hover {
background-color: @primaryLinkHoverBackground;
color: @primaryLink;
text-decoration: none;
}
.main-menu {
border-bottom: 1px solid @primaryLinkInverted;
box-sizing: border-box;
height: 39px;
margin-top: -1px;
overflow: hidden;
transition: height 0.3s linear 0s;
}
.int-menu-q-open-icon {
width: 14px;
vertical-align: middle;
margin-left: 5px;
}
/*********************Custom overrides**********************/
/** Login with SAML**/
.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;
&.repo-logo {
height: 52px;
}
}
.inline-elements {
display: flex;
}
span.home-inline {
white-space: nowrap;
}
.test-instance {
text-align: center;
background-color: @notificationBackground;
border: solid @notificationBorder 1px;
z-index: 100000;
}
#skip-to-main {
background-color: @primaryButton;
&:focus {
background-color: @primaryButtonInverted;
}
}

View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) 2020-2021 Graz University of Technology.
*
* invenio-theme-iform is free software; you can redistribute it and/or modify it
* under the terms of the MIT License; see LICENSE file for more details.
*/
.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-iform 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

@@ -0,0 +1,198 @@
/*
* Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
*
* invenio-theme-iform 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
***/
.section-content-light-bg {
background-color: @primaryBackground;
}
/***
* 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: @primaryBackground;
}
/***
* login & sigup page title
* from : #0377cd
* To #000000
***/
.panel-free-title {
color: @primaryText;
}
/***
* anchor color
* from : #ef4444
* To @iformBlue
***/
a {
color: @iformBlue;
}
/***
* 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: @iformBlue;
}
/***
* accordion title
***/
.ui.accordion.styled {
.title,
.title.active {
background-color: @greyLight;
color: rgba(0, 0, 0, 0.6);
}
}
/***
* buttons hover and accordion hover
***/
.ui.button:hover,
.ui.search.button:hover,
.ui.accordion.styled .title:hover,
.ui.accordion.styled .accordion .title:hover {
background-color: @primaryButtonHoverBackground;
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.accordion.styled,
.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;
}
// override access badges color
.ui.label.access-status {
&.open {
background-color: @accessRightOpen;
}
&.embargoed {
background-color: @accessRightEmbargoed;
}
&.metadata-only {
background-color: @accessRightMetadata;
}
}
@font-face {
font-family: "Source Sans Pro";
src: url("./fonts/SourceSansPro/SourceSansPro-Regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Source Sans Pro";
src: url("./fonts/SourceSansPro/SourceSansPro-Italic.ttf") format("truetype");
font-weight: 400;
font-style: italic;
}
/**
* mainly for the overview. maybe this should be written more specific to apply
* only for the overview use case.
*/
.ui.segment:first-child {
margin-top: 1em;
}
.ui.equal.height .ui.segment {
height: 100%;
}
.ui.flashed.message.manage {
text-align: center;
}

View File

@@ -0,0 +1,17 @@
/*
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-iform 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-2023 Graz University of Technology
*
* invenio-theme-iform 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

@@ -0,0 +1,51 @@
/*
* Copyright (C) 2020-2022 Graz University of Technology.
* Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
*
* invenio-theme-iform 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 "frontpage";
@import "record";
@import "search";
@import "macros";
@import "login";
@import "deposit";
@import "communities";
/***
**TODO:
** test overriding variables.
***/
//@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;
outline: none;
}
.nowrap-link {
white-space: nowrap;
}
.ui.label.schema {
border: 1px solid #bfb5b5;
}
.random-records-frontpage .grid .column {
width: 380px !important;
padding: 14px !important;
}

View File

@@ -0,0 +1,72 @@
/*
* Copyright (C) 2020-2021 Graz University of Technology.
* Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
*
* invenio-theme-iform 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:
** test overriding variables.
***/
//@import "../invenio_app_rdm/variables.less";
//@navbar_background_image: unset;
//@navbar_background_color: #FFFFFF;
// badge colors, accessibility
@accessRight: #e9711c;
@accessRightOpen: @accessRight;
@accessRightRestricted: #fbbd08;
@accessRightEmbargoed: #db2828;
@accessRightClosed: @accessRightEmbargoed;
@accessRightMetadata: #2185d0;
@schema: #17b3f3;
// primary colors of I-Form
@iformBlack: #140826;
@iformBlue: #060e9f;
@iformLightGreen: #08e673;
@iformDarkGreen: #069f4b;
@iformCyan: #02e8f7;
// general
@primaryBackground: #fff;
@primaryText: #000;
// accent colors
@greyDark: #777;
@greyLight: #e0e1e2;
@labelKeywordBackground: #e8e8e8;
// link and button colors
@primaryLinkInverted: @primaryText;
@primaryLinkBackgroundInverted: @primaryBackground;
@primaryLink: @primaryBackground;
@primaryLinkHoverBackground: @primaryText;
@primaryButton: @primaryBackground;
@primaryButtonHoverBackground: @primaryText;
@primaryButtonInverted: @primaryText;
// account (signin, signup) specific
@primaryFormAccounts: @primaryBackground;
@formAccountsInputPlaceholder: silver;
@fieldInputSelectionBackground: #50a2ce;
@signInBackground: #245b78;
// footer specific
@footerGrey: #5e5e5e;
@footerBottomBackground: #f2f2f2;
// record specific
@recordVersionBackground: #f2f2f2;
@randomRecordsFrontpageArticle: #22242626;
// input
@outlineColor: #85b7d9;
// notification
@notificationBackground: #fffaf3;
@notificationBorder: #e2d5c2;

View File

@@ -0,0 +1,114 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020-2023 Graz University of Technology.
#
# invenio-theme-iform 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 module for I-Form theme."""
INVENIO_THEME_IFORM_DEFAULT_VALUE = "I-Form Repository"
"""Default value for the application."""
INVENIO_THEME_IFORM_BASE_TEMPLATE = "invenio_theme_iform/base.html"
"""I-Form Default base template"""
INVENIO_THEME_IFORM_ACCOUNT_BASE = "invenio_theme_iform/accounts/accounts_base.html"
"""I-Form Default account base template"""
INVENIO_THEME_IFORM_ICON = "images/icon_use.png"
"""icon used in login page"""
INVENIO_THEME_IFORM_LOGIN_IMG = "images/login_logo.png"
"""I-Form Logo for forms"""
THEME_IFORM_CONTACT_FORM = False
"""Enable/Disable Contact form."""
THEME_IFORM_PRODUCTION = False
"""Production environment.
Can also be set as an environment variable in a .env file. Then the name
has to be 'INVENIO_THEME_IFORM_PRODUCTION'.
"""
THEME_IFORM_SUPPORT_EMAIL = ""
"""Shown as contact-info on default error-page."""
# Invenio-theme
# ============
# See https://invenio-theme.readthedocs.io/en/latest/configuration.html
#
THEME_500_TEMPLATE = "invenio_theme_iform/default_error.html"
"""Used for any internal server errors and uncaught exceptions."""
THEME_LOGO = "images/iform_logo.png"
"""I-Form logo"""
THEME_SEARCHBAR = False
"""Enable or disable the header search bar."""
THEME_HEADER_TEMPLATE = "invenio_theme_iform/header.html"
"""I-Form header template"""
THEME_FRONTPAGE = False
"""Use default frontpage."""
THEME_HEADER_LOGIN_TEMPLATE = "invenio_theme_iform/accounts/header_login.html"
"""login page header"""
THEME_FOOTER_TEMPLATE = "invenio_theme_iform/footer.html"
"""footer template"""
THEME_FRONTPAGE_TITLE = "I-Form Repository"
"""Frontpage title."""
THEME_SITENAME = "Repository"
"""Site name."""
# Invenio-accounts
# ============
# See https://invenio-accounts.readthedocs.io/en/latest/configuration.html
# COVER_TEMPLATE = 'invenio_theme_iform/accounts/accounts_base.html'
"""Cover page template for login and sign up pages."""
SECURITY_LOGIN_USER_TEMPLATE = "invenio_theme_iform/accounts/login_user.html"
"""Login template"""
SECURITY_REGISTER_USER_TEMPLATE = "invenio_theme_iform/accounts/register_user.html"
"""Sigup template"""
# Invenio-app-rdm
# =============
# See https://invenio-app-rdm.readthedocs.io/en/latest/configuration.html
SEARCH_UI_HEADER_TEMPLATE = "invenio_theme_iform/header.html"
"""Search page's header template."""
DEPOSITS_HEADER_TEMPLATE = "invenio_theme_iform/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_iform/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_iform/search.html"
# """override the default search page"""
THEME_IFORM_ROUTES = {
"index": "/",
"comingsoon": "/comingsoon",
"records-search": "/records/search",
"overview": "/me/overview",
}

105
invenio_theme_iform/ext.py Normal file
View File

@@ -0,0 +1,105 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020-2024 Graz University of Technology.
#
# invenio-theme-iform 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 module for I-Form theme."""
from flask import g, has_request_context
from flask_login import login_required
from invenio_records_marc21.ui.theme import current_identity_can_view
from . import config
from .views import index, locked, require_iform_authenticated
class InvenioThemeIform(object):
"""invenio-theme-iform extension."""
def __init__(self, app=None):
"""Extension initialization."""
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)
self.init_config(app)
app.register_error_handler(423, locked)
@app.context_processor
def inject_visibility():
def can_view_marc21():
try:
# Only check if we're in a request context and identity exists
if has_request_context() and hasattr(g, "identity") and g.identity:
return current_identity_can_view()
return False
except (AttributeError, RuntimeError):
return False
return {"can_view_marc21": can_view_marc21()}
app.extensions["invenio-theme-iform"] = self
def init_config(self, app):
"""Initialize configuration."""
for k in dir(config):
if k.startswith("INVENIO_THEME_IFORM_") or k.startswith("THEME_IFORM_"):
app.config.setdefault(k, getattr(config, k))
def finalize_app(app):
"""Finalize app."""
modify_user_dashboard(app)
guard_view_functions(app)
def modify_user_dashboard(app):
"""Modify user dashboard."""
root_menu = app.extensions["menu"].root_node
user_dashboard_menu = root_menu.submenu("dashboard")
user_dashboard_menu.submenu("overview").register(
"invenio_theme_iform.overview",
text="Overview",
order=0,
)
root_menu.submenu("actions.deposit").register(
"invenio_theme_iform.overview",
"My dashboard",
order=1,
)
def guard_view_functions(app):
"""Guard view-functions against unauthenticated access."""
endpoints_to_guard = [
"invenio_app_rdm_users.communities",
"invenio_app_rdm_users.requests",
"invenio_app_rdm_users.uploads",
]
for endpoint in endpoints_to_guard:
view_func = app.view_functions.get(endpoint)
if not view_func:
continue
# decorate view-func
# same as if view-func were defined with:
# @login_required
# @require_iform_authenticated_user
view_func = login_required(
require_iform_authenticated(
view_func,
),
)
app.view_functions[endpoint] = view_func

View File

@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020-2023 Graz University of Technology.
#
# invenio-theme-iform 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 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 = "global-search"

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1 @@
<svg enable-background="new 0 0 64 64" height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><path d="m47.562 6.75c-.38-.474-.955-.75-1.562-.75h-28c-.607 0-1.182.276-1.562.75l-16 20c-.637.796-.573 1.943.147 2.664l30 30c.391.391.903.586 1.415.586s1.024-.195 1.414-.586l30-30c.721-.721.784-1.868.147-2.664zm10.276 19.25h-10.35l-4.8-16h2.351zm-41.054 4 10.722 20.677-20.677-20.677zm4.506 0h8.71v16.798zm12.71 0h8.71l-8.71 16.798zm13.216 0h9.956l-20.678 20.677zm-8.704-20 4.8 16h-9.312v-16zm-8.512 16h-9.312l4.8-16h4.512zm-11.039-16h2.351l-4.8 16h-10.35z"/></svg>

After

Width:  |  Height:  |  Size: 583 B

View File

@@ -0,0 +1 @@
<svg fill="none" height="48" viewBox="0 0 48 48" width="48" xmlns="http://www.w3.org/2000/svg"><g clip-rule="evenodd" fill="#333" fill-rule="evenodd"><path d="m11.0392 17.2183c-.4756.2768-.8742.5498-1.18834.7845-.34219.2557-.85823.0372-.84079-.3896.01851-.4528.06658-1.0087.17644-1.5915.17477-.9271.50589-1.9223 1.12309-2.6789-.4552-.8767-.70618-1.8366-.70618-2.8428 0-4.14214 4.25328-7.5 9.49998-7.5s9.5 3.35786 9.5 7.5c0 4.1421-4.2533 7.5-9.5 7.5-2.304 0-4.4165-.6475-6.0613-1.7247-.7675.2816-1.4393.615-2.0029.943zm1.4999-3.9218c.0919.1771.0698.3919-.0563.5465l-.6017.7375c.1536-.0626.3111-.1237.4722-.1828l.7077-.2596c.1484-.0545.3139-.0355.4461.0511l.6307.413c1.3021.8527 3.0299 1.3978 4.9656 1.3978 4.6086 0 7.5-2.8772 7.5-5.5 0-2.62276-2.8914-5.5-7.5-5.5s-7.5 2.87724-7.5 5.5c0 .6661.1647 1.3116.4812 1.9212z"/><path d="m32.1035 10c-1.1521 0-2.1445.2398-2.9566.6265-.7113.3304-1.3112.7766-1.7493 1.3019.1348-.4596.2059-.9377.2059-1.4284 0-.4134-.0505-.81784-.147-1.20984 1.2777-.8079 2.8919-1.29016 4.647-1.29016 4.1421 0 7.5 2.6863 7.5 6 0 .8463-.2191 1.6517-.6143 2.3819-.0881.1629-.0893.3595-.0084.5261.0953.1962.1748.401.241.6083.1805.5653.2624 1.1496.2971 1.6307.0308.4261-.4853.6495-.8354.4048-.3202-.2239-.7262-.4769-1.2086-.7166-.0941-.0467-.1911-.0929-.2909-.1384-.1536-.0698-.3314-.0505-.4745.0388-1.2712.7924-2.8697 1.2644-4.606 1.2644-3.5699 0-6.5573-1.9954-7.3146-4.668.7532-.5186 1.3846-1.1387 1.8571-1.8321-.0281.1638-.0425.3307-.0425.5001 0 1.4176 1.014 2.663 2.5433 3.3735.8121.3867 1.8046.6265 2.9567.6265 3.0275 0 5.4837-1.779 5.4999-3.9781 0-.0073.0001-.0146.0001-.0219 0-.0029 0-.0057 0-.0086-.0041-1.414-1.0171-2.6558-2.5432-3.3648-.8121-.3868-1.8047-.6266-2.9568-.6266z"/><path d="m13 31c1.6579 0 3-1.3421 3-3s-1.3421-3-3-3-3 1.3421-3 3 1.3421 3 3 3zm0 2c2.7625 0 5-2.2375 5-5s-2.2375-5-5-5-5 2.2375-5 5 2.2375 5 5 5z"/><path d="m5.62151 38.7886c-.48599.4893-.62151.8839-.62151 1.2114v1h18v-1c0-.3275-.1355-.7221-.6215-1.2114-.5043-.5077-1.2895-1.0094-2.3027-1.4522-2.0371-.8903-4.5143-1.3364-6.0758-1.3364s-4.03865.4461-6.07582 1.3364c-1.01321.4428-1.79842.9445-2.30267 1.4522zm8.37849-4.7886c-3.6712 0-11 2.01-11 6v3h22v-3c0-3.99-7.3287-6-11-6z"/><path d="m35 31c1.6579 0 3-1.3421 3-3s-1.3421-3-3-3-3 1.3421-3 3 1.3421 3 3 3zm0 2c2.7625 0 5-2.2375 5-5s-2.2375-5-5-5-5 2.2375-5 5 2.2375 5 5 5z"/><path d="m24 29c1.1054 0 2-.8946 2-2s-.8946-2-2-2-2 .8946-2 2 .8946 2 2 2zm0 2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"/><path d="m25.6215 38.7886c-.486.4893-.6215.8839-.6215 1.2114v1h18v-1c0-.3275-.1355-.7221-.6215-1.2114-.5043-.5077-1.2895-1.0094-2.3027-1.4522-2.0371-.8903-4.5143-1.3364-6.0758-1.3364s-4.0387.4461-6.0758 1.3364c-1.0132.4428-1.7984.9445-2.3027 1.4522zm8.3785-4.7886c-3.6712 0-11 2.01-11 6v3h22v-3c0-3.99-7.3287-6-11-6z"/><path d="m24 34c-3.3093 0-5.6283 1.5425-6.2929 2.2071l-1.4143-1.4142c1.0021-1.002 3.8164-2.7929 7.7072-2.7929 3.8907 0 6.705 1.7909 7.7071 2.7929l-1.4143 1.4142c-.6646-.6646-2.9836-2.2071-6.2928-2.2071z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,349 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="tracés_techniques"
data-name="tracés techniques"
viewBox="0 0 164.5 162"
version="1.1"
sodipodi:docname="inveniordm-tail.svg"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
inkscape:export-filename="/Users/jbenito/cernbox-dr/Services_Projects/Invenio/Stationary/Stickers/inveniordm-logo.png"
inkscape:export-xdpi="1050.47"
inkscape:export-ydpi="1050.47">
<metadata
id="metadata8884">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>inveni</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1156"
id="namedview8882"
showgrid="false"
inkscape:zoom="5.8209877"
inkscape:cx="82.25"
inkscape:cy="81"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g10401"
showguides="true"
inkscape:guide-bbox="true"
inkscape:pagecheckerboard="true">
<sodipodi:guide
position="104.19363,108.0604"
orientation="0,1"
id="guide10153"
inkscape:locked="false" />
<sodipodi:guide
position="97.87095,97.243907"
orientation="0,1"
id="guide10155"
inkscape:locked="false" />
<sodipodi:guide
position="59.984887,98.88665"
orientation="1,0"
inkscape:locked="false"
id="guide10173" />
<sodipodi:guide
position="0.36464977,117.63145"
orientation="1,0"
inkscape:locked="false"
id="guide10175" />
<sodipodi:guide
position="12.735418,125.98478"
orientation="0,1"
inkscape:locked="false"
id="guide5142" />
<sodipodi:guide
position="26.703297,95.857988"
orientation="0,1"
inkscape:locked="false"
id="guide5144" />
</sodipodi:namedview>
<defs
id="defs8802">
<linearGradient
inkscape:collect="always"
id="linearGradient9726">
<stop
style="stop-color:#0377cd;stop-opacity:1;"
offset="0"
id="stop9722" />
<stop
style="stop-color:#fb8273;stop-opacity:1"
offset="1"
id="stop9724" />
</linearGradient>
<style
id="style8800">.cls-1{fill:#2e6b8d;}.cls-2{fill:#fff;}.cls-3{fill:none;stroke:#fff;stroke-width:1.19px;}.cls-4{isolation:isolate;}.cls-5{fill:#66c5ee;}</style>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient9726"
id="linearGradient9728"
x1="83.806313"
y1="123.8721"
x2="82.227898"
y2="14.32421"
gradientUnits="userSpaceOnUse" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath10405">
<rect
style="fill:#0000ff;fill-rule:evenodd;stroke-width:2.32305741"
id="rect10407"
width="84.355652"
height="160.25584"
x="280.57312"
y="-25.69305" />
</clipPath>
</defs>
<title
id="title8804">inveni</title>
<text
id="text8818" />
<g
inkscape:groupmode="layer"
id="g10401"
inkscape:label="Layer 8"
style="display:inline">
<path
style="fill:url(#linearGradient9728);fill-opacity:1"
id="path10323"
class="cls-1"
d="M 20,117 V 45 L 82.25,9 144.47,45 v 72 l -62.22,36 z"
inkscape:connector-curvature="0" />
<g
transform="rotate(-60,83.460224,80.384206)"
id="g10365"
class="cls-4"
style="isolation:isolate">
<g
class="cls-4"
id="g10363"
style="isolation:isolate">
<path
class="cls-2"
d="m 32,114.22 0.47,0.26 -1.55,2.72 -0.47,-0.27 z m 0.58,-1 0.47,0.27 -0.29,0.52 -0.47,-0.27 z"
id="path10325"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 33.19,114.87 0.43,0.25 -0.22,0.38 a 1.55,1.55 0 0 1 0.61,-0.11 1.41,1.41 0 0 1 0.54,0.17 0.93,0.93 0 0 1 0.55,0.86 1.65,1.65 0 0 1 -0.25,0.7 l -1,1.75 -0.47,-0.27 1,-1.72 a 1,1 0 0 0 0.16,-0.44 0.5,0.5 0 0 0 -0.3,-0.51 1.07,1.07 0 0 0 -0.28,-0.12 0.73,0.73 0 0 0 -0.46,0 0.76,0.76 0 0 0 -0.31,0.2 2.27,2.27 0 0 0 -0.27,0.39 l -0.81,1.43 -0.46,-0.26 z"
id="path10327"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 36.31,116.65 -0.54,2.64 2,-1.79 0.51,0.29 -2.59,2.14 -0.48,-0.27 0.55,-3.31 z"
id="path10329"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 40.33,119.05 a 1.18,1.18 0 0 1 0.21,0.59 1.54,1.54 0 0 1 -0.09,0.59 3.86,3.86 0 0 1 -0.31,0.62 l -2,-1.13 a 1.31,1.31 0 0 0 -0.18,0.78 0.71,0.71 0 0 0 0.41,0.57 0.83,0.83 0 0 0 0.71,0.09 1,1 0 0 0 0.35,-0.22 l 0.45,0.25 a 0.93,0.93 0 0 1 -0.31,0.27 1.55,1.55 0 0 1 -0.4,0.18 1.28,1.28 0 0 1 -0.67,0 3.09,3.09 0 0 1 -0.39,-0.17 1.34,1.34 0 0 1 -0.65,-0.87 1.67,1.67 0 0 1 0.25,-1.24 1.84,1.84 0 0 1 1,-0.86 1.33,1.33 0 0 1 1.16,0.12 1.47,1.47 0 0 1 0.46,0.43 z m -0.45,1.17 a 1.27,1.27 0 0 0 0.14,-0.55 0.75,0.75 0 0 0 -0.43,-0.69 0.79,0.79 0 0 0 -0.65,-0.07 1,1 0 0 0 -0.56,0.45 z"
id="path10331"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 41.59,119.67 0.43,0.25 -0.22,0.39 a 1.39,1.39 0 0 1 0.61,-0.11 1.26,1.26 0 0 1 0.54,0.17 0.93,0.93 0 0 1 0.55,0.86 1.57,1.57 0 0 1 -0.25,0.69 l -1,1.76 -0.47,-0.27 1,-1.72 a 1.19,1.19 0 0 0 0.15,-0.45 0.52,0.52 0 0 0 -0.3,-0.51 0.77,0.77 0 0 0 -0.28,-0.11 0.73,0.73 0 0 0 -0.46,0 0.86,0.86 0 0 0 -0.31,0.19 2.26,2.26 0 0 0 -0.27,0.4 L 40.5,122.64 40,122.4 Z"
id="path10333"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 44.48,121.34 0.46,0.27 -1.55,2.72 -0.46,-0.27 z m 0.58,-1 0.47,0.26 -0.3,0.52 -0.46,-0.26 z"
id="path10335"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 47.46,123.4 a 1.58,1.58 0 0 1 -0.23,1.24 2.05,2.05 0 0 1 -0.94,0.91 1.32,1.32 0 0 1 -1.23,-0.14 1.27,1.27 0 0 1 -0.67,-0.89 1.73,1.73 0 0 1 0.25,-1.21 1.87,1.87 0 0 1 1,-0.89 1.35,1.35 0 0 1 1.17,0.12 1.42,1.42 0 0 1 0.65,0.86 z m -1.32,1.65 a 2.08,2.08 0 0 0 0.61,-0.67 1.69,1.69 0 0 0 0.23,-0.69 0.78,0.78 0 0 0 -0.44,-0.76 0.75,0.75 0 0 0 -0.79,0 1.68,1.68 0 0 0 -0.63,0.66 1.53,1.53 0 0 0 -0.23,0.84 0.78,0.78 0 0 0 0.44,0.63 0.71,0.71 0 0 0 0.81,-0.01 z"
id="path10337"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 47.74,125.68 a 0.76,0.76 0 0 0 -0.08,0.42 0.83,0.83 0 0 0 0.49,0.57 1,1 0 0 0 0.52,0.15 0.4,0.4 0 0 0 0.39,-0.23 0.32,0.32 0 0 0 0,-0.35 1.68,1.68 0 0 0 -0.32,-0.36 l -0.32,-0.3 a 2.19,2.19 0 0 1 -0.41,-0.5 0.66,0.66 0 0 1 0,-0.68 0.9,0.9 0 0 1 0.64,-0.47 1.29,1.29 0 0 1 0.9,0.2 1.18,1.18 0 0 1 0.69,0.87 0.9,0.9 0 0 1 -0.11,0.59 l -0.43,-0.24 a 0.7,0.7 0 0 0 0,-0.35 0.86,0.86 0 0 0 -0.46,-0.5 0.76,0.76 0 0 0 -0.46,-0.13 0.34,0.34 0 0 0 -0.29,0.18 0.39,0.39 0 0 0 0,0.39 1.72,1.72 0 0 0 0.24,0.29 l 0.27,0.25 a 2.69,2.69 0 0 1 0.54,0.61 0.7,0.7 0 0 1 -0.05,0.71 1,1 0 0 1 -0.64,0.47 1.37,1.37 0 0 1 -1,-0.22 1.33,1.33 0 0 1 -0.71,-0.78 1.19,1.19 0 0 1 0.11,-0.84 z"
id="path10339"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 53,126.55 a 1.61,1.61 0 0 1 -0.22,1.24 2.15,2.15 0 0 1 -0.94,0.91 1.34,1.34 0 0 1 -1.24,-0.14 1.3,1.3 0 0 1 -0.67,-0.89 1.74,1.74 0 0 1 0.26,-1.21 1.86,1.86 0 0 1 1,-0.9 1.34,1.34 0 0 1 1.16,0.13 1.36,1.36 0 0 1 0.65,0.86 z m -1.32,1.65 a 2,2 0 0 0 0.61,-0.67 1.69,1.69 0 0 0 0.23,-0.69 0.78,0.78 0 0 0 -0.44,-0.76 0.75,0.75 0 0 0 -0.79,0 1.75,1.75 0 0 0 -0.63,0.66 1.51,1.51 0 0 0 -0.22,0.84 0.76,0.76 0 0 0 0.43,0.63 0.72,0.72 0 0 0 0.77,-0.01 z"
id="path10341"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 54.73,126.09 a 0.83,0.83 0 0 1 0.75,0.12 l 0.09,0.05 0.1,0.07 -0.24,0.42 -0.1,-0.07 h -0.06 c -0.14,-0.08 -0.24,-0.09 -0.31,0 a 2.4,2.4 0 0 0 -0.36,0.53 l 0.46,0.26 -0.21,0.36 -0.46,-0.26 -1.34,2.36 -0.45,-0.26 1.34,-2.36 -0.38,-0.21 0.21,-0.37 0.38,0.22 0.24,-0.43 a 1.08,1.08 0 0 1 0.34,-0.43 z"
id="path10343"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 56,126.92 0.46,0.27 -0.46,0.81 0.44,0.25 -0.21,0.37 -0.44,-0.25 -1,1.79 a 0.23,0.23 0 0 0 0,0.24 0.52,0.52 0 0 0 0.17,0.13 h 0.07 0.09 l -0.21,0.37 -0.18,-0.06 -0.19,-0.1 c -0.21,-0.12 -0.33,-0.26 -0.34,-0.41 a 0.77,0.77 0 0 1 0.13,-0.49 l 1,-1.81 -0.37,-0.21 0.21,-0.38 0.37,0.21 z"
id="path10345"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 57.15,128.58 -0.7,2.45 1.76,-1.84 0.51,0.29 -0.72,2.44 1.78,-1.82 0.46,0.27 -2.35,2.27 -0.47,-0.27 0.65,-2.43 -1.75,1.81 -0.47,-0.28 0.77,-3.18 z"
id="path10347"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 61.55,132.53 a 0.28,0.28 0 0 0 0.28,0 0.33,0.33 0 0 0 0.13,-0.15 0.44,0.44 0 0 0 0,-0.44 1.09,1.09 0 0 0 -0.41,-0.38 0.59,0.59 0 0 0 -0.91,0.16 l -0.43,-0.24 a 0.91,0.91 0 0 1 0.73,-0.52 1.56,1.56 0 0 1 0.84,0.22 1.64,1.64 0 0 1 0.67,0.63 0.73,0.73 0 0 1 0,0.74 l -0.9,1.57 a 0.25,0.25 0 0 0 0,0.14 0.24,0.24 0 0 0 0.1,0.11 h 0.07 0.09 l -0.19,0.34 -0.19,-0.06 a 0.56,0.56 0 0 1 -0.15,-0.08 0.42,0.42 0 0 1 -0.25,-0.36 0.75,0.75 0 0 1 0.06,-0.3 1.29,1.29 0 0 1 -0.58,0.09 1.34,1.34 0 0 1 -0.66,-0.2 1,1 0 0 1 -0.48,-0.58 0.85,0.85 0 0 1 0.08,-0.71 0.87,0.87 0 0 1 0.58,-0.46 1.3,1.3 0 0 1 0.76,0.1 z m -1.67,0.69 a 0.62,0.62 0 0 0 0.27,0.31 1.21,1.21 0 0 0 0.54,0.15 0.72,0.72 0 0 0 0.72,-0.39 l 0.21,-0.37 a 0.63,0.63 0 0 1 -0.26,0 l -0.29,-0.1 -0.3,-0.12 a 1.28,1.28 0 0 0 -0.43,-0.11 0.46,0.46 0 0 0 -0.43,0.26 0.41,0.41 0 0 0 -0.03,0.37 z"
id="path10349"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 63.61,132.28 0.44,0.25 -0.27,0.47 a 1.4,1.4 0 0 1 0.45,-0.19 0.8,0.8 0 0 1 0.59,0.08 h 0.05 L 65,133 l -0.27,0.48 -0.07,-0.05 h -0.08 a 0.76,0.76 0 0 0 -0.65,-0.08 0.92,0.92 0 0 0 -0.48,0.41 l -0.9,1.57 -0.45,-0.26 z"
id="path10351"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 67,134.3 a 1.18,1.18 0 0 1 0.21,0.59 1.24,1.24 0 0 1 -0.09,0.59 3,3 0 0 1 -0.3,0.62 l -2,-1.13 a 1.4,1.4 0 0 0 -0.19,0.78 0.75,0.75 0 0 0 0.42,0.57 0.8,0.8 0 0 0 0.7,0.09 0.82,0.82 0 0 0 0.35,-0.23 l 0.46,0.26 a 1,1 0 0 1 -0.32,0.27 1.11,1.11 0 0 1 -0.39,0.17 1.27,1.27 0 0 1 -0.67,0 2,2 0 0 1 -0.4,-0.18 1.29,1.29 0 0 1 -0.64,-0.86 1.71,1.71 0 0 1 0.24,-1.24 1.8,1.8 0 0 1 1,-0.86 1.33,1.33 0 0 1 1.16,0.12 1.47,1.47 0 0 1 0.46,0.44 z m -0.44,1.17 a 1.44,1.44 0 0 0 0.14,-0.55 0.76,0.76 0 0 0 -0.44,-0.69 0.78,0.78 0 0 0 -0.65,-0.07 1,1 0 0 0 -0.56,0.45 z"
id="path10353"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 67.1,137.16 0.53,0.31 -0.31,0.55 -0.54,-0.3 z"
id="path10355"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 71.5,137.15 a 1.57,1.57 0 0 1 -0.23,1.24 2,2 0 0 1 -0.94,0.91 1.31,1.31 0 0 1 -1.23,-0.13 1.27,1.27 0 0 1 -0.67,-0.89 1.73,1.73 0 0 1 0.25,-1.21 1.9,1.9 0 0 1 1,-0.9 1.3,1.3 0 0 1 1.16,0.13 1.42,1.42 0 0 1 0.66,0.85 z m -1.32,1.66 a 2,2 0 0 0 0.6,-0.68 1.51,1.51 0 0 0 0.24,-0.69 0.78,0.78 0 0 0 -0.45,-0.75 0.74,0.74 0 0 0 -0.78,0 1.78,1.78 0 0 0 -0.63,0.67 1.52,1.52 0 0 0 -0.23,0.83 0.79,0.79 0 0 0 0.43,0.64 0.74,0.74 0 0 0 0.82,-0.02 z"
id="path10357"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 72.59,137.42 0.43,0.25 -0.26,0.47 a 1.3,1.3 0 0 1 0.45,-0.19 0.8,0.8 0 0 1 0.59,0.08 v 0 a 0.37,0.37 0 0 1 0.1,0.07 l -0.27,0.48 -0.07,-0.05 -0.08,-0.05 a 0.75,0.75 0 0 0 -0.66,-0.08 0.94,0.94 0 0 0 -0.47,0.41 l -0.9,1.57 -0.46,-0.26 z"
id="path10359"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
<path
class="cls-2"
d="m 75.76,139.38 a 1.42,1.42 0 0 1 0.12,0.41 l 0.19,-0.34 0.43,0.24 -1.42,2.48 a 1.93,1.93 0 0 1 -0.62,0.73 1.24,1.24 0 0 1 -1.39,-0.05 1.54,1.54 0 0 1 -0.62,-0.62 0.86,0.86 0 0 1 0,-0.81 l 0.46,0.26 a 0.58,0.58 0 0 0 0,0.36 0.78,0.78 0 0 0 0.4,0.43 0.76,0.76 0 0 0 0.9,0 2.38,2.38 0 0 0 0.53,-0.73 0.94,0.94 0 0 1 -0.5,0.12 1.36,1.36 0 0 1 -1.16,-0.94 1.58,1.58 0 0 1 0.26,-1.23 1.8,1.8 0 0 1 0.94,-0.88 1.19,1.19 0 0 1 1,0.07 1.06,1.06 0 0 1 0.48,0.5 z m -0.22,0.52 a 0.78,0.78 0 0 0 -0.39,-0.54 0.75,0.75 0 0 0 -0.92,0.07 2.24,2.24 0 0 0 -0.45,0.58 1.31,1.31 0 0 0 -0.22,0.81 0.73,0.73 0 0 0 0.37,0.53 0.8,0.8 0 0 0 0.94,0 1.71,1.71 0 0 0 0.45,-0.53 1.28,1.28 0 0 0 0.22,-0.92 z"
id="path10361"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:condensed;font-size:43.37393951px;line-height:1.25;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, Bold Condensed';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#fb8273;fill-opacity:1;stroke:none;stroke-width:8.78208637;stroke-miterlimit:4;stroke-dasharray:none"
x="55.735847"
y="101.25121"
id="text10369"
transform="scale(1.0429084,0.95885698)"><tspan
y="101.25121"
x="55.735847"
id="tspan10367"
sodipodi:role="line"
style="stroke-width:8.78208637">RDM</tspan></text>
<g
transform="matrix(0.43046721,0,0,0.43046721,-304.9125,-41.41547)"
id="g10385">
<g
id="g10377"
transform="translate(474.21725,226.44114)">
<g
id="g10375">
<g
id="g10373">
<path
inkscape:connector-curvature="0"
d="m 328.162,4.665 c -18.767,0 -34.032,15.268 -34.032,34.034 0,7.28 2.306,14.028 6.214,19.568 l -30.078,26.432 c -1.881,1.878 0.067,6.867 1.944,8.749 1.879,1.876 6.87,3.822 8.748,1.943 l 26.265,-29.894 c 5.779,4.525 13.047,7.233 20.939,7.233 18.768,0 34.034,-15.267 34.034,-34.032 0,-18.765 -15.266,-34.033 -34.034,-34.033 z m 0,56.722 c -12.51,0 -22.689,-10.177 -22.689,-22.688 0,-12.511 10.18,-22.69 22.689,-22.69 12.513,0 22.688,10.18 22.688,22.69 0,12.51 -10.175,22.688 -22.688,22.688 z"
id="path10371"
style="fill:#ffffff" />
</g>
</g>
</g>
<g
id="g10383"
transform="matrix(0.38742049,0,0,0.38742049,670.93796,251.12579)">
<path
inkscape:connector-curvature="0"
d="m 375.104,38.079 c 0.174,18.184 -8.123,32.126 -11.51,37.52 8.183,-5.347 19.898,-19.36 19.674,-37.661 0.174,-18.183 -11.431,-32.127 -19.631,-37.52 3.323,5.347 11.691,19.36 11.467,37.661 z"
id="path10379"
style="fill:#ffffff" />
<path
inkscape:connector-curvature="0"
d="m 375.104,38.079 c 0.174,18.184 -8.123,32.126 -11.51,37.52 8.183,-5.347 19.898,-19.36 19.674,-37.661 0.174,-18.183 -11.431,-32.127 -19.631,-37.52 3.323,5.347 11.691,19.36 11.467,37.661 z"
id="path10381"
style="fill:none;stroke:#ffffff" />
</g>
</g>
<circle
r="4.3097267"
cy="59.329391"
cx="114.42316"
id="circle10387"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.26771665;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#ffffff;stroke-width:0.16677181"
x="60.269562"
id="rect10389"
height="10.714088"
width="2.3428104"
y="54.011116" />
<polygon
transform="matrix(0.16677181,0,0,0.16677181,60.269562,52.640917)"
style="fill:#ffffff"
id="polygon10391"
points="101.318,8.433 113.62,36.814 125.814,8.325 140.814,8.325 113.512,72.427 86.21,8.433 " />
<polygon
transform="matrix(0.16677181,0,0,0.16677181,60.269562,52.640917)"
style="fill:#ffffff"
id="polygon10393"
points="218.848,43.075 254.537,74.124 254.537,7.961 239.34,7.961 239.34,36.974 203.65,8.076 203.65,72.318 218.848,72.318 " />
<polygon
transform="matrix(0.16677181,0,0,0.16677181,60.269562,52.640917)"
style="fill:#ffffff"
id="polygon10395"
points="27.65,8.242 27.65,72.484 42.848,72.484 42.848,43.241 78.537,74.29 78.537,8.127 63.34,8.127 63.34,37.14 " />
<rect
style="fill:#ffffff;stroke-width:0.16677181"
id="rect10397"
height="10.713921"
width="2.342977"
y="54.042175"
x="104.96441" />
<polygon
transform="matrix(0.16677181,0,0,0.16677181,60.269562,52.640917)"
style="fill:#ffffff"
id="polygon10399"
points="166.976,20.927 192.991,20.927 192.991,7.974 149.193,7.974 149.193,72.079 193.649,72.079 193.649,59.346 166.976,59.346 166.976,45.624 191.783,45.624 191.783,32.672 166.976,32.672 " />
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512.427 512.427" xml:space="preserve">
<g transform="translate(1 1)">
<g>
<g>
<path d="M502.893,396.948h-54.941l19.102-5.12c1.707-0.853,4.267-1.707,5.12-4.267s1.707-4.267,0.853-6.827l-12.67-47.026
c0.07-0.83,0.031-1.664-0.13-2.467l-8.533-33.28c-0.405-0.81-1.006-1.81-1.704-2.731l-42.692-158.453
c0.228-1.166,0.251-2.368,0.023-3.51l-8.533-33.28c-0.526-1.052-1.377-2.426-2.352-3.527L384.28,51.348
c-0.853-4.267-5.973-6.827-10.24-5.973l-82.773,22.187c-4.267,0.853-6.827,5.973-5.973,10.24l18.404,68.485
c-6.845-3.409-14.542-5.339-22.671-5.339H33.56c-3.413,0-5.973,1.707-7.68,5.12c-1.707,2.56-1.707,5.973,0,8.533l10.24,16.213
c7.68,13.653,7.68,29.867,0,43.52l-7.545,11.947H7.96c-3.413,0-5.973,1.707-7.68,5.12c-1.707,2.56-1.707,5.973,0,8.533
l10.24,16.213c7.68,13.653,7.68,29.867,0,43.52L0.28,315.882c-1.707,2.56-1.707,5.973,0,8.533s4.267,4.267,7.68,4.267h20.076
l8.084,12.8c7.68,13.653,7.68,29.867,0,43.52l-7.545,11.947H7.96c-5.12,0-8.533,3.413-8.533,8.533v51.2
c0,5.12,3.413,8.533,8.533,8.533h494.933c5.12,0,8.533-3.413,8.533-8.533v-51.2C511.427,400.362,508.013,396.948,502.893,396.948
z M292.303,312.89c8.853-9.215,14.323-21.7,14.323-35.409s-5.47-26.194-14.323-35.409c12.984-2.949,24.135-10.859,31.324-21.623
l29.419,109.472l7.34,28.627c0.198,0.395,0.42,0.778,0.661,1.147l10.011,37.253h-51.961c8.15-9.076,13.129-21.05,13.129-34.133
C332.227,338.528,315.083,318.064,292.303,312.89z M387.693,129.855l-65.707,17.92l-4.267-16.213l65.707-17.92L387.693,129.855z
M392.263,146.011l39.228,148.419l-65.994,17.689l-33.635-125.96c-0.582-4.934-1.863-9.661-3.758-14.072l-2.089-7.824
L392.263,146.011z M370.627,328.682l65.426-16.994l4.285,16.212l-65.444,17.849L370.627,328.682z M387.693,395.242l-8.951-33.52
l65.868-17.655l8.79,33.255L387.693,395.242z M370.627,64.148l8.501,32.163l-66.498,17.824l-8.563-32.067L370.627,64.148z
M50.627,161.428l-1.707-3.413h232.107c14.067,0,26.217,8.625,31.425,20.847l2.436,9.064c0.173,1.385,0.272,2.792,0.272,4.222
c0,18.773-15.36,34.133-34.133,34.133h-25.6H48.92l1.707-3.413C61.72,204.095,61.72,180.202,50.627,161.428z M25.027,246.762
l-1.707-3.413h10.24h221.867c18.773,0,34.133,15.36,34.133,34.133c0,18.773-15.36,34.133-34.133,34.133H33.56H23.32l1.707-3.413
C36.12,289.428,36.12,265.535,25.027,246.762z M50.627,332.095l-1.707-3.413h206.507h25.6c18.773,0,34.133,15.36,34.133,34.133
c0,18.773-15.36,34.133-34.133,34.133H48.92l1.707-3.413C61.72,374.762,61.72,350.868,50.627,332.095z M494.36,448.148H16.493
v-34.133H33.56h247.467h101.547h1.707h110.08V448.148z"/>
<path d="M93.293,371.348h187.733c5.12,0,8.533-3.413,8.533-8.533s-3.413-8.533-8.533-8.533H93.293
c-5.12,0-8.533,3.413-8.533,8.533S88.173,371.348,93.293,371.348z"/>
<path d="M67.693,286.015h187.733c5.12,0,8.533-3.413,8.533-8.533c0-5.12-3.413-8.533-8.533-8.533H67.693
c-5.12,0-8.533,3.413-8.533,8.533C59.16,282.602,62.573,286.015,67.693,286.015z"/>
<path d="M93.293,200.682h187.733c5.12,0,8.533-3.413,8.533-8.533s-3.413-8.533-8.533-8.533H93.293
c-5.12,0-8.533,3.413-8.533,8.533S88.173,200.682,93.293,200.682z"/>
<path d="M357.827,182.762l26.453,98.987c1.707,3.413,5.12,5.973,8.533,5.973c0,0,0.853,0,1.707-0.853
c4.267-0.853,6.827-5.973,5.973-10.24l-26.453-98.133c-0.853-4.267-5.973-6.827-10.24-5.973S356.973,178.495,357.827,182.762z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" data-attribution="cc0-icons" viewBox="0 0 24 24">
<path d="m4.5 2 15 10-15 10V2Z"/>
</svg>

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1 @@
<svg enable-background="new 0 0 64 64" height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><path d="m32 0c-27.377 0-31.93 25.415-31.973 25.671-.097.58.066 1.173.447 1.622.38.448.938.707 1.526.707h28v30c0 3.309 2.691 6 6 6s6-2.691 6-6c0-1.104-.896-2-2-2s-2 .896-2 2c0 1.103-.897 2-2 2s-2-.897-2-2v-30h28c.007-.001.013 0 .02 0 1.104 0 2-.896 2-2 0-.234-.041-.459-.115-.669-.645-3.04-6.265-25.331-31.905-25.331zm-27.455 24c1.712-5.749 7.927-20 27.455-20s25.743 14.251 27.455 20z"/></svg>

After

Width:  |  Height:  |  Size: 510 B

View File

@@ -0,0 +1 @@
.zed

View File

@@ -0,0 +1,13 @@
{#
Copyright (C) 2024 Graz University of Technology.
invenio-theme-iform 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_ERROR_TEMPLATE %}
{% block message %}
<h1><i class="bolt icon"></i> Locked</h1>
<p>The resource that is being accessed is locked.</p>
{% endblock message %}

View File

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

@@ -0,0 +1,32 @@
{%- if config.ACCOUNTS %}
{%- if not current_user.is_authenticated %}
{%- if config.SECURITY_REGISTERABLE %}
<div class="short-menu-right-button">
<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) }}" class="no-decoration">
{{ _ ("Log in") }}
</a>
</div>
{%- else %}
{%- if config.USERPROFILES %}
<div class="short-menu-right-button">
<a href="{{ url_for('invenio_userprofiles.profile') }}" class="no-decoration">
<i class="user icon"></i> {{ current_user.email }}
</a>
</div>
<div class="short-menu-right-button">
<a class="dropdown-item no-decoration" href="{{ url_for_security('logout') }}"
>Sign out</a
>
</div>
{%- endif %}
{%- endif %}
{%- endif %}

View File

@@ -0,0 +1,111 @@
{#
Copyright (C) 2020-2021 Graz University of Technology.
invenio-theme-iform 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_IFORM_ACCOUNT_BASE %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{%- from "invenio_oauthclient/_macros.html" import oauth_button %}
{% 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 large form">
<div class="ui login segment padded">
<div class="divider hidden"></div>
{%- block form_header %}
<h3 class="ui login header">Log in to Repository</h3>
{%- endblock form_header %}
<div class="ui divider"></div>
<!--Log in with SSO-->
{% if config.OAUTHCLIENT_REMOTE_APPS or config.SSO_SAML_IDPS %}
<div class="ui form">
{% for name in config.OAUTHCLIENT_REMOTE_APPS.keys() %}
{{ oauth_button(name, next=request.args.get('next')) }}
{% endfor %}
</div>
{% for name in config.SSO_SAML_IDPS.keys() %}
<div class="field">
<a
class="login-page-button ui fluid large button"
href="{{ url_for('sso_saml.sso', idp=name) }}"
>
Log in with
{{ config.SSO_SAML_IDPS[name]['title']|default("SAML", true) }}
<img
src="{{ url_for('static', filename=config.INVENIO_THEME_IFORM_ICON) }}"
height="20px"
/>
</a>
</div>
{% endfor %}
{%- if config.ACCOUNTS_LOCAL_LOGIN_ENABLED %}
<div class="ui horizontal divider">Or</div>
{%- endif %}
{% endif %}
{%- block form_outer %}
{%- if config.ACCOUNTS_LOCAL_LOGIN_ENABLED %}
{%- with form = login_user_form %}
{%- set accordion_active = "active" if form.errors else "" %}
<div class="ui styled accordion">
<div class="title trigger {{ accordion_active }}">
Log in with repository credentials
<i class="user icon button"></i>
</div>
<div class="content {{ accordion_active }}">
<form
action="{{ url_for_security('login') }}"
method="POST"
name="login_user_form"
class="ui large form"
>
{{ form.hidden_tag() }}
{{ form_errors(form) }}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
<button
type="submit"
class="ui fluid large submit button"
>
<i class="ui sign-in icon"></i>Log In
</button>
</form>
</div>
</div>
{%- endwith %}
{%- endif %}
{%- endblock form_outer %}
<div class="divider hidden"></div>
</div>
{%- block registerable %}
{%- if security.registerable %}
<div class="ui primary segment padded text-muted">
{% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %}
<a
href="{{ url_for_security('register', next=request.args.get('next')) }}"
>Sign up</a
>
</div>
{%- endif %}
{%- endblock registerable %}
{%- block recoverable %}
{%- if security.recoverable %}
<div class="ui basic segment padded">
<a
class="ui inverted header tiny"
href="{{ url_for_security('forgot_password') }}"
>Forgot password?</a
>
</div>
{%- endif %}
{%- endblock recoverable %}
</div>
</div>
</div>
{% endblock page_body %}

View File

@@ -0,0 +1,108 @@
{#
Copyright (C) 2020 Graz University of Technology.
invenio-theme-iform 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_IFORM_ACCOUNT_BASE %}
{% from "invenio_accounts/_macros.html" import render_field, form_errors %}
{% block page_body %}
<div class="spacer-long"></div>
<div class="ui container">
<div class="ui stackable two column grid">
<div class="centered row">
<h1 class="ui header">Create an Account</h1>
</div>
<div class="column" id="switch_left">
<div class="ui basic segment">
<h4 class="ui header">Citeable. Discoverable.</h4>
<p class="bodytext">
Uploads get a Digital Object Identifier (DOI) to make them easily and
uniquely citeable.
</p>
<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).
</p>
<h4 class="ui header">Trusted Research Data Management</h4>
<p class="bodytext">
Built on top of I-Form expertise in the managing of research data.
</p>
</div>
</div>
<div class="column" id="switch_right">
{# Sigup with SSO #}
{%- if config.INVENIO_CONFIG_IFORM_SHIBBOLETH %}
<div class="ui divider"></div>
<a
href="{{ url_for('sso_saml.sso', idp='idp') }}"
class="login-page-button ui fluid large button"
>
<span style="font-size: 18px;">Sign up with I-Form</span>
<img
src="{{ url_for('static', filename=config.INVENIO_THEME_IFORM_ICON) }}"
height="20px"
/>
</a>
<div class="ui inverted horizontal divider">
<span class="text-color">{{ _ ("Or") }}</span>
</div>
{%- endif %}
{%- block form_header %}
{# can add a header img #}
{%- block form_outer %}
{%- endblock form_outer %}
{%- endblock form_header %}
{%- with form = register_user_form %}
{%- set accordion_active = "active" if form.errors else "" %}
<div class="ui padded centered large form">
<div class="ui styled accordion">
<div class="title trigger {{ accordion_active }}">
Sign up with repository credentials
<i class="user icon button"></i>
</div>
<div class="content {{ accordion_active }}">
<form
class="ui large form"
action="{{ url_for_security('register') }}"
method="POST"
name="register_user_form"
>
{{ form_errors(form) }}
{{ form.hidden_tag() }}
{%- block registration_form_fields scoped %}
{{ render_field(form.email, icon="user icon", autofocus=True, errormsg=False) }}
{{ render_field(form.password, icon="lock icon", errormsg=False) }}
{%- if form.password_confirm %}
{{ render_field(form.password_confirm, icon="lock icon", errormsg=False) }}
{%- endif %}
{%- endblock registration_form_fields %}
{%- if form.recaptcha %}
<div class="grouped fields">{{ form.recaptcha() }}</div>
{%- endif %}
<div class="centered row">
<button type="submit" class="ui fluid large submit button">
<i class="ui edit outline icon"></i>Sign up
</button>
</div>
</form>
</div>
</div>
</div>
{%- endwith %}
<div class="ui divider"></div>
</div>
</div>
</div>
{% endblock page_body %}

View File

@@ -0,0 +1,108 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
invenio-theme-iform 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="{{ 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 %}
<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 %}
{%- endblock head_links %}
{%- block header %}
{% endblock header %}
{%- block css %}
{{ webpack["theme.css"] }}
{{ webpack["invenio-theme-iform-theme.css"] }}
{%- endblock css %}
{%- endblock head %}
</head>
<body
itemscope
itemtype="http://schema.org/WebPage"
data-spy="scroll"
data-target=".scrollspy-target"
>
{%- block body %}
{%- block browserupgrade %}
<!--[if lt IE 10]>
<p class="browserupgrade">
You are using an <strong>outdated</strong> browser. Please
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your
experience.
</p>
<![endif]-->
{%- endblock browserupgrade %}
{%- block body_inner %}
{%- block 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,40 @@
{#
Copyright (C) 2020-2024 Graz University of Technology.
Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
invenio-theme-iform 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 segment" style="padding-bottom: 10px;">
<h4>Good reasons to use the I-Form Repository</h4>
<ul>
<li><strong>Safe</strong> &mdash; Your research results are permanently available.</li>
<li>
<strong>Trusted</strong> &mdash; A service from I-Form, based on software developed by
CERN.
</li>
<li>
<strong>Citeable</strong> &mdash; Every upload is assigned a Digital Object Identifier
(DOI).
</li>
<li>
<strong>No waiting time</strong> &mdash; Uploads are made available online as soon as
you hit publish. Your DOI is registered within seconds.
</li>
<li>
<strong>Open or closed</strong> &mdash; You determine the visibility of your uploads. A
restricted access mode is possible.
</li>
<li>
<strong>Versioning</strong> &mdash; Easily update your dataset with the versioning
feature.
</li>
<li>
<strong>Usage statistics</strong> &mdash; All uploads display standards compliant usage
statistics. <a href="help/statistics">(More)</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,25 @@
{#
Copyright (C) 2020-2024 Graz University of Technology.
invenio-theme-iform 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 segment">
<h4>Need help?</h4>
{%- if config.THEME_IFORM_CONTACT_FORM %}
<div style="padding-bottom: 10px;">
<a id="feedback-form" class="fluid ui button">Contact us</a>
</div>
{%- endif %}
<p>We can help with:</p>
<ul>
<li>Uploading your research results, software, preprints, etc.</li>
<li>Increasing upload limit beyond our default policy of 10GB.</li>
<li>Establishing contact with data stewards.</li>
<li>Finding individual solutions.</li>
</ul>
</div>

View File

@@ -0,0 +1,17 @@
{#
Copyright (C) 2024 Graz University of Technology.
invenio-theme-iform 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_ERROR_TEMPLATE %}
{% block message %}
<h1>Internal server error</h1>
<p>
Please contact <a href="mailto:{{ config.THEME_IFORM_SUPPORT_EMAIL }}">our support</a> to
let us know about this error.
</p>
{# TODO: provide g.sentry_event_id here once sentry is configured, cf. invenio_theme/500.html #}
{% endblock message %}

View File

@@ -0,0 +1,161 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more
details.
#}
{%- block css %}
{{ webpack['invenio-theme-iform-theme.css'] }}
{%- endblock %}
{%- block javascript %}
{{ webpack['invenio-theme-iform-js.js'] }}
{%- endblock javascript %}
<div class="spacer"></div>
<footer id="footer" class="footer-bottom">
<div class="ui container">
<div class="ui grid">
<div class="doubling three column row">
<div class="column">
<h2>Repository</h2>
<div class="ui list">
<div class="item">
<a
href="https://tu-graz-library.github.io/docs-repository"
title="Repository documentation"
target="_blank"
>
Documentation <i class="external alternate icon"></i>
</a>
</div>
<div class="item">
<a
href="{{ url_for('invenio_config_iform.guide') }}"
title="Quick guide"
target="_blank"
>
Reference Guide <i class="download icon"></i>
</a>
</div>
<div class="item">
<a
href="{{ url_for('invenio_app_rdm.help_search') }}"
title="Search guide"
>
Search Guide<i class="angle right icon"></i>
</a>
</div>
<div class="item">
<a
href="{{ url_for('invenio_config_iform.gdpr') }}"
title="General Data Protection Rights"
target="_blank"
>
Data Protection <i class="download icon"></i>
</a>
</div>
<div class="item">
<a
href="{{ url_for('invenio_config_iform.terms') }}"
title="Terms and Conditions"
target="_blank"
>
Terms and Conditions <i class="download icon"></i>
</a>
</div>
</div>
</div>
<div class="column">
<h2>Features</h2>
<div class="ui list">
<div class="item">Scalability</div>
<div class="item">Institutional integration</div>
<div class="item">Next Generation Repository</div>
<div class="item">Repository Profiles</div>
<div class="item">Resilient</div>
</div>
</div>
<!-- <div class="column">
<h2>Connected Services</h2>
<div class="ui list">
<div class="item">
<a href="https://pure.tugraz.at" title="PURE" target="_blank">
PURE <i class="external alternate icon"></i>
</a>
</div>
<div class="item">
<a href="http://campusonline.tugraz.at" title="CAMPUS online" target="_blank">
CampusOnline <i class="external alternate icon"></i>
</a>
</div>
<div class="item">
<a href="https://rdm.i-form.ie" title="Research Data Management" target="_blank">
Research Data Management <i class="external alternate icon"></i>
</a>
</div>
</div>
</div> -->
<div class="column">
<h2>Accessibility</h2>
<div class="ui list">
<div class="item">Tip:</div>
<div class="item">Use Ctrl + and Crtl -</div>
<div class="item">to change the font size.</div>
</div>
</div>
</div>
<div class="ui divider"></div>
<div class="doubling two column row">
<div class="column">
<div class="logos">
<strong>Powered by</strong>
<a
href="http://inveniosoftware.org/products/rdm"
target="_blank"
title="invenioRDM"
>
<img
src="{{ url_for('static', filename='images/inveniordm-tail.svg') }}"
alt="InvenioRDM logo"
style="display: block; height: 90px; margin-top: 8px;"
/>
</a>
</div>
</div>
<div class="column">
<div class="logos">
<strong>Funded by</strong>
<a
href="https://www.sfi.ie"
target="_blank"
title="Science Foundation Ireland"
>
<img
src="{{ url_for('static', filename='images/SFI_logo.png') }}"
alt="Science Foundation Ireland"
style="display: block; height: auto; margin-top: 15px; width: 230px;"
/>
</a>
</div>
</div>
</div>
</div>
</div>
</footer>

View File

@@ -0,0 +1,72 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
invenio-theme-iform 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="sixteen wide column random-records-frontpage">
<div class="center aligned ui equal height grid">
<div class="left aligned column">
<div class="ui segment image">
<h2>Research Results</h2>
<div>Frontpage: Description for research results</div>
<ul>
{#
<li>
<a href="research-results/browse">Browse</a>
</li>
#}
<li>
<a href="records/search">Search for research results</a>
</li>
<li>
<a href="me/uploads">Upload research results</a>
</li>
</ul>
</div>
</div>
<div class="left aligned column">
<div class="ui segment image">
<h2>Publications</h2>
<div>Frontpage: Description for publications</div>
<ul>
{#
<li>
<a href="publications/browse">Browse</a>
</li>
#}
<li>
<a href="publications/search">Search for publications</a>
</li>
</ul>
</div>
</div>
<div class="left aligned column">
<div class="ui segment image">
<h2>Educational Resources</h2>
<div>Frontpage: Description for open educational resources</div>
<ul>
{#
<li>
<a href="oer/browse">Browse</a>
</li>
#}
<li>
<a href="oer/search">Search for educational resourses</a>
</li>
<li>
<a href="oer/uploads">Upload educational resources</a>
</li>
</ul>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,70 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre.
invenio-theme-iform 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 not config.THEME_IFORM_PRODUCTION %}
<div class="ui sticky test-instance">
<h4>Test Instance</h4>
<p>This is the test instance of the I-Form Repository.</p>
</div>
{% endif %}
<div>
<header>
{%- block site_banner %}
{% from 'invenio_banners/banner.html' import banner %}
{{ banner() }}
{%- endblock site_banner %}
{%- block navbar %}
<nav>
{%- block navbar_header %}
{%- include "invenio_theme_iform/navbar.html" %}
{%- 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">
<a
href="{{ url_for('invenio_theme_iform.index') }}"
title="Home"
class="no-decoration"
>
<span class="home-inline">
{%- include "invenio_theme_iform/home_icon.svg" %} Home
</span>
</a>
</div>
<div class="two wide column main-menu-entry">
<a role="menuitem" href="/communities" class="no-decoration"
>Communities</a
>
</div>
<div class="two wide column main-menu-entry">
<a role="menuitem" href="/me/overview" class="no-decoration"
>Dashboard</a
>
</div>
</div>
<div id="margin-divider" class="ui divider main-menu-underline-line"></div>
</div>
<div class="spacer"></div>
</div>
</nav>
{%- endblock navbar %}
{%- block flashmessages %}
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
{%- endblock %}
</header>
</div>

View File

@@ -0,0 +1 @@
<svg id="int-menu-q-home-icon" width="35.969" height="36.997" enable-background="new 0 0 595.28 841.89" shape-rendering="geometricPrecision" version="1.1" viewBox="0 0 35.969 36.997" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><polyline id="home-polyline" transform="translate(-279.72 -403.28)" points="282.72 437.28 282.72 414.77 297.71 406.69 312.69 414.77 312.69 437.28" style="fill:none;stroke-linecap:square;stroke-width:4;stroke:#069f4b"></polyline></svg>

After

Width:  |  Height:  |  Size: 474 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,29 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
invenio-theme-iform 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_IFORM_BASE_TEMPLATE %}
{%- block javascript %}
{{ webpack['invenio-theme-iform-js.js'] }}
{%- endblock javascript %}
{%- block page_body %}
<div class="ui container">
<div class="ui divider hidden"></div>
<div class="ui stackable grid">
{% include "invenio_theme_iform/frontpage_overview.html" %}
{% include "invenio_theme_iform/recent_uploads.html" %}
<!---segments-->
<div class="six wide column">
{% include "invenio_theme_iform/contact_us.html" %}
{% include "invenio_theme_iform/benefits.html" %}
</div>
</div>
</div>
{%- endblock %}

View File

@@ -0,0 +1,39 @@
{#
Copyright (C) 2020 Zenodo
Copyright (C) 2020 TUGRAZ
invenio-theme-iform 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-tooltip="{{ affiliation.name }}" data-inverted=""
{%- 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,98 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more
details.
#}
{%
set options = [
{
"key": "records",
"text": "All",
"value": url_for("invenio_search_ui.search"),
"title": "repo",
},{
"key": "rdm",
"text": "Research Results",
"value": "/records/search",
"title": "Research Data",
},{
"key": "marc21",
"text": "Publications",
"value": url_for("invenio_records_marc21.search"),
"title": "publication",
},{
"key": "lom",
"text": "Educational Resources",
"value": url_for("invenio_records_lom.search"),
"title": "oer",
}
]
%}
<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">
<div style="display: inline-block;">
<div class="item p-0 search-bar rel-mr-1">
<!-- prettier-ignore-attribute data-options -->
<div id="header-search-bar" data-options='{{ options | tojson }}'></div>
</div>
</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">{%- include "invenio_theme_iform/repository_logo.svg" %}</div>
<div class="affiliation-text">
<a
title="Home"
href="{{ url_for('invenio_theme_iform.index') }}"
class="no-decoration"
>
I-FORM
<br />
RESEARCH DATA
<br />
REPOSITORY
</a>
</div>
</div>
</div>
<!-- Right -->
<div class="right floated right aligned six wide column">
<div class="affiliation-logo" id="int-header-logo">
<div class="affiliation-logo-claim">
<div class="affiliation-logo-claim-single">Excellence</div>
<div class="affiliation-logo-claim-single">Through</div>
<div class="affiliation-logo-claim-single">Expertise</div>
</div>
<a
href="https://www.i-form.ie"
title="I-Form Home"
target="_blank"
class="no-decoration"
>
{%- include "invenio_theme_iform/iform_logo.svg" %}
</a>
</div>
</div>
</div>
</div>

View File

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

View File

@@ -0,0 +1,89 @@
{#
Copyright (C) 2020-2023 Graz University of Technology.
invenio-theme-iform is free software; you can redistribute it and/or
modify it under the terms of the MIT License; see LICENSE file for more
details.
#}
<!---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 = r.original.view %}
<article>
<div class="badges">
{# Publication date/Version badge #}
<span class="ui label blue" data-tooltip="Publication date" data-inverted="">
{{ r.created_date_l10n_long }}
</span>
{# Resource type badge #}
{% if r.metadata.types | length > 0 %}
<span class="ui label grey" data-tooltip="Resource type" data-inverted="">
{{ r.metadata.types[0] }}
</span>
{% endif %}
<span
class="ui label access-status {{ r.access_status.id }}"
data-tooltip="{{ r.access_status.description_l10n }}"
data-inverted=""
>
<i class="icon {{ r.access_status.icon }}"></i>
{{ r.access_status.title_l10n }}
</span>
<span class="ui label schema" data-tooltip="Schema Type" data-inverted="">
{{ r.original.schema_l10n }}
</span>
</div>
<h4>
<a href="{{ record_url }}" class="no-decoration"> {{ r.metadata.titles[0] }} </a>
</h4>
<p>
{%- for creator in r.metadata.creators %}
<span>{{ creator }}</span>
{%- endfor %}
</p>
<p class="hidden-xs">
<a href="{{ record_url }}" class="no-decoration">
{{ r.metadata.descriptions | join(" ") | striptags | truncate(300) }}
</a>
</p>
<div class="ui">
{%- for subject in r.metadata.subjects %}
<span class="ui tiny label">{{ subject }}</span>
{%- endfor %}
<div>
<small>
{#
{% trans user=userprofile, date=creation_date | dateformat("long")%}
Uploaded on {{date}}
{% endtrans %}
#}
</small>
</div>
</div>
</article>
{%- 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>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.1 KiB

Some files were not shown because too many files have changed in this diff Show More