aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/coding-rules/rule/custom-rule-view.js
blob: 5dc0c9ac7325ee8fbaca1b23331f0b8ed115180b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
define([
  'backbone.marionette',
  '../../../components/common/dialogs',
  '../templates'
], function (Marionette, confirmDialog) {

  var $ = jQuery;

  return Marionette.ItemView.extend({
    tagName: 'tr',
    template: Templates['coding-rules-custom-rule'],

    modelEvents: {
      'change': 'render'
    },

    events: {
      'click .js-delete-custom-rule': 'deleteRule'
    },

    deleteRule: function () {
      var that = this;
      confirmDialog({
        title: window.t('delete'),
        html: window.t('are_you_sure'),
        yesHandler: function () {
          var url = baseUrl + '/api/rules/delete',
              options = { key: that.model.id };
          $.post(url, options).done(function () {
            that.model.collection.remove(that.model);
            that.destroy();
          });
        }
      });
    },

    serializeData: function () {
      return _.extend(Marionette.ItemView.prototype.serializeData.apply(this, arguments), {
        canWrite: this.options.app.canWrite,
        templateRule: this.options.templateRule,
        permalink: baseUrl + '/coding_rules/#rule_key=' + encodeURIComponent(this.model.id)
      });
    }
  });

});