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