##// END OF EJS Templates
contextual links redesign...
Jean-Philippe Lang -
r90:236c735d08c0
parent child
Show More
1 NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
@@ -1,30 +1,32
1 <div class="contextual">
2 <%= link_to l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_project_plural)%></h2>
2 6
3 7 <table class="listTableContent">
4 8 <tr class="ListHead">
5 9 <%= sort_header_tag('name', :caption => l(:label_project)) %>
6 10 <th><%=l(:field_description)%></th>
7 11 <th><%=l(:field_is_public)%></th>
8 12 <th><%=l(:label_subproject_plural)%></th>
9 13 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
10 14 <th></th>
11 15 </tr>
12 16
13 17 <% for project in @projects %>
14 18 <tr class="<%= cycle("odd", "even") %>">
15 19 <td><%= link_to project.name, :controller => 'projects', :action => 'settings', :id => project %>
16 20 <td><%= project.description %>
17 21 <td align="center"><%= image_tag 'true' if project.is_public? %>
18 22 <td align="center"><%= project.projects_count %>
19 23 <td align="center"><%= format_date(project.created_on) %>
20 24 <td align="center">
21 25 <%= button_to l(:button_delete), { :controller => 'projects', :action => 'destroy', :id => project }, :class => "button-small" %>
22 26 </td>
23 27 </tr>
24 28 <% end %>
25 29 </table>
26 30
27 31 <p><%= pagination_links_full @project_pages %>
28 32 [ <%= @project_pages.current.first_item %> - <%= @project_pages.current.last_item %> / <%= @project_count %> ]</p>
No newline at end of file
29
30 <p><%= link_to ('&#187; ' + l(:label_project_new)), :controller => 'projects', :action => 'add' %></p> No newline at end of file
@@ -1,30 +1,31
1 <div class="contextual">
2 <%= link_to l(:label_auth_source_new), {:action => 'new'}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_auth_source_plural)%></h2>
2 6
3 7 <table class="listTableContent">
4 8 <tr class="ListHead">
5 9 <th><%=l(:field_name)%></th>
6 10 <th><%=l(:field_type)%></th>
7 11 <th><%=l(:field_host)%></th>
8 12 <th></th>
9 13 <th></th>
10 14 </tr>
11 15
12 16 <% for source in @auth_sources %>
13 17 <tr class="<%= cycle("odd", "even") %>">
14 18 <td><%= link_to source.name, :action => 'edit', :id => source%></td>
15 19 <td align="center"><%= source.auth_method_name %></td>
16 20 <td align="center"><%= source.host %></td>
17 21 <td align="center">
18 22 <%= link_to l(:button_test), :action => 'test_connection', :id => source %>
19 23 </td>
20 24 <td align="center">
21 25 <%= button_to l(:button_delete), { :action => 'destroy', :id => source }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
22 26 </td>
23 27 </tr>
24 28 <% end %>
25 29 </table>
26 30
27 31 <%= pagination_links_full @auth_source_pages %>
28 <br />
29 <%= link_to '&#187; ' + l(:label_auth_source_new), :action => 'new' %>
30
@@ -1,48 +1,36
1 <div class="contextual">
2 <%= link_to_if_authorized l(:button_edit), {:controller => 'documents', :action => 'edit', :id => @document}, :class => 'pic picEdit' %>
3 <%= link_to_if_authorized l(:button_delete), {:controller => 'documents', :action => 'destroy', :id => @document}, :confirm => l(:text_are_you_sure), :post => true, :class => 'pic picDelete' %>
4 </div>
5
1 6 <h2><%= @document.title %></h2>
2 7
3 8 <p><em><%= @document.category.name %><br />
4 9 <%= format_date @document.created_on %></em></p>
5 10 <%= textilizable @document.description %>
6
7
8 <table width="100%">
9 <tr><td><%= link_to_if_authorized l(:button_edit), :controller => 'documents', :action => 'edit', :id => @document %></td>
10 <td align="right">
11 <% if authorize_for('documents', 'destroy') %>
12 <%= start_form_tag({ :controller => 'documents', :action => 'destroy', :id => @document } ) %>
13 <%= submit_tag l(:button_delete) %>
14 <%= end_form_tag %>
15 <% end %>
16 </td></tr>
17 </table>
18 11 <br />
19 12
20 13 <h3><%= l(:label_attachment_plural) %></h3>
21 14 <ul>
22 15 <% for attachment in @attachments %>
23 16 <li>
24 <% if authorize_for('documents', 'destroy_attachment') %>
25 <div style="float:right;padding:6px;">
26 <%= start_form_tag({ :controller => 'documents', :action => 'destroy_attachment', :id => @document, :attachment_id => attachment } ) %>
27 <%= submit_tag l(:button_delete), :class => 'button-small' %>
28 <%= end_form_tag %>
17 <div class="contextual">
18 <%= link_to_if_authorized l(:button_delete), {:controller => 'documents', :action => 'destroy_attachment', :id => @document, :attachment_id => attachment}, :confirm => l(:text_are_you_sure), :post => true, :class => 'pic picDelete' %>
29 19 </div>
30 <% end %>
31
32 20 <%= link_to attachment.filename, :action => 'download', :id => @document, :attachment_id => attachment %>
33 21 (<%= human_size attachment.filesize %>)<br />
34 22 <em><%= attachment.author.display_name %>, <%= format_date(attachment.created_on) %></em><br />
35 23 <%= lwr(:label_download, attachment.downloads) %>
36 24 </li>
37 25 <% end %>
38 26 </ul>
39 27 <br />
40 28
41 29
42 30 <% if authorize_for('documents', 'add_attachment') %>
43 31 <%= start_form_tag ({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true) %>
44 32 <label><%=l(:label_attachment_new)%></label>&nbsp;&nbsp;
45 33 <%= file_field 'attachment', 'file' %>
46 34 <%= submit_tag l(:button_add) %>
47 35 <%= end_form_tag %>
48 36 <% end %>
@@ -1,28 +1,29
1 <div class="contextual">
2 <%= link_to l(:label_issue_status_new), {:action => 'new'}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_issue_status_plural)%></h2>
2 6
3 7 <table class="listTableContent">
4 8 <tr class="ListHead">
5 9 <th><%=l(:field_status)%></th>
6 10 <th><%=l(:field_is_default)%></th>
7 11 <th><%=l(:field_is_closed)%></th>
8 12 <th><%=l(:field_html_color)%></th>
9 13 <th></th>
10 14 </tr>
11 15
12 16 <% for status in @issue_statuses %>
13 17 <tr class="<%= cycle("odd", "even") %>">
14 18 <td><%= link_to status.name, :action => 'edit', :id => status %></td>
15 19 <td align="center"><%= image_tag 'true' if status.is_default? %></td>
16 20 <td align="center"><%= image_tag 'true' if status.is_closed? %></td>
17 21 <td><div style="background-color:#<%= status.html_color %>">&nbsp</div></td>
18 22 <td align="center">
19 23 <%= button_to l(:button_delete), { :action => 'destroy', :id => status }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
20 24 </td>
21 25 </tr>
22 26 <% end %>
23 27 </table>
24 28
25 29 <%= pagination_links_full @issue_status_pages %>
No newline at end of file
26 <br />
27
28 <%= link_to '&#187; ' + l(:label_issue_status_new), :action => 'new' %>
@@ -1,134 +1,113
1 <h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2>
2 <div class="topright">
3 <small>
4 <%= l(:label_export_to) %>&nbsp;
5 <%= link_to 'PDF', :action => 'export_pdf', :id => @issue %>
6 </small>
1 <div class="contextual">
2 <%= l(:label_export_to) %><%= link_to 'PDF', {:action => 'export_pdf', :id => @issue}, :class => 'pic picPdf' %>
7 3 </div>
8 4
5 <h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2>
6
9 7 <div class="box">
10 8 <table width="100%">
11 9 <tr>
12 10 <td width="15%"><b><%=l(:field_status)%> :</b></td><td width="35%"><%= @issue.status.name %></td>
13 11 <td width="15%"><b><%=l(:field_priority)%> :</b></td><td width="35%"><%= @issue.priority.name %></td>
14 12 </tr>
15 13 <tr>
16 14 <td><b><%=l(:field_assigned_to)%> :</b></td><td><%= @issue.assigned_to ? @issue.assigned_to.name : "-" %></td>
17 15 <td><b><%=l(:field_category)%> :</b></td><td><%= @issue.category ? @issue.category.name : "-" %></td>
18 16 </tr>
19 17 <tr>
20 18 <td><b><%=l(:field_author)%> :</b></td><td><%= link_to_user @issue.author %></td>
21 19 <td><b><%=l(:field_start_date)%> :</b></td><td><%= format_date(@issue.start_date) %></td>
22 20 </tr>
23 21 <tr>
24 22 <td><b><%=l(:field_created_on)%> :</b></td><td><%= format_date(@issue.created_on) %></td>
25 23 <td><b><%=l(:field_due_date)%> :</b></td><td><%= format_date(@issue.due_date) %></td>
26 24 </tr>
27 25 <tr>
28 26 <td><b><%=l(:field_updated_on)%> :</b></td><td><%= format_date(@issue.updated_on) %></td>
29 27 <td><b><%=l(:field_done_ratio)%> :</b></td><td><%= @issue.done_ratio %> %</td>
30 28 </tr>
31 29 <tr>
32 30 <% n = 0
33 31 for custom_value in @custom_values %>
34 32 <td><b><%= custom_value.custom_field.name %> :</b></td><td><%= show_value custom_value %></td>
35 33 <% n = n + 1
36 34 if (n > 1)
37 35 n = 0 %>
38 36 </tr><tr>
39 37 <%end
40 38 end %>
41 39 </tr>
42 40 </table>
43 41 <hr />
44 42 <br />
45 43
46 44 <b><%=l(:field_description)%> :</b><br /><br />
47 45 <%= textilizable @issue.description %>
48 46 <br />
49 <div style="float:left;">
50 <% if authorize_for('issues', 'edit') %>
51 <%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %>
52 <%= submit_tag l(:button_edit) %>
53 <%= end_form_tag %>
54 &nbsp;&nbsp;
55 <% end %>
47
48 <div class="contextual">
49 <%= link_to_if_authorized l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue}, :class => 'pic picEdit' %>
50 <%= link_to_if_authorized l(:button_move), {:controller => 'projects', :action => 'move_issues', :id => @project, "issue_ids[]" => @issue.id }, :class => 'pic picMove' %>
51 <%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => l(:text_are_you_sure), :post => true, :class => 'pic picDelete' %>
52 </div>
56 53
57 54 <% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %>
58 55 <%= start_form_tag ({:controller => 'issues', :action => 'change_status', :id => @issue}) %>
59 56 <%=l(:label_change_status)%> :
60 57 <select name="new_status_id">
61 58 <%= options_from_collection_for_select @status_options, "id", "name" %>
62 59 </select>
63 60 <%= submit_tag l(:button_change) %>
64 61 <%= end_form_tag %>
65 &nbsp;&nbsp;
66 62 <% end %>
67 63
68 <% if authorize_for('projects', 'move_issues') %>
69 <%= start_form_tag ({:controller => 'projects', :action => 'move_issues', :id => @project} ) %>
70 <%= hidden_field_tag "issue_ids[]", @issue.id %>
71 <%= submit_tag l(:button_move) %>
72 <%= end_form_tag %>
73 &nbsp;&nbsp;
74 <% end %>
75 </div>
76 <div style="float:right;">
77 <% if authorize_for('issues', 'destroy') %>
78 <%= start_form_tag ({:controller => 'issues', :action => 'destroy', :id => @issue} ) %>
79 <%= submit_tag l(:button_delete) %>
80 <%= end_form_tag %>
81 &nbsp;&nbsp;
82 <% end %>
83 </div>
84 <div class="clear"></div>
85 64 </div>
86 65
87 66 <div id="history" class="box">
88 67 <h3><%=l(:label_history)%>
89 68 <% if @journals_count > @journals.length %>(<%= l(:label_last_changes, @journals.length) %>)<% end %></h3>
90 69 <%= render :partial => 'history', :locals => { :journals => @journals } %>
91 70 <% if @journals_count > @journals.length %>
92 71 <p><center><small>[ <%= link_to l(:label_change_view_all), :action => 'history', :id => @issue %> ]</small></center></p>
93 72 <% end %>
94 73 </div>
95 74
96 75 <div class="box">
97 76 <h3><%=l(:label_attachment_plural)%></h3>
98 77 <table width="100%">
99 78 <% for attachment in @issue.attachments %>
100 79 <tr>
101 80 <td><%= image_tag('attachment') %> <%= link_to attachment.filename, :action => 'download', :id => @issue, :attachment_id => attachment %> (<%= human_size(attachment.filesize) %>)</td>
102 81 <td><%= format_date(attachment.created_on) %></td>
103 82 <td><%= attachment.author.display_name %></td>
104 83 <% if authorize_for('issues', 'destroy_attachment') %>
105 84 <td>
106 85 <%= start_form_tag :action => 'destroy_attachment', :id => @issue, :attachment_id => attachment %>
107 86 <%= submit_tag l(:button_delete), :class => "button-small" %>
108 87 <%= end_form_tag %>
109 88 </td>
110 89 <% end %>
111 90 </tr>
112 91 <% end %>
113 92 </table>
114 93 <br />
115 94 <% if authorize_for('issues', 'add_attachment') %>
116 95 <%= start_form_tag ({ :controller => 'issues', :action => 'add_attachment', :id => @issue }, :multipart => true, :class => "tabular") %>
117 96 <p id="attachments_p"><label><%=l(:label_attachment_new)%>&nbsp;
118 97 <%= link_to_function image_tag('add'), "addFileField()" %></label>
119 98 <%= file_field_tag 'attachments[]', :size => 30 %></p>
120 99 <%= submit_tag l(:button_add) %>
121 100 <%= end_form_tag %>
122 101 <% end %>
123 102 </div>
124 103
125 104 <% if authorize_for('issues', 'add_note') %>
126 105 <div class="box">
127 106 <h3><%= l(:label_add_note) %></h3>
128 107 <%= start_form_tag ({:controller => 'issues', :action => 'add_note', :id => @issue}, :class => "tabular" ) %>
129 108 <p><label for="notes"><%=l(:field_notes)%></label>
130 109 <%= text_area_tag 'notes', '', :cols => 60, :rows => 10 %></p>
131 110 <%= submit_tag l(:button_add) %>
132 111 <%= end_form_tag %>
133 112 </div>
134 113 <% end %>
@@ -1,38 +1,34
1 <div class="contextual">
2 <%= link_to_if_authorized l(:button_edit), {:controller => 'news', :action => 'edit', :id => @news}, :class => 'pic picEdit' %>
3 <%= link_to_if_authorized l(:button_delete), {:controller => 'news', :action => 'destroy', :id => @news}, :confirm => l(:text_are_you_sure), :post => true, :class => 'pic picDelete' %>
4 </div>
5
1 6 <h2><%= @news.title %></h2>
2 7
3 8 <p><em><%= @news.summary %><br />
4 9 <%= @news.author.display_name %>, <%= format_time(@news.created_on) %></em></p>
5 10 <br />
6 11 <%= textilizable auto_link @news.description %>
7
8 <div style="float:right;">
9 <% if authorize_for('news', 'destroy') %>
10 <%= start_form_tag ({:controller => 'news', :action => 'destroy', :id => @news}) %>
11 <%= submit_tag l(:button_delete) %>
12 <%= end_form_tag %>
13 <% end %>
14 </div>
15
16 <p><%= link_to_if_authorized l(:button_edit), :controller => 'news', :action => 'edit', :id => @news %></p>
12 <br />
17 13
18 14 <div id="comments" style="margin-bottom:16px;">
19 15 <h3><%= l(:label_comment_plural) %></h3>
20 16 <% @news.comments.each do |comment| %>
21 17 <% next if comment.new_record? %>
22 18 <h4><%= format_time(comment.created_on) %> - <%= comment.author.name %></h4>
23 <div style="float:right;">
24 <small><%= link_to_if_authorized l(:button_delete), {:controller => 'news', :action => 'destroy_comment', :id => @news, :comment_id => comment}, :confirm => l(:text_are_you_sure), :post => true %></small>
19 <div class="contextual">
20 <%= link_to_if_authorized l(:button_delete), {:controller => 'news', :action => 'destroy_comment', :id => @news, :comment_id => comment}, :confirm => l(:text_are_you_sure), :post => true, :class => 'pic picDelete' %>
25 21 </div>
26 22 <%= simple_format(auto_link(h comment.comment))%>
27 23 <% end if @news.comments_count > 0 %>
28 24 </div>
29 25
30 26 <% if authorize_for 'news', 'add_comment' %>
31 27 <h3><%= l(:label_comment_add) %></h3>
32 28 <%= start_form_tag :action => 'add_comment', :id => @news %>
33 29 <%= error_messages_for 'comment' %>
34 30 <p><label for="comment_comment"><%= l(:field_comment) %></label><br />
35 31 <%= text_area 'comment', 'comment', :cols => 60, :rows => 6 %></p>
36 32 <%= submit_tag l(:button_add) %>
37 33 <%= end_form_tag %>
38 34 <% end %> No newline at end of file
@@ -1,241 +1,241
1 <h2><%= l(:label_gantt) %></h2>
2 <div class="topright">
3 <small>
4 <%= l(:label_export_to) %>&nbsp;&nbsp;<%= link_to 'PDF', :zoom => @zoom, :year => @year_from, :month => @month_from, :months => @months, :output => 'pdf' %>
5 </small>
1 <div class="contextual">
2 <%= l(:label_export_to) %>
3 <%= link_to 'PDF', {:zoom => @zoom, :year => @year_from, :month => @month_from, :months => @months, :output => 'pdf'}, :class => 'pic picPdf' %>
6 4 </div>
7 5
6 <h2><%= l(:label_gantt) %></h2>
7
8 8 <table width="100%">
9 9 <tr>
10 10 <td align="left">
11 11 <%= start_form_tag %>
12 12 <input type="text" name="months" size="2" value="<%= @months %>">
13 13 <%= l(:label_months_from) %>
14 14 <%= select_month(@month_from, :prefix => "month", :discard_type => true) %>
15 15 <%= select_year(@year_from, :prefix => "year", :discard_type => true) %>
16 16 <%= hidden_field_tag 'zoom', @zoom %>
17 17 <%= submit_tag l(:button_submit), :class => "button-small" %>
18 18 <%= end_form_tag %>
19 19 </td>
20 20 <td align="right">
21 21 <%= if @zoom < 4
22 22 link_to image_tag('zoom_in'), {:zoom => (@zoom+1), :year => @year_from, :month => @month_from, :months => @months}
23 23 else
24 24 image_tag 'zoom_in_g'
25 25 end %>
26 26 <%= if @zoom > 1
27 27 link_to image_tag('zoom_out'), :zoom => (@zoom-1), :year => @year_from, :month => @month_from, :months => @months
28 28 else
29 29 image_tag 'zoom_out_g'
30 30 end %>
31 31 </td>
32 32 </tr>
33 33 </table>
34 34 <br />
35 35
36 36 <style>
37 37 .m_bg {
38 38 position:absolute;
39 39 top:0;
40 40 height:16px;
41 41 border-top: 1px solid #c0c0c0;
42 42 border-bottom: 1px solid #c0c0c0;
43 43 border-right: 1px solid #c0c0c0;
44 44 text-align: center;
45 45 }
46 46
47 47 .task {
48 48 position: absolute;
49 49 height:8px;
50 50 font-size:0.8em;
51 51 color:#888;
52 52 background:#aaa;
53 53 padding:0;
54 54 margin:0;
55 55 line-height:0.8em;
56 56 }
57 57
58 58 .task_late {
59 59 background:#f66;
60 60 }
61 61
62 62 .task_done {
63 63 background:#66f;
64 64 }
65 65 </style>
66 66
67 67 <% zoom = 1
68 68 @zoom.times { zoom = zoom * 2 }
69 69
70 70 subject_width = 260
71 71 header_heigth = 18
72 72
73 73 headers_heigth = header_heigth
74 74 show_weeks = false
75 75 show_days = false
76 76
77 77 if @zoom >1
78 78 show_weeks = true
79 79 headers_heigth = 2*header_heigth
80 80 if @zoom > 2
81 81 show_days = true
82 82 headers_heigth = 3*header_heigth
83 83 end
84 84 end
85 85
86 86 g_width = (@date_to - @date_from + 1)*zoom
87 87 g_height = [(20 * @issues.length + 6), 206].max
88 88 t_height = g_height + headers_heigth
89 89 %>
90 90
91 91 <table width="100%" border=0 cellspacing=0 cellpading=0>
92 92 <tr>
93 93 <td width=260>
94 94
95 95 <div style="position:relative;height:<%= t_height + 24 %>px;width:<%= subject_width + 1 %>px;">
96 96 <div style="right:-2px;width:<%= subject_width %>px;height:<%= headers_heigth %>px;" class="m_bg"></div>
97 97 <div style="right:-2px;width:<%= subject_width %>px;height:<%= t_height %>px;border-left: 1px solid #c0c0c0;" class="m_bg"></div>
98 98 <%
99 99 #
100 100 # Tasks subjects
101 101 #
102 102 top = headers_heigth + 8
103 103 @issues.each do |i| %>
104 104 <div style="position: absolute;line-height:1em;height:16px;top:<%= top %>px;left:4px;width:<%= subject_width - 5 %>px;overflow:hidden;">
105 105 <small><%= link_to "#{i.tracker.name} ##{i.id}", :controller => 'issues', :action => 'show', :id => i %>:
106 106 <%= i.subject.sub(/^(.{30}[^\s]*\s).*$/, '\1 (...)') %></small>
107 107 </div>
108 108 <% top = top + 20
109 109 end %>
110 110 </div>
111 111 </td>
112 112 <td>
113 113
114 114 <div style="position:relative;height:<%= t_height + 24 %>px;width:<%= subject_width %>;overflow:auto;">
115 115 <div style="width:<%= g_width-1 %>px;height:<%= headers_heigth %>px;" class="m_bg">&nbsp;</div>
116 116 <%
117 117 #
118 118 # Months headers
119 119 #
120 120 month_f = @date_from
121 121 left = 0
122 122 height = (show_weeks ? header_heigth : header_heigth + g_height)
123 123 @months.times do
124 124 width = ((month_f >> 1) - month_f) * zoom - 1
125 125 %>
126 126 <div style="left:<%= left %>px;width:<%= width %>px;height:<%= height %>px;" class="m_bg">
127 127 <%= link_to "#{month_f.year}-#{month_f.month}", :year => month_f.year, :month => month_f.month, :zoom => @zoom, :months => @months %>
128 128 </div>
129 129 <%
130 130 left = left + width + 1
131 131 month_f = month_f >> 1
132 132 end %>
133 133
134 134 <%
135 135 #
136 136 # Weeks headers
137 137 #
138 138 if show_weeks
139 139 left = 0
140 140 height = (show_days ? header_heigth-1 : header_heigth-1 + g_height)
141 141 if @date_from.cwday == 1
142 142 # @date_from is monday
143 143 week_f = @date_from
144 144 else
145 145 # find next monday after @date_from
146 146 week_f = @date_from + (7 - @date_from.cwday + 1)
147 147 width = (7 - @date_from.cwday + 1) * zoom-1
148 148 %>
149 149 <div style="left:<%= left %>px;top:19px;width:<%= width %>px;height:<%= height %>px;" class="m_bg">&nbsp;</div>
150 150 <%
151 151 left = left + width+1
152 152 end %>
153 153 <%
154 154 while week_f < @date_to
155 155 width = (week_f + 6 <= @date_to) ? 7 * zoom -1 : (@date_to - week_f + 1) * zoom-1
156 156 %>
157 157 <div style="left:<%= left %>px;top:19px;width:<%= width %>px;height:<%= height %>px;" class="m_bg">
158 158 <small><%= week_f.cweek %></small>
159 159 </div>
160 160 <%
161 161 left = left + width+1
162 162 week_f = week_f+7
163 163 end
164 164 end %>
165 165
166 166 <%
167 167 #
168 168 # Days headers
169 169 #
170 170 if show_days
171 171 left = 0
172 172 height = g_height + header_heigth - 1
173 173 wday = @date_from.cwday
174 174 (@date_to - @date_from + 1).to_i.times do
175 175 width = zoom - 1
176 176 %>
177 177 <div style="left:<%= left %>px;top:37px;width:<%= width %>px;height:<%= height %>px;font-size:0.7em;<%= "background:#f1f1f1;" if wday > 5 %>" class="m_bg">
178 178 <%= day_name(wday)[0,1] %>
179 179 </div>
180 180 <%
181 181 left = left + width+1
182 182 wday = wday + 1
183 183 wday = 1 if wday > 7
184 184 end
185 185 end %>
186 186
187 187 <%
188 188 #
189 189 # Today red line
190 190 #
191 191 if Date.today >= @date_from and Date.today <= @date_to %>
192 192 <div style="position: absolute;height:<%= g_height %>px;top:<%= headers_heigth + 1 %>px;left:<%= ((Date.today-@date_from+1)*zoom).floor()-1 %>px;width:10px;border-left: 1px dashed red;">&nbsp;</div>
193 193 <% end %>
194 194
195 195 <%
196 196 #
197 197 # Tasks
198 198 #
199 199 top = headers_heigth + 12
200 200 @issues.each do |i| %>
201 201 <%
202 202 i_start_date = (i.start_date >= @date_from ? i.start_date : @date_from )
203 203 i_end_date = (i.due_date <= @date_to ? i.due_date : @date_to )
204 204
205 205 i_done_date = i.start_date + ((i.due_date - i.start_date+1)*i.done_ratio/100).floor
206 206 i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
207 207 i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date )
208 208
209 209 i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
210 210
211 211 i_left = ((i_start_date - @date_from)*zoom).floor
212 212 i_width = ((i_end_date - i_start_date + 1)*zoom).floor
213 213 d_width = ((i_done_date - i_start_date)*zoom).floor
214 214 l_width = ((i_late_date - i_start_date+1)*zoom).floor if i_late_date
215 215 l_width ||= 0
216 216 %>
217 217 <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= i_width %>px;" class="task">&nbsp;</div>
218 218 <% if l_width > 0 %>
219 219 <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= l_width %>px;" class="task task_late">&nbsp;</div>
220 220 <% end %>
221 221 <% if d_width > 0 %>
222 222 <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= d_width %>px;" class="task task_done">&nbsp;</div>
223 223 <% end %>
224 224 <div style="top:<%= top %>px;left:<%= i_left + i_width + 5 %>px;background:#fff;" class="task">
225 225 <%= i.status.name %>
226 226 <%= (i.done_ratio).to_i %>%
227 227 </div>
228 228 <% top = top + 20
229 229 end %>
230 230 </div>
231 231 </td>
232 232 </tr>
233 233 </table>
234 234
235 235 <table width="100%">
236 236 <tr>
237 237 <td align="left"><%= link_to ('&#171; ' + l(:label_previous)), :year => (@date_from << @months).year, :month => (@date_from << @months).month, :zoom => @zoom, :months => @months %></td>
238 238 <td>
239 239 <td align="right"><%= link_to (l(:label_next) + ' &#187;'), :year => (@date_from >> @months).year, :month => (@date_from >> @months).month, :zoom => @zoom, :months => @months %></td>
240 240 </tr>
241 241 </table> No newline at end of file
@@ -1,23 +1,23
1 <div class="contextual">
2 <%= link_to_if_authorized l(:label_document_new), {:controller => 'projects', :action => 'add_document', :id => @project}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_document_plural)%></h2>
2 6
3 7 <% if @documents.empty? %><p><i><%= l(:label_no_data) %></i></p><% end %>
4 8
5 9 <% documents = @documents.group_by {|d| d.category } %>
6 10 <% documents.each do |category, docs| %>
7 11 <h3><%= category.name %></h3>
8 12 <ul>
9 13 <% docs.each do |d| %>
10 14 <li>
11 15 <b><%= link_to d.title, :controller => 'documents', :action => 'show', :id => d %></b>
12 16 <br />
13 17 <%= truncate d.description, 250 %><br />
14 18 <em><%= format_time(d.created_on) %></em><br />&nbsp;
15 19 </li>
16 20
17 21 <% end %>
18 22 </ul>
19 23 <% end %>
No newline at end of file
20
21 <p>
22 <%= link_to_if_authorized '&#187; ' + l(:label_document_new), :controller => 'projects', :action => 'add_document', :id => @project %>
23 </p>
@@ -1,46 +1,43
1 <div class="contextual">
2 <%= link_to_if_authorized l(:label_attachment_new), {:controller => 'projects', :action => 'add_file', :id => @project}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_attachment_plural)%></h2>
2 6
3 7 <% delete_allowed = authorize_for('versions', 'destroy_file') %>
4 8
5 9 <table class="listTableContent">
6 10 <tr class="ListHead">
7 11 <th><%=l(:field_version)%></th>
8 12 <th><%=l(:field_filename)%></th>
9 13 <th><%=l(:label_date)%></th>
10 14 <th><%=l(:field_filesize)%></th>
11 15 <th>D/L</th>
12 16 <th>MD5</th>
13 17 <% if delete_allowed %><th></th><% end %>
14 18 </tr>
15 19
16 20 <% for version in @versions %>
17 21 <% unless version.attachments.empty? %>
18 22 <tr><td colspan="7"><%= image_tag 'package' %> <b><%= version.name %></b></td></tr>
19 23 <% for file in version.attachments %>
20 24 <tr class="<%= cycle("odd", "even") %>">
21 25 <td></td>
22 26 <td><%= link_to file.filename, :controller => 'versions', :action => 'download', :id => version, :attachment_id => file %></td>
23 27 <td align="center"><%= format_date(file.created_on) %></td>
24 28 <td align="center"><%= human_size(file.filesize) %></td>
25 29 <td align="center"><%= file.downloads %></td>
26 30 <td align="center"><small><%= file.digest %></small></td>
27 31 <% if delete_allowed %>
28 32 <td align="center">
29 <%= start_form_tag :controller => 'versions', :action => 'destroy_file', :id => version, :attachment_id => file %>
30 <%= submit_tag l(:button_delete), :class => "button-small" %>
31 <%= end_form_tag %>
33 <div class="contextual">
34 <%= link_to_if_authorized l(:button_delete), {:controller => 'versions', :action => 'destroy_file', :id => version, :attachment_id => file}, :confirm => l(:text_are_you_sure), :post => true, :class => 'pic picDelete' %>
35 </div>
32 36 </td>
33 37 <% end %>
34 38 </tr>
35 39 <% end
36 40 reset_cycle %>
37 41 <% end %>
38 42 <% end %>
39 43 </table>
No newline at end of file
40
41 <br />
42 <p>
43 <%= link_to_if_authorized '&#187; ' + l(:label_attachment_new), :controller => 'projects', :action => 'add_file', :id => @project %>
44 </p>
45
46
@@ -1,76 +1,75
1 <h2><%=l(:label_issue_plural)%></h2>
2 <div class="topright">
3 <small>
4 <%= l(:label_export_to) %>&nbsp;
5 <%= link_to 'CSV', :action => 'export_issues_csv', :id => @project %>,
6 <%= link_to 'PDF', :action => 'export_issues_pdf', :id => @project %>
7 </small>
1 <div class="contextual">
2 <%= l(:label_export_to) %>
3 <%= link_to 'CSV', {:action => 'export_issues_csv', :id => @project}, :class => 'pic picCsv' %>,
4 <%= link_to 'PDF', {:action => 'export_issues_pdf', :id => @project}, :class => 'pic picPdf' %>
8 5 </div>
9 6
7 <h2><%=l(:label_issue_plural)%></h2>
8
10 9 <%= start_form_tag :action => 'list_issues' %>
11 10 <table cellpadding=2>
12 11 <tr>
13 12 <td valign="bottom"><small><%=l(:field_status)%>:</small><br /><%= search_filter_tag 'status_id', :class => 'select-small' %></td>
14 13 <td valign="bottom"><small><%=l(:field_tracker)%>:</small><br /><%= search_filter_tag 'tracker_id', :class => 'select-small' %></td>
15 14 <td valign="bottom"><small><%=l(:field_priority)%>:</small><br /><%= search_filter_tag 'priority_id', :class => 'select-small' %></td>
16 15 <td valign="bottom"><small><%=l(:field_category)%>:</small><br /><%= search_filter_tag 'category_id', :class => 'select-small' %></td>
17 16 <td valign="bottom"><small><%=l(:field_fixed_version)%>:</small><br /><%= search_filter_tag 'fixed_version_id', :class => 'select-small' %></td>
18 17 <td valign="bottom"><small><%=l(:field_author)%>:</small><br /><%= search_filter_tag 'author_id', :class => 'select-small' %></td>
19 18 <td valign="bottom"><small><%=l(:field_assigned_to)%>:</small><br /><%= search_filter_tag 'assigned_to_id', :class => 'select-small' %></td>
20 19 <td valign="bottom"><small><%=l(:label_subproject_plural)%>:</small><br /><%= search_filter_tag 'subproject_id', :class => 'select-small' %></td>
21 20 <td valign="bottom">
22 21 <%= hidden_field_tag 'set_filter', 1 %>
23 22 <%= submit_tag l(:button_apply), :class => 'button-small' %>
24 23 </td>
25 24 <td valign="bottom">
26 25 <%= link_to l(:button_clear), :action => 'list_issues', :id => @project, :set_filter => 1 %>
27 26 </td>
28 27 </tr>
29 28 </table>
30 29 <%= end_form_tag %>
31 30
32 31 &nbsp;
33 32 <table class="listTableContent">
34 33 <tr>
35 34 <td colspan="6" align="left"><small><%= check_all_links 'issues_form' %></small></td>
36 35 <td colspan="2" align="right">
37 36 <small><%= l(:label_per_page) %>:</small>
38 37 <%= start_form_tag %>
39 38 <%= select_tag 'per_page', options_for_select(@results_per_page_options, @results_per_page), :class => 'select-small'%>
40 39 <%= submit_tag l(:button_apply), :class => 'button-small'%>
41 40 <%= end_form_tag %>
42 41 </td>
43 42 </tr>
44 43 </table>
45 44 <%= start_form_tag({:controller => 'projects', :action => 'move_issues', :id => @project}, :id => 'issues_form' ) %>
46 45 <table class="listTableContent">
47 46
48 47 <tr class="ListHead">
49 48 <td></td>
50 49 <%= sort_header_tag('issues.id', :caption => '#') %>
51 50 <%= sort_header_tag('issue_statuses.name', :caption => l(:field_status)) %>
52 51 <%= sort_header_tag('issues.tracker_id', :caption => l(:field_tracker)) %>
53 52 <th><%=l(:field_subject)%></th>
54 53 <%= sort_header_tag('users.lastname', :caption => l(:field_author)) %>
55 54 <%= sort_header_tag('issues.created_on', :caption => l(:field_created_on)) %>
56 55 <%= sort_header_tag('issues.updated_on', :caption => l(:field_updated_on)) %>
57 56 </tr>
58 57 <% for issue in @issues %>
59 58 <tr class="<%= cycle("odd", "even") %>">
60 59 <td width="15"><%= check_box_tag "issue_ids[]", issue.id %></td>
61 60 <td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td>
62 61 <td align="center" style="font-weight:bold;color:#<%= issue.status.html_color %>;"><%= issue.status.name %></font></td>
63 62 <td align="center"><%= issue.tracker.name %></td>
64 63 <td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td>
65 64 <td align="center"><%= issue.author.display_name %></td>
66 65 <td align="center"><%= format_time(issue.created_on) %></td>
67 66 <td align="center"><%= format_time(issue.updated_on) %></td>
68 67 </tr>
69 68 <% end %>
70 69 </table>
71 70 <p>
72 71 <%= pagination_links_full @issue_pages %>
73 72 [ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ]
74 73 </p>
75 74 <%= submit_tag l(:button_move) %>
76 75 <%= end_form_tag %> No newline at end of file
@@ -1,19 +1,20
1 <div class="contextual">
2 <%= link_to_if_authorized l(:label_news_new), {:controller => 'projects', :action => 'add_news', :id => @project}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_news_plural)%></h2>
2 6
3 7 <% if @news.empty? %><p><i><%= l(:label_no_data) %></i></p><% end %>
4 8
5 9 <ul>
6 10 <% for news in @news %>
7 11 <li><%= link_to news.title, :controller => 'news', :action => 'show', :id => news %><br />
8 12 <% unless news.summary.empty? %><%= news.summary %><br /><% end %>
9 13 <em><%= news.author.name %>, <%= format_time(news.created_on) %></em><br />
10 14 <%= news.comments_count %> <%= lwr(:label_comment, news.comments_count).downcase %><br />&nbsp;
11 15 </li>
12 16 <% end %>
13 17 </ul>
14 18
15 19
16 20 <%= pagination_links_full @news_pages %>
17 <p>
18 <%= link_to_if_authorized '&#187; ' + l(:label_news_new), :controller => 'projects', :action => 'add_news', :id => @project %>
19 </p>
@@ -1,21 +1,22
1 <div class="contextual">
2 <%= link_to l(:label_role_new), {:action => 'new'}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_role_plural)%></h2>
2 6
3 7 <table class="listTableContent">
4 8 <tr class="ListHead">
5 9 <th><%=l(:label_role)%></th>
6 10 <th></th>
7 11 </tr>
8 12
9 13 <% for role in @roles %>
10 14 <tr class="<%= cycle("odd", "even") %>">
11 15 <td><%= link_to role.name, :action => 'edit', :id => role %></td>
12 16 <td align="center">
13 17 <%= button_to l(:button_delete), { :action => 'destroy', :id => role }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
14 18 </tr>
15 19 <% end %>
16 20 </table>
17 21
18 22 <%= pagination_links_full @role_pages %>
No newline at end of file
19 <br />
20
21 <%= link_to '&#187; ' + l(:label_role_new), :action => 'new' %>
@@ -1,22 +1,23
1 <div class="contextual">
2 <%= link_to l(:label_tracker_new), {:action => 'new'}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_tracker_plural)%></h2>
2 6
3 7 <table class="listTableContent">
4 8 <tr class="ListHead">
5 9 <th><%=l(:label_tracker)%></th>
6 10 <th></th>
7 11 </tr>
8 12
9 13 <% for tracker in @trackers %>
10 14 <tr class="<%= cycle("odd", "even") %>">
11 15 <td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td>
12 16 <td align="center">
13 17 <%= button_to l(:button_delete), { :action => 'destroy', :id => tracker }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
14 18 </td>
15 19 </tr>
16 20 <% end %>
17 21 </table>
18 22
19 23 <%= pagination_links_full @tracker_pages %>
No newline at end of file
20 <br />
21
22 <%= link_to '&#187; ' + l(:label_tracker_new), :action => 'new' %>
@@ -1,46 +1,46
1 <div class="contextual">
2 <%= link_to l(:label_user_new), {:action => 'add'}, :class => 'pic picAdd' %>
3 </div>
4
1 5 <h2><%=l(:label_user_plural)%></h2>
2 6
3 7 <table class="listTableContent">
4 8 <tr class="ListHead">
5 9 <%= sort_header_tag('login', :caption => l(:field_login)) %>
6 10 <%= sort_header_tag('firstname', :caption => l(:field_firstname)) %>
7 11 <%= sort_header_tag('lastname', :caption => l(:field_lastname)) %>
8 12 <th><%=l(:field_mail)%></th>
9 13 <%= sort_header_tag('admin', :caption => l(:field_admin)) %>
10 14 <%= sort_header_tag('status', :caption => l(:field_status)) %>
11 15 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
12 16 <%= sort_header_tag('last_login_on', :caption => l(:field_last_login_on)) %>
13 17 <th></th>
14 18 </tr>
15 19 <% for user in @users %>
16 20 <tr class="<%= cycle("odd", "even") %>">
17 21 <td><%= link_to user.login, :action => 'edit', :id => user %></td>
18 22 <td><%= user.firstname %></td>
19 23 <td><%= user.lastname %></td>
20 24 <td><%= user.mail %></td>
21 25 <td align="center"><%= image_tag 'true' if user.admin? %></td>
22 26 <td align="center"><%= image_tag 'locked' if user.locked? %><%= image_tag 'user_new' if user.registered? %></td>
23 27 <td align="center"><%= format_time(user.created_on) %></td>
24 28 <td align="center"><%= format_time(user.last_login_on) unless user.last_login_on.nil? %></td>
25 29 <td align="center">
26 30 <%= start_form_tag :action => 'edit', :id => user %>
27 31 <% if user.locked? %>
28 32 <%= hidden_field_tag 'user[status]', User::STATUS_ACTIVE %>
29 33 <%= submit_tag l(:button_unlock), :class => "button-small" %>
30 34 <% else %>
31 35 <%= hidden_field_tag 'user[status]', User::STATUS_LOCKED %>
32 36 <%= submit_tag l(:button_lock), :class => "button-small" %>
33 37 <% end %>
34 38 <%= end_form_tag %>
35 39 </td>
36 40 </tr>
37 41 <% end %>
38 42 </table>
39 43
40 44 <p><%= pagination_links_full @user_pages %>
41 45 [ <%= @user_pages.current.first_item %> - <%= @user_pages.current.last_item %> / <%= @user_count %> ]
42 46 </p>
No newline at end of file
43
44 <p>
45 <%= link_to '&#187; ' + l(:label_user_new), :action => 'add' %>
46 </p> No newline at end of file
@@ -1,96 +1,97
1 1 == redMine changelog
2 2
3 3 redMine - project management software
4 4 Copyright (C) 2006 Jean-Philippe Lang
5 5 http://redmine.org/
6 6
7 7
8 8 == xx/xx/2006 v0.x.x
9 9
10 * comments can now be added on news
10 11 * "my page" is now customizable
11 12 * improved issues change history
12 13 * new functionality: move an issue to another project or tracker
13 14 * new functionality: add a note to an issue
14 15 * new report: project activity
15 16 * "start date" and "% done" fields added on issues
16 17 * project calendar added
17 18 * gantt chart added (exportable to pdf)
18 19 * single/multiple issues pdf export added
19 20 * issues reports improvements
20 21 * multiple file upload for issues attachments
21 22 * textile formating of issue and news descritions (RedCloth required)
22 23 * integration of DotClear jstoolbar for textile formatting
23 24 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
24 25 * new filter in issues list: Author
25 26 * ajaxified paginators
26 27 * option to set number of results per page on issues list
27 28 * localized csv separator (comma/semicolon)
28 29 * csv output encoded to ISO-8859-1
29 30 * user custom field displayed on account/show
30 31 * default configuration improved (default roles, trackers, status, permissions and workflows)
31 32 * fixed: custom fields not in csv exports
32 33 * fixed: project settings now displayed according to user's permissions
33 34
34 35 == 10/08/2006 v0.3.0
35 36
36 37 * user authentication against multiple LDAP (optional)
37 38 * token based "lost password" functionality
38 39 * user self-registration functionality (optional)
39 40 * custom fields now available for issues, users and projects
40 41 * new custom field format "text" (displayed as a textarea field)
41 42 * project & administration drop down menus in navigation bar for quicker access
42 43 * text formatting is preserved for long text fields (issues, projects and news descriptions)
43 44 * urls and emails are turned into clickable links in long text fields
44 45 * "due date" field added on issues
45 46 * tracker selection filter added on change log
46 47 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
47 48 * error messages internationalization
48 49 * german translation added (thanks to Karim Trott)
49 50 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
50 51 * new filter in issues list: "Fixed version"
51 52 * active filters are displayed with colored background on issues list
52 53 * custom configuration is now defined in config/config_custom.rb
53 54 * user object no more stored in session (only user_id)
54 55 * news summary field is no longer required
55 56 * tables and forms redesign
56 57 * Fixed: boolean custom field not working
57 58 * Fixed: error messages for custom fields are not displayed
58 59 * Fixed: invalid custom fields should have a red border
59 60 * Fixed: custom fields values are not validated on issue update
60 61 * Fixed: unable to choose an empty value for 'List' custom fields
61 62 * Fixed: no issue categories sorting
62 63 * Fixed: incorrect versions sorting
63 64
64 65
65 66 == 07/12/2006 - v0.2.2
66 67
67 68 * Fixed: bug in "issues list"
68 69
69 70
70 71 == 07/09/2006 - v0.2.1
71 72
72 73 * new databases supported: Oracle, PostgreSQL, SQL Server
73 74 * projects/subprojects hierarchy (1 level of subprojects only)
74 75 * environment information display in admin/info
75 76 * more filter options in issues list (rev6)
76 77 * default language based on browser settings (Accept-Language HTTP header)
77 78 * issues list exportable to CSV (rev6)
78 79 * simple_format and auto_link on long text fields
79 80 * more data validations
80 81 * Fixed: error when all mail notifications are unchecked in admin/mail_options
81 82 * Fixed: all project news are displayed on project summary
82 83 * Fixed: Can't change user password in users/edit
83 84 * Fixed: Error on tables creation with PostgreSQL (rev5)
84 85 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
85 86
86 87
87 88 == 06/25/2006 - v0.1.0
88 89
89 90 * multiple users/multiple projects
90 91 * role based access control
91 92 * issue tracking system
92 93 * fully customizable workflow
93 94 * documents/files repository
94 95 * email notifications on issue creation and update
95 96 * multilanguage support (except for error messages):english, french, spanish
96 97 * online manual in french (unfinished) No newline at end of file
1 NO CONTENT: modified file, binary diff hidden
1 NO CONTENT: modified file, binary diff hidden
@@ -1,489 +1,505
1 1 /* andreas08 - an open source xhtml/css website layout by Andreas Viklund - http://andreasviklund.com . Free to use in any way and for any purpose as long as the proper credits are given to the original designer. Version: 1.0, November 28, 2005 */
2 2 /* Edited by Jean-Philippe Lang *>
3 3 /**************** Body and tag styles ****************/
4 4
5 5
6 6 #header * {margin:0; padding:0;}
7 7 p, ul, ol, li {margin:0; padding:0;}
8 8
9 9
10 10 body{
11 11 font:76% Verdana,Tahoma,Arial,sans-serif;
12 12 line-height:1.4em;
13 13 text-align:center;
14 14 color:#303030;
15 15 background:#e8eaec;
16 16 margin:0;
17 17 }
18 18
19 19
20 20 a{
21 21 color:#467aa7;
22 22 font-weight:bold;
23 23 text-decoration:none;
24 24 background-color:inherit;
25 25 }
26 26
27 27 a:hover{color:#2a5a8a; text-decoration:none; background-color:inherit;}
28 28 a img{border:none;}
29 29
30 30 p{padding:0 0 1em 0;}
31 31 p form{margin-top:0; margin-bottom:20px;}
32 32
33 33 img.left,img.center,img.right{padding:4px; border:1px solid #a0a0a0;}
34 34 img.left{float:left; margin:0 12px 5px 0;}
35 35 img.center{display:block; margin:0 auto 5px auto;}
36 36 img.right{float:right; margin:0 0 5px 12px;}
37 37
38 38 /**************** Header and navigation styles ****************/
39 39
40 40 #container{
41 41 width:100%;
42 42 min-width: 800px;
43 43 margin:0;
44 44 padding:0;
45 45 text-align:left;
46 46 background:#ffffff;
47 47 color:#303030;
48 48 }
49 49
50 50 #header{
51 51 height:4.5em;
52 52 /*width:758px;*/
53 53 margin:0;
54 54 background:#467aa7;
55 55 color:#ffffff;
56 56 margin-bottom:1px;
57 57 }
58 58
59 59 #header h1{
60 60 padding:10px 0 0 20px;
61 61 font-size:2em;
62 62 background-color:inherit;
63 63 color:#fff; /*rgb(152, 26, 33);*/
64 64 letter-spacing:-1px;
65 65 font-weight:bold;
66 66 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
67 67 }
68 68
69 69 #header h2{
70 70 margin:3px 0 0 40px;
71 71 font-size:1.5em;
72 72 background-color:inherit;
73 73 color:#f0f2f4;
74 74 letter-spacing:-1px;
75 75 font-weight:normal;
76 76 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
77 77 }
78 78
79 79 #navigation{
80 80 height:2.2em;
81 81 line-height:2.2em;
82 82 /*width:758px;*/
83 83 margin:0;
84 84 background:#578bb8;
85 85 color:#ffffff;
86 86 }
87 87
88 88 #navigation li{
89 89 float:left;
90 90 list-style-type:none;
91 91 border-right:1px solid #ffffff;
92 92 white-space:nowrap;
93 93 }
94 94
95 95 #navigation li.right {
96 96 float:right;
97 97 list-style-type:none;
98 98 border-right:0;
99 99 border-left:1px solid #ffffff;
100 100 white-space:nowrap;
101 101 }
102 102
103 103 #navigation li a{
104 104 display:block;
105 105 padding:0px 10px 0px 22px;
106 106 font-size:0.8em;
107 107 font-weight:normal;
108 108 /*text-transform:uppercase;*/
109 109 text-decoration:none;
110 110 background-color:inherit;
111 111 color: #ffffff;
112 112 }
113 113
114 114 * html #navigation a {width:1%;}
115 115
116 116 #navigation .selected,#navigation a:hover{
117 117 color:#ffffff;
118 118 text-decoration:none;
119 119 background-color: #80b0da;
120 120 }
121 121
122 122 /**************** Icons links *******************/
123 123 .picHome { background: url(../images/home.png) no-repeat 4px 50%; }
124 124 .picUser { background: url(../images/user.png) no-repeat 4px 50%; }
125 125 .picUserPage { background: url(../images/user_page.png) no-repeat 4px 50%; }
126 126 .picAdmin { background: url(../images/admin.png) no-repeat 4px 50%; }
127 127 .picProject { background: url(../images/projects.png) no-repeat 4px 50%; }
128 128 .picLogout { background: url(../images/logout.png) no-repeat 4px 50%; }
129 129 .picHelp { background: url(../images/help.png) no-repeat 4px 50%; }
130 130
131 .picEdit { background: url(../images/edit_small.png) no-repeat 4px 50%; }
132 .picDelete { background: url(../images/delete.png) no-repeat 4px 50%; }
133 .picAdd { background: url(../images/add.png) no-repeat 4px 50%; }
134 .picMove { background: url(../images/move.png) no-repeat 4px 50%; }
135 .picPdf { background: url(../images/pdf.png) no-repeat 4px 50%;}
136 .picCsv { background: url(../images/csv.png) no-repeat 4px 50%;}
137
138 .pic { padding-left: 18px; margin-left: 3px; }
131 139 /**************** Content styles ****************/
132 140
133 141 html>body #content {
134 142 height: auto;
135 143 min-height: 500px;
136 144 }
137 145
138 146 #content{
139 147 /*float:right;*/
140 148 /*width:530px;*/
141 149 width: auto;
142 150 height:500px;
143 151 font-size:0.9em;
144 152 padding:20px 10px 10px 20px;
145 153 /*position: absolute;*/
146 154 margin-left: 120px;
147 155 border-left: 1px dashed #c0c0c0;
148 156
149 157 }
150 158
151 159 #content h2{
152 160 display:block;
153 161 margin:0 0 16px 0;
154 162 font-size:1.7em;
155 163 font-weight:normal;
156 164 letter-spacing:-1px;
157 165 color:#606060;
158 166 background-color:inherit;
159 167 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
160 168 }
161 169
162 170 #content h2 a{font-weight:normal;}
163 171 #content h3{margin:0 0 12px 0; font-size:1.4em;color:#707070;font-family: Trebuchet MS,Georgia,"Times New Roman",serif;}
164 172 #content a:hover,#subcontent a:hover{text-decoration:underline;}
165 173 #content ul,#content ol{margin:0 5px 16px 35px;}
166 174 #content dl{margin:0 5px 10px 25px;}
167 175 #content dt{font-weight:bold; margin-bottom:5px;}
168 176 #content dd{margin:0 0 10px 15px;}
169 177
170 178
171 179 /***********************************************/
172 180
173 181 /*
174 182 form{
175 183 padding:15px;
176 184 margin:0 0 20px 0;
177 185 border:1px solid #c0c0c0;
178 186 background-color:#CEE1ED;
179 187 width:600px;
180 188 }
181 189 */
182 190
183 191 form {
184 192 display: inline;
185 193 }
186 194
187 195 .noborder {
188 196 border:0px;
189 197 background-color:#fff;
190 198 width:100%;
191 199 }
192 200
193 201 textarea {
194 202 padding:0;
195 203 margin:0;
196 204 }
197 205
198 206 blockquote {
199 207 padding-left: 6px;
200 208 border-left: 2px solid #ccc;
201 209 }
202 210
203 211 input {
204 212 vertical-align: middle;
205 213 }
206 214
207 215 input.button-small
208 216 {
209 217 font-size: 0.8em;
210 218 }
211 219
212 220 select {
213 221 vertical-align: middle;
214 222 }
215 223
216 224 select.select-small
217 225 {
218 226 border: 1px solid #7F9DB9;
219 227 padding: 1px;
220 228 font-size: 0.8em;
221 229 }
222 230
223 231 .active-filter
224 232 {
225 233 background-color: #F9FA9E;
226 234
227 235 }
228 236
229 237 label {
230 238 font-weight: bold;
231 239 font-size: 1em;
232 240 }
233 241
234 242 fieldset {
235 243 border:1px solid #7F9DB9;
236 244 padding: 6px;
237 245 }
238 246
239 247 legend {
240 248 color: #505050;
241 249
242 250 }
243 251
244 252 .required {
245 253 color: #bb0000;
246 254 }
247 255
248 256 table.listTableContent {
249 257 border:1px solid #578bb8;
250 width:99%;
258 width:100%;
251 259 border-collapse: collapse;
252 260 }
253 261
254 262 table.listTableContent td {
255 263 padding:2px;
256 264 }
257 265
258 266 tr.ListHead {
259 267 background-color:#467aa7;
260 268 color:#FFFFFF;
261 269 text-align:center;
262 270 }
263 271
264 272 tr.ListHead a {
265 273 color:#FFFFFF;
266 274 text-decoration:underline;
267 275 }
268 276
269 277 .odd {
270 278 background-color:#f0f1f2;
271 279 }
272 280 .even {
273 281 background-color: #fff;
274 282 }
275 283
276 284 table.reportTableContent {
277 285 border:1px solid #c0c0c0;
278 286 width:99%;
279 287 border-collapse: collapse;
280 288 }
281 289
282 290 table.reportTableContent td {
283 291 padding:2px;
284 292 }
285 293
286 294 table.calenderTable {
287 295 border:1px solid #578bb8;
288 296 width:99%;
289 297 border-collapse: collapse;
290 298 }
291 299
292 300 table.calenderTable td {
293 301 border:1px solid #578bb8;
294 302 }
295 303
296 304 hr { border:none; border-bottom: dotted 1px #c0c0c0; }
297 305
298 306
299 307 /**************** Sidebar styles ****************/
300 308
301 309 #subcontent{
302 310 position: absolute;
303 311 left: 0px;
304 312 width:110px;
305 313 padding:20px 20px 10px 5px;
306 314 }
307 315
308 316 #subcontent h2{
309 317 display:block;
310 318 margin:0 0 5px 0;
311 319 font-size:1.0em;
312 320 font-weight:bold;
313 321 text-align:left;
314 322 color:#606060;
315 323 background-color:inherit;
316 324 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
317 325 }
318 326
319 327 #subcontent p{margin:0 0 16px 0; font-size:0.9em;}
320 328
321 329 /**************** Menublock styles ****************/
322 330
323 331 .menublock{margin:0 0 20px 8px; font-size:0.8em;}
324 332 .menublock li{list-style:none; display:block; padding:1px; margin-bottom:0px;}
325 333 .menublock li a{font-weight:bold; text-decoration:none;}
326 334 .menublock li a:hover{text-decoration:none;}
327 335 .menublock li ul{margin:0; font-size:1em; font-weight:normal;}
328 336 .menublock li ul li{margin-bottom:0;}
329 337 .menublock li ul a{font-weight:normal;}
330 338
331 339 /**************** Searchbar styles ****************/
332 340
333 341 #searchbar{margin:0 0 20px 0;}
334 342 #searchbar form fieldset{margin-left:10px; border:0 solid;}
335 343
336 344 #searchbar #s{
337 345 height:1.2em;
338 346 width:110px;
339 347 margin:0 5px 0 0;
340 348 border:1px solid #a0a0a0;
341 349 }
342 350
343 351 #searchbar #searchbutton{
344 352 width:auto;
345 353 padding:0 1px;
346 354 border:1px solid #808080;
347 355 font-size:0.9em;
348 356 text-align:center;
349 357 }
350 358
351 359 /**************** Footer styles ****************/
352 360
353 361 #footer{
354 362 clear:both;
355 363 /*width:758px;*/
356 364 padding:5px 0;
357 365 margin:0;
358 366 font-size:0.9em;
359 367 color:#f0f0f0;
360 368 background:#467aa7;
361 369 }
362 370
363 371 #footer p{padding:0; margin:0; text-align:center;}
364 372 #footer a{color:#f0f0f0; background-color:inherit; font-weight:bold;}
365 373 #footer a:hover{color:#ffffff; background-color:inherit; text-decoration: underline;}
366 374
367 375 /**************** Misc classes and styles ****************/
368 376
369 377 .splitcontentleft{float:left; width:49%;}
370 378 .splitcontentright{float:right; width:49%;}
371 379 .clear{clear:both;}
372 380 .small{font-size:0.8em;line-height:1.4em;padding:0 0 0 0;}
373 381 .hide{display:none;}
374 382 .textcenter{text-align:center;}
375 383 .textright{text-align:right;}
376 384 .important{color:#f02025; background-color:inherit; font-weight:bold;}
377 385
378 386 .box{
379 387 margin:0 0 20px 0;
380 388 padding:10px;
381 389 border:1px solid #c0c0c0;
382 390 background-color:#fafbfc;
383 391 color:#505050;
384 392 line-height:1.5em;
385 393 }
386 394
387 395 a.close-icon {
388 396 display:block;
389 397 margin-top:3px;
390 398 overflow:hidden;
391 399 width:12px;
392 400 height:12px;
393 401 background-repeat: no-repeat;
394 402 cursor:hand;
395 403 cursor:pointer;
396 404 background-image:url('../images/close.png');
397 405 }
398 406
399 407 a.close-icon:hover {
400 408 background-image:url('../images/close_hl.png');
401 409 }
402 410
403 411 .rightbox{
404 412 background: #fafbfc;
405 413 border: 1px solid #c0c0c0;
406 414 float: right;
407 415 padding: 8px;
408 416 position: relative;
409 417 margin: 0 5px 5px;
410 418 }
411 419
412 420 .layout-active {
413 421 background: #ECF3E1;
414 422 }
415 423
416 424 .block-receiver {
417 425 border:1px dashed #c0c0c0;
418 426 margin-bottom: 20px;
419 427 padding: 15px 0 15px 0;
420 428 }
421 429
422 430 .mypage-box {
423 431 margin:0 0 20px 0;
424 432 color:#505050;
425 433 line-height:1.5em;
426 434 }
427 435
428 436 .handle {
429 437 cursor: move;
430 438 }
431 439
432 440 .topright{
433 441 position: absolute;
434 442 right: 25px;
435 443 top: 100px;
436 444 }
437 445
438 446 .login {
439 447 width: 50%;
440 448 text-align: left;
441 449 }
442 450
443 451 img.calendar-trigger {
444 452 cursor: pointer;
445 453 vertical-align: middle;
446 454 margin-left: 4px;
447 455 }
448 456
449 457 #history h4, #comments h4 {
450 458 font-size: 1em;
451 459 margin-bottom: 12px;
452 460 margin-top: 20px;
453 461 font-weight: normal;
454 462 border-bottom: dotted 1px #c0c0c0;
455 463 }
456 464
457 465 #history p {
458 466 margin-left: 34px;
459 467 }
460 468
469 /***** Contextual links div *****/
470 .contextual {
471 float: right;
472 font-size: 0.8em;
473 }
474
475
476
461 477 /***** CSS FORM ******/
462 478 .tabular p{
463 479 margin: 0;
464 480 padding: 5px 0 8px 0;
465 481 padding-left: 180px; /*width of left column containing the label elements*/
466 482 height: 1%;
467 483 }
468 484
469 485 .tabular label{
470 486 font-weight: bold;
471 487 float: left;
472 488 margin-left: -180px; /*width of left column*/
473 489 width: 175px; /*width of labels. Should be smaller than left column to create some right
474 490 margin*/
475 491 }
476 492
477 493 .error {
478 494 color: #cc0000;
479 495 }
480 496
481 497
482 498 /*.threepxfix class below:
483 499 Targets IE6- ONLY. Adds 3 pixel indent for multi-line form contents.
484 500 to account for 3 pixel bug: http://www.positioniseverything.net/explorer/threepxtest.html
485 501 */
486 502
487 503 * html .threepxfix{
488 504 margin-left: 3px;
489 505 } No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now