﻿@using RevZone.Web.MVC.ViewModels.NotificationsTab
@using System.Web.UI.WebControls
@using DevExpress.Web
@using DevExpress.Web.Mvc
@using DevExpress.Web.Mvc.UI
@using AnimationType = DevExpress.Web.AnimationType
@model NotificationsViewModel

@Html.DevExpress().FormLayout(settings =>
{
    settings.Name = "pcModalConditionsNotification";
    settings.Width = Unit.Percentage(100);
    settings.ControlStyle.CssClass = "clearPaddings";
    settings.Styles.LayoutItem.CssClass = "clearPaddings";
    settings.Styles.LayoutGroup.CssClass = "clearPaddings";
    settings.ClientSideEvents.Init = "function() { Notifications.SetData(); }";

    settings.Items.AddGroupItem(g =>
    {
        g.GroupBoxDecoration = GroupBoxDecoration.None;
        g.Paddings.Padding = Unit.Pixel(0);
        g.Items.Add(i =>
        {
            i.ShowCaption = DefaultBoolean.False;
        }).SetNestedContent(() =>
        {
            Html.DevExpress().Splitter(s =>
            {
                s.Name = "notificationConditionsSpliter";
                s.Width = Unit.Percentage(100);
                s.Height = Unit.Pixel(380);
                s.AllowResize = false;
                s.SeparatorVisible = false;

                s.Panes.Add(p1 =>
                {
                    p1.Size = Unit.Percentage(20);
                    p1.ScrollBars = ScrollBars.None;
                    p1.PaneStyle.Border.BorderWidth = 0;

                    p1.Panes.Add(gridPane =>
                    {
                        gridPane.Name = "notificationLeftPane";
                        gridPane.SetContent(() =>
                        {
                            ViewContext.Writer.Write("<table>");
                            ViewContext.Writer.Write("<tr>");
                            ViewContext.Writer.Write("<th>");
                            Html.DevExpress().Label(t =>
                            {
                                t.Name = "notificationDateCondition";
                                t.Text = T("Date(And/Or)Condition").ToString();
                                t.ClientVisible = true;
                                t.ControlStyle.Font.Bold = true;
                            }).GetHtml();
                            ViewContext.Writer.Write("</th>");
                            ViewContext.Writer.Write("</tr>");
                            ViewContext.Writer.Write("</table>");

                            ViewContext.Writer.Write("<br/>");

                            ViewContext.Writer.Write("<table>");
                            ViewContext.Writer.Write("<tr>");
                            ViewContext.Writer.Write("<th>");
                            Html.DevExpress().Label(t =>
                            {
                                t.Name = "notificationIfNoDate";
                                t.Text = T("IfNoDateIsIncludedNotificationWillBeSentWhenConditionsAreReached").ToString();
                                t.ClientVisible = true;
                                t.Enabled = false;
                            }).GetHtml();
                            ViewContext.Writer.Write("</th>");
                            ViewContext.Writer.Write("</tr>");
                            ViewContext.Writer.Write("</table>");

                            ViewContext.Writer.Write("<br/>");

                            ViewContext.Writer.Write("<table>");
                            ViewContext.Writer.Write("<tr>");
                            ViewContext.Writer.Write("<th>");
                            Html.DevExpress().Label(t =>
                            {
                                t.Name = "notificationIfNoCondition";
                                t.Text = T("IfNoConditionIncludedNotificationWillBeSentAtTheRightDate").ToString();
                                t.ClientVisible = true;
                                t.Enabled = false;
                            }).GetHtml();
                            ViewContext.Writer.Write("</th>");
                            ViewContext.Writer.Write("</tr>");
                            ViewContext.Writer.Write("</table>");

                            ViewContext.Writer.Write("<br/>");

                            ViewContext.Writer.Write("<table>");
                            ViewContext.Writer.Write("<tr>");
                            ViewContext.Writer.Write("<th>");
                            Html.DevExpress().Label(t =>
                            {
                                t.Name = "notificationIfBoth";
                                t.Text = T("IfBothIncludedNotificationWillBeSentWhenConditionsAreReachedAfterTheDate").ToString();
                                t.ClientVisible = true;
                                t.Enabled = false;
                            }).GetHtml();
                            ViewContext.Writer.Write("</th>");
                            ViewContext.Writer.Write("</tr>");
                            ViewContext.Writer.Write("</table>");
                        });
                    });
                });

                s.Panes.Add(p2 =>
                {
                    p2.Size = Unit.Percentage(80);
                    p2.ScrollBars = ScrollBars.None;
                    p2.PaneStyle.Border.BorderWidth = 0;

                    p2.Panes.Add(gridPane =>
                    {
                        gridPane.Name = "notificationRightPane";
                        gridPane.SetContent(() =>
                        {
                            Html.DevExpress().Panel(panelSettings =>
                            {
                                panelSettings.Name = "notificationTopPanel";
                                panelSettings.Width = Unit.Percentage(100);
                                panelSettings.Height = Unit.Percentage(19);
                                panelSettings.Styles.Panel.BorderWidth = Unit.Pixel(1);

                                panelSettings.SetContent(() =>
                                {
                                    ViewContext.Writer.Write("<br/>");
                                    ViewContext.Writer.Write("<table>");
                                    ViewContext.Writer.Write("<tr>");
                                    ViewContext.Writer.Write("<td>");
                                    Html.DevExpress().CheckBox(Chckb =>
                                    {
                                        Chckb.Name = "motificationDateTimeChckb";
                                        Chckb.Text = T("DateTime").ToString();
                                        Chckb.ClientVisible = true;
                                        Chckb.Checked = true;
                                        Chckb.Width = Unit.Pixel(90);
                                        Chckb.ControlStyle.CssClass = "cancelButton";
                                    }).GetHtml();
                                    ViewContext.Writer.Write("</td>");

                                    ViewContext.Writer.Write("<td>");
                                    @Html.DevExpress().DateEdit(d =>
                                    {
                                        d.Name = "motificationCalendar";
                                        d.Width = Unit.Percentage(90);
                                        d.ControlStyle.CssClass = "cancelButton";
                                        d.Properties.EditFormat = EditFormat.DateTime;
                                        d.Properties.EditFormatString = Model.TimeFormat;
                                        d.Properties.CalendarProperties.FastNavProperties.DisplayMode = FastNavigationDisplayMode.Inline;
                                    }).Bind(Model.DateToSend).GetHtml();
                                    ViewContext.Writer.Write("</td>");

                                    ViewContext.Writer.Write("<td>");
                                    @Html.DevExpress().TimeEdit(d =>
                                    {
                                        d.Name = "motificationTime";
                                        d.ControlStyle.CssClass = "cancelButton";
                                        d.Width = Unit.Percentage(70);
                                        d.Properties.EditFormat = EditFormat.Custom;
                                        d.Properties.EditFormatString = "HH:mm";
                                    }).Bind(Model.DateToSend).GetHtml();
                                    ViewContext.Writer.Write("</td>");

                                    ViewContext.Writer.Write("</tr>");
                                    ViewContext.Writer.Write("</table>");

                                });
                            }).GetHtml();

                            ViewContext.Writer.Write("<br/>");

                            Html.DevExpress().Panel(panelSettings =>
                            {
                                panelSettings.Name = "notificationBottomPanel";
                                panelSettings.Width = Unit.Percentage(100);
                                panelSettings.Height = Unit.Percentage(75);
                                panelSettings.Styles.Panel.BorderWidth = Unit.Pixel(1);

                                panelSettings.SetContent(() =>
                                {
                                    ViewContext.Writer.Write("<br/>");

                                    Html.DevExpress().CheckBox(Chckb =>
                                    {
                                        Chckb.Name = "motificationConditionsChckb";
                                        Chckb.Text = T("Conditions").ToString() + ":";
                                        Chckb.ClientVisible = true;
                                        Chckb.Checked = true;
                                        Chckb.Width = Unit.Pixel(90);
                                        Chckb.ControlStyle.CssClass = "cancelButton";
                                    }).GetHtml();

                                    ViewContext.Writer.Write("<br/>");

                                    ViewContext.Writer.Write("<table align = 'right'>");
                                    ViewContext.Writer.Write("<tr>");
                                    ViewContext.Writer.Write("<td>");
                                    Html.DevExpress().ComboBox(Cmb =>
                                    {
                                        Cmb.Name = "notificationFieldCmb";
                                        Cmb.Properties.Caption = T("Field").ToString();
                                        Cmb.Properties.CaptionSettings.Position = EditorCaptionPosition.Top;
                                        Cmb.EnableTheming = true;
                                        Cmb.Width = Unit.Percentage(95);
                                        Cmb.Properties.IncrementalFilteringMode = IncrementalFilteringMode.None;
                                        Cmb.Properties.CallbackPageSize = 15;
                                        Cmb.Properties.TextField = "DisplayName";
                                        Cmb.Properties.ValueField = "ColumnId";
                                        Cmb.Properties.AnimationType = AnimationType.None;
                                        Cmb.Properties.ClientSideEvents.SelectedIndexChanged = "function(s, e) { Notifications.GetNotificationCondition1(s, e); }";
                                    }).BindList(Model.FieldCombosData).GetHtml();
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("<td>");
                                    if (Model.NotificationsOperationList != null)
                                    {
                                        Html.RenderPartial("../Notifications/New/ConditionsAndValues/_NotificationsConditions1", Model);
                                    }
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("<td>");
                                    if (Model != null)
                                    {
                                        Html.RenderPartial("../Notifications/New/ConditionsAndValues/_NotificationsValue1", Model);
                                    }
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("</tr>");
                                    ViewContext.Writer.Write("</table>");

                                    ViewContext.Writer.Write("<br/>");

                                    ViewContext.Writer.Write("<table>");
                                    ViewContext.Writer.Write("<tr>");
                                    ViewContext.Writer.Write("<td>");
                                    Html.DevExpress().CheckBox(Chckb =>
                                    {
                                        Chckb.Name = "motificationTwoConditions";
                                        Chckb.Text = T("TwoConditions").ToString();
                                        Chckb.ClientVisible = true;
                                        Chckb.Checked = false;
                                        Chckb.Width = Unit.Percentage(100);
                                        Chckb.ControlStyle.CssClass = "cancelButton";
                                        Chckb.Properties.ClientSideEvents.CheckedChanged = "function(){Notifications.EnableDisableTwoConditions();}";
                                        Chckb.Properties.ClientSideEvents.Init = "function(){Notifications.EnableDisableTwoConditions();}";
                                    }).GetHtml();
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("<td>");
                                    Html.DevExpress().RadioButtonList(check =>
                                    {
                                        check.Name = "notificationAndOr";
                                        check.Properties.RepeatDirection = RepeatDirection.Horizontal;
                                        check.Properties.Items.Add(T("And").ToString(), 0).Selected = true;
                                        check.Properties.Items.Add(T("Or").ToString(), 1);
                                        check.ControlStyle.Border.BorderStyle = BorderStyle.None;
                                    }).GetHtml();
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("</tr>");
                                    ViewContext.Writer.Write("</table>");

                                    ViewContext.Writer.Write("<br/>");

                                    ViewContext.Writer.Write("<table align = 'right'>");
                                    ViewContext.Writer.Write("<tr>");
                                    ViewContext.Writer.Write("<td>");
                                    Html.DevExpress().ComboBox(Cmb =>
                                    {
                                        Cmb.Name = "notificationField1Cmb";
                                        Cmb.Width = Unit.Percentage(95);
                                        Cmb.EnableTheming = true;
                                        Cmb.Properties.IncrementalFilteringMode = IncrementalFilteringMode.None;
                                        Cmb.Properties.CallbackPageSize = 15;
                                        Cmb.Properties.TextField = "DisplayName";
                                        Cmb.Properties.ValueField = "ColumnId";
                                        Cmb.Properties.AnimationType = AnimationType.None;
                                        Cmb.Properties.ClientSideEvents.SelectedIndexChanged = "function(s, e) { Notifications.GetNotificationCondition2(s, e); }";
                                    }).BindList(Model.FieldCombosData).GetHtml();
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("<td>");
                                    if (Model.NotificationsOperationList1 != null)
                                    {
                                        Html.RenderPartial("../Notifications/New/ConditionsAndValues/_NotificationsConditions2", Model);
                                    }
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("<td>");
                                    if (Model != null)
                                    {
                                        Html.RenderPartial("../Notifications/New/ConditionsAndValues/_NotificationsValue2", Model);
                                    }
                                    ViewContext.Writer.Write("</td>");
                                    ViewContext.Writer.Write("</tr>");
                                    ViewContext.Writer.Write("</table>");
                                });
                            }).GetHtml();
                        });
                    });
                });

            }).GetHtml();
        });
    });
}).GetHtml()
