From 09ebcba1e3ce0a6791de31938c5fb45114f7b4c1 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 29 Jan 2021 22:26:50 +0000 Subject: [PATCH] --- server/AyaNova/DataList/DataListFetcher.cs | 3 ++- server/AyaNova/models/AyContext.cs | 1 + .../AyaNova/models/DataListSavedColumnView.cs | 27 +++++++++++++++++++ .../models/DataListTableProcessingOptions.cs | 11 +++++++- server/AyaNova/util/AySchema.cs | 10 ++++--- 5 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 server/AyaNova/models/DataListSavedColumnView.cs diff --git a/server/AyaNova/DataList/DataListFetcher.cs b/server/AyaNova/DataList/DataListFetcher.cs index 269b1550..2e6c56ee 100644 --- a/server/AyaNova/DataList/DataListFetcher.cs +++ b/server/AyaNova/DataList/DataListFetcher.cs @@ -33,9 +33,10 @@ namespace AyaNova.DataList //turn the DataListTableRequest into a DataListTableProcesingOptions object here + //hydrates filter and column selections etc DataListTableProcessingOptions dataListTableOptions = new DataListTableProcessingOptions(dataListTableRequest, DataList, ct); - DataList.SetListOptionDefaultsIfNecessary(dataListTableOptions); + //#### TODO: below block into above method to clean it up and centralize it //STATIC filter options from server diff --git a/server/AyaNova/models/AyContext.cs b/server/AyaNova/models/AyContext.cs index a7bc90e6..24bfdde3 100644 --- a/server/AyaNova/models/AyContext.cs +++ b/server/AyaNova/models/AyContext.cs @@ -23,6 +23,7 @@ namespace AyaNova.Models public virtual DbSet Translation { get; set; } public virtual DbSet TranslationItem { get; set; } public virtual DbSet DataListSavedFilter { get; set; } + public virtual DbSet DataListSavedColumnView { get; set; } public virtual DbSet Tag { get; set; } public virtual DbSet FormCustom { get; set; } public virtual DbSet PickListTemplate { get; set; } diff --git a/server/AyaNova/models/DataListSavedColumnView.cs b/server/AyaNova/models/DataListSavedColumnView.cs new file mode 100644 index 00000000..4a293479 --- /dev/null +++ b/server/AyaNova/models/DataListSavedColumnView.cs @@ -0,0 +1,27 @@ + +using System.ComponentModel.DataAnnotations; + +namespace AyaNova.Models +{ + //this is a hiearchical object so saving as a JSON fragment still best option + + public class DataListSavedColumnView + { + public long Id { get; set; } + public uint Concurrency { get; set; } + + [Required] + public long UserId { get; set; }//only relevant if non-public for fetching either in list or single (public true OR userid matches) + + [Required, MaxLength(255)] + public string ListKey { get; set; }//max 255 characters ascii set + + public string Columns { get; set; }//JSON serialized Column array: columns:["PartInventoryTransactionEntryDate","PartPartNumber","PartWarehouseName","PartInventoryTransactionQuantity","PartInventoryTransactionDescription","PartInventoryTransactionSource","PartInventoryBalance"] + public string Sort { get; set; }//JSON serialized SortBy Dictionary: sortBy:[{"PartInventoryTransactionEntryDate":"-"}],//All sorted columns here as keyvalue pairs value is a string of "+" for ascending "-" for descending and are IN ORDER of how to be sorted + + + // + + + } +} diff --git a/server/AyaNova/models/DataListTableProcessingOptions.cs b/server/AyaNova/models/DataListTableProcessingOptions.cs index f680d3d5..0e2c2fe4 100644 --- a/server/AyaNova/models/DataListTableProcessingOptions.cs +++ b/server/AyaNova/models/DataListTableProcessingOptions.cs @@ -24,9 +24,18 @@ namespace AyaNova.Models base.ClientCriteria=request.ClientCriteria; base.DataListKey=request.DataListKey; + dataList.SetListOptionDefaultsIfNecessary(this); + //populate some values from saved filter and default columnview - //COLUMNS + //SET COLUMNS + //get user default DataListProcessingBase for this list key + + //SET SORTBY + + //SET FILTER + + //SERVER FILTER PROCESSING HERE CODE SEE DATALISTFETCHER diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 49d5580d..dd223e9f 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -504,13 +504,17 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); ////////////////////////////////////////////////// - //DATALISTSAVEDFILTER + //DATALISTSAVEDFILTER / DATALISTSAVEDCOLUMNVIEW if (currentSchema < 7) { LogUpdateMessage(log); - await ExecQueryAsync("CREATE TABLE adatalistsavedfilter (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, name TEXT NOT NULL, public BOOL NOT NULL, " + - "default BOOL NOT NULL, listkey VARCHAR(255) NOT NULL, filter TEXT)"); + await ExecQueryAsync("CREATE TABLE adatalistsavedfilter (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, name TEXT NOT NULL, public BOOL NOT NULL, " + + "default BOOL NOT NULL, listkey VARCHAR(255) NOT NULL, filter TEXT)"); + + await ExecQueryAsync("CREATE TABLE adatalistsavedcolumnview (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, " + + "listkey VARCHAR(255) NOT NULL, columns TEXT, sort TEXT)"); + await SetSchemaLevelAsync(++currentSchema); }