public static string SortableColumnHeader(this AjaxHelper helper, HtmlHelper htmlHelper, TicketCenterListSettings currentDisplayPreferences, string action, string listName, string sortColumn, string linkText, AjaxOptions ajaxOptions) { var imgContent = string.Empty; var linkContent = linkText; var indexContent = string.Empty; var sortColumns = currentDisplayPreferences.SortColumns; var cColumn = sortColumns.SingleOrDefault(sc => sc.ColumnName == sortColumn); if (cColumn != null) { var uh = new UrlHelper(helper.ViewContext.RequestContext); string imgSrc = uh.Content((cColumn.SortDirection == ColumnSortDirection.Ascending) ? "~/Content/arrow_top.png" : "~/Content/arrow_down.png"); imgContent = string.Format("<img src='{0}' alt='{1}' />", imgSrc, cColumn.SortDirection.ToString()); var idx = sortColumns.IndexOf(cColumn) + 1; indexContent = string.Format("<sup>[{0}]</sup>",idx.ToString()); } StringBuilder sb = new StringBuilder(); sb.AppendLine("<span style='white-space:nowrap;'>"); var lLine = helper.ActionLink(linkContent, "SortList", new { ListName = listName, ColumnName = sortColumn }, ajaxOptions, new { OnMouseDown = "setShiftStatus(event);", Title = "[shift+click] to add or remove columns from the sort" }).ToString(); sb.AppendLine(lLine + indexContent); sb.AppendLine(imgContent); sb.AppendLine("</span>"); return sb.ToString(); }
/// <summary> /// Gets the preferences for a specific ticket center list. /// </summary> /// <param name="listName">Name of the ticket center list.</param> /// <returns>The preferences for the specified list.</returns> public TicketCenterListSettings GetPreferencesForList(string listName) { TicketCenterListSettings setting = null; foreach (TicketCenterListSettings s in TicketCenterListPreferences) { if (s.ListName == listName) { setting = s; break; } } if (setting == null) { var m = this.TicketCenterListPreferences.Max(st => st.ListMenuDisplayOrder); setting = new TicketCenterListSettings(listName, listName, m + 1, false); _ticketCenterListPreferences.Add(setting);//adds this setting to the collection for future use } return setting; }
/// <summary> /// Gets the preferences for a specific ticket center list. /// </summary> /// <param name="listName">Name of the ticket center list.</param> /// <returns>The preferences for the specified list.</returns> public TicketCenterListSettings GetPreferencesForList(string listName) { TicketCenterListSettings setting = null; foreach (TicketCenterListSettings s in TicketCenterListPreferences) { if (s.ListName == listName) { setting = s; break; } } if (setting == null) { var m = this.TicketCenterListPreferences.Max(st => st.ListMenuDisplayOrder); setting = new TicketCenterListSettings(listName, listName, m + 1, false); _ticketCenterListPreferences.Add(setting);//adds this setting to the collection for future use } return(setting); }
public FilterBarViewModel(TicketCenterListSettings listPreferences, UserInfo[] staffUsers, UserInfo[] submitterUsers) { Preferences = listPreferences; StaffUsers = staffUsers; SubmitterUsers = submitterUsers; }
/// <summary> /// Creates the default ticket center list preferences. /// </summary> /// <returns></returns> private List<TicketCenterListSettings> CreateDefaultTicketCenterListPreferences() { List<TicketCenterListSettings> preferences = new List<TicketCenterListSettings>(); List<string> disableStatusColumn = new List<string>(); disableStatusColumn.Add("CurrentStatus"); List<string> disableAssignedColumn = new List<string>(); disableAssignedColumn.Add("AssignedTo"); List<string> disableOwnerColumn = new List<string>(); disableOwnerColumn.Add("Owner"); if (Security.IsTdStaff()) { //unassigned List<TicketListSortColumn> unassignedSortColumns = new List<TicketListSortColumn>(); List<TicketListFilterColumn> unassignedFilterColumns = new List<TicketListFilterColumn>(); unassignedSortColumns.Add(new TicketListSortColumn("LastUpdateDate", ColumnSortDirection.Descending)); unassignedFilterColumns.Add(new TicketListFilterColumn("CurrentStatus", false, "closed")); unassignedFilterColumns.Add(new TicketListFilterColumn("AssignedTo", null, null)); TicketCenterListSettings unassigned = new TicketCenterListSettings("unassigned", "Unassigned Tickets", 0, 20, unassignedSortColumns, unassignedFilterColumns, disableAssignedColumn); preferences.Add(unassigned); //assigned to me List<TicketListSortColumn> assignedtomeSortColumns = new List<TicketListSortColumn>(); List<TicketListFilterColumn> assignedtomeFilterColumns = new List<TicketListFilterColumn>(); assignedtomeSortColumns.Add(new TicketListSortColumn("CurrentStatus", ColumnSortDirection.Ascending)); assignedtomeSortColumns.Add(new TicketListSortColumn("LastUpdateDate", ColumnSortDirection.Descending)); assignedtomeFilterColumns.Add(new TicketListFilterColumn("CurrentStatus", false, "closed")); assignedtomeFilterColumns.Add(new TicketListFilterColumn("AssignedTo", true, Security.CurrentUserName)); TicketCenterListSettings assignedtome = new TicketCenterListSettings("assignedtome", "Tickets Assigned To Me", 1, 20, assignedtomeSortColumns, assignedtomeFilterColumns, disableAssignedColumn); preferences.Add(assignedtome); } int disOrder = (Security.IsTdStaff()) ? 2 : 0; //if staff display order starts at 2 for the remaining built-in lists, otherwise starts at 0 //my tickets List<TicketListSortColumn> myticketsSortColumns = new List<TicketListSortColumn>(); List<TicketListFilterColumn> myticketsFilterColumns = new List<TicketListFilterColumn>(); myticketsSortColumns.Add(new TicketListSortColumn("LastUpdateDate", ColumnSortDirection.Descending)); myticketsFilterColumns.Add(new TicketListFilterColumn("CurrentStatus", false, "closed")); myticketsFilterColumns.Add(new TicketListFilterColumn("Owner", true, Security.CurrentUserName)); TicketCenterListSettings mytickets = new TicketCenterListSettings("mytickets", "All My Tickets", disOrder, 20, myticketsSortColumns, myticketsFilterColumns, disableOwnerColumn); preferences.Add(mytickets); //open tickets List<TicketListSortColumn> openSortColumns = new List<TicketListSortColumn>(); List<TicketListFilterColumn> openFilterColumns = new List<TicketListFilterColumn>(); openSortColumns.Add(new TicketListSortColumn("CurrentStatus", ColumnSortDirection.Ascending)); openSortColumns.Add(new TicketListSortColumn("LastUpdateDate", ColumnSortDirection.Descending)); openFilterColumns.Add(new TicketListFilterColumn("CurrentStatus", false, "closed")); TicketCenterListSettings opentickets = new TicketCenterListSettings("opentickets", "All Open Tickets", disOrder + 1, 20, openSortColumns, openFilterColumns, disableStatusColumn); preferences.Add(opentickets); //history List<TicketListSortColumn> historyticketsSortColumns = new List<TicketListSortColumn>(); List<TicketListFilterColumn> historyticketsFilterColumns = new List<TicketListFilterColumn>(); historyticketsSortColumns.Add(new TicketListSortColumn("LastUpdateDate", ColumnSortDirection.Descending)); historyticketsFilterColumns.Add(new TicketListFilterColumn("CurrentStatus", true, "closed")); if (Security.IsTdStaff()) { historyticketsFilterColumns.Add(new TicketListFilterColumn("AssignedTo", true, Security.CurrentUserName)); } else { historyticketsFilterColumns.Add(new TicketListFilterColumn("Owner", true, Security.CurrentUserName)); } TicketCenterListSettings historytickets = new TicketCenterListSettings("historytickets", "Ticket History", disOrder + 2, 20, historyticketsSortColumns, historyticketsFilterColumns, disableStatusColumn); preferences.Add(historytickets); return preferences; }
/// <summary> /// Gets a paged list of tickets. /// </summary> /// <param name="pageIndex">Index of the page.</param> /// <param name="listSettings">The list settings.</param> /// <returns></returns> public IPagination<Ticket> ListTickets(int pageIndex, TicketCenterListSettings listSettings) { //TODO: Handle this in controllers if (!CheckSecurityForTicketActivity(null, TicketActivity.GetTicketInfo)) { throw new RuleException("noAuth", "User is not authorized to retrieve ticket information"); } return Repository.ListTickets(pageIndex, listSettings.ItemsPerPage, listSettings.SortColumns, listSettings.FilterColumns, false); }