Pārlūkot izejas kodu

HelpPages abgeschlossen!

Arne Diekmann 8 gadi atpakaļ
vecāks
revīzija
358749c489

BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Funktionen_1.jpg


BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Funktionen_2.jpg


BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Funktionen_3.jpg


BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Funktionen_4.jpg


BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Funktionen_5.jpg


BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Login_1.jpg


BIN
GreenTree.Nachtragsmanagement.Web/Content/Images/HelpPages/Startseite_1.jpg


+ 10 - 0
GreenTree.Nachtragsmanagement.Web/Controllers/MiscController.cs

@@ -823,7 +823,17 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             try
             {
                 if (!ModelState.IsValid)
+                {
+                    var helpPages = _miscService.GetAllHelpPages();
+                    var helpPageModels = helpPages
+                        .Select(u => HelpPageDataModel.FromHelpPage(u, false))
+                        .ToList();
+
+                    ViewData["IsHelpPageSelectionTree"] = true;
+                    ViewData["AllHelpPages"] = helpPageModels;
+
                     return PartialView("~/Views/Misc/_HelpPageEditPartial.cshtml", helpPageModel);
+                }
 
                 if (helpPageModel.Id == -1)
                 {

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

@@ -439,6 +439,7 @@
     <Compile Include="Validation\Deviation\DisturbanceDataModelValidator.cs" />
     <Compile Include="Validation\Deviation\StatusDataModelValidator.cs" />
     <Compile Include="Validation\Deviation\DeviationDataModelValidator.cs" />
+    <Compile Include="Validation\Misc\HelpPageDataModelValidator.cs" />
     <Compile Include="Validation\Misc\MailNotificationDataModelValidator.cs" />
     <Compile Include="Validation\Site\SiteDataModelValidator.cs" />
   </ItemGroup>

+ 1 - 0
GreenTree.Nachtragsmanagement.Web/Validation/AppendixValidatorFactory.cs

@@ -36,6 +36,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Validation
             validators.Add(typeof(IValidator<CategoryDataModel>), new CategoryDataModelValidator());
             validators.Add(typeof(IValidator<SiteDataModel>), new SiteDataModelValidator());
             validators.Add(typeof(IValidator<MailNotificationDataModel>), new MailNotificationDataModelValidator());
+            validators.Add(typeof(IValidator<HelpPageDataModel>), new HelpPageDataModelValidator());
             validators.Add(typeof(IValidator<ConfigItemDataModel>), new ConfigItemDataModelValidator());
         }
 

+ 20 - 0
GreenTree.Nachtragsmanagement.Web/Validation/Misc/HelpPageDataModelValidator.cs

@@ -0,0 +1,20 @@
+using FluentValidation;
+using GreenTree.Nachtragsmanagement.Web.Models.Deviation;
+using GreenTree.Nachtragsmanagement.Web.Models.Misc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace GreenTree.Nachtragsmanagement.Web.Validation.Misc
+{
+    public class HelpPageDataModelValidator : AbstractValidator<HelpPageDataModel>
+    {
+        public HelpPageDataModelValidator()
+        {
+            RuleFor(m => m.Title)
+                .NotEmpty()
+                    .WithMessage("Ein Titel muss eingegeben werden.");
+        }
+    }
+}

+ 12 - 10
GreenTree.Nachtragsmanagement.Web/Views/Misc/HelpPages.cshtml

@@ -24,9 +24,12 @@
 	});
 
 	function setHelpContentHeight() {
-		var height = $(window).height() - 50;
-		$("#helpPageNavigation").height(height);
-		$("#helpPageContent").height(height);
+		var height = $(window).height();
+		$("#helpPageNavigation").height(height - 60);
+		$("#helpPageContent").height(height - 32);
+		if (typeof devHelpPageHtmlContentEditor !== 'undefined') {
+			devHelpPageHtmlContentEditor.SetHeight(height);
+		}
 	}
 
 	function viewHelpPage(id) {
@@ -35,9 +38,7 @@
 			url: '@Url.Action("ViewHelpPage", "Misc")',
 			data: { Id: id },
 			success: function (response) {
-				setTimeout(function () {
-					$("#helpPageContent").html(response);
-				}, 200);
+				$("#helpPageContent").html(response);
 			},
 			error: function () {
 				 alert("error occured");
@@ -53,7 +54,7 @@
 			success: function (response) {
 				setTimeout(function () {
 					$("#helpPageContent").html(response);
-					devHelpPageHtmlContentEditor.SetHeight($(window).height() - 18);
+					devHelpPageHtmlContentEditor.SetHeight($("#helpPageContent").height() - 1);
 				}, 200);
 			},
 			error: function () {
@@ -137,19 +138,20 @@
 
 	#helpPageContent {
 		color: black;
+		overflow: auto !important;
 	}
 </style>
 
 <table class="helpTable">
 	<tr>
-		<td style="width: 20%">
+		<td style="width: 20%; min-width: 313px">
 			<div class="helpPageMenu">
 				@Html.DevExpress().Button(b =>
 				{
 					b.Name = "devButtonNewHelpPage";
 					b.Text = "Neu";
 					b.UseSubmitBehavior = false;
-					b.RenderMode = ButtonRenderMode.Link;
+					//b.RenderMode = ButtonRenderMode.Link;
 					b.ClientSideEvents.Click = "function (s, e) { editHelpPage(-1); }";
 				}).GetHtml()
 			</div>
@@ -158,7 +160,7 @@
 			</div>
 		</td>
 		<td style="width: 80%">
-			<div id="helpPageContent" class="mCustomScrollbar" data-mcs-theme="minimal-dark" style="width: 100%">
+			<div id="helpPageContent" style="width: 100%">
 
 			</div>
 		</td>

+ 31 - 10
GreenTree.Nachtragsmanagement.Web/Views/Misc/_HelpPageEditPartial.cshtml

@@ -16,12 +16,13 @@
 		}
 
 		function saveHelpPage() {
+			devLoadingPanelSave.Show();
 			var form = $("#helpPageEditForm");
 			var selectedNode = devHelpPageSelectionTree.GetSelectedNode();
 			$("#Content").val(devHelpPageHtmlContentEditor.GetHtml());
-			$("#ParentId").val(selectedNode == null
-				? null
-				: selectedNode.name);
+			if (selectedNode != null) {
+				$("#ParentId").val(selectedNode.name);
+			}
 			$(form).submit(function (e) {
 				$.ajax({
 					type: "POST",
@@ -29,7 +30,6 @@
 					data: form.serialize(),
 					success: function (response) {
 						setTimeout(function () {
-							$(".helpPageEditFormEditContainer").remove();
 							if (response.startsWith("success")) {
 								if (saveOperation == "save") {
 									devPopupControlEditHelpPage.Hide();
@@ -38,8 +38,12 @@
 									window.location = '@Url.Action("ViewHelpPages", "Misc")' + '?id=' + id;
 								}
 							} else {
-								$("body").append(response);
+								$("#helpPageContent").html(response);
+								setTimeout(function () {
+									devPopupControlEditHelpPage.Show();
+								}, 100);
 							}
+							devLoadingPanelSave.Hide();
 						}, 200);
 					}
 				});
@@ -54,7 +58,18 @@
 		}
 	</script>
 
-	@Html.Partial("~/Views/Misc/_HelpPageHtmlEditPartial.cshtml", Model)
+	@Html.DevExpress().LoadingPanel(t =>
+	{
+		t.Name = "devLoadingPanelSave";
+		t.Text = "Wird gespeichert ...";
+		t.Styles.LoadingDiv.Opacity = 0;
+		t.Modal = true;
+	}).GetHtml()
+
+	@using (Html.BeginForm())
+	{
+		@Html.Partial("~/Views/Misc/_HelpPageHtmlEditPartial.cshtml", Model)
+	}
 
 	@using (Html.BeginForm("EditHelpPage", "Misc", FormMethod.Post, new { id = "helpPageEditForm" }))
 	{
@@ -71,10 +86,11 @@
 				s.HeaderText = "\"" + Model.Title + "\" bearbeiten";
 
 			s.Modal = true;
-			s.Width = new Unit(250, UnitType.Pixel);
+			s.Width = new Unit(350, UnitType.Pixel);
 			s.CloseAction = CloseAction.CloseButton;
 			s.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
-			s.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;
+			s.PopupVerticalAlign = PopupVerticalAlign.TopSides;
+			s.PopupVerticalOffset = 80;
 			s.AllowDragging = false;
 			s.AllowResize = false;
 			s.ShowFooter = false;
@@ -92,16 +108,21 @@
 					t.Width = new Unit(100, UnitType.Percentage);
 				}).Render();
 
-				ViewContext.Writer.Write(Html.CustomLabelFor(m => m.ParentId, "Hilfe-Seiten:"));
+				ViewContext.Writer.Write(Html.CustomLabelFor(m => m.ParentId, "Übergeordnete Seite:"));
 				ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.ParentId).ToHtmlString());
 				Html.DevExpress().DropDownEdit(t =>
 				{
 					t.Name = "ParentText";
 					t.Width = new Unit(100, UnitType.Percentage);
+					t.Text = Model.ParentText;
 
 					t.SetDropDownWindowTemplateContent(l =>
 					{
-						Html.RenderPartial("~/Views/Misc/_HelpPageTreePartial.cshtml", ViewData["AllHelpPages"]);
+						ViewContext.Writer.Write("<div style=\"width: 100%; height: 230px; overflow: auto\">");
+						{
+							Html.RenderPartial("~/Views/Misc/_HelpPageTreePartial.cshtml", ViewData["AllHelpPages"]);
+						}
+						ViewContext.Writer.Write("</div>");
 					});
 				}).Render();
 

