testGroups: function () {
return this.store.find('testGroup', {task: this.get('id')});
}.property(),
+ label: function () {
+ var label = this.get('name');
+ var bugs = this.get('bugs').map(function (bug) { return bug.get('label'); }).join(' / ');
+ return bugs ? label + ' (' + bugs + ')' : label;
+ }.property('name', 'bugs'),
});
-App.Bug = App.NameLabelModel.extend({
+App.Bug = App.Model.extend({
task: DS.belongsTo('AnalysisTask'),
bugTracker: DS.belongsTo('BugTracker'),
createdAt: DS.attr('date'),
number: DS.attr('number'),
+ label: function () {
+ return this.get('bugTracker').get('label') + ': ' + this.get('number');
+ }.property('name', 'bugTracker'),
});
// FIXME: Use DS.RESTAdapter instead.
},
});
+App.BugAdapter = DS.RESTAdapter.extend({
+ createRecord: function (store, type, record)
+ {
+ var param = {
+ task: record.get('task').get('id'),
+ bugTracker: record.get('bugTracker').get('id'),
+ number: record.get('number'),
+ };
+ return PrivilegedAPI.sendRequest('associate-bug', param).then(function (data) {
+ param['id'] = data['bugId'];
+ return {'bug': param};
+ });
+ }
+});
+
App.TestGroup = App.NameLabelModel.extend({
analysisTask: DS.belongsTo('analysisTask'),
author: DS.attr('string'),
}
});
-App.BuildRequest = DS.Model.extend({
+App.BuildRequest = App.Model.extend({
group: DS.belongsTo('testGroup'),
order: DS.attr('number'),
rootSet: DS.attr('number'),