From fd90af50d910e659aa8df0d380424383c6c09620 Mon Sep 17 00:00:00 2001
From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com>
Date: Thu, 23 May 2019 17:03:04 +0200
Subject: Add OCA.Files.Sidebar
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
---
 apps/files/src/components/LegacyTab.vue | 89 +++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)
 create mode 100644 apps/files/src/components/LegacyTab.vue

(limited to 'apps/files/src/components/LegacyTab.vue')

diff --git a/apps/files/src/components/LegacyTab.vue b/apps/files/src/components/LegacyTab.vue
new file mode 100644
index 00000000000..9a85ee7f073
--- /dev/null
+++ b/apps/files/src/components/LegacyTab.vue
@@ -0,0 +1,89 @@
+<!--
+  - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
+  -
+  - @author John Molakvoæ <skjnldsv@protonmail.com>
+  -
+  - @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>
+	<AppSidebarTab :icon="icon"
+		:name="name"
+		:active-tab="activeTab" />
+</template>
+<script>
+import AppSidebarTab from 'nextcloud-vue/dist/Components/AppSidebarTab'
+
+export default {
+	name: 'LegacyTab',
+	components: {
+		AppSidebarTab: AppSidebarTab
+	},
+	props: {
+		component: {
+			type: Object,
+			required: true
+		},
+		name: {
+			type: String,
+			default: '',
+			required: true
+		},
+		fileInfo: {
+			type: Object,
+			default: () => {},
+			required: true
+		}
+	},
+	computed: {
+		icon() {
+			return this.component.getIcon()
+		},
+		id() {
+			// copied from AppSidebarTab
+			return this.name.toLowerCase().replace(/ /g, '-')
+		},
+		order() {
+			return this.component.order
+				? this.component.order
+				: 0
+		},
+		// needed because AppSidebarTab also uses $parent.activeTab
+		activeTab() {
+			return this.$parent.activeTab
+		}
+	},
+	watch: {
+		activeTab(activeTab) {
+			if (activeTab === this.id && this.fileInfo) {
+				this.setFileInfo(this.fileInfo)
+			}
+		}
+	},
+	mounted() {
+		// append the backbone element and set the FileInfo
+		this.component.$el.appendTo(this.$el)
+	},
+	methods: {
+		setFileInfo(fileInfo) {
+			this.component.setFileInfo(new OCA.Files.FileInfoModel(fileInfo))
+		}
+	}
+}
+</script>
+<style>
+</style>
-- 
cgit v1.2.3

