Begin Discover
Some checks failed
repod / nextcloud-25 (push) Successful in 49s
repod / nextcloud-27 (push) Successful in 37s
repod / nodejs (push) Failing after 1m15s

This commit is contained in:
Michel Roux 2023-07-02 18:30:42 +02:00
parent 394f297b70
commit 21c853397d
8 changed files with 99 additions and 15 deletions

View File

@ -2,4 +2,7 @@ module.exports = {
extends: [ extends: [
'@nextcloud', '@nextcloud',
], ],
rules: {
'sort-imports': 'error',
},
} }

View File

@ -3,6 +3,7 @@ FROM nextcloud:27
ENV NEXTCLOUD_UPDATE 1 ENV NEXTCLOUD_UPDATE 1
ENV NEXTCLOUD_ADMIN_USER repod ENV NEXTCLOUD_ADMIN_USER repod
ENV NEXTCLOUD_ADMIN_PASSWORD repod ENV NEXTCLOUD_ADMIN_PASSWORD repod
ENV NEXTCLOUD_INIT_HTACCESS 1
ENV SQLITE_DATABASE repod ENV SQLITE_DATABASE repod
ENV GPODDERSYNC_VERSION 3.8.1 ENV GPODDERSYNC_VERSION 3.8.1

4
package-lock.json generated
View File

@ -11,10 +11,12 @@
"dependencies": { "dependencies": {
"@nextcloud/axios": "^2.3.0", "@nextcloud/axios": "^2.3.0",
"@nextcloud/dialogs": "^4.1.0", "@nextcloud/dialogs": "^4.1.0",
"@nextcloud/l10n": "^2.2.0",
"@nextcloud/router": "^2.1.2", "@nextcloud/router": "^2.1.2",
"@nextcloud/vue": "^7.12.0", "@nextcloud/vue": "^7.12.0",
"vue": "^2", "vue": "^2",
"vue-material-design-icons": "^5.2.0" "vue-material-design-icons": "^5.2.0",
"vue-router": "^3"
}, },
"devDependencies": { "devDependencies": {
"@nextcloud/babel-config": "^1.0.0", "@nextcloud/babel-config": "^1.0.0",

View File

@ -20,10 +20,12 @@
"dependencies": { "dependencies": {
"@nextcloud/axios": "^2.3.0", "@nextcloud/axios": "^2.3.0",
"@nextcloud/dialogs": "^4.1.0", "@nextcloud/dialogs": "^4.1.0",
"@nextcloud/l10n": "^2.2.0",
"@nextcloud/router": "^2.1.2", "@nextcloud/router": "^2.1.2",
"@nextcloud/vue": "^7.12.0", "@nextcloud/vue": "^7.12.0",
"vue": "^2", "vue": "^2",
"vue-material-design-icons": "^5.2.0" "vue-material-design-icons": "^5.2.0",
"vue-router": "^3"
}, },
"browserslist": [ "browserslist": [
"extends @nextcloud/browserslist-config" "extends @nextcloud/browserslist-config"

View File

@ -2,12 +2,15 @@
<NcContent app-name="repod"> <NcContent app-name="repod">
<NcAppNavigation> <NcAppNavigation>
<NcAppContentList> <NcAppContentList>
<NcAppNavigationNew :text="t('repod', 'Add a podcast')"> <router-link to="/discover">
<template #icon> <NcAppNavigationNew :text="t('repod', 'Add a podcast')">
<Plus :size="20" /> <template #icon>
</template> <Plus :size="20" />
</NcAppNavigationNew> </template>
<ul> </NcAppNavigationNew>
</router-link>
<NcLoadingIcon v-if="loading" />
<ul v-if="!loading">
<NcAppNavigationItem v-for="subscription in subscriptions" <NcAppNavigationItem v-for="subscription in subscriptions"
:key="subscription.id" :key="subscription.id"
:loading="subscription.loading" :loading="subscription.loading"
@ -19,17 +22,27 @@
</ul> </ul>
</NcAppContentList> </NcAppContentList>
</NcAppNavigation> </NcAppNavigation>
<NcAppContent /> <NcAppContent>
<router-view />
</NcAppContent>
</NcContent> </NcContent>
</template> </template>
<script> <script>
import { NcAppContent, NcContent, NcAppContentList, NcAppNavigation, NcAppNavigationItem, NcAppNavigationNew } from '@nextcloud/vue' import '@nextcloud/dialogs/dist/index.css'
import {
NcAppContent,
NcAppContentList,
NcAppNavigation,
NcAppNavigationItem,
NcAppNavigationNew,
NcContent,
NcLoadingIcon,
} from '@nextcloud/vue'
import Plus from 'vue-material-design-icons/Plus.vue' import Plus from 'vue-material-design-icons/Plus.vue'
import axios from '@nextcloud/axios' import axios from '@nextcloud/axios'
import { showError } from '@nextcloud/dialogs'
import { generateUrl } from '@nextcloud/router' import { generateUrl } from '@nextcloud/router'
import '@nextcloud/dialogs/dist/index.css' import { showError } from '@nextcloud/dialogs'
export default { export default {
name: 'App', name: 'App',
@ -40,6 +53,7 @@ export default {
NcAppNavigationItem, NcAppNavigationItem,
NcAppNavigationNew, NcAppNavigationNew,
NcContent, NcContent,
NcLoadingIcon,
Plus, Plus,
}, },
data() { data() {

View File

@ -1,7 +1,8 @@
import { generateFilePath } from '@nextcloud/router' import { translatePlural as n, translate as t } from '@nextcloud/l10n'
import Vue from 'vue'
import App from './App.vue' import App from './App.vue'
import Vue from 'vue'
import { generateFilePath } from '@nextcloud/router'
import router from './router.js'
// eslint-disable-next-line // eslint-disable-next-line
__webpack_public_path__ = generateFilePath(appName, '', 'js/') __webpack_public_path__ = generateFilePath(appName, '', 'js/')
@ -10,5 +11,6 @@ Vue.mixin({ methods: { t, n } })
export default new Vue({ export default new Vue({
el: '#content', el: '#content',
router,
render: h => h(App), render: h => h(App),
}) })

18
src/router.js Normal file
View File

@ -0,0 +1,18 @@
import Discover from './views/Discover.vue'
import Router from 'vue-router'
import Vue from 'vue'
import { generateUrl } from '@nextcloud/router'
Vue.use(Router)
const router = new Router({
base: generateUrl('apps/repod'),
routes: [
{
path: '/',
component: Discover,
},
],
})
export default router

42
src/views/Discover.vue Normal file
View File

@ -0,0 +1,42 @@
<template>
<div class="main">
<p>
<NcTextField :label="t('repod', 'Find a podcast')">
<Magnify />
</NcTextField>
</p>
<p>
<span>{{ t('repod', 'Discover') }}</span>
</p>
</div>
</template>
<script>
import Magnify from 'vue-material-design-icons/Magnify.vue'
import { NcTextField } from '@nextcloud/vue'
export default {
name: 'Discover',
components: {
Magnify,
NcTextField,
},
data() {
return {
}
},
computed: {
},
async mounted() {
},
methods: {
},
}
</script>
<style scoped>
.main {
margin: 11px 55px;
}
</style>