Pass value by popup Ajax

 

Project : Colruty_935
control.ordertemplate.js




Extended order template controller

[HttpPost]
        public ActionResult SaveNewOrderTemplate(string name)
        {              
            var existingTemplates = ShopApi.OrderTemplates.GetTemplates();
            if (existingTemplates.Any(t => t.Name == name))
            { 
                var orderTemplate_SaveFailedInUse = CommerceFrameworkBase.SanaTexts.GetSanaText("OrderTemplate_SaveFailedInUse");
                return Json(new { id = 0, error= orderTemplate_SaveFailedInUse }, JsonRequestBehavior.AllowGet);//fail
            }
 
            ShopApi.OrderTemplates.SaveOrderTemplate(name); 
 
            // Get Template by name 
            var existingTemplates2 = ShopApi.OrderTemplates.GetTemplates();
            var template2 = existingTemplates2.Where(x => x.Name == name).FirstOrDefault();
            var tempId = template2.Id;
            //return Json(tempId, JsonRequestBehavior.AllowGet);//Sucess
            return Json( new { id= tempId }, JsonRequestBehavior.AllowGet);//Sucess
                 
        }



// on New Order Template popup Save button click
    var btnSave = document.getElementById('OrderTemplate_Save');
    if (btnSave != null) {
        btnSave.onclick = savenewordertemplate;
    }
    
    function savenewordertemplate() {        
        var newOrderTemplateName = $("#newOrderTemplateName").val();
 
        $.ajax({
            url: Sana.Urls.Home() + 'profile/ordertemplates/savenewordertemplate',
            method: "POST",
            data: { name: newOrderTemplateName }
            ,
            //error: function () {
            //    alert("Ajax call failed");
            //}
        }).done(function (data) {
 
            if (data != null) {
 
                if (data.id == 0) {                    
                    var error = data.error;
                    $("#template_invalid").append(error);
                    return;
                }
 
                var id = data.id;
                var retunurl = Sana.Urls.Home() + "profile/ordertemplates/details?templateId=" + id;
                window.location.replace(retunurl);
            }
            
        })
    }

to open popup javascript 
var el = document.getElementById('SaveOrderTemplate_test');
    if (el != null) {
        el.onclick = openRegisterTerms;
    }
 
 
    function openRegisterTerms() {
        Sana.Popup.open('#createOrderTemplatePopup');
    }

popup view 

_CreateOrderTemplate.cshtml

@model NewOrderTemplateModel
 
<div id="createOrderTemplatePopup" style="displaynone;">
    
    <div class="cnt-column">
        <h2>@Sana.SimpleText("OrderTemplate_SavePopupHeader")</h2>
        @*@Html.EditorForModel()*@
        @*<input type="text" id="newOrderTemplateName" name="OrderTemplateName">*@
        @Html.TextBox("newOrderTemplateName", Model.Name)
        <div id="template_invalid"></div>
    </div>
    <div class="ftr-column">
        <a class="btn-cancel btn-close-dialog" title="@Sana.SimpleText("ButtonText_Cancel")">
            <span class="btn-cnt">@Sana.SimpleText("ButtonText_Cancel")</span>
        </a> 
        <a id="OrderTemplate_Save" class="btn btn-small">@Sana.SimpleText("save""save")</a>
 
 
    </div>
 
</div>

//--------------------------

need to try by passinf model .

for Forehand Project

https://sanacommerce.visualstudio.com/Sana%20Projects/_workitems/edit/92470/

https://sanacommerce.visualstudio.com/Sana%20Projects/_workitems/edit/92470/

    ExtendedOrdersController

[HttpPost]
[SanaValidateAntiForgeryToken]
        [RequireAbility(AbilityTo.PromoteQuote)]
        public virtual ActionResult PromoteToOrderWithData(string quoteId, string referanceNo = nullstring deliveryDate = nullbool ignoreWarning = false)
        {
            ...

            // Ticket 92470: [Forehand] 3.6. Quote-to-order conversion – Requested delivery date and reference no.
            // Update Reference No and Delivery Date.
            if (!deliveryDate.IsNullOrWhiteSpace())
            {
                var date = DateTime.Parse(deliveryDate);
                quote.RequestedDeliveryDate = new Date(date);
            }
            if (!string.IsNullOrEmpty(referanceNo))
            {
                quote.ReferenceNo = referanceNo;
            }

            ...
        } 

ExtendedOrderDetailsModel

public class ExtendedOrderDetailsModel : OrderDetailsModel
    {
        /// Ticket 92470: [Forehand] 3.6. Quote-to-order conversion – Requested delivery date and reference no.
        /// <summary>
        /// Get or set the reference number.
        /// </summary>        
        [AllowHtml]
        //[Required(ErrorMessage = "Name Required")]
        [StringLength(20, ErrorMessageResourceName = SanaTextKeys.MaxLength)]
        [Display(Name = "ReferenceNumber")]
        [ReferenceNoConditionalRequired(ErrorMessageResourceName = SanaTextKeys.RequiredField)]
        public string ReferenceNumber { getset; }

        /// Ticket 92470: [Forehand] 3.6. Quote-to-order conversion – Requested delivery date and reference no.
        /// <summary>
        /// Get or set the delivery date.
        /// </summary>
        [Display(Name = "RequestedDeliveryDate")]
        [GreaterThanToday(ErrorMessageResourceName = SanaTextKeys.InvalidField)]
        public Date? DeliveryDate  { getset; }
    }


to view add form section to handle validate by it self.
button set to type Submit

_PromotePopups.cshtml

<div id="quotePromotionConfirmationPopup" class="popup-cnt">
        @*<form id="quotePromotionForm" onsubmit="return saveQuoteInfo2()">*@
        <form id="quotePromotionForm"> <------
            <div class="cnt-column">
                <h2>@Sana.SimpleText("QuotePromotionConfirmationPopup_Title")</h2>
                <div>@Sana.RichText("QuotePromotionConfirmationPopup_Description", makeImagesResponsive: false)</div>
            </div>
 
            <div>
                @Html.Partial("_QuoteInfo", model)
            </div>
 
            <div class="ftr-column">
                @cancelBtn
                @*@promoteBtn*@               
 
                @* Ticket 92470: [Forehand] 3.6. Quote-to-order conversion – Requested delivery date and reference no. *@               
                <input type="submit" id="QuoteInfo_Submit" value="Continue" class="btn btn-small btn-action btn-continue-promote" />
            </div>
        </form> 
    </div>