1 | <template>
|
---|
2 | <div class="root">
|
---|
3 | <div class="app-bar theme-primary">
|
---|
4 | <div class="app-bar-content">
|
---|
5 | <span class="heading1">{{ translations.get("Title") }}</span>
|
---|
6 | </div>
|
---|
7 | </div>
|
---|
8 |
|
---|
9 | <div class="paper content">
|
---|
10 | <tab-bar :tabs="tabs" v-model="selectedTab" />
|
---|
11 | <hr class="divider" />
|
---|
12 |
|
---|
13 | <div class="inner-content" v-if="selectedTab === 'direct'">
|
---|
14 | <direct-input />
|
---|
15 | </div>
|
---|
16 | <div class="inner-content" v-if="selectedTab === 'file'">
|
---|
17 | <file-input />
|
---|
18 | </div>
|
---|
19 | </div>
|
---|
20 |
|
---|
21 | <div class="footer">
|
---|
22 | <img src="img/logo_waikato_uni.jpg" alt="The University of Waikato Logo" />
|
---|
23 |
|
---|
24 | <div>
|
---|
25 | This service was funded by <a href="http://www.maramatanga.co.nz" target="_blank">NgÄ Pae O Te MÄramatanga</a> as
|
---|
26 | part of the research related to the digitalization of the Pei Jones collection,
|
---|
27 | and was developed at the <a href="https://www.waikato.ac.nz" target="_blank">University of Waikato</a>.
|
---|
28 | </div>
|
---|
29 | <img src="img/logo_nga_pae_o_te_maramatanga.jpg" alt="The NgÄ Pae o te MÄramatanga Logo" />
|
---|
30 | <div>
|
---|
31 | This website collects simple usage logs which will be used for development purposes only.
|
---|
32 | No details which could be used to identify individuals will be collected and the data will be kept secure at the University of Waikato.
|
---|
33 | If you do not wish for your activity to be included, click <a href="mailto:[email protected]">here</a> to notify Dr. Te Taka Keegan.
|
---|
34 | Copyright © 2014 University of Waikato
|
---|
35 | </div>
|
---|
36 | </div>
|
---|
37 | </div>
|
---|
38 | </template>
|
---|
39 |
|
---|
40 | <style lang="scss">
|
---|
41 | html, body, #app {
|
---|
42 | height: 100%;
|
---|
43 | }
|
---|
44 |
|
---|
45 | .root {
|
---|
46 | display: flex;
|
---|
47 | flex-direction: column;
|
---|
48 | height: 100%;
|
---|
49 | }
|
---|
50 |
|
---|
51 | .app-bar {
|
---|
52 | display: flex;
|
---|
53 | flex-direction: column;
|
---|
54 | gap: 1em;
|
---|
55 |
|
---|
56 | background-color: var(--bg-color);
|
---|
57 | color: var(--fg-color);
|
---|
58 | box-shadow: 0px 0px 4px 3px #6d6d6d;
|
---|
59 |
|
---|
60 | padding: 1em;
|
---|
61 | margin-bottom: 1em;
|
---|
62 | }
|
---|
63 |
|
---|
64 | .app-bar-content {
|
---|
65 | display: flex;
|
---|
66 | align-items: center;
|
---|
67 | gap: 1em;
|
---|
68 |
|
---|
69 | width: 100%;
|
---|
70 |
|
---|
71 | & :first-child {
|
---|
72 | flex-grow: 1;
|
---|
73 | }
|
---|
74 | }
|
---|
75 |
|
---|
76 | .content {
|
---|
77 | padding: 0;
|
---|
78 | margin: 1em;
|
---|
79 | flex-grow: 1;
|
---|
80 | }
|
---|
81 |
|
---|
82 | .inner-content {
|
---|
83 | padding: 1em;
|
---|
84 | }
|
---|
85 |
|
---|
86 | .footer {
|
---|
87 | display: grid;
|
---|
88 | grid-template-columns: auto 1fr;
|
---|
89 | gap: 1em;
|
---|
90 |
|
---|
91 | box-shadow: 0px 0px 3px 2px #8a8a8a;
|
---|
92 | padding: 1em;
|
---|
93 | background-color: var(--paper-color);
|
---|
94 |
|
---|
95 | img {
|
---|
96 | grid-column: 1;
|
---|
97 | height: 48px;
|
---|
98 | }
|
---|
99 |
|
---|
100 | div {
|
---|
101 | grid-column: 2;
|
---|
102 | }
|
---|
103 | }
|
---|
104 |
|
---|
105 | .funding {
|
---|
106 | display: flex;
|
---|
107 | gap: 1em;
|
---|
108 | align-items: center;
|
---|
109 | }
|
---|
110 | </style>
|
---|
111 |
|
---|
112 | <script>
|
---|
113 | import { mapState } from "vuex";
|
---|
114 | import DirectInput from "./components/DirectInput.vue"
|
---|
115 | import FileInput from "./components/FileInput.vue"
|
---|
116 | import TabBar from "./components/TabBar.vue"
|
---|
117 |
|
---|
118 | export default {
|
---|
119 | name: "App",
|
---|
120 | components: {
|
---|
121 | DirectInput,
|
---|
122 | FileInput,
|
---|
123 | TabBar
|
---|
124 | },
|
---|
125 | data() {
|
---|
126 | return {
|
---|
127 | selectedTab: "direct"
|
---|
128 | }
|
---|
129 | },
|
---|
130 | computed: {
|
---|
131 | tabs() {
|
---|
132 | return [
|
---|
133 | { label: this.translations.get("DirectInput"), value: "direct" },
|
---|
134 | { label: this.translations.get("FileInput"), value: "file" }
|
---|
135 | ]
|
---|
136 | },
|
---|
137 | ...mapState({
|
---|
138 | translations: state => state.translations
|
---|
139 | })
|
---|
140 | }
|
---|
141 | }
|
---|
142 | </script>
|
---|