public string GetPropValue(UiParameter <T> prop, object val) { if (val == null) { return(null); } switch (prop.UiType) { case "HijriDate": return(Convert.ToDateTime(val).ToDateHijriFullDetails()); case "Date": return(Convert.ToDateTime(val).ToDateFullDetails()); case "file": case "MultipleFile": return("TBD"); case "DropDownList": case "LookupSelect": case "MultipleSelect": case "LookupMulipleSelect": case "LookupParantSelect": return(LookupService.Names(prop.LookupType, val, prop.ParantLevel, prop.UiType == "LookupParantSelect")); default: return(val.ToString()); } }
public void MultipleFile(string Name, string Label, Func <T, object> Value, bool Required = false, int?panelId = null, int width = 12, Func <T, bool> Condition = null) { var uip = new UiParameter <T>() { Name = Name, Label = Label, Value = Value, Required = Required, PanelId = panelId, Condition = Condition, Width = width, UiType = ParameterTypes.MultipleFile, FilterOk = false }; Parameters.Push(Name, uip); }
public void Hidden(string Name, Func <T, object> Value) { var uip = new UiParameter <T>() { Name = Name, Value = Value, UiType = ParameterTypes.Hidden, FilterOk = false }; Parameters.Push(Name, uip); }
public void LookupParantSelect(string Name, string Label, Func <T, object> Value, LookupType type, int?ParantLevel = null, bool Required = false, int?panelId = null, string ChainedTo = null, int width = 6, Func <T, bool> Condition = null) { var uip = new UiParameter <T>() { Name = Name, Label = Label, Value = Value, ParantLevel = ParantLevel, Required = Required, PanelId = panelId, Condition = Condition, Width = width, UiType = ParameterTypes.LookupParantSelect, LookupType = type, ChainedTo = ChainedTo }; Parameters.Push(Name, uip); }
public void Select(string Name, string Label, Func <T, object> Value, bool Required = false, int?panelId = null, string ChainedTo = null, int width = 6, Func <T, bool> Condition = null) { var uip = new UiParameter <T>() { Name = Name, Label = Label, Value = Value, Required = Required, PanelId = panelId, Condition = Condition, Width = width, UiType = ParameterTypes.DropDownList, ChainedTo = ChainedTo }; Parameters.Push(Name, uip); }
public void PropShow(UiParameter <T> prop, ref object val) { _uv.Html += $@"<div class=""col-md-6""> <div class=""form-group row""> <label class=""control-label text-right col-md-5"">{prop.Label}</label> <div class=""col-md-7""> <p class=""form-control-static""> {GetPropValue(prop, val)} </p> </div> </div> </div>"; }
public void GetSelectOptions <T>(UiParameter <T> prop, ref object val, bool IsFilter = false, bool multiple = false) where T : class { if (prop.LookupType == null) { return; } if (!prop.Required || IsFilter == true) { _uv.Html += @"<option value=""""></option>"; } foreach (var it in LookupService.PopList(prop.LookupType, val, prop.ParantLevel, prop.UiType == "LookupParantSelect")) { var selected = (it.Selected.HasValue && it.Selected.Value) ? "selected" : ""; _uv.Html += $@"<option value=""{it.Id}"" class=""{it.ParantID}"" {selected}>{it.Name}</option>"; } if (!string.IsNullOrEmpty(prop.ChainedTo)) { _uv.Scripts += $@"$(""#{prop.Name}"").chained(""#{prop.ChainedTo}"");"; } _uv.Html += "</select></div>"; }
public void PropEdit(UiParameter <T> prop, ref object val, bool IsFilter = false) { var required = (prop.Required && !IsFilter) ? "required" : ""; var requiredStar = (required == "required") ? @" <span class=""text-danger"">*</span>" : ""; var disabled = (prop.UiType == "readOnly") ? @"disabled = ""true""" : ""; var isMuliple = (prop.UiType == "MultipleSelect" || prop.UiType == "MultipleFile" || prop.UiType == "LookupMulipleSelect"); var multiple = (isMuliple) ? @"multiple=""multiple""" : ""; var type = prop.UiType; var label = prop.Label; var width = (IsFilter) ? 3 : prop.Width; var name = prop.Name; switch (type) { case "readOnly": case "number": case "email": case "password": _uv.Html += $@"<div class=""form-group col-md-{width}""> <label class=""col-form-label"">{label}{requiredStar}</label> <input type=""{type}"" class=""form-control"" {disabled} {required} name=""{name}"" value=""{val}"" maxlength=""100""/></div>"; break; case "file": case "MultipleFile": var maxfiles = (isMuliple) ? 5 : 1; _uv.Html += $@"<div class=""form-group col-md-{width}""> <label class=""col-form-label"">{label}{requiredStar}</label> <input hidden value=""{val}"" name=""{name}"" id=""{name}"" {required}/> <div class=""UppyInput-{name}""></div><div class=""UppyInput-Progress-{name}""></div></div>"; _uv.Scripts += $@"UppySetup(""{name}"", {maxfiles});"; break; case "Hidden": _uv.Html += $@"<input hidden value=""{val}"" name=""{name}""/>"; break; case "Button": case "Submit": _uv.Html += $@"<div class=""form-group col-md-{width}""> <button type=""{type}"" class=""btn btn-default"" onclick=""location.href='{val}';"" />{label}</div>"; break; case "DropDownList": case "MultipleSelect": case "LookupSelect": case "LookupMulipleSelect": case "LookupParantSelect": _uv.Html += $@"<div class=""form-group col-md-{width} sel2""> <label class=""col-form-label"">{label}{requiredStar}</label> <select name=""{name}"" {required} {multiple} class=""select2 form-control custom-select"" id=""{name}"" style=""height: 36px;width: 100%;"">"; GetSelectOptions(prop, ref val, IsFilter, isMuliple); break; case "Date": case "HijriDate": var hijriMode = (prop.UiType == "HijriDate") ? "true" : "false"; var datestring = GetPropValue(prop, val); _uv.Html += $@"<div class=""form-group col-md-{prop.Width}""> <label class=""col-form-label"">{prop.Label}{requiredStar}</label> <input type=""hidden"" value=""{val}"" name=""{name}"" id=""{name}"" {required}/> <input type=""text"" onclick=""pickDate(event,'{name}',{hijriMode})"" class=""w3-input form-control"" name=""{name}-display"" id=""{name}-display"" value=""{datestring}"" maxlength=""100""/></div>"; break; case "CommentBox": break; case "RepeaterInput": _uv.Html += $@"<div class=""input-repeater form-group col-md-12""><div data-repeater-list=""{name}""> <div data-repeater-item class=""row m-b-15""> <div class=""form-group col-md-6""> <input type=""text"" required="""" class=""form-control"" name=""Value"" value="""" maxlength=""150""> </div> <div class=""col-md-2""> <button data-repeater-delete="""" class=""btn btn-danger waves-effect waves-light"" type=""button""> <i class=""ti-close""></i> </button> </div> </div> </div> <button type=""button"" data-repeater-create="""" class=""btn btn-info waves-effect waves-light""> أضف المزيد </button> </div>"; break; default: _uv.Html += $@"<div class=""form-group col-md-{width}""> <label class=""col-form-label"">{label}{requiredStar}</label> <input type=""text"" {required} class=""form-control"" name=""{name}"" value=""{val}"" maxlength =""150""/></div>"; break; } }