فهرست منبع

Änderungen vom 02.11. übernommen!

Arne Diekmann 8 سال پیش
والد
کامیت
b7b59b3068

+ 8 - 1
GreenTree.Nachtragsmanagement.Web/Content/devex.css

@@ -35,4 +35,11 @@
 .devExListItemControlContainer > a { color: #009688; text-decoration: none; }
 .devExListItemControlContainer > a:hover { text-decoration: underline; }
 .dxeListBoxItemSelected_Material .devExListItemControlContainer > a { color: white; text-decoration: none; }
-.dxeListBoxItemSelected_Material .devExListItemControlContainer > a:hover { text-decoration: underline; }
+.dxeListBoxItemSelected_Material .devExListItemControlContainer > a:hover { text-decoration: underline; }
+
+.dxgvDataRow_Material td.dxgv { border-right: 1px solid #bfbfbf !important; border-bottom: 1px solid #bfbfbf !important; padding: 8px 10px; }
+.dxgvFilterRow_Material td.dxgv { border-right: 1px solid #bfbfbf !important; border-bottom: 1px solid #bfbfbf !important; }
+.dxgvHeader_Material { border: 1px solid #bfbfbf !important; border-top-width: 0 !important; border-left-width: 0 !important;  }
+.dxgvRBB { border-bottom: 1px solid #bfbfbf !important; }
+.dxgvHSDC { border-left: 1px solid #bfbfbf !important; border-top: 1px solid #bfbfbf !important; }
+.dxgvCSD { border-left: 1px solid #bfbfbf !important; }

+ 8 - 3
GreenTree.Nachtragsmanagement.Web/Controllers/AppendixController.cs

@@ -257,11 +257,16 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             foreach (var column in e.ColumnsInfo)
             {
                 if (column.FieldName == "CustomNumber") { column.ColumnWidth = 30; }
-                if (column.FieldName == "SiteDescription") { column.ColumnWidth = 60; }
+                //if (column.FieldName == "SiteDescription") { column.ColumnWidth = 60; }
+                if (column.FieldName == "SiteDescription") { column.IsVisible = false; column.IsDetail = true; }
+                if (column.FieldName == "SiteCustomNumber") { column.IsVisible = false; column.IsDetail = true; }
+                if (column.FieldName == "OfferingValue") { column.ColumnWidth = 80; }
+                if (column.FieldName == "NegotiationValue") { column.ColumnWidth = 80; }
                 if (column.FieldName == "DeviationDescription") { column.ColumnWidth = 40; }
-                if (column.FieldName == "RelationOfferingToNegotiation") { column.ColumnWidth = 70; }
-                if (column.FieldName == "RelationOfferingToDeviations") { column.ColumnWidth = 80; }
+                if (column.FieldName == "RelationOfferingToNegotiation") { column.ColumnWidth = 50; }
+                if (column.FieldName == "RelationOfferingToDeviations") { column.ColumnWidth = 50; }
                 if (column.FieldName == "StateDescription") { column.ColumnWidth = 70; }
+                if (column.FieldName == "CategoryValuesDescription") { column.IsVisible = false; column.IsDetail = true; }
                 if (column.FieldName == "OrderInvoiceCreatedDescription") { column.ColumnWidth = 45; }
                 if (column.FieldName == "Comment") { column.IsVisible = false; column.IsDetail = true; }
             }

+ 22 - 1
GreenTree.Nachtragsmanagement.Web/Controllers/SiteController.cs

@@ -116,6 +116,26 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             };
         }
 
+        /// <summary>
+        /// Gets a full deviation description of a given site
+        /// </summary>
+        /// <param name="id">The site id.</param>
+        public ActionResult GetDeviationDescription(int id)
+        {
+            var result = new JsonResult
+            {
+                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
+                Data = String.Empty
+            };
+
+            var site = _siteService.GetSiteById(id);
+            var siteModel = SiteDataModel.FromSite(site, false, _configurationService);
+
+            result.Data = siteModel.HtmlDeviationDescription;
+
+            return result;
+        }
+
         /// <summary>
         /// Callback result for site grid
         /// </summary>
@@ -250,10 +270,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 if (column.FieldName == "SiteDescription") { column.ColumnWidth = 80; }
                 if (column.FieldName == "Start") { column.ColumnWidth = 65; }
                 if (column.FieldName == "End") { column.ColumnWidth = 65; }
+                if (column.FieldName == "DeviationDescription") { column.IsVisible = false; column.IsDetail = true; }
                 if (column.FieldName == "AppendixDescription") { column.ColumnWidth = 60; }
                 if (column.FieldName == "DeviationValue") { column.ColumnWidth = 70; }
                 if (column.FieldName == "UserDescription") { column.ColumnWidth = 120; }
-                if (column.FieldName == "Comment") { column.IsVisible = false; column.IsDetail = true; }
+                if (column.FieldName == "Comment") { column.ColumnWidth = 100; }
             }
         }
 

+ 45 - 1
GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs

@@ -53,9 +53,14 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             s.SettingsBehavior.EnableCustomizationWindow = true;
             s.SettingsBehavior.AllowHeaderFilter = true;
             s.SettingsPager.AlwaysShowPager = true;
-            s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.NextColumn;
+            s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
             s.SettingsCookies.Enabled = true;
             s.SettingsCookies.CookiesID = "siteGridStateCookie";
+            s.SettingsPager.Position = PagerPosition.Bottom;
+            s.SettingsPager.PageSizeItemSettings.Visible = true;
+            s.SettingsPager.FirstPageButton.Visible = true;
+            s.SettingsPager.LastPageButton.Visible = true;
+            s.SettingsPager.NumericButtonCount = 5;
 
             s.Toolbars.Add(t =>
             {
@@ -150,6 +155,25 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.Visible = false;
                 column.MinWidth = 150;
                 column.Width = new Unit(12, UnitType.Percentage);
+                column.SetDataItemTemplateContent(c =>
+                {
+                    var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
+
+                    var deviationDescription = DataBinder.Eval(c.DataItem, "DeviationDescription");
+                    var text = deviationDescription == null
+                        ? String.Empty
+                        : deviationDescription.ToString();
+                    var isLongText = text.ToString().Length > 80;
+
+                    if (isLongText)
+                    {
+                        html.ViewContext.Writer.Write(text.Substring(0, 80) + " ...");
+                        html.ViewContext.Writer.Write(
+                            "<a href=\"#\" onclick='showDeviationDescription(" + id + ",this)'><br />Anzeigen</a>");
+                    }
+                    else
+                        html.ViewContext.Writer.Write(text);
+                });
             });
             s.Columns.Add(column =>
             {
@@ -315,6 +339,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
             s.SettingsCookies.Enabled = true;
             s.SettingsCookies.CookiesID = "deviationGridStateCookie";
+            s.SettingsPager.Position = PagerPosition.Bottom;
+            s.SettingsPager.PageSizeItemSettings.Visible = true;
+            s.SettingsPager.FirstPageButton.Visible = true;
+            s.SettingsPager.LastPageButton.Visible = true;
+            s.SettingsPager.NumericButtonCount = 5;
 
             s.Toolbars.Add(t =>
             {
@@ -718,6 +747,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
             s.SettingsCookies.Enabled = true;
             s.SettingsCookies.CookiesID = "appendixGridStateCookie";
+            s.SettingsPager.Position = PagerPosition.Bottom;
+            s.SettingsPager.PageSizeItemSettings.Visible = true;
+            s.SettingsPager.FirstPageButton.Visible = true;
+            s.SettingsPager.LastPageButton.Visible = true;
+            s.SettingsPager.NumericButtonCount = 5;
 
             s.Toolbars.Add(t =>
             {
@@ -1044,6 +1078,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
             s.SettingsCookies.Enabled = true;
             s.SettingsCookies.CookiesID = "mailNotificationGridStateCookie";
+            s.SettingsPager.Position = PagerPosition.Bottom;
+            s.SettingsPager.PageSizeItemSettings.Visible = true;
+            s.SettingsPager.FirstPageButton.Visible = true;
+            s.SettingsPager.LastPageButton.Visible = true;
+            s.SettingsPager.NumericButtonCount = 5;
 
             s.Toolbars.Add(t =>
             {
@@ -1194,6 +1233,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             s.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
             s.SettingsCookies.Enabled = true;
             s.SettingsCookies.CookiesID = "logGridStateCookie";
+            s.SettingsPager.Position = PagerPosition.Bottom;
+            s.SettingsPager.PageSizeItemSettings.Visible = true;
+            s.SettingsPager.FirstPageButton.Visible = true;
+            s.SettingsPager.LastPageButton.Visible = true;
+            s.SettingsPager.NumericButtonCount = 5;
 
             s.Toolbars.Add(t =>
             {

+ 22 - 8
GreenTree.Nachtragsmanagement.Web/Extensions/MVCxGridViewGeneratorHelper.cs

@@ -30,6 +30,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
         {
             const int initialGroupOffset = 0;
             const int subGroupOffset = 10;
+            const int detaillOffset = 15;
             const int bandHeight = 20;
             const bool shouldRepeatGroupHeadersOnEveryPage = false;
 
@@ -130,10 +131,22 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                     Font = new Font(report.Font, FontStyle.Bold)
                 });
 
+                report.StyleSheet.Add(new XRControlStyle
+                {
+                    Name = "DetailRowTable",
+                    Borders = DevExpress.XtraPrinting.BorderSide.All
+                });
+
                 report.StyleSheet.Add(new XRControlStyle
                 {
                     Name = "DetailRow",
                     BackColor = Color.FromArgb(209, 228, 255),
+                    Borders = DevExpress.XtraPrinting.BorderSide.None
+                });
+
+                report.StyleSheet.Add(new XRControlStyle
+                {
+                    Name = "DetailRowCell",
                     Borders = DevExpress.XtraPrinting.BorderSide.All
                 });
 
@@ -141,9 +154,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 {
                     Name = "DetailRowLabel",
                     Padding = new PaddingInfo(30, 600),
-                    Borders = DevExpress.XtraPrinting.BorderSide.Bottom | 
-                              DevExpress.XtraPrinting.BorderSide.Left | 
-                              DevExpress.XtraPrinting.BorderSide.Right
+                    Borders = DevExpress.XtraPrinting.BorderSide.None
                 });
 
                 report.StyleSheet.Add(new XRControlStyle
@@ -275,7 +286,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             {
                 var groupedColumns = gridViewState.GroupedColumns;
 
-                var pagewidth = (report.PageWidth - (report.Margins.Left + report.Margins.Right)) - groupedColumns.Count * subGroupOffset;
+                var pagewidth = (report.PageWidth - (report.Margins.Left + report.Margins.Right)) - groupedColumns.Count * subGroupOffset - detaillOffset;
                 var columns = GetColumnsInfo(gridViewState, pagewidth);
 
                 if (CustomizeColumnsCollection != null)
@@ -298,6 +309,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
 
                 var detailReportTable = new XRTable
                 {
+                    StyleName = "DetailRowTable",
                     OddStyleName = "DetailRow",
                     EvenStyleName = "DetailRow",
                     WidthF = pagewidth
@@ -308,18 +320,20 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 {
                     var cellDetail = new XRTableCell
                     {
-                        WidthF = pagewidth / detailColumns.Count
+                        WidthF = pagewidth / detailColumns.Count,
+                        StyleName = "DetailRowCell"
                     };
 
                     var label = new XRLabel
                     {
                         StyleName = "DetailRowLabel",
                         WidthF = pagewidth / detailColumns.Count,
-                        WordWrap = true
+                        WordWrap = true,
+                        Multiline = true
                     };
 
                     label.DataBindings.Add("Text", null, detailColumn.FieldName,
-                        "{0:" + detailColumn.GridViewColumn.DisplayFormat + "}");
+                        detailColumn.ColumnCaption + ":\n{0:" + detailColumn.GridViewColumn.DisplayFormat + "}");
 
                     cellDetail.Controls.Add(label);
 
@@ -327,7 +341,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 }
 
                 detailReportTable.Rows.Add(detailReportRow);
-                detailReportTable.LocationF = new PointF(groupedColumns.Count * subGroupOffset, 0);
+                detailReportTable.LocationF = new PointF(groupedColumns.Count * subGroupOffset + detaillOffset, 0);
 
                 DetailBand detailBand = new DetailBand();
                 detailBand.Height = detailReportTable.Height;

+ 1 - 0
GreenTree.Nachtragsmanagement.Web/GreenTree.Nachtragsmanagement.Web.csproj

@@ -340,6 +340,7 @@
     <Content Include="Views\Appendices\_AppendixViewPartial.cshtml" />
     <Content Include="Views\Appendices\_AppendixDeviationsPartial.cshtml" />
     <Content Include="Views\Deviations\_DeviationDataRowPartial.cshtml" />
+    <Content Include="Views\Sites\_SiteDeviationDescriptionPartial.cshtml" />
     <None Include="Web.Debug.config">
       <DependentUpon>Web.config</DependentUpon>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

+ 11 - 1
GreenTree.Nachtragsmanagement.Web/Models/Site/SiteDataModel.cs

@@ -27,7 +27,17 @@ namespace GreenTree.Nachtragsmanagement.Web.Models.Site
                 if (DeviationDescriptions == null)
                     return String.Empty;
                 else
-                    return String.Join(", ", DeviationDescriptions);
+                    return String.Join(" - ", DeviationDescriptions);
+            }
+        }
+        public string HtmlDeviationDescription
+        {
+            get
+            {
+                if (DeviationDescriptions == null)
+                    return String.Empty;
+                else
+                    return String.Join("</br>--------------</br>", DeviationDescriptions);
             }
         }
         public decimal? DeviationValue { get; set; }

+ 3 - 1
GreenTree.Nachtragsmanagement.Web/Views/Sites/View.cshtml

@@ -124,4 +124,6 @@
 	YesFunction = "function (s, e) { deleteSite(); }",
 	YesButtonName = "devButtonDeleteSiteYes",
 	NoButtonName = "devButtonDeleteSiteNo"
-})
+})
+
+@Html.Partial("~/Views/Sites/_SiteDeviationDescriptionPartial.cshtml")

+ 31 - 0
GreenTree.Nachtragsmanagement.Web/Views/Sites/_SiteDeviationDescriptionPartial.cshtml

@@ -0,0 +1,31 @@
+<div class="deviationDescriptionContainer">
+
+	<script>
+
+		function showDeviationDescription(id, element) {
+			if (!id || !element) return;
+			$.ajax({
+				url: '@Url.Action("GetDeviationDescription", "Site")',
+				data: { id: id },
+				success: function (response) {
+					$("#deviationDescriptionContent").html(response);
+					var deviationDescriptionPopup = MVCxClientPopupControl.Cast(devPopupControlDeviationDescription);
+					deviationDescriptionPopup.ShowAtElement(element);
+				}
+			});
+		}
+
+	</script>
+
+	@Html.DevExpress().PopupControl(p =>
+	{
+		p.Name = "devPopupControlDeviationDescription";
+		p.ShowHeader = false;
+		p.ShowFooter = false;
+		p.Width = new Unit(500, UnitType.Pixel);
+		p.SetContent("<div id=\"deviationDescriptionContent\"></div>");
+		p.CloseAction = CloseAction.OuterMouseClick;
+		p.PopupHorizontalAlign = PopupHorizontalAlign.OutsideLeft;
+	}).GetHtml()
+
+</div>