From 798e63c3965ca439ad0b1937559e20ec6b0e6ace Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 14 Feb 2020 23:34:59 +0000 Subject: [PATCH] --- server/AyaNova/DataList/AyaDataList.cs | 3 +- .../DataList/DataListSqlSelectBuilder.cs | 21 +++++++++--- server/AyaNova/DataList/IAyaDataList.cs | 8 ++--- server/AyaNova/DataList/TestWidgetDataList.cs | 32 +++++++++---------- 4 files changed, 37 insertions(+), 27 deletions(-) diff --git a/server/AyaNova/DataList/AyaDataList.cs b/server/AyaNova/DataList/AyaDataList.cs index e88daa64..e55407c3 100644 --- a/server/AyaNova/DataList/AyaDataList.cs +++ b/server/AyaNova/DataList/AyaDataList.cs @@ -37,9 +37,10 @@ namespace AyaNova.DataList ret.Add(cm["fld"].Value()); } return ret; - } + + public Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromListView(JArray listViewArray) { diff --git a/server/AyaNova/DataList/DataListSqlSelectBuilder.cs b/server/AyaNova/DataList/DataListSqlSelectBuilder.cs index ae98b64c..f7136ae6 100644 --- a/server/AyaNova/DataList/DataListSqlSelectBuilder.cs +++ b/server/AyaNova/DataList/DataListSqlSelectBuilder.cs @@ -37,6 +37,7 @@ namespace AyaNova.DataList sb.Append(" AS df"); + bool CustomFieldIncluded = false; foreach (string ColumnName in listViewFieldList) { //skip the df column, it's already been processed above @@ -53,15 +54,25 @@ namespace AyaNova.DataList if (o != null) {//Ignore missing fields in production - sb.Append(", "); - sb.Append(o.GetSqlValueColumnName()); + + if (o.IsCustomField && !CustomFieldIncluded) + { //if any are custom field then add custom fields column to query + CustomFieldIncluded=true; - //does it also have an ID column? - if (!string.IsNullOrWhiteSpace(o.SqlIdColumnName)) + } + else { sb.Append(", "); - sb.Append(o.SqlIdColumnName); + sb.Append(o.GetSqlValueColumnName()); + + //does it also have an ID column? + if (!string.IsNullOrWhiteSpace(o.SqlIdColumnName)) + { + sb.Append(", "); + sb.Append(o.SqlIdColumnName); + } } + } } diff --git a/server/AyaNova/DataList/IAyaDataList.cs b/server/AyaNova/DataList/IAyaDataList.cs index 4c715eee..ba8d49d8 100644 --- a/server/AyaNova/DataList/IAyaDataList.cs +++ b/server/AyaNova/DataList/IAyaDataList.cs @@ -5,7 +5,7 @@ namespace AyaNova.DataList { internal interface IAyaDataList { - + //sql query from fragment with table joins et string SQLFrom { get; set; } @@ -14,18 +14,16 @@ namespace AyaNova.DataList //allowed roles to access this list AuthorizationRoles AllowedRoles { get; set; } - + //Default object type to open for rows of this list (use no object if no) AyaType DefaultListObjectType { get; set; } //Default / STOCK DataListView when none is specified string DefaultListView { get; set; } - + Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromListView(JArray listViewArray); List GetFieldListFromListView(JArray listViewArray); - // bool ValidateTemplate(string template); - } diff --git a/server/AyaNova/DataList/TestWidgetDataList.cs b/server/AyaNova/DataList/TestWidgetDataList.cs index 436a6f76..44ecd92b 100644 --- a/server/AyaNova/DataList/TestWidgetDataList.cs +++ b/server/AyaNova/DataList/TestWidgetDataList.cs @@ -146,22 +146,22 @@ namespace AyaNova.DataList SqlValueColumnName = "awidget.tags" }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom1", FieldKey = "widgetcustom1", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom2", FieldKey = "widgetcustom2", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom3", FieldKey = "widgetcustom3", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom4", FieldKey = "widgetcustom4", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom5", FieldKey = "widgetcustom5", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom6", FieldKey = "widgetcustom6", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom7", FieldKey = "widgetcustom7", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom8", FieldKey = "widgetcustom8", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom9", FieldKey = "widgetcustom9", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom10", FieldKey = "widgetcustom10", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom11", FieldKey = "widgetcustom11", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom12", FieldKey = "widgetcustom12", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom13", FieldKey = "widgetcustom13", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom14", FieldKey = "widgetcustom14", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom15", FieldKey = "widgetcustom15", IsCustomField = true }); - FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom16", FieldKey = "widgetcustom16", IsCustomField = true }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom1", FieldKey = "widgetcustom1", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom2", FieldKey = "widgetcustom2", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom3", FieldKey = "widgetcustom3", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom4", FieldKey = "widgetcustom4", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom5", FieldKey = "widgetcustom5", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom6", FieldKey = "widgetcustom6", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom7", FieldKey = "widgetcustom7", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom8", FieldKey = "widgetcustom8", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom9", FieldKey = "widgetcustom9", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom10", FieldKey = "widgetcustom10", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom11", FieldKey = "widgetcustom11", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom12", FieldKey = "widgetcustom12", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom13", FieldKey = "widgetcustom13", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom14", FieldKey = "widgetcustom14", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom15", FieldKey = "widgetcustom15", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); + FieldDefinitions.Add(new AyaDataListFieldDefinition { LtKey = "WidgetCustom16", FieldKey = "widgetcustom16", IsCustomField = true, SqlValueColumnName = "awidget.customfields" }); } }//eoc }//eons \ No newline at end of file