This commit is contained in:
2020-01-15 16:44:10 +00:00
parent 14c38d5c6a
commit e45086573d
4 changed files with 31 additions and 9 deletions

View File

@@ -45,7 +45,7 @@ Server
- Display value (the data to show, not formatted yet, that's up to the client)
- Optional: ID value (if the object is openable **** MUST CHECK RIGHTS ALSO HERE **** then this is the id to open for the client to put a hyperlink on that column)
- To save bandwidth abbreviations are used in the column definitions:
- ColumnsJSON=@"{[ {""cm"":""Widget"",""dt"":""text"",""ay"":"+ AyaType.Widget.ToString()+ "}]}";
- ColumnsJSON=@"""columns"":[ {""cm"":""Widget"",""dt"":""text"",""ay"":"+ AyaType.Widget.ToString()+ "}]";
- cm=column name locale key, dt=AyDataType, ay=AyaType to open on click of that column field (optional, not present if not openable)
- For example (wide list):
data:{
@@ -136,9 +136,9 @@ Download
"next": "http://localhost:7575/api/v8/Widget/ListWidgets?pageNo=2&pageSize=3",
"last": "http://localhost:7575/api/v8/Widget/ListWidgets?pageNo=34&pageSize=3"
},
"columns":{
"columns":[
{name:"lt_client_name",datatype:text,ayatype:client},{name:"lt_client_notes",datatype:text},{name:"lt_last_workorder",datatype:number,ayatype:workorder}
}
]
}

View File

@@ -408,7 +408,7 @@ namespace AyaNova
// ******************** TESTING WIPE DB *****************************
//
//Set this to true to wipe the db and reinstall a trial license and re-seed the data
var TESTING_REFRESH_DB = true;//#######################################################################################
var TESTING_REFRESH_DB = false;//#######################################################################################
#if (DEBUG)
//TESTING

View File

@@ -1,5 +1,7 @@
using System.Linq;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using System.Text;
namespace AyaNova.Biz
{
@@ -52,6 +54,7 @@ namespace AyaNova.Biz
switch (key)
{
case WIDGET_KEY:
#region WIDGET_KEY
l.Add(new ObjectField { Key = "WidgetName", PropertyName = "Name", DataType = AyDataType.Text, Hideable = false });
l.Add(new ObjectField { Key = "WidgetSerial", PropertyName = "Serial", DataType = AyDataType.Integer });
l.Add(new ObjectField { Key = "WidgetDollarAmount", PropertyName = "DollarAmount", DataType = AyDataType.Currency });
@@ -80,8 +83,9 @@ namespace AyaNova.Biz
l.Add(new ObjectField { Key = "WidgetCustom15", PropertyName = "WidgetCustom15", Custom = true });
l.Add(new ObjectField { Key = "WidgetCustom16", PropertyName = "WidgetCustom16", Custom = true });
break;
#endregion
case USER_KEY:
#region USER_KEY
l.Add(new ObjectField { Key = "Name", PropertyName = "Name", SharedLTKey = true, DataType = AyDataType.Text, Hideable = false });
l.Add(new ObjectField { Key = "UserEmployeeNumber", PropertyName = "EmployeeNumber", DataType = AyDataType.Text });
l.Add(new ObjectField { Key = "AuthorizationRoles", PropertyName = "Roles", Hideable = false, DataType = AyDataType.Enum, EnumType = typeof(AuthorizationRoles).ToString() });
@@ -107,7 +111,7 @@ namespace AyaNova.Biz
l.Add(new ObjectField { Key = "UserCustom15", PropertyName = "UserCustom15", Custom = true });
l.Add(new ObjectField { Key = "UserCustom16", PropertyName = "UserCustom16", Custom = true });
break;
#endregion
default:
@@ -135,9 +139,27 @@ namespace AyaNova.Biz
{
//parse the template
var jtemplate = JObject.Parse(template);
var fields= ObjectFieldsList(ObjectKey);
var fields = ObjectFieldsList(ObjectKey);
return "";
//convert to strings (https://stackoverflow.com/a/33836599/8939)
var fullFields = ((JArray)jtemplate["full"]).ToObject<string[]>();
//Generate JSON fragment to return with column definitions
StringBuilder sb=new StringBuilder();
// StringWriter sw = new StringWriter();
// JsonTextWriter writer = new JsonTextWriter(sw);
// writer.WriteStartObject();//{
// ColumnsJSON=@"""columns"":[ {""cm"":""Widget"",""dt"":""text"",""ay"":"+ AyaType.Widget.ToString()+ "}]";
foreach (string s in fullFields)
{
ObjectField o = fields.FirstOrDefault(x => x.Key == s);
if (o != null)
{//Here is where we can vet the field name, if it doesn't exist though, for now we'll just ignore it
}
}
// writer.WriteEndObject();//}
return sw.ToString();
}

View File

@@ -334,7 +334,7 @@ namespace AyaNova.Biz
string ColumnsJSON=string.Empty;
if(listOptions.Mini){
//all mini lists will have an id so include the type to open
ColumnsJSON=@"{[ {""cm"":""Widget"",""dt"":""text"",""ay"":"+ AyaType.Widget.ToString()+ "}]}";
ColumnsJSON=@"""columns"":[ {""cm"":""Widget"",""dt"":""text"",""ay"":"+ AyaType.Widget.ToString()+ "}]";
}else{
ColumnsJSON=ObjectFields.GenerateListColumnJSONFromTemplate(ObjectFields.WIDGET_KEY,MOCK_WIDGET_DISPLAY_TEMPLATE_JSON);
}