Index: app/views/projects/index.rhtml =================================================================== --- app/views/projects/index.rhtml (revision 1524) +++ app/views/projects/index.rhtml (working copy) @@ -1,31 +1,45 @@
- <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add') + ' |' if User.current.admin? %> <%= link_to l(:label_issue_view_all), { :controller => 'issues' } %> | <%= link_to l(:label_overall_activity), { :controller => 'projects', :action => 'activity' }%>

<%=l(:label_project_plural)%>

+ + <% @project_tree.keys.sort.each do |project| %> -

<%= link_to h(project.name), {:action => 'show', :id => project}, :class => (User.current.member_of?(project) ? "icon icon-fav" : "") %>

-<%= textilizable(project.short_description, :project => project) %> - + + <% if @project_tree[project].any? %> -

<%= l(:label_subproject_plural) %>: - <%= @project_tree[project].sort.collect {|subproject| - link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "icon icon-fav" : ""))}.join(', ') %>

+ + + <% index = 0 %> + <% @project_tree[project].sort.each do |subproject| %> + + + <% index = index + 1 %> + <% if index.modulo(3) == 0 %> + + <% end %> + <% end %> <% end %> + <% end %> +

> + +

<%= link_to(h(project.name), {:action => 'show', :id => project}) %>

+
+<%= textilizable(project.description, :project => project) %> +

<%= l(:label_subproject_plural) %>: > + <%= link_to(h(subproject.name), {:action => 'show', :id => subproject}) %> +

+ <% if User.current.logged? %> -

+

<%= l(:label_my_projects) %> -

+
<% end %> -

-<%= l(:label_export_to) %> -<%= link_to 'Atom', {:format => 'atom', :key => User.current.rss_key}, :class => 'feed' %> -

<% html_title(l(:label_project_plural)) -%> Index: app/views/projects/show.rhtml =================================================================== --- app/views/projects/show.rhtml (revision 1524) +++ app/views/projects/show.rhtml (working copy) @@ -1,29 +1,53 @@ -

<%=l(:label_overview)%>

- +

<%=l(:label_overview)%>

+
- <%= textilizable @project.description %> -
+ +
+ <% if @news.any? && authorize_for('news', 'index') %> +
+

<%=l(:label_news_latest)%>

+ <%= render :partial => 'news/news', :collection => @news %> +

<%= link_to l(:label_news_view_all), :controller => 'news', :action => 'index', :project_id => @project %>

+
+ <% end %> + <% if User.current.allowed_to?(:view_issues, @project) %> -
+

<%=l(:label_issue_tracking)%>

    - <% for tracker in @trackers %> -
  • <%= link_to tracker.name, :controller => 'issues', :action => 'index', :project_id => @project, - :set_filter => 1, + <% for tracker in @trackers %> +
  • <%= link_to tracker.name, :controller => 'issues', :action => 'index', :project_id => @project, + :set_filter => 1, "tracker_id" => tracker.id %>: <%= @open_issues_by_tracker[tracker] || 0 %> <%= lwr(:label_open_issues, @open_issues_by_tracker[tracker] || 0) %> <%= l(:label_on) %> <%= @total_issues_by_tracker[tracker] || 0 %>
  • @@ -32,27 +56,18 @@

    <%= link_to l(:label_issue_view_all), :controller => 'issues', :action => 'index', :project_id => @project, :set_filter => 1 %>

<% end %> -
-
<% if @members_by_role.any? %> -
-

<%=l(:label_member_plural)%>

-

<% @members_by_role.keys.sort.each do |role| %> - <%= role.name %>: - <%= @members_by_role[role].collect(&:user).sort.collect{|u| link_to_user u}.join(", ") %> -
- <% end %>

-
- <% end %> - - <% if @news.any? && authorize_for('news', 'index') %> -
-

<%=l(:label_news_latest)%>

- <%= render :partial => 'news/news', :collection => @news %> -

<%= link_to l(:label_news_view_all), :controller => 'news', :action => 'index', :project_id => @project %>

-
- <% end %> +
+

<%=l(:label_member_plural)%>

