From 6ea38ba347f292a4325fbdbe6f2f425290d686c3 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 13 Mar 2020 19:43:27 +0000 Subject: [PATCH] --- .../AyaNova/PickList/AyaPickListFieldDefinition.cs | 2 ++ server/AyaNova/PickList/PickListSqlBuilder.cs | 13 +++++++++++++ server/AyaNova/PickList/WidgetPickList.cs | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/server/AyaNova/PickList/AyaPickListFieldDefinition.cs b/server/AyaNova/PickList/AyaPickListFieldDefinition.cs index a1cf0a31..f4dc4a9a 100644 --- a/server/AyaNova/PickList/AyaPickListFieldDefinition.cs +++ b/server/AyaNova/PickList/AyaPickListFieldDefinition.cs @@ -37,6 +37,7 @@ namespace AyaNova.PickList //MUST be present in all datalists and displayed at the client public bool IsRowId { get; set; } + public bool IsActiveColumn { get; set; } //CLIENT / SERVER - client display and to indicate what object to open , Server for formatting return object public int AyaObjectType { get; set; } @@ -60,6 +61,7 @@ namespace AyaNova.PickList IsFilterable = true; IsSortable = true; IsRowId = false; + IsActiveColumn=false; //Set openable object type to no type which is the default and means it's not a link to another object AyaObjectType = (int)AyaType.NoType; diff --git a/server/AyaNova/PickList/PickListSqlBuilder.cs b/server/AyaNova/PickList/PickListSqlBuilder.cs index 45424be3..21f0c6b3 100644 --- a/server/AyaNova/PickList/PickListSqlBuilder.cs +++ b/server/AyaNova/PickList/PickListSqlBuilder.cs @@ -36,8 +36,21 @@ namespace AyaNova.PickList //Add rowid column as it's always required AyaPickListFieldDefinition rowIdColumn = pickList.ColumnDefinitions.FirstOrDefault(x => x.IsRowId == true); + //this should only happen with a development error + if (rowIdColumn == null) + throw new System.ArgumentNullException($"DEV ERROR in PickListSqlBuilder.cs: picklist for {pickList.DefaultListObjectType.ToString()} has no rowId column specified in columnDefinitions list"); lSelect.Add(rowIdColumn.SqlIdColumnName + " AS rowid"); + //add active only as default for all lists unless inactive is specified + if (!IncludeInactive) + { + AyaPickListFieldDefinition activeColumn = pickList.ColumnDefinitions.FirstOrDefault(x => x.IsActiveColumn == true); + //it's ok if there is no active column, it could happen so just roll with it + if(activeColumn!=null){ + lWhere.Add(activeColumn.SqlValueColumnName + " = true"); + } + } + foreach (string ColumnName in templateColumnNames) { diff --git a/server/AyaNova/PickList/WidgetPickList.cs b/server/AyaNova/PickList/WidgetPickList.cs index ceabf4c8..50c9c699 100644 --- a/server/AyaNova/PickList/WidgetPickList.cs +++ b/server/AyaNova/PickList/WidgetPickList.cs @@ -38,7 +38,8 @@ namespace AyaNova.PickList LtKey = "Active", FieldKey = "widgetactive", UiFieldDataType = (int)UiFieldDataType.Bool, - SqlValueColumnName = "awidget.active" + SqlValueColumnName = "awidget.active", + IsActiveColumn = true }); ColumnDefinitions.Add(new AyaPickListFieldDefinition