Exemplo n.º 1
0
 /// <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);
 }
 public FilterBarViewModel(TicketCenterListSettings listPreferences, UserInfo[] staffUsers, UserInfo[] submitterUsers)
 {
     Preferences    = listPreferences;
     StaffUsers     = staffUsers;
     SubmitterUsers = submitterUsers;
 }
Exemplo n.º 3
0
        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>
        /// 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);
        }