+

<% @members_by_role.keys.sort.each do |role| %> + <%= role.name %>: + <%= @members_by_role[role].collect(&:user).sort.collect{|u| link_to_user u}.join(", ") %> +
+ <% end %>

+
+ <% end %> +
<% content_for :sidebar do %> @@ -64,7 +79,7 @@

<%= l(:label_planning) %>

<%= planning_links.join(' | ') %>

<% end %> - + <% if @total_hours && User.current.allowed_to?(:view_time_entries, @project) %>

<%= l(:label_spent_time) %>

<%= lwr(:label_f_hour, @total_hours) %>

Index: public/stylesheets/application.css =================================================================== --- public/stylesheets/application.css (revision 1524) +++ public/stylesheets/application.css (working copy) @@ -57,7 +57,7 @@ #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; height:600px; min-height: 600px;} * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;} -html>body #content { height: auto; min-height: 600px; overflow: auto; } +html>body #content { height: auto; min-height: 600px; overflow: auto; } #main.nosidebar #sidebar{ display: none; } #main.nosidebar #content{ width: auto; border-right: 0; } @@ -78,16 +78,17 @@ a.issue.closed, .issue.closed a { text-decoration: line-through; } /***** Tables *****/ -table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; } +table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px;} table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; } table.list td { vertical-align: top; } table.list td.id { width: 2%; text-align: center;} table.list td.checkbox { width: 15px; padding: 0px;} +table.list.issues { margin-top: 10px; } +table.projects { margin-top: 10px; } -table.list.issues { margin-top: 10px; } tr.issue { text-align: center; white-space: nowrap; } -tr.issue td.subject, tr.issue td.category { white-space: normal; } -tr.issue td.subject { text-align: left; } +tr.issue td.subject, tr.issue td.category, tr.issue td.last_comment { white-space: normal; } +tr.issue td.subject, tr.issue td.last_comment { text-align: left; width: 25%} tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;} tr.entry { border: 1px solid #f8f8f8; } @@ -159,7 +160,7 @@ li p {margin-top: 0;} div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;} p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;} -p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; } +p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; } fieldset#filters { padding: 0.7em; } fieldset#filters p { margin: 1.2em 0 0.8em 2px; } @@ -236,7 +237,7 @@ float: left; text-align: right; margin-left: -180px; /*width of left column*/ -width: 175px; /*width of labels. Should be smaller than left column to create some right +width: 175px; /*width of labels. Should be smaller than left column to create some right margin*/ } @@ -272,31 +273,31 @@ #errorExplanation, div.flash, .nodata, .warning { padding: 4px 4px 4px 30px; margin-bottom: 12px; - font-size: 1.1em; - border: 2px solid; + font-size: 1.1em; + border: 2px solid; } div.flash {margin-top: 8px;} div.flash.error, #errorExplanation { background: url(../images/false.png) 8px 5px no-repeat; - background-color: #ffe3e3; - border-color: #dd0000; - color: #550000; + background-color: #ffe3e3; + border-color: #dd0000; + color: #550000; } div.flash.notice { background: url(../images/true.png) 8px 5px no-repeat; - background-color: #dfffdf; - border-color: #9fcf9f; - color: #005f00; + background-color: #dfffdf; + border-color: #9fcf9f; + color: #005f00; } .nodata, .warning { text-align: center; - background-color: #FFEBC1; - border-color: #FDBF3B; - color: #A6750C; + background-color: #FFEBC1; + border-color: #FDBF3B; + color: #A6750C; } #errorExplanation ul { font-size: 0.9em;} @@ -528,7 +529,7 @@ } .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; } -.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } +.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; } .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; } @@ -549,6 +550,15 @@ vertical-align: middle; } +.icon0 { +background-position: 0% 30%; +background-repeat: no-repeat; +padding-left: 0px; +padding-right: 0px; +padding-top: 0px; +padding-bottom: 0px; +} + .icon-add { background-image: url(../images/add.png); } .icon-edit { background-image: url(../images/edit.png); } .icon-copy { background-image: url(../images/copy.png); }