예제 #1
0
        /// <summary>
        /// Adds icons to the configuration area of a block instance.  Can be overridden to
        /// add additionsl icons
        /// </summary>
        /// <param name="canConfig"></param>
        /// <param name="canEdit"></param>
        /// <returns></returns>
        public virtual List <Control> GetAdministrateControls(bool canConfig, bool canEdit)
        {
            List <Control> configControls = new List <Control>();

            if (canConfig || canEdit)
            {
                // Attributes
                CompiledTemplateBuilder upContent = new CompiledTemplateBuilder(
                    delegate(Control content)
                {
                    Button trigger       = new Button();
                    trigger.ClientIDMode = System.Web.UI.ClientIDMode.Static;
                    trigger.ID           = string.Format("blck-cnfg-trggr-{0}", CurrentBlock.Id.ToString());
                    trigger.Click       += trigger_Click;
                    content.Controls.Add(trigger);

                    HiddenField triggerData  = new HiddenField();
                    triggerData.ClientIDMode = System.Web.UI.ClientIDMode.Static;
                    triggerData.ID           = string.Format("blck-cnfg-trggr-data-{0}", CurrentBlock.Id.ToString());
                    content.Controls.Add(triggerData);
                }
                    );

                UpdatePanel upTrigger = new UpdatePanel();
                upTrigger.ContentTemplate = upContent;
                configControls.Add(upTrigger);
                upTrigger.Attributes.Add("style", "display:none");

                // Icon to display block properties
                HtmlGenericControl aAttributes = new HtmlGenericControl("a");
                aAttributes.Attributes.Add("class", "properties show-modal-iframe");
                aAttributes.Attributes.Add("height", "500px");
                aAttributes.Attributes.Add("href", ResolveUrl(string.Format("~/BlockProperties/{0}?t=Block Properties", CurrentBlock.Id)));
                aAttributes.Attributes.Add("title", "Block Properties");
                //aAttributes.Attributes.Add( "instance-id", BlockInstance.Id.ToString() );
                configControls.Add(aAttributes);
                HtmlGenericControl iAttributes = new HtmlGenericControl("i");
                aAttributes.Controls.Add(iAttributes);
                iAttributes.Attributes.Add("class", "icon-cog");
            }

            if (canConfig)
            {
                // Security
                HtmlGenericControl aSecureBlock = new HtmlGenericControl("a");
                aSecureBlock.Attributes.Add("class", "security show-modal-iframe");
                aSecureBlock.Attributes.Add("height", "500px");
                aSecureBlock.Attributes.Add("href", ResolveUrl(string.Format("~/Secure/{0}/{1}?t=Block Security",
                                                                             Security.Authorization.EncodeEntityTypeName(CurrentBlock.GetType()), CurrentBlock.Id)));
                aSecureBlock.Attributes.Add("title", "Block Security");
                configControls.Add(aSecureBlock);
                HtmlGenericControl iSecureBlock = new HtmlGenericControl("i");
                aSecureBlock.Controls.Add(iSecureBlock);
                iSecureBlock.Attributes.Add("class", "icon-lock");

                // Move
                HtmlGenericControl aMoveBlock = new HtmlGenericControl("a");
                aMoveBlock.Attributes.Add("class", "block-move block-move");
                aMoveBlock.Attributes.Add("href", CurrentBlock.Id.ToString());
                aMoveBlock.Attributes.Add("zone", CurrentBlock.Zone);
                aMoveBlock.Attributes.Add("zoneloc", CurrentBlock.BlockLocation.ToString());
                aMoveBlock.Attributes.Add("title", "Move Block");
                configControls.Add(aMoveBlock);
                HtmlGenericControl iMoveBlock = new HtmlGenericControl("i");
                aMoveBlock.Controls.Add(iMoveBlock);
                iMoveBlock.Attributes.Add("class", "icon-external-link");

                // Delete
                HtmlGenericControl aDeleteBlock = new HtmlGenericControl("a");
                aDeleteBlock.Attributes.Add("class", "delete block-delete");
                aDeleteBlock.Attributes.Add("href", CurrentBlock.Id.ToString());
                aDeleteBlock.Attributes.Add("title", "Delete Block");
                configControls.Add(aDeleteBlock);
                HtmlGenericControl iDeleteBlock = new HtmlGenericControl("i");
                aDeleteBlock.Controls.Add(iDeleteBlock);
                iDeleteBlock.Attributes.Add("class", "icon-remove-circle");
            }

            return(configControls);
        }