-
Notifications
You must be signed in to change notification settings - Fork 14
Nasazení klienta
-
Stáhněte zip archiv zde
-
Obsah archivu nahrajte do složky, na kterou máte nasměrovaný web server s doménou pro klienta.
Ve složce /assets/
vytvořte složku shared
, kde budete mít všechny vlastní lokální soubory, zejména:
-
/assets/shared/favicon.ico
- favicon webu -
/assets/shared/style.css
- vlastní styly. Pokud možno nepoužívejte pro přestylování aplikace, ale pro stylování vlastních stránek (stránka s informacemi, patička) -
/assets/shared/globals.js
- konfigurační soubor
V souboru u /assets/shared/globals.js
nastavte proměnné
-
APP_GLOBAL.share_url Šablona pro persistentní odkazy, např. https://kramerius.lib.cas.cz/uuid/${UUID}, není-li vyplněno, použije se DOMENA_KLIENTA/uuid/${UUID}. Pokud nemáte klienta v rootu, pak použijte DOMENA_KLIENTA/CESTA_KE_KLIENTOVI/uuid/${UUID}. Pokud má klient přístup k více Krameriům, pak např. https://www.digitalniknihovna.cz/${KRAMERIUS}/uuid/${UUID}
-
APP_GLOBAL.ga4 Google Analytics 4 ID, např. 'G-XXX'
-
APP_GLOBAL.ga4clientId Identifikátor klientské aplikace při použití stejného GA ID pro více instalací, např. 'www.digitalniknihovna.cz'
-
APP_GLOBAL.matomo Matomo Tracker Url
-
APP_GLOBAL.matomoSiteId Matomo Site Id
-
APP_GLOBAL.enablePeriodicalVolumesYearsLayout (true|false) Povolit/zakázat zobrazení přes roky u seznamu ročníků
-
APP_GLOBAL.enablePeriodicalIsssuesCalendarLayout (true|false) Povolit/zakázat zobrazení přes kalendář u seznamu čísel
-
APP_GLOBAL.defaultPeriodicalVolumesLayout (grid|years) Výchozí zobrazení u seznamu ročníků
-
APP_GLOBAL.defaultPeriodicalIssuesLayout (grid|calendar) Výchozí zobrazení u seznamu čísel
-
APP_GLOBAL.bigHomeLogo (true|false) Velké logo na hlavní stránce
-
APP_GLOBAL.hideHomeTitle (true|false) Pokud true, pak se skryje název na hlavní stránce (pouze v kombinaci s velkým logem a jedním Krameriem)
-
APP_GLOBAL.publicFilterDefault (true|false) Výchozí stav zaškrtávátka Pouze veřejné
-
APP_GLOBAL.aboutPage Viz níž Stránka s informacemi
-
APP_GLOBAL.faqPage Viz níž Stránka s FAQ
-
APP_GLOBAL.footer Viz níž Patička na hlavní stránce
-
APP_GLOBAL.newestAll (true|false) Na hlavní stránce v záložce Nejnovější se zobrazí i neveřejné dokumenty
-
APP_GLOBAL.actions Viz níž Akce v prohlížečce
-
APP_GLOBAL.defaultLanguage výchozí jazyk, např. 'cs'
-
APP_GLOBAL.languages seznamu dostupných jazyků, např. ['cs', 'en', 'de', 'sk']
-
APP_GLOBAL.googleMapsApiKey Google Maps API Key, viz níž Hledání přes pozici na podkladové mapě
-
APP_GLOBAL.cookiebar (true|false) Povolit/zakázat Cookie lištu, viz níž Cookie lišta
-
APP_GLOBAL.citationServiceUrl URL citační služby. Pokud není uvedena, použije se výchozí https://citace.kramerius.cloud
-
APP_GLOBAL.krameriusList Seznam dostupných Krameriů. Pokud bude v seznamu více než jeden Kramerius, pak bude klient fungovat v režimu více Krameriů. Na Hlavní stránce půjde Kramerius vybrat přes logo a cesta url bude začínat kódem Krameria. Každý Kramerius v seznamu je definovaný následujícími atributy.
-
title Titulek na hlavní stránce a v navbaru, např. 'Moravská zemská knihovna', viz Konfigurace hlavní strany
-
titles Stejně jako title slouží jako titulek na hlavní stránce a v navbaru, ale lze lokalizovat, viz Konfigurace hlavní strany
-
subtitle Podtitulek na hlavní stránce, např. 'Digitální knihovna Kramerius', viz Konfigurace hlavní strany
-
subtitles Stejně jako subtitle slouží jako podtitulek na hlavní stránce, ale lze lokalizovat, viz Konfigurace hlavní strany
-
code Kód Krameria použitý v režimu více Krameriů, např. 'mzk'
-
logo Logo v navbaru, např. 'http://registr.digitalniknihovna.cz/libraries/mzk/logo'
-
logoHome Logo na hlavní stránce (pokud není použito, použije se logo)
-
url Url Krameria, např. 'https://kramerius.mzk.cz'
-
richCollections (true|false) Vlastní stránka pro seznam sbírek (vyžaduje přidělení obrázků a popisů ke sbírkám).
-
joinedDoctypes (true|false) Pokud máte solr ve verzi 6 a vyšší, pak true, jinak false.
-
lemmatization (true|false) Kramerius podporuje lemmatizaci.
-
iiif (true|false) Kramerius podporuje IIIF Image API.
-
customRightMessage (true|false) Používat rightMsg hlášku z Krameria u neveřejného dokumentu.
-
doctypes seznam typů dokumentu u hledání, např. ['monograph', 'periodical', 'map', 'sheetmusic']
-
filters , seznam polí které lze procházet a filtrovat, např. ['access', 'doctypes', 'authors', 'keywords', 'geonames', 'collections', 'locations', 'languages']
-
originLink (true|false) Odkaz na Původ titulu
-
hiddenLocks (true|false) Schování zámečků
-
mapSearch (true|false) viz níž Hledání přes pozici na podkladové mapě
-
licences Nastavení licencí, viz Konfigurace licencí
-
auth Viz níž Konfigurace přihlášení
-
version (5|7) verze Krameria, výchozí hodnota 5, v případě Krameira 7, zadejte 7
-
keycloak Konfigurace keycloaku
-
termsPage Stránka s podmínkami použití před keycloak loginem, viz Konfigurace keycloaku
-
adminClientUrl url admin klienta
-
folders Uživatelské seznamy
-
curatorListsCardsVertical (true|false) Vzhled kurátorských karet, viz Konfigurace hlavní strany
-
curatorLists Kurátorské seznamy, viz Konfigurace hlavní strany
-
curatorKeywords Kurátorská klíčová slova, viz Konfigurace hlavní strany
-
Pro aktivaci Cookie lišty je potřeba nastavit APP_GLOBAL.cookiebar: true
Potom se bude používat Google Analytics pouze až potom, co uživatel dá souhlas s používání všech cookies nebo jen analytických cookies.
Podobně se bude používat lokální uložiště pro uživatelské preference (jazyk, naposledy navštívené, typ zobrazení výtisků/ročníků periodika a další) až potom, co uživatel dá souhlas s používání všech cookies nebo jen preferenčních cookies.
Georeferencované objekty je možné vyhledat přes průnik souřadnic na výřezu zobrazené podkladové mapy. Pro aktivaci této funkce je potřeba
- mít v Krameriovi nějaké georeferencované objekty
- nastavit
APP_GLOBAL.krameriusList.mapSearch: true
- nastavit
APP_GLOBAL.googleMapsApiKey: '_KEY_'
, kde_KEY_
je platný Google Maps API Key (návod jak ho získat)
Pokud nemůžete/nechcete používat vlastní Google Maps API Key, tak můžete požádat Moravskou zemskou knihovnu o poskytnutí jejího klíče - pro tento klíč je pak potřeba povolit vaši doménu.
V konfiguraci klienta se nastaví cesty k html souborům s informacemi v češtině a angličtině:
APP_GLOBAL.aboutPage: {
cs: '/assets/shared/about.cs.html',
en: '/assets/shared/about.en.html'
}
Používejte jen základní html tagy (h3,h4,h5,p,a,i,b, ...) pro definici struktury a obsahu. Dokument nestylujte, zobrazení nechte na klientovi.
Stránka s informacemi není povinná. Pokud v konfiguraci APP_GLOBAL.aboutPage neuvedete, pak v toolbaru odkaz na informace nebude.
V konfiguraci klienta se nastaví cesty k html souborům s informacemi v češtině a angličtině:
APP_GLOBAL.faqPage: {
cs: '/assets/shared/faq.cs.html',
en: '/assets/shared/faq.en.html'
}
Používejte jen základní html tagy (h3,h4,h5,p,a,i,b, ...) pro definici struktury a obsahu. Dokument nestylujte, zobrazení nechte na klientovi.
Stránka s FAQ není povinná. Pokud v konfiguraci APP_GLOBAL.faqPage neuvedete, pak v toolbaru odkaz na FAQ nebude.
V konfiguraci klienta se nastaví cesty k html souborům pro patičku na hlavní stránce v češtině a angličtině:
APP_GLOBAL.footer: {
cs: '/assets/shared/footer.cs.html',
en: '/assets/shared/footer.en.html'
}
Patička na hlavní stráce není povinná. Pokud patičku nechcete, pak v konfiguraci APP_GLOBAL.footer nevyplňujte.
Dostupnost se bude zobrazovat podle nastavení v poli krameriusList.filters
- pokud pole obsahuje filtr 'accessibility', pak se použije původní způsob dostupnosti - Veřejné a Neveřejné podle policy
- pokud pole obsahuje filtr 'access', pak se použije nový způsob dostupnosti - Veřejné, Po přihlášení a V knihovně podle kombinace policy a licencí
U každé akce je možné určit, jestli má být zobrazena vždy ('always'), nikdy ('never'), jen u veřejných dokumentů ('public')
U akcí Příprava k tisku, Stáhnout PDF, JPEG stránky, Textový přepis stránky, Vybrat text a Výřez obrázku je dostupná ještě možnost jen dostupné (available) - stránky které jsou z jakéhokiliv důvodu zpřístupněny.
Při používání licencí je možné zobrazení akci dál upřesnit pro každou licenci zvlášť, viz Konfigurace licencí
Příklad
actions: {
pdf: 'public',
print: 'public',
jpeg: 'available',
text: 'available',
citation: 'always',
metadata: 'always',
share: 'always',
selection: 'public',
crop: 'public'
}
Jednotlivé akce
- pdf - tlačítko pro stažení PDF
- print - tlačítko pro přípravu k tisku
- jpeg - tlačítko pro zobrazení JPEG stránky
- text - tlačítko pro zobrazení TXT stránky
- citation - tlačítko pro zobrazení citace
- metadata - tlačítko pro zobrazení metadata
- share - tlačítko pro zobrazení sdílení
- selection - tlačítko pro výběr textu na stránce
- crop - tlačítko pro výřez obrázku
Keycloak konfigurace přesunuta do jádra. V klientovi se jen nastaví, že se má používat keycloak autentizace. Příklad
...
keycloak: true,
termsPage: {
cs: '/assets/shared/terms/terms.cs.html',
en: '/assets/shared/terms/terms.en.html'
},
termsPage2: {
cs: '/assets/shared/terms/terms2.cs.html',
en: '/assets/shared/terms/terms2.en.html'
},
termsUrl: {
cs: 'https://kramerius.k7-test.mzk.cz/assets/shared/terms/terms_of_use.html',
en: 'https://kramerius.k7-test.mzk.cz/assets/shared/terms/terms_of_use.html?lang=en'
},
...
Volitelně je možné zadat termsPage2
, které se zobrazí pod odsouhlasení podmínek a tlačítko přihlášení.
Pokud je uvedeno termsUrl, se u souhlasu s podmínkami v textu "Souhlasím s podmínkami použití" změní text "podmínkami použití" na odkaz vedoucí na uvedené url.
Příklad
auth: {
logoutUrl: 'https://dnnt.mzk.cz/Shibboleth.sso/Logout',
loginUrl: 'https://dnnt.mzk.cz/podminky-zpristupneni'
}
Použití společně s licencemi, viz Konfigurace licencí
var APP_GLOBAL = { share_url: "https://kramerius.mzk.cz/uuid/${UUID}", ga: "ABC", enablePeriodicalVolumesYearsLayout: true, enablePeriodicalIsssuesCalendarLayout: true, defaultPeriodicalVolumesLayout: "years", defaultPeriodicalIssuesLayout: "calendar", publicFilterDefault: false, bigHomeLogo: true, hideHomeTitle: false, newestAll: true, aboutPage: { cs: '/assets/shared/about.cs.html', en: '/assets/shared/about.en.html', }, footer: { cs: '/assets/shared/footer.cs.html', en: '/assets/shared/footer.cs.html', }, actions: { pdf: 'public', print: 'public', jpeg: 'available', text: 'available', citation: 'always', metadata: 'always', share: 'always', selection: 'public', crop: 'public' }, defaultLanguage: 'cs', languages: ['cs', 'en', 'de', 'sk'], krameriusList: [ { title: 'Moravská zemská knihovna', code: "mzk", logo: 'https://kramerius.mzk.cz/assets/shared/logo.png', url: 'https://kramerius.mzk.cz', iiif: true, richCollections: true, joinedDoctypes: true, mapSearch: true, customRightMessage: true, doctypes: ['periodical', 'monograph', 'map', 'graphic', 'archive', 'manuscript', 'soundrecording', 'sheetmusic'], filters: ['access', 'licences', 'doctypes', 'authors', 'keywords', 'geonames', 'collections', 'locations', 'languages'] } ] }
## Konfigurace web serveru
Je potřeba přesměrovat všechny requesty na neexistující stránky na stránku /index.html (aplikace se ve skutečnosti skládá pouze z této jediné stránky).
### Apache
V adresáři s aplikací vytvořit soubor .htaccess s následujícím obsahem
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+)$ - [S=1]
RewriteRule ^(.+)$ /index.html
### Nginx
V /etc/nginx/sites-enabled/default
Přidat do definice serveru:
location / { try_files $uri $uri/ /index.html; }
Např.
server { listen 80 default_server; listen [::]:80 default_server; root /home/kramerius/client; index index.html; server_name kramerius.example.com; location / { try_files $uri $uri/ /index.html; } }