/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public void RenderBaseControl(HtmlTextWriter writer) { writer.AddAttribute("id", this.ClientID.ToString()); writer.AddAttribute("class", "toggle-container " + this.CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute("class", "btn-group btn-toggle " + this.CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (this.Checked) { _btnOn.AddCssClass(this.ActiveButtonCssClass + " " + this.OnCssClass + " active"); //_btnOff.RemoveCssClass( this.OffCssClass ); } else { _btnOff.AddCssClass(this.ActiveButtonCssClass + " " + this.OffCssClass + " active"); //_btnOn.RemoveCssClass( this.OnCssClass ); } _btnOn.RenderControl(writer); _btnOff.RenderControl(writer); writer.RenderEndTag(); _hfChecked.RenderControl(writer); writer.RenderEndTag(); RegisterJavascript(); }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute("data-key", _hfGroupGuid.Value); writer.RenderBeginTag(HtmlTextWriterTag.Li); writer.AddAttribute(HtmlTextWriterAttribute.Class, string.Format("checkin-item{0} checkin-group rollover-container {1}", Selected ? " checkin-item-selected" : "", !_group.IsActive ? " is-inactive" : "")); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_section"); writer.RenderBeginTag("section"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.WriteLine("<a class='checkin-group-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine("<a class='checkin-group-expand'><i class='checkin-group-state fa fa-check-circle'></i></a>"); _lblGroupRowName.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right checkin-item-actions rollover-item"); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (_lbAddGroup != null) { _lbAddGroup.RenderControl(writer); writer.Write(" "); } writer.RenderEndTag(); // Div writer.RenderEndTag(); // Section if (!Expanded) { writer.AddStyleAttribute("display", "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); var groupRows = this.Controls.OfType <CheckinGroupRow>(); if (groupRows.Any()) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "checkin-list js-checkin-group-list"); writer.RenderBeginTag(HtmlTextWriterTag.Ul); foreach (var groupRow in groupRows) { groupRow.RenderControl(writer); } writer.RenderEndTag(); } writer.RenderEndTag(); // Div writer.RenderEndTag(); // Li }
/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public override void RenderControl(HtmlTextWriter writer) { if (this.Visible) { if (this.StartInCodeEditorMode) { _ceEditor.Text = this.Text; this.Text = ""; } RockControlHelper.RenderControl(this, writer); _hfDisableVrm.RenderControl(writer); _hfInCodeEditorMode.RenderControl(writer); _ceEditor.RenderControl(writer); } }
/// <summary> /// Renders the base control. /// </summary> /// <param name="writer">The writer.</param> public void RenderBaseControl(HtmlTextWriter writer) { writer.AddAttribute("class", "form-control-group"); writer.RenderBeginTag(HtmlTextWriterTag.Div); string separatorHtml = " <span class='separator'>-</span> "; hfSSN.RenderControl(writer); ssnArea.RenderControl(writer); writer.Write(separatorHtml); ssnGroup.RenderControl(writer); writer.Write(separatorHtml); ssnSerial.RenderControl(writer); writer.RenderEndTag(); }
/// <summary> /// Renders the base control. /// </summary> /// <param name="writer">The writer.</param> public void RenderBaseControl(HtmlTextWriter writer) { // Ensure valid values first Minimum = Minimum > Maximum ? Maximum : Minimum; Value = Value > Maximum ? Maximum : Value; Value = Value < Minimum ? Minimum : Value; writer.AddAttribute(HtmlTextWriterAttribute.Class, "numberincrement " + CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfMin.RenderControl(writer); _hfMax.RenderControl(writer); _hfNumber.RenderControl(writer); var postBackScript = this.NumberUpdated != null?this.Page.ClientScript.GetPostBackEventReference(new PostBackOptions( this, "NumberUpdated" ), true) : ""; postBackScript = postBackScript.Replace('\'', '"'); string disabledMinCss = Value <= Minimum ? "disabled " : ""; writer.AddAttribute(HtmlTextWriterAttribute.Onclick, string.Format("Rock.controls.numberUpDown.adjust( this, -1, '{0}' );", postBackScript)); writer.AddAttribute(HtmlTextWriterAttribute.Class, "js-number-down numberincrement-down " + disabledMinCss); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa-minus "); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); _lblNumber.CssClass = "js-number-up-down-lbl numberincrement-value "; _lblNumber.RenderControl(writer); string disabledMaxCss = Value >= Maximum ? "disabled " : ""; writer.AddAttribute(HtmlTextWriterAttribute.Onclick, string.Format("Rock.controls.numberUpDown.adjust( this, 1, '{0}' );", postBackScript)); writer.AddAttribute(HtmlTextWriterAttribute.Class, "js-number-up numberincrement-up " + disabledMaxCss); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa-plus "); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); // Div.input-group }
/// <summary> /// Render any additional picker actions /// </summary> /// <param name="writer">The writer.</param> public override void RenderCustomPickerActions(HtmlTextWriter writer) { if (EnhanceForLongLists && _hfSearchValue != null) { _hfSearchValue.RenderControl(writer); } if (_hfPickerShowActive != null) { _hfPickerShowActive.RenderControl(writer); } if (_hfViewMode != null) { _hfViewMode.RenderControl(writer); } if (this.AllowMultiSelect) { _btnSelectAll.RenderControl(writer); writer.Write("<a class='btn btn-xs btn-link picker-cancel mr-auto' id='btnCancel_{0}'>Cancel</a>", this.ClientID); writer.Write("<a class='btn btn-link btn-xs picker-preview' id='btnPreviewSelection_{0}' title='Preview'><i class='fa fa-list'></i></a>", this.ClientID); writer.Write("<a class='btn btn-link btn-xs picker-treeview' id='btnTreeView_{0}' title='Tree View'><i class='fa fa-sitemap'></i></a>", this.ClientID); } else { writer.Write("<a class='btn btn-xs btn-link picker-cancel mr-auto' id='btnCancel_{0}'>Cancel</a>", this.ClientID); } if (!DisplayActiveOnly) { _cbShowInactiveAccounts.RenderControl(writer); } else { this.Controls.Remove(_cbShowInactiveAccounts); } }
/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public override void RenderControl(HtmlTextWriter writer) { if (this.Visible) { if (this.StartInCodeEditorMode) { if (_ceEditor.Text != this.Text) { _ceEditor.Text = this.Text; } // in the case of when StartInCodeEditorMode = true, we can set base.Text to string.Empty to help prevent bad html and/or javascript from messing up things // However, if StartInCodeEditorMode = false, we can't do this because the WYSIWIG editor needs to know the base.Text value base.Text = string.Empty; } RockControlHelper.RenderControl(this, writer); _hfDisableVrm.RenderControl(writer); _hfInCodeEditorMode.RenderControl(writer); _ceEditor.RenderControl(writer); } }
/// <summary> /// Renders the base control. /// </summary> /// <param name="writer">The writer.</param> public void RenderBaseControl(HtmlTextWriter writer) { // Ensure valid values first Minimum = Minimum > Maximum ? Maximum : Minimum; Value = Value > Maximum ? Maximum : Value; Value = Value < Minimum ? Minimum : Value; writer.AddAttribute(HtmlTextWriterAttribute.Class, "numberincrement " + CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfMin.RenderControl(writer); _hfMax.RenderControl(writer); _hfNumber.RenderControl(writer); string disabledMinCss = Value <= Minimum ? "disabled " : ""; writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "Rock.controls.numberUpDown.adjust( this, -1 );"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "js-number-down numberincrement-down " + disabledMinCss); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa-minus "); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); _lblNumber.CssClass = "js-number-up-down-lbl numberincrement-value "; _lblNumber.RenderControl(writer); string disabledMaxCss = Value >= Maximum ? "disabled " : ""; writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "Rock.controls.numberUpDown.adjust( this, 1 );"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "js-number-up numberincrement-up " + disabledMaxCss); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa-plus "); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); // Div.input-group }
/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public void RenderBaseControl(HtmlTextWriter writer) { writer.AddAttribute("id", this.ClientID.ToString()); writer.AddAttribute("class", "toggle-container " + this.CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute("class", $"btn-group btn-toggle {this.ButtonGroupCssClass}"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _btnOn.Attributes["class"] = "btn btn-default js-toggle-on " + this.ButtonSizeCssClass; _btnOn.InnerHtml = this.OnText; _btnOff.Attributes["class"] = "btn btn-default js-toggle-off " + this.ButtonSizeCssClass; _btnOff.InnerHtml = this.OffText; if (this.Checked) { _btnOn.AddCssClass(this.ActiveButtonCssClass + " " + this.OnCssClass + " active"); //_btnOff.RemoveCssClass( this.OffCssClass ); } else { _btnOff.AddCssClass(this.ActiveButtonCssClass + " " + this.OffCssClass + " active"); //_btnOn.RemoveCssClass( this.OnCssClass ); } _btnOff.RenderControl(writer); _btnOn.RenderControl(writer); writer.RenderEndTag(); _hfChecked.RenderControl(writer); writer.RenderEndTag(); RegisterJavascript(); }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { if (!Expanded) { foreach (WorkflowActionTypeEditor workflowActionTypeEditor in this.Controls.OfType <WorkflowActionTypeEditor>()) { if (workflowActionTypeEditor.Expanded) { Expanded = true; break; } } } string inactiveCss = _cbActivityTypeIsActive.Checked ? string.Empty : " workflow-activity-inactive"; string activatedWithWorkflowCss = _cbActivityTypeIsActivatedWithWorkflow.Checked ? " activated-with-workflow" : string.Empty; writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget workflow-activity" + inactiveCss + activatedWithWorkflowCss); writer.AddAttribute("data-key", _hfActivityTypeGuid.Value); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_section"); writer.RenderBeginTag("section"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix clickable"); writer.RenderBeginTag("header"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "filter-toggle pull-left"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute("class", "panel-title"); writer.RenderBeginTag(HtmlTextWriterTag.H3); _lblActivityTypeName.Text = _tbActivityTypeName.Text; _lblActivityTypeName.RenderControl(writer); // H3 tag writer.RenderEndTag(); _lblActivityTypeDescription.Text = _tbActivityTypeDescription.Text; _lblActivityTypeDescription.RenderControl(writer); // Name/Description div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (_sbSecurity.EntityId != 0) { writer.WriteLine(string.Format("<span class=\"label label-default\">Id: {0}</span>", _sbSecurity.EntityId)); } writer.WriteLine("<a class='btn btn-xs btn-link workflow-activity-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine(string.Format("<a class='btn btn-xs btn-link'><i class='workflow-activity-state fa {0}'></i></a>", Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down")); if (IsDeleteEnabled) { _lbDeleteActivityType.Visible = true; _lbDeleteActivityType.RenderControl(writer); } else { _lbDeleteActivityType.Visible = false; } // Add/ChevronUpDown/Delete div writer.RenderEndTag(); _lblInactive.Style[HtmlTextWriterStyle.Display] = _cbActivityTypeIsActive.Checked ? "none" : string.Empty; _lblInactive.RenderControl(writer); // header div writer.RenderEndTag(); if (!Expanded) { // hide details if the activity and actions are valid writer.AddStyleAttribute("display", "none"); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // activity edit fields writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _tbActivityTypeName.ValidationGroup = ValidationGroup; _tbActivityTypeName.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-2"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _cbActivityTypeIsActive.ValidationGroup = ValidationGroup; _cbActivityTypeIsActive.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-4"); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (_sbSecurity.EntityId > 0) { _sbSecurity.Title = _tbActivityTypeName.Text; _sbSecurity.RenderControl(writer); } _cbActivityTypeIsActivatedWithWorkflow.ValidationGroup = ValidationGroup; _cbActivityTypeIsActivatedWithWorkflow.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); _tbActivityTypeDescription.ValidationGroup = ValidationGroup; _tbActivityTypeDescription.RenderControl(writer); _pwAttributes.RenderControl(writer); // actions writer.RenderBeginTag("fieldset"); writer.RenderBeginTag("legend"); writer.WriteLine("Actions"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Span); _lbAddActionType.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "workflow-action-list"); writer.RenderBeginTag(HtmlTextWriterTag.Div); foreach (WorkflowActionTypeEditor workflowActionTypeEditor in this.Controls.OfType <WorkflowActionTypeEditor>()) { workflowActionTypeEditor.ValidationGroup = ValidationGroup; workflowActionTypeEditor.RenderControl(writer); } // workflow-action-list div writer.RenderEndTag(); // actions fieldset writer.RenderEndTag(); // widget-content div writer.RenderEndTag(); // section tag writer.RenderEndTag(); }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget workflow-action"); writer.AddAttribute("data-key", _hfActionTypeGuid.Value); writer.RenderBeginTag("article"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "clearfix clickable panel-heading"); writer.RenderBeginTag("header"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-left workflow-action-name"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lblActionTypeName.Text = _tbActionTypeName.Text; _lblActionTypeName.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Div); string criteriaExistsClass = _ddlCriteriaAttribute.SelectedValueAsGuid().HasValue ? " criteria-exists" : string.Empty; writer.WriteLine(string.Format("<a class='btn btn-xs btn-link js-workflow-action-criteria{0}'><i class='fa fa-filter'></i></a>", criteriaExistsClass)); writer.WriteLine("<a class='btn btn-xs btn-link workflow-action-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine(string.Format("<a class='btn btn-xs btn-link'><i class='workflow-action-state fa {0}'></i></a>", Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down")); if (IsDeleteEnabled) { _lbDeleteActionType.Visible = true; _lbDeleteActionType.RenderControl(writer); } else { _lbDeleteActionType.Visible = false; } // Add/ChevronUpDown/Delete div writer.RenderEndTag(); // header div writer.RenderEndTag(); if (!Expanded) { // hide details if the name has already been filled in writer.AddStyleAttribute("display", "none"); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // add Criteria fields writer.AddAttribute(HtmlTextWriterAttribute.Class, "row conditional-run-criteria alert-warning"); if (!_ddlCriteriaAttribute.SelectedValueAsGuid().HasValue) { writer.AddStyleAttribute("display", "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-lg-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "form-row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-xs-7"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _ddlCriteriaAttribute.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-xs-5"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _ddlCriteriaComparisonType.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); // row writer.RenderEndTag(); // col-md-6 writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-lg-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); var comparisonType = _ddlCriteriaComparisonType.SelectedValueAsEnum <ComparisonType>(); _tbddlCriteriaValue.Style["display"] = (comparisonType == ComparisonType.IsBlank || comparisonType == ComparisonType.IsNotBlank) ? "none" : "block"; _tbddlCriteriaValue.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); // action edit fields writer.AddAttribute(HtmlTextWriterAttribute.Class, "form-row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _tbActionTypeName.ValidationGroup = ValidationGroup; _tbActionTypeName.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _cbIsActionCompletedOnSuccess.ValidationGroup = ValidationGroup; _cbIsActionCompletedOnSuccess.RenderControl(writer); _cbIsActivityCompletedOnSuccess.ValidationGroup = ValidationGroup; _cbIsActivityCompletedOnSuccess.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); // row writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-lg-4"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _wfatpEntityType.ValidationGroup = ValidationGroup; _wfatpEntityType.RenderControl(writer); writer.RenderEndTag(); // Add an overview(description) of the selected action type writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-lg-8"); writer.RenderBeginTag(HtmlTextWriterTag.Div); EntityTypeCache entityType = null; int? entityTypeId = _wfatpEntityType.SelectedValueAsInt(); if (entityTypeId.HasValue) { entityType = EntityTypeCache.Get(entityTypeId.Value); if (entityType != null) { var component = ActionContainer.GetComponent(entityType.Name); if (component != null) { string description = string.Empty; var propAttribute = component.GetType().GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false).FirstOrDefault(); if (propAttribute != null) { var descAttribute = propAttribute as System.ComponentModel.DescriptionAttribute; if (descAttribute != null) { _rlEntityTypeOverview.Label = string.Format("'{0}' Overview", entityType.FriendlyName); _rlEntityTypeOverview.Text = descAttribute.Description; _rlEntityTypeOverview.RenderControl(writer); } } } } } writer.RenderEndTag(); // col-md-8 writer.RenderEndTag(); // row if (entityType != null && entityType.Name == typeof(Rock.Workflow.Action.UserEntryForm).FullName) { _formEditor.ValidationGroup = ValidationGroup; _formEditor.RenderControl(writer); } _phActionAttributes.RenderControl(writer); // widget-content div writer.RenderEndTag(); // article tag writer.RenderEndTag(); }
/// <summary> /// Renders the <see cref="T:System.Web.UI.WebControls.TextBox" /> control to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> that receives the rendered output.</param> public void RenderBaseControl(HtmlTextWriter writer) { if (this.Enabled) { writer.AddAttribute("id", this.ClientID); writer.AddAttribute("class", string.Format("picker picker-select picker-person {0}", this.CssClass)); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfPersonId.RenderControl(writer); _hfPersonName.RenderControl(writer); _hfIncludeBusinesses.RenderControl(writer); string pickerLabelHtmlFormat = @" <a class='picker-label' href='#'> <i class='fa fa-user'></i> <span id='{0}_selectedPersonLabel' class='picker-selectedperson'>{1}</span> <b class='fa fa-caret-down pull-right'></b> </a> "; writer.Write(string.Format(pickerLabelHtmlFormat, this.ClientID, this.PersonName)); _btnSelectNone.RenderControl(writer); string pickMenuHtmlFormatStart = @" <div class='picker-menu dropdown-menu'> <h4>Search</h4> <input id='{0}_personPicker' type='text' class='picker-search form-control input-sm' /> <hr /> <h4>Results</h4> <ul class='picker-select' id='{0}_personPickerItems'> </ul> <div class='picker-actions'> "; writer.Write(pickMenuHtmlFormatStart, this.ClientID, this.PersonName); _btnSelect.RenderControl(writer); string pickMenuHtmlFormatEnd = @" <a class='btn btn-link btn-xs' id='{0}_btnCancel'>Cancel</a> </div> </div> "; writer.Write(string.Format(pickMenuHtmlFormatEnd, this.ClientID, this.PersonName)); writer.RenderEndTag(); } else { // this picker is not enabled (readonly), so just render a readonly version writer.AddAttribute("class", "picker picker-select"); writer.RenderBeginTag(HtmlTextWriterTag.Div); LinkButton linkButton = new LinkButton(); linkButton.CssClass = "picker-label"; linkButton.Text = string.Format("<i class='{1}'></i><span>{0}</span>", this.PersonName, "fa fa-user"); linkButton.Enabled = false; linkButton.RenderControl(writer); writer.WriteLine(); writer.RenderEndTag(); } }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget template-form"); writer.AddAttribute("data-key", _hfFormGuid.Value); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_section"); writer.RenderBeginTag("section"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix clickable"); writer.RenderBeginTag("header"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "filter-toggle pull-left"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lblFormName.Text = _tbFormName.Text; _lblFormName.RenderControl(writer); // H3 tag writer.RenderEndTag(); // Name div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.WriteLine("<a class='btn btn-xs btn-link form-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine(string.Format("<a class='btn btn-xs btn-link'><i class='form-state fa {0}'></i></a>", Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down")); if (IsDeleteEnabled) { _lbDeleteForm.Visible = true; _lbDeleteForm.RenderControl(writer); } else { _lbDeleteForm.Visible = false; } // Add/ChevronUpDown/Delete div writer.RenderEndTag(); // header div writer.RenderEndTag(); if (!Expanded) { // hide details if the activity and actions are valid writer.AddStyleAttribute("display", "none"); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // activity edit fields writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfFormGuid.RenderControl(writer); _hfFormId.RenderControl(writer); _tbFormName.ValidationGroup = ValidationGroup; _tbFormName.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.RenderEndTag(); writer.RenderEndTag(); _gFields.RenderControl(writer); // widget-content div writer.RenderEndTag(); // section tag writer.RenderEndTag(); }
/// <summary> /// This is where you implment the simple aspects of rendering your control. The rest /// will be handled by calling RenderControlHelper's RenderControl() method. /// </summary> /// <param name="writer">The writer.</param> public virtual void RenderBaseControl(HtmlTextWriter writer) { if (this.Enabled) { writer.AddAttribute("id", this.ClientID.ToString()); writer.AddAttribute("class", "picker picker-select rollover-container " + this.CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfItemId.RenderControl(writer); _hfInitialItemParentIds.RenderControl(writer); _hfItemName.RenderControl(writer); _hfItemRestUrlExtraParams.RenderControl(writer); if (!HidePickerLabel) { string pickerLabelHtmlFormat = @" <a class='picker-label' href='#'> <i class='{2} fa-fw'></i> <span id='selectedItemLabel_{0}' class='selected-names'>{1}</span> <b class='fa fa-caret-down pull-right'></b> </a>"; writer.Write(pickerLabelHtmlFormat, this.ClientID, this.ItemName, this.IconCssClass); writer.WriteLine(); _btnSelectNone.RenderControl(writer); } // picker menu writer.AddAttribute("class", "picker-menu dropdown-menu"); if (ShowDropDown) { writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "block"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); // mode panel if (ModePanel != null) { ModePanel.RenderControl(writer); } // treeview writer.Write( @"<div id='treeview-scroll-container_{0}' class='scroll-container scroll-container-vertical scroll-container-picker'> <div class='scrollbar'> <div class='track'> <div class='thumb'> <div class='end'></div> </div> </div> </div> <div class='viewport'> <div class='overview'> <div id='treeviewItems_{0}' class='treeview treeview-items'></div> </div> </div> </div>", this.ClientID); // picker actions writer.AddAttribute("class", "picker-actions"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _btnSelect.RenderControl(writer); writer.Write("<a class='btn btn-xs btn-link picker-cancel' id='btnCancel_{0}'>Cancel</a>", this.ClientID); // render any additional picker actions that a child class if ItemPicker implements RenderCustomPickerActions(writer); writer.WriteLine(); writer.RenderEndTag(); // closing div of picker-menu writer.RenderEndTag(); // closing div of picker writer.RenderEndTag(); RegisterJavaScript(); } else { // this picker is not enabled (readonly), so just render a readonly version writer.AddAttribute("class", "picker picker-select"); writer.RenderBeginTag(HtmlTextWriterTag.Div); LinkButton linkButton = new LinkButton(); linkButton.CssClass = "picker-label"; linkButton.Text = string.Format("<i class='{1}'></i><span>{0}</span>", this.ItemName, this.IconCssClass); linkButton.Enabled = false; linkButton.RenderControl(writer); writer.WriteLine(); writer.RenderEndTag(); } }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute("data-key", _hfGroupTypeGuid.Value); writer.RenderBeginTag(HtmlTextWriterTag.Li); writer.AddAttribute(HtmlTextWriterAttribute.Class, string.Format("checkin-item{0} checkin-area rollover-container", Selected ? " checkin-item-selected" : "")); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_section"); writer.RenderBeginTag("section"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.WriteLine("<a class='checkin-area-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine("<a class='checkin-area-expand'><i class='checkin-area-state fa fa-folder-open'></i></a>"); _lblAreaRowName.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right checkin-item-actions rollover-item"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lbAddArea.RenderControl(writer); writer.Write(" "); _lbAddGroup.RenderControl(writer); writer.Write(" "); _lblDeleteArea.RenderControl(writer); writer.RenderEndTag(); // Div writer.RenderEndTag(); // Section if (!Expanded) { writer.AddStyleAttribute("display", "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); // Render child area rows var areaRows = this.Controls.OfType <CheckinAreaRow>(); if (areaRows.Any()) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "checkin-list js-checkin-area-list"); writer.RenderBeginTag(HtmlTextWriterTag.Ul); foreach (var areaRow in areaRows) { areaRow.RenderControl(writer); } writer.RenderEndTag(); } // Render child group rows var groupRows = this.Controls.OfType <CheckinGroupRow>(); if (groupRows.Any()) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "checkin-list js-checkin-group-list"); writer.RenderBeginTag(HtmlTextWriterTag.Ul); foreach (var groupRow in groupRows) { groupRow.RenderControl(writer); } writer.RenderEndTag(); } writer.RenderEndTag(); // Div writer.RenderEndTag(); // Li }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget checkin-grouptype"); writer.AddAttribute("data-key", _hfGroupTypeGuid.Value); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_section"); writer.RenderBeginTag("section"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix clickable"); writer.RenderBeginTag("header"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "filter-toggle pull-left"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-title"); writer.RenderBeginTag(HtmlTextWriterTag.H3); _lblGroupTypeName.Text = _tbGroupTypeName.Text; _lblGroupTypeName.RenderControl(writer); // H3 tag writer.RenderEndTag(); // Name/Description div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right panel-actions"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.WriteLine("<a class='btn btn-link btn-xs checkin-grouptype-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine(string.Format("<a class='btn btn-xs btn-link'><i class='checkin-grouptype-state fa {0}'></i></a>", Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down")); if (IsDeleteEnabled) { _lbDeleteGroupType.Visible = true; _lbDeleteGroupType.RenderControl(writer); } else { _lbDeleteGroupType.Visible = false; } // Add/ChevronUpDown/Delete div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right panel-actions btn-group"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lbAddCheckinGroupType.RenderControl(writer); writer.WriteLine(); _lbAddCheckinGroup.RenderControl(writer); writer.WriteLine(); writer.RenderEndTag(); // header div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); if (!Expanded) { writer.AddStyleAttribute("display", "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); // make two span6 columns: Left Column for Name and Attributes. Right Column for Labels Grid writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // grouptype edit fields _tbGroupTypeName.RenderControl(writer); _ddlGroupTypeInheritFrom.RenderControl(writer); // attributes _phGroupTypeAttributes.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // Check-in Labels grid writer.WriteLine("<h3>Check-in Labels</h3>"); _gCheckinLabels.DataSource = this.CheckinLabels; _gCheckinLabels.DataBind(); _gCheckinLabels.RenderControl(writer); // span6 writer.RenderEndTag(); // rowfluid writer.RenderEndTag(); // groups writer.AddAttribute(HtmlTextWriterAttribute.Class, "checkin-grouptype-list"); writer.RenderBeginTag(HtmlTextWriterTag.Div); foreach (CheckinGroupTypeEditor checkinGroupTypeEditor in this.Controls.OfType <CheckinGroupTypeEditor>()) { checkinGroupTypeEditor.RenderControl(writer); } // checkin-grouptype-list div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "checkin-group-list"); writer.RenderBeginTag(HtmlTextWriterTag.Div); foreach (CheckinGroupEditor checkinGroupEditor in this.Controls.OfType <CheckinGroupEditor>()) { checkinGroupEditor.RenderControl(writer); } // checkin-group-list div writer.RenderEndTag(); // widget-content div writer.RenderEndTag(); // section tag writer.RenderEndTag(); }
/// <summary> /// Renders the <see cref="T:System.Web.UI.WebControls.TextBox" /> control to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> that receives the rendered output.</param> public void RenderBaseControl(HtmlTextWriter writer) { if (this.Enabled) { writer.AddAttribute("id", this.ClientID); writer.AddAttribute("class", string.Format("picker picker-select picker-person {0}", this.CssClass)); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfPersonId.RenderControl(writer); _hfPersonName.RenderControl(writer); _hfSelfPersonId.RenderControl(writer); _hfSelfPersonName.RenderControl(writer); _hfIncludeBusinesses.RenderControl(writer); string pickerLabelHtmlFormat = @" <a class='picker-label' href='#'> <i class='fa fa-user'></i> <span id='{0}_selectedPersonLabel' class='picker-selectedperson'>{1}</span> <b class='fa fa-caret-down pull-right'></b> </a> "; writer.Write(string.Format(pickerLabelHtmlFormat, this.ClientID, this.PersonName)); _btnSelectNone.RenderControl(writer); // render picker-menu dropdown-menu writer.AddAttribute(HtmlTextWriterAttribute.Class, "picker-menu dropdown-menu"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // column1 writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write("<h4>Search</h4>"); writer.RenderEndTag(); // column2 writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (this.EnableSelfSelection) { writer.Write(@" <span class='js-select-self' title='Select self'> <i class='fa fa-user pull-right clickable' ></i> </span>"); } writer.RenderEndTag(); // row writer.RenderEndTag(); string pickMenuHtmlFormatStart = @" <input id='{0}_personPicker' type='text' class='picker-search form-control input-sm' /> <hr /> <h4>Results</h4> <div id='personpicker-scroll-container_{0}' class='scroll-container scroll-container-vertical scroll-container-picker'> <div class='scrollbar'> <div class='track'> <div class='thumb'> <div class='end'></div> </div> </div> </div> <div class='viewport'> <div class='overview'> <ul class='picker-select' id='{0}_personPickerItems'> </ul> </div> </div> </div> <div class='picker-actions'> "; writer.Write(pickMenuHtmlFormatStart, this.ClientID); _btnSelect.RenderControl(writer); string pickMenuHtmlFormatEnd = @" <a class='btn btn-link btn-xs' id='{0}_btnCancel'>Cancel</a> </div> "; writer.Write(string.Format(pickMenuHtmlFormatEnd, this.ClientID)); // picker-menu dropdown-menu writer.RenderEndTag(); // picker picker-select picker-person writer.RenderEndTag(); RegisterJavaScript(); } else { // this picker is not enabled (readonly), so just render a readonly version writer.AddAttribute("class", "picker picker-select"); writer.RenderBeginTag(HtmlTextWriterTag.Div); LinkButton linkButton = new LinkButton(); linkButton.CssClass = "picker-label"; linkButton.Text = string.Format("<i class='{1}'></i><span>{0}</span>", this.PersonName, "fa fa-user"); linkButton.Enabled = false; linkButton.RenderControl(writer); writer.WriteLine(); writer.RenderEndTag(); } }
/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public override void RenderControl(HtmlTextWriter writer) { if (this.Visible) { // Section writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget rock-panel-widget " + CssClass); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID); writer.RenderBeginTag("section"); // Header writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix"); writer.RenderBeginTag("header"); // Hidden Field to track expansion writer.AddAttribute(HtmlTextWriterAttribute.Class, "filter-expanded"); _hfExpanded.RenderControl(writer); /* Begin - Title and header controls */ writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-left"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // Hidden Field to track Title _hfTitle.RenderControl(writer); _hfTitleDisableVrm.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "js-header-title"); if (Expanded) { // if the panel is expanded and there are special HeaderControls to show instead of the Title, hide the title (and the header controls will be shown instead) if (this.HeaderControls != null) { writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); } } writer.RenderBeginTag(HtmlTextWriterTag.Div); // Title if (!string.IsNullOrWhiteSpace(TitleIconCssClass)) { writer.AddAttribute(HtmlTextWriterAttribute.Class, TitleIconCssClass); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.Write(" "); } // also write out the title (also stored in _hfTitle.value) writer.Write(Title); writer.RenderEndTag(); // Header Controls if (this.HeaderControls != null) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "filter-item-select js-header-controls"); if (!Expanded) { writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); foreach (var control in this.HeaderControls) { if (!this.Controls.Contains(control)) { this.Controls.Add(control); } if (control is WebControl) { (control as WebControl).AddCssClass("js-stop-immediate-propagation"); } control.RenderControl(writer); } writer.RenderEndTag(); } writer.RenderEndTag(); /* End - Title and Header Controls */ // Panel Controls writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Div); RenderLabels(writer); if (ShowReorderIcon) { // Reorder Icon writer.AddAttribute(HtmlTextWriterAttribute.Class, "btn btn-link btn-xs panel-widget-reorder js-stop-immediate-propagation"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa-bars"); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); } // Chevron up/down Button writer.AddAttribute(HtmlTextWriterAttribute.Class, "btn btn-link btn-xs view-state"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Class, Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down"); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); writer.RenderEndTag(); if (ShowDeleteButton) { _lbDelete.Visible = true; _lbDelete.RenderControl(writer); } else { _lbDelete.Visible = false; } writer.RenderEndTag(); // pull-right writer.RenderEndTag(); // Header // Body writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); if (!Expanded) { writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); RenderChildControls(writer); writer.RenderEndTag(); writer.RenderEndTag(); // Section } }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget checkin-group"); writer.AddAttribute("data-key", _hfGroupGuid.Value); writer.RenderBeginTag("article"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix clickable"); writer.RenderBeginTag("header"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-left"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lblGroupName.Text = _tbGroupName.Text; _lblGroupName.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.WriteLine("<a class='btn btn-link btn-xs checkin-group-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine(string.Format("<a class='btn btn-xs btn-link'><i class='checkin-group-state fa {0}'></i></a>", Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down")); if (IsDeleteEnabled) { _lbDeleteGroup.Visible = true; _lbDeleteGroup.RenderControl(writer); } else { _lbDeleteGroup.Visible = false; } // Add/ChevronUpDown/Delete div writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right panel-actions btn-group"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lbAddCheckinGroup.RenderControl(writer); writer.WriteLine(); writer.RenderEndTag(); // header div writer.RenderEndTag(); if (!Expanded) { // hide details if the name has already been filled in writer.AddStyleAttribute("display", "none"); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // make two span6 columns: Left Column for Name and Attributes. Right Column for Locations Grid writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // edit fields _tbGroupName.RenderControl(writer); // attributes _phGroupAttributes.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // Locations grid writer.WriteLine("<h3>Locations</h3>"); _gLocations.DataSource = this.Locations.OrderBy(l => l.FullNamePath).ToList(); _gLocations.DataBind(); _gLocations.RenderControl(writer); // span6 writer.RenderEndTag(); // rowfluid writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "checkin-group-list"); writer.RenderBeginTag(HtmlTextWriterTag.Div); foreach (CheckinGroupEditor checkinGroupEditor in this.Controls.OfType <CheckinGroupEditor>()) { checkinGroupEditor.RenderControl(writer); } // checkin-group-list div writer.RenderEndTag(); // widget-content div writer.RenderEndTag(); // article tag writer.RenderEndTag(); }
/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public override void RenderControl(HtmlTextWriter writer) { if (this.Visible) { RegisterJavaScript(); _pnlChartPlaceholder.Width = this.ChartWidth; _pnlChartPlaceholder.Height = this.ChartHeight; writer.AddAttribute("id", this.ClientID); writer.AddAttribute("class", this.GetType().Name.SplitCase().ToLower().Replace(" ", "-")); writer.RenderBeginTag(HtmlTextWriterTag.Div); _hfMetricId.RenderControl(writer); _hfRestUrlParams.RenderControl(writer); _hfRestUrl.RenderControl(writer); _hfSeriesPartitionNameUrl.RenderControl(writer); _hfXAxisLabel.RenderControl(writer); _hfYAxisLabel.RenderControl(writer); if (!string.IsNullOrWhiteSpace(_lblChartTitle.Text)) { writer.AddAttribute("class", "chart-title"); if (this.Options.customSettings != null && this.Options.customSettings.titleAlign != null) { writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, this.Options.customSettings.titleAlign); } if (this.Options.customSettings != null && this.Options.customSettings.titleFont != null) { if (!string.IsNullOrWhiteSpace(this.Options.customSettings.titleFont.color)) { _lblChartTitle.ForeColor = ColorTranslator.FromHtml(this.Options.customSettings.titleFont.color); } if (!string.IsNullOrWhiteSpace(this.Options.customSettings.titleFont.family)) { _lblChartTitle.Font.Name = this.Options.customSettings.titleFont.family; } if (this.Options.customSettings.titleFont.size.HasValue) { _lblChartTitle.Font.Size = new FontUnit(this.Options.customSettings.titleFont.size.Value); } } writer.RenderBeginTag(HtmlTextWriterTag.Div); _lblChartTitle.RenderControl(writer); writer.RenderEndTag(); } if (!string.IsNullOrWhiteSpace(_lblChartSubtitle.Text)) { writer.AddAttribute("class", "chart-subtitle"); if (this.Options.customSettings != null && this.Options.customSettings.subtitleAlign != null) { writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, this.Options.customSettings.subtitleAlign); } if (this.Options.customSettings != null && this.Options.customSettings.subtitleFont != null) { if (!string.IsNullOrWhiteSpace(this.Options.customSettings.subtitleFont.color)) { _lblChartSubtitle.ForeColor = ColorTranslator.FromHtml(this.Options.customSettings.subtitleFont.color); } if (!string.IsNullOrWhiteSpace(this.Options.customSettings.subtitleFont.family)) { _lblChartSubtitle.Font.Name = this.Options.customSettings.subtitleFont.family; } if (this.Options.customSettings.subtitleFont.size.HasValue) { _lblChartSubtitle.Font.Size = new FontUnit(this.Options.customSettings.subtitleFont.size.Value); } } writer.RenderBeginTag(HtmlTextWriterTag.Div); _lblChartSubtitle.RenderControl(writer); writer.RenderEndTag(); } if (this.ShowDebug) { _hbChartOptions.RenderControl(writer); } _pnlChartPlaceholder.RenderControl(writer); writer.RenderEndTag(); } }
/// <summary> /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param> public override void RenderControl(HtmlTextWriter writer) { var noteType = NoteTypeId.HasValue ? NoteTypeCache.Get(NoteTypeId.Value) : null; StringBuilder noteCss = new StringBuilder(); noteCss.Append("note-editor js-note-editor meta"); if (!string.IsNullOrEmpty(this.CssClass)) { noteCss.Append(" " + this.CssClass); } writer.AddAttribute(HtmlTextWriterAttribute.Class, noteCss.ToString()); if (this.Style[HtmlTextWriterStyle.Display] != null) { writer.AddStyleAttribute(HtmlTextWriterStyle.Display, this.Style[HtmlTextWriterStyle.Display]); } if (!ShowEditMode) { writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); } if (this.NoteId.HasValue) { writer.AddAttribute("rel", this.NoteId.Value.ToStringSafe()); } writer.RenderBeginTag(HtmlTextWriterTag.Div); // Edit Mode HTML... if (NoteOptions.DisplayType == NoteDisplayType.Full && NoteOptions.UsePersonIcon) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "meta-figure"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "avatar avatar-lg"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(Person.GetPersonPhotoImageTag(CreatedByPersonId, CreatedByPhotoId, null, CreatedByGender, null, 50, 50)); writer.RenderEndTag(); // avatar div writer.RenderEndTag(); // meta-figure div } writer.AddAttribute(HtmlTextWriterAttribute.Class, "meta-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "noteentry-control"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _tbNote.RenderControl(writer); _hfNoteId.RenderControl(writer); _hfParentNoteId.RenderControl(writer); writer.RenderEndTag(); // Options writer.AddAttribute(HtmlTextWriterAttribute.Class, "settings clearfix"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // The optional create date text box, but only for new notes... if (NoteOptions.ShowCreateDateInput && !NoteId.HasValue) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "createDate"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _dtCreateDate.RenderControl(writer); writer.RenderEndTag(); // createDate div } _ddlNoteType.RenderControl(writer); _hfHasUnselectableNoteType.RenderControl(writer); if (NoteOptions.DisplayType == NoteDisplayType.Full) { if (NoteOptions.ShowAlertCheckBox) { _cbAlert.RenderControl(writer); } if (NoteOptions.ShowPrivateCheckBox) { _cbPrivate.RenderControl(writer); } } writer.AddAttribute(HtmlTextWriterAttribute.Class, "commands"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _mdEditWarning.RenderControl(writer); if (NoteOptions.DisplayType == NoteDisplayType.Full) { if (NoteOptions.ShowSecurityButton) { _aSecurity.Attributes["data-title"] = this.Label; _aSecurity.RenderControl(writer); } } writer.AddAttribute(HtmlTextWriterAttribute.Class, "edit-note-cancel js-editnote-cancel btn btn-link btn-xs"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Cancel"); writer.RenderEndTag(); _lbSaveNote.Text = "Save " + Label; _lbSaveNote.CommandName = "SaveNote"; _lbSaveNote.CommandArgument = this.NoteId.ToString(); _lbSaveNote.RenderControl(writer); writer.RenderEndTag(); // commands div writer.RenderEndTag(); // settings div writer.RenderEndTag(); // panel body writer.RenderEndTag(); // ???? }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel panel-widget workflow-action"); writer.AddAttribute("data-key", _hfActionTypeGuid.Value); writer.RenderBeginTag("article"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "clearfix clickable panel-heading"); writer.RenderBeginTag("header"); // Hidden Field to track expansion _hfExpanded.RenderControl(writer); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-left workflow-action-name"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lblActionTypeName.Text = _tbActionTypeName.Text; _lblActionTypeName.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "pull-right"); writer.RenderBeginTag(HtmlTextWriterTag.Div); string criteriaExistsClass = _ddlCriteriaAttribute.SelectedValueAsGuid().HasValue ? " criteria-exists" : string.Empty; writer.WriteLine(string.Format("<a class='btn btn-xs btn-link js-workflow-action-criteria{0}'><i class='fa fa-filter'></i></a>", criteriaExistsClass)); writer.WriteLine("<a class='btn btn-xs btn-link workflow-action-reorder'><i class='fa fa-bars'></i></a>"); writer.WriteLine(string.Format("<a class='btn btn-xs btn-link'><i class='workflow-action-state fa {0}'></i></a>", Expanded ? "fa fa-chevron-up" : "fa fa-chevron-down")); if (IsDeleteEnabled) { _lbDeleteActionType.Visible = true; _lbDeleteActionType.RenderControl(writer); } else { _lbDeleteActionType.Visible = false; } // Add/ChevronUpDown/Delete div writer.RenderEndTag(); // header div writer.RenderEndTag(); if (!Expanded) { // hide details if the name has already been filled in writer.AddStyleAttribute("display", "none"); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); // add Criteria fields writer.AddAttribute(HtmlTextWriterAttribute.Class, "row conditional-run-criteria alert-warning"); if (!_ddlCriteriaAttribute.SelectedValueAsGuid().HasValue) { writer.AddStyleAttribute("display", "none"); } writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-lg-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-xs-7"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _ddlCriteriaAttribute.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-xs-5"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _ddlCriteriaComparisonType.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); // row writer.RenderEndTag(); // col-md-6 writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-lg-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); var comparisonType = _ddlCriteriaComparisonType.SelectedValueAsEnum <ComparisonType>(); _tbddlCriteriaValue.Style["display"] = (comparisonType == ComparisonType.IsBlank || comparisonType == ComparisonType.IsNotBlank) ? "none" : "block"; _tbddlCriteriaValue.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); // action edit fields writer.AddAttribute(HtmlTextWriterAttribute.Class, "row"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _tbActionTypeName.ValidationGroup = ValidationGroup; _tbActionTypeName.RenderControl(writer); _ddlEntityType.ValidationGroup = ValidationGroup; _ddlEntityType.RenderControl(writer); writer.RenderEndTag(); writer.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-6"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _cbIsActionCompletedOnSuccess.ValidationGroup = ValidationGroup; _cbIsActionCompletedOnSuccess.RenderControl(writer); _cbIsActivityCompletedOnSuccess.ValidationGroup = ValidationGroup; _cbIsActivityCompletedOnSuccess.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); _formEditor.ValidationGroup = ValidationGroup; _formEditor.RenderControl(writer); _phActionAttributes.RenderControl(writer); // widget-content div writer.RenderEndTag(); // article tag writer.RenderEndTag(); }
/// <summary> /// Writes the <see cref="T:System.Web.UI.WebControls.CompositeControl" /> content to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object, for display on the client. /// </summary> /// <param name="writer">An <see cref="T:System.Web.UI.HtmlTextWriter" /> that represents the output stream to render HTML content on the client.</param> public override void RenderControl(HtmlTextWriter writer) { if (this.Visible) { var currentPerson = (this.Page as RockPage)?.CurrentPerson; var editableNoteTypes = NoteOptions.GetEditableNoteTypes(currentPerson); bool canAdd = AddAllowed && editableNoteTypes.Any() && (AllowAnonymousEntry || currentPerson != null); string cssClass = "panel panel-note js-notecontainer" + (this.NoteOptions.DisplayType == NoteDisplayType.Light ? " panel-note-light" : string.Empty); writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass); writer.AddAttribute("data-sortdirection", this.SortDirection.ConvertToString(false)); writer.RenderBeginTag("section"); // Heading if (ShowHeading) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-heading clearfix"); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (!string.IsNullOrWhiteSpace(TitleIconCssClass) || !string.IsNullOrWhiteSpace(Title)) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-title"); writer.RenderBeginTag(HtmlTextWriterTag.H3); if (!string.IsNullOrWhiteSpace(TitleIconCssClass)) { writer.AddAttribute(HtmlTextWriterAttribute.Class, TitleIconCssClass); writer.RenderBeginTag(HtmlTextWriterTag.I); writer.RenderEndTag(); // I } if (!string.IsNullOrWhiteSpace(Title)) { writer.Write(" "); writer.Write(Title); } writer.RenderEndTag(); } if (!NoteOptions.AddAlwaysVisible && canAdd && SortDirection == ListSortDirection.Descending) { RenderAddButton(writer); } writer.RenderEndTag(); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "panel-body"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _noteEditor.ShowEditMode = NoteOptions.AddAlwaysVisible; if (canAdd && SortDirection == ListSortDirection.Descending) { if (!ShowHeading && !NoteOptions.AddAlwaysVisible) { RenderAddButton(writer); } _noteEditor.RenderControl(writer); } _hfCurrentNoteId.RenderControl(writer); _hfExpandedNoteIds.RenderControl(writer); _lbDeleteNote.RenderControl(writer); _mdDeleteWarning.RenderControl(writer); using (var rockContext = new RockContext()) { List <Note> viewableNoteList = GetViewableNoteList(rockContext, currentPerson); this.ShowMoreOption = (SortDirection == ListSortDirection.Descending) && (viewableNoteList.Count > this.DisplayCount); if (this.ShowMoreOption) { viewableNoteList = viewableNoteList.Take(this.DisplayCount).ToList(); } var rockBlock = this.RockBlock(); var noteMergeFields = LavaHelper.GetCommonMergeFields(rockBlock?.RockPage, currentPerson, new CommonMergeFieldsOptions { GetLegacyGlobalMergeFields = false }); noteMergeFields.Add("NoteOptions", this.NoteOptions); noteMergeFields.Add("NoteList", viewableNoteList); List <int> expandedNoteIdList = _hfExpandedNoteIds.Value.SplitDelimitedValues().AsIntegerList(); noteMergeFields.Add("ExpandedNoteIds", expandedNoteIdList); var noteTreeHtml = this.NoteOptions.NoteViewLavaTemplate.ResolveMergeFields(noteMergeFields).ResolveClientIds(this.ParentUpdatePanel()?.ClientID); writer.Write(noteTreeHtml); } if (canAdd && SortDirection == ListSortDirection.Ascending) { if (!NoteOptions.AddAlwaysVisible) { RenderAddButton(writer); } _noteEditor.RenderControl(writer); } else { if (ShowMoreOption) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "load-more-container"); writer.RenderBeginTag(HtmlTextWriterTag.Div); _lbShowMore.RenderControl(writer); writer.RenderEndTag(); } } writer.RenderEndTag(); writer.RenderEndTag(); } }
/// <summary> /// Renders the <see cref="T:System.Web.UI.WebControls.TextBox" /> control to the specified <see cref="T:System.Web.UI.HtmlTextWriter" /> object. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> that receives the rendered output.</param> public void RenderBaseControl(HtmlTextWriter writer) { var value = _hfTemplateKey.Value.AsGuidOrNull(); bool isCustom = value == _CustomGuid; _pnlCustom.Visible = isCustom; _pnlStandard.Visible = !isCustom; var row = new HtmlGenericControl("div"); _pnlStandard.Controls.Add(row); row.Attributes["class"] = "row js-template-row"; int optionCount = 0; StringBuilder htmlBuilder = new StringBuilder(); if (_templateBlockValueId.HasValue) { var blockTemplateDefinedValue = DefinedValueCache.Get(_templateBlockValueId.Value); if (blockTemplateDefinedValue != null) { var definedType = DefinedTypeCache.Get(Rock.SystemGuid.DefinedType.TEMPLATE); definedType.DefinedValues.LoadAttributes(); foreach (var item in definedType.DefinedValues) { if (item.GetAttributeValue("TemplateBlock").AsGuid() == blockTemplateDefinedValue.Guid) { optionCount += 1; if (_hfTemplateKey.Value.IsNullOrWhiteSpace()) { _hfTemplateKey.Value = item.Guid.ToString(); } var imageUrl = string.Format("~/GetImage.ashx?guid={0}", item.GetAttributeValue("Icon").AsGuid()); var imgSrc = string.Format("<img src='{0}' width='100%'/>", ResolveUrl(imageUrl)); string html = string.Format(@" <div class='col-md-2 col-sm-4 template-picker-item'> <div class='radio'> <label><input type = 'radio' class='js-template-picker' name='template-id-{5}' id='{0}' value='{0}' {2} {3}><span class='label-text'><b>{1}</b></span></label> </div> {4} </div>", item.Guid, item.Value, _hfTemplateKey.Value.AsGuid() == item.Guid ? "checked" : "", this.Enabled ? "" : "disabled", imgSrc, this.ID); htmlBuilder.Append(html); } } } } _hfTemplateKey.RenderControl(writer); if (optionCount > 0) { row.Controls.Add(new LiteralControl { Text = htmlBuilder.ToString() }); var actionDiv = new HtmlGenericControl("div"); _pnlStandard.Controls.Add(actionDiv); actionDiv.Attributes["class"] = "actions clearfix"; _pnlStandard.Controls.Add(_btnCustomize); } _pnlStandard.Enabled = this.Enabled; _pnlCustom.Enabled = this.Enabled; _pnlStandard.RenderControl(writer); _rbbCustom.Checked = true; _pnlCustom.RenderControl(writer); RegisterClientScript(); }