/// <summary> /// Shows the detail. /// </summary> /// <param name="itemKey">The item key.</param> /// <param name="itemKeyValue">The item key value.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( string itemKey, int itemKeyValue, int? parentCategoryId ) { pnlDetails.Visible = false; if ( !itemKey.Equals( "DataViewId" ) ) { return; } var dataViewService = new DataViewService(); DataView dataView = null; if ( !itemKeyValue.Equals( 0 ) ) { dataView = dataViewService.Get( itemKeyValue ); } else { dataView = new DataView { Id = 0, IsSystem = false, CategoryId = parentCategoryId }; } if ( dataView == null || !dataView.IsAuthorized( "View", CurrentPerson ) ) { return; } pnlDetails.Visible = true; hfDataViewId.Value = dataView.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; if ( !dataView.IsAuthorized( "Edit", CurrentPerson ) ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( DataView.FriendlyTypeName ); } if ( dataView.DataViewFilter != null && !dataView.DataViewFilter.IsAuthorized( "View", CurrentPerson ) ) { readOnly = true; nbEditModeMessage.Text = "INFO: This Data View contains a filter that you do not have access to view."; } if ( dataView.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( DataView.FriendlyTypeName ); } btnSecurity.Visible = dataView.IsAuthorized( "Administrate", CurrentPerson ); btnSecurity.Title = dataView.Name; btnSecurity.EntityId = dataView.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( dataView ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = dataViewService.CanDelete( dataView, out errorMessage ); if ( dataView.Id > 0 ) { ShowReadonlyDetails( dataView ); } else { ShowEditDetails( dataView ); } } }
/// <summary> /// Handles the Click event of the btnDelete control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnDelete_Click( object sender, EventArgs e ) { int? categoryId = null; var dataViewService = new DataViewService(); var dataView = dataViewService.Get( int.Parse( hfDataViewId.Value ) ); if ( dataView != null ) { string errorMessage; if ( !dataViewService.CanDelete( dataView, out errorMessage ) ) { ShowReadonlyDetails( dataView ); mdDeleteWarning.Show( errorMessage, ModalAlertType.Information ); } else { categoryId = dataView.CategoryId; dataViewService.Delete( dataView, CurrentPersonId ); dataViewService.Save( dataView, CurrentPersonId ); // reload page, selecting the deleted data view's parent var qryParams = new Dictionary<string, string>(); if ( categoryId != null ) { qryParams["CategoryId"] = categoryId.ToString(); } NavigateToPage( RockPage.Guid, qryParams ); } } }
/// <summary> /// Handles the Click event of the btnDelete control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnDelete_Click( object sender, EventArgs e ) { int? categoryId = null; var rockContext = new RockContext(); var dataViewService = new DataViewService( rockContext ); var dataView = dataViewService.Get( int.Parse( hfDataViewId.Value ) ); if ( dataView != null ) { string errorMessage; if ( !dataViewService.CanDelete( dataView, out errorMessage ) ) { ShowReadonlyDetails( dataView ); mdDeleteWarning.Show( errorMessage, ModalAlertType.Information ); } else { categoryId = dataView.CategoryId; // delete report filter try { DataViewFilterService dataViewFilterService = new DataViewFilterService( rockContext ); DeleteDataViewFilter( dataView.DataViewFilter, dataViewFilterService ); } catch { // } dataViewService.Delete( dataView ); rockContext.SaveChanges(); // reload page, selecting the deleted data view's parent var qryParams = new Dictionary<string, string>(); if ( categoryId != null ) { qryParams["CategoryId"] = categoryId.ToString(); } NavigateToPage( RockPage.Guid, qryParams ); } } }
/// <summary> /// Shows the detail. /// </summary> /// <param name="itemKey">The item key.</param> /// <param name="itemKeyValue">The item key value.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( string itemKey, int itemKeyValue, int? parentCategoryId ) { pnlDetails.Visible = false; if ( !itemKey.Equals( "DataViewId" ) ) { return; } var dataViewService = new DataViewService(new RockContext()); DataView dataView = null; if ( !itemKeyValue.Equals( 0 ) ) { dataView = dataViewService.Get( itemKeyValue ); } else { dataView = new DataView { Id = 0, IsSystem = false, CategoryId = parentCategoryId }; } if ( dataView == null || !dataView.IsAuthorized( Authorization.VIEW, CurrentPerson ) ) { return; } pnlDetails.Visible = true; hfDataViewId.Value = dataView.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; string authorizationMessage = string.Empty; if ( !this.IsAuthorizedForAllDataViewComponents( Authorization.EDIT, dataView, out authorizationMessage ) ) { readOnly = true; nbEditModeMessage.Text = authorizationMessage; } if ( dataView.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( DataView.FriendlyTypeName ); } btnSecurity.Visible = dataView.IsAuthorized( Authorization.ADMINISTRATE, CurrentPerson ); btnSecurity.Title = dataView.Name; btnSecurity.EntityId = dataView.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( dataView ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Visible = dataViewService.CanDelete( dataView, out errorMessage ); if ( dataView.Id > 0 ) { ShowReadonlyDetails( dataView ); } else { ShowEditDetails( dataView ); } } }
/// <summary> /// Shows the detail. /// </summary> /// <param name="dataViewId">The data view identifier.</param> /// <param name="parentCategoryId">The parent category id.</param> public void ShowDetail( int dataViewId, int? parentCategoryId ) { pnlDetails.Visible = false; var rockContext = new RockContext(); var dataViewService = new DataViewService( rockContext ); DataView dataView = null; if ( !dataViewId.Equals( 0 ) ) { dataView = dataViewService.Get( dataViewId ); pdAuditDetails.SetEntity( dataView, ResolveRockUrl( "~" ) ); } if ( dataView == null ) { dataView = new DataView { Id = 0, IsSystem = false, CategoryId = parentCategoryId }; dataView.Name = string.Empty; // hide the panel drawer that show created and last modified dates pdAuditDetails.Visible = false; } if ( !dataView.IsAuthorized( Authorization.VIEW, CurrentPerson ) ) { return; } pnlDetails.Visible = true; hfDataViewId.Value = dataView.Id.ToString(); hlblEditDataViewId.Text = "Id: " + dataView.Id.ToString(); // render UI based on Authorized and IsSystem bool readOnly = false; nbEditModeMessage.Text = string.Empty; string authorizationMessage = string.Empty; if ( !dataView.IsAuthorizedForAllDataViewComponents( Authorization.EDIT, CurrentPerson, rockContext, out authorizationMessage ) ) { readOnly = true; nbEditModeMessage.Text = authorizationMessage; } if ( dataView.IsSystem ) { readOnly = true; nbEditModeMessage.Text = EditModeMessage.ReadOnlySystem( DataView.FriendlyTypeName ); } btnSecurity.Visible = dataView.IsAuthorized( Authorization.ADMINISTRATE, CurrentPerson ); btnSecurity.Title = dataView.Name; btnSecurity.EntityId = dataView.Id; if ( readOnly ) { btnEdit.Visible = false; btnDelete.Visible = false; ShowReadonlyDetails( dataView ); } else { btnEdit.Visible = true; string errorMessage = string.Empty; btnDelete.Enabled = dataViewService.CanDelete( dataView, out errorMessage ); if (!btnDelete.Enabled) { btnDelete.ToolTip = errorMessage; btnDelete.Attributes["onclick"] = null; } if ( dataView.Id > 0 ) { ShowReadonlyDetails( dataView ); } else { ShowEditDetails( dataView ); } } }