kreta/KretaWeb/Models/EditorTemplates/PopUpModel.cs
2024-03-13 00:33:46 +01:00

73 lines
3.1 KiB
C#

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<ModalButtonModel> Buttons { get; }
public PopUpModel(object model, string view)
{
Instance = model;
View = view;
Buttons = new List<ModalButtonModel>();
}
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;
}
}
}