diff options
author | Stas Vilchik <stas.vilchik@sonarsource.com> | 2018-01-29 14:21:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-29 14:21:28 +0100 |
commit | cebce15815204aa189f63f9e1b86143b258898d2 (patch) | |
tree | 5a3a773405e86a42e29c12c3e447951052bec6e9 /server/sonar-web/src/main/js/apps/coding-rules/rule/rule-profile-view.js | |
parent | ad504279d97bd55d8c191b1ffb793c6f005ffa5a (diff) | |
download | sonarqube-cebce15815204aa189f63f9e1b86143b258898d2.tar.gz sonarqube-cebce15815204aa189f63f9e1b86143b258898d2.zip |
rewrite rules app with react (#2982)
Diffstat (limited to 'server/sonar-web/src/main/js/apps/coding-rules/rule/rule-profile-view.js')
-rw-r--r-- | server/sonar-web/src/main/js/apps/coding-rules/rule/rule-profile-view.js | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-profile-view.js b/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-profile-view.js deleted file mode 100644 index 176a36f9778..00000000000 --- a/server/sonar-web/src/main/js/apps/coding-rules/rule/rule-profile-view.js +++ /dev/null @@ -1,180 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import { stringify } from 'querystring'; -import $ from 'jquery'; -import { sortBy } from 'lodash'; -import Backbone from 'backbone'; -import Marionette from 'backbone.marionette'; -import ProfileActivationView from './profile-activation-view'; -import Template from '../templates/rule/coding-rules-rule-profile.hbs'; -import confirmDialog from '../confirm-dialog'; -import { translate, translateWithParameters } from '../../../helpers/l10n'; - -export default Marionette.ItemView.extend({ - tagName: 'tr', - template: Template, - - modelEvents: { - change: 'render' - }, - - ui: { - change: '.coding-rules-detail-quality-profile-change', - revert: '.coding-rules-detail-quality-profile-revert', - deactivate: '.coding-rules-detail-quality-profile-deactivate' - }, - - events: { - 'click @ui.change': 'change', - 'click @ui.revert': 'revert', - 'click @ui.deactivate': 'deactivate' - }, - - onRender() { - this.$('[data-toggle="tooltip"]').tooltip({ - container: 'body' - }); - }, - - change() { - const that = this; - const activationView = new ProfileActivationView({ - model: this.model, - collection: this.model.collection, - rule: this.options.rule, - app: this.options.app - }); - activationView.on('profileActivated', () => { - that.options.refreshActives(); - }); - activationView.render(); - }, - - revert() { - const that = this; - const ruleKey = this.options.rule.get('key'); - confirmDialog({ - title: translate('coding_rules.revert_to_parent_definition'), - html: translateWithParameters( - 'coding_rules.revert_to_parent_definition.confirm', - this.getParent().name - ), - yesLabel: translate('yes'), - noLabel: translate('cancel'), - yesHandler() { - return $.ajax({ - type: 'POST', - url: window.baseUrl + '/api/qualityprofiles/activate_rule', - data: { - profile_key: that.model.get('qProfile'), - rule_key: ruleKey, - reset: true - } - }).done(() => { - that.options.refreshActives(); - }); - } - }); - }, - - deactivate() { - const that = this; - const ruleKey = this.options.rule.get('key'); - confirmDialog({ - title: translate('coding_rules.deactivate'), - html: translateWithParameters('coding_rules.deactivate.confirm'), - yesLabel: translate('yes'), - noLabel: translate('cancel'), - yesHandler() { - return $.ajax({ - type: 'POST', - url: window.baseUrl + '/api/qualityprofiles/deactivate_rule', - data: { - profile_key: that.model.get('qProfile'), - rule_key: ruleKey - } - }).done(() => { - that.options.refreshActives(); - }); - } - }); - }, - - enableUpdate() { - return this.ui.update.prop('disabled', false); - }, - - getParent() { - if (!(this.model.get('inherit') && this.model.get('inherit') !== 'NONE')) { - return null; - } - const myProfile = this.options.app.qualityProfiles.find( - p => p.key === this.model.get('qProfile') - ); - if (!myProfile) { - return null; - } - const parentKey = myProfile.parentKey; - const parent = { ...this.options.app.qualityProfiles.find(p => p.key === parentKey) }; - const parentActiveInfo = - this.model.collection.findWhere({ qProfile: parentKey }) || new Backbone.Model(); - Object.assign(parent, parentActiveInfo.toJSON()); - return parent; - }, - - enhanceParameters(parent) { - const params = sortBy(this.model.get('params'), 'key'); - if (!parent) { - return params; - } - return params.map(p => { - const parentParam = parent.params.find(param => param.key === p.key); - if (parentParam != null) { - return { ...p, original: parentParam.value }; - } else { - return p; - } - }); - }, - - getProfilePath(language, name) { - const { organization } = this.options.app; - const query = stringify({ language, name }); - return organization - ? `${window.baseUrl}/organizations/${organization}/quality_profiles/show?${query}` - : `${window.baseUrl}/profiles/show?${query}`; - }, - - serializeData() { - const parent = this.getParent(); - - return { - ...Marionette.ItemView.prototype.serializeData.apply(this, arguments), - parent, - actions: this.model.get('actions') || {}, - canWrite: this.options.app.canWrite, - parameters: this.enhanceParameters(parent), - templateKey: this.options.rule.get('templateKey'), - isTemplate: this.options.rule.get('isTemplate'), - profilePath: this.getProfilePath(this.model.get('language'), this.model.get('name')), - parentProfilePath: parent && this.getProfilePath(parent.language, parent.name) - }; - } -}); |