From 2c0f598c0fce77a23dd6aa909b55d99e02a3f41e Mon Sep 17 00:00:00 2001 From: Lyubov Voloshko Date: Mon, 14 Jul 2025 18:23:24 +0300 Subject: [PATCH 1/3] add ARRAY type for postgres --- .../db-table-row-edit.component.ts | 2 +- frontend/src/app/consts/field-types.ts | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts b/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts index e36c0f3f4..beccb522c 100644 --- a/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts +++ b/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts @@ -578,7 +578,7 @@ export class DbTableRowEditComponent implements OnInit { //parse json fields const jsonFields = Object.entries(this.tableTypes) - .filter(([key, value]) => value === 'json' || value === 'jsonb' || value === 'array' || value === 'object') + .filter(([key, value]) => value === 'json' || value === 'jsonb' || value === 'array' || value === 'ARRAY' || value === 'object') .map(jsonField => jsonField[0]); if (jsonFields.length) { for (const jsonField of jsonFields) { diff --git a/frontend/src/app/consts/field-types.ts b/frontend/src/app/consts/field-types.ts index 9b8e767d3..2964547fb 100644 --- a/frontend/src/app/consts/field-types.ts +++ b/frontend/src/app/consts/field-types.ts @@ -1,26 +1,26 @@ import { BinaryDataCaptionRowComponent } from '../components/ui-components/row-fields/binary-data-caption/binary-data-caption.component'; import { BooleanRowComponent } from 'src/app/components/ui-components/row-fields/boolean/boolean.component' +import { CodeRowComponent } from '../components/ui-components/row-fields/code/code.component'; +import { CountryRowComponent } from '../components/ui-components/row-fields/country/country.component'; import { DateRowComponent } from '../components/ui-components/row-fields/date/date.component'; import { DateTimeRowComponent } from '../components/ui-components/row-fields/date-time/date-time.component'; +import { FileRowComponent } from '../components/ui-components/row-fields/file/file.component'; import { ForeignKeyRowComponent } from '../components/ui-components/row-fields/foreign-key/foreign-key.component'; +import { IdRowComponent } from '../components/ui-components/row-fields/id/id.component'; +import { ImageRowComponent } from '../components/ui-components/row-fields/image/image.component'; import { JsonEditorRowComponent } from '../components/ui-components/row-fields/json-editor/json-editor.component'; import { LongTextRowComponent } from 'src/app/components/ui-components/row-fields/long-text/long-text.component' +import { MoneyRowComponent } from '../components/ui-components/row-fields/money/money.component'; import { NumberRowComponent } from 'src/app/components/ui-components/row-fields/number/number.component'; import { PasswordRowComponent } from '../components/ui-components/row-fields/password/password.component'; +import { PhoneRowComponent } from '../components/ui-components/row-fields/phone/phone.component'; import { PointRowComponent } from 'src/app/components/ui-components/row-fields/point/point.component'; import { SelectRowComponent } from '../components/ui-components/row-fields/select/select.component'; import { StaticTextRowComponent } from '../components/ui-components/row-fields/static-text/static-text.component'; import { TextRowComponent } from 'src/app/components/ui-components/row-fields/text/text.component'; -import { TimeRowComponent } from '../components/ui-components/row-fields/time/time.component'; import { TimeIntervalRowComponent } from '../components/ui-components/row-fields/time-interval/time-interval.component'; -import { IdRowComponent } from '../components/ui-components/row-fields/id/id.component'; -import { FileRowComponent } from '../components/ui-components/row-fields/file/file.component'; -import { CodeRowComponent } from '../components/ui-components/row-fields/code/code.component'; -import { ImageRowComponent } from '../components/ui-components/row-fields/image/image.component'; +import { TimeRowComponent } from '../components/ui-components/row-fields/time/time.component'; import { UrlRowComponent } from '../components/ui-components/row-fields/url/url.component'; -import { CountryRowComponent } from '../components/ui-components/row-fields/country/country.component'; -import { PhoneRowComponent } from '../components/ui-components/row-fields/phone/phone.component'; -import { MoneyRowComponent } from '../components/ui-components/row-fields/money/money.component'; export const timestampTypes = ['timestamp without time zone', 'timestamp with time zone', 'timestamp', 'date', 'time without time zone', 'time with time zone' , 'time', 'datetime', 'date time', 'datetime2', 'datetimeoffset', 'curdate', 'curtime', 'now', 'localtime', 'localtimestamp']; export const defaultTimestampValues = { @@ -92,6 +92,7 @@ export const fieldTypes = { // json-editor json: JsonEditorRowComponent, //json-editor jsonb: JsonEditorRowComponent, //json-editor + ARRAY: JsonEditorRowComponent, //file bytea: FileRowComponent, From 2b74114425fa05744fc49f69cd75ce4e4ff2e24e Mon Sep 17 00:00:00 2001 From: Lyubov Voloshko Date: Tue, 15 Jul 2025 11:07:31 +0300 Subject: [PATCH 2/3] record view: fix display field name for related records list --- .../db-table-row-view/db-table-row-view.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/dashboard/db-table-row-view/db-table-row-view.component.ts b/frontend/src/app/components/dashboard/db-table-row-view/db-table-row-view.component.ts index d946687a1..940cc649f 100644 --- a/frontend/src/app/components/dashboard/db-table-row-view/db-table-row-view.component.ts +++ b/frontend/src/app/components/dashboard/db-table-row-view/db-table-row-view.component.ts @@ -107,8 +107,8 @@ export class DbTableRowViewComponent implements OnInit, OnDestroy { foreignKeyMap[fk.column_name] = fk.referenced_column_name; } - const tableWidgetsNameMap = Object.keys(res.widgets).reduce((acc, key) => { - acc[key] = res.widgets[key].name; + const tableWidgetsNameMap = res.widgets.reduce((acc, widget: Widget) => { + acc[widget.field_name] = widget.name; return acc; }, {}); From 61c65f702db18f711e3fb7a3bacf9ac2b39c6aca Mon Sep 17 00:00:00 2001 From: Lyubov Voloshko Date: Tue, 15 Jul 2025 12:03:16 +0300 Subject: [PATCH 3/3] icon picker: always set icon value in Another icon field --- .../ui-components/icon-picker/icon-picker.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/ui-components/icon-picker/icon-picker.component.ts b/frontend/src/app/components/ui-components/icon-picker/icon-picker.component.ts index 1605ab0a3..8fc1197f3 100644 --- a/frontend/src/app/components/ui-components/icon-picker/icon-picker.component.ts +++ b/frontend/src/app/components/ui-components/icon-picker/icon-picker.component.ts @@ -2,13 +2,13 @@ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatMenuModule } from '@angular/material/menu'; import { MatMenuTrigger } from '@angular/material/menu'; import { MatTooltipModule } from '@angular/material/tooltip'; -import { MatButtonModule } from '@angular/material/button'; @Component({ selector: 'app-icon-picker', @@ -38,7 +38,7 @@ export class IconPickerComponent { constructor() { console.log(this.resetButtonShown, 'resetButtonShown'); } ngOnInit() { - console.log(this.resetButtonShown, 'resetButtonShown'); + this.customIcon = this.icon || ''; } applyIcon() {