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