summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStaicu Ionut <github@iamntz.com>2012-07-10 07:33:04 +0300
committerStaicu Ionut <github@iamntz.com>2012-07-10 07:33:04 +0300
commitba7b85d0d986e7c511aa91bde97b3a992bb5d436 (patch)
tree135989b8950030545f5157e2228cd93e2064872f
parentbe1b40802dcbfd59ecdd3c7439fc48d6cec97e2b (diff)
downloadgitlab-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.js16
-rw-r--r--app/assets/javascripts/issues.js21
-rw-r--r--app/assets/stylesheets/common.scss2
-rw-r--r--app/views/issues/_issues.html.haml4
-rw-r--r--app/views/issues/_show.html.haml8
-rw-r--r--app/views/issues/index.html.haml4
-rw-r--r--app/views/layouts/_project_menu.html.haml4
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 @@
&nbsp;
- 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)}