| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552 |
- @using GreenTree.Nachtragsmanagement.Web.Extensions
- @{
- var userContext = GreenTree.Nachtragsmanagement.Core.CommonHelper.UserContext();
- }
- @model GreenTree.Nachtragsmanagement.Web.Models.Site.SiteDataModel
- <div class="siteEditContainer">
- <script>
- var textSeparator = ", ";
- var isDragging = false;
- var dragStartY = 0;
- var isScrolling = false;
- var scrollInterval = null;
- var deleteId = null;
- $(document).ready(function () {
- setTimeout(function () {
- devPopupControlEditSite.SetWidth($(window).width() - 60);
- }, 200);
- $(window).mouseup(function () {
- isDragging = false;
- });
- $(window).mousemove(function (e) {
- if (isDragging) {
- var offset = e.clientY - dragStartY;
- var scrollOffset = $("#siteTreeContainer").scrollTop();
- if (isDragging) {
- var result = scrollOffset + (offset / 10);
- $("#siteTreeContainer").scrollTop(result);
- }
- }
- });
- });
- function saveSite() {
- var form = $("#siteEditForm");
- $(form).submit(function (e) {
- $.ajax({
- type: "POST",
- url: '@Url.Action("EditSite", "Site")',
- data: form.serialize(),
- success: function (response) {
- setTimeout(function () {
- $(".siteEditContainer").remove();
- if (response == "success") {
- devGridViewSite.PerformCallback();
- } else {
- $("body").append(response);
- }
- }, 200);
- }
- });
- e.preventDefault();
- });
- form.submit();
- }
- function saveSiteForAppend() {
- devPopupControlSaveForAppend.Hide();
- var form = $("#siteEditForm");
- $(form).submit(function (e) {
- $.ajax({
- type: "POST",
- url: '@Url.Action("EditSiteForAppend", "Site")',
- data: form.serialize(),
- success: function (response) {
- setTimeout(function () {
- $(".siteEditContainer").remove();
- $("body").append(response);
- }, 200);
- }
- });
- e.preventDefault();
- });
- form.submit();
- }
- function addAppendixToSite(siteId) {
- if (!siteId) return;
- if (siteId == -1) {
- devPopupControlSaveForAppend.Show();
- return;
- }
- $.ajax({
- url: '@Url.Action("AppendAppendixToSite", "Appendix")',
- data: { SiteId: siteId },
- success: function (response) {
- setTimeout(function () {
- $(".deviationEditContainer").remove();
- $(".appendixEditContainer").remove();
- $("body").append(response);
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function addDeviationToSite(siteId) {
- if (!siteId) return;
- $.ajax({
- url: '@Url.Action("AppendDeviationToSite", "Deviation")',
- data: { SiteId: siteId },
- success: function (response) {
- setTimeout(function () {
- $(".deviationEditContainer").remove();
- $(".appendixEditContainer").remove();
- $("body").append(response);
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function addDeviationToAppendix(appendixId) {
- if (!appendixId) return;
- $.ajax({
- url: '@Url.Action("AppendDeviationToAppendix", "Deviation")',
- data: { AppendixId: appendixId },
- success: function (response) {
- setTimeout(function () {
- $(".deviationEditContainer").remove();
- $(".appendixEditContainer").remove();
- $("body").append(response);
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function editDeviation(id) {
- if (!id) return;
- $.ajax({
- url: '@Url.Action("EditDeviation", "Deviation")',
- data: { Id: id },
- success: function (response) {
- setTimeout(function () {
- $(".deviationEditContainer").remove();
- $(".appendixEditContainer").remove();
- $("body").append(response);
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function confirmDeleteDeviation(id) {
- if (!id) return;
- deleteId = id;
- $.ajax({
- type: "GET",
- url: '@Url.Action("GetDeviation", "Deviation")',
- data: { Id: id },
- success: function (response) {
- if (response == "notFound") return;
- var deviation = JSON.parse(response);
- var popupControl = MVCxClientPopupControl.Cast(devPopupControlDeleteDeviation);
- popupControl.SetHeaderText(popupControl.GetHeaderText().replace("{deviation}", deviation.CustomNumber));
- $(".dialogTextDeviation").text($(".dialogTextDeviation").text().replace("{deviation}", deviation.CustomNumber));
- popupControl.Show();
- }
- });
- }
- function deleteDeviation() {
- $.ajax({
- type: "POST",
- url: '@Url.Action("DeleteDeviation", "Deviation")',
- data: { Id: deleteId },
- success: function (response) {
- var popupControl = MVCxClientPopupControl.Cast(devPopupControlDeleteDeviation);
- popupControl.Hide();
- setTimeout(function () {
- devTreeListSiteDeviationAppendices.PerformCallback();
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function assignDeviationToAppendix(id, elem) {
- if (!id || !elem) return;
- $.ajax({
- type: "GET",
- url: '@Url.Action("AssignDeviationToAppendix", "Deviation")',
- data: { Id: id },
- success: function (response) {
- $(".deviationAssignContainer").remove();
- $("body").append(response);
- devPopupControlAssignDeviation.ShowAtElement(elem);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function editAppendix(id) {
- if (!id) return;
- $.ajax({
- url: '@Url.Action("EditAppendix", "Appendix")',
- data: { Id: id },
- success: function (response) {
- setTimeout(function () {
- $(".deviationEditContainer").remove();
- $(".appendixEditContainer").remove();
- $("body").append(response);
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function confirmDeleteAppendix(id) {
- if (!id) return;
- deleteId = id;
- $.ajax({
- type: "GET",
- url: '@Url.Action("GetAppendix", "Appendix")',
- data: { Id: id },
- success: function (response) {
- if (response == "notFound") return;
- var appendix = JSON.parse(response);
- var popupControl = MVCxClientPopupControl.Cast(devPopupControlDeleteAppendix);
- popupControl.SetHeaderText(popupControl.GetHeaderText().replace("{appendix}", appendix.CustomNumber));
- $(".dialogTextAppendix").text($(".dialogTextAppendix").text().replace("{appendix}", appendix.CustomNumber));
- popupControl.Show();
- }
- });
- }
- function deleteAppendix() {
- $.ajax({
- type: "POST",
- url: '@Url.Action("DeleteAppendix", "Appendix")',
- data: { Id: deleteId },
- success: function (response) {
- var popupControl = MVCxClientPopupControl.Cast(devPopupControlDeleteAppendix);
- popupControl.Hide();
- setTimeout(function () {
- devTreeListSiteDeviationAppendices.PerformCallback();
- }, 200);
- },
- error: function () {
- alert("error occured");
- }
- });
- }
- function startSiteTreeNodeDrag(s, e) {
- if (!s || !e) return;
- if (e.nodeKey[0] == "a") {
- e.cancel = true;
- return;
- }
- dragStartY = e.htmlEvent.clientY;
- isDragging = true;
- var source = e.nodeKey;
- }
- function endSiteTreeNodeDrag(s, e) {
- if (!s || !e) return;
- isDragging = false;
- var sourceKey = e.nodeKey;
- var targetKey = devTreeListSiteDeviationAppendices.GetNodeKeyByRow(e.targetElement);
- if (!sourceKey || !targetKey) return;
- $.ajax({
- type: "POST",
- url: '@Url.Action("AssignDeviationToEntity", "Site")',
- data: { SiteId: @Model.Id, SourceKey: sourceKey, TargetKey: targetKey },
- success: function (response) {
- if (response == "success") {
- setTimeout(function () {
- devTreeListSiteDeviationAppendices.PerformCallback();
- }, 200);
- }
- }
- });
- }
- function onDeviationSaveSuccess() {
- devTreeListSiteDeviationAppendices.PerformCallback();
- }
- function onAppendixSaveSuccess() {
- devTreeListSiteDeviationAppendices.PerformCallback();
- }
- function onListBoxSelectionChanged(s, e) {
- updateText();
- }
- function updateText() {
- var selectedItems = UserValues.GetSelectedItems();
- devDropDownListUserValues.SetText(getSelectedItemsText(selectedItems));
- }
- function synchronizeListBoxValues(s, e) {
- UserValues.UnselectAll();
- var texts = s.GetText().split(textSeparator);
- var values = getValuesByTexts(texts);
- UserValues.SelectValues(values);
- updateText();
- }
- function getSelectedItemsText(items) {
- var texts = [];
- for (var i = 0; i < items.length; i++)
- texts.push(items[i].text);
- return texts.join(textSeparator);
- }
- function getValuesByTexts(texts) {
- var actualValues = [];
- var item;
- for (var i = 0; i < texts.length; i++) {
- item = UserValues.FindItemByText(texts[i]);
- if (item != null)
- actualValues.push(item.value);
- }
- return actualValues;
- }
- </script>
- <style>
- .siteTreeList { }
- .siteTreeList a { text-decoration: none; }
- .siteTreeList a:hover { text-decoration: underline; }
- .siteEditLayoutTable { width: 100%; }
- .siteEditLayoutTable > tbody > tr > td { width: 50%; padding-right: 8px; vertical-align: top }
- </style>
- @Html.DevExpress().PopupControl(s =>
- {
- s.Name = "devPopupControlEditSite";
- if (Model.Id == -1)
- s.HeaderText = "Neue Baustelle erstellen";
- else
- s.HeaderText = "\"" + Model.CustomNumber + "\" bearbeiten";
- s.Modal = true;
- s.Width = new Unit(100, UnitType.Percentage);
- s.CloseAction = CloseAction.CloseButton;
- s.PopupHorizontalAlign = PopupHorizontalAlign.LeftSides;
- s.PopupVerticalAlign = PopupVerticalAlign.TopSides;
- s.PopupHorizontalOffset = 20;
- s.PopupVerticalOffset = 10;
- s.AllowDragging = true;
- s.AllowResize = true;
- s.ShowMaximizeButton = true;
- s.ShowFooter = false;
- s.ShowOnPageLoad = true;
- s.SetContent(() =>
- {
- using (Html.BeginForm("EditSite", "Site", FormMethod.Post, new { id = "siteEditForm" }))
- {
- ViewContext.Writer.Write("<div class='editFormWrapper'>");
- ViewContext.Writer.Write("<input type=\"hidden\" value=\"" + Model.Id + "\" id=\"Id\" name=\"Id\" />");
- ViewContext.Writer.Write("<table class=\"siteEditLayoutTable\"><tbody><tr><td>");
- {
- ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
- {
- ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 30%'>");
- {
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.CustomNumber, "Kostenstelle:"));
- ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.CustomNumber).ToHtmlString());
- Html.DevExpress().TextBoxFor(m => m.CustomNumber, t =>
- {
- t.Width = new Unit(90, UnitType.Percentage);
- }).Render();
- }
- ViewContext.Writer.Write("</div>");
- ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 70%'>");
- {
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Description, "Bauvorhaben:"));
- ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Description).ToHtmlString());
- Html.DevExpress().TextBoxFor(m => m.Description, t =>
- {
- t.Width = new Unit(99, UnitType.Percentage);
- }).Render();
- }
- ViewContext.Writer.Write("</div>");
- }
- ViewContext.Writer.Write("</div>");
- ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
- {
- ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 52%'>");
- {
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Start, "Start:"));
- ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Start).ToHtmlString());
- Html.DevExpress().DateEditFor(m => m.Start, t =>
- {
- t.Width = new Unit(95, UnitType.Percentage);
- }).Render();
- }
- ViewContext.Writer.Write("</div>");
- ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 48%'>");
- {
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.End, "Ende:"));
- Html.DevExpress().DateEditFor(m => m.End, t =>
- {
- t.Width = new Unit(98, UnitType.Percentage);
- }).Render();
- }
- ViewContext.Writer.Write("</div>");
- }
- ViewContext.Writer.Write("</div>");
- }
- ViewContext.Writer.Write("</td><td>");
- {
- ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
- {
- ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 100%'>");
- {
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.UserValues, "Benutzer:"));
- ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.UserValues).ToHtmlString());
- Html.DevExpress().DropDownEdit(t =>
- {
- t.Name = "devDropDownListUserValues";
- t.Width = new Unit(100, UnitType.Percentage);
- t.Text = Model.UserDescription;
- t.SetDropDownWindowTemplateContent(l =>
- {
- Html.DevExpress().ListBox(lb =>
- {
- lb.Name = "UserValues";
- lb.Width = new Unit(100, UnitType.Percentage);
- lb.Height = new Unit(250, UnitType.Pixel);
- lb.Properties.TextField = "Description";
- lb.Properties.ValueField = "Id";
- lb.Properties.ValueType = typeof(int);
- lb.Properties.SelectionMode = ListEditSelectionMode.CheckColumn;
- lb.ControlStyle.Border.BorderStyle = BorderStyle.None;
- lb.PreRender = (sender, e) =>
- {
- var listBox = sender as MVCxListBox;
- foreach (ListEditItem listItem in listBox.Items)
- {
- if (Model.UserValues == null || !Model.UserValues.Any(m => m == (int)listItem.Value)) continue;
- listItem.Selected = true;
- }
- };
- lb.Properties.ClientSideEvents.SelectedIndexChanged = "function (s, e) { onListBoxSelectionChanged(s, e); }";
- }).BindList(ViewData["AllUsersWithRole"]).Render();
- t.Properties.ClientSideEvents.TextChanged = "function (s, e) { synchronizeListBoxValues(s, e); }";
- t.Properties.ClientSideEvents.DropDown = "function (s, e) { synchronizeListBoxValues(s, e); }";
- });
- }).Render();
- }
- ViewContext.Writer.Write("</div>");
- }
- ViewContext.Writer.Write("</div>");
- ViewContext.Writer.Write("<div class='inlineModelPropertyContainer'>");
- {
- ViewContext.Writer.Write("<div class='inlineModelProperty' style='width: 100%'>");
- {
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Comment, "Kommentar:"));
- ViewContext.Writer.Write(Html.ValidationMessageFor(m => m.Comment).ToHtmlString());
- Html.DevExpress().TextBoxFor(m => m.Comment, t =>
- {
- t.Width = new Unit(100, UnitType.Percentage);
- }).Render();
- }
- ViewContext.Writer.Write("</div>");
- }
- ViewContext.Writer.Write("</div>");
- }
- ViewContext.Writer.Write("</td></tr></tbody></table>");
- ViewContext.Writer.Write(Html.CustomLabelFor(m => m.Deviations, "Vertragsabweichungen / Nachträge:"));
- ViewContext.Writer.Write("<div id=\"siteTreeContainer\" style='width: 100%; overflow: auto; max-height: 450px; border: 1px solid #d0d0d0'>");
- {
- ViewContext.Writer.Write(Html.Partial("~/Views/Sites/_SiteEditTreePartial.cshtml", Model).ToHtmlString());
- }
- ViewContext.Writer.Write("</div>");
- ViewContext.Writer.Write("</div>");
- Html.RenderPartial(
- "~/Views/Shared/_PopupButtonPanel.cshtml",
- new GreenTree.Nachtragsmanagement.Web.Models.Global.PopupModel
- {
- PopupName = "devPopupControlEditSite",
- AcceptFunction = "function (s, e) { saveSite(); }"
- }
- );
- }
- });
- s.Styles.Content.Paddings.Padding = new Unit(0);
- s.Styles.ModalBackground.Opacity = 0;
- }).GetHtml()
- @Html.Partial("~/Views/Shared/_PopupDialogYesNo.cshtml", new GreenTree.Nachtragsmanagement.Web.Models.Global.YesNoDialogModel
- {
- PopupName = "devPopupControlSaveForAppend",
- Content = "<div class='dialogTextSaveForAppend' style='padding: 12px'>Damit ein Nachtrag für die Baustelle erfasst werden kann, " +
- "muss Sie zunächst gespeichert werden. Soll die Baustelle jetzt gespeichert werden?</div>",
- HeaderText = "Baustelle speichern",
- YesFunction = "function (s, e) { saveSiteForAppend(); }",
- YesButtonName = "devButtonSaveForAppendYes",
- NoButtonName = "devButtonSaveForAppendNo"
- })
- @Html.Partial("~/Views/Shared/_PopupDialogYesNo.cshtml", new GreenTree.Nachtragsmanagement.Web.Models.Global.YesNoDialogModel
- {
- PopupName = "devPopupControlDeleteAppendix",
- Content = "<div class='dialogTextAppendix' style='padding: 12px'>Sind Sie sicher, dass Sie den Nachtrag \"{appendix}\" und " +
- "alle zugehörigen Vertragsabweichungen löschen möchten? Der Vorgang kann nicht rückgängig gemacht werden.</div>",
- HeaderText = "\"{appendix}\" löschen",
- YesFunction = "function (s, e) { deleteAppendix(); }",
- YesButtonName = "devButtonDeleteAppendixYes",
- NoButtonName = "devButtonDeleteAppendixNo"
- })
- @Html.Partial("~/Views/Shared/_PopupDialogYesNo.cshtml", new GreenTree.Nachtragsmanagement.Web.Models.Global.YesNoDialogModel
- {
- PopupName = "devPopupControlDeleteDeviation",
- Content = "<div class='dialogTextDeviation' style='padding: 12px'>Sind Sie sicher, dass Sie die Vertragsabweichung \"{deviation}\" " +
- "löschen möchten? Der Vorgang kann nicht rückgängig gemacht werden.</div>",
- HeaderText = "\"{deviation}\" löschen",
- YesFunction = "function (s, e) { deleteDeviation(); }",
- YesButtonName = "devButtonDeleteDeviationYes",
- NoButtonName = "devButtonDeleteDeviationNo"
- })
- </div>
|