protected void Page_Load(object sender, EventArgs e) { Literal1.Text = GetLocalResourceObject("Page.Title").ToString(); if (!IsPostBack) { ProjectId = Request.Get("pid", Globals.NEW_ID); MilestoneId = Request.Get("m", Globals.NEW_ID); // If don't know project or issue then redirect to something missing page if (ProjectId == 0 || MilestoneId == 0) { ErrorRedirector.TransferToSomethingMissingPage(Page); return; } var p = ProjectManager.GetById(ProjectId); if (p == null || p.Disabled) { ErrorRedirector.TransferToSomethingMissingPage(Page); return; } litMilestone.Text = MilestoneManager.GetById(MilestoneId).Name; litProject.Text = ProjectManager.GetById(ProjectId).Name; } rptReleaseNotes.DataSource = IssueTypeManager.GetByProjectId(ProjectId); rptReleaseNotes.DataBind(); Output.Text = string.Format("<h1>{2} - {0} - {1}</h1>", litProject.Text, litMilestone.Text, GetLocalResourceObject("Page.Title")); Output.Text += RenderControl(rptReleaseNotes); }
/// <summary> /// Handles the ItemCommand event of the grdIssueTypes control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> protected void grdIssueTypes_ItemCommand(object sender, DataGridCommandEventArgs e) { IssueType s; var itemIndex = e.Item.ItemIndex; switch (e.CommandName) { case "up": //move row up if (itemIndex == 0) { return; } s = IssueTypeManager.GetById(Convert.ToInt32(grdIssueTypes.DataKeys[e.Item.ItemIndex])); s.SortOrder -= 1; IssueTypeManager.SaveOrUpdate(s); break; case "down": //move row down if (itemIndex == grdIssueTypes.Items.Count - 1) { return; } s = IssueTypeManager.GetById(Convert.ToInt32(grdIssueTypes.DataKeys[e.Item.ItemIndex])); s.SortOrder += 1; IssueTypeManager.SaveOrUpdate(s); break; } BindIssueType(); }
/// <summary> /// Handles the ItemDataBound event of the grdMailboxes control. /// </summary> /// <param name="s">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridItemEventArgs"/> instance containing the event data.</param> protected void dtgMailboxes_ItemDataBound(Object s, DataGridItemEventArgs e) { ProjectMailbox currentMailbox; if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { currentMailbox = (ProjectMailbox)e.Item.DataItem; var emailAddressLabel = (Label)e.Item.FindControl("EmailAddressLabel"); emailAddressLabel.Text = currentMailbox.Mailbox; var assignToLabel = (Label)e.Item.FindControl("AssignToLabel"); assignToLabel.Text = currentMailbox.AssignToDisplayName; var issueTypeName = (Label)e.Item.FindControl("IssueTypeName"); issueTypeName.Text = currentMailbox.IssueTypeName; var issueCategoryName = (Label)e.Item.FindControl("IssueCategoryName"); issueCategoryName.Text = currentMailbox.CategoryName; var cmdDelete = (ImageButton)e.Item.FindControl("cmdDelete"); var message = string.Format(GetLocalResourceObject("ConfirmDelete").ToString(), currentMailbox.Mailbox.Trim()); cmdDelete.Attributes.Add("onclick", String.Format("return confirm('{0}');", message.JsEncode())); } if (e.Item.ItemType != ListItemType.EditItem) { return; } currentMailbox = (ProjectMailbox)e.Item.DataItem; var emailAddress = (TextBox)e.Item.FindControl("txtEmailAddress"); emailAddress.Text = currentMailbox.Mailbox; var pickUser = (PickSingleUser)e.Item.FindControl("IssueAssignedUser"); pickUser.DataSource = UserManager.GetUsersByProjectId(currentMailbox.ProjectId); pickUser.DataBind(); pickUser.SelectedValue = currentMailbox.AssignToUserName; var pickType = (PickType)e.Item.FindControl("IssueType"); pickType.DataSource = IssueTypeManager.GetByProjectId(currentMailbox.ProjectId); pickType.DataBind(); pickType.SelectedValue = currentMailbox.IssueTypeId; var pickCategory = (PickCategory)e.Item.FindControl("IssueCategory"); pickCategory.DataSource = CategoryManager.GetByProjectId(currentMailbox.ProjectId); pickCategory.DataBind(); pickCategory.SelectedValue = currentMailbox.CategoryId; }
/// <summary> /// Inits this instance. /// </summary> public void Initialize() { BindMailboxes(); IssueAssignedUser.DataSource = UserManager.GetUsersByProjectId(ProjectId); IssueAssignedUser.DataTextField = "DisplayName"; IssueAssignedUser.DataValueField = "UserName"; IssueAssignedUser.DataBind(); IssueAssignedType.DataSource = IssueTypeManager.GetByProjectId(ProjectId); IssueAssignedType.DataBind(); }
/// <summary> /// Binds the status. /// </summary> void BindIssueType() { grdIssueTypes.Columns[1].HeaderText = GetGlobalResourceObject("SharedResources", "IssueType").ToString(); grdIssueTypes.Columns[2].HeaderText = GetGlobalResourceObject("SharedResources", "Image").ToString(); grdIssueTypes.Columns[3].HeaderText = GetGlobalResourceObject("SharedResources", "Order").ToString(); grdIssueTypes.DataSource = IssueTypeManager.GetByProjectId(ProjectId); grdIssueTypes.DataKeyField = "Id"; grdIssueTypes.DataBind(); grdIssueTypes.Visible = grdIssueTypes.Items.Count != 0; }
/// <summary> /// Deletes the status. /// </summary> /// <param name="s">The s.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> protected void grdIssueTypes_Delete(Object s, DataGridCommandEventArgs e) { var id = (int)grdIssueTypes.DataKeys[e.Item.ItemIndex]; string cannotDeleteMessage; if (!IssueTypeManager.Delete(id, out cannotDeleteMessage)) { ActionMessage.ShowErrorMessage(cannotDeleteMessage); return; } BindIssueType(); }
/// <summary> /// Binds the options. /// </summary> private void BindOptions() { List <ITUser> users = UserManager.GetUsersByProjectId(ProjectId, true); //Get Type DropIssueType.DataSource = IssueTypeManager.GetByProjectId(ProjectId); DropIssueType.DataBind(); //Get Priority DropPriority.DataSource = PriorityManager.GetByProjectId(ProjectId); DropPriority.DataBind(); //Get Resolutions DropResolution.DataSource = ResolutionManager.GetByProjectId(ProjectId); DropResolution.DataBind(); //Get categories var categories = new CategoryTree(); DropCategory.DataSource = categories.GetCategoryTreeByProjectId(ProjectId); DropCategory.DataBind(); //Get milestones DropMilestone.DataSource = MilestoneManager.GetByProjectId(ProjectId); DropMilestone.DataBind(); DropAffectedMilestone.DataSource = MilestoneManager.GetByProjectId(ProjectId); DropAffectedMilestone.DataBind(); //Get Users DropAssignedTo.DataSource = users; DropAssignedTo.DataBind(); DropOwned.DataSource = users; DropOwned.DataBind(); DropStatus.DataSource = StatusManager.GetByProjectId(ProjectId); DropStatus.DataBind(); lblDateCreated.Text = DateTime.Now.ToString("f"); lblLastModified.Text = DateTime.Now.ToString("f"); if (!User.Identity.IsAuthenticated) { return; } lblReporter.Text = Security.GetDisplayName(); lblLastUpdateUser.Text = Security.GetDisplayName(); }
public String[] GetIssueTypes(int ProjectId) { if (ProjectManager.GetById(ProjectId).AccessType == Common.ProjectAccessType.Private && !ProjectManager.IsUserProjectMember(UserName, ProjectId)) { throw new UnauthorizedAccessException(string.Format(LoggingManager.GetErrorMessageResource("ProjectAccessDenied"), UserName)); } List <IssueType> issuetypes = IssueTypeManager.GetByProjectId(ProjectId); List <String> returnval = new List <String>(); foreach (IssueType item in issuetypes) { returnval.Add(item.Name.ToString()); } return(returnval.ToArray()); }
/// <summary> /// Handles the Update event of the grdIssueTypes control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> protected void grdIssueTypes_Update(object sender, DataGridCommandEventArgs e) { var txtIssueTypeName = (TextBox)e.Item.FindControl("txtIssueTypeName"); var pickimg = (PickImage)e.Item.FindControl("lstEditImages"); if (txtIssueTypeName.Text.Trim() == "") { throw new ArgumentNullException("Issue Type name empty"); } var s = IssueTypeManager.GetById(Convert.ToInt32(grdIssueTypes.DataKeys[e.Item.ItemIndex])); s.Name = txtIssueTypeName.Text.Trim(); s.ImageUrl = pickimg.SelectedValue; IssueTypeManager.SaveOrUpdate(s); grdIssueTypes.EditItemIndex = -1; BindIssueType(); }
/// <summary> /// Binds the options. /// </summary> private void BindOptions() { List <ITUser> users = UserManager.GetUsersByProjectId(ProjectId, true); //Get Type DropIssueType.DataSource = IssueTypeManager.GetByProjectId(ProjectId); DropIssueType.DataBind(); //Get Priority DropPriority.DataSource = PriorityManager.GetByProjectId(ProjectId); DropPriority.DataBind(); //Get Resolutions DropResolution.DataSource = ResolutionManager.GetByProjectId(ProjectId); DropResolution.DataBind(); //Get categories var categories = new CategoryTree(); DropCategory.DataSource = categories.GetCategoryTreeByProjectId(ProjectId); DropCategory.DataBind(); //Get milestones DropMilestone.DataSource = MilestoneManager.GetByProjectId(ProjectId, false); DropMilestone.DataBind(); DropAffectedMilestone.DataSource = MilestoneManager.GetByProjectId(ProjectId); DropAffectedMilestone.DataBind(); //Get Users DropAssignedTo.DataSource = users; DropAssignedTo.DataBind(); DropOwned.DataSource = users; DropOwned.DataBind(); DropOwned.SelectedValue = User.Identity.Name; DropStatus.DataSource = StatusManager.GetByProjectId(ProjectId); DropStatus.DataBind(); }
/// <summary> /// Adds the status. /// </summary> /// <param name="s">The s.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void AddIssueType(Object s, EventArgs e) { var newName = txtName.Text.Trim(); if (newName == String.Empty) { return; } var newIssueType = new IssueType { ProjectId = ProjectId, Name = newName, ImageUrl = lstImages.SelectedValue }; if (IssueTypeManager.SaveOrUpdate(newIssueType)) { txtName.Text = ""; BindIssueType(); lstImages.SelectedValue = String.Empty; } else { ActionMessage.ShowErrorMessage(LoggingManager.GetErrorMessageResource("SaveIssueTypeError")); } }
/// <summary> /// When the user changes the selected field type, show the corresponding list /// of possible values. /// </summary> /// <param name="s">The s.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void dropFieldSelectedIndexChanged(Object s, EventArgs e) { dropValue.Items.Clear(); dropValue.Visible = false; txtValue.Visible = false; DateValue.Visible = false; switch (dropField.SelectedValue) { case "IssueId": case "IssueTitle": case "IssueDescription": case "IssueVotes": case "IssueProgress": case "IssueEstimation": case "TimeLogged": txtValue.Visible = true; break; case "IssuePriorityId": dropValue.Visible = true; dropValue.DataSource = PriorityManager.GetByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueTypeId": dropValue.Visible = true; dropValue.DataSource = IssueTypeManager.GetByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueMilestoneId": dropValue.Visible = true; dropValue.DataSource = MilestoneManager.GetByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueAffectedMilestoneId": dropValue.Visible = true; dropValue.DataSource = MilestoneManager.GetByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueResolutionId": dropValue.Visible = true; dropValue.DataSource = ResolutionManager.GetByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueCategoryId": dropValue.Visible = true; var objCats = new CategoryTree(); dropValue.DataSource = objCats.GetCategoryTreeByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueStatusId": dropValue.Visible = true; dropValue.DataSource = StatusManager.GetByProjectId(ProjectId); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Id"; break; case "IssueAssignedUserId": dropValue.Visible = true; dropValue.DataSource = UserManager.GetUsersByProjectId(ProjectId); dropValue.DataTextField = "DisplayName"; dropValue.DataValueField = "Id"; break; case "IssueOwnerUserId": dropValue.Visible = true; txtValue.Visible = false; dropValue.DataSource = UserManager.GetUsersByProjectId(ProjectId); dropValue.DataTextField = "DisplayName"; dropValue.DataValueField = "Id"; break; case "IssueCreatorUserId": dropValue.Visible = true; dropValue.DataSource = UserManager.GetUsersByProjectId(ProjectId); dropValue.DataTextField = "DisplayName"; dropValue.DataValueField = "Id"; break; case "DateCreatedAsDate": case "LastUpdateAsDate": case "IssueDueDate": DateValue.Visible = true; break; case "CustomFieldName": dropValue.Visible = false; txtValue.Visible = true; //show the text value field. Not needed. CustomFieldSelected = true; if (CustomFieldManager.GetByProjectId(ProjectId).Count > 0) { dropField.DataSource = CustomFieldManager.GetByProjectId(ProjectId); dropField.DataTextField = "Name"; dropField.DataValueField = "Name"; dropField.DataBind(); // bind to the new data source. dropField.Items.Add(GetGlobalResourceObject("SharedResources", "DropDown_ResetFields").ToString()); dropField.Items.Insert(0, new ListItem(GetGlobalResourceObject("SharedResources", "DropDown_SelectCustomField").ToString(), "0")); } break; default: if (dropField.SelectedItem.Text.Equals(GetGlobalResourceObject("SharedResources", "DropDown_SelectCustomField").ToString())) { return; } // The user decides to reset the fields if (dropField.SelectedItem.Text.Equals(GetGlobalResourceObject("SharedResources", "DropDown_ResetFields").ToString())) { dropField.DataSource = null; dropField.DataSource = RequiredFieldManager.GetRequiredFields(); dropField.DataTextField = "Name"; dropField.DataValueField = "Value"; dropField.DataBind(); } //RW Once the list is populated with any varying type of name, //we just default to this case, because we know it is not a standard field. else { //check the type of this custom field and load the appropriate values. var cf = CustomFieldManager.GetByProjectId(ProjectId).Find(c => c.Name == dropField.SelectedValue); if (cf == null) { return; } CustomFieldSelected = true; CustomFieldId = cf.Id; CustomFieldDataType = cf.DataType; switch (cf.FieldType) { case CustomFieldType.DropDownList: dropValue.Visible = true; dropValue.DataSource = CustomFieldSelectionManager.GetByCustomFieldId(cf.Id); dropValue.DataTextField = "Name"; dropValue.DataValueField = "Value"; break; case CustomFieldType.Date: DateValue.Visible = true; break; case CustomFieldType.YesNo: dropValue.Visible = true; dropValue.Items.Add(new ListItem(GetGlobalResourceObject("SharedResources", "DropDown_SelectOne").ToString())); dropValue.Items.Add(new ListItem(GetGlobalResourceObject("SharedResources", "Yes").ToString(), Boolean.TrueString)); dropValue.Items.Add(new ListItem(GetGlobalResourceObject("SharedResources", "No").ToString(), Boolean.FalseString)); break; default: txtValue.Visible = true; break; } } break; } try { dropValue.DataBind(); } catch { } }
/// <summary> /// Binds a data source to the invoked server control and all its child controls. /// </summary> public new void DataBind() { //Private issue check DataSource = IssueManager.StripPrivateIssuesForRequestor(DataSource, Security.GetUserName()).ToList(); if (DataSource.Count > 0) { gvIssues.Visible = true; pager.Visible = true; ScrollPanel.Visible = true; OptionsContainerPanel.Visible = true; var pId = Request.QueryString.Get("pid", -1); //get custom fields for project if (pId > Globals.NEW_ID) { var customFields = CustomFieldManager.GetByProjectId(pId); var nrColumns = FIXED_COLUMNS; //checks if its initial load to add custom controls and checkboxes if (gvIssues.Columns.Count <= nrColumns + 1) { var firstIssue = DataSource[0]; //if there is custom fields add them if (firstIssue.IssueCustomFields.Count > 0) { foreach (var value in firstIssue.IssueCustomFields) { //increments nr of columns nrColumns++; //create checkbox item var lstValue = new ListItem(value.FieldName, nrColumns.ToString()); //find custom controls that has been checked and check them var selected = Array.IndexOf(_arrIssueColumns, nrColumns.ToString()) >= 0; if (selected) { lstValue.Selected = true; } //add item to checkbox list lstIssueColumns.Items.Add(lstValue); //create column for custom control var tf = new TemplateField { HeaderText = value.FieldName, SortExpression = value.DatabaseFieldName.Replace(" ", "[]") }; tf.HeaderStyle.Wrap = false; gvIssues.Columns.Add(tf); } } } } DisplayColumns(); SelectColumnsPanel.Visible = true; lblResults.Visible = false; if (ShowProjectColumn) { gvIssues.Columns[0].Visible = false; LeftButtonContainerPanel.Visible = false; } else { gvIssues.Columns[4].Visible = false; lstIssueColumns.Items.Remove(lstIssueColumns.Items.FindByValue("4")); var projectId = _dataSource[0].ProjectId; //hide votes column if issue voting is disabled if (!ProjectManager.GetById(projectId).AllowIssueVoting) { gvIssues.Columns[4].Visible = false; lstIssueColumns.Items.Remove(lstIssueColumns.Items.FindByValue("4")); } if (Page.User.Identity.IsAuthenticated && UserManager.HasPermission(projectId, Common.Permission.EditIssue.ToString())) { LeftButtonContainerPanel.Visible = true; // performance enhancement // WRH 2012-04-06 // only load these if the user has permission to do so var categories = new CategoryTree(); dropCategory.DataSource = categories.GetCategoryTreeByProjectId(projectId); dropCategory.DataBind(); dropMilestone.DataSource = MilestoneManager.GetByProjectId(projectId); dropMilestone.DataBind(); dropAffectedMilestone.DataSource = dropMilestone.DataSource; dropAffectedMilestone.DataBind(); dropOwner.DataSource = UserManager.GetUsersByProjectId(projectId); dropOwner.DataBind(); dropPriority.DataSource = PriorityManager.GetByProjectId(projectId); dropPriority.DataBind(); dropStatus.DataSource = StatusManager.GetByProjectId(projectId); dropStatus.DataBind(); dropType.DataSource = IssueTypeManager.GetByProjectId(projectId); dropType.DataBind(); dropAssigned.DataSource = UserManager.GetUsersByProjectId(projectId); dropAssigned.DataBind(); dropResolution.DataSource = ResolutionManager.GetByProjectId(projectId); dropResolution.DataBind(); chkDueDateReset.Checked = false; } else { //hide selection column for unauthenticated users gvIssues.Columns[0].Visible = false; LeftButtonContainerPanel.Visible = false; } } foreach (var item in _arrIssueColumns.Select(colIndex => lstIssueColumns.Items.FindByValue(colIndex)).Where(item => item != null)) { item.Selected = true; } gvIssues.DataSource = DataSource; gvIssues.DataBind(); } else { ScrollPanel.Visible = false; OptionsContainerPanel.Visible = false; lblResults.Visible = true; gvIssues.Visible = false; pager.Visible = false; } }
/// <summary> /// Returns a valid project IssueType. /// </summary> /// <param name="p">A Project</param> /// <returns>Random IssueType</returns> public IssueType GetIssueType() { List <IssueType> IssueTypes = IssueTypeManager.GetByProjectId(p.Id); return(IssueTypes[rng.Next(0, IssueTypes.Count)]); }
public IssueTypeServices() { _issueTypeManager = new IssueTypeManager(); }