Rally Software

Expand all | Collapse all

I participated in a discussion today in the Q&A forums...

  • 1.  I participated in a discussion today in the Q&A forums...

    Broadcom Employee
    Posted 06-07-2016 03:33 PM

    I participated in a discussion today in the Q&A forums about showing stories and defects commingled in a single custom list, the way that Plan > Backlog works except without the timebox exclusion. One of CA's outstanding folks, @Nik Antonelli instantly understood the problem and provided the code for a custom list-like app that queries both stories and defects and includes the advanced filtering feature. I found it so handy that I thought I'd share the code here and maybe if CA's product managers are listening in then they'll consider either adding it to the App Catalog or enhancing the Custom List app similarly. Thanks Nik!!!

     

    <!DOCTYPE html>

    <html>

    <head>

    <title>Customizable Columns Grid Board Example</title>

     

    <script type="text/javascript" src="/apps/2.1/sdk.js"></script>

     

    <script type="text/javascript">

    Rally.onReady(function() {

    Ext.define('Rally.example.CustomizableColumnsGridBoard', {

    extend: 'Rally.app.App',

    componentCls: 'app',

     

    launch: function() {

    Ext.create('Rally.data.wsapi.TreeStoreBuilder').build({

    models: ['defect', 'userstory'],

    autoLoad: true,

    enableHierarchy: true

    }).then({

    success: this._onStoreBuilt,

    scope: this

    });

    },

     

    _onStoreBuilt: function(store) {

    var modelNames = ['defect', 'userstory'],

    context = this.getContext();

    this.add({

    xtype: 'rallygridboard',

    context: context,

    modelNames: modelNames,

    toggleState: 'grid',

    stateful: false,

    plugins: [

    'rallygridboardaddnew',

    {

    ptype: 'rallygridboardfieldpicker',

    headerPosition: 'left',

    modelNames: modelNames,

    stateful: true,

    stateId: context.getScopedStateId('columns-example')

    },{

    ptype: 'rallygridboardinlinefiltercontrol',

    inlineFilterButtonConfig: {

    stateful: true,

    stateId: context.getScopedStateId('filters'),

    modelNames: modelNames,

    inlineFilterPanelConfig: {

    quickFilterPanelConfig: {

    defaultFields: [

    'ArtifactSearch',

    'Owner',

    'ModelType'

    ]

    }

    }

    }

    }

    ],

    gridConfig: {

    store: store,

    columnCfgs: [

    'Name',

    'State',

    'Release',

    'Iteration'

    ]

    },

    height: this.getHeight()

    });

    }

    });

     

     

    Rally.launchApp('Rally.example.CustomizableColumnsGridBoard', {

    name: 'Customizable Columns Grid Board Example'

    });

    });

    </script>

     

    <style type="text/css">

     

    </style>

    </head>

    <body></body>

    </html>



  • 2.  Re:

    Posted 06-07-2016 04:20 PM
    @Stephanie Tanner eh?


  • 3.  Re:

    Posted 06-07-2016 04:34 PM
    We love this concept!  Thanks for sharing the code for all!