Ich mag würde damit beginnen, sagen, dass ich Rally Kanban - hiding Epic Stories gelesen habe, aber ich bin immer noch Probleme, meinen Filter auf der Implementierung basierend auf dem Filterprozess vom Estimation Vorstand App. Zur Zeit versuche ich einen Objektfilter zu meinem Abfrageobjekt für meinen Karton hinzuzufügen. Das Abfrageobjekt ruft this._getItems auf, um ein Array von Elementen zurückzugeben, aus denen gefiltert werden soll. So weit ich sagen kann, ruft die Abfrage die Funktion auf, lädt für eine Sekunde oder zwei und zeigt dann keine Ergebnisse an. Irgendwelche Eingaben, Vorschläge oder alternative Lösungen sind willkommen.Filtering Epen von Kanban Board
Hier ist mein Code
$that._redisplayBoard = function() {
that._getAndStorePrefData(displayBoard);
this._getItems = function(callback) {
//Build types based on checkbox selections
var queries = [];
queries.push({key:"HierarchicalRequirement",
type: "HierarchicalRequirement",
fetch: "Name,FormattedID,Owner,ObjectID,Rank,PlanEstimate,Children,Ready,Blocked",
order: "Rank"
});
function bucketItems(results) {
var items = [];
rally.forEach(queries, function(query) {
if (results[query.key]) {
rally.forEach(results[query.key], function(item) {
//exclude epic stories since estimates cannot be altered
if ((item._type !== 'HierarchicalRequirement') ||
(item._type === 'HierarchicalRequirement' && item.Children.length === 0)) {
items = items.concat(item);
}
});
}
});
callback(items);
}
rallyDataSource.findAll(queries, bucketItems);
};
function displayBoard() {
artifactTypes = [];
var cardboardConfig = {
types: [],
items: that._getItems,
attribute: kanbanField,
sortAscending: true,
maxCardsPerColumn: 200,
order: "Rank",
cardRenderer: KanbanCardRenderer,
cardOptions: {
showTaskCompletion: showTaskCompletion,
showAgeAfter: showAgeAfter
},
columnRenderer: KanbanColumnRenderer,
columns: columns,
fetch: "Name,FormattedID,Owner,ObjectID,Rank,Ready,Blocked,LastUpdateDate,Tags,State,Priority,StoryType,Children"
};
if (showTaskCompletion) {
cardboardConfig.fetch += ",Tasks";
}
if (hideLastColumnIfReleased) {
cardboardConfig.query = new rally.sdk.util.Query("Release = null").or(kanbanField + " != " + '"' + lastState + '"');
}
if (filterByTagsDropdown && filterByTagsDropdown.getDisplayedValue()) {
cardboardConfig.cardOptions.filterBy = { field: FILTER_FIELD, value: filterByTagsDropdown.getDisplayedValue() };
}
cardboardConfig.types.push("HierarchicalRequirement");
if (cardboard) {
cardboard.destroy();
}
artifactTypes = cardboardConfig.types;
cardboard = new rally.sdk.ui.CardBoard(cardboardConfig, rallyDataSource);
cardboard.addEventListener("preUpdate", that._onBeforeItemUpdated);
cardboard.addEventListener("onDataRetrieved", function(cardboard,args){ console.log(args.items); });
cardboard.display("kanbanBoard");
}
};
that.display = function(element) {
//Build app layout
this._createLayout(element);
//Redisplay the board
this._redisplayBoard();
};
};
Guter Fang! Ich habe meine Antwort bearbeitet, um deine Feststellung widerzuspiegeln. –
Ich bin mir nicht sicher, ob es die richtige Stack-Überlauf-Etikette ist auch dies als eine Antwort zu markieren, aber ich habe nicht genug rep noch upvote so los gehts. – user1145893