using System.Collections.Generic; using Kreta.Framework; using Kreta.Resources; using Kreta.Web.Helpers.Modal; namespace Kreta.Web.Models.EditorTemplates { public class PopUpModel { public object Instance { get; private set; } public string View { get; private set; } public List Buttons { get; } public PopUpModel(object model, string view) { Instance = model; View = view; Buttons = new List(); } public PopUpModel AddOkBtn(PopUpModel pm, string eventName) { pm.Buttons.Add(new ModalButtonModel { Name = "BtnOk", Text = CommonResource.Mentes, EventName = eventName }); return pm; } public PopUpModel AddCancelBtn(PopUpModel pm, string eventName) { pm.Buttons.Add(new ModalButtonModel { Name = "BtnCancel", Text = CommonResource.Megse, EventName = eventName }); return pm; } public PopUpModel AddDeleteBtn(PopUpModel pm, string eventName) { pm.Buttons.Add(new ModalButtonModel { Name = "BtnDelete", Text = CommonResource.Torles, EventName = eventName }); return pm; } public PopUpModel AddBtn(PopUpModel pm, string name, int content, string eventName, string containerCssClass = null, bool secondLine = false, bool setDisabledAfterClick = false, string text = null) { var clickEventName = SetClickEventName(eventName, name, setDisabledAfterClick); pm.Buttons.Add(new ModalButtonModel { Name = name, Text = content > 0 ? StringResourcesUtil.GetString(content) : text, EventName = clickEventName, ContainerCssClass = containerCssClass, SecondLine = secondLine }); return pm; } public PopUpModel AddBtn(PopUpModel pm, string name, string text, string eventName, bool secondLine, string containerCssClass = null, bool setDisabledAfterClick = false) { var clickEventName = SetClickEventName(eventName, name, setDisabledAfterClick); pm.Buttons.Add(new ModalButtonModel { Name = name, Text = text, EventName = clickEventName, ContainerCssClass = containerCssClass, SecondLine = secondLine }); return pm; } public PopUpModel AddBtn(PopUpModel pm, string name, string text, string eventName, string containerCssClass = null, bool setDisabledAfterClick = false) { var clickEventName = SetClickEventName(eventName, name, setDisabledAfterClick); pm.Buttons.Add(new ModalButtonModel { Name = name, Text = text, EventName = clickEventName, ContainerCssClass = containerCssClass }); return pm; } private string SetClickEventName(string originialEventName, string buttonName, bool setDisabledAfterClick) { var eventName = originialEventName; if (setDisabledAfterClick) { eventName = $"function(e) {{ $('#{buttonName}').attr('disabled', true); {originialEventName}(); }}"; } return eventName; } } }