diff --git a/img/payments.svg b/img/payments.svg
new file mode 100644
index 0000000..dd29120
--- /dev/null
+++ b/img/payments.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index ab09672..94f53e6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,7 +15,9 @@
"@nextcloud/router": "^2.1.2",
"@nextcloud/vue": "^7.12.1",
"vue": "^2.7.14",
+ "vue-frag": "^1.4.3",
"vue-router": "^3.6.5",
+ "vue-virtual-scroller": "^1.1.2",
"vuex": "^3.6.2"
},
"devDependencies": {
@@ -14608,6 +14610,11 @@
"dev": true,
"peer": true
},
+ "node_modules/scrollparent": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.1.0.tgz",
+ "integrity": "sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA=="
+ },
"node_modules/select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -16768,6 +16775,17 @@
"dev": true,
"peer": true
},
+ "node_modules/vue-frag": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/vue-frag/-/vue-frag-1.4.3.tgz",
+ "integrity": "sha512-pQZj03f/j9LRhzz9vKaXTCXUHVYHuAXicshFv76VFqwz4MG3bcb+sPZMAbd0wmw7THjkrTPuoM0EG9TbG8CgMQ==",
+ "funding": {
+ "url": "https://github.com/privatenumber/vue-frag?sponsor=1"
+ },
+ "peerDependencies": {
+ "vue": "^2.6.0"
+ }
+ },
"node_modules/vue-hot-reload-api": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
@@ -16815,6 +16833,11 @@
"npm": ">= 3.0.0"
}
},
+ "node_modules/vue-observe-visibility": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz",
+ "integrity": "sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q=="
+ },
"node_modules/vue-resize": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-1.0.1.tgz",
@@ -16860,6 +16883,27 @@
"dev": true,
"peer": true
},
+ "node_modules/vue-virtual-scroller": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vue-virtual-scroller/-/vue-virtual-scroller-1.1.2.tgz",
+ "integrity": "sha512-SkUyc7QHCJFB5h1Fya7LxVizlVzOZZuFVipBGHYoTK8dwLs08bIz/tclvRApYhksaJIm/nn51inzO2UjpGJPMQ==",
+ "dependencies": {
+ "scrollparent": "^2.0.1",
+ "vue-observe-visibility": "^0.4.4",
+ "vue-resize": "^0.4.5"
+ },
+ "peerDependencies": {
+ "vue": "^2.6.11"
+ }
+ },
+ "node_modules/vue-virtual-scroller/node_modules/vue-resize": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.5.tgz",
+ "integrity": "sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==",
+ "peerDependencies": {
+ "vue": "^2.3.0"
+ }
+ },
"node_modules/vue2-datepicker": {
"version": "3.11.1",
"resolved": "https://registry.npmjs.org/vue2-datepicker/-/vue2-datepicker-3.11.1.tgz",
diff --git a/package.json b/package.json
index 805c367..7e48c09 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,9 @@
"@nextcloud/router": "^2.1.2",
"@nextcloud/vue": "^7.12.1",
"vue": "^2.7.14",
+ "vue-frag": "^1.4.3",
"vue-router": "^3.6.5",
+ "vue-virtual-scroller": "^1.1.2",
"vuex": "^3.6.2"
},
"devDependencies": {
diff --git a/src/components/LeftSidebar.vue b/src/components/LeftSidebar.vue
index 4a846f4..ed0a0ab 100644
--- a/src/components/LeftSidebar.vue
+++ b/src/components/LeftSidebar.vue
@@ -5,6 +5,11 @@
:title="t('my_company', 'Home')"
icon="icon-home"
:exact="true" />
+
+
+
@@ -12,12 +17,22 @@
diff --git a/src/router/router.js b/src/router/router.js
index 36dc114..eea9827 100644
--- a/src/router/router.js
+++ b/src/router/router.js
@@ -4,6 +4,7 @@ import VueRouter from 'vue-router'
import { generateUrl } from '@nextcloud/router'
import Home from '../views/Home.vue'
+import PaymentsList from '../views/Payments/PaymentsList.vue'
Vue.use(VueRouter)
@@ -18,5 +19,10 @@ export default new VueRouter({
component: Home,
name: 'home',
},
+ {
+ path: '/payments',
+ component: PaymentsList,
+ name: 'payments',
+ },
],
})
diff --git a/src/views/Payments/PaymentListRow.vue b/src/views/Payments/PaymentListRow.vue
new file mode 100644
index 0000000..e622f7b
--- /dev/null
+++ b/src/views/Payments/PaymentListRow.vue
@@ -0,0 +1,36 @@
+
+
+
+ {{ item.uuid }}
+ |
+
+ {{ item.value }}
+ |
+
+ {{ item.date }}
+ |
+
+
+
+
diff --git a/src/views/Payments/PaymentsList.vue b/src/views/Payments/PaymentsList.vue
new file mode 100644
index 0000000..4a67a1c
--- /dev/null
+++ b/src/views/Payments/PaymentsList.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Payments/PaymentsListHeader.vue b/src/views/Payments/PaymentsListHeader.vue
new file mode 100644
index 0000000..4f94ac6
--- /dev/null
+++ b/src/views/Payments/PaymentsListHeader.vue
@@ -0,0 +1,21 @@
+
+
+
+
+ {{ t('my_company', 'File') }}
+
+ |
+
+ {{ t('my_company', 'Date') }}
+ |
+
+ {{ t('my_company', 'Value') }}
+ |
+
+
+
+