diff options
author | Johan Sørensen <johan@johansorensen.com> | 2010-01-12 11:01:36 +0100 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2010-01-12 11:01:36 +0100 |
commit | 624e4220fba6510d1f219b0ce80b7fe672d37958 (patch) | |
tree | 0612e27e5523c0c5edf942675f15714bf866e3b4 | |
parent | a5c14a41bba328960f3a9338ce79b25185ea4a09 (diff) | |
download | gitorious-mainline-outdated-624e4220fba6510d1f219b0ce80b7fe672d37958.zip gitorious-mainline-outdated-624e4220fba6510d1f219b0ce80b7fe672d37958.tar.gz gitorious-mainline-outdated-624e4220fba6510d1f219b0ce80b7fe672d37958.tar.bz2 |
Add a dashboard breadcrumb
-rw-r--r-- | app/controllers/site_controller.rb | 25 | ||||
-rw-r--r-- | app/helpers/breadcrumbs_helper.rb | 14 | ||||
-rw-r--r-- | app/views/site/dashboard.html.erb | 1 | ||||
-rw-r--r-- | lib/breadcrumb.rb | 25 | ||||
-rw-r--r-- | public/stylesheets/base.css | 1 | ||||
-rw-r--r-- | test/functional/site_controller_test.rb | 6 |
6 files changed, 50 insertions, 22 deletions
diff --git a/app/controllers/site_controller.rb b/app/controllers/site_controller.rb index b6e2943..3436b59 100644 --- a/app/controllers/site_controller.rb +++ b/app/controllers/site_controller.rb @@ -25,7 +25,7 @@ class SiteController < ApplicationController before_filter :login_required, :only => [:dashboard] renders_in_site_specific_context :except => [:about, :faq, :contact] renders_in_global_context :only => [:about, :faq, :contact] - + def index if !current_site.subdomain.blank? render_site_index and return @@ -38,22 +38,22 @@ class SiteController < ApplicationController render_public_timeline end - + def dashboard redirect_to current_user end - + def about end - - def faq + + def faq end - - def contact + + def contact end - + protected - + # Render a Site-specific index template def render_site_index @projects = current_site.projects.find(:all, :order => "created_at asc") @@ -82,6 +82,7 @@ class SiteController < ApplicationController @events = @user.paginated_events_in_watchlist(:page => params[:page]) @messages = @user.messages_in_inbox(3) if @user == current_user @favorites = @user.watched_objects + @root = Breadcrumb::Dashboard.new(current_user) render :template => "site/dashboard" end @@ -91,10 +92,10 @@ class SiteController < ApplicationController @teams = Group.most_active @users = User.most_active @latest_events = Event.latest(4) - + render :layout => "second_generation/application", :inline => "" end - + # Render the global index template def render_global_index if logged_in? @@ -105,5 +106,5 @@ class SiteController < ApplicationController render_public_timeline end end - + end diff --git a/app/helpers/breadcrumbs_helper.rb b/app/helpers/breadcrumbs_helper.rb index 1ca864f..e1a1fa9 100644 --- a/app/helpers/breadcrumbs_helper.rb +++ b/app/helpers/breadcrumbs_helper.rb @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. #++ -module BreadcrumbsHelper +module BreadcrumbsHelper def render_breadcrumb_starting_from(root) result = [] html = '' @@ -35,14 +35,14 @@ module BreadcrumbsHelper end html end - + # Renders breadcrumbs starting from +root+ def breadcrumbs_from(root) content_for(:breadcrumbs) do render_breadcrumb_starting_from(root) end end - + def breadcrumb_link_to(an_object) url = case an_object when Repository @@ -54,7 +54,7 @@ module BreadcrumbsHelper when User user_path(an_object) when Breadcrumb::Branch - repo_owner_path(@repository, :project_repository_commits_in_ref_path, + repo_owner_path(@repository, :project_repository_commits_in_ref_path, @project, @repository, ensplat_path(an_object.title)) when Breadcrumb::Folder tree_path(@ref, an_object.paths) @@ -72,7 +72,7 @@ module BreadcrumbsHelper edit_group_membership_path(@group, @membership) when Breadcrumb::MergeRequests [@owner, @repository, :merge_requests] - when MergeRequest + when MergeRequest [@owner, @repository, @merge_request] when Breadcrumb::Committerships [@owner, @repository, :committerships] @@ -82,7 +82,7 @@ module BreadcrumbsHelper messages_path when Breadcrumb::ReceivedMessages messages_path - when Breadcrumb::SentMessages + when Breadcrumb::SentMessages sent_messages_path when Breadcrumb::Aliases user_aliases_path @@ -90,6 +90,8 @@ module BreadcrumbsHelper user_keys_path when Message an_object.new_record? ? new_message_path : message_path(an_object) + when Breadcrumb::Dashboard + root_path else "" # Current path end diff --git a/app/views/site/dashboard.html.erb b/app/views/site/dashboard.html.erb index 193c835..fd89873 100644 --- a/app/views/site/dashboard.html.erb +++ b/app/views/site/dashboard.html.erb @@ -18,6 +18,7 @@ %> <% @page_title = "Your dashboard" -%> +<%= breadcrumbs_from(@root) -%> <div class="with_divider"> <div id="left"> diff --git a/lib/breadcrumb.rb b/lib/breadcrumb.rb index f7e1c60..7589363 100644 --- a/lib/breadcrumb.rb +++ b/lib/breadcrumb.rb @@ -293,7 +293,7 @@ module Breadcrumb end def breadcrumb_parent - @user + Dashboard.new(@user) end def title @@ -311,7 +311,7 @@ module Breadcrumb end def breadcrumb_parent - @user + Dashboard.new(@user) end def title @@ -329,7 +329,7 @@ module Breadcrumb end def breadcrumb_parent - @user + Dashboard.new(@user) end def title @@ -365,7 +365,7 @@ module Breadcrumb end def breadcrumb_parent - @user + Dashboard.new(@user) end def title @@ -490,4 +490,21 @@ module Breadcrumb end end + class Dashboard + def initialize(user) + @user = user + end + + def breadcrumb_parent + @user + end + + def title + "Dashboard" + end + + def breadcrumb_css_class + "dashboard" + end + end end diff --git a/public/stylesheets/base.css b/public/stylesheets/base.css index 496a2c5..fb9b35b 100644 --- a/public/stylesheets/base.css +++ b/public/stylesheets/base.css @@ -590,6 +590,7 @@ li.sent_emails > a { background-image: url("../images/silk/email_go.png") !impor li.received_emails > a { background-image: url("../images/silk/email_open.png") !important; } li.all_emails > a { background-image: url("../images/silk/folder.png") !important; } li.favorite > a { background-image: url("../images/silk/star.png"); } +li.dashboard > a { background-image: url("../images/silk/shield.png") !important; } /* Icons used both for events and actions/breadcrums */ li.event_instance.create_repository, li.create_repository > a { background-image: url("../images/silk/database_add.png") !important; } diff --git a/test/functional/site_controller_test.rb b/test/functional/site_controller_test.rb index 36e2693..592b7a4 100644 --- a/test/functional/site_controller_test.rb +++ b/test/functional/site_controller_test.rb @@ -62,6 +62,12 @@ class SiteControllerTest < ActionController::TestCase assert_response :success assert_template "site/dashboard" end + + should "render the dashboard breadcrumb" do + login_as :johan + get :index + assert_instance_of Breadcrumb::Dashboard, assigns(:root) + end end context "Anonymous users" do |