diff options
author | Staicu Ionut <github@iamntz.com> | 2012-07-10 07:33:04 +0300 |
---|---|---|
committer | Staicu Ionut <github@iamntz.com> | 2012-07-10 07:33:04 +0300 |
commit | ba7b85d0d986e7c511aa91bde97b3a992bb5d436 (patch) | |
tree | 135989b8950030545f5157e2228cd93e2064872f | |
parent | be1b40802dcbfd59ecdd3c7439fc48d6cec97e2b (diff) | |
download | gitlab-ce-ba7b85d0d986e7c511aa91bde97b3a992bb5d436.tar.gz |
issues counter are now live updated on creation/deleteion/reopening
buttons on forms are disabled on submit (re-enabled after the request is complete)
-rw-r--r-- | app/assets/javascripts/application.js | 16 | ||||
-rw-r--r-- | app/assets/javascripts/issues.js | 21 | ||||
-rw-r--r-- | app/assets/stylesheets/common.scss | 2 | ||||
-rw-r--r-- | app/views/issues/_issues.html.haml | 4 | ||||
-rw-r--r-- | app/views/issues/_show.html.haml | 8 | ||||
-rw-r--r-- | app/views/issues/index.html.haml | 4 | ||||
-rw-r--r-- | app/views/layouts/_project_menu.html.haml | 4 |
7 files changed, 48 insertions, 11 deletions
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 42290f8e154..683d8fa80b4 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -20,10 +20,26 @@ //= require_tree . $(document).ready(function(){ + $(".one_click_select").live("click", function(){ $(this).select(); }); + + $('body').on('ajax:complete, ajax:beforeSend, submit', 'form', function(e){ + var buttons = $('[type="submit"]', this); + switch( e.type ){ + case 'ajax:beforeSend': + case 'submit': + buttons.attr('disabled', 'disabled'); + break; + case ' ajax:complete': + default: + buttons.removeAttr('disabled'); + break; + } + }) + $(".account-box").mouseenter(showMenu); $(".account-box").mouseleave(resetMenu); diff --git a/app/assets/javascripts/issues.js b/app/assets/javascripts/issues.js index 49936e3f0ee..0acf9ec8aef 100644 --- a/app/assets/javascripts/issues.js +++ b/app/assets/javascripts/issues.js @@ -73,4 +73,25 @@ function issuesPage(){ $("#milestone_id, #assignee_id, #label_name").on("change", function(){ $(this).closest("form").submit(); }); + + $('body').on('ajax:success', '.close_issue, .reopen_issue, #new_issue', function(){ + var t = $(this), + totalIssues, + reopen = t.hasClass('reopen_issue'), + newIssue = false; + if( this.id == 'new_issue' ){ + newIssue = true; + } + $('.issue_counter, #new_issue').each(function(){ + var issue = $(this); + totalIssues = parseInt( $(this).html(), 10 ); + + if( newIssue || ( reopen && issue.closest('.main_menu').length ) ){ + $(this).html( totalIssues+1 ); + }else { + $(this).html( totalIssues-1 ); + } + }); + + }); } diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 19092073c17..32dbf830b0d 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -695,4 +695,4 @@ li.note { border:1px solid #B8B; } } -} +}
\ No newline at end of file diff --git a/app/views/issues/_issues.html.haml b/app/views/issues/_issues.html.haml index a20df176afc..17141cc453c 100644 --- a/app/views/issues/_issues.html.haml +++ b/app/views/issues/_issues.html.haml @@ -6,7 +6,9 @@ .row .span7= paginate @issues, :remote => true, :theme => "gitlab" .span3.right - %span.cgray.right #{@issues.total_count} issues for this filter + %span.cgray.right + %span.issue_counter #{@issues.total_count} + issues for this filter - else %li %h4.nothing_here_message Nothing to show here diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml index 03524901c99..e12c3c1a99c 100644 --- a/app/views/issues/_show.html.haml +++ b/app/views/issues/_show.html.haml @@ -12,9 +12,9 @@ = issue.notes.count - if can? current_user, :modify_issue, issue - if issue.closed - = link_to 'Reopen', project_issue_path(issue.project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "btn small grouped", :remote => true + = link_to 'Reopen', project_issue_path(issue.project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "btn small grouped reopen_issue", :remote => true - else - = link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "success btn small grouped", :remote => true + = link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "success btn small grouped close_issue", :remote => true = link_to edit_project_issue_path(issue.project, issue), :class => "btn small edit-issue-link", :remote => true do %i.icon-edit Edit @@ -35,6 +35,4 @@ - if issue.upvotes > 0 - %span.badge.badge-success= "+#{issue.upvotes}" - - + %span.badge.badge-success= "+#{issue.upvotes}"
\ No newline at end of file diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml index 7328fa88812..fb8b9f8ee8e 100644 --- a/app/views/issues/index.html.haml +++ b/app/views/issues/index.html.haml @@ -2,7 +2,7 @@ .issues_content %h3.page_title Issues - %small (#{@issues.total_count}) + %small (<span class=issue_counter>#{@issues.total_count}</span>) .right .span5 - if can? current_user, :write_issue, @project @@ -45,4 +45,4 @@ :javascript $(function(){ issuesPage(); - }) + })
\ No newline at end of file diff --git a/app/views/layouts/_project_menu.html.haml b/app/views/layouts/_project_menu.html.haml index 62279bb058d..3f58fc5a664 100644 --- a/app/views/layouts/_project_menu.html.haml +++ b/app/views/layouts/_project_menu.html.haml @@ -17,14 +17,14 @@ %li{:class => tab_class(:issues)} = link_to project_issues_filter_path(@project) do Issues - %span.count= @project.issues.opened.count + %span.count.issue_counter= @project.issues.opened.count - if @project.repo_exists? - if @project.merge_requests_enabled %li{:class => tab_class(:merge_requests)} = link_to project_merge_requests_path(@project) do Merge Requests - %span.count= @project.merge_requests.opened.count + %span.count.merge_counter= @project.merge_requests.opened.count - if @project.wall_enabled %li{:class => tab_class(:wall)} |