Advertisement
trevershick

Defect Trend over Time Rally App

Feb 19th, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.61 KB | None | 0 0
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head><title>
  2.     Defect Trend App </title>
  3.         <script type="text/javascript" src="/apps/2.0rc1/sdk.js"></script>
  4.         <script type="text/javascript">
  5.        
  6.         var states = ['Accepted','Released']; // all enum values for 'State'
  7.         var field = 'ScheduleState'; // or 'State'
  8.         var ReleaseOID = XXXXXX; // your release Oid
  9.        
  10.         Rally.onReady(function () {
  11.                 Ext.define('CustomApp', {
  12.                     extend: 'Rally.app.App',
  13.                     componentCls: 'app',
  14.                     launch: function() {    
  15.                         return this.createTrendChart();
  16.                     },  
  17.  
  18.                     createTrendChart: function() {
  19.                         var ProjectOid;
  20.                         ProjectOid = this.getContext().getProject().ObjectID;
  21.                
  22.                
  23.                         Ext.define('My.TrendCalc', {
  24.                             extend: 'Rally.data.lookback.calculator.TimeSeriesCalculator',
  25.                             getDerivedFieldsOnInput: function() {
  26.                                 var m = _.map(states, function(state) {
  27.                                     return {
  28.                                         "as": state,
  29.                                         "f" : function(snapshot) {
  30.                                             var value = (snapshot[field] == state) ? 1 : 0;
  31.                                             return value;
  32.                                         }
  33.                                     }
  34.                                 })
  35.                                 return m;
  36.                             },
  37.                             getMetrics : function() {
  38.                                 var m = _.map(states, function(state) {
  39.                                     return {
  40.                                         field: state,
  41.                                         as: state,
  42.                                         f: 'sum'
  43.                                     }
  44.                                 })
  45.                                 return m;
  46.                             }
  47.                         });
  48.        
  49.                         this.myTrendChart = Ext.create('Rally.ui.chart.Chart', {
  50.                             storeType: 'Rally.data.lookback.SnapshotStore',
  51.                             storeConfig:  {
  52.                                 find: {
  53.                                     _TypeHierarchy: "Defect",
  54.                                     State: {$lte: "Closed" },
  55.                                     _ProjectHierarchy: ProjectOid,
  56.                                     Release:  ReleaseOID
  57.                                 },        
  58.                                 fetch: ["_ValidFrom", "_ValidTo", "ObjectID", field],
  59.                                 hydrate: [field],
  60.                                 sort: { "_ValidFrom" : 1}
  61.                             },      
  62.                             calculatorType: 'My.TrendCalc',
  63.                             calculatorConfig : {},
  64.                             chartConfig: {
  65.                                 chart: {
  66.                                         zoomType: 'xy',
  67.                                         type:'column'
  68.                                 },
  69.                                 title: {
  70.                                     text: 'Defects over Time'
  71.                                 },
  72.                                 xAxis: {
  73.                                     type: 'datetime',
  74.                                     title: { text: 'When'},
  75.                                     minTickInterval: 5,
  76.                                     labels : { rotation: 90 }
  77.                                 },
  78.                                 yAxis: { title: { text: 'Count' } },
  79.                                 plotOptions: {
  80.                                     series: {
  81.                                         stacking: 'normal'
  82.                                     }
  83.                                 }
  84.                             }
  85.                         });
  86.  
  87.                         return this.add(this.myTrendChart);
  88.                     }
  89.                 });
  90.         });
  91.        
  92.         console.log("launching application");
  93.         Rally.launchApp('CustomApp', {
  94.             name:'Defect Trend App',
  95.             parentRepos:""
  96.         });
  97.         </script>
  98.     </head>
  99.     <body>
  100.     </body>
  101. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement