https://svn.lrde.epita.fr/svn/ranch/trunk
Index: ChangeLog
from Nicolas Despr�s <nicolas.despres(a)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", "#{(a)project.name}" %>
<p>
@@ -10,3 +14,5 @@
</tr>
</table>
</p>
+
+<% end %>
\ No newline at end of file