Browse Source

refactor(gui-v2): disable delete only if not in editable state

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/3339/head
Pranav C 2 years ago
parent
commit
9ccf78a516
  1. 16
      packages/nc-gui-v2/components/smartsheet/Grid.vue

16
packages/nc-gui-v2/components/smartsheet/Grid.vue

@ -174,7 +174,7 @@ const makeEditable = (row: Row, col: ColumnType) => {
return return
} }
if (!isPkAvail.value && !row.rowMeta.new) { if (!isPkAvail.value && !row.rowMeta.new) {
message.info("Update not allowed for table which doesn't have primary Key") message.info('Update not allowed for table which doesn\'t have primary Key')
return return
} }
if (col.ai) { if (col.ai) {
@ -218,8 +218,10 @@ const onKeyDown = async (e: KeyboardEvent) => {
break break
/** on delete key press clear cell */ /** on delete key press clear cell */
case 'Delete': case 'Delete':
if (!editEnabled) {
e.preventDefault() e.preventDefault()
if (!editEnabled) await clearCell(selected as { row: number; col: number }) await clearCell(selected as { row: number; col: number })
}
break break
/** on arrow key press navigate through cells */ /** on arrow key press navigate through cells */
case 'ArrowRight': case 'ArrowRight':
@ -238,12 +240,11 @@ const onKeyDown = async (e: KeyboardEvent) => {
e.preventDefault() e.preventDefault()
if (selected.row < data.value.length - 1) selected.row++ if (selected.row < data.value.length - 1) selected.row++
break break
default: default: {
{
const rowObj = data.value[selected.row] const rowObj = data.value[selected.row]
const columnObj = fields.value[selected.col] const columnObj = fields.value[selected.col]
if (e.metaKey || e.ctrlKey) { if (!editEnabled && e.metaKey || e.ctrlKey) {
switch (e.keyCode) { switch (e.keyCode) {
// copy - ctrl/cmd +c // copy - ctrl/cmd +c
case 67: case 67:
@ -259,7 +260,7 @@ const onKeyDown = async (e: KeyboardEvent) => {
/** on letter key press make cell editable and empty */ /** on letter key press make cell editable and empty */
if (e?.key?.length === 1) { if (e?.key?.length === 1) {
if (!isPkAvail && !rowObj.rowMeta.new) { if (!isPkAvail && !rowObj.rowMeta.new) {
return message.info("Update not allowed for table which doesn't have primary Key") return message.info('Update not allowed for table which doesn\'t have primary Key')
} }
if (makeEditable(rowObj, columnObj)) { if (makeEditable(rowObj, columnObj)) {
rowObj.row[columnObj.title] = '' rowObj.row[columnObj.title] = ''
@ -397,7 +398,8 @@ const onNavigate = (dir: NavigateDir) => {
<a-checkbox v-model:checked="row.rowMeta.selected" /> <a-checkbox v-model:checked="row.rowMeta.selected" />
</div> </div>
<span class="flex-1" /> <span class="flex-1" />
<div v-if="!readOnly && !isLocked" class="nc-expand" :class="{ 'nc-comment': row.rowMeta?.commentCount }"> <div v-if="!readOnly && !isLocked" class="nc-expand"
:class="{ 'nc-comment': row.rowMeta?.commentCount }">
<span <span
v-if="row.rowMeta?.commentCount" v-if="row.rowMeta?.commentCount"
class="py-1 px-3 rounded-full text-xs cursor-pointer select-none transform hover:(scale-110)" class="py-1 px-3 rounded-full text-xs cursor-pointer select-none transform hover:(scale-110)"

Loading…
Cancel
Save