Files
raven/server/AyaNova/DataList/IAyaDataList.cs
2020-01-23 20:47:22 +00:00

39 lines
1.5 KiB
C#

using System.Collections.Generic;
using AyaNova.Biz;
namespace AyaNova.DataList
{
internal interface IAyaDataList
{
//Unique key to identify this list
string ListKey { get; set; }
//sql query from fragment with table joins et
string SQLFrom { get; set; }
//List of fields for this object
List<AyaDataListFieldDefinition> FieldDefinitions { get; set; }
//allowed roles to access the full list templated fields
AuthorizationRoles FullListAllowedRoles { get; set; }
//allowed roles to access mini list templated fields
//generally this will be *any* because most forms will need to allow this for picklists such as usernames etc
// but this is a safety valve for sensitive lists like financial reports where there is just no need for untrusted roles to see it
AuthorizationRoles MiniListAllowedRoles { get; set; }
//Default object type to open for rows of this list (use no object if no)
AyaType DefaultListObjectType { get; set; }
//Default list display template if none found in db or is invalid, this ensures the data will flow even if people fuck up the templates somehow
string DefaultDataListDisplayTemplate { get; set; }
Newtonsoft.Json.Linq.JArray GenerateMINIListColumnsJSON();
Newtonsoft.Json.Linq.JArray GenerateListColumnsJSONFromTemplate(string template);
bool ValidateTemplate(string template);
}
}