collection: this.issues
});
this.actionsRegion.show(this.issuesActionsView);
-
- this.issueDetailView = new window.SS.IssueDetailView({
- model: new window.SS.Issue()
- });
});
NavigatorApp.storeQuery = function(query, sorting) {
- var fullQuery = query;
if (sorting) {
- _.extend(fullQuery, {
+ _.extend(query, {
sort: sorting.sort,
asc: '' + sorting.asc
});
}
- var queryString = _.map(fullQuery, function(v, k) {
+ var queryString = _.map(query, function(v, k) {
return [k, encodeURIComponent(v)].join('=');
}).join('|');
this.router.navigate(queryString);
this.maxResultsReached = r.maxResultsReached;
return r.issues.map(function(issue) {
- return _.extend({}, issue, {
- component: find(r.components, issue.component),
- project: find(r.projects, issue.project),
- rule: find(r.rules, issue.rule),
- author: find(r.users, issue.author, 'login'),
- comments: (issue.comments || []).map(function(comment) {
- return _.extend({}, comment, {
- user: find(r.users, comment.login, 'login')
- });
- })
- });
+ var component = find(r.components, issue.component),
+ project = find(r.projects, issue.project),
+ rule = find(r.rules, issue.rule);
+
+ if (component) {
+ _.extend(issue, {
+ componentLongName: component.longName,
+ componentQualifier: component.qualifier
+ });
+ }
+
+ if (project) {
+ _.extend(issue, {
+ projectLongName: project.longName
+ });
+ }
+
+ if (rule) {
+ _.extend(issue, {
+ ruleName: rule.name
+ });
+ }
+
+ return issue;
});
}
var IssueView = Backbone.Marionette.ItemView.extend({
template: Handlebars.compile(jQuery('#issue-template').html() || ''),
tagName: 'li',
+
+
events: {
'click': 'showDetails'
},
+ modelEvents: {
+ 'change': 'render'
+ },
+
+
showDetails: function() {
this.$el.parent().children().removeClass('active');
this.$el.addClass('active');
var app = this.options.app,
- detailView = this.options.app.issueDetailView;
+ detailView = new window.SS.IssueDetailView({
+ model: this.model
+ });
- detailView.model.set({ key: this.model.get('key') }, { silent: true});
- jQuery.when(detailView.model.fetch()).done(function() {
- app.detailsRegion.show(detailView);
+ detailView.model.fetch({
+ success: function() {
+ app.detailsRegion.show(detailView);
+ }
});
}
});
onClose: function() {
- this.ruleRegion.close();
+ if (this.ruleRegion) {
+ this.ruleRegion.reset();
+ }
},