Browse Source

Merge pull request #2355 from nocodb/fix/sqlite-datetime

fix: show err message when input cannot be parsed
pull/2359/head
Pranav C 2 years ago committed by GitHub
parent
commit
bee19dd492
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 56
      packages/nc-gui/components/project/spreadsheet/components/editableCell/DateTimePickerCell.vue

56
packages/nc-gui/components/project/spreadsheet/components/editableCell/DateTimePickerCell.vue

@ -1,21 +1,27 @@
<template>
<div>
<v-datetime-picker
ref="picker"
v-model="localState"
class="caption xc-date-time-picker"
:text-field-props="{
class:'caption mt-0 pt-0',
flat:true,
solo:true,
dense:true,
hideDetails:true
}"
:time-picker-props="{
format:'24hr'
}"
v-on="parentListeners"
/>
<div v-show="!showMessage">
<v-datetime-picker
ref="picker"
v-model="localState"
class="caption xc-date-time-picker"
:text-field-props="{
class:'caption mt-0 pt-0',
flat:true,
solo:true,
dense:true,
hideDetails:true
}"
:time-picker-props="{
format:'24hr'
}"
v-on="parentListeners"
/>
</div>
<div v-show="showMessage" class="edit-warning" @dblclick="$refs.picker.display = true">
<!-- TODO: i18n -->
ERR: Couldn't parse {{ this.value }}
</div>
</div>
</template>
@ -31,6 +37,9 @@ export default {
props: {
value: [String, Date, Number], ignoreFocus: Boolean
},
data: () => ({
showMessage: false
}),
computed: {
isMysql() {
return ['mysql', 'mysql2'].indexOf(this.$store.getters['project/GtrClientType'])
@ -40,8 +49,13 @@ export default {
if (!this.value) {
return this.value
}
return (/^\d+$/.test(this.value) ? dayjs(+this.value) : dayjs(this.value))
.format('YYYY-MM-DD HH:mm')
const d = (/^\d+$/.test(this.value) ? dayjs(+this.value) : dayjs(this.value))
if (d.isValid()) {
this.showMessage = false
return d.format('YYYY-MM-DD HH:mm')
} else {
this.showMessage = true
}
},
set(value) {
if (this.isMysql) {
@ -85,6 +99,12 @@ export default {
padding-top: 0 !important;
font-size: inherit !important;
}
.edit-warning {
padding: 10px;
text-align: left;
color: #E65100;
}
</style>
<!--
/**

Loading…
Cancel
Save