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;
}
}
}