This commit is contained in:
94
server/DataList/DataListFieldDefinition.cs
Normal file
94
server/DataList/DataListFieldDefinition.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
using Sockeye.Biz;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Sockeye.DataList
|
||||
{
|
||||
//This class defines a field used for returning data in list format for UI grid lists and reporting
|
||||
public class DataListFieldDefinition
|
||||
{
|
||||
//CLIENT / SERVER Unique identifier used at BOTH client and server
|
||||
//also the sql valuecolumnname if identical
|
||||
public string FieldKey { get; set; }
|
||||
|
||||
//CLIENT Use only for display
|
||||
public string TKey { get; set; }
|
||||
|
||||
//CLIENT Use only for display to disambiguate things like
|
||||
//Tags in main workorder and Tags in Workorder Item and Tags in Unit (all on same list)
|
||||
public string TKeySection { get; set; }
|
||||
|
||||
//CLIENT / SERVER - client display server validation purposes
|
||||
public bool IsCustomField { get; set; }
|
||||
|
||||
//CLIENT / SERVER - client display server validation purposes
|
||||
public bool IsFilterable { get; set; }
|
||||
|
||||
//CLIENT / SERVER - client display server validation purposes
|
||||
public bool IsSortable { get; set; }
|
||||
|
||||
//SERVER - indicates internal only meta column, not a client thing
|
||||
public bool IsMeta { get; set; }
|
||||
|
||||
//CLIENT Use only for display
|
||||
public int UiFieldDataType { get; set; }
|
||||
|
||||
//CLIENT Use only for display
|
||||
public string EnumType { get; set; }
|
||||
|
||||
//SERVER / CLIENT - used to identify the column that represents the entire row ID and object
|
||||
//MUST be present in all datalists and displayed at the client
|
||||
public bool IsRowId { get; set; }
|
||||
|
||||
//CLIENT / SERVER - client display and to indicate what object to open , Server for formatting return object
|
||||
public int SockType { get; set; }
|
||||
|
||||
//CLIENT - indicates client must translate the values in this column (typically computed columns based on aygetname procedure)
|
||||
public bool Translate { get; set; }
|
||||
|
||||
//SERVER - for building sql queries
|
||||
//don't return these properties when api user fetches field list definitions in DataListController
|
||||
[JsonIgnore]
|
||||
public string SqlIdColumnName { get; set; }
|
||||
[JsonIgnore]
|
||||
public string SqlValueColumnName { get; set; }
|
||||
[JsonIgnore]
|
||||
public string SqlATypeColumnName { get; set; }//column to fetch the SockType openabel for this field to set it dynamically instead of preset
|
||||
[JsonIgnore]
|
||||
public string SqlColorColumnName { get; set; }//column to fetch the color if applicable to this field
|
||||
|
||||
public DataListFieldDefinition()
|
||||
{
|
||||
//most common defaults
|
||||
IsCustomField = false;
|
||||
IsFilterable = true;
|
||||
IsSortable = true;
|
||||
IsRowId = false;
|
||||
IsMeta = false;
|
||||
Translate = false;
|
||||
//Set openable object type to no type which is the default and means it's not a link to another object
|
||||
SockType = (int)Biz.SockType.NoType;
|
||||
SqlATypeColumnName = null;//must be null as that is checked against specifically
|
||||
SqlColorColumnName = null;//must be null to be ignored properly
|
||||
|
||||
}
|
||||
|
||||
//Get column to query for display name or use FieldName if there is no difference
|
||||
public string GetSqlValueColumnName()
|
||||
{
|
||||
if (string.IsNullOrEmpty(SqlValueColumnName))
|
||||
{
|
||||
return FieldKey.ToLowerInvariant();
|
||||
}
|
||||
else
|
||||
{
|
||||
return SqlValueColumnName;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasIdColumn()
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(SqlIdColumnName);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user