Feature Card Printer using Rally SDK 2

371 views Asked by At

All I am working on a feature printing app for Rally so we can generate cards for our analog portfolio kanban board. I wanted to build this printer using the 2.0 SDK. I am usign the original Card print code as my starting spot. My Java Script is rusty and i could us some help getting past this hurdle.

Goals of the App.

  • Get Data from Rally
  • Render HTML page with date in for of a card
  • Handle Printing

I am using a store to pull the data from Rally. This is working as expected. I am having issue passing the store results in to the array to create the HTML cards. The data is making it to the _displayFeatureCard: function. I can see it in the console print out.

Here is what i have so far.

Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function () {
    console.log("App Launched")   

//App Calls the portfolio feature data store this._getfeaturedatastore();

},

//Get the portfolio feature data from Rally 
_getfeaturedatastore: function(){   
   var getfeaturedata = Ext.create('Rally.data.wsapi.Store', {
model: 'PortfolioItem/Feature',
autoLoad: true,

//Create Fillter for the Store filters: [ { property: 'State.Name',

        value: 'Story Definition',
    }

],

listeners: {
    load: function(getfeaturedatastore, getfeaturedatadata, success) {
    console.log("Got Feature Data Woot",getfeaturedatastore, getfeaturedatadata, success)    
    this._displayFeatureCard(getfeaturedata);
    },

     scope: this
},
fetch: ['State', 'Name', 'Description', 'Owner', 'Parent','PlannedStartDate','FormattedID','Tags']

}); },

_displayFeatureCard: function(getfeaturedata){
    var MAX_NAME_LEN = 115;
    var name,i,theMarkup,data, description, owner, parent, plannedstartdate, formattedid, data;

 data = getfeaturedata;

  console.log("Woot made it to the Card", data)

  for (i = 0; i < data; i++) {

        name = data[i].Name;

        owner = data[i].Owner;

        parent = data[i].Parent;

        description = data[i].Description;

        plannedstartdate=data[i].PlannedStartDate;

        formattedid=data[i].FormattedID;

        theMarkup = this.createMarkup(i, data, name, description, owner, parent, plannedstartdate, formattedid);

        dojo.byId("cards").innerHTML += theMarkup;

  }

},
1

There are 1 answers

2
user4211235 On BEST ANSWER

Checking your code, your app constructor is using Rally's AppSDK 2.0 (ExtJS based), while your _displayFeatureCard method is referencing dojo, which is legacy AppSDK1 and not recommended for use in AppSDK 2.0.

There is a RallyCommunity app for printing Feature Cards (a slightly modified version of PrintStoryCards). It is available here:

https://github.com/RallyCommunity/feature-print-cards

It is also based on the legacy and deprecated AppSDK1. However it still works, and you may find that it meets your requirements.