Merge pull request #319 from SAP-samples/data-viewer

Data viewer Misc
This commit is contained in:
Christian Georgi
2022-02-07 10:30:01 +01:00
committed by GitHub
4 changed files with 16 additions and 16 deletions

View File

@@ -9,11 +9,9 @@ const columnKeysFirst = (c1, c2) => {
return 0 // retain natural order of normal columns
}
const vue = new Vue ({
const vue = Vue.createApp ({
el:'#app',
data: {
data() { return {
error: undefined,
dataSource: storageGet('data-source', 'db'),
skip: storageGet('skip', 0),
@@ -24,7 +22,7 @@ const vue = new Vue ({
data: [],
rowDetails: {},
rowKey: storageGet('rowKey')
},
}},
watch: {
dataSource: (v) => { storageSet('data-source', v); vue.fetchEntities() },
@@ -77,13 +75,13 @@ const vue = new Vue ({
else vue.rowDetails = {}
vue.error = undefined
} catch (err) {
if (err.response?.data?.error) {
vue.error = err.response?.data?.error
} else {
vue.error = err
}
vue.data = []
vue.rowDetails = {}
if (err.response?.data?.error) {
vue.error = err.response.data.error
} else {
vue.error = { code:err.code, message:err.message }
}
}
},
@@ -116,5 +114,6 @@ const vue = new Vue ({
}
})
.mount('#app')
vue.fetchEntities()

View File

@@ -5,7 +5,9 @@
<title>Data Browser</title>
<link rel="stylesheet" href="https://unpkg.com/primitive-ui/dist/css/main.css">
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>
<script src="app.js" defer></script>
<style>
th { position: sticky; top:0; z-index: 2; background-color: white; }
.noscroll { overflow: hidden; }
@@ -32,7 +34,7 @@
<body class="noscroll">
<div id='app' class="full-container">
<h1> {{ document.title }}{{ entity ? ' &ndash; ' + entity.name : '' }}</h1>
<h1>Data Browser &ndash; {{ entity ? entity.name : '' }}</h1>
<div class="with-sidebar">
<div class="sidebar">
@@ -73,7 +75,7 @@
</table>
</div>
<div v-if="error" class="not-sidebar-main error">
Error: {{ error.code }} &ndash; {{ error.message }}
Error: {{ error.code ? error.code + ' &ndash; ' + error.message : error.message }}
</div>
<p></p>
<div v-if="rowDetails" class="not-sidebar-sub">
@@ -90,5 +92,4 @@
</div>
</body>
<script src="app.js"></script>
</html>

View File

@@ -1,7 +1,7 @@
/**
* Exposes data + entity metadata
*/
//@requires:'admin'
@requires:'authenticated-user'
service DataService @( path:'-data' ) {
/**

View File

@@ -31,7 +31,7 @@ class DataService extends cds.ApplicationService { init(){
if (!entity) return req.reject(404, 'No such entity: ' + entityName)
const query = SELECT.from(entity)
query.SELECT.limit = req.query.SELECT.limit // use $skip / $top from request
query.SELECT.limit = req.query.SELECT.limit // forward $skip / $top
const dataSource = findDataSource(dataSourceName, entityName)
const res = await dataSource.run(query)