Beispiel #1
0
        /// <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(this.CurrentPage.Guid, qryParams);
                }
            }
        }
Beispiel #2
0
        /// <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
                    {
                        // intentionally ignore if delete fails
                    }

                    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();
                    }

                    qryParams["DataViewId"]       = null;
                    qryParams["ParentCategoryId"] = null;
                    NavigateToCurrentPageReference(qryParams);
                }
            }
        }
Beispiel #3
0
        /// <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);
                }
            }
        }
Beispiel #4
0
        /// <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);
                }
            }
        }
Beispiel #5
0
        /// <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);
                }
            }
        }