+ 1 - 42
GreenTree.Nachtragsmanagement.Web/Views/Misc/_HelpPageTreePartial.cshtml

@@ -18,45 +18,4 @@
 
 	if (Model != null)
 		GreenTree.Nachtragsmanagement.Web.Controllers.MiscController.CreateHelpPageTree(Model, t.Nodes, null);
-}).GetHtml()
-
-@*<ul style="min-width: 260px">
-	@foreach (var category in Model)
-	{
-		if (category.HelpPageId == -1)
-		{
-			<li>@category.Text</li>
-		}
-		else
-		{
-			<li>
-				<a href="#" title="@category.Text" onclick="viewHelpPage(@category.HelpPageId)">@category.Text</a>
-			</li>
-		}
-
-		<ul>
-			@foreach (var subcategory in category.Elements)
-			{
-				if (subcategory.HelpPageId == -1)
-				{
-					<li>@subcategory.Text</li>
-				}
-				else
-				{
-					<li>
-						<a href="#" title="@subcategory.Text" onclick="viewHelpPage(@subcategory.HelpPageId)">@subcategory.Text</a>
-					</li>
-				}
-
-				<ul>
-					@foreach (var helpPage in subcategory.Elements)
-					{
-						<li>
-							<a href="#" title="@helpPage.Text" onclick="viewHelpPage(@helpPage.HelpPageId)">@helpPage.Text</a>
-						</li>
-					}
-				</ul>
-			}
-		</ul>
-	}
-</ul>*@
+}).GetHtml()

+ 2 - 2
GreenTree.Nachtragsmanagement.Web/Views/Misc/_HelpPageViewPartial.cshtml

@@ -9,7 +9,7 @@
 			b.Name = "devButtonEditHelpPage";
 			b.Text = "Bearbeiten";
 			b.UseSubmitBehavior = false;
-			b.RenderMode = ButtonRenderMode.Link;
+			//b.RenderMode = ButtonRenderMode.Link;
 			b.ClientSideEvents.Click = "function (s, e) { editHelpPage(" + Model.Id + "); }";
 		}).GetHtml()
 	</div>
@@ -19,7 +19,7 @@
 			b.Name = "devButtonDeleteHelpPage";
 			b.Text = "Löschen";
 			b.UseSubmitBehavior = false;
-			b.RenderMode = ButtonRenderMode.Link;
+			//b.RenderMode = ButtonRenderMode.Link;
 			b.ClientSideEvents.Click = "function (s, e) { confirmDelete(" + Model.Id + "); }";
 		}).GetHtml()
 	</div>