diff options
Diffstat (limited to 'server/sonar-web/src/main/js/apps/coding-rules/controller.js')
-rw-r--r-- | server/sonar-web/src/main/js/apps/coding-rules/controller.js | 294 |
1 files changed, 147 insertions, 147 deletions
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/controller.js b/server/sonar-web/src/main/js/apps/coding-rules/controller.js index dabd4a0b166..dad6224391a 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/controller.js +++ b/server/sonar-web/src/main/js/apps/coding-rules/controller.js @@ -1,156 +1,156 @@ -define([ - 'components/navigator/controller', - './models/rule', - './rule-details-view' -], function (Controller, Rule, RuleDetailsView) { - - var $ = jQuery; - - return Controller.extend({ - pageSize: 200, - ruleFields: ['name', 'lang', 'langName', 'sysTags', 'tags', 'status', 'severity', - 'debtChar', 'debtCharName', 'debtSubChar', 'debtSubCharName'], - - - _searchParameters: function () { - var fields = this.ruleFields.slice(), - profile = this.app.state.get('query').qprofile; - if (profile != null) { - fields.push('actives'); - fields.push('params'); - fields.push('isTemplate'); - fields.push('severity'); - } - var params = { - p: this.app.state.get('page'), - ps: this.pageSize, - facets: this._facetsFromServer().join(), - f: fields.join() - }; - if (this.app.state.get('query').q == null) { - _.extend(params, { s: 'name', asc: true }); - } - return params; - }, +import $ from 'jquery'; +import _ from 'underscore'; +import Controller from 'components/navigator/controller'; +import Rule from './models/rule'; +import RuleDetailsView from './rule-details-view'; + +export default Controller.extend({ + pageSize: 200, + ruleFields: [ + 'name', 'lang', 'langName', 'sysTags', 'tags', 'status', 'severity', + 'debtChar', 'debtCharName', 'debtSubChar', 'debtSubCharName' + ], + + + _searchParameters: function () { + var fields = this.ruleFields.slice(), + profile = this.app.state.get('query').qprofile; + if (profile != null) { + fields.push('actives'); + fields.push('params'); + fields.push('isTemplate'); + fields.push('severity'); + } + var params = { + p: this.app.state.get('page'), + ps: this.pageSize, + facets: this._facetsFromServer().join(), + f: fields.join() + }; + if (this.app.state.get('query').q == null) { + _.extend(params, { s: 'name', asc: true }); + } + return params; + }, - fetchList: function (firstPage) { - firstPage = firstPage == null ? true : firstPage; + fetchList: function (firstPage) { + firstPage = firstPage == null ? true : firstPage; + if (firstPage) { + this.app.state.set({ selectedIndex: 0, page: 1 }, { silent: true }); + } + + this.hideDetails(firstPage); + + var that = this, + url = baseUrl + '/api/rules/search', + options = _.extend(this._searchParameters(), this.app.state.get('query')); + return $.get(url, options).done(function (r) { + var rules = that.app.list.parseRules(r); if (firstPage) { - this.app.state.set({ selectedIndex: 0, page: 1 }, { silent: true }); + that.app.list.reset(rules); + } else { + that.app.list.add(rules); } - - this.hideDetails(firstPage); - - var that = this, - url = baseUrl + '/api/rules/search', - options = _.extend(this._searchParameters(), this.app.state.get('query')); - return $.get(url, options).done(function (r) { - var rules = that.app.list.parseRules(r); - if (firstPage) { - that.app.list.reset(rules); - } else { - that.app.list.add(rules); - } - that.app.list.setIndex(); - that.app.list.addExtraAttributes(that.app.languages, that.app.repositories); - that.app.facets.reset(that._allFacets()); - that.app.facets.add(r.facets, { merge: true }); - that.enableFacets(that._enabledFacets()); - that.app.state.set({ - page: r.p, - pageSize: r.ps, - total: r.total, - maxResultsReached: r.p * r.ps >= r.total - }); - if (firstPage && that.isRulePermalink()) { - that.showDetails(that.app.list.first()); - } - }); - }, - - isRulePermalink: function () { - var query = this.app.state.get('query'); - return query.rule_key != null && this.app.list.length === 1; - }, - - requestFacet: function (id) { - var url = baseUrl + '/api/rules/search', - facet = this.app.facets.get(id), - options = _.extend({ facets: id, ps: 1 }, this.app.state.get('query')); - return $.get(url, options).done(function (r) { - var facetData = _.findWhere(r.facets, { property: id }); - if (facetData) { - facet.set(facetData); - } + that.app.list.setIndex(); + that.app.list.addExtraAttributes(that.app.languages, that.app.repositories); + that.app.facets.reset(that._allFacets()); + that.app.facets.add(r.facets, { merge: true }); + that.enableFacets(that._enabledFacets()); + that.app.state.set({ + page: r.p, + pageSize: r.ps, + total: r.total, + maxResultsReached: r.p * r.ps >= r.total }); - }, - - parseQuery: function () { - var q = Controller.prototype.parseQuery.apply(this, arguments); - delete q.asc; - delete q.s; - return q; - }, - - getRuleDetails: function (rule) { - var that = this, - url = baseUrl + '/api/rules/show', - options = { - key: rule.id, - actives: true - }; - return $.get(url, options).done(function (data) { - rule.set(data.rule); - rule.addExtraAttributes(that.app.repositories); - }); - }, - - showDetails: function (rule) { - var that = this, - ruleModel = typeof rule === 'string' ? new Rule({ key: rule }) : rule; - this.app.layout.workspaceDetailsRegion.reset(); - this.getRuleDetails(ruleModel).done(function (data) { - key.setScope('details'); - that.app.workspaceListView.unbindScrollEvents(); - that.app.state.set({ rule: ruleModel }); - that.app.workspaceDetailsView = new RuleDetailsView({ - app: that.app, - model: ruleModel, - actives: data.actives - }); - that.app.layout.showDetails(); - that.app.layout.workspaceDetailsRegion.show(that.app.workspaceDetailsView); - }); - }, - - showDetailsForSelected: function () { - var rule = this.app.list.at(this.app.state.get('selectedIndex')); - this.showDetails(rule); - }, - - hideDetails: function (firstPage) { - key.setScope('list'); - this.app.state.unset('rule'); - this.app.layout.workspaceDetailsRegion.reset(); - this.app.layout.hideDetails(); - this.app.workspaceListView.bindScrollEvents(); - if (firstPage) { - this.app.workspaceListView.scrollTo(); + if (firstPage && that.isRulePermalink()) { + that.showDetails(that.app.list.first()); + } + }); + }, + + isRulePermalink: function () { + var query = this.app.state.get('query'); + return query.rule_key != null && this.app.list.length === 1; + }, + + requestFacet: function (id) { + var url = baseUrl + '/api/rules/search', + facet = this.app.facets.get(id), + options = _.extend({ facets: id, ps: 1 }, this.app.state.get('query')); + return $.get(url, options).done(function (r) { + var facetData = _.findWhere(r.facets, { property: id }); + if (facetData) { + facet.set(facetData); } - }, - - activateCurrent: function () { - var rule = this.app.list.at(this.app.state.get('selectedIndex')); - var ruleView = this.app.workspaceListView.children.findByModel(rule); - ruleView.$('.coding-rules-detail-quality-profile-activate').click(); - }, - - deactivateCurrent: function () { - var rule = this.app.list.at(this.app.state.get('selectedIndex')); - var ruleView = this.app.workspaceListView.children.findByModel(rule); - ruleView.$('.coding-rules-detail-quality-profile-deactivate').click(); + }); + }, + + parseQuery: function () { + var q = Controller.prototype.parseQuery.apply(this, arguments); + delete q.asc; + delete q.s; + return q; + }, + + getRuleDetails: function (rule) { + var that = this, + url = baseUrl + '/api/rules/show', + options = { + key: rule.id, + actives: true + }; + return $.get(url, options).done(function (data) { + rule.set(data.rule); + rule.addExtraAttributes(that.app.repositories); + }); + }, + + showDetails: function (rule) { + var that = this, + ruleModel = typeof rule === 'string' ? new Rule({ key: rule }) : rule; + this.app.layout.workspaceDetailsRegion.reset(); + this.getRuleDetails(ruleModel).done(function (data) { + key.setScope('details'); + that.app.workspaceListView.unbindScrollEvents(); + that.app.state.set({ rule: ruleModel }); + that.app.workspaceDetailsView = new RuleDetailsView({ + app: that.app, + model: ruleModel, + actives: data.actives + }); + that.app.layout.showDetails(); + that.app.layout.workspaceDetailsRegion.show(that.app.workspaceDetailsView); + }); + }, + + showDetailsForSelected: function () { + var rule = this.app.list.at(this.app.state.get('selectedIndex')); + this.showDetails(rule); + }, + + hideDetails: function (firstPage) { + key.setScope('list'); + this.app.state.unset('rule'); + this.app.layout.workspaceDetailsRegion.reset(); + this.app.layout.hideDetails(); + this.app.workspaceListView.bindScrollEvents(); + if (firstPage) { + this.app.workspaceListView.scrollTo(); } + }, + + activateCurrent: function () { + var rule = this.app.list.at(this.app.state.get('selectedIndex')); + var ruleView = this.app.workspaceListView.children.findByModel(rule); + ruleView.$('.coding-rules-detail-quality-profile-activate').click(); + }, - }); + deactivateCurrent: function () { + var rule = this.app.list.at(this.app.state.get('selectedIndex')); + var ruleView = this.app.workspaceListView.children.findByModel(rule); + ruleView.$('.coding-rules-detail-quality-profile-deactivate').click(); + } }); + + |