HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/wwwroot/CMSModules/Polls/Controls/Polls.ascx.cs
using System;
using CMS.ExtendedControls;
using CMS.Helpers;
using CMS.Polls;
using CMS.SiteProvider;
using CMS.UIControls;

public partial class CMSModules_Polls_Controls_Polls : CMSAdminEditControl
{
    #region "Variables"

    private int mGroupID = 0;
    private int mSiteID = 0;
    private Guid mGroupGUID = Guid.Empty;
    private bool mHideWhenGroupIsNotSupplied = false;
    private bool dataLoaded = false;

    #endregion


    #region "Properties"

    /// <summary>
    /// Gets or sets ID of site.
    /// </summary>
    public int SiteID
    {
        get
        {
            if (mSiteID <= 0)
            {
                mSiteID = ValidationHelper.GetInteger(GetValue("SiteID"), SiteContext.CurrentSiteID);
            }
            return mSiteID;
        }
        set
        {
            mSiteID = value;
            PollNew.SiteID = mSiteID;
            PollEdit.SiteID = mSiteID;
        }
    }


    /// <summary>
    /// Gets or sets ID of group.
    /// </summary>
    public int GroupID
    {
        get
        {
            if (mGroupID <= 0)
            {
                mGroupID = ValidationHelper.GetInteger(GetValue("GroupID"), 0);
            }

            return mGroupID;
        }
        set
        {
            mGroupID = value;
        }
    }


    /// <summary>
    /// Gets or sets GUID of group.
    /// </summary>
    public Guid GroupGUID
    {
        get
        {
            if (mGroupGUID == Guid.Empty)
            {
                mGroupGUID = ValidationHelper.GetGuid(GetValue("GroupGUID"), Guid.Empty);
            }

            return mGroupGUID;
        }
        set
        {
            mGroupGUID = value;
        }
    }


    /// <summary>
    /// Determines whether to hide the content of the control when GroupID is not supplied.
    /// </summary>
    public bool HideWhenGroupIsNotSupplied
    {
        get
        {
            return mHideWhenGroupIsNotSupplied;
        }
        set
        {
            mHideWhenGroupIsNotSupplied = value;
        }
    }


    /// <summary>
    /// Gets or sets switch to display appropriate controls.
    /// </summary>
    public string SelectedControl
    {
        get
        {
            return ValidationHelper.GetString(ViewState["selectedcontrol" + ClientID], "list");
        }
        set
        {
            ViewState["selectedcontrol" + ClientID] = (object)value;
        }
    }


    public bool DelayedReload
    {
        get
        {
            return PollsList.DelayedReload;
        }
        set
        {
            PollsList.DelayedReload = value;
        }
    }

    #endregion


    protected void Page_Load(object sender, EventArgs e)
    {
        #region "Security"

        if (!CheckPermissions("cms.polls", PERMISSION_READ))
        {
            return;
        }

        PollEdit.OnCheckPermissions += new CheckPermissionsEventHandler(PollEdit_OnCheckPermissions);
        PollNew.OnCheckPermissions += new CheckPermissionsEventHandler(PollNew_OnCheckPermissions);
        PollsList.OnCheckPermissions += new CheckPermissionsEventHandler(PollsList_OnCheckPermissions);

        #endregion

        PollsList.IsLiveSite = IsLiveSite;
        PollEdit.IsLiveSite = IsLiveSite;
        PollNew.IsLiveSite = IsLiveSite;

        PollNew.SiteID = SiteID;
        PollEdit.SiteID = SiteID;

        PollsList.GroupId = GroupID;
        PollNew.GroupID = GroupID;
        PollNew.GroupGUID = GroupGUID;
        PollEdit.GroupID = GroupID;

        // Set display mode
        PollNew.DisplayMode = DisplayMode;
        PollEdit.DisplayMode = DisplayMode;

        if ((GroupID == 0) && HideWhenGroupIsNotSupplied)
        {
            Visible = false;
            return;
        }

        PollsList.OnEdit += new EventHandler(PollsList_OnEdit);
        PollNew.OnSaved += new EventHandler(PollNew_OnSaved);
        btnNewPoll.Click += new EventHandler(btnNewPoll_Click);
        lnkBackHidden.Click += new EventHandler(lnkBackHidden_Click);

        if (!RequestHelper.IsPostBack() && (!IsLiveSite))
        {
            ReloadData(false);
        }

        InitializeBreadcrumbs();
    }


