/// <summary>Displays the course page.</summary> /// <param name="coursePage">The course page.</param> /// <param name="parentControl">The parent control.</param> /// <returns></returns> public virtual List <Control> DisplayCoursePage(CoursePage coursePage, Control parentControl) { var controls = new List <Control>(); var literal = new RockLiteral { Text = coursePage.Configuration }; parentControl.Controls.Add(literal); controls.Add(literal); return(controls); }
private void DisplayPINs() { int pinEntityId = EntityTypeCache.Get("Rock.Security.Authentication.PINAuthentication").Id; RockContext rockContext = new RockContext(); var userLoginEntity = new EntityTypeService(rockContext).Get(pinEntityId); var userAuthorized = userLoginEntity.IsAuthorized(Authorization.ADMINISTRATE, CurrentPerson); if (userAuthorized) { lbAdd.Visible = true; } var pins = new UserLoginService(rockContext).GetByPersonId(Person.Id).Where(ul => ul.EntityTypeId == pinEntityId).ToList(); phPin.Controls.Clear(); foreach (var pin in pins) { var rowPanel = new Panel(); rowPanel.CssClass = "row rollover-container"; phPin.Controls.Add(rowPanel); var firstPanel = new Panel(); firstPanel.CssClass = "col-xs-1"; rowPanel.Controls.Add(firstPanel); var secondPanel = new Panel(); secondPanel.CssClass = "col-xs-10"; rowPanel.Controls.Add(secondPanel); pin.LoadAttributes(); List <string> purpose = new List <string>(); if (pin.GetAttributeValue("PINPurpose") != null) { var purposeIds = pin.GetAttributeValue("PINPurpose") .Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries) .ToList(); if (purposeIds.Any()) { foreach (var purposeId in purposeIds) { var dvPurpose = DefinedValueCache.Get(purposeId.AsInteger()); if (dvPurpose != null) { purpose.Add(dvPurpose.Value); } } } else { purpose.Add("[No Purpose]"); } } else { purpose.Add("[No Purpose]"); } RockLiteral rockLiteral = new RockLiteral(); rockLiteral.Label = pin.UserName; rockLiteral.Text = string.Join(", ", purpose); secondPanel.Controls.Add(rockLiteral); var thirdPanel = new Panel(); thirdPanel.CssClass = "col-xs-1 rollover-item"; rowPanel.Controls.Add(thirdPanel); if (userAuthorized) { LinkButton lbEdit = new LinkButton(); lbEdit.ID = pin.Guid.ToString(); lbEdit.Text = "<i class='fa fa-pencil'></i>"; lbEdit.Click += (s, ee) => EditPin(pin.Id, rockContext); thirdPanel.Controls.Add(lbEdit); } } }
/// <summary> /// Shows the readonly details. /// </summary> /// <param name="eventItem">The event item.</param> private void ShowReadonlyDetails(EventItem eventItem) { SetEditMode(false); hfEventItemId.SetValue(eventItem.Id); lReadOnlyTitle.Text = eventItem.Name.FormatAsHtmlTitle(); SetLabels(eventItem); string imgTag = GetImageTag(eventItem.PhotoId, 300, 300, false, true); if (eventItem.PhotoId.HasValue) { string imageUrl = ResolveRockUrl(String.Format("~/GetImage.ashx?id={0}", eventItem.PhotoId.Value)); lImage.Text = string.Format("<a href='{0}'>{1}</a>", imageUrl, imgTag); divImage.Visible = true; } else { divImage.Visible = false; } lSummary.Visible = !string.IsNullOrWhiteSpace(eventItem.Summary); lSummary.Text = eventItem.Summary; var calendars = eventItem.EventCalendarItems .Select(c => c.EventCalendar.Name).ToList(); if (calendars.Any()) { lCalendar.Visible = true; lCalendar.Text = calendars.AsDelimited(", "); } else { lCalendar.Visible = false; } var audiences = eventItem.EventItemAudiences .Select(a => a.DefinedValue.Value).ToList(); if (audiences.Any()) { lAudiences.Visible = true; lAudiences.Text = audiences.AsDelimited(", "); } else { lAudiences.Visible = false; } phAttributesView.Controls.Clear(); foreach (var eventCalendarItem in eventItem.EventCalendarItems) { eventCalendarItem.LoadAttributes(); if (eventCalendarItem.Attributes.Count > 0) { foreach (var attr in eventCalendarItem.Attributes) { string value = eventCalendarItem.GetAttributeValue(attr.Key); if (!string.IsNullOrWhiteSpace(value)) { var rl = new RockLiteral(); rl.ID = "attr_" + attr.Key; rl.Label = attr.Value.Name; rl.Text = attr.Value.FieldType.Field.FormatValueAsHtml(null, value, attr.Value.QualifierValues, false); phAttributesView.Controls.Add(rl); } } } } }
private void BuildForm(bool setValues) { var form = _actionType.WorkflowForm; if (setValues) { var mergeFields = Rock.Web.Cache.GlobalAttributesCache.GetMergeFields(null); mergeFields.Add("Action", _action); mergeFields.Add("Activity", _activity); mergeFields.Add("Workflow", _workflow); if (CurrentPerson != null) { mergeFields.Add("CurrentPerson", CurrentPerson); } lheadingText.Text = form.Header.ResolveMergeFields(mergeFields); lFootingText.Text = form.Footer.ResolveMergeFields(mergeFields); } phAttributes.Controls.Clear(); foreach (var formAttribute in form.FormAttributes.OrderBy(a => a.Order)) { if (formAttribute.IsVisible) { var attribute = AttributeCache.Read(formAttribute.AttributeId); string value = attribute.DefaultValue; if (_workflow != null && _workflow.AttributeValues.ContainsKey(attribute.Key) && _workflow.AttributeValues[attribute.Key] != null) { value = _workflow.AttributeValues[attribute.Key].Value; } if (!string.IsNullOrWhiteSpace(formAttribute.PreHtml)) { phAttributes.Controls.Add(new LiteralControl(formAttribute.PreHtml)); } if (formAttribute.IsReadOnly) { var field = attribute.FieldType.Field; string formattedValue = field.FormatValueAsHtml(phAttributes, value, attribute.QualifierValues); if (formAttribute.HideLabel) { phAttributes.Controls.Add(new LiteralControl(formattedValue)); } else { RockLiteral lAttribute = new RockLiteral(); lAttribute.ID = "lAttribute_" + formAttribute.Id.ToString(); lAttribute.Label = attribute.Name; if (field is Rock.Field.ILinkableFieldType) { string url = ((Rock.Field.ILinkableFieldType)field).UrlLink(value, attribute.QualifierValues); url = ResolveRockUrl("~").EnsureTrailingForwardslash() + url; lAttribute.Text = string.Format("<a href='{0}' target='_blank'>{1}</a>", url, formattedValue); } else { lAttribute.Text = formattedValue; } phAttributes.Controls.Add(lAttribute); } } else { attribute.AddControl(phAttributes.Controls, value, BlockValidationGroup, setValues, true, formAttribute.IsRequired, (formAttribute.HideLabel ? string.Empty : attribute.Name)); } if (!string.IsNullOrWhiteSpace(formAttribute.PostHtml)) { phAttributes.Controls.Add(new LiteralControl(formAttribute.PostHtml)); } } } if (form.AllowNotes.HasValue && form.AllowNotes.Value && _workflow != null && _workflow.Id != 0) { ncWorkflowNotes.EntityId = _workflow.Id; ncWorkflowNotes.RebuildNotes(setValues); ShowNotes(true); } else { ShowNotes(false); } phActions.Controls.Clear(); foreach (var action in form.Actions.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)) { var details = action.Split(new char[] { '^' }); if (details.Length > 0) { // Get the button html string buttonHtml = string.Empty; if (details.Length > 1) { var definedValue = DefinedValueCache.Read(details[1].AsGuid()); if (definedValue != null) { buttonHtml = definedValue.GetAttributeValue("ButtonHTML"); } } if (string.IsNullOrWhiteSpace(buttonHtml)) { buttonHtml = "<a href=\"{{ ButtonLink }}\" onclick=\"{{ ButtonClick }}\" class='btn btn-primary' data-loading-text='<i class=\"fa fa-refresh fa-spin\"></i> {{ ButtonText }}'>{{ ButtonText }}</a>"; } var buttonMergeFields = new Dictionary <string, object>(); buttonMergeFields.Add("ButtonText", details[0].EscapeQuotes()); buttonMergeFields.Add("ButtonClick", string.Format("if ( Page_ClientValidate('{0}') ) {{ $(this).button('loading'); return true; }} else {{ return false; }}", BlockValidationGroup)); buttonMergeFields.Add("ButtonLink", Page.ClientScript.GetPostBackClientHyperlink(this, details[0])); buttonHtml = buttonHtml.ResolveMergeFields(buttonMergeFields); phActions.Controls.Add(new LiteralControl(buttonHtml)); phActions.Controls.Add(new LiteralControl(" ")); } } }
/// <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() { base.CreateChildControls(); Controls.Clear(); tbFromName = new RockTextBox(); tbFromName.ID = string.Format("tbFromName_{0}", this.ID); tbFromName.Label = "From Name"; Controls.Add(tbFromName); lFromName = new RockLiteral(); lFromName.ID = string.Format("lFromName_{0}", this.ID); lFromName.Label = "From Name"; Controls.Add(lFromName); ebFromAddress = new EmailBox(); ebFromAddress.ID = string.Format("ebFromAddress_{0}", this.ID); ebFromAddress.Label = "From Address"; Controls.Add(ebFromAddress); lFromAddress = new RockLiteral(); lFromAddress.ID = string.Format("lFromAddress_{0}", this.ID); lFromAddress.Label = "From Address"; Controls.Add(lFromAddress); ebReplyToAddress = new EmailBox(); ebReplyToAddress.ID = string.Format("ebReplyToAddress_{0}", this.ID); ebReplyToAddress.Label = "Reply To Address"; Controls.Add(ebReplyToAddress); tbSubject = new RockTextBox(); tbSubject.ID = string.Format("tbSubject_{0}", this.ID); tbSubject.Label = "Subject"; tbSubject.Help = "<span class='tip tip-lava'></span>"; Controls.Add(tbSubject); htmlMessage = new HtmlEditor(); htmlMessage.ID = string.Format("htmlMessage_{0}", this.ID); //htmlMessage.AdditionalConfigurations = "autoParagraph: false,"; htmlMessage.Help = "<span class='tip tip-lava'></span> <span class='tip tip-html'>"; this.AdditionalMergeFields.ForEach(m => htmlMessage.MergeFields.Add(m)); htmlMessage.Label = "Message"; htmlMessage.Height = 600; Controls.Add(htmlMessage); tbTextMessage = new RockTextBox(); tbTextMessage.ID = string.Format("tbTextMessage_{0}", this.ID); tbTextMessage.Label = "Message (Text Version)"; tbTextMessage.TextMode = TextBoxMode.MultiLine; tbTextMessage.Rows = 5; tbTextMessage.CssClass = "span12"; Controls.Add(tbTextMessage); hfAttachments = new HiddenField(); hfAttachments.ID = string.Format("hfAttachments_{0}", this.ID); Controls.Add(hfAttachments); fuAttachments = new FileUploader(); fuAttachments.ID = string.Format("fuAttachments_{0}", this.ID); fuAttachments.Label = "Attachments"; fuAttachments.FileUploaded += fuAttachments_FileUploaded; Controls.Add(fuAttachments); }
/// <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() { base.CreateChildControls(); Controls.Clear(); tbFromName = new RockTextBox(); tbFromName.ID = string.Format("tbFromName_{0}", this.ID); tbFromName.Label = "From Name"; tbFromName.MaxLength = 100; Controls.Add(tbFromName); lFromName = new RockLiteral(); lFromName.ID = string.Format("lFromName_{0}", this.ID); lFromName.Label = "From Name"; Controls.Add(lFromName); ebFromAddress = new EmailBox(); ebFromAddress.ID = string.Format("ebFromAddress_{0}", this.ID); ebFromAddress.Label = "From Address"; Controls.Add(ebFromAddress); lFromAddress = new RockLiteral(); lFromAddress.ID = string.Format("lFromAddress_{0}", this.ID); lFromAddress.Label = "From Address"; Controls.Add(lFromAddress); ebReplyToAddress = new EmailBox(); ebReplyToAddress.ID = string.Format("ebReplyToAddress_{0}", this.ID); ebReplyToAddress.Label = "Reply To Address"; Controls.Add(ebReplyToAddress); tbSubject = new RockTextBox(); tbSubject.ID = string.Format("tbSubject_{0}", this.ID); tbSubject.Label = "Subject"; tbSubject.Help = "<span class='tip tip-lava'></span>"; tbSubject.MaxLength = 100; Controls.Add(tbSubject); htmlMessage = new HtmlEditor(); htmlMessage.ID = string.Format("htmlMessage_{0}", this.ID); //htmlMessage.AdditionalConfigurations = "autoParagraph: false,"; htmlMessage.Help = "<span class='tip tip-lava'></span> <span class='tip tip-html'>"; htmlMessage.Label = "Message"; htmlMessage.Height = 600; Controls.Add(htmlMessage); hfAttachments = new HiddenField(); hfAttachments.ID = string.Format("hfAttachments_{0}", this.ID); Controls.Add(hfAttachments); fupEmailAttachments = new FileUploader(); fupEmailAttachments.ID = string.Format("fupEmailAttachments_{0}", this.ID); fupEmailAttachments.Label = "Attachments"; fupEmailAttachments.FileUploaded += fupEmailAttachments_FileUploaded; Controls.Add(fupEmailAttachments); ebCcAddress = new EmailBox(); ebCcAddress.ID = string.Format("ebCcAddress_{0}", this.ID); ebCcAddress.Label = "CC Address"; ebCcAddress.Help = "Any address in this field will be copied on the email sent to every recipient. Lava can be used to access recipient data. <span class='tip tip-lava'></span>"; Controls.Add(ebCcAddress); ebBccAddress = new EmailBox(); ebBccAddress.ID = string.Format("ebBccAddress{0}", this.ID); ebBccAddress.Label = "Bcc Address"; ebBccAddress.Help = "Any address in this field will be copied on the email sent to every recipient. Lava can be used to access recipient data. <span class='tip tip-lava'></span>"; Controls.Add(ebBccAddress); }
private void ShowView() { phGroups.Controls.Clear(); var groups = GetGroups(); RockContext rockContext = new RockContext(); GroupMemberService groupMemberService = new GroupMemberService(rockContext); foreach (var group in groups) { if (!group.IsAuthorized(Authorization.VIEW, CurrentPerson)) { continue; } var groupRoleIds = group.GroupType.Roles.Select(r => r.Id).ToList(); var groupMembers = groupMemberService.GetByGroupIdAndPersonId(group.Id, Person.Id); foreach (var groupMember in groupMembers) { var incorrectRoleIdAlert = ""; if (!groupRoleIds.Contains(groupMember.GroupRoleId)) { incorrectRoleIdAlert = string.Format(" <i class='fa fa-exclamation-triangle' title='{0}'></i>", group.GroupType.DefaultGroupRoleId); } Literal ltGroup = new Literal(); ltGroup.Text = string.Format("<h4>{0} [{1}{2}]</h4>", group.Name, groupMember.GroupRole.Name, incorrectRoleIdAlert); phGroups.Controls.Add(ltGroup); string formattedValue = string.Empty; groupMember.LoadAttributes(); var attributeList = groupMember.Attributes.Select(d => d.Value) .OrderBy(a => a.Order).ThenBy(a => a.Name).ToList(); foreach (var attribute in attributeList) { var attributeValue = groupMember.GetAttributeValue(attribute.Key); if (attribute.FieldType.Class == typeof(Rock.Field.Types.ImageFieldType).FullName) { formattedValue = attribute.FieldType.Field.FormatValueAsHtml(phGroups, attributeValue, attribute.QualifierValues, true); } else { formattedValue = attribute.FieldType.Field.FormatValueAsHtml(phGroups, attributeValue, attribute.QualifierValues, false); } if (!string.IsNullOrWhiteSpace(formattedValue)) { phGroups.Controls.Add(new RockLiteral { Label = attribute.Name, Text = formattedValue }); } if (!string.IsNullOrWhiteSpace(groupMember.Note)) { RockLiteral ltNote = new RockLiteral(); ltNote.Label = "Note"; ltNote.Text = groupMember.Note; phGroups.Controls.Add(ltNote); } } } } }
/// <summary> /// Handles the ItemDataBound event of the rptrGroups control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.RepeaterItemEventArgs"/> instance containing the event data.</param> protected void rptrGroups_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { var group = e.Item.DataItem as Group; if (group != null) { HyperLink hlEditGroup = e.Item.FindControl("hlEditGroup") as HyperLink; if (hlEditGroup != null) { hlEditGroup.Visible = _allowEdit; var pageParams = new Dictionary <string, string>(); pageParams.Add("PersonId", Person.Id.ToString()); pageParams.Add("GroupId", group.Id.ToString()); hlEditGroup.NavigateUrl = LinkedPageUrl(AttributeKey.GroupEditPage, pageParams); } var lReorderIcon = e.Item.FindControl("lReorderIcon") as Control; lReorderIcon.Visible = _showReorderIcon; Repeater rptrMembers = e.Item.FindControl("rptrMembers") as Repeater; if (rptrMembers != null) { // use the _bindGroupsRockContext that is created/disposed in BindFamilies() var members = new GroupMemberService(_bindGroupsRockContext).Queryable("GroupRole,Person", true) .Where(m => m.GroupId == group.Id && m.PersonId != Person.Id) .OrderBy(m => m.GroupRole.Order) .ToList(); var groupHeaderLava = GetAttributeValue(AttributeKey.GroupHeaderLava); var groupFooterLava = GetAttributeValue(AttributeKey.GroupFooterLava); if (groupHeaderLava.IsNotNullOrWhiteSpace() || groupFooterLava.IsNotNullOrWhiteSpace()) { // add header and footer information var mergeFields = Rock.Lava.LavaHelper.GetCommonMergeFields(this.RockPage, CurrentPerson, new Rock.Lava.CommonMergeFieldsOptions { GetLegacyGlobalMergeFields = false }); mergeFields.Add("Group", group); mergeFields.Add("GroupMembers", members); Literal lGroupHeader = e.Item.FindControl("lGroupHeader") as Literal; Literal lGroupFooter = e.Item.FindControl("lGroupFooter") as Literal; lGroupHeader.Text = groupHeaderLava.ResolveMergeFields(mergeFields); lGroupFooter.Text = groupFooterLava.ResolveMergeFields(mergeFields); } var orderedMembers = new List <GroupMember>(); if (_IsFamilyGroupType) { // Add adult males orderedMembers.AddRange(members .Where(m => m.GroupRole.Guid.Equals(new Guid(Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT)) && m.Person.Gender == Gender.Male) .OrderByDescending(m => m.Person.Age)); // Add adult females orderedMembers.AddRange(members .Where(m => m.GroupRole.Guid.Equals(new Guid(Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT)) && m.Person.Gender != Gender.Male) .OrderByDescending(m => m.Person.Age)); // Add non-adults orderedMembers.AddRange(members .Where(m => !m.GroupRole.Guid.Equals(new Guid(Rock.SystemGuid.GroupRole.GROUPROLE_FAMILY_MEMBER_ADULT))) .OrderByDescending(m => m.Person.Age)); } else { orderedMembers = members .OrderBy(m => m.GroupRole.Order) .ThenBy(m => m.Person.LastName) .ThenBy(m => m.Person.NickName) .ToList(); } rptrMembers.ItemDataBound += rptrMembers_ItemDataBound; rptrMembers.DataSource = orderedMembers; rptrMembers.DataBind(); } Repeater rptrAddresses = e.Item.FindControl("rptrAddresses") as Repeater; if (rptrAddresses != null) { rptrAddresses.ItemDataBound += rptrAddresses_ItemDataBound; rptrAddresses.ItemCommand += rptrAddresses_ItemCommand; rptrAddresses.DataSource = new GroupLocationService(_bindGroupsRockContext).Queryable("Location,GroupLocationTypeValue") .Where(l => l.GroupId == group.Id) .OrderBy(l => l.GroupLocationTypeValue.Order) .ToList(); rptrAddresses.DataBind(); } Panel pnlGroupAttributes = e.Item.FindControl("pnlGroupAttributes") as Panel; HyperLink hlShowMoreAttributes = e.Item.FindControl("hlShowMoreAttributes") as HyperLink; PlaceHolder phGroupAttributes = e.Item.FindControl("phGroupAttributes") as PlaceHolder; PlaceHolder phMoreGroupAttributes = e.Item.FindControl("phMoreGroupAttributes") as PlaceHolder; if (pnlGroupAttributes != null && hlShowMoreAttributes != null && phGroupAttributes != null && phMoreGroupAttributes != null) { hlShowMoreAttributes.Visible = false; phGroupAttributes.Controls.Clear(); phMoreGroupAttributes.Controls.Clear(); group.LoadAttributes(); var attributes = group.GetAuthorizedAttributes(Authorization.VIEW, CurrentPerson) .Select(a => a.Value) .OrderBy(a => a.Order) .ToList(); foreach (var attribute in attributes) { if (attribute.IsAuthorized(Authorization.VIEW, CurrentPerson)) { string value = attribute.DefaultValue; if (group.AttributeValues.ContainsKey(attribute.Key) && group.AttributeValues[attribute.Key] != null) { value = group.AttributeValues[attribute.Key].ValueFormatted; } if (!string.IsNullOrWhiteSpace(value)) { var literalControl = new RockLiteral(); literalControl.ID = string.Format("familyAttribute_{0}", attribute.Id); literalControl.Label = attribute.Name; literalControl.Text = value; var div = new HtmlGenericControl("div"); div.AddCssClass("col-md-3 col-sm-6"); div.Controls.Add(literalControl); if (attribute.IsGridColumn) { phGroupAttributes.Controls.Add(div); } else { hlShowMoreAttributes.Visible = true; phMoreGroupAttributes.Controls.Add(div); } } } } pnlGroupAttributes.Visible = phGroupAttributes.Controls.Count > 0 || phMoreGroupAttributes.Controls.Count > 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() { base.CreateChildControls(); Controls.Clear(); tbFromName = new RockTextBox(); tbFromName.ID = string.Format( "tbFromName_{0}", this.ID ); tbFromName.Label = "From Name"; Controls.Add( tbFromName ); lFromName = new RockLiteral(); lFromName.ID = string.Format( "lFromName_{0}", this.ID ); lFromName.Label = "From Name"; Controls.Add( lFromName ); ebFromAddress = new EmailBox(); ebFromAddress.ID = string.Format( "ebFromAddress_{0}", this.ID ); ebFromAddress.Label = "From Address"; Controls.Add( ebFromAddress ); lFromAddress = new RockLiteral(); lFromAddress.ID = string.Format( "lFromAddress_{0}", this.ID ); lFromAddress.Label = "From Address"; Controls.Add( lFromAddress ); ebReplyToAddress = new EmailBox(); ebReplyToAddress.ID = string.Format( "ebReplyToAddress_{0}", this.ID ); ebReplyToAddress.Label = "Reply To Address"; Controls.Add( ebReplyToAddress ); tbSubject = new RockTextBox(); tbSubject.ID = string.Format( "tbSubject_{0}", this.ID ); tbSubject.Label = "Subject"; tbSubject.Help = "<span class='tip tip-lava'></span>"; Controls.Add( tbSubject ); htmlMessage = new HtmlEditor(); htmlMessage.ID = string.Format( "htmlMessage_{0}", this.ID ); //htmlMessage.AdditionalConfigurations = "autoParagraph: false,"; htmlMessage.Help = "<span class='tip tip-lava'></span> <span class='tip tip-html'>"; this.AdditionalMergeFields.ForEach( m => htmlMessage.MergeFields.Add( m ) ); htmlMessage.Label = "Message"; htmlMessage.Height = 600; Controls.Add( htmlMessage ); tbTextMessage = new RockTextBox(); tbTextMessage.ID = string.Format( "tbTextMessage_{0}", this.ID ); tbTextMessage.Label = "Message (Text Version)"; tbTextMessage.TextMode = TextBoxMode.MultiLine; tbTextMessage.Rows = 5; tbTextMessage.CssClass = "span12"; Controls.Add( tbTextMessage ); hfAttachments = new HiddenField(); hfAttachments.ID = string.Format( "hfAttachments_{0}", this.ID ); Controls.Add( hfAttachments ); fuAttachments = new FileUploader(); fuAttachments.ID = string.Format( "fuAttachments_{0}", this.ID ); fuAttachments.Label = "Attachments"; fuAttachments.FileUploaded += fuAttachments_FileUploaded; Controls.Add( fuAttachments ); }
/// <summary> /// Sets the checkin label (Time, Name, PhoneNumber, etc) /// </summary> /// <param name="rockContext">The rock context.</param> /// <param name="personAliasId">The person alias identifier.</param> /// <param name="rockLiteral">The rock literal.</param> private static void SetCheckinInfoLabel(RockContext rockContext, DateTime?dateTime, int?personAliasId, RockLiteral rockLiteral) { if (dateTime == null) { rockLiteral.Visible = false; } rockLiteral.Text = dateTime.Value.ToShortDateTimeString(); if (!personAliasId.HasValue) { return; } var personAliasService = new PersonAliasService(rockContext); var person = personAliasService.GetSelect(personAliasId.Value, s => s.Person); if (person == null) { return; } var checkedInByPersonName = person.FullName; var checkedInByPersonPhone = person.GetPhoneNumber(Rock.SystemGuid.DefinedValue.PERSON_PHONE_TYPE_MOBILE.AsGuid()); rockLiteral.Text = string.Format("{0 } by {1} {2}", dateTime.Value.ToShortDateTimeString(), checkedInByPersonName, checkedInByPersonPhone); }