|
@@ -301,20 +301,12 @@ namespace InABox.DynamicGrid
|
|
|
LookupFactory.FormatLookup(_type, display, new[] { CodeColumn });
|
|
|
}
|
|
|
|
|
|
- private string GetCodeColumn()
|
|
|
+ private string GetCodeColumn(Type type)
|
|
|
{
|
|
|
- var comps = ColumnName.Split('.').ToList();
|
|
|
- comps.RemoveAt(comps.Count - 1);
|
|
|
- var prefix = string.Format("{0}.", string.Join(".", comps));
|
|
|
- var cols = Host.Columns.Where(x => !x.ColumnName.Equals(ColumnName) && x.ColumnName.StartsWith(prefix));
|
|
|
- foreach (var col in cols)
|
|
|
- {
|
|
|
- var editor = Host.GetEditor(col);
|
|
|
- if (editor is CodeEditor || editor is UniqueCodeEditor)
|
|
|
- return col.ColumnName.Split('.').Last();
|
|
|
- }
|
|
|
-
|
|
|
- return "";
|
|
|
+ var prop = DatabaseSchema.Properties(type)
|
|
|
+ .Where(x => x.Editor is BaseCodeEditor && !x.HasParentEntityLink())
|
|
|
+ .FirstOrDefault() ?? throw new Exception($"No code property for {type.EntityName()}");
|
|
|
+ return prop.Name;
|
|
|
}
|
|
|
|
|
|
public override void Configure()
|
|
@@ -329,7 +321,7 @@ namespace InABox.DynamicGrid
|
|
|
Host.LoadColumns(ColumnName, OtherColumns);
|
|
|
Host.LoadColumns(ColumnName, codePopupEditor.OtherColumns);
|
|
|
|
|
|
- CodeColumn = !string.IsNullOrEmpty(codePopupEditor.CodeColumn) ? codePopupEditor.CodeColumn : GetCodeColumn();
|
|
|
+ CodeColumn = !string.IsNullOrEmpty(codePopupEditor.CodeColumn) ? codePopupEditor.CodeColumn : GetCodeColumn(_type);
|
|
|
}
|
|
|
|
|
|
public override void SetFocus()
|