}
},
- ensureResolution(query) {
- return query.resolutions || query.statuses ?
- _.omit(query, 'resolved') :
- _.extend({}, query, { resolved: false });
- },
-
fetchList: function (firstPage) {
var that = this;
if (firstPage == null) {
this.hideHomePage();
this.closeComponentViewer();
}
- var data = this._issuesParameters(),
- query = this.ensureResolution(this.options.app.state.get('query'));
- _.extend(data, query);
+ var data = this._issuesParameters();
+ _.extend(data, this.options.app.state.get('query'));
if (this.options.app.state.get('isContext')) {
_.extend(data, this.options.app.state.get('contextQuery'));
}
newSearch: function () {
this.options.app.state.unset('filter');
- return this.options.app.state.setQuery({});
+ return this.options.app.state.setQuery({ resolved: 'false' });
},
applyFilter: function (filter, ignoreQuery) {
if (addContext == null) {
addContext = false;
}
- var filter = this.ensureResolution(this.options.app.state.get('query'));
+ var filter = this.options.app.state.get('query');
if (addContext && this.options.app.state.get('isContext')) {
_.extend(filter, this.options.app.state.get('contextQuery'));
}
},
showHomePage: function () {
+ this.options.app.state.set({ query: { resolved: 'false' } }, { silent: true });
this.fetchList();
this.options.app.layout.workspaceComponentViewerRegion.reset();
key.setScope('home');
+import $ from 'jquery';
import _ from 'underscore';
import BaseFacet from './base-facet';
import '../templates';
export default BaseFacet.extend({
template: Templates['issues-resolution-facet'],
+ onRender: function () {
+ BaseFacet.prototype.onRender.apply(this, arguments);
+ var value = this.options.app.state.get('query').resolved;
+ if ((value != null) && (!value || value === 'false')) {
+ return this.$('.js-facet').filter('[data-unresolved]').addClass('active');
+ }
+ },
+
+ toggleFacet: function (e) {
+ var unresolved = $(e.currentTarget).is('[data-unresolved]');
+ $(e.currentTarget).toggleClass('active');
+ if (unresolved) {
+ var checked = $(e.currentTarget).is('.active'),
+ value = checked ? 'false' : null;
+ return this.options.app.state.updateFilter({
+ resolved: value,
+ resolutions: null
+ });
+ } else {
+ return this.options.app.state.updateFilter({
+ resolved: null,
+ resolutions: this.getValue()
+ });
+ }
+ },
+
+ disable: function () {
+ return this.options.app.state.updateFilter({
+ resolved: null,
+ resolutions: null
+ });
+ },
+
sortValues: function (values) {
- var order = ['FIXED', 'FALSE-POSITIVE', 'REMOVED', 'WONTFIX'];
+ var order = ['', 'FIXED', 'FALSE-POSITIVE', 'WONTFIX', 'REMOVED'];
return _.sortBy(values, function (v) {
return order.indexOf(v.val);
});
page: 1,
maxResultsReached: false,
query: {},
- facets: ['facetMode', 'severities'],
+ facets: ['facetMode', 'severities', 'resolutions'],
isContext: false,
allFacets: [
'facetMode',
'issues',
'severities',
- 'statuses',
'resolutions',
+ 'statuses',
'createdAt',
'rules',
'tags',
'createdAt'
],
transform: {
+ 'resolved': 'resolutions',
'assigned': 'assignees',
'planned': 'actionPlans',
'createdBefore': 'createdAt',
{{#each values}}
{{#eq val ""}}
{{! unresolved }}
+ <a class="facet search-navigator-facet search-navigator-facet-half js-facet" data-unresolved
+ title="{{t "issue.unresolved.description"}}" data-toggle="tooltip" data-placement="right">
+ <span class="facet-name">{{t "unresolved"}}</span>
+ <span class="facet-stat">
+ {{#eq ../../state.facetMode 'count'}}{{numberShort count}}{{else}}{{formatMeasure count 'SHORT_WORK_DUR'}}{{/eq}}
+ </span>
+ </a>
{{else}}
<a class="facet search-navigator-facet search-navigator-facet-half js-facet" data-value="{{val}}"
title="{{t "issue.resolution" val "description"}}" data-toggle="tooltip" data-placement="right">