From 0c077f09d23dd1b6e132e63d4390e032f512d92d Mon Sep 17 00:00:00 2001 From: 18alantom <2.alan.tom@gmail.com> Date: Mon, 20 Feb 2023 11:22:48 +0530 Subject: [PATCH] incr: use legible temp name - fix table borders - enable edit row --- fyo/core/docHandler.ts | 17 +++++- schemas/app/Party.json | 3 +- src/components/Controls/Color.vue | 2 +- src/components/Controls/Table.vue | 5 +- src/components/Controls/TableRow.vue | 1 - src/components/Row.vue | 2 +- src/pages/CommonForm/CommonForm.vue | 62 ++++++++++++++++++---- src/pages/CommonForm/CommonFormSection.vue | 18 +++++-- src/pages/ListView/List.vue | 4 +- 9 files changed, 93 insertions(+), 21 deletions(-) diff --git a/fyo/core/docHandler.ts b/fyo/core/docHandler.ts index 2b98b88b..6026ae46 100644 --- a/fyo/core/docHandler.ts +++ b/fyo/core/docHandler.ts @@ -14,9 +14,11 @@ export class DocHandler { singles: SinglesMap = {}; docs: Observable = new Observable(); observer: Observable = new Observable(); + #temporaryNameCounters: Record; constructor(fyo: Fyo) { this.fyo = fyo; + this.#temporaryNameCounters = {}; } init() { @@ -97,7 +99,7 @@ export class DocHandler { } const doc = new Model!(schema, data, this.fyo, isRawValueMap); - doc.name ??= getRandomString(); + doc.name ??= this.#getTemporaryName(schema); if (cacheDoc) { this.#addToCache(doc); } @@ -105,6 +107,19 @@ export class DocHandler { return doc; } + #getTemporaryName(schema: Schema): string { + if (schema.naming === 'random') { + return getRandomString(); + } + + this.#temporaryNameCounters[schema.name] ??= 1; + + const idx = this.#temporaryNameCounters[schema.name]; + this.#temporaryNameCounters[schema.name] = idx + 1; + + return this.fyo.t`New ${schema.label ?? schema.name} - Temp No. ${idx}`; + } + /** * Cache operations */ diff --git a/schemas/app/Party.json b/schemas/app/Party.json index 820efd1d..2ee7d547 100644 --- a/schemas/app/Party.json +++ b/schemas/app/Party.json @@ -46,7 +46,8 @@ { "fieldname": "outstandingAmount", "label": "Outstanding Amount", - "fieldtype": "Currency" + "fieldtype": "Currency", + "hidden": true }, { "fieldname": "currency", diff --git a/src/components/Controls/Color.vue b/src/components/Controls/Color.vue index 4d5ac6c0..88fb579f 100644 --- a/src/components/Controls/Color.vue +++ b/src/components/Controls/Color.vue @@ -28,7 +28,7 @@ + diff --git a/src/pages/CommonForm/CommonFormSection.vue b/src/pages/CommonForm/CommonFormSection.vue index 22c9fe05..9636c58f 100644 --- a/src/pages/CommonForm/CommonFormSection.vue +++ b/src/pages/CommonForm/CommonFormSection.vue @@ -24,6 +24,7 @@ :key="field.fieldname" :df="field" :value="doc[field.fieldname]" + @editrow="(doc:Doc) => $emit('editrow', doc)" @change="async (value) => await doc.set(field.fieldname, value)" /> @@ -37,6 +38,7 @@ import { evaluateHidden } from 'src/utils/doc'; import { defineComponent, PropType } from 'vue'; export default defineComponent({ + emits: ['editrow'], props: { title: String, showTitle: Boolean, @@ -48,9 +50,19 @@ export default defineComponent({ }, computed: { filteredFields(): Field[] { - return (this.fields ?? []).filter( - (f) => !evaluateHidden(f, this.doc) && !f.meta - ); + const fields: Field[] = []; + for (const field of this.fields ?? []) { + if (evaluateHidden(field, this.doc)) { + continue; + } + + if (field.meta) { + continue; + } + + fields.push(field); + } + return fields; }, }, components: { FormControl }, diff --git a/src/pages/ListView/List.vue b/src/pages/ListView/List.vue index db5dcc37..192328b2 100644 --- a/src/pages/ListView/List.vue +++ b/src/pages/ListView/List.vue @@ -9,7 +9,7 @@ >

#

@@ -45,7 +45,7 @@