Esempio n. 1
0
    private void BindButtons()
    {
        if (Request.QueryString.Get("mode") == "approve")
        {
            if (Item.ApprovalStatus.Id == ItemApprovalStatusManager.GetForEditApprovalStatus().Id)
            {
                //set approval for edit mode
                divApprovalBar.Visible  = true;
                divActionButton.Visible = false;
            }
            else
            {
                bool userCanApprove = ApproverManager.IsApprover(Page.User.Identity.Name, (VersionId ?? Item.Id));

                divApprovalBar.Visible  = userCanApprove;
                divActionButton.Visible = !userCanApprove;
            }
        }
        else
        {
            divApprovalBar.Visible = false;
            //hide edit buttons when viewing announcement
            if (!string.IsNullOrEmpty(Request.QueryString["mode"]) && Request.QueryString["mode"].Equals("view"))
            {
                h2LblAction.Visible   = false;
                approveFooter.Visible = false;
            }
            else
            {
                SetButtons();
            }
        }
    }
Esempio n. 2
0
    private string SaveVersionItem(string groupId, string versionNumber, SaveType saveType)
    {
        // todo : there is a hack there with the 2 seconds added to the current date time. Fix this.
        // The reason is that if two versions are created within one second of each other, then the
        // 'current' version will be the first one that was created. Usually the second one is the
        // latest/current one. This is a defect whereby we determine that the latest timestamped
        // version is the current one. There should be a flag on a version saying that it is the latest.
        VersionManager.CreateVersionItem(new VersionItem()
        {
            ItemId        = Item.Id,
            GroupId       = groupId,
            VersionNumber = versionNumber,
            DateCreated   = (saveType == SaveType.Publish) ? DateTime.Now.AddSeconds(2.0) : DateTime.Now,
            Comments      = ctrlEditComments.GetComments(),
            ModifiedBy    = Utilities.GetUserName(Page.User.Identity.Name),
            EditSeverity  = (trEditDetails.Visible == true) ? rblEditDetails.SelectedValue : rblEditDetails.Items[1].Value
        });

        string approverItemId = VersionManager.GetVersionByItemId(Item.Id).Id;

        //start the approval process by adding approvers.
        ApproverManager.AddApprover(new BusiBlocks.ApproverLayer.Approver()
        {
            UserId = ddlApprovers.SelectedValue, CategoryId = currentSelectedNode, ItemId = approverItemId
        });
        return(VersionManager.GetVersionByGroupId(groupId).Id);
    }
Esempio n. 3
0
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        NewsManager.DeleteItem(Item);

        ((IFeedback)Page.Master).QueueFeedback(
            BusiBlocksConstants.Blocks.Communication.LongName,
            Item.GetType().Name,
            Feedback.Actions.Deleted,
            Item.Title
            );
        //remove approval rights.
        ApproverManager.RemoveApproversbyItem(Item.Id);

        Navigation.Communication_News().Redirect(this);
    }
Esempio n. 4
0
    private void BindPageEditItem()
    {
        divSaveFunctions.Visible = true;
        btnDelete.Visible        = true;

        VersionItem version = VersionManager.GetVersionById(VersionId);
        Item        item    = (version == null) ? NewsManager.GetItem(ItemId) : NewsManager.GetItem(version.ItemId);

        txtDescription.Content = item.Description;
        txtTitle.Text          = item.Title;
        lblTitle.Text          = item.Title;
        ddlOwner.SelectedIndex = ddlOwner.Items.IndexOf(ddlOwner.Items.FindByText(item.Owner));

        //rdpExpiry.SelectedDate = item.Expiry;
        lnkVersionNumber.Text        = "Version " + ((version == null) ? VersionManager.GetVersionNumber(VersionType.New, string.Empty) : VersionManager.GetVersionNumber(VersionType.Draft, version.ItemId));
        lnkVersionNumber.NavigateUrl = (version == null) ? null : Navigation.Communication_NewsVersionHistory(version.GroupId).GetServerUrl(true);

        // Set the acknowledge radios.
        if (item.RequiresAck)
        {
            rblAcknowledge.Items.FindByValue("required").Selected = true;
            ackReqd.CssClass = "";
            rblAcknowledge.Items.FindByValue("notRequired").Selected = false;
            ackNotReqd.CssClass = "hideElement";
        }
        else
        {
            rblAcknowledge.Items.FindByValue("required").Selected = false;
            ackReqd.CssClass = "hideElement";
            rblAcknowledge.Items.FindByValue("notRequired").Selected = true;
            ackNotReqd.CssClass = "";
        }
        // Set the approval radios.
        if (item.RequiresApproval)
        {
            rblApproval.Items.FindByValue("required").Selected    = true;
            rblApproval.Items.FindByValue("notRequired").Selected = false;
        }
        else
        {
            rblApproval.Items.FindByValue("required").Selected    = false;
            rblApproval.Items.FindByValue("notRequired").Selected = true;
        }

        //pre selecting the major/minor
        if (version == null)
        {
            //rblEditDetails.Items.FindByText("minor").Selected = true;
            trEditDetails.Visible = false;
        }
        else
        {
            //check if there's any published version - true =use the previous severity value else set it to major as first published will always be null.
            Item tempItem = NewsManager.GetPublishedItem(version.GroupId);
            if (tempItem.Id != null)
            {
                if (!string.IsNullOrEmpty(version.EditSeverity))
                {
                    rblEditDetails.Items.FindByValue(version.EditSeverity).Selected = true;
                }
                else
                {
                    rblEditDetails.Items.FindByValue("minor").Selected = true;
                }
            }
            else
            {
                trEditDetails.Visible = false;
            }
        }
        //Load permissions
        pmm.LoadPermissionsView(item.Category.Id, item.Category.Name);

        //if user is approver then show the minor/major option.
        lblPageHeading.Text = TitleEdit;

        //select the approver item only if theres a version existing.
        if (version != null)
        {
            IList <Approver> approvers = ApproverManager.GetApproversByItem(version.Id);
            //count more than one means its a category approval
            if (approvers.Count != 0 && ddlApprovers.Enabled != false)
            {
                if (!string.IsNullOrEmpty(approvers[0].UserId))
                {
                    string ddlValue = MembershipManager.GetUser(approvers[0].UserId).Name;
                    ddlApprovers.Items.FindByText(ddlValue).Selected = true;
                }
                else if (ddlApprovers.Items.Count > 0)
                {
                    ddlApprovers.Items[0].Selected = true;
                }
            }

            bool isAckReq = NewsManager.GetItem(version.ItemId).RequiresAck;
            if (isAckReq)
            {
                BindAcknowledgeCount(version.ItemId, version.GroupId, version.VersionNumber);
                BindViewerCount(null, null);
            }
            else
            {
                BindViewerCount(version.GroupId, version.VersionNumber);
                BindAcknowledgeCount(null, null, null);
            }
        }
    }