<td class="text-center delete-btn"> <a class="hyp hyp-remove btn-delete-icon" data-src="@CurrentView.Url.Action("Remove")"> @CurrentView.Sana.SimpleText("") </a> </td>
page.ordertemplate.js
// Ticket 79482: [Wave 2] 3.7.1.EDITABLE QUICK ORDERING TEMPLATES // Remove item/s form Template details page. $(document).on("click", "#orderTemplateDetailsPage .hyp-remove", function (event) { event.preventDefault(); templateToDealte = ""; templateToClarCashe = ""; deletedRow = ""; var dataToDelete = {}, $row = $(this).closest('tr'); dataToDelete.src = $(this).attr('data-src'); dataToDelete.product = $row.attr('data-templatelineid'); dataToDelete.basket = $row.attr('data-basketid'); ($row.hasClass('row-header') ? $row.nextUntil('.upper-row') : $row) .find('input[type=text]') .prop('disabled', 'true'); deletedRow = $row; templateToDealte = dataToDelete.product; templateToClarCashe = dataToDelete.basket; Sana.OrderTemplateItemDeletePopup.open(); });
When User click OK button
_templateDetails.cshtml ()
<div id="deleteOrderTemplateItemPopup" class="text-center" style="display: none;"> <div id="deleteOrderTemplateItemBody" class="popup-cnt"> <div class="cnt-column"> <h2> @Sana.SimpleText("TemplateItem_Delete_Warning_Header", "Warning")</h2> <p>@Sana.SimpleText("TemplateItem_Delete_Warning_Message", "TemplateItem Delete Warning Message")</p> </div> <div class="ftr-column"> <button class="btn-cancel btn btn-close-dialog btn-small btn-cancel-color"> @Sana.SimpleText("ButtonText_Cancel") </button> <button id="confirmItemDelete" class="btn btn-small">@Sana.SimpleText("OK", "OK")</button> </div> </div> </div>
page.ordertemplatedetails.js
// Ticket 79482: [Wave 2] 3.7.1.EDITABLE QUICK ORDERING TEMPLATES // When Click delete Order TemplateItem Popup's Ok button Call controller method. $(document).on("click", "#deleteOrderTemplateItemPopup #confirmItemDelete", function (event) { event.preventDefault(); $.ajax({ type: "POST", url: '/profile/ordertemplates/deleteline', data: JSON.stringify({ lineId: templateToDealte, basketId: templateToClarCashe }), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { if (data.success && deletedRow && deletedRow !== "") { deletedRow.remove(); $(deletedRow).closest('inner-row').remove(); } $('#deleteOrderTemplateItemPopup').dialog("close"); templateToDealte = ""; templateToClarCashe = ""; deletedRow = ""; var rows = $('.gvi-order-details > tbody > tr'); $.map(rows, function (row) { if ($(row).hasClass('collapsiblePanel-title')) { var nextRow = $(row).next(); if ($(nextRow).length === 0 || $(nextRow).hasClass('collapsiblePanel-title')) { $(row).closest('tr.collapsiblePanel-title').remove(); } } }); } }); });
ExtendedOrderTemplatesController
public class ExtendedOrderTemplatesController : OrderTemplatesController { protected override void RegisterSystemRoutes(SanaRouteCollection routes) { routes.MapActionRoute(controller: Name, action: "DeleteTemplateLine", urlPath: "profile/ordertemplates/deleteline");
ExtendedOrderTemplatesController
// Ticket 79482: [Wave 2] 3.7.1. EDITABLE QUICK ORDERING TEMPLATES /// <summary> /// This method will delete template line /// use page.ordertemplatedetails.js /// </summary> /// <param name="deleteItem">DeleteItemModel</param> /// <returns></returns> [HttpPost] [ValidateInput(false)] [RequireAbility(AbilityTo.SaveOrderTemplate)] public virtual ActionResult DeleteTemplateLine(DeleteItemModel deleteItem) { if (deleteItem != null) { ((ExtendedOrderTemplatesApi)ShopApi.OrderTemplates).RemoveTemplateLine(deleteItem.lineId, deleteItem.basketId); return Json(new { success = true, responseText = "" }, JsonRequestBehavior.AllowGet); } return Json(new { success = false, responseText = "" }, JsonRequestBehavior.AllowGet); }