Dynamic Root (Alternative to XPath in MNTP) (#15035)
* Temp commit.. Initial work on XPath alternative for dymamically finding start nodes * First commit that goes all the way from ui to db for NearestAncestorOrSelf * Added more filters + return null from controller instead of not found * Bugfix * rewrite query to make sqlserver happy? * Added more tests * clean up initial step * Added tests and refactor * Update endpoint to take model instead of json * pick origin * Use model for config instead of string * append add filter button * fix * default filter * rename json fields * correct field names * minor corrections * Renaming.. * Rename endpoint * initial work for appending query steps * query steps ui * more localization * query step UI * Use doc type keys instead of alias * only for Documents * change to send keys to anyOfDocTypeKeys * Fix potential bug * Fix when level is impossible to get * correct prop to dynamicRoot * noValidStartNode dialog * custom query step * Renaming * Rollback unintended file change * Fixed issue if no doc type is chosen * Remove unintended file changes * More unintended changes * Renaming * Optimizations - IDE Recommendation for better source - Renaming for better clarity - Improving spacing/formatting - Typo corrections - Remove warnings concerning IEnumerable * Fix failed attempt bug --------- Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com> Co-authored-by: Sven Geusens <sge@umbraco.dk>
This commit is contained in:
@@ -14,6 +14,33 @@ public class MultiNodePickerConfigurationTreeSource
|
||||
[DataMember(Name = "query")]
|
||||
public string? StartNodeQuery { get; set; }
|
||||
|
||||
[DataMember(Name = "dynamicRoot")]
|
||||
public DynamicRoot? DynamicRoot { get; set; }
|
||||
|
||||
[DataMember(Name = "id")]
|
||||
public Udi? StartNodeId { get; set; }
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public class DynamicRoot
|
||||
{
|
||||
[DataMember(Name = "originAlias")]
|
||||
public string OriginAlias { get; set; } = string.Empty;
|
||||
|
||||
[DataMember(Name = "originKey")]
|
||||
public Guid? OriginKey { get; set; }
|
||||
|
||||
[DataMember(Name = "querySteps")]
|
||||
public QueryStep[] QuerySteps { get; set; } = Array.Empty<QueryStep>();
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public class QueryStep
|
||||
{
|
||||
[DataMember(Name = "alias")]
|
||||
public string Alias { get; set; } = string.Empty;
|
||||
|
||||
[DataMember(Name = "anyOfDocTypeKeys")]
|
||||
public IEnumerable<Guid> AnyOfDocTypeKeys { get; set; } = Array.Empty<Guid>();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user