﻿@using System.Web.UI.WebControls
@using RevZone.Core.Common
@using RevZone.Web.MVC.ViewModels.PropertyCard
@model PropertyCardSettingsViewModel
@Html.DevExpress().PageControl(settings =>
{
    settings.Name = "ProjectsPlanningCardSection";
    settings.EnableHotTrack = true;
    settings.SaveStateToCookies = true;
    settings.TabAlign = Model.RevTabAlign;
    settings.TabPosition = Model.RevTabPosition;
    settings.EnableTabScrolling = true;
    settings.Width = Unit.Percentage(100);
    settings.Height = Unit.Percentage(100);
    settings.ControlStyle.CssClass = "dxtcFixed";
    settings.ClientSideEvents.TabClick = "function(s,e){Planning.TabClickProjectsPlanningCardSection(e.tab.name)}";
    settings.ClientSideEvents.Init = "function(s,e){Planning.ProjectsPlanningBootomInit(s,e)}";
    foreach (var section in Model.Section)
    {
        if (section.TypeId == (int)PropertyTabTypes.Properties)
        {
            MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            tab.TabStyle.CssClass = "tab-text-align-left";
            tab.TabImage.SpriteProperties.CssClass = "rzSVG rzSVG-svgProperties";
            tab.TabImage.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgProperties rzSVGDisable";
            tab.Index = section.OrderIndex;
            tab.SetContent(() =>
            {
                Html.DevExpress().Splitter(s =>
                {
                    s.Name = "splResizingPlanningProperties";
                    s.ResizingMode = ResizingMode.Postponed;
                    s.FullscreenMode = false;
                    s.Styles.Pane.Paddings.Padding = Unit.Pixel(0);
                    s.Styles.Pane.Border.BorderWidth = Unit.Pixel(0);
                    s.Styles.Pane.Paddings.Padding = 0;
                    s.Height = Unit.Pixel(300);
                    s.Panes.Add(cp1 =>
                    {
                        cp1.Name = "pPlanningButtonProperties";
                        cp1.Size = Unit.Pixel(30);
                        cp1.ScrollBars = ScrollBars.None;
                        cp1.Separators.Visible = DefaultBoolean.False;
                        cp1.ShowCollapseBackwardButton = DefaultBoolean.False;
                        cp1.ShowCollapseForwardButton = DefaultBoolean.False;
                        cp1.ShowSeparatorImage = DefaultBoolean.False;
                        cp1.AllowResize = DefaultBoolean.False;
                        cp1.SetContent(() =>
                        {
                            ViewContext.Writer.Write("<div class='column-toolbar' style= 'padding-top:5px';>");
                            Html.DevExpress().Button(
                              c =>
                              {
                                  c.Name = "PlanningPropertiesSave";
                                  c.Text = "";
                                  c.ToolTip = T("Save").ToString();
                                  c.EnableTheming = false;
                                  c.Images.Image.SpriteProperties.CssClass = "rzSVG rzSVG-svgSave";
                                  c.Images.Image.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgSave rzSVGDisable";
                                  c.ClientSideEvents.Click = "function(s,e){Planning.PlanningPropertiesSave_Click(s,e)}";
                              }).GetHtml();
                            ViewContext.Writer.Write("</br></br>");
                            Html.DevExpress().Button(
                                 c =>
                                 {
                                     c.Name = "PlanningPropertiesRefresh";
                                     c.Text = "";
                                     c.ToolTip = T("Refresh").ToString();
                                     c.EnableTheming = false;
                                     c.Images.Image.SpriteProperties.CssClass = "rzSVG rzSVG-svgRefresh";
                                     c.Images.Image.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgRefresh rzSVGDisable";
                                     c.ClientSideEvents.Click = "function(s,e){Planning.TabClickProjectsPlanningCardSection('Properties')}";
                                 }).GetHtml();
                            ViewContext.Writer.Write("</br></br>");
                            Html.DevExpress().Button(
                                 c =>
                                 {
                                     c.Name = "PlanningPropertiesReloadLink";
                                     c.Text = "";
                                     c.ToolTip = T("ReloadLinkTo3rdPartyFields").ToString();
                                     c.EnableTheming = false;
                                     c.Images.Image.SpriteProperties.CssClass = "solidworks link16";
                                     c.ClientSideEvents.Click = "function(s,e){Planning.TabClickProjectsPlanningCardSectionReloadLink(s,e)}";
                                 }).GetHtml();

                            ViewContext.Writer.Write("</div>");
                        });

                    });
                    s.Panes.Add(cp2 =>
                    {
                        cp2.Name = "pPlanningProperties";
                        cp2.ScrollBars = ScrollBars.Auto;
                        cp2.SetContent(() =>
                        {
                            Html.EnableClientValidation();

                            ViewContext.Writer.Write("<div id='_pcModalCascadingValues'></div>");

                            ViewContext.Writer.Write("<div id='_pcModalObjectType" + (int)ActionToPerform.NewItem + "' ></div>");

                            using (Html.BeginForm("Save", "Properties", new { objectId = Model.ObjectId, recordId = Model.IdRecord, recordGuid = Model.RecordGuid, subObjectGuid = Model.SubObjectGuid }, FormMethod.Post, new
                            {
                                @class = "form-horizontal",
                                role = "form",
                                id = "FormSubmitGroupFieldsPlanning",
                                onsubmit = "AjaxStatus.OnFormSubmit(event)"
                            }))
                            {
                                Html.RenderAction("Edit", "Properties", new { objectId = Model.ObjectId, recordId = Model.IdRecord, isPreviewMode = false, hasEditRights = true, getFields = false, tabName = Model.GetTabName(), actionToPerform = RevZone.Web.MVC.Common.Properties.ActionToPerform.Planning });
                            }
                        });
                    });
                }).Render();
            });
        }
        else if (section.TypeId == (int)PropertyTabTypes.ToDo)
        {
            MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            tab.TabStyle.CssClass = "tab-text-align-left";
            tab.TabImage.SpriteProperties.CssClass = "rzSVG rzSVG-svgTaskProperties";
            tab.TabImage.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgTaskProperties rzSVGDisable";
            tab.Index = section.OrderIndex;
            tab.SetContent(() =>
            {
                //if (Model.IsEditMode)
                //{
                Html.RenderAction("GetToDoContextMenu", "ToDo", new { moduleName = Modules.Planning });
                Html.RenderAction("GetTodoCallbackPanel", "ToDo", new { moduleName = Modules.Planning });
                //}
            });
        }
        else if (section.TypeId == (int)PropertyTabTypes.Resources)
        {
            MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            tab.TabStyle.CssClass = "tab-text-align-left";
            tab.TabImage.SpriteProperties.CssClass = "rzSVG rzSVG-svgUsersGroup";
            //tab.TabImage.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgUsersGroup rzSVGDisable";
            tab.Index = section.OrderIndex;
            tab.SetContent(() =>
            {
                Html.RenderAction("GetResourcesContextMenu", "Resources");
                Html.RenderAction("GetSpliterPanel", "Resources");
            });
        }
        else if (section.TypeId == (int)PropertyTabTypes.ProjectsDeliverables)
        {
            MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            tab.TabStyle.CssClass = "tab-text-align-left";
            tab.Index = section.OrderIndex;
            tab.TabImage.SpriteProperties.CssClass = "solidworks anyfile";
            // tab.TabImage.SpriteProperties.DisabledCssClass = "disabled _disabled_anyfile";
            tab.SetContent(() =>
            {
                Html.RenderAction("GetProjectDeliverablesCallbackPanel", "ProjectDeliverables", new { moduleName = Modules.Planning });
            });
        }
        else if (section.TypeId == (int)PropertyTabTypes.Notifications)
        {
            // MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            // tab.TabStyle.CssClass = "tab-text-align-left";
            // tab.TabImage.SpriteProperties.CssClass = "rzSVG rzSVG-svgEmail";
            // tab.TabImage.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgEmail rzSVGDisable";
            // tab.Index = section.OrderIndex;
            // tab.SetContent(() =>
            // {
            //     Html.RenderAction("GetCallbackGrid", "Notifications", new { moduleName = Modules.Planning });
            // });
        }
        else if (section.TypeId == (int)PropertyTabTypes.Timesheets)
        {
            MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            tab.TabStyle.CssClass = "tab-text-align-left";
            tab.TabImage.SpriteProperties.CssClass = "rzSVG rzSVG-svgTimesheets";
            tab.TabImage.SpriteProperties.DisabledCssClass = "rzSVG rzSVG-svgTimesheets rzSVGDisable";
            tab.Index = section.OrderIndex;
            tab.SetContent(() =>
            {
                Html.RenderAction("GetTimesheetsModalGridContextMenu", "Timesheets");
                Html.RenderAction("GetCpbGridTimesheets", "Timesheets");
            });
        }
        else if (section.TypeId == (int)PropertyTabTypes.Calendar)
        {
            MVCxTabPage tab = settings.TabPages.Add(section.DisplayName, Enum.GetName(typeof(PropertyTabTypes), section.TypeId));
            tab.TabStyle.CssClass = "tab-text-align-left";
            tab.Index = section.OrderIndex;
            tab.SetContent(() =>
            {
                Html.RenderAction("GetCalendarCallbackPanel", "Calendar");
            });
        }
    }
}).GetHtml()


@*  Render the Popup ObjectTypeField for Planning fields*@
<div id="@("_pcModalObjectType" + (int)RevZone.Web.MVC.Common.Properties.ActionToPerform.NewFrom)"></div>