Welcome to mirror list, hosted at ThFree Co, Russian Federation.

AppSelector.vue « components « src - github.com/nextcloud/issuetemplate.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: a831ef6c7141361bbc30e75e09887d6620ad3e9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!--
  - @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
  -
  - @author Julius Härtl <jus@bitgrid.net>
  -
  - @license GNU AGPL version 3 or any later version
  -
  -  This program is free software: you can redistribute it and/or modify
  -  it under the terms of the GNU Affero General Public License as
  -  published by the Free Software Foundation, either version 3 of the
  -  License, or (at your option) any later version.
  -
  -  This program is distributed in the hope that it will be useful,
  -  but WITHOUT ANY WARRANTY; without even the implied warranty of
  -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  -  GNU Affero General Public License for more details.
  -
  -  You should have received a copy of the GNU Affero General Public License
  -  along with this program. If not, see <http://www.gnu.org/licenses/>.
  -
  -->
<template>
	<div id="app-selector">
		<div v-for="item in apps" :key="item.id">
			<h3>{{ item.title }}</h3>

			<div class="affected-components">
				<div v-for="component in item.items"
					:key="component.id"
					class="affected-component"
					@click="selectComponent(component)">
					<div class="logo">
						<img :src="component.icon">
					</div>
					<p>{{ component.name }}</p>
				</div>
			</div>
		</div>
	</div>
</template>

<script>
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'

export default {
	name: 'AppSelector',
	data() {
		return {
			apps: {},
			selected: this.selected,
		}
	},
	async mounted() {
		try {
			const response = await axios.get(generateUrl('/apps/issuetemplate/components'))
			console.debug(response)
			this.apps = response.data
		} catch (e) {
			console.error(e)
			this.apps = []
		}
	},
	methods: {
		selectComponent(component) {
			this.$emit('select', component)
		},
	},
}
</script>