/// <summary> /// Creates the control(s) neccessary for prompting user for a new value /// </summary> /// <param name="configurationValues">The configuration values.</param> /// <param name="id"></param> /// <returns> /// The control /// </returns> public override System.Web.UI.Control EditControl( Dictionary<string, ConfigurationValue> configurationValues, string id ) { var editControl = new GroupTypePicker { ID = id }; editControl.GroupTypes = new GroupTypeService().Queryable() .OrderBy( a => a.Name ).ToList(); return editControl; }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls( Type entityType, FilterField filterControl ) { GroupTypePicker groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = filterControl.ID + "_groupTypePicker"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); filterControl.Controls.Add( groupTypePicker ); return new Control[] { groupTypePicker }; }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls( Type entityType, FilterField filterControl ) { var gtpGroupType = new GroupTypePicker(); gtpGroupType.ID = filterControl.ID + "_0"; gtpGroupType.AddCssClass( "js-group-type" ); filterControl.Controls.Add( gtpGroupType ); gtpGroupType.UseGuidAsValue = true; gtpGroupType.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy(a => a.Name).ToList(); var cbChildGroupTypes = new RockCheckBox(); cbChildGroupTypes.ID = filterControl.ID + "_cbChildGroupTypes"; cbChildGroupTypes.AddCssClass( "js-child-group-types" ); cbChildGroupTypes.Text = "Include Child Group Types(s)"; filterControl.Controls.Add( cbChildGroupTypes ); var ddlIntegerCompare = ComparisonHelper.ComparisonControl( ComparisonHelper.NumericFilterComparisonTypes ); ddlIntegerCompare.Label = "Attendance Count"; ddlIntegerCompare.ID = filterControl.ID + "_ddlIntegerCompare"; ddlIntegerCompare.AddCssClass( "js-filter-compare" ); filterControl.Controls.Add( ddlIntegerCompare ); var tbAttendedCount = new RockTextBox(); tbAttendedCount.ID = filterControl.ID + "_2"; tbAttendedCount.Label = " "; // give it whitespace label so it lines up nicely tbAttendedCount.AddCssClass( "js-attended-count" ); filterControl.Controls.Add( tbAttendedCount ); var slidingDateRangePicker = new SlidingDateRangePicker(); slidingDateRangePicker.Label = "Date Range"; slidingDateRangePicker.ID = filterControl.ID + "_slidingDateRangePicker"; slidingDateRangePicker.AddCssClass( "js-sliding-date-range" ); filterControl.Controls.Add( slidingDateRangePicker ); var controls = new Control[5] { gtpGroupType, cbChildGroupTypes, ddlIntegerCompare, tbAttendedCount, slidingDateRangePicker }; // convert pipe to comma delimited var defaultDelimitedValues = slidingDateRangePicker.DelimitedValues.Replace( "|", "," ); var defaultCount = 4; // set the default values in case this is a newly added filter SetSelection( entityType, controls, string.Format( "{0}|{1}|{2}|{3}|false", gtpGroupType.Items.Count > 0 ? gtpGroupType.Items[0].Value : "0", ComparisonType.GreaterThanOrEqualTo.ConvertToInt().ToString(), defaultCount, defaultDelimitedValues ) ); return controls; }
/// <summary> /// Creates the control(s) neccessary for prompting user for a new value /// </summary> /// <param name="configurationValues">The configuration values.</param> /// <param name="id"></param> /// <returns> /// The control /// </returns> public override System.Web.UI.Control EditControl( Dictionary<string, ConfigurationValue> configurationValues, string id ) { var editControl = new GroupTypePicker { ID = id }; var qryGroupTypes = new GroupTypeService( new RockContext() ).Queryable(); if ( configurationValues.ContainsKey( GROUP_TYPE_PURPOSE_VALUE_GUID ) ) { var groupTypePurposeValueGuid = ( configurationValues[GROUP_TYPE_PURPOSE_VALUE_GUID] ).Value.AsGuidOrNull(); if ( groupTypePurposeValueGuid.HasValue ) { qryGroupTypes = qryGroupTypes.Where( a => a.GroupTypePurposeValue.Guid == groupTypePurposeValueGuid.Value ); } } editControl.GroupTypes = qryGroupTypes.OrderBy( a => a.Name ).ToList(); return editControl; }
/// <summary> /// Binds the type of the group. /// </summary> /// <param name="control">The control.</param> /// <param name="groupTypes">The group types.</param> /// <param name="attributeName">Name of the attribute.</param> private void BindGroupType( GroupTypePicker control, List<GroupType> groupTypes, string attributeName ) { control.GroupTypes = groupTypes; Guid? groupTypeGuid = GetAttributeValue( attributeName ).AsGuidOrNull(); if ( groupTypeGuid.HasValue ) { var groupType = groupTypes.FirstOrDefault( g => g.Guid.Equals( groupTypeGuid.Value ) ); if ( groupType != null ) { control.SelectedGroupTypeId = groupType.Id; } } }
/// <summary> /// Creates the child controls. /// </summary> /// <param name="parentControl"></param> /// <returns></returns> public override System.Web.UI.Control[] CreateChildControls( System.Web.UI.Control parentControl ) { int? selectedGroupTypeId = null; if (groupTypePicker != null) { selectedGroupTypeId = groupTypePicker.SelectedGroupTypeId; } groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = parentControl.ID + "_0"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedGroupTypeId = selectedGroupTypeId; parentControl.Controls.Add( groupTypePicker ); return new Control[1] { groupTypePicker }; }
/// <summary> /// Creates the child controls. /// </summary> /// <param name="parentControl"></param> /// <returns></returns> public override System.Web.UI.Control[] CreateChildControls( System.Web.UI.Control parentControl ) { int? selectedGroupTypeId = null; if (groupTypePicker != null) { selectedGroupTypeId = groupTypePicker.SelectedGroupTypeId; } groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = parentControl.ID + "_0"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; groupTypePicker.SelectedGroupTypeId = selectedGroupTypeId; parentControl.Controls.Add( groupTypePicker ); cblRole = new RockCheckBoxList(); cblRole.Label = "with Group Role(s)"; cblRole.ID = parentControl.ID + "_1"; PopulateGroupRolesCheckList( groupTypePicker.SelectedGroupTypeId ?? 0 ); parentControl.Controls.Add( cblRole ); return new Control[2] { groupTypePicker, cblRole }; }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls( Type entityType, FilterField filterControl ) { int? selectedGroupTypeId = null; if ( groupTypePicker != null ) { selectedGroupTypeId = groupTypePicker.SelectedGroupTypeId; } groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = filterControl.ID + "_groupTypePicker"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; groupTypePicker.SelectedGroupTypeId = selectedGroupTypeId; filterControl.Controls.Add( groupTypePicker ); cblRole = new RockCheckBoxList(); cblRole.Label = "with Group Role(s)"; cblRole.ID = filterControl.ID + "_cblRole"; filterControl.Controls.Add( cblRole ); PopulateGroupRolesCheckList( groupTypePicker.SelectedGroupTypeId ?? 0 ); RockDropDownList ddlGroupMemberStatus = new RockDropDownList(); ddlGroupMemberStatus.CssClass = "js-group-member-status"; ddlGroupMemberStatus.ID = filterControl.ID + "_ddlGroupMemberStatus"; ddlGroupMemberStatus.Label = "with Group Member Status"; ddlGroupMemberStatus.Help = "Select a specific group member status to only include group members with that status. Leaving this blank will return all members."; ddlGroupMemberStatus.BindToEnum<GroupMemberStatus>( true ); ddlGroupMemberStatus.SetValue( GroupMemberStatus.Active.ConvertToInt() ); filterControl.Controls.Add( ddlGroupMemberStatus ); return new Control[3] { groupTypePicker, cblRole, ddlGroupMemberStatus }; }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls( Type entityType, FilterField filterControl ) { Panel pnlGroupAttributeFilterControls = new Panel(); pnlGroupAttributeFilterControls.ViewStateMode = ViewStateMode.Disabled; pnlGroupAttributeFilterControls.ID = filterControl.ID + "_pnlGroupAttributeFilterControls"; filterControl.Controls.Add( pnlGroupAttributeFilterControls ); GroupTypePicker groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = filterControl.ID + "_groupTypePicker"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; pnlGroupAttributeFilterControls.Controls.Add( groupTypePicker ); // set the GroupTypePicker selected value now so we can create the other controls the depending on know the groupTypeid int? groupTypeId = filterControl.Page.Request.Params[groupTypePicker.UniqueID].AsIntegerOrNull(); groupTypePicker.SelectedGroupTypeId = groupTypeId; groupTypePicker_SelectedIndexChanged( groupTypePicker, new EventArgs() ); return new Control[] { pnlGroupAttributeFilterControls }; }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls( Type entityType, FilterField filterControl ) { groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = filterControl.ID + "_0"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService().Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; filterControl.Controls.Add( groupTypePicker ); cblRole = new RockCheckBoxList(); cblRole.Label = "with Group Role(s)"; cblRole.ID = filterControl.ID + "_1"; filterControl.Controls.Add( cblRole ); return new Control[2] { groupTypePicker, cblRole }; }
/// <summary> /// Creates the child controls. /// Implement this version of CreateChildControls if your DataFilterComponent supports different FilterModes /// </summary> /// <param name="entityType"></param> /// <param name="filterControl"></param> /// <param name="filterMode"></param> /// <returns></returns> public override Control[] CreateChildControls( Type entityType, FilterField filterControl, FilterMode filterMode ) { var containerControl = new DynamicControlsPanel(); containerControl.ID = string.Format( "{0}_containerControl", filterControl.ID ); containerControl.CssClass = "js-container-control"; filterControl.Controls.Add( containerControl ); GroupTypePicker groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = filterControl.ID + "_groupTypePicker"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; groupTypePicker.Visible = filterMode == FilterMode.AdvancedFilter; containerControl.Controls.Add( groupTypePicker ); // set the GroupTypePicker selected value now so we can create the other controls the depending on know the groupTypeid int? groupTypeId = filterControl.Page.Request.Params[groupTypePicker.UniqueID].AsIntegerOrNull(); groupTypePicker.SelectedGroupTypeId = groupTypeId; groupTypePicker_SelectedIndexChanged( groupTypePicker, new EventArgs() ); return new Control[] { containerControl }; }
/// <summary> /// Creates the child controls. /// </summary> /// <param name="parentControl"></param> /// <returns></returns> public override System.Web.UI.Control[] CreateChildControls( System.Web.UI.Control parentControl ) { RockRadioButtonList rblShowAsLinkType = new RockRadioButtonList(); rblShowAsLinkType.ID = parentControl.ID + "_rblShowAsLinkType"; rblShowAsLinkType.Items.Add( new ListItem( "Show Name Only", ShowAsLinkType.NameOnly.ConvertToInt().ToString() ) ); rblShowAsLinkType.Items.Add( new ListItem( "Show as Person Link", ShowAsLinkType.PersonLink.ConvertToInt().ToString() ) ); rblShowAsLinkType.Items.Add( new ListItem( "Show as Group Member Link", ShowAsLinkType.GroupMemberLink.ConvertToInt().ToString() ) ); parentControl.Controls.Add( rblShowAsLinkType ); int? selectedGroupTypeId = null; if ( groupTypePicker != null ) { selectedGroupTypeId = groupTypePicker.SelectedGroupTypeId; } groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = parentControl.ID + "_groupTypePicker"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; groupTypePicker.SelectedGroupTypeId = selectedGroupTypeId; parentControl.Controls.Add( groupTypePicker ); cblRole = new RockCheckBoxList(); cblRole.Label = "with Group Role(s)"; cblRole.ID = parentControl.ID + "_cblRole"; parentControl.Controls.Add( cblRole ); PopulateGroupRolesCheckList( groupTypePicker.SelectedGroupTypeId ?? 0 ); RockDropDownList ddlGroupMemberStatus = new RockDropDownList(); ddlGroupMemberStatus.CssClass = "js-group-member-status"; ddlGroupMemberStatus.ID = parentControl.ID + "_ddlGroupMemberStatus"; ddlGroupMemberStatus.Label = "with Group Member Status"; ddlGroupMemberStatus.Help = "Select a specific group member status to only include group members with that status. Leaving this blank will return all members."; ddlGroupMemberStatus.BindToEnum<GroupMemberStatus>( true ); ddlGroupMemberStatus.SetValue( GroupMemberStatus.Active.ConvertToInt() ); parentControl.Controls.Add( ddlGroupMemberStatus ); return new System.Web.UI.Control[] { rblShowAsLinkType, groupTypePicker, cblRole, ddlGroupMemberStatus }; }
/// <summary> /// Creates the child controls. /// </summary> /// <param name="parentControl"></param> /// <returns></returns> public override System.Web.UI.Control[] CreateChildControls( System.Web.UI.Control parentControl ) { var groupTypePicker = new GroupTypePicker(); groupTypePicker.ID = parentControl.ID + "_groupTypePicker"; groupTypePicker.Label = "Group Type"; groupTypePicker.GroupTypes = new GroupTypeService( new RockContext() ).Queryable().OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); groupTypePicker.SelectedIndexChanged += groupTypePicker_SelectedIndexChanged; groupTypePicker.AutoPostBack = true; parentControl.Controls.Add( groupTypePicker ); int? selectedGroupTypeId = parentControl.Page.Request.Params[groupTypePicker.UniqueID].AsIntegerOrNull(); groupTypePicker.SelectedGroupTypeId = selectedGroupTypeId; var cblRole = new RockCheckBoxList(); cblRole.Label = "with Group Role(s)"; cblRole.ID = parentControl.ID + "_cblRole"; parentControl.Controls.Add( cblRole ); PopulateGroupRolesCheckList( groupTypePicker.SelectedGroupTypeId ?? 0, cblRole ); RockDropDownList ddlGroupMemberStatus = new RockDropDownList(); ddlGroupMemberStatus.CssClass = "js-group-member-status"; ddlGroupMemberStatus.ID = parentControl.ID + "_ddlGroupMemberStatus"; ddlGroupMemberStatus.Label = "with Group Member Status"; ddlGroupMemberStatus.Help = "Select a specific group member status only include to only show true for group members with that status. Leaving this blank will return true for all members."; ddlGroupMemberStatus.BindToEnum<GroupMemberStatus>( true ); ddlGroupMemberStatus.SetValue( GroupMemberStatus.Active.ConvertToInt() ); parentControl.Controls.Add( ddlGroupMemberStatus ); return new Control[3] { groupTypePicker, cblRole, ddlGroupMemberStatus }; }