    #region "Security handlers"

    private void PollsList_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        RaiseOnCheckPermissions(permissionType, sender);
    }


    private void PollNew_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        RaiseOnCheckPermissions(permissionType, sender);
    }


    private void PollEdit_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        RaiseOnCheckPermissions(permissionType, sender);
    }

    #endregion


    /// <summary>
    /// Displays controls in dependence on properties.
    /// </summary>
    public override void ReloadData(bool forceReload)
    {
        base.ReloadData(forceReload);

        // Setup button
        imgNewPoll.ImageUrl = GetImageUrl("Objects/Polls_Poll/add.png");
        imgNewPoll.AlternateText = GetString("polls_new.newitemcaption");
        btnNewPoll.ResourceString = "Polls_List.NewItemCaption";

        // Setup panels
        pnlPollsHeaderLinks.Visible = false;
        pnlPollsHeaderBreadCrumbs.Visible = false;
        pnlList.Visible = false;
        pnlEdit.Visible = false;
        pnlPollNew.Visible = false;

        // Display appropriate poll controls
        switch (SelectedControl)
        {
            case "new":
                {
                    pnlPollsHeaderBreadCrumbs.Visible = true;
                    pnlPollNew.Visible = true;
                    PollNew.ReloadData();
                    break;
                }
            case "edit":
                {
                    pnlPollsHeaderBreadCrumbs.Visible = true;
                    pnlEdit.Visible = true;
                    PollEdit.ReloadData(true);
                    break;
                }
            case "list":
            default:
                {
                    if (!dataLoaded || forceReload)
                    {
                        pnlPollsHeaderLinks.Visible = true;
                        pnlList.Visible = true;
                        PollsList.GroupId = GroupID;
                        PollsList.ReloadData();
                        dataLoaded = true;
                    }
                    break;
                }
        }

        InitializeBreadcrumbs();
    }


    /// <summary>
    /// New poll saved event handler.
    /// </summary>
    private void PollNew_OnSaved(object sender, EventArgs e)
    {
        // Handle events only from visible controls
        if (PollNew.Visible)
        {
            ItemID = PollNew.ItemID;
            PollEdit.ItemID = PollNew.ItemID;
            PollEdit.ReloadData(true);
            SelectedControl = "edit";
            ReloadData();
        }
    }


    /// <summary>
    /// Edit poll click event handler.
    /// </summary>
    private void PollsList_OnEdit(object sender, EventArgs e)
    {
        // Handle events only from visible controls
        if (PollsList.Visible)
        {
            ItemID = PollsList.SelectedItemID;
            PollEdit.ItemID = PollsList.SelectedItemID;
            SelectedControl = "edit";
            ReloadData();
        }
    }


    /// <summary>
    /// New poll click handler.
    /// </summary>
    private void btnNewPoll_Click(object sender, EventArgs e)
    {
        ItemID = 0;
        PollEdit.ItemID = 0;
        PollEdit.ReloadData(true);
        PollNew.ItemID = 0;
        PollNew.ClearForm();
        SelectedControl = "new";
        ReloadData();
    }


    /// <summary>
    /// Breadcrumbs click event handler.
    /// </summary>
    private void lnkBackHidden_Click(object sender, EventArgs e)
    {
        SelectedControl = "list";
        ReloadData(true);
    }


    /// <summary>
    /// Initializes breadcrumbs items.
    /// </summary>
    private void InitializeBreadcrumbs()
    {
        ucBreadcrumbs.Items.Clear();

        ucBreadcrumbs.AddBreadcrumb(new BreadcrumbItem {
            Text = GetString("Polls_Edit.itemlistlink"),
            OnClientClick = ControlsHelper.GetPostBackEventReference(lnkBackHidden) + "; return false;"
        });

        PollInfo pi = PollInfoProvider.GetPollInfo(this.ItemID);

        ucBreadcrumbs.AddBreadcrumb(new BreadcrumbItem
        {
            Text = (pi == null) ? GetString("polls_new.newitemcaption") : pi.PollDisplayName,
        });

    }
}