Commit a965b429 authored by schneider210's avatar schneider210
Browse files

Merge branch 'feature/#56-metadata-serialization' into 'develop'

Feature/#56 metadata serialization

See merge request subugoe/emo/Qviewer!47
parents ad16f391 c3eb537f
Pipeline #149297 passed with stages
in 2 minutes and 50 seconds
......@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.3.2] - 2020-09-02
### Added
- additional metadata on manifestlevel. e.g. `date`, `editor`, `origin`, `location`
## [1.3.1] - 2020-08-28
### Fixed
......
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "viewer",
"version": "1.3.0",
"version": "1.3.2",
"description": "Viewer for the modular framework to present digital editions",
"productName": "EMo Viewer",
"keywords": [
......@@ -20,10 +20,11 @@
"license": {
"license": "AGPL-3.0-or-later"
},
"author": "Frank Schneider <frank.schneider@sub.uni-goettingen.de>",
"author": "Göttingen State and University Library - SUB",
"contributors": [
"Manikanth Dindigala <dindigala@sub.uni-goettingen.de>",
"Mathias Göbel <goebel@sub.uni-goettingen.de>",
"Frank Schneider <frank.schneider@sub.uni-goettingen.de>",
"Michelle Weidling <weidling@sub.uni-goettingen.de>",
"Nils Windisch <windisch@sub.uni-goettingen.de>"
],
......@@ -36,20 +37,20 @@
"@subugoe:registry": "https://gitlab.gwdg.de/api/v4/projects/10921/packages/npm/"
},
"dependencies": {
"@quasar/extras": "^1.9.3",
"@quasar/extras": "^1.9.5",
"openseadragon": "^2.4.2",
"quasar": "^1.12.13",
"vuedraggable": "^2.24.0"
"quasar": "^1.13.2",
"vuedraggable": "^2.24.1"
},
"devDependencies": {
"@quasar/app": "^1.9.6",
"autoprefixer": "9.7.6",
"babel-eslint": "^10.0.1",
"eslint": "^6.8.0",
"@quasar/app": "^2.0.8",
"autoprefixer": "9.8.6",
"babel-eslint": "^10.1.0",
"eslint": "^7.8.1",
"eslint-config-airbnb-base": "^14.2.0",
"eslint-loader": "^3.0.3",
"eslint-loader": "^4.0.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-vue": "^6.1.2",
"eslint-plugin-vue": "^6.2.2",
"node-sass": "^4.14.1",
"sass": "^1.26.10",
"sass-loader": "8.0.2"
......
<template>
<div>
<!-- Collection-->
<q-list v-if="Object.keys(collection).length">
<q-item>
<q-item-section class="text-h6 caps">Collection</q-item-section>
......@@ -35,27 +36,57 @@
<q-separator inset class="q-mt-md q-mb-sm" />
</q-list>
<!-- Manifest-->
<q-list>
<q-item>
<q-item-section class="text-h6 caps">
{{ config.labels.manifest }} {{ sequenceindex + 1 }} / {{ manifests.length }}
{{ labels.manifest }} {{ sequenceindex + 1 }} / {{ manifests.length }}
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label overline class="text-uppercase">Label:</q-item-label>
<q-item-label>{{ manifesttitle }}</q-item-label>
<q-item-label>{{ title }}</q-item-label>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label overline class="text-uppercase">Year:</q-item-label>
<q-item-label>{{ date }}</q-item-label>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label overline class="text-uppercase">Editor:</q-item-label>
<q-item-label>{{ editor }}</q-item-label>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label overline class="text-uppercase">Location:</q-item-label>
<q-item-label>{{ location }}</q-item-label>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label overline class="text-uppercase">Origin:</q-item-label>
<q-item-label>{{ origin }}</q-item-label>
</q-item-section>
</q-item>
</q-list>
<q-separator inset class="q-mt-md q-mb-sm" />
<!-- Item-->
<q-list>
<q-item>
<q-item-section class="text-h6 caps">
{{ config.labels.item }} {{ itemindex + 1 }} / {{ itemcount }}
{{ labels.item }} {{ itemindex + 1 }} / {{ itemcount }}
</q-item-section>
</q-item>
......@@ -81,7 +112,6 @@ export default {
name: 'Metadata',
props: {
collection: Object,
config: Object,
itemlabel: String,
labels: Object,
language: String,
......@@ -94,10 +124,27 @@ export default {
};
},
computed: {
date() {
return this.manifests[this.sequenceindex]['x-date'];
},
editor() {
let editors = '';
Object.values(this.manifests[this.sequenceindex]['x-editor']).forEach((ed) => {
editors += `${ed.name}, `;
});
return editors.slice(0, -2);
},
itemcount() {
return this.manifests[this.sequenceindex].sequence.length;
},
manifesttitle() {
location() {
return this.manifests[this.sequenceindex]['x-location'];
},
origin() {
return this.manifests[this.sequenceindex]['x-origin'];
},
title() {
return this.manifests[this.sequenceindex].label;
},
},
......
......@@ -22,7 +22,7 @@
<p>Copyright (c) 2020 Göttingen University - Göttingen State and University Library</p>
<p class="q-mb-none">
Version 1.3.0, licensed under GNU Affero General Public License v3.0
Version 1.3.2, licensed under GNU Affero General Public License v3.0
</p>
</q-card-section>
......
......@@ -2,8 +2,8 @@
<div class="scroll-panel">
<Metadata v-if="manifests.length"
:collection="collection"
:config="config"
:itemlabel="itemlabel"
:labels="labels"
:language="language"
:manifests="manifests"
/>
......@@ -16,8 +16,8 @@ import Metadata from '@/components/metadata.vue';
export default {
props: {
collection: Object,
config: Object,
itemlabel: String,
labels: Object,
language: String,
manifests: Array,
},
......
......@@ -7,7 +7,7 @@
<meta name="description" content="<%= htmlWebpackPlugin.options.productDescription %>">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova || htmlWebpackPlugin.options.ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
<link rel="icon" type="image/ico" href="statics/icons/favicon.ico">
<link rel="icon" type="image/png" href="statics/icons/app-logo-128x128.png">
......
......@@ -14,7 +14,7 @@ Vue.use(VueRouter);
* with the Router instance.
*/
export default function (/* { store, ssrContext } */) {
export default () => {
const Router = new VueRouter({
scrollBehavior: () => ({ x: 0, y: 0 }),
routes,
......@@ -27,4 +27,4 @@ export default function (/* { store, ssrContext } */) {
});
return Router;
}
};
......@@ -47,12 +47,11 @@ export default {
},
props: {
collection: Object,
config: Object,
contenturl: String,
fontsize: Number,
imageurl: String,
itemlabel: String,
label: Object,
labels: Object,
language: String,
manifests: Array,
panels: Array,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment