[ranch] 46: Start to change the main layout.

https://svn.lrde.epita.fr/svn/ranch/trunk Index: ChangeLog from Nicolas Despr�s <nicolas.despres@gmail.com> Start to change the main layout. * web/ranch/test/functional/projects_controller_test.rb: Test the index request. * web/ranch/app/controllers/ranch_controller.rb, * web/ranch/app/controllers/projects_controller.rb: Change the layout. * web/ranch/app/views/layouts/_menubar.rhtml: Add the projects item. * web/ranch/app/views/layouts/projects.rhtml: New. Layout for the projects controller. * web/ranch/app/views/projects/_list.rhtml: New. Left margin of project layout that list all the project. * web/ranch/app/views/projects/show.rhtml: Test whether there is a project to show. app/controllers/projects_controller.rb | 14 ++++++++++++-- app/controllers/ranch_controller.rb | 4 +--- app/views/layouts/_menubar.rhtml | 5 ++--- app/views/layouts/projects.rhtml | 28 ++++++++++++++++++++++++++++ app/views/projects/_list.rhtml | 16 ++++++++++++++++ app/views/projects/show.rhtml | 6 ++++++ test/functional/projects_controller_test.rb | 10 ++++++++++ 7 files changed, 75 insertions(+), 8 deletions(-) Index: web/ranch/test/functional/projects_controller_test.rb --- web/ranch/test/functional/projects_controller_test.rb (revision 45) +++ web/ranch/test/functional/projects_controller_test.rb (working copy) @@ -13,11 +13,21 @@ @response = ActionController::TestResponse.new end + def test_index + get :index + assert_response :redirect + assert_redirected_to(:controller => 'projects', + :action => 'show', + :project_id => 2) + assert_not_nil assigns(:projects) + end + def test_show get :show, { :project_id => 1 } assert_response :success assert_template 'show' assert_not_nil assigns(:project) + assert_not_nil assigns(:projects) end end Index: web/ranch/app/controllers/ranch_controller.rb --- web/ranch/app/controllers/ranch_controller.rb (revision 45) +++ web/ranch/app/controllers/ranch_controller.rb (working copy) @@ -1,8 +1,6 @@ class RanchController < ApplicationController - layout 'ranch_benches_list' - - before_filter LoadProjectsFilter + layout 'ranch' def index end Index: web/ranch/app/controllers/projects_controller.rb --- web/ranch/app/controllers/projects_controller.rb (revision 45) +++ web/ranch/app/controllers/projects_controller.rb (working copy) @@ -1,11 +1,21 @@ class ProjectsController < ApplicationController - layout 'ranch_benches_list' + layout 'projects' - before_filter LoadProjectsFilter + before_filter :list + + def index + redirect_to :action => 'show', :project_id => @projects.first.id + end def show @project = Project.find_by_id params[:project_id] end + protected + + def list + @projects = Project.find :all, :select => 'id, name', :order => 'name' + end + end Index: web/ranch/app/views/layouts/_menubar.rhtml --- web/ranch/app/views/layouts/_menubar.rhtml (revision 45) +++ web/ranch/app/views/layouts/_menubar.rhtml (working copy) @@ -3,9 +3,8 @@ <div style="text-align: center;"> <table class=menubar align=center valign=top> <tr> - <td> - <%= link_to "Home", :controller => "ranch", :action => "index" %> - </td> + <td><%= link_to "Home", :controller => "ranch" %></td> + <td><%= link_to "Projects", :controller => "projects" %></td> </tr> </table> <hr> Index: web/ranch/app/views/layouts/projects.rhtml --- web/ranch/app/views/layouts/projects.rhtml (revision 0) +++ web/ranch/app/views/layouts/projects.rhtml (revision 0) @@ -0,0 +1,28 @@ + <!-- -*- html -*- --> + +<html> + <%= render :partial => "layouts/head" %> + <body> + <%= render :partial => "layouts/top_banner" %> + <%= render :partial => "layouts/menubar" %> + + <p> + <table cellspacing=0 cellpadding=0 border=0 width='100%' height="80%" cols=2> + <tr> + <td class=left_margin valign=top width="15%"> + <%= render :partial => "projects/list" %> + </td> + <td class=content align=left valign=top width="80%"> + + <%= @content_for_layout %> + + </td> + </tr> + </table> + </p> + + <%= render :partial => "layouts/bottom_banner" %> + </body> +</html> + + Index: web/ranch/app/views/projects/_list.rhtml --- web/ranch/app/views/projects/_list.rhtml (revision 0) +++ web/ranch/app/views/projects/_list.rhtml (revision 0) @@ -0,0 +1,16 @@ + <!-- -*- html -*- --> +<table> + <% if @projects.nil? or @projects.empty? %> + No projects available. + <% else %> + <% for project in @projects %> + <tr> + <td> + <%= link_to project.name, :controller => "projects", + :action => "show", + :project_id => project.id %> + </td> + </tr> + <% end %> + <% end %> +</table> Index: web/ranch/app/views/projects/show.rhtml --- web/ranch/app/views/projects/show.rhtml (revision 45) +++ web/ranch/app/views/projects/show.rhtml (working copy) @@ -1,5 +1,9 @@ <!-- -*- html -*- --> +<% if @project.nil? %> + No project to show +<% else %> + <%= content_tag "h3", "#{@project.name}" %> <p> @@ -10,3 +14,5 @@ </tr> </table> </p> + +<% end %> \ No newline at end of file
participants (1)
-
Nicolas Despr�s