/src/main/webapp/js/app/views/overviewview.js
JavaScript | 138 lines | 106 code | 20 blank | 12 comment | 5 complexity | 0f3cc8e23c2b8c10363b51af1aca442f MD5 | raw file
Possible License(s): GPL-2.0, MIT
- App.Views.OverviewView = App.Views.TabbedView.extend({
- showTab: false,
- events: {
- },
- render: function () {
- this.model = new Backbone.Model();
- // TODO: pull from api/message
- this.model.set('message', '');
- this.template = this.getTemplate('Overview');
- this.$el.html(this.template(this.model.toJSON()));
- // TODO: a little clumsy
- // fake a view here
- this.tabView = {
- select: function () {
- $('li.overview').addClass("selected-navigation");
- }
- }
- this.loadAllContent();
- return this;
- },
- loadAllContent: function(){
- var self = this;
- // load various tabs
- // 1) ticketlist tab
- var ticketSet = new App.Collections.TicketSet();
- // TODO: add error handler
- ticketSet.fetch({
- success: function(collection, response) {
- self.LoadAllTickets(collection);
- }
- });
- //$tab1.html('<p>All new content. <em>You bet!</em></p>')
- // 2) Ticket tab --- later
- },
- LoadAllTickets: function (collection) {
- var $tab1 = this.$('#tab1').html('');
- var ticketListColumns =
- [
- ["id"],
- ["modified", "Date", "D MMM YYYY"],
- ["title"]
- ];
- // load tickets in drafts status
- // TODO: tickets should never be in null status but tickets created from previous builds are having null status
- var draftTickets = collection.search([null,'Draft']);
- var draftHeaders =
- [[
- "drafts are incomplete", App.Collections.TicketSet.Aggregate.countIncomplete
- ],
- [
- "drafts are more than 1 week old", App.Collections.TicketSet.Aggregate.moreThanAWeekOld
- ]];
- $tab1.append(new App.Views.TicketListView({
- model: {
- "tickets": draftTickets,
- "headers": draftHeaders,
- "columns": [
- ["id"],
- ["modified", "Date", "D MMM YYYY"],
- ["title"]
- ]
- },
- title: "DRAFT TICKETS"
- }).render().el);
- var recentTickets = collection.searchWithMethod(function(data) {
- if (data == null) return false;
- if (data.get("status") != 'Submitted') return false;
- if (data.daysSinceSubmission() > 14) return false;
- return true;
- });
- var recentTicketHeaders =
- [[
- "tickets have been submitted in the last week", App.Collections.TicketSet.Aggregate.createdInDateRange(0, 7)
- ],
- [
- "tickets have been submitted in the last 2 weeks", App.Collections.TicketSet.Aggregate.createdInDateRange(8, 14)
- ]];
- // load tickets in submitted status
- $tab1.append(new App.Views.TicketListView({
- model: {
- "tickets": recentTickets,
- "headers": recentTicketHeaders,
- "columns": [
- ['CMId', 'Link', 'http://sams.cable.comcast.com/cgi-bin/arnie.cgi?OPT_M=CM_PRINT&TICKET={0}'],
- ['modified', 'Date', 'D MMM YYYY'],
- ['title']
- ]
- },
- title: "RECENT CM TICKETS"
- }).render().el);
- var historicalTickets = collection.search(["Submitted"]);
- var ageOfOldest = App.Collections.TicketSet.Aggregate.getOldestAge(historicalTickets, 'months');
- var countPreviousMonths = ageOfOldest > 1? ageOfOldest - 1: 1;
- var historicalTicketHeaders =
- [[
- "tickets have been submitted in the last month",
- App.Collections.TicketSet.Aggregate.createdInDateRange(0, 30)
- ],
- [
- ("tickets have been submitted in the " + countPreviousMonths +
- " " + (countPreviousMonths > 1?"months":"month") + " previous"),
- App.Collections.TicketSet.Aggregate.createdInDateRange(30, -1)
- ]];
- // load tickets in submitted status
- $tab1.append(new App.Views.TicketListView({
- model: {
- "tickets": historicalTickets,
- "headers": historicalTicketHeaders,
- "columns": [
- ['CMId', 'Link', 'http://sams.cable.comcast.com/cgi-bin/arnie.cgi?OPT_M=CM_PRINT&TICKET={0}'],
- ['modified', 'Date', 'D MMM YYYY'],
- ['title']
- ]
- },
- title: "HISTORICAL CM TICKETS"
- }).render().el);
- }
- });