Interrogatorio per le revisioni della storia dell'utente in rally
Domanda
Vorrei recuperare l'oggetto JSON per il registro di revisione utilizzando l'URL associato alla storia dell'utente.Ho compiuto questo con jQuery usando il seguente codice, anche se preferirei farlo con strumenti costruiti in SDK Rally.Non ho avuto fortuna con le richieste ext.ajax o ext.data.jsonp, anche se sento che è l'approccio corretto.Qualsiasi aiuto sarebbe apprezzato.
$.ajax({
url: URL,
dataType: 'jsonp',
jsonp: 'jsonp',
success: function(response) {
$.each(response.RevisionHistory.Revisions, function(key, rev) {
//Parse Revision Log
});
}
});
. Soluzione
Questo è relativamente semplice con l'app SDK 2.0.I seguenti esempi nella documentazione dovrebbero essere utili:
http://developer.llydev.com/apps/2.0p4 / DOC / #! / Guida / AppsDK_20_Data_Models
http://developer.llydev.com/apps/2.0P4 / DOC / #! / Guida / AppsDK_20_Data_stores
Ecco un piccolo piccolo snippet di codice per ottenere la storia della revisione di una storia specifica:
Rally.data.ModelFactory.getModel({
type: 'UserStory',
success: function(storyModel) {
var storyRef = 'https://rally1.rallydev.com/slm/webservice/1.37/hierarchicalrequirement/12345.js';
var storyID = Rally.util.Ref.getOidFromRef(storyRef);
storyModel.load(storyID, {
fetch: ['Name', 'FormattedID', 'Description', 'RevisionHistory', 'Revisions'],
callback: function(story, operation) {
if(story && story.get('RevisionHistory') && story.get('RevisionHistory').Revisions) {
Ext.Array.each(story.get('RevisionHistory').Revisions, function(revision) {
//Parse revision log
});
}
}
});
}
});
.
La cosa bella con l'utilizzo dell'SDK è che farà automaticamente le richieste Ajax vs. Jsonp a seconda di come stai eseguendo l'app.L'esempio sopra funziona alla grande per una singola storia.Se desideri analizzare attraverso più storie che desideri utilizzare un negozio al posto del modello.load:
Ext.create('Rally.data.WsapiDataStore', {
model: 'UserStory',
autoLoad: true,
fetch: ['Name', 'FormattedID', 'Description', 'RevisionHistory', 'Revisions'],
listeners: {
load: function(store, stories) {
Ext.Array.each(stories, function(story) {
if(story && story.get('RevisionHistory') && story.get('RevisionHistory').Revisions) {
Ext.Array.each(story.get('RevisionHistory').Revisions, function(revision) {
//Parse revision log
});
}
});
}
}
});
.