From f0df3e47a8a8e62612b4e4ee5039e2fce3a96046 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Wed, 3 Jun 2015 11:05:26 +0200 Subject: [PATCH] disable issue actions form during request --- .../issues/templates/issues-issue-filter.hbs | 8 +- .../main/js/components/issue/issue-view.js | 10 ++ .../js/components/issue/templates/issue.hbs | 117 +++++++++--------- .../issue/views/comment-form-view.js | 2 + .../issue/views/transitions-form-view.js | 1 + .../src/main/less/components/issues.less | 19 +-- .../sonar-web/src/main/less/init/forms.less | 28 +++++ 7 files changed, 111 insertions(+), 74 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter.hbs b/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter.hbs index 875bc3bc4a5..f7f1bd1b215 100644 --- a/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter.hbs +++ b/server/sonar-web/src/main/js/apps/issues/templates/issues-issue-filter.hbs @@ -1,5 +1,5 @@ -
- +
  • +
  • + + diff --git a/server/sonar-web/src/main/js/components/issue/issue-view.js b/server/sonar-web/src/main/js/components/issue/issue-view.js index 98d095d221d..1b166bb87df 100644 --- a/server/sonar-web/src/main/js/components/issue/issue-view.js +++ b/server/sonar-web/src/main/js/components/issue/issue-view.js @@ -56,6 +56,14 @@ define([ this.$el.attr('data-key', this.model.get('key')); }, + disableControls: function () { + this.$(':input').prop('disabled', true); + }, + + enableControls: function () { + this.$(':input').prop('disabled', false); + }, + resetIssue: function (options) { var that = this; var key = this.model.get('key'), @@ -132,6 +140,7 @@ define([ var commentKey = $(e.target).closest('[data-comment-key]').data('comment-key'), confirmMsg = $(e.target).data('confirm-msg'); if (confirm(confirmMsg)) { + this.disableControls(); return $.ajax({ type: 'POST', url: baseUrl + '/api/issues/delete_comment?key=' + commentKey @@ -218,6 +227,7 @@ define([ action: function (action) { var that = this; + this.disableControls(); return $.post(baseUrl + '/api/issues/do_action', { issue: this.model.id, actionKey: action diff --git a/server/sonar-web/src/main/js/components/issue/templates/issue.hbs b/server/sonar-web/src/main/js/components/issue/templates/issue.hbs index f5a2d5e2fda..ba8e21bcc44 100644 --- a/server/sonar-web/src/main/js/components/issue/templates/issue.hbs +++ b/server/sonar-web/src/main/js/components/issue/templates/issue.hbs @@ -3,27 +3,29 @@
    -
    {{message}}
    +
    + {{message}}  +
    -
    - + + {{#if line}} -
    +
  • L{{line}} -
  • + {{/if}} -
    - -
    -
    +
  • + +
  • +
    @@ -31,38 +33,38 @@
    -
    -
    +
    + -
    +
  • {{#notEmpty transitions}} - + {{else}} {{statusHelper status resolution}} {{/notEmpty}} -
  • + -
    +
  • {{#inArray actions "assign"}} - + {{else}} {{#if assignee}} {{#ifShowAvatars}} @@ -71,64 +73,66 @@ {{/if}} {{#if assignee}}{{default assigneeName assignee}}{{else}}{{t 'unassigned'}}{{/if}} {{/inArray}} -
  • - - {{#inArray actions "assign_to_me"}} - - {{/inArray}} + -
    +
  • {{#inArray actions "plan"}} - + {{else}} {{#if actionPlan}}{{default actionPlanName actionPlan}}{{else}}{{t 'issue.unplanned'}}{{/if}} {{/inArray}} -
  • + {{#if debt}} -
    +
  • {{tp 'issue.x_debt' debt}} -
  • + {{/if}} {{#inArray actions "comment"}} - +
  • + +
  • {{/inArray}} {{#ifHasExtraActions actions}} - + + {{/ifHasExtraActions}} -
    + + + {{#inArray actions "assign_to_me"}} + + {{/inArray}}
    -
    - {{#inArray actions "set_tags"}} - +
    + {{/inArray}} + +
    @@ -138,15 +142,16 @@ {{#each comments}}
    - {{#ifShowAvatars}}{{avatarHelper email 16}}{{else}}{{/ifShowAvatars}} {{userName}} + {{#ifShowAvatars}}{{avatarHelper email 16}}{{else}} + {{/ifShowAvatars}} {{userName}}
    {{{show html htmlText}}}
    ({{fromNow createdAt}})
    {{#if updatable}} - - + + {{/if}}
    diff --git a/server/sonar-web/src/main/js/components/issue/views/comment-form-view.js b/server/sonar-web/src/main/js/components/issue/views/comment-form-view.js index 8596d99223a..10e9c713e09 100644 --- a/server/sonar-web/src/main/js/components/issue/views/comment-form-view.js +++ b/server/sonar-web/src/main/js/components/issue/views/comment-form-view.js @@ -70,11 +70,13 @@ define([ data.issue = this.options.issue.id; } this.disableForm(); + this.options.detailView.disableControls(); return $.post(url, data) .done(function () { that.options.detailView.updateAfterAction(true); }).fail(function () { that.enableForm(); + that.options.detailView.enableControls(); }); } }); diff --git a/server/sonar-web/src/main/js/components/issue/views/transitions-form-view.js b/server/sonar-web/src/main/js/components/issue/views/transitions-form-view.js index 6558537e225..9d56b101591 100644 --- a/server/sonar-web/src/main/js/components/issue/views/transitions-form-view.js +++ b/server/sonar-web/src/main/js/components/issue/views/transitions-form-view.js @@ -20,6 +20,7 @@ define([ submit: function (transition) { var that = this; + this.options.view.disableControls(); return $.ajax({ type: 'POST', url: baseUrl + '/api/issues/do_transition', diff --git a/server/sonar-web/src/main/less/components/issues.less b/server/sonar-web/src/main/less/components/issues.less index 2aa096c1ba9..ed6db933ad5 100644 --- a/server/sonar-web/src/main/less/components/issues.less +++ b/server/sonar-web/src/main/less/components/issues.less @@ -91,8 +91,12 @@ .issue-rule { padding: 0 3px; - background-color: fade(@blue, 30%); + background: fade(@blue, 30%); opacity: 0.5; + + &:hover { + background: fade(@blue, 30%); + } } .issue-component { @@ -121,15 +125,10 @@ } .issue-meta-list { - .clearfix; padding-left: @leftPadding; - font-size: 0; } .issue-meta { - display: inline-block; - vertical-align: top; - margin-right: 10px; line-height: 1.5; font-size: @smallFontSize; } @@ -157,14 +156,6 @@ .text-ellipsis; } -.issue-action { - border-bottom: none; -} - -.issue-action + .issue-action { - margin-left: 4px; -} - .issue-changelog { max-width: 540px; max-height: 320px; diff --git a/server/sonar-web/src/main/less/init/forms.less b/server/sonar-web/src/main/less/init/forms.less index 656491eb0b6..81e7bb940e5 100644 --- a/server/sonar-web/src/main/less/init/forms.less +++ b/server/sonar-web/src/main/less/init/forms.less @@ -139,6 +139,34 @@ input[type=button] { color: @baseFontColor; } +.button-link { + display: inline; + height: auto; + margin: 0; + padding: 0; + border: none; + background: transparent; + color: @darkBlue; + font-weight: 400; + font-size: inherit; + line-height: inherit; + .trans; + + &:hover, &:active, &:focus { + background: transparent; + color: @blue; + } + + &[disabled], + &[disabled]:hover, + &[disabled]:active, + &[disabled]:focus { + color: @secondFontColor; + background: transparent; + cursor: default; + } +} + .button-group { display: inline-block; vertical-align: middle; -- 2.39.5