import path from 'path' // Note that routes can't start with `/api/`, `/ws/` or `/media/` because they are // reserved for the backend. In some cases, for example with the Heroku or Clouron // deployment, the Baserow installation will share a single domain and port and then // those URLS are forwarded to the backend or media files server. The rest is // // forwarded to the web-frontend. export const routes = [ { name: 'database-table', path: '/database/:databaseId/table/:tableId/:viewId?', component: path.resolve(__dirname, 'pages/table.vue'), props(route) { // @TODO figure out why the route param is empty on the server side. const p = { ...route.params } p.databaseId = parseInt(p.databaseId) p.tableId = parseInt(p.tableId) p.viewId = p.viewId ? parseInt(p.viewId) : null return p }, children: [ { path: 'row/:rowId', name: 'database-table-row', }, ], }, // These redirect exist because the original api docs path was `/api/docs`, but // they have been renamed. { path: '/api/docs', redirect: '/api-docs', }, { path: '/api/docs/database/:databaseId', redirect: '/api-docs/database/:databaseId', }, { name: 'database-api-docs', path: '/api-docs', alias: '/api/docs', component: path.resolve(__dirname, 'pages/APIDocs.vue'), }, { name: 'database-api-docs-detail', path: '/api-docs/database/:databaseId', component: path.resolve(__dirname, 'pages/APIDocsDatabase.vue'), }, { name: 'database-table-form', path: '/form/:slug', component: path.resolve(__dirname, 'pages/form.vue'), }, { name: 'database-public-grid-view', path: '/public/grid/:slug', component: path.resolve(__dirname, 'pages/publicView.vue'), }, { name: 'database-public-gallery-view', path: '/public/gallery/:slug', component: path.resolve(__dirname, 'pages/publicView.vue'), }, { name: 'database-public-view-auth', path: '/public/auth/:slug', component: path.resolve(__dirname, 'pages/publicViewLogin.vue'), }, ]