From 46f886310d29df9fbcf4d99be349b5ba25ec623d Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Fri, 10 Apr 2015 15:02:04 +0200 Subject: [PATCH] SONAR-5851 update copy action --- .../src/main/js/quality-profiles/controller.js | 12 ------------ .../main/js/quality-profiles/copy-profile-view.js | 14 ++++++++++---- server/sonar-web/src/test/js/quality-profiles.js | 7 ++----- .../src/test/json/quality-profiles/copy.json | 8 ++++++++ 4 files changed, 20 insertions(+), 21 deletions(-) create mode 100644 server/sonar-web/src/test/json/quality-profiles/copy.json diff --git a/server/sonar-web/src/main/js/quality-profiles/controller.js b/server/sonar-web/src/main/js/quality-profiles/controller.js index 041ad870960..ed58081869e 100644 --- a/server/sonar-web/src/main/js/quality-profiles/controller.js +++ b/server/sonar-web/src/main/js/quality-profiles/controller.js @@ -28,7 +28,6 @@ define([ initialize: function () { this.listenTo(this.options.app.profiles, 'select', this.onProfileSelect); - this.listenTo(this.options.app.profiles, 'copy', this.onProfileCopy); this.listenTo(this.options.app.profiles, 'setAsDefault', this.onProfileSetAsDefault); this.listenTo(this.options.app.profiles, 'destroy', this.onProfileDestroy); }, @@ -62,17 +61,6 @@ define([ }); }, - onProfileCopy: function (name, profile) { - var that = this, - lang = profile.get('language'); - this.fetchProfiles().done(function () { - var newProfile = that.options.app.profiles.findWhere({ language: lang, name: name }); - if (newProfile != null) { - newProfile.trigger('select', newProfile); - } - }); - }, - onProfileSetAsDefault: function (profile) { var that = this, url = baseUrl + '/api/qualityprofiles/set_default', diff --git a/server/sonar-web/src/main/js/quality-profiles/copy-profile-view.js b/server/sonar-web/src/main/js/quality-profiles/copy-profile-view.js index b46b3639eb2..376872436a1 100644 --- a/server/sonar-web/src/main/js/quality-profiles/copy-profile-view.js +++ b/server/sonar-web/src/main/js/quality-profiles/copy-profile-view.js @@ -19,8 +19,9 @@ */ define([ 'common/modal-form', + 'quality-profiles/profile', 'templates/quality-profiles' -], function (ModalFormView) { +], function (ModalFormView, Profile) { var $ = jQuery; @@ -48,13 +49,18 @@ define([ // do not show global error 400: null } - }).done(function () { - // TODO open new profile using key from response - that.model.trigger('copy', name, that.model); + }).done(function (r) { + that.addProfile(r); that.close(); }).fail(function (jqXHR) { that.showErrors(jqXHR.responseJSON.errors, jqXHR.responseJSON.warnings); }); + }, + + addProfile: function (profileData) { + var profile = new Profile(profileData); + this.model.collection.add([profile]); + profile.trigger('select', profile); } }); diff --git a/server/sonar-web/src/test/js/quality-profiles.js b/server/sonar-web/src/test/js/quality-profiles.js index 3b04b0b06f7..51acd6ae1b6 100644 --- a/server/sonar-web/src/test/js/quality-profiles.js +++ b/server/sonar-web/src/test/js/quality-profiles.js @@ -165,9 +165,9 @@ casper.test.begin(testName('Copy Profile'), 5, function (test) { .start(lib.buildUrl('quality_profiles'), function () { lib.setDefaultViewport(); - this.searchMock = lib.mockRequestFromFile('/api/qualityprofiles/search', 'search.json'); + lib.mockRequestFromFile('/api/qualityprofiles/search', 'search.json'); lib.mockRequestFromFile('/api/rules/search', 'rules.json'); - lib.mockRequest('/api/qualityprofiles/copy', '{}'); + lib.mockRequestFromFile('/api/qualityprofiles/copy', 'copy.json'); }) .then(function () { @@ -193,9 +193,6 @@ casper.test.begin(testName('Copy Profile'), 5, function (test) { }) .then(function () { - lib.clearRequestMock(this.searchMock); - lib.mockRequestFromFile('/api/qualityprofiles/search', 'search-with-copy.json'); - casper.evaluate(function () { jQuery('#copy-name').val('Copied Profile'); }); diff --git a/server/sonar-web/src/test/json/quality-profiles/copy.json b/server/sonar-web/src/test/json/quality-profiles/copy.json new file mode 100644 index 00000000000..ba810f15720 --- /dev/null +++ b/server/sonar-web/src/test/json/quality-profiles/copy.json @@ -0,0 +1,8 @@ +{ + "key": "java-copied-profile-11711", + "name": "Copied Profile", + "activeRuleCount": 161, + "language": "java", + "languageName": "Java", + "isInherited": false +} -- 2.39.5