ConfirmationModal.cs
Home
/
src /
Web /
Controls /
ConfirmationModal /
ConfirmationModal.cs
namespace Web.Controls.ConfirmationModal
{
using DotVVM.Framework.Binding;
using DotVVM.Framework.Binding.Expressions;
using DotVVM.Framework.Controls;
using System.Threading.Tasks;
public class ConfirmationModal : DotvvmMarkupControl
{
public bool ButtonsOnly
{
get { return (bool)GetValue(ButtonsOnlyProperty); }
set { SetValue(ButtonsOnlyProperty, value); }
}
public static readonly DotvvmProperty ButtonsOnlyProperty
= DotvvmProperty.Register<bool, ConfirmationModal>(c => c.ButtonsOnly, true);
public Command CancelButtonCommand
{
get { return (Command)GetValue(CancelButtonCommandProperty); }
set
{
SetValue(CancelButtonCommandProperty, value);
}
}
public static readonly DotvvmProperty CancelButtonCommandProperty
= DotvvmProperty.Register<Command, ConfirmationModal>(c => c.CancelButtonCommand, null);
public string CancelButtonText
{
get { return (string)GetValue(CancelButtonTextProperty); }
set { SetValue(CancelButtonTextProperty, value); }
}
public static readonly DotvvmProperty CancelButtonTextProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.CancelButtonText, "No");
public string CancelButtonType
{
get { return (string)GetValue(CancelButtonTypeProperty); }
set { SetValue(CancelButtonTypeProperty, value); }
}
public static readonly DotvvmProperty CancelButtonTypeProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.CancelButtonType, "Link");
public string CheckboxText
{
get { return (string)GetValue(CheckboxTextProperty); }
set { SetValue(CheckboxTextProperty, value); }
}
public static readonly DotvvmProperty CheckboxTextProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.CheckboxText, null);
public bool CheckboxValue { get; set; }
public string ModalHeader
{
get { return (string)GetValue(ModalHeaderProperty); }
set { SetValue(ModalHeaderProperty, value); }
}
public static readonly DotvvmProperty ModalHeaderProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.ModalHeader, "Ams Message");
public string ModalText
{
get { return (string)GetValue(ModalTextProperty); }
set { SetValue(ModalTextProperty, value); }
}
public static readonly DotvvmProperty ModalTextProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.ModalText, null);
public bool ModalVisible
{
get { return (bool)GetValue(ModalVisibleProperty); }
set { SetValue(ModalVisibleProperty, value); }
}
public static readonly DotvvmProperty ModalVisibleProperty
= DotvvmProperty.Register<bool, ConfirmationModal>(c => c.ModalVisible);
public Command SubmitButtonCommand
{
get { return (Command)GetValue(SubmitButtonCommandProperty); }
set
{
SetValue(SubmitButtonCommandProperty, value);
}
}
public static readonly DotvvmProperty SubmitButtonCommandProperty
= DotvvmProperty.Register<Command, ConfirmationModal>(c => c.SubmitButtonCommand, null);
public string SubmitButtonText
{
get { return (string)GetValue(SubmitButtonTextProperty); }
set { SetValue(SubmitButtonTextProperty, value); }
}
public static readonly DotvvmProperty SubmitButtonTextProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.SubmitButtonText, "Yes");
public string SubmitButtonType
{
get { return (string)GetValue(SubmitButtonTypeProperty); }
set { SetValue(SubmitButtonTypeProperty, value); }
}
public static readonly DotvvmProperty SubmitButtonTypeProperty
= DotvvmProperty.Register<string, ConfirmationModal>(c => c.SubmitButtonType, "Light");
public async Task SubmitCommand()
{
var binding = GetCommandBinding(SubmitButtonCommandProperty);
SetValueToSource(ModalVisibleProperty, false);
if (binding == null)
return;
await SubmitButtonCommand.Invoke();
}
public async Task CancelCommand()
{
var binding = GetCommandBinding(CancelButtonCommandProperty);
SetValueToSource(ModalVisibleProperty, false);
if (binding == null)
return;
await CancelButtonCommand.Invoke();
}
}
}