diff --git a/tracks/app/controllers/projects_controller.rb b/tracks/app/controllers/projects_controller.rb index 3a1372df..906d4bf1 100644 --- a/tracks/app/controllers/projects_controller.rb +++ b/tracks/app/controllers/projects_controller.rb @@ -48,6 +48,7 @@ class ProjectsController < ApplicationController end @saved = @project.save @project_not_done_counts = { @project.id => 0 } + @active_projects_count = @user.projects.count(:conditions => "state = 'active'") respond_to do |wants| wants.js wants.xml do @@ -102,6 +103,9 @@ class ProjectsController < ApplicationController def destroy @project.destroy + @active_projects_count = @user.projects.count(:conditions => "state = 'active'") + @hidden_projects_count = @user.projects.count(:conditions => "state = 'hidden'") + @completed_projects_count = @user.projects.count(:conditions => "state = 'completed'") respond_to do |format| format.js format.xml { render :text => "Deleted project #{@project.name}" } diff --git a/tracks/app/helpers/projects_helper.rb b/tracks/app/helpers/projects_helper.rb index 3c844f04..55360243 100644 --- a/tracks/app/helpers/projects_helper.rb +++ b/tracks/app/helpers/projects_helper.rb @@ -8,6 +8,14 @@ module ProjectsHelper :url => order_projects_path } end + + def set_element_visible(id,test) + if (test) + page.show id + else + page.hide id + end + end def project_next_prev html = '' diff --git a/tracks/app/views/projects/_project_state_group.rhtml b/tracks/app/views/projects/_project_state_group.rhtml index e6d6b47f..6ec2cc18 100644 --- a/tracks/app/views/projects/_project_state_group.rhtml +++ b/tracks/app/views/projects/_project_state_group.rhtml @@ -1,5 +1,5 @@ -
-

><%= project_state_group.length %><%= state.titlecase %> Projects

+
> +

<%= project_state_group.length %><%= state.titlecase %> Projects

<%= render :partial => 'project_listing', :collection => project_state_group %>
diff --git a/tracks/app/views/projects/create.rjs b/tracks/app/views/projects/create.rjs index eabeb9fd..3d7050a2 100644 --- a/tracks/app/views/projects/create.rjs +++ b/tracks/app/views/projects/create.rjs @@ -1,4 +1,7 @@ if @saved + page.hide 'projects-empty-nd' + page.show 'list-active-projects-container' + page.replace_html "active-projects-count", @active_projects_count page.insert_html :bottom, "list-active-projects", :partial => 'project_listing', :locals => { :project_listing => @project } page.sortable "list-active-projects", get_listing_sortable_options('list-active-projects') page.call "Form.reset", "project-form" @@ -6,4 +9,5 @@ if @saved else page.show 'status' page.replace_html 'status', "#{error_messages_for('project')}" -end \ No newline at end of file +end +page.hide "busy" \ No newline at end of file diff --git a/tracks/app/views/projects/destroy.rjs b/tracks/app/views/projects/destroy.rjs index ccf0d531..c7cf9838 100644 --- a/tracks/app/views/projects/destroy.rjs +++ b/tracks/app/views/projects/destroy.rjs @@ -1,5 +1,12 @@ page.visual_effect :fade, dom_id(@project, "container"), :duration => 0.5 page.delay(0.5) do page[dom_id(@project, "container")].remove + page.replace_html "active-projects-count", @active_projects_count + page.replace_html "hidden-projects-count", @hidden_projects_count + page.replace_html "completed-projects-count", @completed_projects_count + page.set_element_visible ("list-hidden-projects-container", @hidden_projects_count > 0) + page.set_element_visible ("list-active-projects-container", @active_projects_count > 0) + page.set_element_visible ("list-completed-projects-container", @completed_projects_count > 0) end page.notify :notice, "Deleted project '#{@project.name}'", 5.0 +page.hide "busy" diff --git a/tracks/app/views/projects/index.rhtml b/tracks/app/views/projects/index.rhtml index 71e15689..ecdbd95c 100644 --- a/tracks/app/views/projects/index.rhtml +++ b/tracks/app/views/projects/index.rhtml @@ -1,4 +1,9 @@ +<% @no_projects = @active_projects.empty? && @hidden_projects.empty? && @completed_projects.empty? %> +
+
+

Currently there are no projects

+
<%= render :partial => 'project_state_group', :object => @active_projects, :locals => { :state => 'active'} %> <%= render :partial => 'project_state_group', :object => @hidden_projects, :locals => { :state => 'hidden'} %> <%= render :partial => 'project_state_group', :object => @completed_projects, :locals => { :state => 'completed'} %> diff --git a/tracks/app/views/projects/update.rjs b/tracks/app/views/projects/update.rjs index b4cd17b9..81dd4d49 100644 --- a/tracks/app/views/projects/update.rjs +++ b/tracks/app/views/projects/update.rjs @@ -10,3 +10,9 @@ page.sortable "list-#{@project.state}-projects", get_listing_sortable_options("l page.replace_html "active-projects-count", @active_projects_count page.replace_html "hidden-projects-count", @hidden_projects_count page.replace_html "completed-projects-count", @completed_projects_count + +page.set_element_visible ("list-hidden-projects-container", @hidden_projects_count > 0) +page.set_element_visible ("list-active-projects-container", @active_projects_count > 0) +page.set_element_visible ("list-completed-projects-container", @completed_projects_count > 0) + +page.hide "busy" \ No newline at end of file