public static Message Unauthorized(params string[] data) { return(Get(Displays.Unauthorized(data), "alert-error")); }
public async Task SeedData() { var displaySizeTypeOne = new Size() { Width = 1920, Height = 1080 }; var displaySizeTypeTwo = new Size() { Width = 1080, Height = 1920 }; //Displays of type one var display = new Display { DisplaySize = displaySizeTypeOne, Prices = new List <DisplayTypePrice>() }; display.Prices.Add(new DisplayTypePrice() { Price = 1, Type = TypePrice.Cheap }); display.Prices.Add(new DisplayTypePrice() { Price = 2, Type = TypePrice.Normal }); var display2 = new Display { DisplaySize = displaySizeTypeOne, Prices = new List <DisplayTypePrice>(), }; display2.Prices.Add(new DisplayTypePrice() { Price = 2, Type = TypePrice.Cheap }); display2.Prices.Add(new DisplayTypePrice() { Price = 4, Type = TypePrice.Normal }); var display3 = new Display { DisplaySize = displaySizeTypeOne, Prices = new List <DisplayTypePrice>() }; display3.Prices.Add(new DisplayTypePrice() { Price = 4, Type = TypePrice.Cheap }); display3.Prices.Add(new DisplayTypePrice() { Price = 8, Type = TypePrice.Normal }); //Displays of type two var display4 = new Display { DisplaySize = displaySizeTypeTwo, Prices = new List <DisplayTypePrice>() }; display4.Prices.Add(new DisplayTypePrice() { Price = 8, Type = TypePrice.Cheap }); display4.Prices.Add(new DisplayTypePrice() { Price = 10, Type = TypePrice.Normal }); var display5 = new Display { DisplaySize = displaySizeTypeTwo, Prices = new List <DisplayTypePrice>() }; display5.Prices.Add(new DisplayTypePrice() { Price = 10, Type = TypePrice.Cheap }); display5.Prices.Add(new DisplayTypePrice() { Price = 12, Type = TypePrice.Normal }); Displays.Add(display); Displays.Add(display2); Displays.Add(display3); Displays.Add(display4); Displays.Add(display5); await SaveChangesAsync(); }
public static HtmlBuilder Gantt( this HtmlBuilder hb, Context context, SiteSettings ss, Column groupBy, Column sortBy, int period, DateTime startDate, GanttRange range, EnumerableRowCollection <DataRow> dataRows, bool inRange = true) { return(hb.Div(css: "both", action: () => hb .FieldDropDown( context: context, controlId: "GanttGroupBy", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.GroupBy(), optionCollection: ss.GanttGroupByOptions(), selectedValue: groupBy?.ColumnName, insertBlank: true, method: "post") .FieldDropDown( context: context, controlId: "GanttSortBy", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.SortBy(), optionCollection: ss.GanttSortByOptions(context: context), selectedValue: sortBy?.ColumnName, insertBlank: true, method: "post") .Div(css: "field-auto-thin", action: () => hb .FieldTextBox( textType: HtmlTypes.TextTypes.DateTime, fieldCss: "field-auto-thin", controlId: "GanttStartDate", controlCss: " w100 auto-postback", labelText: Displays.StartDate(), text: startDate.ToLocal().InRange() ? startDate.ToLocal().ToString( "d", Sessions.CultureInfo()) : string.Empty, format: Displays.YmdDatePickerFormat(), method: "post") .Button( controlId: "GanttPreviousButton", text: Displays.Previous(), controlCss: "button-icon", accessKey: "b", onClick: "$p.moveGantt('Previous');", icon: "ui-icon-seek-prev") .Button( controlId: "GanttNextButton", text: Displays.Next(), controlCss: "button-icon", accessKey: "n", onClick: "$p.moveGantt('Next');", icon: "ui-icon-seek-next") .Button( controlId: "GanttFirstDayButton", text: Displays.FirstDay(), controlCss: "button-icon", onClick: "$p.moveGantt('FirstDay');", icon: "ui-icon-calendar") .Button( controlId: "GanttTodayButton", text: Displays.Today(), controlCss: "button-icon", onClick: "$p.moveGantt('Today');", icon: "ui-icon-calendar")) .FieldSlider( controlId: "GanttPeriod", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.Period(), min: Parameters.General.GanttPeriodMin, max: range.Period, step: 1, value: period, method: "post") .Div(id: "GanttBody", action: () => hb .GanttBody( context: context, ss: ss, groupBy: groupBy, sortBy: sortBy, period: period, startDate: startDate, range: range, dataRows: dataRows, inRange: inRange)))); }
public static Dictionary <string, ControlData> DateFilterOptions(this Column column) { var hash = new Dictionary <string, ControlData>(); var now = DateTime.Now.ToLocal(); var min = Min(column, now); var max = Max(column, now); var diff = 0; switch (column.ColumnName) { case "CompletionTime": diff = 1; break; } if (!column.Required) { hash.Add("\t", new ControlData(Displays.NotSet())); } if (column.DateFilterFy == true) { for (var m = min; m <= max; m += 12) { SetFy( hash, now, now.AddMonths(m), column.RecordedTime, diff); } } if (column.DateFilterHalf == true) { for (var m = min; m <= max; m += 6) { SetHalf( hash, now, now.AddMonths(m), column.RecordedTime, diff); } } if (column.DateFilterQuarter == true) { for (var m = min; m <= max; m += 3) { SetQuarter( hash, now, now.AddMonths(m), column.RecordedTime, diff); } } if (column.DateFilterMonth == true) { for (var m = min; m <= max; m++) { SetMonth( hash, now, now.AddMonths(m), column.RecordedTime, diff); } } return(hash); }
public static HtmlBuilder Tr( this HtmlBuilder hb, Context context, SiteSettings ss, List <Column> columns, DataRow dataRow, bool editRow, bool checkRow, string idColumn, RecordSelector recordSelector = null, FormDataSet formDataSet = null) { var dataId = dataRow.Long(idColumn); var dataVersion = dataRow.Int("Ver"); var isHistory = dataRow.Bool("IsHistory"); ServerScriptModelRow serverScriptRowValues = null; var depts = new Dictionary <string, DeptModel>(); var groups = new Dictionary <string, GroupModel>(); var registrations = new Dictionary <string, RegistrationModel>(); var users = new Dictionary <string, UserModel>(); var sites = new Dictionary <string, SiteModel>(); var issues = new Dictionary <string, IssueModel>(); var results = new Dictionary <string, ResultModel>(); switch (ss.ReferenceType) { case "Issues": var issueModel = new IssueModel( context: context, ss: ss, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("IssueId"))?.Data : null); ss.ClearColumnAccessControlCaches(baseModel: issueModel); serverScriptRowValues = issueModel?.SetByBeforeOpeningRowServerScript( context: context, ss: ss); issues.Add("Issues", issueModel); break; case "Results": var resultModel = new ResultModel( context: context, ss: ss, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("ResultId"))?.Data : null); ss.ClearColumnAccessControlCaches(baseModel: resultModel); serverScriptRowValues = resultModel?.SetByBeforeOpeningRowServerScript( context: context, ss: ss); results.Add("Results", resultModel); break; } ; var extendedRowCss = serverScriptRowValues?.ExtendedRowCss; extendedRowCss = extendedRowCss.IsNullOrEmpty() ? string.Empty : " " + extendedRowCss; return(hb.Tr( attributes: new HtmlAttributes() .Class("grid-row" + extendedRowCss) .DataId(dataId.ToString()) .DataVer(dataVersion) .DataLatest(1, _using: !isHistory) .Add(name: "data-history", value: "1", _using: isHistory) .Add(name: "data-locked", value: "1", _using: dataRow.Bool("Locked")), action: () => { if (editRow) { hb.Td(action: () => hb .Button( title: Displays.Reload(context: context), controlCss: "button-icon", onClick: $"$p.getData($(this)).Id={dataId};$p.send($(this));", icon: "ui-icon-refresh", action: "ReloadRow", method: "post", _using: !isHistory) .Button( title: Displays.Copy(context: context), controlCss: "button-icon", onClick: $"$p.getData($(this)).OriginalId={dataId};$p.send($(this));", icon: "ui-icon-copy", action: "CopyRow", method: "post", _using: !isHistory && context.CanCreate(ss: ss)) .Hidden( controlId: $"{ss.ReferenceType}_Timestamp_{ss.SiteId}_{dataId}", css: "timestamp", value: dataRow .Field <DateTime>("UpdatedTime") .ToString("yyyy/M/d H:m:s.fff"))); } else if (checkRow) { hb.Td(action: () => hb .CheckBox( controlCss: "grid-check", _checked: recordSelector.Checked(dataId), dataId: dataId.ToString(), _using: !isHistory)); } columns.ForEach(column => { var key = column.TableName(); switch (column.SiteSettings?.ReferenceType) { case "Depts": var deptModel = depts.Get(key); if (deptModel == null) { deptModel = new DeptModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); depts.Add(key, deptModel); ss.ClearColumnAccessControlCaches(baseModel: deptModel); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, deptModel: deptModel); break; case "Groups": var groupModel = groups.Get(key); if (groupModel == null) { groupModel = new GroupModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); groups.Add(key, groupModel); ss.ClearColumnAccessControlCaches(baseModel: groupModel); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, groupModel: groupModel); break; case "Registrations": var registrationModel = registrations.Get(key); if (registrationModel == null) { registrationModel = new RegistrationModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); registrations.Add(key, registrationModel); ss.ClearColumnAccessControlCaches(baseModel: registrationModel); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, registrationModel: registrationModel); break; case "Users": var userModel = users.Get(key); if (userModel == null) { userModel = new UserModel( context: context, ss: column.SiteSettings, dataRow: dataRow, tableAlias: column.TableAlias); users.Add(key, userModel); ss.ClearColumnAccessControlCaches(baseModel: userModel); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, userModel: userModel); break; case "Sites": var siteModel = sites.Get(key); if (siteModel == null) { siteModel = new SiteModel( context: context, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("SiteId"))?.Data : null, tableAlias: column.TableAlias); sites.Add(key, siteModel); ss.ClearColumnAccessControlCaches(baseModel: siteModel); } hb.TdValue( context: context, ss: column.SiteSettings, column: column, siteModel: siteModel); break; case "Issues": var issueModel = issues.Get(key); if (issueModel == null) { issueModel = new IssueModel( context: context, ss: column.SiteSettings, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("IssueId"))?.Data : null, tableAlias: column.TableAlias); issues.Add(key, issueModel); ss.ClearColumnAccessControlCaches(baseModel: issueModel); } if (!issueModel.Locked && !issueModel.ReadOnly && !isHistory && EditColumn( context: context, ss: ss, column: column, mine: issueModel.Mine(context: context)) && column.CanEdit( context: context, ss: ss, baseModel: issueModel)) { hb.Td( css: column.TextAlign == SiteSettings.TextAlignTypes.Right ? " right-align" : string.Empty, action: () => hb.Field( context: context, column: column, issueModel: issueModel, ss: column.SiteSettings, controlOnly: true, idSuffix: issueModel.IdSuffix())); } else { hb.TdValue( context: context, ss: column.SiteSettings, column: column, issueModel: issueModel, serverScriptValues: serverScriptRowValues ?.Columns ?.Get(column?.ColumnName)); } break; case "Results": var resultModel = results.Get(key); if (resultModel == null) { resultModel = new ResultModel( context: context, ss: column.SiteSettings, dataRow: dataRow, formData: editRow ? formDataSet?.FirstOrDefault(o => o.Id == dataRow.Long("ResultId"))?.Data : null, tableAlias: column.TableAlias); results.Add(key, resultModel); ss.ClearColumnAccessControlCaches(baseModel: resultModel); } if (!resultModel.Locked && !resultModel.ReadOnly && !isHistory && EditColumn( context: context, ss: ss, column: column, mine: resultModel.Mine(context: context)) && column.CanEdit( context: context, ss: ss, baseModel: resultModel)) { hb.Td( css: column.TextAlign == SiteSettings.TextAlignTypes.Right ? " right-align" : string.Empty, action: () => hb.Field( context: context, column: column, resultModel: resultModel, ss: column.SiteSettings, controlOnly: true, idSuffix: resultModel.IdSuffix())); } else { hb.TdValue( context: context, ss: column.SiteSettings, column: column, resultModel: resultModel, serverScriptValues: serverScriptRowValues ?.Columns ?.Get(column?.ColumnName)); } break; } }); })); }
public static ApiResponse Error(Error.Types type, params string[] data) { return(new ApiResponse(500, data?.Any() == true ? Displays.Get(type.ToString()).Params(data) : Displays.Get(type.ToString()))); }
public static ApiResponse Unauthorized() { return(new ApiResponse(401, Displays.Unauthorized())); }
public static Message BulkMoved(params string[] data) { return(Get(Displays.BulkMoved(data), "alert-success")); }
public static Message CanNotInherit(params string[] data) { return(Get(Displays.CanNotInherit(data), "alert-error")); }
public static Message BadMailAddress(params string[] data) { return(Get(Displays.BadMailAddress(data), "alert-error")); }
public static Message BadRequest(params string[] data) { return(Get(Displays.BadRequest(data), "alert-error")); }
public static Message Authentication(params string[] data) { return(Get(Displays.Authentication(data), "alert-error")); }
public static Message UsersLimit(params string[] data) { return(Get(Displays.UsersLimit(data), "alert-error")); }
public static Message UpdateConflicts(params string[] data) { return(Get(Displays.UpdateConflicts(data), "alert-error")); }
public static HtmlBuilder Crosstab( this HtmlBuilder hb, Context context, SiteSettings ss, View view, Column groupByX, Column groupByY, List <Column> columns, string aggregateType, Column value, string timePeriod, DateTime month, EnumerableRowCollection <DataRow> dataRows, bool inRange = true) { return(hb.Div(id: "Crosstab", css: "both", action: () => { hb .FieldDropDown( context: context, controlId: "CrosstabGroupByX", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.GroupByX(context: context), optionCollection: ss.CrosstabGroupByXOptions(context: context), selectedValue: view.CrosstabGroupByX, method: "post") .FieldDropDown( context: context, controlId: "CrosstabGroupByY", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.GroupByY(context: context), optionCollection: ss.CrosstabGroupByYOptions(context: context), selectedValue: view.CrosstabGroupByY, method: "post") .FieldDropDown( context: context, fieldId: "CrosstabColumnsField", controlId: "CrosstabColumns", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.NumericColumn(context: context), optionCollection: ss.CrosstabColumnsOptions(), selectedValue: view.CrosstabColumns, multiple: true, method: "post") .FieldDropDown( context: context, controlId: "CrosstabAggregateType", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.AggregationType(context: context), optionCollection: ss.CrosstabAggregationTypeOptions(context: context), selectedValue: aggregateType, method: "post") .FieldDropDown( context: context, fieldId: "CrosstabValueField", controlId: "CrosstabValue", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.AggregationTarget(context: context), optionCollection: ss.CrosstabColumnsOptions(), selectedValue: view.CrosstabValue, addSelectedValue: false, method: "post") .FieldDropDown( context: context, fieldId: "CrosstabTimePeriodField", controlId: "CrosstabTimePeriod", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.Period(context: context), optionCollection: ss.CrosstabTimePeriodOptions(context: context), selectedValue: view.CrosstabTimePeriod, method: "post") .DropDown( context: context, controlId: "CrosstabMonth", controlCss: " w100 auto-postback", optionCollection: CrosstabMonth(context: context), selectedValue: new DateTime(month.Year, month.Month, 1).ToString(), action: "Crosstab", method: "post") .Button( controlId: "CrosstabPreviousButton", text: Displays.Previous(context: context), controlCss: "button-icon", accessKey: "b", onClick: "$p.moveCrosstab('Previous');", icon: "ui-icon-seek-prev") .Button( controlId: "CrosstabNextButton", text: Displays.Next(context: context), controlCss: "button-icon", accessKey: "n", onClick: "$p.moveCrosstab('Next');", icon: "ui-icon-seek-next") .Button( controlId: "CrosstabThisMonthButton", text: Displays.ThisMonth(context: context), controlCss: "button-icon", accessKey: "n", onClick: "$p.moveCrosstab('ThisMonth');", icon: "ui-icon-Crosstab") .Div(id: "CrosstabBody", action: () => { if (inRange) { hb.CrosstabBody( context: context, ss: ss, view: view, groupByX: groupByX, groupByY: groupByY, columns: columns, aggregateType: aggregateType, value: value, timePeriod: timePeriod, month: month, dataRows: dataRows); } }); })); }
public static Message CanNotPerformed(params string[] data) { return(Get(Displays.CanNotPerformed(data), "alert-error")); }
public static HtmlBuilder Kamban( this HtmlBuilder hb, SiteSettings ss, View view, string groupByX, string groupByY, string aggregateType, string value, int?columns, bool aggregationView, IEnumerable <KambanElement> data, bool inRange) { return(hb.Div(id: "Kamban", css: "both", action: () => { hb .FieldDropDown( controlId: "KambanGroupByX", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.GroupByX(), optionCollection: ss.KambanGroupByOptions(), selectedValue: groupByX, method: "post") .FieldDropDown( controlId: "KambanGroupByY", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.GroupByY(), optionCollection: ss.KambanGroupByOptions(), selectedValue: groupByY, insertBlank: true, method: "post") .FieldDropDown( controlId: "KambanAggregateType", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.AggregationType(), optionCollection: ss.KambanAggregationTypeOptions(), selectedValue: aggregateType, method: "post") .FieldDropDown( fieldId: "KambanValueField", controlId: "KambanValue", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.AggregationTarget(), optionCollection: ss.KambanValueOptions(), selectedValue: value, method: "post") .FieldDropDown( controlId: "KambanColumns", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.MaxColumns(), optionCollection: Enumerable.Range( Parameters.General.KambanMinColumns, Parameters.General.KambanMaxColumns) .ToDictionary(o => o.ToString(), o => o.ToString()), selectedValue: columns?.ToString(), method: "post") .FieldCheckBox( controlId: "KambanAggregationView", fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.AggregationView(), _checked: aggregationView, method: "post") .KambanBody( ss: ss, view: view, groupByX: ss.GetColumn(groupByX), groupByY: ss.GetColumn(groupByY), aggregateType: aggregateType, value: ss.GetColumn(value), columns: columns, aggregationView: aggregationView, data: data, inRange: inRange); })); }
public static HtmlBuilder Breadcrumb( this HtmlBuilder hb, Context context, SiteSettings ss, View view, bool _using) { if ((!context.Authenticated && !context.Publish) || !_using) { return(hb); } switch (context.Controller) { case "admins": return(Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller)); case "depts": return(Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Depts(context: context))); case "tenants": return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Tenants(context: context), action: "Edit") : (context.UserSettings?.EnableManageTenant == true) ? BreadcrumbWithoutAdmins( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Tenants(context: context), action: "Edit") : Breadcrumb( hb: hb, context: context, ss: ss)); case "groups": return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Groups(context: context)) : Breadcrumb( hb: hb, context: context, ss: ss)); case "users": switch (context.Action) { case "editapi": return(hb.Breadcrumb( context: context, ss: ss, data: new Dictionary <string, string> { { Locations.Get( context: context, parts: new string[] { "Users", "EditApi" }), Displays.ApiSettings(context: context) } })); default: return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Users(context: context)) : Breadcrumb( hb: hb, context: context, ss: ss)); } case "registrations": return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Registrations(context: context)) : Breadcrumb( hb: hb, context: context, ss: ss)); case "publishes": case "items": return(hb .CopyDirectUrlToClipboard( context: context, view: view) .Breadcrumb( context: context, ss: ss)); case "permissions": return(hb.Breadcrumb(context: context, ss: ss)); default: return(hb); } }
public static ApiResponse BadRequest() { return(new ApiResponse(400, Displays.BadRequest())); }
public static string AdminsIndex(this HtmlBuilder hb, Context context) { if (!Permissions.CanManageTenant(context: context)) { return(HtmlTemplates.Error( context: context, errorType: Error.Types.HasNotPermission)); } var ss = new SiteSettings(); return(hb.Template( context: context, ss: ss, view: null, methodType: Pleasanter.Models.BaseModel.MethodTypes.NotSet, title: Displays.Admin(context: context), verType: Versions.VerTypes.Latest, useNavigationMenu: false, action: () => hb .Nav(css: "cf", action: () => hb .Ul(css: "nav-sites", action: () => hb .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Edit( context: context, controller: "Tenants")), action: () => hb .Div(action: () => hb .Text(Displays.Tenants(context: context))) .StackStyles()), _using: Permissions.CanManageTenant(context)) .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Index( context: context, controller: "Depts")), action: () => hb .Div(action: () => hb .Text(Displays.Depts(context: context))) .StackStyles())) .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Index( context: context, controller: "Groups")), action: () => hb .Div(action: () => hb .Text(Displays.Groups(context: context))) .StackStyles())) .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Index( context: context, controller: "Users")), action: () => hb .Div(action: () => hb .Text(Displays.Users(context: context))) .StackStyles())) )) .MainCommands( context: context, ss: ss, siteId: 0, verType: Versions.VerTypes.Latest)) .ToString()); }
public static ApiResponse NotFound() { return(new ApiResponse(404, Displays.NotFound())); }
public static HtmlBuilder DropDownSearchDialog( this HtmlBuilder hb, Context context, long id) { return(hb.Div( attributes: new HtmlAttributes() .Id("DropDownSearchDialog") .Class("dialog"), action: () => hb .Form( attributes: new HtmlAttributes() .Id("DropDownSearchDialogForm") .Action(Locations.ItemAction( context: context, id: id)), action: () => hb .FieldSelectable( controlId: "DropDownSearchResults", fieldCss: "field-vertical w600", controlContainerCss: "container-selectable", controlWrapperCss: " h300", commandOptionPositionIsTop: true, commandOptionAction: () => hb .Div(css: "command-left", action: () => hb .TextBox( controlId: "DropDownSearchText", controlCss: " auto-postback always-send w200", action: "SearchDropDown", method: "post") .Button( text: Displays.Search(context: context), controlCss: "button-icon", onClick: "$p.send($('#DropDownSearchText'));", icon: "ui-icon-search"))) .Hidden( controlId: "DropDownSearchTarget", css: "always-send") .Hidden( controlId: "DropDownSearchOnEditor", css: "always-send") .Hidden( controlId: "DropDownSearchMultiple", css: "always-send") .Hidden( controlId: "DropDownSearchResultsOffset", value: "0", css: "always-send") .Hidden( controlId: "DropDownSearchParentClass", value: "", css: "always-send") .Hidden( controlId: "DropDownSearchParentDataId", value: "0", css: "always-send") .P(css: "message-dialog") .Div(css: "command-center", action: () => hb .Button( text: Displays.Select(context: context), controlCss: "button-icon", onClick: "$p.send($(this));", icon: "ui-icon-disk", action: "SelectSearchDropDown", method: "post") .Button( text: Displays.Cancel(context: context), controlCss: "button-icon", onClick: "$p.closeDialog($(this));", icon: "ui-icon-cancel"))))); }
public static HtmlBuilder GridHeader( this HtmlBuilder hb, Context context, SiteSettings ss, IEnumerable <Column> columns, View view = null, bool sort = true, bool editRow = false, bool checkRow = true, bool checkAll = false, string action = "GridRows") { return(hb.Tr( css: "ui-widget-header", action: () => { if (editRow) { hb.Th( action: () => { if (editRow && context.CanCreate(ss: ss)) { hb.Button( title: Displays.New(context: context), controlCss: "button-icon", onClick: "$p.newOnGrid($(this));", icon: "ui-icon-plus", action: "NewOnGrid", method: "post"); } }); } else if (checkRow) { hb.Th(action: () => hb .CheckBox( controlId: "GridCheckAll", _checked: checkAll)); } columns.ForEach(column => { if (sort) { hb.Th( css: column.CellCss(css: "sortable"), attributes: new HtmlAttributes() .DataName(column.ColumnName), action: () => hb .Div( attributes: new HtmlAttributes() .DataId("ViewSorters__" + column.ColumnName) .Add("data-order-type", OrderBy( view, column.ColumnName)) .DataAction(action) .DataMethod("post"), action: () => hb .Span(action: () => hb .Text(text: Displays.Get( context: context, id: column.GridLabelText))) .SortIcon( view: view, key: column.ColumnName))); } else { hb.Th( css: column.CellCss(), action: () => hb .Text(text: Displays.Get( context: context, id: column.GridLabelText))); } }); })); }
private static HtmlBuilder Columns( this HtmlBuilder hb, Context context, SiteSettings ss, View view) { ss.GetFilterColumns(context: context, checkPermission: true).ForEach(column => { switch (column.TypeName.CsTypeSummary()) { case Types.CsBool: hb.CheckBox( context: context, ss: ss, column: column, view: view); break; case Types.CsNumeric: hb.DropDown( context: context, ss: ss, column: column, view: view, optionCollection: column.HasChoices() ? column.EditChoices(addNotSet: true) : column.NumFilterOptions()); break; case Types.CsDateTime: hb.DropDown( context: context, ss: ss, column: column, view: view, optionCollection: column.DateFilterOptions()); break; case Types.CsString: if (column.HasChoices()) { var currentSs = column.SiteSettings; if (view.ColumnFilterHash?.ContainsKey(column.ColumnName) == true && column.UseSearch == true && currentSs.Links?.Any(o => o.ColumnName == column.ColumnName) == true) { currentSs.SetChoiceHash( context: context, columnName: column?.ColumnName, selectedValues: view.ColumnFilter(column.ColumnName) .Deserialize <List <string> >()); } hb.DropDown( context: context, ss: ss, column: column, view: view, optionCollection: column.EditChoices(addNotSet: true)); } else if (Visible(column)) { hb.FieldTextBox( controlId: "ViewFilters__" + column.ColumnName, fieldCss: "field-auto-thin", controlCss: " auto-postback", labelText: Displays.Get(column.GridLabelText), labelTitle: ss.LabelTitle(column), text: view.ColumnFilter(column.ColumnName), method: "post"); } break; default: break; } }); return(hb); }
private void Notice(Context context, SiteSettings ss, string type) { var url = Locations.ItemEditAbsoluteUri(WikiId); ss.Notifications.Where(o => o.Enabled).ForEach(notification => { if (notification.HasRelatedUsers()) { var users = new List <long>(); Rds.ExecuteTable( context: context, statements: Rds.SelectWikis( tableType: Sqls.TableTypes.All, distinct: true, column: Rds.WikisColumn() .Creator() .Updator(), where : Rds.WikisWhere().WikiId(WikiId))) .AsEnumerable() .ForEach(dataRow => { users.Add(dataRow.Long("Creator")); users.Add(dataRow.Long("Updator")); }); notification.ReplaceRelatedUsers( context: context, users: users); } switch (type) { case "Created": notification.Send( context: context, ss: ss, title: Displays.Created(Title.DisplayValue).ToString(), url: url, body: NoticeBody( context: context, ss: ss, notification: notification)); break; case "Updated": var body = NoticeBody( context: context, ss: ss, notification: notification, update: true); if (body.Length > 0) { notification.Send( context: context, ss: ss, title: Displays.Updated(Title.DisplayValue).ToString(), url: url, body: body); } break; case "Deleted": notification.Send( context: context, ss: ss, title: Displays.Deleted(Title.DisplayValue).ToString(), url: url, body: NoticeBody( context: context, ss: ss, notification: notification)); break; } }); }
public static HtmlBuilder Attachments( this HtmlBuilder hb, Context context, string controlId = null, string columnName = null, string controlCss = null, string value = null, string placeholder = null, bool readOnly = false, bool allowBulkUpdate = false, bool validateRequired = false, Dictionary <string, string> attributes = null, bool preview = false, bool _using = true) { if (preview) { controlId = Strings.NewGuid(); } var attachments = value.Deserialize <Attachments>(); return(_using ? hb .Hidden( controlId: controlId, css: "control-attachments", value: value) .Div( id: columnName + ".upload", css: "control-attachments-upload", attributes: new HtmlAttributes() .DataName(columnName) .DataAction("binaries/multiupload"), action: () => hb .Text(text: Displays.FileDragDrop(context: context)) .Input( id: columnName + ".input", attributes: new HtmlAttributes() .Class("hidden") .Type("file") .Multiple(true)), _using: !readOnly && !preview) .Div( id: columnName + ".items", css: "control-attachments-items", action: () => attachments? .ForEach(item => hb .AttachmentItem( context: context, controlId: controlId, guid: item.Guid, css: item.Added == true ? string.Empty : item.Deleted == true ? "already-attachments preparation-delete " : "already-attachments ", fileName: item.Name, displaySize: item.DisplaySize(), added: item.Added, deleted: item.Deleted, readOnly: readOnly))) .Div( id: columnName + ".status", attributes: new HtmlAttributes() .Style("display: none; "), action: () => hb .Div( id: columnName + ".progress", css: "progress-bar", action: () => hb .Div()) .Div( id: columnName + ".abort", css: "abort", action: () => hb .Text(text: Displays.Cancel(context: context))), _using: !readOnly) : hb); }
private static HtmlBuilder NavigationMenu( this HtmlBuilder hb, SiteSettings ss, long siteId, string referenceType, bool useNavigationMenu) { var canManageGroups = Sessions.UserSettings().DisableGroupAdmin != true; var canManageSite = siteId != 0 && ss.CanManageSite(site: true); var canManageDepts = Permissions.CanManageTenant(); var canManageUsers = Permissions.CanManageTenant(); return(hb.Ul( id: "NavigationMenu", action: () => hb .Li( action: () => hb .Div(action: () => hb .A( href: NewHref(ss), attributes: SiteIndex(ss) ? new HtmlAttributes() .OnClick("$p.templates($(this));") .DataAction("Templates") .DataMethod("post") : null, action: () => hb .Span(css: "ui-icon ui-icon-plus") .Text(text: Displays.New()))), _using: ss.ReferenceType == "Sites" && Routes.Action() == "index" ? ss.CanManageSite() : ss.CanCreate() && ss.ReferenceType != "Wikis") .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("ViewModeMenu"), action: () => hb .Span(css: "ui-icon ui-icon-triangle-1-e") .Text(text: Displays.View())) .ViewModeMenu(ss: ss), _using: Def.ViewModeDefinitionCollection .Any(o => o.ReferenceType == referenceType)) .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("SettingsMenu"), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.Manage())) .SettingsMenu( ss: ss, siteId: siteId, canManageSite: canManageSite, canManageDepts: canManageDepts, canManageGroups: canManageGroups, canManageUsers: canManageUsers), _using: canManageSite || canManageDepts || canManageGroups || canManageUsers) .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("AccountMenu"), action: () => hb .Span(css: "ui-icon ui-icon-person") .Text(text: SiteInfo.UserName(( Sessions.UserId())))) .AccountMenu()))); }
private static HtmlBuilder LinkTable( this HtmlBuilder hb, Context context, SiteSettings ss, View view, EnumerableRowCollection <DataRow> dataRows, string direction, string dataTableName) { ss.SetChoiceHash(dataRows: dataRows); return(hb.Table( id: dataTableName, css: "grid", attributes: new HtmlAttributes() .DataId(ss.SiteId.ToString()) .DataName(direction) .DataValue("back") .DataAction("LinkTable") .DataMethod("post"), action: () => { var siteMenu = SiteInfo.TenantCaches.Get(context.TenantId)?.SiteMenu; if (dataRows != null && dataRows.Any()) { ss.SetColumnAccessControls(context: context); var columns = ss.GetLinkTableColumns( context: context, view: view, checkPermission: true); switch (ss.ReferenceType) { case "Issues": var issueCollection = new IssueCollection( context: context, ss: ss, dataRows: dataRows); issueCollection.SetLinks(context: context, ss: ss); hb .Caption(caption: "{0} : {1} - {2} {3}".Params( Caption( context: context, direction: direction), siteMenu.Breadcrumb(context: context, siteId: ss.SiteId) .Select(o => o.Title) .Join(" > "), Displays.Quantity(context: context), dataRows.Count())) .THead(action: () => hb .GridHeader( context: context, ss: ss, columns: columns, view: view, sort: true, checkRow: false, action: "LinkTable")) .TBody(action: () => issueCollection .ForEach(issueModel => { ss.SetColumnAccessControls( context: context, mine: issueModel.Mine(context: context)); hb.Tr( attributes: new HtmlAttributes() .Class("grid-row") .DataId(issueModel.IssueId.ToString()), action: () => columns .ForEach(column => hb .TdValue( context: context, ss: ss, column: column, issueModel: issueModel))); })); break; case "Results": var resultCollection = new ResultCollection( context: context, ss: ss, dataRows: dataRows); resultCollection.SetLinks(context: context, ss: ss); hb .Caption(caption: "{0} : {1} - {2} {3}".Params( Caption( context: context, direction: direction), siteMenu.Breadcrumb(context: context, siteId: ss.SiteId) .Select(o => o.Title) .Join(" > "), Displays.Quantity(context: context), dataRows.Count())) .THead(action: () => hb .GridHeader( context: context, ss: ss, columns: columns, view: view, sort: true, checkRow: false, action: "LinkTable")) .TBody(action: () => resultCollection .ForEach(resultModel => { ss.SetColumnAccessControls( context: context, mine: resultModel.Mine(context: context)); hb.Tr( attributes: new HtmlAttributes() .Class("grid-row") .DataId(resultModel.ResultId.ToString()), action: () => columns .ForEach(column => hb .TdValue( context: context, ss: ss, column: column, resultModel: resultModel))); })); break; } } })); }
public static ApiResponse BadRequest(IContext context) { return(new ApiResponse(400, Displays.BadRequest(context: context))); }
public static Message TooManyRowCases(params string[] data) { return(Get(Displays.TooManyRowCases(data), "alert-error")); }