GridViewSettingsHelper.cs 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135
  1. using DevExpress.Data;
  2. using DevExpress.Utils;
  3. using DevExpress.Web;
  4. using DevExpress.Web.ASPxThemes;
  5. using DevExpress.Web.Mvc;
  6. using GreenTree.Nachtragsmanagement.Core.Authentication;
  7. using GreenTree.Nachtragsmanagement.Web.Models.Appendix;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Web.UI;
  11. using System.Web.UI.WebControls;
  12. namespace GreenTree.Nachtragsmanagement.Web.Extensions
  13. {
  14. public static class GridViewSettingsHelper
  15. {
  16. /// <summary>
  17. /// Current user context
  18. /// </summary>
  19. public static UserContext _userContext = Core.CommonHelper.UserContext();
  20. /// <summary>
  21. /// Creates GridViewSettings for the site gridView
  22. /// </summary>
  23. /// <param name="html">Current HtmlHelper context.</param>
  24. public static GridViewSettings SiteGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  25. {
  26. var s = new GridViewSettings();
  27. s.Name = "devGridViewSite";
  28. s.KeyFieldName = "Id";
  29. s.CallbackRouteValues = new { Controller = "Site", Action = "PartialSites" };
  30. s.Width = Unit.Percentage(99);
  31. s.Settings.ShowHeaderFilterButton = true;
  32. s.Settings.ShowFilterRow = true;
  33. s.Settings.ShowFilterRowMenu = false;
  34. s.Settings.ShowFooter = true;
  35. s.Settings.ShowGroupPanel = true;
  36. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  37. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  38. s.Settings.VerticalScrollableHeight =
  39. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  40. ? 400
  41. : (int)html.ViewData["ScrollHeight"];
  42. s.SettingsExport.Landscape = true;
  43. s.SettingsExport.FileName = "Baustellenliste";
  44. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  45. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  46. s.SettingsBehavior.EnableCustomizationWindow = true;
  47. s.SettingsBehavior.AllowHeaderFilter = true;
  48. s.SettingsPager.AlwaysShowPager = true;
  49. s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn;
  50. s.SettingsCookies.Enabled = true;
  51. s.SettingsCookies.CookiesID = "siteGridStateCookie";
  52. s.Toolbars.Add(t =>
  53. {
  54. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  55. refreshItem.Text = "Aktualisieren";
  56. var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
  57. expandItem.Text = "Alle aufklappen";
  58. var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
  59. collapseItem.Text = "Alle einklappen";
  60. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  61. filterItem.Text = "Filter entfernen";
  62. t.Items.Add(i =>
  63. {
  64. i.Text = "Spalten anzeigen / ausblenden";
  65. i.Name = "ToggleColumnChooser";
  66. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  67. i.BeginGroup = true;
  68. });
  69. t.Items.Add(i =>
  70. {
  71. i.Text = "Exportieren nach";
  72. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  73. i.BeginGroup = true;
  74. i.Items.Add(exportitem =>
  75. {
  76. exportitem.Name = "Pdf";
  77. exportitem.Text = "PDF";
  78. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  79. });
  80. i.Items.Add(exportitem =>
  81. {
  82. exportitem.Name = "Xlsx";
  83. exportitem.Text = "XLSX";
  84. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  85. });
  86. i.Items.Add(exportitem =>
  87. {
  88. exportitem.Name = "Xls";
  89. exportitem.Text = "XLS";
  90. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  91. });
  92. });
  93. });
  94. if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit") || _userContext.CurrentUser.HasFunction("Site-Sites-Delete"))
  95. {
  96. s.Columns.Add(column =>
  97. {
  98. column.Caption = "#";
  99. column.SetDataItemTemplateContent(c =>
  100. {
  101. if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit"))
  102. html.ViewContext.Writer.Write(
  103. "<a href=\"#\" onclick=\"editSite(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Bearbeiten</a>");
  104. if (_userContext.CurrentUser.HasFunction("Site-Sites-Delete"))
  105. html.ViewContext.Writer.Write(
  106. "<br /><a href=\"#\" onclick=\"confirmDelete(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Löschen</a>");
  107. });
  108. column.SetHeaderTemplateContent(c =>
  109. {
  110. if (_userContext.CurrentUser.HasFunction("Site-Sites-Edit"))
  111. html.ViewContext.Writer.Write(
  112. "<a href=\"#\" onclick=\"editSite(-1)\">Neu</a>&nbsp;");
  113. });
  114. column.Settings.AllowDragDrop = DefaultBoolean.False;
  115. column.Settings.AllowSort = DefaultBoolean.False;
  116. column.Width = new Unit(100, UnitType.Pixel);
  117. });
  118. }
  119. s.Columns.Add(column =>
  120. {
  121. column.Caption = "Kostenstelle";
  122. column.FieldName = "CustomNumber";
  123. column.MinWidth = 100;
  124. column.Width = new Unit(8, UnitType.Percentage);
  125. });
  126. s.Columns.Add(column =>
  127. {
  128. column.Caption = "Bauvorhaben";
  129. column.FieldName = "Description";
  130. column.Width = new Unit(20, UnitType.Percentage);
  131. });
  132. s.Columns.Add(column =>
  133. {
  134. column.Caption = "Start";
  135. column.FieldName = "Start";
  136. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  137. column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.DateRangePicker;
  138. column.MinWidth = 110;
  139. column.Width = new Unit(8, UnitType.Percentage);
  140. });
  141. s.Columns.Add(column =>
  142. {
  143. column.Caption = "Ende";
  144. column.FieldName = "End";
  145. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  146. column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.DateRangePicker;
  147. column.MinWidth = 110;
  148. column.Width = new Unit(8, UnitType.Percentage);
  149. });
  150. s.Columns.Add(column =>
  151. {
  152. column.Caption = "VA";
  153. column.FieldName = "DeviationDescription";
  154. column.Visible = false;
  155. column.MinWidth = 150;
  156. column.Width = new Unit(12, UnitType.Percentage);
  157. });
  158. s.Columns.Add(column =>
  159. {
  160. column.Caption = "VA-Summe";
  161. column.FieldName = "DeviationValue";
  162. column.PropertiesEdit.DisplayFormatString = "c2";
  163. column.Visible = false;
  164. column.MinWidth = 120;
  165. column.Width = new Unit(10, UnitType.Percentage);
  166. });
  167. s.Columns.Add(column =>
  168. {
  169. column.Caption = "Nachträge";
  170. column.FieldName = "AppendixDescription";
  171. column.Width = new Unit(10, UnitType.Percentage);
  172. });
  173. s.Columns.Add(column =>
  174. {
  175. column.Caption = "Mitarbeiter";
  176. column.MinWidth = 150;
  177. column.Width = new Unit(15, UnitType.Percentage);
  178. column.SetDataItemTemplateContent(c =>
  179. {
  180. var userDescriptions = DataBinder.Eval(c.DataItem, "UserDescriptions") as List<string>;
  181. if (userDescriptions != null)
  182. {
  183. foreach (var description in userDescriptions)
  184. {
  185. var split = description.Split('|');
  186. if (split.Length > 1)
  187. html.ViewContext.Writer.Write(
  188. "<span style=\"float: left\">" + split[0] + "</span>" +
  189. "<span style=\"float: right\">" + split[1] + "</span><br />");
  190. else
  191. html.ViewContext.Writer.Write(
  192. "<span>" + split[0] + "</span><br />");
  193. }
  194. }
  195. });
  196. });
  197. s.Columns.Add(column =>
  198. {
  199. column.Caption = "Kommentar";
  200. column.FieldName = "Comment";
  201. column.CellStyle.Wrap = DefaultBoolean.True;
  202. column.SetDataItemTemplateContent(c =>
  203. {
  204. var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
  205. var comment = DataBinder.Eval(c.DataItem, "Comment");
  206. var text = comment == null
  207. ? String.Empty
  208. : comment.ToString();
  209. if (text.ToString().Length > 40)
  210. {
  211. html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
  212. html.ViewContext.Writer.Write("<a href=\"#\" onclick='showComment(\"site\"," + id + ",this)'><br />Anzeigen</a>");
  213. }
  214. else
  215. html.ViewContext.Writer.Write(text);
  216. });
  217. column.MinWidth = 120;
  218. column.Width = new Unit(15, UnitType.Percentage);
  219. column.Visible = false;
  220. });
  221. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue");
  222. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "DeviationValue");
  223. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  224. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  225. s.ClientLayout = (sender, e) =>
  226. {
  227. if (e.LayoutMode == ClientLayoutMode.Loading)
  228. {
  229. if (System.Web.HttpContext.Current.Session["SiteGridState"] != null)
  230. e.LayoutData = (string)System.Web.HttpContext.Current.Session["SiteGridState"];
  231. }
  232. else
  233. System.Web.HttpContext.Current.Session["SiteGridState"] = e.LayoutData;
  234. };
  235. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  236. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  237. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  238. s.Styles.Footer.CssClass += "devExGridFooterPanel";
  239. s.Styles.GroupRow.CssClass += "devExGridGroupRow";
  240. return s;
  241. }
  242. /// <summary>
  243. /// Creates GridViewSettings for the deviation gridView
  244. /// </summary>
  245. /// <param name="html">Current HtmlHelper context.</param>
  246. public static GridViewSettings DeviationGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  247. {
  248. var s = new GridViewSettings();
  249. s.Name = "devGridViewDeviation";
  250. s.KeyFieldName = "Id";
  251. s.CallbackRouteValues = new { Controller = "Deviation", Action = "PartialDeviations" };
  252. s.Width = Unit.Percentage(99);
  253. s.Settings.ShowHeaderFilterButton = true;
  254. s.Settings.ShowFilterRow = true;
  255. s.Settings.ShowFilterRowMenu = true;
  256. s.Settings.ShowFooter = true;
  257. s.Settings.ShowGroupPanel = true;
  258. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  259. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  260. s.Settings.VerticalScrollableHeight =
  261. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  262. ? 400
  263. : (int)html.ViewData["ScrollHeight"];
  264. s.SettingsExport.Landscape = true;
  265. s.SettingsExport.FileName = "Vertragsabweichungsliste";
  266. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  267. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  268. s.SettingsBehavior.EnableCustomizationWindow = true;
  269. s.SettingsBehavior.AllowHeaderFilter = true;
  270. s.SettingsPager.AlwaysShowPager = true;
  271. s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn;
  272. s.SettingsCookies.Enabled = true;
  273. s.SettingsCookies.CookiesID = "deviationGridStateCookie";
  274. s.Toolbars.Add(t =>
  275. {
  276. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  277. refreshItem.Text = "Aktualisieren";
  278. var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
  279. expandItem.Text = "Alle aufklappen";
  280. var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
  281. collapseItem.Text = "Alle einklappen";
  282. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  283. filterItem.Text = "Filter entfernen";
  284. t.Items.Add(i =>
  285. {
  286. i.Text = "Spalten anzeigen / ausblenden";
  287. i.Name = "ToggleColumnChooser";
  288. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  289. i.BeginGroup = true;
  290. });
  291. t.Items.Add(i =>
  292. {
  293. i.Text = "Exportieren nach";
  294. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  295. i.BeginGroup = true;
  296. i.Items.Add(exportitem =>
  297. {
  298. exportitem.Name = "Pdf";
  299. exportitem.Text = "PDF";
  300. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  301. });
  302. i.Items.Add(exportitem =>
  303. {
  304. exportitem.Name = "Xlsx";
  305. exportitem.Text = "XLSX";
  306. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  307. });
  308. i.Items.Add(exportitem =>
  309. {
  310. exportitem.Name = "Xls";
  311. exportitem.Text = "XLS";
  312. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  313. });
  314. });
  315. });
  316. s.Columns.Add(column =>
  317. {
  318. column.Caption = "Nummer";
  319. column.FieldName = "CustomNumber";
  320. column.MinWidth = 80;
  321. column.Width = new Unit(8, UnitType.Percentage);
  322. });
  323. s.Columns.Add(column =>
  324. {
  325. column.Caption = "Bezeichnung";
  326. column.FieldName = "Description";
  327. column.MinWidth = 200;
  328. column.Width = new Unit(14, UnitType.Percentage);
  329. });
  330. s.Columns.Add(column =>
  331. {
  332. column.Caption = "Baustelle";
  333. column.FieldName = "SiteDescription";
  334. column.MinWidth = 120;
  335. column.Width = new Unit(10, UnitType.Percentage);
  336. });
  337. s.Columns.Add(column =>
  338. {
  339. column.Caption = "Nachtrag";
  340. column.FieldName = "AppendixDescription";
  341. column.MinWidth = 120;
  342. column.Width = new Unit(10, UnitType.Percentage);
  343. });
  344. s.Columns.Add(column =>
  345. {
  346. column.Caption = "Einreichung";
  347. column.FieldName = "ReceiptDate";
  348. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  349. column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.DateRangePicker;
  350. column.MinWidth = 110;
  351. column.Width = new Unit(8, UnitType.Percentage);
  352. });
  353. s.Columns.Add(column =>
  354. {
  355. column.Caption = "Tage VA - NT";
  356. column.FieldName = "DaysReceiptToAppendixOffering";
  357. column.MinWidth = 110;
  358. column.Width = new Unit(8, UnitType.Percentage);
  359. });
  360. s.Columns.Add(column =>
  361. {
  362. column.Caption = "Schätzung bew.";
  363. column.FieldName = "PercentageValue";
  364. column.PropertiesEdit.DisplayFormatString = "c2";
  365. column.MinWidth = 100;
  366. column.Width = new Unit(9, UnitType.Percentage);
  367. });
  368. s.Columns.Add(column =>
  369. {
  370. column.Caption = "Status";
  371. column.FieldName = "StatusDescription";
  372. column.MinWidth = 160;
  373. column.Width = new Unit(12, UnitType.Percentage);
  374. });
  375. s.Columns.Add(column =>
  376. {
  377. column.Caption = "VA-Kategorien";
  378. column.FieldName = "DisturbanceValuesDescription";
  379. column.MinWidth = 200;
  380. column.Width = new Unit(14, UnitType.Percentage);
  381. });
  382. s.Columns.Add(column =>
  383. {
  384. column.Caption = "Art";
  385. column.FieldName = "KindDescription";
  386. column.MinWidth = 140;
  387. column.Width = new Unit(10, UnitType.Percentage);
  388. });
  389. s.Columns.Add(column =>
  390. {
  391. column.Caption = "Kommentar";
  392. column.FieldName = "Comment";
  393. column.CellStyle.Wrap = DefaultBoolean.True;
  394. column.SetDataItemTemplateContent(c =>
  395. {
  396. var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
  397. var comment = DataBinder.Eval(c.DataItem, "Comment");
  398. var text = comment == null
  399. ? String.Empty
  400. : comment.ToString();
  401. if (text.ToString().Length > 40)
  402. {
  403. html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
  404. html.ViewContext.Writer.Write("<a href=\"#\" onclick='showComment(\"deviation\"," + id + ",this)'><br />Anzeigen</a>");
  405. }
  406. else
  407. html.ViewContext.Writer.Write(text);
  408. });
  409. column.MinWidth = 120;
  410. column.Width = new Unit(8, UnitType.Percentage);
  411. column.Visible = false;
  412. });
  413. var totalDaysReceiptToAppendixOfferingSum = 0;
  414. var totalDaysReceiptToAppendixOfferingCount = 0;
  415. s.CustomSummaryCalculate = (sender, e) =>
  416. {
  417. if (e.SummaryProcess == CustomSummaryProcess.Start)
  418. {
  419. totalDaysReceiptToAppendixOfferingSum = 0;
  420. totalDaysReceiptToAppendixOfferingCount = 0;
  421. }
  422. if (e.SummaryProcess == CustomSummaryProcess.Calculate)
  423. {
  424. var val = e.GetValue("DaysReceiptToAppendixOffering");
  425. if (val != null)
  426. {
  427. totalDaysReceiptToAppendixOfferingCount++;
  428. totalDaysReceiptToAppendixOfferingSum += Convert.ToInt32(val);
  429. }
  430. }
  431. if (e.SummaryProcess == CustomSummaryProcess.Finalize)
  432. e.TotalValue = totalDaysReceiptToAppendixOfferingSum / totalDaysReceiptToAppendixOfferingCount;
  433. };
  434. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue");
  435. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, "PercentageValue");
  436. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  437. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  438. s.TotalSummary.Add(new ASPxSummaryItem
  439. {
  440. FieldName = "DaysReceiptToAppendixOffering",
  441. SummaryType = DevExpress.Data.SummaryItemType.Custom,
  442. DisplayFormat = "Schnitt = {0:n0}"
  443. });
  444. s.GroupSummary.Add(new ASPxSummaryItem
  445. {
  446. FieldName = "DaysReceiptToAppendixOffering",
  447. SummaryType = DevExpress.Data.SummaryItemType.Custom,
  448. DisplayFormat = "Schnitt = {0:n0}"
  449. });
  450. s.ClientLayout = (sender, e) =>
  451. {
  452. if (e.LayoutMode == ClientLayoutMode.Loading)
  453. {
  454. if (System.Web.HttpContext.Current.Session["DeviationGridState"] != null)
  455. e.LayoutData = (string)System.Web.HttpContext.Current.Session["DeviationGridState"];
  456. }
  457. else
  458. System.Web.HttpContext.Current.Session["DeviationGridState"] = e.LayoutData;
  459. };
  460. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  461. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  462. s.Styles.Footer.CssClass += "devExGridFooterPanel";
  463. s.Styles.GroupRow.CssClass += "devExGridGroupRow";
  464. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  465. return s;
  466. }
  467. /// <summary>
  468. /// Creates GridViewSettings for the appendix gridView
  469. /// </summary>
  470. /// <param name="html">Current HtmlHelper context.</param>
  471. public static GridViewSettings AppendixGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  472. {
  473. var s = new GridViewSettings();
  474. s.Name = "devGridViewAppendix";
  475. s.KeyFieldName = "Id";
  476. s.CallbackRouteValues = new { Controller = "Appendix", Action = "PartialAppendices" };
  477. s.Width = Unit.Percentage(99);
  478. s.Settings.ShowHeaderFilterButton = true;
  479. s.Settings.ShowFilterRow = true;
  480. s.Settings.ShowFilterRowMenu = true;
  481. s.Settings.ShowFooter = true;
  482. s.Settings.ShowGroupPanel = true;
  483. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  484. s.Settings.HorizontalScrollBarMode = ScrollBarMode.Auto;
  485. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  486. s.Settings.VerticalScrollableHeight =
  487. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  488. ? 400
  489. : (int)html.ViewData["ScrollHeight"];
  490. s.SettingsExport.Landscape = true;
  491. s.SettingsExport.FileName = "Nachtragsliste";
  492. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  493. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  494. s.SettingsBehavior.EnableCustomizationWindow = true;
  495. s.SettingsBehavior.AllowHeaderFilter = true;
  496. s.SettingsPager.AlwaysShowPager = true;
  497. s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
  498. s.SettingsCookies.Enabled = true;
  499. s.SettingsCookies.CookiesID = "appendixGridStateCookie";
  500. s.Toolbars.Add(t =>
  501. {
  502. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  503. refreshItem.Text = "Aktualisieren";
  504. var expandItem = t.Items.Add(GridViewToolbarCommand.FullExpand);
  505. expandItem.Text = "Alle aufklappen";
  506. var collapseItem = t.Items.Add(GridViewToolbarCommand.FullCollapse);
  507. collapseItem.Text = "Alle einklappen";
  508. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  509. filterItem.Text = "Filter entfernen";
  510. t.Items.Add(i =>
  511. {
  512. i.Text = "Spalten anzeigen / ausblenden";
  513. i.Name = "ToggleColumnChooser";
  514. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  515. i.BeginGroup = true;
  516. });
  517. t.Items.Add(i =>
  518. {
  519. i.Text = "Exportieren nach";
  520. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  521. i.BeginGroup = true;
  522. i.Items.Add(exportitem =>
  523. {
  524. exportitem.Name = "Pdf";
  525. exportitem.Text = "PDF";
  526. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  527. });
  528. i.Items.Add(exportitem =>
  529. {
  530. exportitem.Name = "Xlsx";
  531. exportitem.Text = "XLSX";
  532. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  533. });
  534. i.Items.Add(exportitem =>
  535. {
  536. exportitem.Name = "Xls";
  537. exportitem.Text = "XLS";
  538. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  539. });
  540. });
  541. });
  542. s.Columns.Add(column =>
  543. {
  544. column.Caption = "#";
  545. column.FieldName = "CustomNumber";
  546. column.MinWidth = 80;
  547. column.Width = new Unit(80, UnitType.Pixel);
  548. });
  549. s.Columns.Add(column =>
  550. {
  551. column.Caption = "Bezeichnung";
  552. column.FieldName = "Description";
  553. column.MinWidth = 200;
  554. column.Width = new Unit(14, UnitType.Percentage);
  555. });
  556. s.Columns.Add(column =>
  557. {
  558. column.Caption = "Baustelle";
  559. column.FieldName = "SiteDescription";
  560. column.MinWidth = 150;
  561. column.Width = new Unit(10, UnitType.Percentage);
  562. });
  563. s.Columns.Add(column =>
  564. {
  565. column.Caption = "Kst.-Stelle";
  566. column.FieldName = "SiteCustomNumber";
  567. column.MinWidth = 120;
  568. column.Width = new Unit(120, UnitType.Pixel);
  569. });
  570. s.Columns.Add(column =>
  571. {
  572. column.Caption = "Einreichung";
  573. column.FieldName = "OfferingDate";
  574. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  575. column.MinWidth = 110;
  576. column.Width = new Unit(110, UnitType.Pixel);
  577. });
  578. s.Columns.Add(column =>
  579. {
  580. column.Caption = "Angeb. -Summe";
  581. column.FieldName = "OfferingValue";
  582. column.PropertiesEdit.DisplayFormatString = "c2";
  583. column.MinWidth = 110;
  584. column.Width = new Unit(110, UnitType.Pixel);
  585. column.HeaderStyle.Wrap = DefaultBoolean.True;
  586. });
  587. s.Columns.Add(column =>
  588. {
  589. column.Caption = "Verhand. -Summe";
  590. column.FieldName = "NegotiationValue";
  591. column.PropertiesEdit.DisplayFormatString = "c2";
  592. column.MinWidth = 110;
  593. column.Width = new Unit(110, UnitType.Pixel);
  594. column.HeaderStyle.Wrap = DefaultBoolean.True;
  595. });
  596. s.Columns.Add(column =>
  597. {
  598. column.Caption = "Anteil Verh. zu Angeb.";
  599. column.FieldName = "RelationOfferingToNegotiation";
  600. column.PropertiesEdit.DisplayFormatString = "p2";
  601. column.MinWidth = 115;
  602. column.Width = new Unit(115, UnitType.Pixel);
  603. column.HeaderStyle.Wrap = DefaultBoolean.True;
  604. });
  605. s.Columns.Add(column =>
  606. {
  607. column.Caption = "VA";
  608. column.FieldName = "DeviationDescription";
  609. column.MinWidth = 70;
  610. column.Width = new Unit(6, UnitType.Percentage);
  611. });
  612. s.Columns.Add(column =>
  613. {
  614. column.Caption = "Faktor Angeb. zu VA";
  615. column.FieldName = "RelationOfferingToDeviations";
  616. column.PropertiesEdit.DisplayFormatString = "n2";
  617. column.MinWidth = 100;
  618. column.Width = new Unit(100, UnitType.Pixel);
  619. column.HeaderStyle.Wrap = DefaultBoolean.True;
  620. });
  621. s.Columns.Add(column =>
  622. {
  623. column.Caption = "Status";
  624. column.FieldName = "StateDescription";
  625. column.MinWidth = 100;
  626. column.Width = new Unit(100, UnitType.Pixel);
  627. });
  628. s.Columns.Add(column =>
  629. {
  630. column.Caption = "NT-Kategorien";
  631. column.FieldName = "CategoryValuesDescription";
  632. column.MinWidth = 200;
  633. column.Width = new Unit(12, UnitType.Percentage);
  634. });
  635. s.Columns.Add(column =>
  636. {
  637. column.Caption = "Kommentar";
  638. column.FieldName = "Comment";
  639. column.CellStyle.Wrap = DefaultBoolean.True;
  640. column.SetDataItemTemplateContent(c =>
  641. {
  642. var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
  643. var comment = DataBinder.Eval(c.DataItem, "Comment");
  644. var text = comment == null
  645. ? String.Empty
  646. : comment.ToString();
  647. if (text.ToString().Length > 40)
  648. {
  649. html.ViewContext.Writer.Write(text.Substring(0, 40) + " ...");
  650. html.ViewContext.Writer.Write("<a href=\"#\" onclick='showComment(\"appendix\"," + id + ",this)'><br />Anzeigen</a>");
  651. }
  652. else
  653. html.ViewContext.Writer.Write(text);
  654. });
  655. column.MinWidth = 250;
  656. column.Width = new Unit(14, UnitType.Percentage);
  657. });
  658. s.TotalSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  659. s.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "CustomNumber");
  660. s.TotalSummary.Add(new ASPxSummaryItem
  661. {
  662. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  663. FieldName = "OfferingValue",
  664. DisplayFormat = "Angeb.-Sum.: {0:c2}"
  665. });
  666. s.GroupSummary.Add(new ASPxSummaryItem
  667. {
  668. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  669. FieldName = "OfferingValue",
  670. DisplayFormat = "Angeb.-Sum.: {0:c2}"
  671. });
  672. s.TotalSummary.Add(new ASPxSummaryItem
  673. {
  674. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  675. FieldName = "NegotiationValue",
  676. DisplayFormat = "Verhand.-Sum.: {0:c2}"
  677. });
  678. s.GroupSummary.Add(new ASPxSummaryItem
  679. {
  680. SummaryType = DevExpress.Data.SummaryItemType.Sum,
  681. FieldName = "NegotiationValue",
  682. DisplayFormat = "Verhand.-Sum.: {0:c2}"
  683. });
  684. s.HtmlRowPrepared = (sender, e) =>
  685. {
  686. var state = e.GetValue("State") as StateDataModel;
  687. if (e.RowType == GridViewRowType.Data && state != null && !state.IsDefault)
  688. e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml(state.HexColor);
  689. };
  690. s.ClientLayout = (sender, e) =>
  691. {
  692. if (e.LayoutMode == ClientLayoutMode.Loading)
  693. {
  694. if (System.Web.HttpContext.Current.Session["AppendixGridState"] != null)
  695. e.LayoutData = (string)System.Web.HttpContext.Current.Session["AppendixGridState"];
  696. }
  697. else
  698. System.Web.HttpContext.Current.Session["AppendixGridState"] = e.LayoutData;
  699. };
  700. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  701. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  702. s.ClientSideEvents.ColumnResized = "function (s, e) { setGridScrollHeight(); }";
  703. //s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  704. s.Styles.Footer.CssClass += "devExGridFooterPanel";
  705. s.Styles.GroupRow.CssClass += "devExGridGroupRow";
  706. return s;
  707. }
  708. /// <summary>
  709. /// Creates GridViewSettings for the mailNotifications gridView
  710. /// </summary>
  711. /// <param name="html">Current HtmlHelper context.</param>
  712. public static GridViewSettings MailNotificationGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  713. {
  714. var s = new GridViewSettings();
  715. s.Name = "devGridViewMailNotifications";
  716. s.KeyFieldName = "Id";
  717. s.CallbackRouteValues = new { Controller = "Misc", Action = "PartialMailNotifications" };
  718. s.Width = Unit.Percentage(99);
  719. s.Settings.ShowHeaderFilterButton = true;
  720. s.Settings.ShowFilterRow = true;
  721. s.Settings.ShowFilterRowMenu = true;
  722. s.Settings.ShowFooter = true;
  723. s.Settings.ShowGroupPanel = true;
  724. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  725. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  726. s.Settings.VerticalScrollableHeight =
  727. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  728. ? 400
  729. : (int)html.ViewData["ScrollHeight"];
  730. s.SettingsExport.Landscape = true;
  731. s.SettingsExport.FileName = "Benachrichtigungsliste";
  732. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  733. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  734. s.SettingsBehavior.EnableCustomizationWindow = true;
  735. s.SettingsBehavior.AllowHeaderFilter = true;
  736. s.SettingsPager.AlwaysShowPager = true;
  737. s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn;
  738. s.SettingsCookies.Enabled = true;
  739. s.SettingsCookies.CookiesID = "mailNotificationGridStateCookie";
  740. s.Toolbars.Add(t =>
  741. {
  742. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  743. refreshItem.Text = "Aktualisieren";
  744. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  745. filterItem.Text = "Filter entfernen";
  746. t.Items.Add(i =>
  747. {
  748. i.Text = "Spalten anzeigen / ausblenden";
  749. i.Name = "ToggleColumnChooser";
  750. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  751. i.BeginGroup = true;
  752. });
  753. t.Items.Add(i =>
  754. {
  755. i.Text = "Exportieren nach";
  756. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  757. i.BeginGroup = true;
  758. i.Items.Add(exportitem =>
  759. {
  760. exportitem.Name = "Pdf";
  761. exportitem.Text = "PDF";
  762. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  763. });
  764. i.Items.Add(exportitem =>
  765. {
  766. exportitem.Name = "Xlsx";
  767. exportitem.Text = "XLSX";
  768. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  769. });
  770. i.Items.Add(exportitem =>
  771. {
  772. exportitem.Name = "Xls";
  773. exportitem.Text = "XLS";
  774. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  775. });
  776. });
  777. });
  778. if (_userContext.CurrentUser.HasFunction("Misc-MailNotifications-Edit"))
  779. {
  780. s.Columns.Add(column =>
  781. {
  782. column.Caption = "#";
  783. column.SetDataItemTemplateContent(c =>
  784. {
  785. html.ViewContext.Writer.Write(
  786. "<a href=\"#\" onclick=\"editMailNotification(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Bearbeiten</a>&nbsp;");
  787. html.ViewContext.Writer.Write(
  788. "<a href=\"#\" onclick=\"confirmDelete(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Löschen</a><br />");
  789. html.ViewContext.Writer.Write(
  790. "<a href=\"#\" onclick=\"confirmProcess(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Sofort ausführen</a>");
  791. });
  792. column.SetHeaderTemplateContent(c =>
  793. {
  794. html.ViewContext.Writer.Write(
  795. "<a href=\"#\" onclick=\"editMailNotification(-1)\">Neu</a>&nbsp;");
  796. });
  797. column.Settings.AllowDragDrop = DefaultBoolean.False;
  798. column.Settings.AllowSort = DefaultBoolean.False;
  799. column.Width = new Unit(150, UnitType.Pixel);
  800. });
  801. }
  802. s.Columns.Add(column =>
  803. {
  804. column.Caption = "Zeitplan";
  805. column.FieldName = "CronExpressionDescription";
  806. column.MinWidth = 100;
  807. column.Width = new Unit(20, UnitType.Percentage);
  808. });
  809. s.Columns.Add(column =>
  810. {
  811. column.Caption = "Benachrichtigungs-Plugin";
  812. column.FieldName = "NotificationPluginSystemNameDescription";
  813. column.Width = new Unit(17.5, UnitType.Percentage);
  814. });
  815. s.Columns.Add(column =>
  816. {
  817. column.Caption = "Benachrichtigungs-Job";
  818. column.FieldName = "NotificationJobSystemNameDescription";
  819. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  820. column.MinWidth = 110;
  821. column.Width = new Unit(17.5, UnitType.Percentage);
  822. });
  823. s.Columns.Add(column =>
  824. {
  825. column.Caption = "Mitarbeiter";
  826. column.FieldName = "UserDescriptions";
  827. column.MinWidth = 150;
  828. column.Width = new Unit(15, UnitType.Percentage);
  829. column.SetDataItemTemplateContent(c =>
  830. {
  831. var userDescriptions = DataBinder.Eval(c.DataItem, "UserDescriptions") as List<string>;
  832. if (userDescriptions != null)
  833. {
  834. foreach (var description in userDescriptions)
  835. {
  836. var split = description.Split('|');
  837. if (split.Length > 1)
  838. html.ViewContext.Writer.Write(
  839. "<span style=\"float: left\">" + split[0] + "</span>" +
  840. "<span style=\"float: right\">" + split[1] + "</span><br />");
  841. else
  842. html.ViewContext.Writer.Write(
  843. "<span>" + split[0] + "</span><br />");
  844. }
  845. }
  846. });
  847. });
  848. s.Columns.Add(column =>
  849. {
  850. column.Caption = "Nächste Ausführung";
  851. column.FieldName = "NextExecutionTime";
  852. column.PropertiesEdit.DisplayFormatString = "dd.MM.yyyy";
  853. column.MinWidth = 110;
  854. column.Width = new Unit(15, UnitType.Percentage);
  855. });
  856. s.ClientLayout = (sender, e) =>
  857. {
  858. if (e.LayoutMode == ClientLayoutMode.Loading)
  859. {
  860. if (System.Web.HttpContext.Current.Session["MailNotificationsGridState"] != null)
  861. e.LayoutData = (string)System.Web.HttpContext.Current.Session["MailNotificationsGridState"];
  862. }
  863. else
  864. System.Web.HttpContext.Current.Session["MailNotificationsGridState"] = e.LayoutData;
  865. };
  866. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  867. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  868. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  869. return s;
  870. }
  871. /// <summary>
  872. /// Creates GridViewSettings for the logs gridView
  873. /// </summary>
  874. /// <param name="html">Current HtmlHelper context.</param>
  875. public static GridViewSettings LogGridViewSettings(this System.Web.Mvc.HtmlHelper html)
  876. {
  877. var s = new GridViewSettings();
  878. s.Name = "devGridViewLog";
  879. s.KeyFieldName = "Id";
  880. s.CallbackRouteValues = new { Controller = "Misc", Action = "PartialLogs" };
  881. s.Width = Unit.Percentage(99);
  882. s.Settings.ShowHeaderFilterButton = true;
  883. s.Settings.ShowFilterRow = true;
  884. s.Settings.ShowFilterRowMenu = true;
  885. s.Settings.ShowFooter = true;
  886. s.Settings.ShowGroupPanel = true;
  887. s.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
  888. s.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
  889. s.Settings.VerticalScrollableHeight =
  890. (html.ViewData["ScrollHeight"] == null || (int)html.ViewData["ScrollHeight"] == -1)
  891. ? 400
  892. : (int)html.ViewData["ScrollHeight"];
  893. s.SettingsExport.Landscape = true;
  894. s.SettingsExport.FileName = "Logliste";
  895. s.SettingsPopup.CustomizationWindow.Width = new Unit(250, UnitType.Pixel);
  896. s.SettingsPopup.CustomizationWindow.Height = new Unit(350, UnitType.Pixel);
  897. s.SettingsBehavior.EnableCustomizationWindow = true;
  898. s.SettingsBehavior.AllowHeaderFilter = true;
  899. s.SettingsPager.AlwaysShowPager = true;
  900. s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn;
  901. s.SettingsCookies.Enabled = true;
  902. s.SettingsCookies.CookiesID = "logGridStateCookie";
  903. s.Toolbars.Add(t =>
  904. {
  905. var refreshItem = t.Items.Add(GridViewToolbarCommand.Refresh);
  906. refreshItem.Text = "Aktualisieren";
  907. var filterItem = t.Items.Add(GridViewToolbarCommand.ClearFilter);
  908. filterItem.Text = "Filter entfernen";
  909. t.Items.Add(i =>
  910. {
  911. i.Text = "Spalten anzeigen / ausblenden";
  912. i.Name = "ToggleColumnChooser";
  913. i.Image.IconID = IconID.OtherViewgridlines16x16gray;
  914. i.BeginGroup = true;
  915. });
  916. t.Items.Add(i =>
  917. {
  918. i.Text = "Exportieren nach";
  919. i.Image.IconID = IconID.ActionsDownload16x16office2013;
  920. i.BeginGroup = true;
  921. i.Items.Add(exportitem =>
  922. {
  923. exportitem.Name = "Pdf";
  924. exportitem.Text = "PDF";
  925. exportitem.Image.IconID = IconID.ExportExporttopdf16x16office2013;
  926. });
  927. i.Items.Add(exportitem =>
  928. {
  929. exportitem.Name = "Xlsx";
  930. exportitem.Text = "XLSX";
  931. exportitem.Image.IconID = IconID.ExportExporttoxlsx16x16office2013;
  932. });
  933. i.Items.Add(exportitem =>
  934. {
  935. exportitem.Name = "Xls";
  936. exportitem.Text = "XLS";
  937. exportitem.Image.IconID = IconID.ExportExporttoxls16x16office2013;
  938. });
  939. });
  940. });
  941. s.Columns.Add(column =>
  942. {
  943. column.Caption = "#";
  944. column.SetDataItemTemplateContent(c =>
  945. {
  946. html.ViewContext.Writer.Write(
  947. "<a href=\"#\" onclick=\"viewLog(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Betrachten</a>&nbsp;");
  948. if (_userContext.CurrentUser.HasFunction("Misc-Logs-Delete"))
  949. {
  950. html.ViewContext.Writer.Write(
  951. "<a href=\"#\" onclick=\"deleteLog(" + DataBinder.Eval(c.DataItem, "Id") + ")\">Löschen</a><br />");
  952. }
  953. });
  954. column.Settings.AllowDragDrop = DefaultBoolean.False;
  955. column.Settings.AllowSort = DefaultBoolean.False;
  956. column.Width = new Unit(150, UnitType.Pixel);
  957. });
  958. s.Columns.Add(column =>
  959. {
  960. column.Caption = "Level";
  961. column.FieldName = "LogLevelDescription";
  962. column.MinWidth = 100;
  963. column.Width = new Unit(8, UnitType.Percentage);
  964. });
  965. s.Columns.Add(column =>
  966. {
  967. column.Caption = "Betreff";
  968. column.FieldName = "ShortMessage";
  969. column.MinWidth = 150;
  970. column.Width = new Unit(12, UnitType.Percentage);
  971. });
  972. s.Columns.Add(column =>
  973. {
  974. column.Caption = "Nachricht";
  975. column.FieldName = "FullMessage";
  976. column.MinWidth = 200;
  977. column.Width = new Unit(20, UnitType.Percentage);
  978. column.SetDataItemTemplateContent(c =>
  979. {
  980. var fullMessage = DataBinder.Eval(c.DataItem, "FullMessage");
  981. var text = fullMessage == null
  982. ? String.Empty
  983. : fullMessage.ToString();
  984. if (text.ToString().Length > 80)
  985. html.ViewContext.Writer.Write(text.Substring(0, 80) + " ...");
  986. else
  987. html.ViewContext.Writer.Write(text);
  988. });
  989. });
  990. s.Columns.Add(column =>
  991. {
  992. column.Caption = "IP-Adresse";
  993. column.FieldName = "IpAddress";
  994. column.MinWidth = 130;
  995. column.Width = new Unit(10, UnitType.Percentage);
  996. });
  997. s.Columns.Add(column =>
  998. {
  999. column.Caption = "Mitarbeiter";
  1000. column.FieldName = "UserDescription";
  1001. column.MinWidth = 130;
  1002. column.Width = new Unit(10, UnitType.Percentage);
  1003. });
  1004. s.Columns.Add(column =>
  1005. {
  1006. column.Caption = "Datentyp";
  1007. column.FieldName = "EntityType";
  1008. column.MinWidth = 100;
  1009. column.Width = new Unit(8, UnitType.Percentage);
  1010. });
  1011. s.Columns.Add(column =>
  1012. {
  1013. column.Caption = "Daten ID";
  1014. column.FieldName = "EntityId";
  1015. column.MinWidth = 100;
  1016. column.Width = new Unit(8, UnitType.Percentage);
  1017. });
  1018. s.Columns.Add(column =>
  1019. {
  1020. column.Caption = "Seiten URL";
  1021. column.FieldName = "PageUrl";
  1022. column.MinWidth = 150;
  1023. column.Width = new Unit(12, UnitType.Percentage);
  1024. column.Visible = false;
  1025. });
  1026. s.Columns.Add(column =>
  1027. {
  1028. column.Caption = "Relative URL";
  1029. column.FieldName = "ReferrerUrl";
  1030. column.MinWidth = 100;
  1031. column.Width = new Unit(8, UnitType.Percentage);
  1032. column.Visible = false;
  1033. });
  1034. s.Columns.Add(column =>
  1035. {
  1036. column.Caption = "Zeitpunkt";
  1037. column.FieldName = "CreatedOnUtc";
  1038. column.SetDataItemTemplateContent(c =>
  1039. {
  1040. var dateTime = DataBinder.Eval(c.DataItem, "CreatedOnUtc") as DateTime?;
  1041. var text = dateTime == null
  1042. ? String.Empty
  1043. : dateTime.Value.ToLocalTime().ToString("dd.MM.yyyy - HH:mm:ss");
  1044. html.ViewContext.Writer.Write(text);
  1045. });
  1046. column.MinWidth = 150;
  1047. column.Width = new Unit(12, UnitType.Percentage);
  1048. });
  1049. s.ClientLayout = (sender, e) =>
  1050. {
  1051. if (e.LayoutMode == ClientLayoutMode.Loading)
  1052. {
  1053. if (System.Web.HttpContext.Current.Session["LogGridState"] != null)
  1054. e.LayoutData = (string)System.Web.HttpContext.Current.Session["LogGridState"];
  1055. }
  1056. else
  1057. System.Web.HttpContext.Current.Session["LogGridState"] = e.LayoutData;
  1058. };
  1059. s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";
  1060. s.ClientSideEvents.ToolbarItemClick = "function (s, e) { onToolbarItemClick(s, e); }";
  1061. s.Styles.AlternatingRow.BackColor = System.Drawing.Color.FromArgb(247, 247, 247);
  1062. return s;
  1063. }
  1064. }
  1065. }