using DevExpress.Data; using DevExpress.Utils; using DevExpress.Web; using DevExpress.Web.ASPxThemes; using DevExpress.Web.Mvc; using GreenTree.Nachtragsmanagement.Core.Authentication; using GreenTree.Nachtragsmanagement.Web.Models.Appendix; using System; using System.Collections.Generic; using System.Web.UI; using System.Web.UI.WebControls; namespace GreenTree.Nachtragsmanagement.Web.Extensions { public static class GridViewSettingsHelper { /// /// Current user context /// public static UserContext _userContext = Core.CommonHelper.UserContext(); /// /// Creates GridViewSettings for the site gridView /// /// Current HtmlHelper context. public static GridViewSettings SiteGridViewSettings(this System.Web.Mvc.HtmlHelper html) { var s = new GridViewSettings(); s.Name = "devGridViewSite"; s.KeyFieldName = "Id"; s.CallbackRouteValues = new { Controller = "Site", Action = "PartialSites" }; s.Width = Unit.Percentage(99); s.Settings.ShowHeaderFilterButton = true; s.Settings.ShowFilterRow = true; s.Settings.ShowFilterRowMenu = false; s.Settings.ShowFooter = true; s.Settings.ShowGroupPanel = true; s.Settings.AutoFilterCondition = AutoFilterCondition.Contains; s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto; s.Settings.VerticalScrollableHeight = (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1) ? 400 : (int)html.ViewData["ScrollHeight"]; s.SettingsExport.Landscape = true; s.SettingsExport.FileName = "Baustellenliste"; s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel); s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel); s.SettingsBehavior.EnableCustomizationWindow = true; s.SettingsBehavior.AllowHeaderFilter = true; s.SettingsPager.AlwaysShowPager = true; s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn; s.SettingsCookies.Enabled = true; s.SettingsCookies.CookiesID = "siteGridStateCookie"; s.Toolbars.Add(t => { var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh); refreshItem.Text = "Aktualisieren"; var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand); expandItem.Text = "Alle aufklappen"; var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse); collapseItem.Text = "Alle einklappen"; var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter); filterItem.Text = "Filter entfernen"; t.Items.Add(i => { i.Text = "Spalten anzeigen / ausblenden"; i.Name = "ToggleColumnChooser"; i.Image.IconID = IconID.OtherViewgridlines16x16gray; i.BeginGroup = true; }); t.Items.Add(i => { i.Text = "Exportieren nach"; i.Image.IconID = IconID.ActionsDownload16x16office2013; i.BeginGroup = true; i.Items.Add(exportitem => { exportitem.Name = "Pdf"; exportitem.Text = "PDF"; exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xlsx"; exportitem.Text = "XLSX"; exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xls"; exportitem.Text = "XLS"; exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013; }); }); }); if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit") || _userContext.CurrentUser.HasFunction("Site-Sites-Delete")) { s.Columns.Add(column => { column.Caption = "#"; column.SetDataItemTemplateContent(c => { if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit")) html.ViewContext.Writer.Write( "Bearbeiten"); if (_userContext.CurrentUser.HasFunction("Site-Sites-Delete")) html.ViewContext.Writer.Write( "
Löschen"); }); column.SetHeaderTemplateContent(c => { if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit")) html.ViewContext.Writer.Write( "Neu "); }); column.Settings.AllowDragDrop = DefaultBoolean.False; column.Settings.AllowSort = DefaultBoolean.False; column.Width = new Unit(100, UnitType.Pixel); }); } s.Columns.Add(column => { column.Caption = "Kostenstelle"; column.FieldName = "CustomNumber"; column.MinWidth = 100; column.Width = new Unit(8, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Bauvorhaben"; column.FieldName = "Description"; column.Width = new Unit(20, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Start"; column.FieldName = "Start"; column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy"; column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.DateRangePicker; column.MinWidth = 110; column.Width = new Unit(8, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Ende"; column.FieldName = "End"; column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy"; column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.DateRangePicker; column.MinWidth = 110; column.Width = new Unit(8, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "VA"; column.FieldName = "DeviationDescription"; column.Visible = false; column.MinWidth = 150; column.Width = new Unit(12, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "VA-Summe"; column.FieldName = "DeviationValue"; column.PropertiesEdit.DisplayFormatString = "c2"; column.Visible = false; column.MinWidth = 120; column.Width = new Unit(10, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Nachträge"; column.FieldName = "AppendixDescription"; column.Width = new Unit(10, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Mitarbeiter"; column.MinWidth = 150; column.Width = new Unit(15, UnitType.Percentage); column.SetDataItemTemplateContent(c => { var userDescriptions = DataBinder.Eval(c.DataItem, "UserDescriptions") as List; if (userDescriptions != null) { foreach (var description in userDescriptions) { var split = description.Split('|'); if (split.Length > 1) html.ViewContext.Writer.Write( "" + split[0] + "" + "" + split[1] + "
"); else html.ViewContext.Writer.Write( "" + split[0] + "
"); } } }); }); s.Columns.Add(column => { column.Caption = "Kommentar"; column.CellStyle.Wrap = DefaultBoolean.True; column.SetDataItemTemplateContent(c => { var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id")); var comment = DataBinder.Eval(c.DataItem, "Comment"); var text = comment == null ? String.Empty : comment.ToString(); if (text.ToString().Length > 40) { html.ViewContext.Writer.Write(text.Substring(0, 40) + " ..."); html.ViewContext.Writer.Write("
Anzeigen
"); } else html.ViewContext.Writer.Write(text); }); column.MinWidth = 120; column.Width = new Unit(15, UnitType.Percentage); column.Visible = false; }); s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue"); s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue"); s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber"); s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber"); s.ClientLayout = (sender, e) => { if (e.LayoutMode == ClientLayoutMode.Loading) { if (System.Web.HttpContext.Current.Session["SiteGridState"] != null) e.LayoutData = (string)System.Web.HttpContext.Current.Session["SiteGridState"]; } else System.Web.HttpContext.Current.Session["SiteGridState"] = e.LayoutData; }; s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }"; s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }"; s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247); s.Styles.Footer.CssClass += "devExGridFooterPanel"; s.Styles.GroupRow.CssClass += "devExGridGroupRow"; return s; } /// /// Creates GridViewSettings for the deviation gridView /// /// Current HtmlHelper context. public static GridViewSettings DeviationGridViewSettings(this System.Web.Mvc.HtmlHelper html) { var s = new GridViewSettings(); s.Name = "devGridViewDeviation"; s.KeyFieldName = "Id"; s.CallbackRouteValues = new { Controller = "Deviation", Action = "PartialDeviations" }; s.Width = Unit.Percentage(99); s.Settings.ShowHeaderFilterButton = true; s.Settings.ShowFilterRow = true; s.Settings.ShowFilterRowMenu = true; s.Settings.ShowFooter = true; s.Settings.ShowGroupPanel = true; s.Settings.AutoFilterCondition = AutoFilterCondition.Contains; s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto; s.Settings.VerticalScrollableHeight = (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1) ? 400 : (int)html.ViewData["ScrollHeight"]; s.SettingsExport.Landscape = true; s.SettingsExport.FileName = "Vertragsabweichungsliste"; s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel); s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel); s.SettingsBehavior.EnableCustomizationWindow = true; s.SettingsBehavior.AllowHeaderFilter = true; s.SettingsPager.AlwaysShowPager = true; s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn; s.SettingsCookies.Enabled = true; s.SettingsCookies.CookiesID = "deviationGridStateCookie"; s.Toolbars.Add(t => { var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh); refreshItem.Text = "Aktualisieren"; var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand); expandItem.Text = "Alle aufklappen"; var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse); collapseItem.Text = "Alle einklappen"; var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter); filterItem.Text = "Filter entfernen"; t.Items.Add(i => { i.Text = "Spalten anzeigen / ausblenden"; i.Name = "ToggleColumnChooser"; i.Image.IconID = IconID.OtherViewgridlines16x16gray; i.BeginGroup = true; }); t.Items.Add(i => { i.Text = "Exportieren nach"; i.Image.IconID = IconID.ActionsDownload16x16office2013; i.BeginGroup = true; i.Items.Add(exportitem => { exportitem.Name = "Pdf"; exportitem.Text = "PDF"; exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xlsx"; exportitem.Text = "XLSX"; exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xls"; exportitem.Text = "XLS"; exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013; }); }); }); s.Columns.Add(column => { column.Caption = "Nummer"; column.FieldName = "CustomNumber"; column.MinWidth = 80; column.Width = new Unit(8, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Bezeichnung"; column.FieldName = "Description"; column.MinWidth = 200; column.Width = new Unit(14, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Baustelle"; column.FieldName = "SiteDescription"; column.MinWidth = 120; column.Width = new Unit(10, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Nachtrag"; column.FieldName = "AppendixDescription"; column.MinWidth = 120; column.Width = new Unit(10, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Einreichung"; column.FieldName = "ReceiptDate"; column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy"; column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.DateRangePicker; column.MinWidth = 110; column.Width = new Unit(8, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Tage VA - NT"; column.FieldName = "DaysReceiptToAppendixOffering"; column.MinWidth = 110; column.Width = new Unit(8, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Schätzung bew."; column.FieldName = "PercentageValue"; column.PropertiesEdit.DisplayFormatString = "c2"; column.MinWidth = 100; column.Width = new Unit(9, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Status"; column.FieldName = "StatusDescription"; column.MinWidth = 160; column.Width = new Unit(12, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "VA-Kategorien"; column.FieldName = "DisturbanceValuesDescription"; column.MinWidth = 200; column.Width = new Unit(14, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Art"; column.FieldName = "KindDescription"; column.MinWidth = 140; column.Width = new Unit(10, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Kommentar"; column.CellStyle.Wrap = DefaultBoolean.True; column.SetDataItemTemplateContent(c => { var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id")); var comment = DataBinder.Eval(c.DataItem, "Comment"); var text = comment == null ? String.Empty : comment.ToString(); if (text.ToString().Length > 40) { html.ViewContext.Writer.Write(text.Substring(0, 40) + " ..."); html.ViewContext.Writer.Write("
Anzeigen
"); } else html.ViewContext.Writer.Write(text); }); column.MinWidth = 120; column.Width = new Unit(8, UnitType.Percentage); column.Visible = false; }); var totalDaysReceiptToAppendixOfferingSum = 0; var totalDaysReceiptToAppendixOfferingCount = 0; s.CustomSummaryCalculate = (sender, e) => { if (e.SummaryProcess == CustomSummaryProcess.Start) { totalDaysReceiptToAppendixOfferingSum = 0; totalDaysReceiptToAppendixOfferingCount = 0; } if (e.SummaryProcess == CustomSummaryProcess.Calculate) { var val = e.GetValue("DaysReceiptToAppendixOffering"); if (val != null) { totalDaysReceiptToAppendixOfferingCount++; totalDaysReceiptToAppendixOfferingSum += Convert.ToInt32(val); } } if (e.SummaryProcess == CustomSummaryProcess.Finalize) e.TotalValue = totalDaysReceiptToAppendixOfferingSum / totalDaysReceiptToAppendixOfferingCount; }; s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue"); s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue"); s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber"); s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber"); s.TotalSummary.Add(new ASPxSummaryItem { FieldName = "DaysReceiptToAppendixOffering", SummaryType = DevExpress.Data.SummaryItemType.Custom, DisplayFormat = "Schnitt = {0:n0}" }); s.GroupSummary.Add(new ASPxSummaryItem { FieldName = "DaysReceiptToAppendixOffering", SummaryType = DevExpress.Data.SummaryItemType.Custom, DisplayFormat = "Schnitt = {0:n0}" }); s.ClientLayout = (sender, e) => { if (e.LayoutMode == ClientLayoutMode.Loading) { if (System.Web.HttpContext.Current.Session["DeviationGridState"] != null) e.LayoutData = (string)System.Web.HttpContext.Current.Session["DeviationGridState"]; } else System.Web.HttpContext.Current.Session["DeviationGridState"] = e.LayoutData; }; s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }"; s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }"; s.Styles.Footer.CssClass += "devExGridFooterPanel"; s.Styles.GroupRow.CssClass += "devExGridGroupRow"; s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247); return s; } /// /// Creates GridViewSettings for the appendix gridView /// /// Current HtmlHelper context. public static GridViewSettings AppendixGridViewSettings(this System.Web.Mvc.HtmlHelper html) { var s = new GridViewSettings(); s.Name = "devGridViewAppendix"; s.KeyFieldName = "Id"; s.CallbackRouteValues = new { Controller = "Appendix", Action = "PartialAppendices" }; s.Width = Unit.Percentage(99); s.Settings.ShowHeaderFilterButton = true; s.Settings.ShowFilterRow = true; s.Settings.ShowFilterRowMenu = true; s.Settings.ShowFooter = true; s.Settings.ShowGroupPanel = true; s.Settings.AutoFilterCondition = AutoFilterCondition.Contains; s.Settings.HorizontalScrollBarMode = ScrollBarMode.Auto; s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto; s.Settings.VerticalScrollableHeight = (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1) ? 400 : (int)html.ViewData["ScrollHeight"]; s.SettingsExport.Landscape = true; s.SettingsExport.FileName = "Nachtragsliste"; s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel); s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel); s.SettingsBehavior.EnableCustomizationWindow = true; s.SettingsBehavior.AllowHeaderFilter = true; s.SettingsPager.AlwaysShowPager = true; s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control; s.SettingsCookies.Enabled = true; s.SettingsCookies.CookiesID = "appendixGridStateCookie"; s.Toolbars.Add(t => { var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh); refreshItem.Text = "Aktualisieren"; var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand); expandItem.Text = "Alle aufklappen"; var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse); collapseItem.Text = "Alle einklappen"; var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter); filterItem.Text = "Filter entfernen"; t.Items.Add(i => { i.Text = "Spalten anzeigen / ausblenden"; i.Name = "ToggleColumnChooser"; i.Image.IconID = IconID.OtherViewgridlines16x16gray; i.BeginGroup = true; }); t.Items.Add(i => { i.Text = "Exportieren nach"; i.Image.IconID = IconID.ActionsDownload16x16office2013; i.BeginGroup = true; i.Items.Add(exportitem => { exportitem.Name = "Pdf"; exportitem.Text = "PDF"; exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xlsx"; exportitem.Text = "XLSX"; exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xls"; exportitem.Text = "XLS"; exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013; }); }); }); s.Columns.Add(column => { column.Caption = "#"; column.FieldName = "CustomNumber"; column.MinWidth = 80; column.Width = new Unit(80, UnitType.Pixel); }); s.Columns.Add(column => { column.Caption = "Bezeichnung"; column.FieldName = "Description"; column.MinWidth = 200; column.Width = new Unit(14, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Baustelle"; column.FieldName = "SiteDescription"; column.MinWidth = 150; column.Width = new Unit(10, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Kst.-Stelle"; column.FieldName = "SiteCustomNumber"; column.MinWidth = 120; column.Width = new Unit(120, UnitType.Pixel); }); s.Columns.Add(column => { column.Caption = "Einreichung"; column.FieldName = "OfferingDate"; column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy"; column.MinWidth = 110; column.Width = new Unit(110, UnitType.Pixel); }); s.Columns.Add(column => { column.Caption = "Angeb. -Summe"; column.FieldName = "OfferingValue"; column.PropertiesEdit.DisplayFormatString = "c2"; column.MinWidth = 110; column.Width = new Unit(110, UnitType.Pixel); column.HeaderStyle.Wrap = DefaultBoolean.True; }); s.Columns.Add(column => { column.Caption = "Verhand. -Summe"; column.FieldName = "NegotiationValue"; column.PropertiesEdit.DisplayFormatString = "c2"; column.MinWidth = 110; column.Width = new Unit(110, UnitType.Pixel); column.HeaderStyle.Wrap = DefaultBoolean.True; }); s.Columns.Add(column => { column.Caption = "Anteil Verh. zu Angeb."; column.FieldName = "RelationOfferingToNegotiation"; column.PropertiesEdit.DisplayFormatString = "p2"; column.MinWidth = 115; column.Width = new Unit(115, UnitType.Pixel); column.HeaderStyle.Wrap = DefaultBoolean.True; }); s.Columns.Add(column => { column.Caption = "VA"; column.FieldName = "DeviationDescription"; column.MinWidth = 70; column.Width = new Unit(6, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Faktor Angeb. zu VA"; column.FieldName = "RelationOfferingToDeviations"; column.PropertiesEdit.DisplayFormatString = "n2"; column.MinWidth = 100; column.Width = new Unit(100, UnitType.Pixel); column.HeaderStyle.Wrap = DefaultBoolean.True; }); s.Columns.Add(column => { column.Caption = "Status"; column.FieldName = "StateDescription"; column.MinWidth = 100; column.Width = new Unit(100, UnitType.Pixel); }); s.Columns.Add(column => { column.Caption = "NT-Kategorien"; column.FieldName = "CategoryValuesDescription"; column.MinWidth = 200; column.Width = new Unit(12, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Kommentar"; column.CellStyle.Wrap = DefaultBoolean.True; column.SetDataItemTemplateContent(c => { var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id")); var comment = DataBinder.Eval(c.DataItem, "Comment"); var text = comment == null ? String.Empty : comment.ToString(); if (text.ToString().Length > 40) { html.ViewContext.Writer.Write(text.Substring(0, 40) + " ..."); html.ViewContext.Writer.Write("
Anzeigen
"); } else html.ViewContext.Writer.Write(text); }); column.MinWidth = 250; column.Width = new Unit(14, UnitType.Percentage); }); s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber"); s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber"); s.TotalSummary.Add(new ASPxSummaryItem { SummaryType = DevExpress.Data.SummaryItemType.Sum, FieldName = "OfferingValue", DisplayFormat = "Angeb.-Sum.: {0:c2}" }); s.GroupSummary.Add(new ASPxSummaryItem { SummaryType = DevExpress.Data.SummaryItemType.Sum, FieldName = "OfferingValue", DisplayFormat = "Angeb.-Sum.: {0:c2}" }); s.TotalSummary.Add(new ASPxSummaryItem { SummaryType = DevExpress.Data.SummaryItemType.Sum, FieldName = "NegotiationValue", DisplayFormat = "Verhand.-Sum.: {0:c2}" }); s.GroupSummary.Add(new ASPxSummaryItem { SummaryType = DevExpress.Data.SummaryItemType.Sum, FieldName = "NegotiationValue", DisplayFormat = "Verhand.-Sum.: {0:c2}" }); s.HtmlRowPrepared = (sender, e) => { var state = e.GetValue("State") as StateDataModel; if (e.RowType == GridViewRowType.Data && state != null && !state.IsDefault) e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml(state.HexColor); }; s.ClientLayout = (sender, e) => { if (e.LayoutMode == ClientLayoutMode.Loading) { if (System.Web.HttpContext.Current.Session["AppendixGridState"] != null) e.LayoutData = (string)System.Web.HttpContext.Current.Session["AppendixGridState"]; } else System.Web.HttpContext.Current.Session["AppendixGridState"] = e.LayoutData; }; s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }"; s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }"; s.ClientSideEvents.ColumnResized = "function (s, e) { setGridScrollHeight(); }"; //s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247); s.Styles.Footer.CssClass += "devExGridFooterPanel"; s.Styles.GroupRow.CssClass += "devExGridGroupRow"; return s; } /// /// Creates GridViewSettings for the mailNotifications gridView /// /// Current HtmlHelper context. public static GridViewSettings MailNotificationGridViewSettings(this System.Web.Mvc.HtmlHelper html) { var s = new GridViewSettings(); s.Name = "devGridViewMailNotifications"; s.KeyFieldName = "Id"; s.CallbackRouteValues = new { Controller = "Misc", Action = "PartialMailNotifications" }; s.Width = Unit.Percentage(99); s.Settings.ShowHeaderFilterButton = true; s.Settings.ShowFilterRow = true; s.Settings.ShowFilterRowMenu = true; s.Settings.ShowFooter = true; s.Settings.ShowGroupPanel = true; s.Settings.AutoFilterCondition = AutoFilterCondition.Contains; s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto; s.Settings.VerticalScrollableHeight = (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1) ? 400 : (int)html.ViewData["ScrollHeight"]; s.SettingsExport.Landscape = true; s.SettingsExport.FileName = "Benachrichtigungsliste"; s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel); s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel); s.SettingsBehavior.EnableCustomizationWindow = true; s.SettingsBehavior.AllowHeaderFilter = true; s.SettingsPager.AlwaysShowPager = true; s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn; s.SettingsCookies.Enabled = true; s.SettingsCookies.CookiesID = "mailNotificationGridStateCookie"; s.Toolbars.Add(t => { var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh); refreshItem.Text = "Aktualisieren"; var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter); filterItem.Text = "Filter entfernen"; t.Items.Add(i => { i.Text = "Spalten anzeigen / ausblenden"; i.Name = "ToggleColumnChooser"; i.Image.IconID = IconID.OtherViewgridlines16x16gray; i.BeginGroup = true; }); t.Items.Add(i => { i.Text = "Exportieren nach"; i.Image.IconID = IconID.ActionsDownload16x16office2013; i.BeginGroup = true; i.Items.Add(exportitem => { exportitem.Name = "Pdf"; exportitem.Text = "PDF"; exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xlsx"; exportitem.Text = "XLSX"; exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013; }); i.Items.Add(exportitem => { exportitem.Name = "Xls"; exportitem.Text = "XLS"; exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013; }); }); }); if (_userContext.CurrentUser.HasFunction("Misc-MailNotifications-Edit")) { s.Columns.Add(column => { column.Caption = "#"; column.SetDataItemTemplateContent(c => { html.ViewContext.Writer.Write( "Bearbeiten "); html.ViewContext.Writer.Write( "Löschen
"); html.ViewContext.Writer.Write( "Sofort ausführen"); }); column.SetHeaderTemplateContent(c => { html.ViewContext.Writer.Write( "Neu "); }); column.Settings.AllowDragDrop = DefaultBoolean.False; column.Settings.AllowSort = DefaultBoolean.False; column.Width = new Unit(150, UnitType.Pixel); }); } s.Columns.Add(column => { column.Caption = "Zeitplan"; column.FieldName = "CronExpressionDescription"; column.MinWidth = 100; column.Width = new Unit(20, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Benachrichtigungs-Plugin"; column.FieldName = "NotificationPluginSystemNameDescription"; column.Width = new Unit(17.5, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Benachrichtigungs-Job"; column.FieldName = "NotificationJobSystemNameDescription"; column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy"; column.MinWidth = 110; column.Width = new Unit(17.5, UnitType.Percentage); }); s.Columns.Add(column => { column.Caption = "Mitarbeiter"; column.MinWidth = 150; column.Width = new Unit(15, UnitType.Percentage); column.SetDataItemTemplateContent(c => { var userDescriptions = DataBinder.Eval(c.DataItem, "UserDescriptions") as List; if (userDescriptions != null) { foreach (var description in userDescriptions) { var split = description.Split('|'); if (split.Length > 1) html.ViewContext.Writer.Write( "" + split[0] + "" + "" + split[1] + "
"); else html.ViewContext.Writer.Write( "" + split[0] + "
"); } } }); }); s.Columns.Add(column => { column.Caption = "Nächste Ausführung"; column.FieldName = "NextExecutionTime"; column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy"; column.MinWidth = 110; column.Width = new Unit(15, UnitType.Percentage); }); s.ClientLayout = (sender, e) => { if (e.LayoutMode == ClientLayoutMode.Loading) { if (System.Web.HttpContext.Current.Session["MailNotificationsGridState"] != null) e.LayoutData = (string)System.Web.HttpContext.Current.Session["MailNotificationsGridState"]; } else System.Web.HttpContext.Current.Session["MailNotificationsGridState"] = e.LayoutData; }; s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }"; s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }"; s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247); return s; } } }