Inheritance: System.Web.UI.WebControls.CompositeControl
Esempio n. 1
0
        /// <summary>
        /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.
        /// </summary>
        protected override void CreateChildControls()
        {
            Controls.Clear();

            _hfFormGuid = new HiddenField();
            _hfFormGuid.ID = this.ID + "_hfFormGuid";
            Controls.Add( _hfFormGuid );

            _ddlNotificationSystemEmail = new RockDropDownList();
            _ddlNotificationSystemEmail.DataValueField = "Id";
            _ddlNotificationSystemEmail.DataTextField = "Title";
            _ddlNotificationSystemEmail.Label = "Notification Email";
            _ddlNotificationSystemEmail.Help = "An optional system email that should be sent to the person or people assigned to this activity (Any System Email with a category of 'Workflow').";
            _ddlNotificationSystemEmail.ID = this.ID + "_ddlNotificationSystemEmail";
            Controls.Add( _ddlNotificationSystemEmail );

            _ddlNotificationSystemEmail.DataSource = new SystemEmailService( new RockContext() ).Queryable()
                .Where( e => e.Category == "Workflow" ).OrderBy( e => e.Title ).ToList();
            _ddlNotificationSystemEmail.DataBind();
            _ddlNotificationSystemEmail.Items.Insert( 0, new ListItem( "None", "0" ) );

            _cbIncludeActions = new RockCheckBox();
            _cbIncludeActions.Label = "Include Actions in Email";
            _cbIncludeActions.Text = "Yes";
            _cbIncludeActions.Help = "Should the email include the option for recipient to select an action directly from within the email? Note: This only applies if none of the the form fields are required.";
            _cbIncludeActions.ID = this.ID + "_cbIncludeActions";
            Controls.Add( _cbIncludeActions );

            _ceHeaderText = new CodeEditor();
            _ceHeaderText.Label = "Form Header";
            _ceHeaderText.Help = "Text to display to user above the form fields. <span class='tip tip-liquid'></span> <span class='tip tip-html'>";
            _ceHeaderText.ID = this.ID + "_tbHeaderText";
            _ceHeaderText.EditorMode = CodeEditorMode.Html;
            _ceHeaderText.EditorTheme = CodeEditorTheme.Rock;
            _ceHeaderText.EditorHeight = "200";
            Controls.Add( _ceHeaderText );

            _ceFooterText = new CodeEditor();
            _ceFooterText.Label = "Form Footer";
            _ceFooterText.Help = "Text to display to user below the form fields. <span class='tip tip-liquid'></span> <span class='tip tip-html'>";
            _ceFooterText.ID = this.ID + "_tbFooterText";
            _ceFooterText.EditorMode = CodeEditorMode.Html;
            _ceFooterText.EditorTheme = CodeEditorTheme.Rock;
            _ceFooterText.EditorHeight = "200";
            Controls.Add( _ceFooterText );

            _falActions = new WorkflowFormActionList();
            _falActions.ID = this.ID + "_falActions";
            Controls.Add( _falActions );

            _ddlActionAttribute = new RockDropDownList();
            _ddlActionAttribute.ID = this.ID + "_ddlActionAttribute";
            _ddlActionAttribute.Label = "Command Selected Attribute";
            _ddlActionAttribute.Help = "Optional text attribute that should be updated with the selected command label.";
            Controls.Add( _ddlActionAttribute );
        }
        /// <summary>
        /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering.
        /// </summary>
        protected override void CreateChildControls()
        {
            Controls.Clear();

            _hfFormGuid    = new HiddenField();
            _hfFormGuid.ID = this.ID + "_hfFormGuid";
            Controls.Add(_hfFormGuid);

            _ddlNotificationSystemEmail = new RockDropDownList();
            _ddlNotificationSystemEmail.EnableViewState = false;
            _ddlNotificationSystemEmail.DataValueField  = "Id";
            _ddlNotificationSystemEmail.DataTextField   = "Title";
            _ddlNotificationSystemEmail.Label           = "Notification Email";
            _ddlNotificationSystemEmail.Help            = "An optional system email that should be sent to the person or people assigned to this activity (Any System Email with a category of 'Workflow').";
            _ddlNotificationSystemEmail.ID = this.ID + "_ddlNotificationSystemEmail";
            Controls.Add(_ddlNotificationSystemEmail);

            var systemEmailCategory = CategoryCache.Get(Rock.SystemGuid.Category.SYSTEM_EMAIL_WORKFLOW.AsGuid());

            if (systemEmailCategory != null)
            {
                using (var rockContext = new RockContext())
                {
                    _ddlNotificationSystemEmail.DataSource = new SystemEmailService(rockContext).Queryable()
                                                             .Where(e => e.CategoryId == systemEmailCategory.Id)
                                                             .OrderBy(e => e.Title)
                                                             .Select(a => new { a.Id, a.Title })
                                                             .ToList();
                    _ddlNotificationSystemEmail.DataBind();
                }
            }

            _ddlNotificationSystemEmail.Items.Insert(0, new ListItem("None", "0"));

            _cbIncludeActions       = new RockCheckBox();
            _cbIncludeActions.Label = "Include Actions in Email";
            _cbIncludeActions.Text  = "Yes";
            _cbIncludeActions.Help  = "Should the email include the option for recipient to select an action directly from within the email? Note: This only applies if none of the the form fields are required. The workflow will be persisted immediately prior to sending the email.";
            _cbIncludeActions.ID    = this.ID + "_cbIncludeActions";
            Controls.Add(_cbIncludeActions);

            _ceHeaderText              = new CodeEditor();
            _ceHeaderText.Label        = "Form Header";
            _ceHeaderText.Help         = "Text to display to user above the form fields. <span class='tip tip-lava'></span> <span class='tip tip-html'>";
            _ceHeaderText.ID           = this.ID + "_tbHeaderText";
            _ceHeaderText.EditorMode   = CodeEditorMode.Html;
            _ceHeaderText.EditorTheme  = CodeEditorTheme.Rock;
            _ceHeaderText.EditorHeight = "200";
            Controls.Add(_ceHeaderText);

            _ceFooterText              = new CodeEditor();
            _ceFooterText.Label        = "Form Footer";
            _ceFooterText.Help         = "Text to display to user below the form fields. <span class='tip tip-lava'></span> <span class='tip tip-html'>";
            _ceFooterText.ID           = this.ID + "_tbFooterText";
            _ceFooterText.EditorMode   = CodeEditorMode.Html;
            _ceFooterText.EditorTheme  = CodeEditorTheme.Rock;
            _ceFooterText.EditorHeight = "200";
            Controls.Add(_ceFooterText);

            _falActions    = new WorkflowFormActionList();
            _falActions.ID = this.ID + "_falActions";
            Controls.Add(_falActions);

            _ddlActionAttribute = new RockDropDownList();
            _ddlActionAttribute.EnableViewState = false;
            _ddlActionAttribute.ID    = this.ID + "_ddlActionAttribute";
            _ddlActionAttribute.Label = "Command Selected Attribute";
            _ddlActionAttribute.Help  = "Optional text attribute that should be updated with the selected command label.";
            Controls.Add(_ddlActionAttribute);

            _cbAllowNotes       = new RockCheckBox();
            _cbAllowNotes.Label = "Enable Note Entry";
            _cbAllowNotes.Text  = "Yes";
            _cbAllowNotes.Help  = "Should this form include an area for viewing and editing notes related to the workflow?";
            _cbAllowNotes.ID    = this.ID + "_cbAllowNotes";
            Controls.Add(_cbAllowNotes);
        }