##// END OF EJS Templates
tables and forms redesign,...
Jean-Philippe Lang -
r19:552d99d664b6
parent child
Show More
@@ -0,0 +1,290
1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2
3 actionview_datehelper_select_day_prefix:
4 actionview_datehelper_select_month_names: January,February,March,April,May,June,July,August,September,October,November,December
5 actionview_datehelper_select_month_names_abbr: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
6 actionview_datehelper_select_month_prefix:
7 actionview_datehelper_select_year_prefix:
8 actionview_datehelper_time_in_words_day: 1 day
9 actionview_datehelper_time_in_words_day_plural: %d days
10 actionview_datehelper_time_in_words_hour_about: about an hour
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 actionview_datehelper_time_in_words_minute: 1 minute
14 actionview_datehelper_time_in_words_minute_half: half a minute
15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 actionview_datehelper_time_in_words_second_less_than: less than a second
19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
20 actionview_instancetag_blank_option: Bitte auserwählt
21
22 activerecord_error_inclusion: ist nicht in der Liste eingeschlossen
23 activerecord_error_exclusion: ist reserviert
24 activerecord_error_invalid: ist unzulässig
25 activerecord_error_confirmation: bringt nicht Bestätigung zusammen
26 activerecord_error_accepted: muß angenommen werden
27 activerecord_error_empty: kann nicht leer sein
28 activerecord_error_blank: kann nicht leer sein
29 activerecord_error_too_long: ist zu lang
30 activerecord_error_too_short: ist zu kurz
31 activerecord_error_wrong_length: ist die falsche Länge
32 activerecord_error_taken: ist bereits genommen worden
33 activerecord_error_not_a_number: ist nicht eine Zahl
34
35 general_fmt_age: %d yr
36 general_fmt_age_plural: %d yrs
37 general_fmt_date: %%b %%d, %%Y (%%a)
38 general_fmt_datetime: %%b %%d, %%Y (%%a), %%I:%%M %%p
39 general_fmt_datetime_short: %%b %%d, %%I:%%M %%p
40 general_fmt_time: %%I:%%M %%p
41 general_text_No: 'Nein'
42 general_text_Yes: 'Ja'
43 general_text_no: 'nein'
44 general_text_yes: 'ja'
45 general_lang_de: 'Deutsch'
46
47 notice_account_updated: Konto wurde erfolgreich aktualisiert.
48 notice_account_invalid_creditentials: Unzulässiger Benutzer oder Passwort
49 notice_account_password_updated: Passwort wurde erfolgreich aktualisiert.
50 notice_account_wrong_password: Falsches Passwort
51 notice_account_register_done: Konto wurde erfolgreich verursacht.
52 notice_account_unknown_email: Unbekannter Benutzer.
53 notice_can_t_change_password: Dieses Konto verwendet eine externe Authentisierung Quelle. Unmöglich, das Kennwort zu ändern.
54 notice_account_lost_email_sent: Ein email mit Anweisungen, ein neues Kennwort zu wählen ist dir geschickt worden.
55 notice_account_activated: Dein Konto ist aktiviert worden. Du kannst jetzt einloggen.
56 notice_successful_create: Erfolgreiche Kreation.
57 notice_successful_update: Erfolgreiches Update.
58 notice_successful_delete: Erfolgreiche Auslassung.
59 notice_successful_connection: Erfolgreicher Anschluß.
60 notice_file_not_found: Erbetene Akte besteht nicht oder ist gelöscht worden.
61
62 gui_validation_error: 1 Störung
63 gui_validation_error_plural: %d Störungen
64
65 field_name: Name
66 field_description: Beschreibung
67 field_summary: Zusammenfassung
68 field_is_required: Erforderlich
69 field_firstname: Vorname
70 field_lastname: Nachname
71 field_mail: Email
72 field_filename: Datei
73 field_filesize: Grootte
74 field_downloads: Downloads
75 field_author: Autor
76 field_created_on: Angelegt
77 field_updated_on: aktualisiert
78 field_field_format: Format
79 field_is_for_all: Für alle Projekte
80 field_possible_values: Mögliche Werte
81 field_regexp: Regulärer Ausdruck
82 field_min_length: Minimale Länge
83 field_max_length: Maximale Länge
84 field_value: Wert
85 field_category: Kategorie
86 field_title: Títel
87 field_project: Projekt
88 #field_issue: Issue
89 field_status: Status
90 field_notes: Anmerkungen
91 field_is_closed: Problem erledigt
92 #field_is_default: Default status
93 field_html_color: Farbe
94 field_tracker: Tracker
95 field_subject: Thema
96 #field_due_date: Due date
97 field_assigned_to: Zugewiesen an
98 field_priority: Priorität
99 field_fixed_version: Erledigt in Version
100 field_user: Benutzer
101 field_role: Rolle
102 field_homepage: Startseite
103 field_is_public: Öffentlich
104 #field_parent: Subprojekt von
105 field_is_in_chlog: Ansicht der Issues in der Historie
106 field_login: Mitgliedsname
107 field_mail_notification: Mailbenachrichtigung
108 #field_admin: Administrator
109 field_locked: Gesperrt
110 field_last_login_on: Letzte Anmeldung
111 field_language: Sprache
112 field_effective_date: Datum
113 field_password: Passwort
114 field_new_password: Neues Passwort
115 field_password_confirmation: Bestätigung
116 field_version: Version
117 field_type: Typ
118 field_host: Host
119 #field_port: Port
120 #field_account: Account
121 #field_base_dn: Base DN
122 #field_attr_login: Login attribute
123 #field_attr_firstname: Firstname attribute
124 #field_attr_lastname: Lastname attribute
125 #field_attr_mail: Email attribute
126 #field_onthefly: On-the-fly user creation
127
128 label_user: Benutzer
129 label_user_plural: Benutzer
130 label_user_new: Neuer Benutzer
131 label_project: Projekt
132 label_project_new: Neues Projekt
133 label_project_plural: Projekte
134 #label_project_latest: Latest projects
135 #label_issue: Issue
136 #label_issue_new: New issue
137 #label_issue_plural: Issues
138 #label_issue_view_all: View all issues
139 label_document: Dokument
140 label_document_new: Neues Dokument
141 label_document_plural: Dokumente
142 label_role: Rolle
143 label_role_plural: Rollen
144 label_role_new: Neue Rolle
145 label_role_and_permissions: Rollen und Rechte
146 label_member: Mitglied
147 label_member_new: Neues Mitglied
148 label_member_plural: Mitglieder
149 label_tracker: Tracker
150 label_tracker_plural: Tracker
151 label_tracker_new: Neuer Tracker
152 label_workflow: Workflow
153 label_issue_status: Problem Status
154 label_issue_status_plural: Problem Stati
155 label_issue_status_new: Neuer Status
156 label_issue_category: Problem Kategorie
157 label_issue_category_plural: Problem Kategorien
158 label_issue_category_new: Neue Kategorie
159 label_custom_field: Benutzerdefiniertes Feld
160 label_custom_field_plural: Benutzerdefinierte Felder
161 label_custom_field_new: Neues Feld
162 label_enumerations: Enumerationen
163 label_enumeration_new: Neuer Wert
164 label_information: Information
165 label_information_plural: Informationen
166 #label_please_login: Please login
167 label_register: Anmelden
168 label_password_lost: Passwort vergessen
169 label_home: Hauptseite
170 label_my_page: Meine Seite
171 label_my_account: Mein Konto
172 label_my_projects: Meine Projekte
173 label_administration: Administration
174 label_login: Einloggen
175 label_logout: Abmelden
176 label_help: Hilfe
177 label_reported_issues: Gemeldete Issues
178 label_assigned_to_me_issues: Mir zugewiesen
179 label_last_login: Letzte Anmeldung
180 #label_last_updates: Last updated
181 #label_last_updates_plural: %d last updated
182 label_registered_on: Angemeldet am
183 label_activity: Aktivität
184 label_new: Neue
185 label_logged_as: Angemeldet als
186 #label_environment: Environment
187 label_authentication: Authentisierung
188 #label_auth_source: Authentification mode
189 #label_auth_source_new: New authentication mode
190 #label_auth_source_plural: Authentification modes
191 #label_subproject: Subproject
192 #label_subproject_plural: Subprojects
193 label_min_max_length: Min - Max Länge
194 label_list: Liste
195 label_date: Date
196 label_integer: Zahl
197 label_boolean: Boolesch
198 #label_string: String
199 label_text: Text
200 label_attribute: Attribut
201 label_attribute_plural: Attribute
202 #label_download: %d Download
203 #label_download_plural: %d Downloads
204 label_no_data: Nichts anzuzeigen
205 label_change_status: Statuswechsel
206 label_history: Historie
207 label_attachment: Datei
208 label_attachment_new: Neue Datei
209 #label_attachment_delete: Delete file
210 label_attachment_plural: Dateien
211 label_report: Bericht
212 label_report_plural: Berichte
213 #label_news: Neuigkeiten
214 #label_news_new: Add news
215 #label_news_plural: Neuigkeiten
216 label_news_latest: Letzte Neuigkeiten
217 label_news_view_all: Alle Neuigkeiten anzeigen
218 label_change_log: Change log
219 label_settings: Konfiguration
220 label_overview: Übersicht
221 label_version: Version
222 label_version_new: Neue Version
223 label_version_plural: Versionen
224 label_confirmation: Bestätigung
225 #label_export_csv: Export to CSV
226 label_read: Lesen...
227 label_public_projects: Öffentliche Projekte
228 #label_open_issues: Open
229 #label_open_issues_plural: Open
230 #label_closed_issues: Closed
231 #label_closed_issues_plural: Closed
232 label_total: Gesamtzahl
233 label_permissions: Berechtigungen
234 label_current_status: Gegenwärtiger Status
235 label_new_statuses_allowed: Neue Status gewährten
236 label_all: Alle
237 label_none: Kein
238 label_next: Weiter
239 label_previous: Zurück
240 label_used_by: Benutzt von
241
242 button_login: Einloggen
243 button_submit: Einreichen
244 button_save: Speichern
245 button_check_all: Alles auswählen
246 button_uncheck_all: Alles abwählen
247 button_delete: Löschen
248 button_create: Anlegen
249 button_test: Testen
250 button_edit: Bearbeiten
251 button_add: Hinzufügen
252 button_change: Wechseln
253 button_apply: Anwenden
254 button_clear: Zurücksetzen
255 button_lock: Verriegeln
256 button_unlock: Entriegeln
257 button_download: Fernzuladen
258 button_list: Aufzulisten
259 button_view: Siehe
260
261 text_select_mail_notifications: Aktionen für die Mailbenachrichtigung aktiviert werden soll.
262 text_regexp_info: eg. ^[A-Z0-9]+$
263 text_min_max_length_info: 0 heisst keine Beschränkung
264 #text_possible_values_info: values separated with |
265 text_project_destroy_confirmation: Sind sie sicher, daß sie das Projekt löschen wollen ?
266 text_workflow_edit: Auswahl Workflow zum Bearbeiten
267 text_are_you_sure: Sind sie sicher ?
268
269 default_role_manager: Manager
270 default_role_developper: Developer
271 default_role_reporter: Reporter
272 default_tracker_bug: Fehler
273 default_tracker_feature: Feature
274 default_tracker_support: Support
275 default_issue_status_new: Neu
276 default_issue_status_assigned: Zugewiesen
277 default_issue_status_resolved: Gelöst
278 default_issue_status_feedback: Feedback
279 default_issue_status_closed: Erledigt
280 default_issue_status_rejected: Abgewiesen
281 default_doc_category_user: Benutzerdokumentation
282 default_doc_category_tech: Technische Dokumentation
283 default_priority_low: Niedrig
284 default_priority_normal: Normal
285 default_priority_high: Hoch
286 default_priority_urgent: Dringend
287 default_priority_immediate: Sofort
288
289 enumeration_issue_priorities: Issue-Prioritäten
290 enumeration_doc_categories: Dokumentenkategorien
@@ -1,107 +1,150
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang
2 # Copyright (C) 2006 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 module ApplicationHelper
18 module ApplicationHelper
19
19
20 # Return current logged in user or nil
20 # Return current logged in user or nil
21 def loggedin?
21 def loggedin?
22 @logged_in_user
22 @logged_in_user
23 end
23 end
24
24
25 # Return true if user is logged in and is admin, otherwise false
25 # Return true if user is logged in and is admin, otherwise false
26 def admin_loggedin?
26 def admin_loggedin?
27 @logged_in_user and @logged_in_user.admin?
27 @logged_in_user and @logged_in_user.admin?
28 end
28 end
29
29
30 # Return true if user is authorized for controller/action, otherwise false
30 # Return true if user is authorized for controller/action, otherwise false
31 def authorize_for(controller, action)
31 def authorize_for(controller, action)
32 # check if action is allowed on public projects
32 # check if action is allowed on public projects
33 if @project.is_public? and Permission.allowed_to_public "%s/%s" % [ controller, action ]
33 if @project.is_public? and Permission.allowed_to_public "%s/%s" % [ controller, action ]
34 return true
34 return true
35 end
35 end
36 # check if user is authorized
36 # check if user is authorized
37 if @logged_in_user and (@logged_in_user.admin? or Permission.allowed_to_role( "%s/%s" % [ controller, action ], @logged_in_user.role_for_project(@project.id) ) )
37 if @logged_in_user and (@logged_in_user.admin? or Permission.allowed_to_role( "%s/%s" % [ controller, action ], @logged_in_user.role_for_project(@project.id) ) )
38 return true
38 return true
39 end
39 end
40 return false
40 return false
41 end
41 end
42
42
43 # Display a link if user is authorized
43 # Display a link if user is authorized
44 def link_to_if_authorized(name, options = {}, html_options = nil, *parameters_for_method_reference)
44 def link_to_if_authorized(name, options = {}, html_options = nil, *parameters_for_method_reference)
45 link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller], options[:action])
45 link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller], options[:action])
46 end
46 end
47
47
48 # Display a link to user's account page
48 # Display a link to user's account page
49 def link_to_user(user)
49 def link_to_user(user)
50 link_to user.display_name, :controller => 'account', :action => 'show', :id => user
50 link_to user.display_name, :controller => 'account', :action => 'show', :id => user
51 end
51 end
52
52
53 def format_date(date)
53 def format_date(date)
54 l_date(date) if date
54 l_date(date) if date
55 end
55 end
56
56
57 def format_time(time)
57 def format_time(time)
58 l_datetime(time) if time
58 l_datetime(time) if time
59 end
59 end
60
60
61 def pagination_links_full(paginator, options={}, html_options={})
61 def pagination_links_full(paginator, options={}, html_options={})
62 html =''
62 html =''
63 html << link_to(('&#171; ' + l(:label_previous) ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous
63 html << link_to(('&#171; ' + l(:label_previous) ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous
64 html << (pagination_links(paginator, options, html_options) || '')
64 html << (pagination_links(paginator, options, html_options) || '')
65 html << ' ' + link_to((l(:label_next) + ' &#187;'), { :page => paginator.current.next }) if paginator.current.next
65 html << ' ' + link_to((l(:label_next) + ' &#187;'), { :page => paginator.current.next }) if paginator.current.next
66 html
66 html
67 end
67 end
68
68
69 def error_messages_for(object_name, options = {})
69 def error_messages_for(object_name, options = {})
70 options = options.symbolize_keys
70 options = options.symbolize_keys
71 object = instance_variable_get("@#{object_name}")
71 object = instance_variable_get("@#{object_name}")
72 if object && !object.errors.empty?
72 if object && !object.errors.empty?
73 # build full_messages here with controller current language
73 # build full_messages here with controller current language
74 full_messages = []
74 full_messages = []
75 object.errors.each do |attr, msg|
75 object.errors.each do |attr, msg|
76 next if msg.nil?
76 next if msg.nil?
77 if attr == "base"
77 if attr == "base"
78 full_messages << l(msg)
78 full_messages << l(msg)
79 else
79 else
80 full_messages << "&#171; " + (l_has_string?("field_" + attr) ? l("field_" + attr) : object.class.human_attribute_name(attr)) + " &#187; " + l(msg) unless attr == "custom_values"
80 full_messages << "&#171; " + (l_has_string?("field_" + attr) ? l("field_" + attr) : object.class.human_attribute_name(attr)) + " &#187; " + l(msg) unless attr == "custom_values"
81 end
81 end
82 end
82 end
83 # retrieve custom values error messages
83 # retrieve custom values error messages
84 if object.errors[:custom_values]
84 if object.errors[:custom_values]
85 object.custom_values.each do |v|
85 object.custom_values.each do |v|
86 v.errors.each do |attr, msg|
86 v.errors.each do |attr, msg|
87 next if msg.nil?
87 next if msg.nil?
88 full_messages << "&#171; " + v.custom_field.name + " &#187; " + l(msg)
88 full_messages << "&#171; " + v.custom_field.name + " &#187; " + l(msg)
89 end
89 end
90 end
90 end
91 end
91 end
92 content_tag("div",
92 content_tag("div",
93 content_tag(
93 content_tag(
94 options[:header_tag] || "h2", lwr(:gui_validation_error, full_messages.length) + " :"
94 options[:header_tag] || "h2", lwr(:gui_validation_error, full_messages.length) + " :"
95 ) +
95 ) +
96 content_tag("ul", full_messages.collect { |msg| content_tag("li", msg) }),
96 content_tag("ul", full_messages.collect { |msg| content_tag("li", msg) }),
97 "id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
97 "id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
98 )
98 )
99 else
99 else
100 ""
100 ""
101 end
101 end
102 end
102 end
103
103
104 def lang_options_for_select
104 def lang_options_for_select
105 (GLoc.valid_languages.sort {|x,y| x.to_s <=> y.to_s }).collect {|lang| [ l_lang_name(lang.to_s, lang), lang.to_s]}
105 (GLoc.valid_languages.sort {|x,y| x.to_s <=> y.to_s }).collect {|lang| [ l_lang_name(lang.to_s, lang), lang.to_s]}
106 end
106 end
107
108 def label_tag_for(name, option_tags = nil, options = {})
109 label_text = l(("field_"+field.to_s.gsub(/\_id$/, "")).to_sym) + (options.delete(:required) ? @template.content_tag("span", " *", :class => "required"): "")
110 content_tag("label", label_text)
111 end
112
113 def labelled_tabular_form_for(name, object, options, &proc)
114 options[:html] ||= {}
115 options[:html].store :class, "tabular"
116 form_for(name, object, options.merge({ :builder => TabularFormBuilder, :lang => current_language}), &proc)
117 end
118 end
119
120 class TabularFormBuilder < ActionView::Helpers::FormBuilder
121 include GLoc
122
123 def initialize(object_name, object, template, options, proc)
124 set_language_if_valid options.delete(:lang)
125 @object_name, @object, @template, @options, @proc = object_name, object, template, options, proc
107 end
126 end
127
128 (field_helpers - %w(radio_button) + %w(date_select)).each do |selector|
129 src = <<-END_SRC
130 def #{selector}(field, options = {})
131 label_text = l(("field_"+field.to_s.gsub(/\_id$/, "")).to_sym) + (options.delete(:required) ? @template.content_tag("span", " *", :class => "required"): "")
132 label = @template.content_tag("label", label_text,
133 :class => (@object.errors[field] ? "error" : nil),
134 :for => (@object_name.to_s + "_" + field.to_s))
135 label + super
136 end
137 END_SRC
138 class_eval src, __FILE__, __LINE__
139 end
140
141 def select(field, choices, options = {})
142 label_text = l(("field_"+field.to_s.gsub(/\_id$/, "")).to_sym) + (options.delete(:required) ? @template.content_tag("span", " *", :class => "required"): "")
143 label = @template.content_tag("label", label_text,
144 :class => (@object.errors[field] ? "error" : nil),
145 :for => (@object_name.to_s + "_" + field.to_s))
146 label + super
147 end
148
149 end
150
@@ -1,70 +1,65
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang
2 # Copyright (C) 2006 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 module CustomFieldsHelper
18 module CustomFieldsHelper
19
19
20 # Return custom field html tag corresponding to its format
20 # Return custom field html tag corresponding to its format
21 def custom_field_tag(custom_value)
21 def custom_field_tag(custom_value)
22 custom_field = custom_value.custom_field
22 custom_field = custom_value.custom_field
23 field_name = "custom_fields[#{custom_field.id}]"
23 field_name = "custom_fields[#{custom_field.id}]"
24 field_id = "custom_fields_#{custom_field.id}"
24 field_id = "custom_fields_#{custom_field.id}"
25
25
26 case custom_field.field_format
26 case custom_field.field_format
27 when "string", "int", "date"
27 when "string", "int", "date"
28 text_field 'custom_value', 'value', :name => field_name, :id => field_id
28 text_field 'custom_value', 'value', :name => field_name, :id => field_id
29 when "text"
29 when "text"
30 text_area 'custom_value', 'value', :name => field_name, :id => field_id, :cols => 60, :rows => 3
30 text_area 'custom_value', 'value', :name => field_name, :id => field_id, :cols => 60, :rows => 3
31 when "bool"
31 when "bool"
32 check_box 'custom_value', 'value', :name => field_name, :id => field_id
32 check_box 'custom_value', 'value', :name => field_name, :id => field_id
33 when "list"
33 when "list"
34 select 'custom_value', 'value', custom_field.possible_values.split('|'), { :include_blank => true }, :name => field_name, :id => field_id
34 select 'custom_value', 'value', custom_field.possible_values.split('|'), { :include_blank => true }, :name => field_name, :id => field_id
35 end
35 end
36 end
36 end
37
37
38 # Return custom field label tag
38 # Return custom field label tag
39 def custom_field_label_tag(custom_value)
39 def custom_field_label_tag(custom_value)
40 content_tag "label", custom_value.custom_field.name +
40 content_tag "label", custom_value.custom_field.name +
41 (custom_value.custom_field.is_required? ? " <span class=\"required\">*</span>" : ""),
41 (custom_value.custom_field.is_required? ? " <span class=\"required\">*</span>" : ""),
42 :for => "custom_fields_#{custom_value.custom_field.id}"
42 :for => "custom_fields_#{custom_value.custom_field.id}",
43 :class => (custom_value.errors.empty? ? nil : "error" )
43 end
44 end
44
45
45 # Return custom field tag with its label tag
46 # Return custom field tag with its label tag
46 def custom_field_tag_with_label(custom_value)
47 def custom_field_tag_with_label(custom_value)
47 case custom_value.custom_field.field_format
48 custom_field_label_tag(custom_value) + custom_field_tag(custom_value)
48 when "bool"
49 # label is displayed inline after the checkbox
50 custom_field_tag(custom_value) + " " + custom_field_label_tag(custom_value)
51 else
52 custom_field_label_tag(custom_value) + "<br />" + custom_field_tag(custom_value)
53 end
54 end
49 end
55
50
56 # Return a string used to display a custom value
51 # Return a string used to display a custom value
57 def show_value(custom_value)
52 def show_value(custom_value)
58 case custom_value.custom_field.field_format
53 case custom_value.custom_field.field_format
59 when "bool"
54 when "bool"
60 l_YesNo(custom_value.value == "1")
55 l_YesNo(custom_value.value == "1")
61 else
56 else
62 custom_value.value
57 custom_value.value
63 end
58 end
64 end
59 end
65
60
66 # Return an array of custom field formats which can be used in select_tag
61 # Return an array of custom field formats which can be used in select_tag
67 def custom_field_formats_for_select
62 def custom_field_formats_for_select
68 CustomField::FIELD_FORMATS.keys.collect { |k| [ l(CustomField::FIELD_FORMATS[k]), k ] }
63 CustomField::FIELD_FORMATS.keys.collect { |k| [ l(CustomField::FIELD_FORMATS[k]), k ] }
69 end
64 end
70 end
65 end
@@ -1,25 +1,18
1 <center>
1 <center>
2 <div class="box login">
2 <div class="box login">
3 <h2><%= image_tag 'login' %>&nbsp;&nbsp;<%=l(:label_please_login)%></h2>
3 <h2><%= image_tag 'login' %>&nbsp;&nbsp;<%=l(:label_please_login)%></h2>
4
4
5 <%= start_form_tag :action=> "login" %>
5 <%= start_form_tag({:action=> "login"}, :class => "tabular") %>
6 <table cellpadding="4">
6 <p><label for="login"><%=l(:field_login)%>:</label>
7 <tr>
7 <%= text_field_tag 'login', nil, :size => 25 %></p>
8 <td><label for="login"><%=l(:field_login)%>:</label></td>
9 <td><%= text_field_tag 'login', nil, :size => 25 %></td>
10 </tr>
11 <tr>
12 <td><label for="password"><%=l(:field_password)%>:</label></td>
13 <td><%= password_field_tag 'password', nil, :size => 25 %></td>
14 </tr>
15 </table>
16
8
17 &nbsp;
9 <p><label for="password"><%=l(:field_password)%>:</label>
10 <%= password_field_tag 'password', nil, :size => 25 %></p>
18
11
19 <p><center><input type="submit" name="login" value="<%=l(:button_login)%> &#187;" class="primary" /></center></p>
12 <p><center><input type="submit" name="login" value="<%=l(:button_login)%> &#187;" class="primary" /></center>
20 <%= end_form_tag %>
13 <%= end_form_tag %>
21 <br />
14
22 <% unless $RDM_SELF_REGISTRATION == false %><%= link_to l(:label_register), :action => 'register' %> |<% end %>
15 <br><% unless $RDM_SELF_REGISTRATION == false %><%= link_to l(:label_register), :action => 'register' %> |<% end %>
23 <%= link_to l(:label_password_lost), :action => 'lost_password' %>
16 <%= link_to l(:label_password_lost), :action => 'lost_password' %></p>
24 </div>
17 </div>
25 </center> No newline at end of file
18 </center>
@@ -1,14 +1,14
1 <center>
1 <center>
2 <div class="box login">
2 <div class="box login">
3 <h2><%=l(:label_password_lost)%></h2>
3 <h2><%=l(:label_password_lost)%></h2>
4
4
5 <%= start_form_tag %>
5 <%= start_form_tag({:action=> "lost_password"}, :class => "tabular") %>
6
6
7 <p><label for="mail"><%=l(:field_mail)%> <span class="required">*</span></label><br/>
7 <p><label for="mail"><%=l(:field_mail)%> <span class="required">*</span></label>
8 <%= text_field_tag 'mail', nil, :size => 40 %></p>
8 <%= text_field_tag 'mail', nil, :size => 40 %></p>
9
9
10 <p><center><%= submit_tag l(:button_submit) %></center></p>
10 <p><center><%= submit_tag l(:button_submit) %></center></p>
11
11
12 <%= end_form_tag %>
12 <%= end_form_tag %>
13 </div>
13 </div>
14 </center> No newline at end of file
14 </center>
@@ -1,57 +1,54
1 <h2><%=l(:label_my_account)%></h2>
1 <h2><%=l(:label_my_account)%></h2>
2
2
3 <p><%=l(:field_login)%>: <strong><%= @user.login %></strong><br />
3 <p><%=l(:field_login)%>: <strong><%= @user.login %></strong><br />
4 <%=l(:field_created_on)%>: <%= format_time(@user.created_on) %>,
4 <%=l(:field_created_on)%>: <%= format_time(@user.created_on) %>,
5 <%=l(:field_updated_on)%>: <%= format_time(@user.updated_on) %></p>
5 <%=l(:field_updated_on)%>: <%= format_time(@user.updated_on) %></p>
6
6
7 <%= error_messages_for 'user' %>
7 <%= error_messages_for 'user' %>
8
8
9 <div class="splitcontentleft">
10 <div class="box">
9 <div class="box">
11 <h3><%=l(:label_information_plural)%></h3>
10 <h3><%=l(:label_information_plural)%></h3>
12
11
13 <%= start_form_tag :action => 'my_account' %>
12 <%= start_form_tag({:action => 'my_account'}, :class => "tabular") %>
14
13
15 <!--[form:user]-->
14 <!--[form:user]-->
16 <p><label for="user_firstname"><%=l(:field_firstname)%> <span class="required">*</span></label><br/>
15 <p><label for="user_firstname"><%=l(:field_firstname)%> <span class="required">*</span></label>
17 <%= text_field 'user', 'firstname' %></p>
16 <%= text_field 'user', 'firstname' %></p>
18
17
19 <p><label for="user_lastname"><%=l(:field_lastname)%> <span class="required">*</span></label><br/>
18 <p><label for="user_lastname"><%=l(:field_lastname)%> <span class="required">*</span></label>
20 <%= text_field 'user', 'lastname' %></p>
19 <%= text_field 'user', 'lastname' %></p>
21
20
22 <p><label for="user_mail"><%=l(:field_mail)%> <span class="required">*</span></label><br/>
21 <p><label for="user_mail"><%=l(:field_mail)%> <span class="required">*</span></label>
23 <%= text_field 'user', 'mail', :size => 40 %></p>
22 <%= text_field 'user', 'mail', :size => 40 %></p>
24
23
25 <p><label for="user_language"><%=l(:field_language)%></label><br/>
24 <p><label for="user_language"><%=l(:field_language)%></label>
26 <%= select("user", "language", lang_options_for_select) %></p>
25 <%= select("user", "language", lang_options_for_select) %></p>
27 <!--[eoform:user]-->
26 <!--[eoform:user]-->
28
27
29 <p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p>
28 <p><label for="user_mail_notification"><%=l(:field_mail_notification)%></label>
29 <%= check_box 'user', 'mail_notification' %></p>
30
30
31 <center><%= submit_tag l(:button_save) %></center>
31 <center><%= submit_tag l(:button_save) %></center>
32 <%= end_form_tag %>
32 <%= end_form_tag %>
33 </div>
33 </div>
34 </div>
35
34
36
35
37 <div class="splitcontentright">
38 <% unless @user.auth_source_id %>
36 <% unless @user.auth_source_id %>
39 <div class="box">
37 <div class="box">
40 <h3><%=l(:field_password)%></h3>
38 <h3><%=l(:field_password)%></h3>
41
39
42 <%= start_form_tag :action => 'change_password' %>
40 <%= start_form_tag({:action => 'change_password'}, :class => "tabular") %>
43
41
44 <p><label for="password"><%=l(:field_password)%> <span class="required">*</span></label><br/>
42 <p><label for="password"><%=l(:field_password)%> <span class="required">*</span></label>
45 <%= password_field_tag 'password', nil, :size => 25 %></p>
43 <%= password_field_tag 'password', nil, :size => 25 %></p>
46
44
47 <p><label for="new_password"><%=l(:field_new_password)%> <span class="required">*</span></label><br/>
45 <p><label for="new_password"><%=l(:field_new_password)%> <span class="required">*</span></label>
48 <%= password_field_tag 'new_password', nil, :size => 25 %></p>
46 <%= password_field_tag 'new_password', nil, :size => 25 %></p>
49
47
50 <p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label><br/>
48 <p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label>
51 <%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
49 <%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
52
50
53 <center><%= submit_tag l(:button_save) %></center>
51 <center><%= submit_tag l(:button_save) %></center>
54 <%= end_form_tag %>
52 <%= end_form_tag %>
55 </div>
53 </div>
56 <% end %>
54 <% end %>
57 </div> No newline at end of file
@@ -1,21 +1,21
1 <center>
1 <center>
2 <div class="box login">
2 <div class="box login">
3 <h2><%=l(:label_password_lost)%></h2>
3 <h2><%=l(:label_password_lost)%></h2>
4
4
5 <p><%=l(:field_login)%>: <strong><%= @user.login %></strong><br />
5 <p><%=l(:field_login)%>: <strong><%= @user.login %></strong><br />
6
6
7 <%= error_messages_for 'user' %>
7 <%= error_messages_for 'user' %>
8
8
9 <%= start_form_tag :token => @token.value %>
9 <%= start_form_tag({:token => @token.value}, :class => "tabular") %>
10
10
11 <p><label for="new_password"><%=l(:field_new_password)%> <span class="required">*</span></label><br/>
11 <p><label for="new_password"><%=l(:field_new_password)%> <span class="required">*</span></label>
12 <%= password_field_tag 'new_password', nil, :size => 25 %></p>
12 <%= password_field_tag 'new_password', nil, :size => 25 %></p>
13
13
14 <p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label><br/>
14 <p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label>
15 <%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
15 <%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
16
16
17 <p><center><%= submit_tag l(:button_save) %></center></p>
17 <p><center><%= submit_tag l(:button_save) %></center></p>
18 <%= end_form_tag %>
18 <%= end_form_tag %>
19
19
20 </div>
20 </div>
21 </center> No newline at end of file
21 </center>
@@ -1,38 +1,39
1 <h2><%=l(:label_register)%></h2>
1 <h2><%=l(:label_register)%></h2>
2
2
3 <%= start_form_tag %>
3 <%= start_form_tag({:action => 'register'}, :class => "tabular") %>
4 <%= error_messages_for 'user' %>
4 <%= error_messages_for 'user' %>
5
5
6 <div class="box">
6 <div class="box">
7 <!--[form:user]-->
7 <!--[form:user]-->
8 <p><label for="user_login"><%=l(:field_login)%></label> <span class="required">*</span><br/>
8 <p><label for="user_login"><%=l(:field_login)%> <span class="required">*</span></label>
9 <%= text_field 'user', 'login', :size => 25 %></p>
9 <%= text_field 'user', 'login', :size => 25 %></p>
10
10
11 <p><label for="password"><%=l(:field_password)%></label> <span class="required">*</span><br/>
11 <p><label for="password"><%=l(:field_password)%> <span class="required">*</span></label>
12 <%= password_field_tag 'password', nil, :size => 25 %></p>
12 <%= password_field_tag 'password', nil, :size => 25 %></p>
13
13
14 <p><label for="password_confirmation"><%=l(:field_password_confirmation)%></label> <span class="required">*</span><br/>
14 <p><label for="password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label>
15 <%= password_field_tag 'password_confirmation', nil, :size => 25 %></p>
15 <%= password_field_tag 'password_confirmation', nil, :size => 25 %></p>
16
16
17 <p><label for="user_firstname"><%=l(:field_firstname)%></label> <span class="required">*</span><br/>
17 <p><label for="user_firstname"><%=l(:field_firstname)%> <span class="required">*</span></label>
18 <%= text_field 'user', 'firstname' %></p>
18 <%= text_field 'user', 'firstname' %></p>
19
19
20 <p><label for="user_lastname"><%=l(:field_lastname)%></label> <span class="required">*</span><br/>
20 <p><label for="user_lastname"><%=l(:field_lastname)%> <span class="required">*</span></label>
21 <%= text_field 'user', 'lastname' %></p>
21 <%= text_field 'user', 'lastname' %></p>
22
22
23 <p><label for="user_mail"><%=l(:field_mail)%></label> <span class="required">*</span><br/>
23 <p><label for="user_mail"><%=l(:field_mail)%> <span class="required">*</span></label>
24 <%= text_field 'user', 'mail' %></p>
24 <%= text_field 'user', 'mail' %></p>
25
25
26 <p><label for="user_language"><%=l(:field_language)%></label><br/>
26 <p><label for="user_language"><%=l(:field_language)%></label>
27 <%= select("user", "language", lang_options_for_select) %></p>
27 <%= select("user", "language", lang_options_for_select) %></p>
28
28
29 <% for @custom_value in @custom_values %>
29 <% for @custom_value in @custom_values %>
30 <p><%= custom_field_tag_with_label @custom_value %></p>
30 <p><%= custom_field_tag_with_label @custom_value %></p>
31 <% end %>
31 <% end %>
32
32
33 <p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p>
33 <p><label for="user_mail_notification"><%=l(:field_mail_notification)%></label>
34 <%= check_box 'user', 'mail_notification' %></p>
34 <!--[eoform:user]-->
35 <!--[eoform:user]-->
35 </div>
36 </div>
36
37
37 <%= submit_tag l(:button_submit) %>
38 <%= submit_tag l(:button_submit) %>
38 <%= end_form_tag %>
39 <%= end_form_tag %>
@@ -1,32 +1,30
1 <h2><%=l(:label_project_plural)%></h2>
1 <h2><%=l(:label_project_plural)%></h2>
2
2
3 <table width="100%" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <%= sort_header_tag('name', :caption => l(:label_project)) %>
5 <%= sort_header_tag('name', :caption => l(:label_project)) %>
6 <th><%=l(:field_description)%></th>
6 <th><%=l(:field_description)%></th>
7 <th><%=l(:field_is_public)%></th>
7 <th><%=l(:field_is_public)%></th>
8 <th><%=l(:label_subproject_plural)%></th>
8 <th><%=l(:label_subproject_plural)%></th>
9 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
9 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
10 <th></th>
10 <th></th>
11 </tr>
11 </tr>
12
12
13 <% for project in @projects %>
13 <% for project in @projects %>
14 <tr class="<%= cycle("odd", "even") %>">
14 <tr class="<%= cycle("odd", "even") %>">
15 <td><%= link_to project.name, :controller => 'projects', :action => 'settings', :id => project %>
15 <td><%= link_to project.name, :controller => 'projects', :action => 'settings', :id => project %>
16 <td><%= project.description %>
16 <td><%= project.description %>
17 <td align="center"><%= image_tag 'true' if project.is_public? %>
17 <td align="center"><%= image_tag 'true' if project.is_public? %>
18 <td align="center"><%= project.projects_count %>
18 <td align="center"><%= project.projects_count %>
19 <td align="center"><%= format_date(project.created_on) %>
19 <td align="center"><%= format_date(project.created_on) %>
20 <td align="center">
20 <td align="center">
21 <%= start_form_tag({:controller => 'projects', :action => 'destroy', :id => project}) %>
21 <%= button_to l(:button_delete), { :controller => 'projects', :action => 'destroy', :id => project }, :class => "button-small" %>
22 <%= submit_tag l(:button_delete), :class => "button-small" %>
23 <%= end_form_tag %>
24 </td>
22 </td>
25 </tr>
23 </tr>
26 <% end %>
24 <% end %>
27 </table>
25 </table>
28
26
29 <p><%= pagination_links_full @project_pages %>
27 <p><%= pagination_links_full @project_pages %>
30 [ <%= @project_pages.current.first_item %> - <%= @project_pages.current.last_item %> / <%= @project_count %> ]</p>
28 [ <%= @project_pages.current.first_item %> - <%= @project_pages.current.last_item %> / <%= @project_count %> ]</p>
31
29
32 <p><%= link_to ('&#187; ' + l(:label_project_new)), :controller => 'projects', :action => 'add' %></p> No newline at end of file
30 <p><%= link_to ('&#187; ' + l(:label_project_new)), :controller => 'projects', :action => 'add' %></p>
@@ -1,49 +1,45
1 <%= error_messages_for 'auth_source' %>
1 <%= error_messages_for 'auth_source' %>
2
2
3 <div class="box">
3 <div class="box">
4 <!--[form:auth_source]-->
4 <!--[form:auth_source]-->
5 <p><label for="auth_source_name"><%=l(:field_name)%></label> <span class="required">*</span><br/>
5 <p><label for="auth_source_name"><%=l(:field_name)%> <span class="required">*</span></label>
6 <%= text_field 'auth_source', 'name' %></p>
6 <%= text_field 'auth_source', 'name' %></p>
7
7
8 <p><label for="auth_source_host"><%=l(:field_host)%></label> <span class="required">*</span><br/>
8 <p><label for="auth_source_host"><%=l(:field_host)%> <span class="required">*</span></label>
9 <%= text_field 'auth_source', 'host' %></p>
9 <%= text_field 'auth_source', 'host' %></p>
10
10
11 <p><label for="auth_source_port"><%=l(:field_port)%></label> <span class="required">*</span><br/>
11 <p><label for="auth_source_port"><%=l(:field_port)%> <span class="required">*</span></label>
12 <%= text_field 'auth_source', 'port', :size => 6 %></p>
12 <%= text_field 'auth_source', 'port', :size => 6 %></p>
13
13
14 <p><label for="auth_source_account"><%=l(:field_account)%></label><br/>
14 <p><label for="auth_source_account"><%=l(:field_account)%></label>
15 <%= text_field 'auth_source', 'account' %></p>
15 <%= text_field 'auth_source', 'account' %></p>
16
16
17 <p><label for="auth_source_account_password"><%=l(:field_password)%></label><br/>
17 <p><label for="auth_source_account_password"><%=l(:field_password)%></label>
18 <%= password_field 'auth_source', 'account_password' %></p>
18 <%= password_field 'auth_source', 'account_password' %></p>
19
19
20 <p><label for="auth_source_base_dn"><%=l(:field_base_dn)%></label> <span class="required">*</span><br/>
20 <p><label for="auth_source_base_dn"><%=l(:field_base_dn)%> <span class="required">*</span></label>
21 <%= text_field 'auth_source', 'base_dn', :size => 60 %></p>
21 <%= text_field 'auth_source', 'base_dn', :size => 60 %></p>
22 </div>
22
23
23 <p><%= check_box 'auth_source', 'onthefly_register' %>
24 <div class="box">
24 <label for="auth_source_onthefly_register"><%=l(:field_onthefly)%></label></p>
25 <p><label for="auth_source_onthefly_register"><%=l(:field_onthefly)%></label>
26 <%= check_box 'auth_source', 'onthefly_register' %></p>
25
27
28 <p>
26 <fieldset><legend><%=l(:label_attribute_plural)%></legend>
29 <fieldset><legend><%=l(:label_attribute_plural)%></legend>
27 <div style="float:left;margin-right:10px;">
30 <p><label for="auth_source_attr_login"><%=l(:field_login)%> <span class="required">*</span></label>
28 <p><label for="auth_source_attr_login"><%=l(:field_login)%></label> <span class="required">*</span><br/>
29 <%= text_field 'auth_source', 'attr_login', :size => 20 %></p>
31 <%= text_field 'auth_source', 'attr_login', :size => 20 %></p>
30 </div>
31
32
32 <div style="float:left;margin-right:10px;">
33 <p><label for="auth_source_attr_firstname"><%=l(:field_firstname)%></label>
33 <p><label for="auth_source_attr_firstname"><%=l(:field_firstname)%></label><br/>
34 <%= text_field 'auth_source', 'attr_firstname', :size => 20 %></p>
34 <%= text_field 'auth_source', 'attr_firstname', :size => 20 %></p>
35 </div>
36
35
37 <div style="float:left;margin-right:10px;">
36 <p><label for="auth_source_attr_lastname"><%=l(:field_lastname)%></label>
38 <p><label for="auth_source_attr_lastname"><%=l(:field_lastname)%></label><br/>
39 <%= text_field 'auth_source', 'attr_lastname', :size => 20 %></p>
37 <%= text_field 'auth_source', 'attr_lastname', :size => 20 %></p>
40 </div>
41
38
42 <div>
39 <p><label for="auth_source_attr_mail"><%=l(:field_mail)%></label>
43 <p><label for="auth_source_attr_mail"><%=l(:field_mail)%></label><br/>
44 <%= text_field 'auth_source', 'attr_mail', :size => 20 %></p>
40 <%= text_field 'auth_source', 'attr_mail', :size => 20 %></p>
45 </div>
46 </fieldset>
41 </fieldset>
47
42 </p>
48 <!--[eoform:auth_source]-->
49 </div>
43 </div>
44 <!--[eoform:auth_source]-->
45
@@ -1,7 +1,7
1 <h2><%=l(:label_auth_source)%> (<%= @auth_source.auth_method_name %>)</h2>
1 <h2><%=l(:label_auth_source)%> (<%= @auth_source.auth_method_name %>)</h2>
2
2
3 <%= start_form_tag :action => 'update', :id => @auth_source %>
3 <%= start_form_tag({:action => 'update', :id => @auth_source}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
7
7
@@ -1,32 +1,30
1 <h2><%=l(:label_auth_source_plural)%></h2>
1 <h2><%=l(:label_auth_source_plural)%></h2>
2
2
3 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <td><%=l(:field_name)%></td>
5 <td><%=l(:field_name)%></td>
6 <td><%=l(:field_type)%></td>
6 <td><%=l(:field_type)%></td>
7 <td><%=l(:field_host)%></td>
7 <td><%=l(:field_host)%></td>
8 <td></td>
8 <td></td>
9 <td></td>
9 <td></td>
10 </tr>
10 </tr>
11
11
12 <% for source in @auth_sources %>
12 <% for source in @auth_sources %>
13 <tr class="<%= cycle("odd", "even") %>">
13 <tr class="<%= cycle("odd", "even") %>">
14 <td><%= link_to source.name, :action => 'edit', :id => source%></td>
14 <td><%= link_to source.name, :action => 'edit', :id => source%></td>
15 <td align="center"><%= source.auth_method_name %></td>
15 <td align="center"><%= source.auth_method_name %></td>
16 <td align="center"><%= source.host %></td>
16 <td align="center"><%= source.host %></td>
17 <td align="center">
17 <td align="center">
18 <%= link_to l(:button_test), :action => 'test_connection', :id => source %>
18 <%= link_to l(:button_test), :action => 'test_connection', :id => source %>
19 </td>
19 </td>
20 <td align="center">
20 <td align="center">
21 <%= start_form_tag :action => 'destroy', :id => source %>
21 <%= button_to l(:button_delete), { :action => 'destroy', :id => source }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
22 <%= submit_tag l(:button_delete), :class => "button-small" %>
23 <%= end_form_tag %>
24 </td>
22 </td>
25 </tr>
23 </tr>
26 <% end %>
24 <% end %>
27 </table>
25 </table>
28
26
29 <%= pagination_links_full @auth_source_pages %>
27 <%= pagination_links_full @auth_source_pages %>
30 <br />
28 <br />
31 <%= link_to '&#187; ' + l(:label_auth_source_new), :action => 'new' %>
29 <%= link_to '&#187; ' + l(:label_auth_source_new), :action => 'new' %>
32
30
@@ -1,6 +1,6
1 <h2><%=l(:label_auth_source_new)%> (<%= @auth_source.auth_method_name %>)</h2>
1 <h2><%=l(:label_auth_source_new)%> (<%= @auth_source.auth_method_name %>)</h2>
2
2
3 <%= start_form_tag :action => 'create' %>
3 <%= start_form_tag({:action => 'create'}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
@@ -1,53 +1,52
1 <%= error_messages_for 'custom_field' %>
1 <%= error_messages_for 'custom_field' %>
2
2
3 <!--[form:custom_field]-->
3 <!--[form:custom_field]-->
4 <div class="box">
4 <div class="box">
5 <p><label for="custom_field_name"><%=l(:field_name)%></label> <span class="required">*</span><br/>
5 <p><label for="custom_field_name"><%=l(:field_name)%><span class="required"> *</span></label>
6 <%= text_field 'custom_field', 'name' %></p>
6 <%= text_field 'custom_field', 'name' %></p>
7
7
8 <p><label for="custom_field_typ"><%=l(:field_field_format)%></label><br/>
8 <p><label for="custom_field_field_format"><%=l(:field_field_format)%></label>
9 <%= select("custom_field", "field_format", custom_field_formats_for_select) %></p>
9 <%= select("custom_field", "field_format", custom_field_formats_for_select) %></p>
10
10
11 <p><label for="custom_field_min_length"><%=l(:label_min_max_length)%></label> (<%=l(:text_min_max_length_info)%>)<br/>
11 <p><label for="custom_field_min_length"><%=l(:label_min_max_length)%></label>
12 <%= text_field 'custom_field', 'min_length', :size => 5 %> -
12 <%= text_field 'custom_field', 'min_length', :size => 5 %> -
13 <%= text_field 'custom_field', 'max_length', :size => 5 %></p>
13 <%= text_field 'custom_field', 'max_length', :size => 5 %><br>(<%=l(:text_min_max_length_info)%>)</p>
14
14
15 <p><label for="custom_field_regexp"><%=l(:field_regexp)%></label> (<%=l(:text_regexp_info)%>)<br/>
15 <p><label for="custom_field_regexp"><%=l(:field_regexp)%></label>
16 <%= text_field 'custom_field', 'regexp', :size => 50 %></p>
16 <%= text_field 'custom_field', 'regexp', :size => 50 %><br>(<%=l(:text_regexp_info)%>)</p>
17
17
18 <p><label for="custom_field_possible_values"><%=l(:field_possible_values)%></label> (<%=l(:text_possible_values_info)%>)<br/>
18 <p><label for="custom_field_possible_values"><%=l(:field_possible_values)%></label>
19 <%= text_area 'custom_field', 'possible_values', :rows => 5, :cols => 60 %></p>
19 <%= text_area 'custom_field', 'possible_values', :rows => 5, :cols => 60 %><br>(<%=l(:text_possible_values_info)%>)</p>
20 </div>
20 </div>
21 <!--[eoform:custom_field]-->
21 <!--[eoform:custom_field]-->
22
22
23 <div class="box">
23 <div class="box">
24 <% case type.to_s
24 <% case type.to_s
25 when "IssueCustomField" %>
25 when "IssueCustomField" %>
26
26
27 <fieldset><legend><%=l(:label_tracker_plural)%></legend>
27 <fieldset><legend><%=l(:label_tracker_plural)%></legend>
28 <% for tracker in @trackers %>
28 <% for tracker in @trackers %>
29 <input type="checkbox"
29 <input type="checkbox"
30 name="tracker_ids[]"
30 name="tracker_ids[]"
31 value="<%= tracker.id %>"
31 value="<%= tracker.id %>"
32 <%if @custom_field.trackers.include? tracker%>checked="checked"<%end%>
32 <%if @custom_field.trackers.include? tracker%>checked="checked"<%end%>
33 > <%= tracker.name %>
33 > <%= tracker.name %>
34 <% end %></fieldset>
34 <% end %></fieldset>
35 &nbsp;
35 &nbsp;
36
36
37 <p><%= check_box 'custom_field', 'is_required' %>
37 <p><label for="custom_field_is_required"><%=l(:field_is_required)%></label>
38 <label for="custom_field_is_required"><%=l(:field_is_required)%></label></p>
38 <%= check_box 'custom_field', 'is_required' %></p>
39
39
40 <p><%= check_box 'custom_field', 'is_for_all' %>
40 <p><label for="custom_field_is_for_all"><%=l(:field_is_for_all)%></label>
41 <label for="custom_field_is_for_all"><%=l(:field_is_for_all)%></label></p>
41 <%= check_box 'custom_field', 'is_for_all' %></p>
42
42
43 <% when "UserCustomField" %>
43 <% when "UserCustomField" %>
44 <p><%= check_box 'custom_field', 'is_required' %>
44 <p><label for="custom_field_is_required"><%=l(:field_is_required)%></label>
45 <label for="custom_field_is_required"><%=l(:field_is_required)%></label></p>
45 <%= check_box 'custom_field', 'is_required' %></p>
46
46
47 <% when "ProjectCustomField" %>
47 <% when "ProjectCustomField" %>
48 <p><%= check_box 'custom_field', 'is_required' %>
48 <p><label for="custom_field_is_required"><%=l(:field_is_required)%></label>
49 <label for="custom_field_is_required"><%=l(:field_is_required)%></label></p>
49 <%= check_box 'custom_field', 'is_required' %></p>
50
51
50
52 <% end %>
51 <% end %>
53 </div>
52 </div>
@@ -1,6 +1,6
1 <h2><%=l(:label_custom_field)%> (<%=l(@custom_field.type_name)%>)</h2>
1 <h2><%=l(:label_custom_field)%> (<%=l(@custom_field.type_name)%>)</h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @custom_field %>
3 <%= start_form_tag({:action => 'edit', :id => @custom_field}, :class => "tabular") %>
4 <%= render :partial => 'form', :locals => { :type => @custom_field.type } %>
4 <%= render :partial => 'form', :locals => { :type => @custom_field.type } %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
@@ -1,37 +1,36
1 <h2><%=l(:label_custom_field_plural)%></h2>
1 <h2><%=l(:label_custom_field_plural)%></h2>
2
2
3 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <th><%=l(:field_name)%></th>
5 <th><%=l(:field_name)%></th>
6 <th><%=l(:field_type)%></th>
6 <th><%=l(:field_type)%></th>
7 <th><%=l(:field_field_format)%></th>
7 <th><%=l(:field_field_format)%></th>
8 <th><%=l(:field_is_required)%></th>
8 <th><%=l(:field_is_required)%></th>
9 <th><%=l(:field_is_for_all)%></th>
9 <th><%=l(:field_is_for_all)%></th>
10 <th><%=l(:label_used_by)%></th>
10 <th><%=l(:label_used_by)%></th>
11 <th></th>
11 <th></th>
12 </tr>
12 </tr>
13 <% for custom_field in @custom_fields %>
13 <% for custom_field in @custom_fields %>
14 <tr class="<%= cycle("odd", "even") %>">
14 <tr class="<%= cycle("odd", "even") %>">
15 <td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></td>
15 <td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></td>
16 <td align="center"><%= l(custom_field.type_name) %></td>
16 <td align="center"><%= l(custom_field.type_name) %></td>
17 <td align="center"><%= l(CustomField::FIELD_FORMATS[custom_field.field_format]) %></td>
17 <td align="center"><%= l(CustomField::FIELD_FORMATS[custom_field.field_format]) %></td>
18 <td align="center"><%= image_tag 'true' if custom_field.is_required? %></td>
18 <td align="center"><%= image_tag 'true' if custom_field.is_required? %></td>
19 <td align="center"><%= image_tag 'true' if custom_field.is_for_all? %></td>
19 <td align="center"><%= image_tag 'true' if custom_field.is_for_all? %></td>
20 <td align="center"><%= custom_field.projects.count.to_s + ' ' + lwr(:label_project, custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
20 <td align="center"><%= custom_field.projects.count.to_s + ' ' + lwr(:label_project, custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
21 <td align="center">
21 <td align="center">
22 <%= start_form_tag :action => 'destroy', :id => custom_field %>
22 <%= button_to l(:button_delete), { :action => 'destroy', :id => custom_field }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
23 <%= submit_tag l(:button_delete), :class => "button-small" %>
23 </td>
24 <%= end_form_tag %> </td>
25 </tr>
24 </tr>
26 <% end %>
25 <% end %>
27 </table>
26 </table>
28
27
29 <%= pagination_links_full @custom_field_pages %>
28 <%= pagination_links_full @custom_field_pages %>
30
29
31 <br />
30 <br />
32 <%=l(:label_custom_field_new)%>:
31 <%=l(:label_custom_field_new)%>:
33 <ul>
32 <ul>
34 <li><%= link_to l(:label_issue_plural), :action => 'new', :type => 'IssueCustomField' %></li>
33 <li><%= link_to l(:label_issue_plural), :action => 'new', :type => 'IssueCustomField' %></li>
35 <li><%= link_to l(:label_project_plural), :action => 'new', :type => 'ProjectCustomField' %></li>
34 <li><%= link_to l(:label_project_plural), :action => 'new', :type => 'ProjectCustomField' %></li>
36 <li><%= link_to l(:label_user_plural), :action => 'new', :type => 'UserCustomField' %></li>
35 <li><%= link_to l(:label_user_plural), :action => 'new', :type => 'UserCustomField' %></li>
37 </ul>
36 </ul>
@@ -1,8 +1,8
1 <h2><%=l(:label_custom_field_new)%> (<%=l(@custom_field.type_name)%>)</h2>
1 <h2><%=l(:label_custom_field_new)%> (<%=l(@custom_field.type_name)%>)</h2>
2
2
3 <%= start_form_tag :action => 'new' %>
3 <%= start_form_tag({:action => 'new'}, :class => "tabular") %>
4 <%= render :partial => 'form', :locals => { :type => @custom_field.type } %>
4 <%= render :partial => 'form', :locals => { :type => @custom_field.type } %>
5 <%= hidden_field_tag 'type', @custom_field.type %>
5 <%= hidden_field_tag 'type', @custom_field.type %>
6 <%= submit_tag l(:button_save) %>
6 <%= submit_tag l(:button_save) %>
7 <%= end_form_tag %>
7 <%= end_form_tag %>
8
8
@@ -1,15 +1,15
1 <%= error_messages_for 'document' %>
1 <%= error_messages_for 'document' %>
2
2 <div class="box">
3 <!--[form:document]-->
3 <!--[form:document]-->
4 <p><label for="document_category_id"><%=l(:field_category)%></label><br />
4 <p><label for="document_category_id"><%=l(:field_category)%></label>
5 <select name="document[category_id]">
5 <select name="document[category_id]">
6 <%= options_from_collection_for_select @categories, "id", "name", @document.category_id %>
6 <%= options_from_collection_for_select @categories, "id", "name", @document.category_id %>
7 </select></p>
7 </select></p>
8
8
9 <p><label for="document_title"><%=l(:field_title)%> <span class="required">*</span></label><br />
9 <p><label for="document_title"><%=l(:field_title)%> <span class="required">*</span></label>
10 <%= text_field 'document', 'title', :size => 60 %></p>
10 <%= text_field 'document', 'title', :size => 60 %></p>
11
11
12 <p><label for="document_description"><%=l(:field_description)%></label><br />
12 <p><label for="document_description"><%=l(:field_description)%></label>
13 <%= text_area 'document', 'description', :cols => 60, :rows => 5 %></p>
13 <%= text_area 'document', 'description', :cols => 60, :rows => 5 %></p>
14 <!--[eoform:document]-->
14 <!--[eoform:document]-->
15
15 </div> No newline at end of file
@@ -1,8 +1,8
1 <h2><%=l(:label_document)%></h2>
1 <h2><%=l(:label_document)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @document %>
3 <%= start_form_tag({:action => 'edit', :id => @document}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
7
7
8
8
@@ -1,9 +1,9
1 <%= error_messages_for 'enumeration' %>
1 <%= error_messages_for 'enumeration' %>
2
2 <div class="box">
3 <!--[form:optvalue]-->
3 <!--[form:optvalue]-->
4 <%= hidden_field 'enumeration', 'opt' %>
4 <%= hidden_field 'enumeration', 'opt' %>
5
5
6 <p><label for="enumeration_name"><%=l(:field_name)%></label><br/>
6 <p><label for="enumeration_name"><%=l(:field_name)%></label>
7 <%= text_field 'enumeration', 'name' %></p>
7 <%= text_field 'enumeration', 'name' %></p>
8 <!--[eoform:optvalue]-->
8 <!--[eoform:optvalue]-->
9
9 </div> No newline at end of file
@@ -1,10 +1,10
1 <h2><%=l(:label_enumerations)%></h2>
1 <h2><%=l(:label_enumerations)%></h2>
2
2
3 <%= start_form_tag :action => 'update', :id => @enumeration %>
3 <%= start_form_tag({:action => 'update', :id => @enumeration}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
7
7
8 <%= start_form_tag :action => 'destroy', :id => @enumeration %>
8 <%= start_form_tag :action => 'destroy', :id => @enumeration %>
9 <%= submit_tag l(:button_delete) %>
9 <%= submit_tag l(:button_delete) %>
10 <%= end_form_tag %> No newline at end of file
10 <%= end_form_tag %>
@@ -1,6 +1,6
1 <h2><%=l(:label_enumeration_new)%></h2>
1 <h2><%=l(:label_enumeration_new)%></h2>
2
2
3 <%= start_form_tag :action => 'create' %>
3 <%= start_form_tag({:action => 'create'}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
@@ -1,7 +1,7
1 <%= error_messages_for 'issue_category' %>
1 <%= error_messages_for 'issue_category' %>
2
2
3 <!--[form:issue_category]-->
3 <!--[form:issue_category]-->
4 <p><label for="issue_category_name"><%l(:field_name)%></label><br/>
4 <p><label for="issue_category_name"><%l(:field_name)%></label>
5 <%= text_field 'issue_category', 'name' %></p>
5 <%= text_field 'issue_category', 'name' %></p>
6 <!--[eoform:issue_category]-->
6 <!--[eoform:issue_category]-->
7
7
@@ -1,6 +1,6
1 <h2><%=l(:label_issue_category)%></h2>
1 <h2><%=l(:label_issue_category)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @category %>
3 <%= start_form_tag({:action => 'edit', :id => @category}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
@@ -1,17 +1,18
1 <%= error_messages_for 'issue_status' %>
1 <%= error_messages_for 'issue_status' %>
2
2
3 <div class="box">
3 <!--[form:issue_status]-->
4 <!--[form:issue_status]-->
4 <p><label for="issue_status_name"><%=l(:field_name)%></label> <span class="required">*</span><br/>
5 <p><label for="issue_status_name"><%=l(:field_name)%><span class="required"> *</span></label>
5 <%= text_field 'issue_status', 'name' %></p>
6 <%= text_field 'issue_status', 'name' %></p>
6
7
7 <p><%= check_box 'issue_status', 'is_closed' %>
8 <p><label for="issue_status_is_closed"><%=l(:field_is_closed)%></label>
8 <label for="issue_status_is_closed"><%=l(:field_is_closed)%></label></p>
9 <%= check_box 'issue_status', 'is_closed' %></p>
9
10
10 <p><%= check_box 'issue_status', 'is_default' %>
11 <p><label for="issue_status_is_default"><%=l(:field_is_default)%></label>
11 <label for="issue_status_is_default"><%=l(:field_is_default)%></label></p>
12 <%= check_box 'issue_status', 'is_default' %></p>
12
13
13 <p><label for="issue_status_html_color"><%=l(:field_html_color)%></label>
14 <p><label for="issue_status_html_color"><%=l(:field_html_color)%><span class="required"> *</span></label>
14 #<%= text_field 'issue_status', 'html_color', :maxlength => 6 %> <span class="required">*</span></p>
15 #<%= text_field 'issue_status', 'html_color', :maxlength => 6 %></p>
15
16
16 <!--[eoform:issue_status]-->
17 <!--[eoform:issue_status]-->
17
18 </div> No newline at end of file
@@ -1,6 +1,6
1 <h2><%=l(:label_issue_status)%></h2>
1 <h2><%=l(:label_issue_status)%></h2>
2
2
3 <%= start_form_tag :action => 'update', :id => @issue_status %>
3 <%= start_form_tag({:action => 'update', :id => @issue_status}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
@@ -1,30 +1,28
1 <h2><%=l(:label_issue_status_plural)%></h2>
1 <h2><%=l(:label_issue_status_plural)%></h2>
2
2
3 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <th><%=l(:field_status)%></th>
5 <th><%=l(:field_status)%></th>
6 <th><%=l(:field_is_default)%></th>
6 <th><%=l(:field_is_default)%></th>
7 <th><%=l(:field_is_closed)%></th>
7 <th><%=l(:field_is_closed)%></th>
8 <th><%=l(:field_html_color)%></th>
8 <th><%=l(:field_html_color)%></th>
9 <th></th>
9 <th></th>
10 </tr>
10 </tr>
11
11
12 <% for status in @issue_statuses %>
12 <% for status in @issue_statuses %>
13 <tr class="<%= cycle("odd", "even") %>">
13 <tr class="<%= cycle("odd", "even") %>">
14 <td><%= link_to status.name, :action => 'edit', :id => status %></td>
14 <td><%= link_to status.name, :action => 'edit', :id => status %></td>
15 <td align="center"><%= image_tag 'true' if status.is_default? %></td>
15 <td align="center"><%= image_tag 'true' if status.is_default? %></td>
16 <td align="center"><%= image_tag 'true' if status.is_closed? %></td>
16 <td align="center"><%= image_tag 'true' if status.is_closed? %></td>
17 <td bgcolor="#<%= status.html_color %>">&nbsp</td>
17 <td><div style="background-color:#<%= status.html_color %>">&nbsp</div></td>
18 <td align="center">
18 <td align="center">
19 <%= start_form_tag :action => 'destroy', :id => status %>
19 <%= button_to l(:button_delete), { :action => 'destroy', :id => status }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
20 <%= submit_tag l(:button_delete), :class => "button-small" %>
21 <%= end_form_tag %>
22 </td>
20 </td>
23 </tr>
21 </tr>
24 <% end %>
22 <% end %>
25 </table>
23 </table>
26
24
27 <%= pagination_links_full @issue_status_pages %>
25 <%= pagination_links_full @issue_status_pages %>
28 <br />
26 <br />
29
27
30 <%= link_to '&#187; ' + l(:label_issue_status_new), :action => 'new' %>
28 <%= link_to '&#187; ' + l(:label_issue_status_new), :action => 'new' %>
@@ -1,6 +1,6
1 <h2><%=l(:label_issue_status_new)%></h2>
1 <h2><%=l(:label_issue_status_new)%></h2>
2
2
3 <%= start_form_tag :action => 'create' %>
3 <%= start_form_tag({:action => 'create'}, :class => "tabular") %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form' %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <%= end_form_tag %>
@@ -1,28 +1,28
1 <% if issues.length > 0 %>
1 <% if issues.length > 0 %>
2 <table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable">
2 <table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable">
3 <tr><td>
3 <tr><td>
4 <table width="100%" border="0" cellspacing="1" cellpadding="2" class="listTableContent">
4 <table class="listTableContent">
5 <tr class="ListHead">
5 <tr class="ListHead">
6 <th>#</th>
6 <th>#</th>
7 <th><%=l(:field_tracker)%></th>
7 <th><%=l(:field_tracker)%></th>
8 <th><%=l(:field_subject)%></th>
8 <th><%=l(:field_subject)%></th>
9 </tr>
9 </tr>
10 <% for issue in issues %>
10 <% for issue in issues %>
11 <tr bgcolor="#<%= issue.status.html_color %>">
11 <tr bgcolor="#<%= issue.status.html_color %>">
12 <td align="center">
12 <td align="center">
13 <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %><br />
13 <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %><br />
14 </td>
14 </td>
15 <td><p class="small"><%= issue.project.name %> - <%= issue.tracker.name %><br />
15 <td><p class="small"><%= issue.project.name %> - <%= issue.tracker.name %><br />
16 <%= issue.status.name %> - <%= format_time(issue.updated_on) %></p></td>
16 <%= issue.status.name %> - <%= format_time(issue.updated_on) %></p></td>
17 <td>
17 <td>
18 <p class="small"><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></p>
18 <p class="small"><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></p>
19 </td>
19 </td>
20 </tr>
20 </tr>
21 <% end %>
21 <% end %>
22 </table>
22 </table>
23 </td>
23 </td>
24 </tr>
24 </tr>
25 </table>
25 </table>
26 <% else %>
26 <% else %>
27 <i><%=l(:label_no_data)%></i>
27 <i><%=l(:label_no_data)%></i>
28 <% end %> No newline at end of file
28 <% end %>
@@ -1,31 +1,29
1 <h2><%=l(:label_issue)%> #<%= @issue.id %>: <%= @issue.subject %></h2>
1 <h2><%=l(:label_issue)%> #<%= @issue.id %>: <%= @issue.subject %></h2>
2
2
3 <%= error_messages_for 'history' %>
3 <%= error_messages_for 'history' %>
4 <%= start_form_tag :action => 'change_status', :id => @issue %>
4 <%= start_form_tag({:action => 'change_status', :id => @issue}, :class => "tabular") %>
5
5
6 <%= hidden_field_tag 'confirm', 1 %>
6 <%= hidden_field_tag 'confirm', 1 %>
7 <%= hidden_field 'history', 'status_id' %>
7 <%= hidden_field 'history', 'status_id' %>
8
8
9 <div class="box">
9 <div class="box">
10 <p><%=l(:label_issue_status_new)%>: <b><%= @history.status.name %></b></p>
10 <p><label><%=l(:label_issue_status_new)%></label> <%= @history.status.name %></p>
11
11
12 <div>
12 <p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label>
13 <p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label><br/>
14 <select name="issue[assigned_to_id]">
13 <select name="issue[assigned_to_id]">
15 <option value=""></option>
14 <option value=""></option>
16 <%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %></p>
15 <%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %></p>
17 </select></p>
16 </select></p>
18 </div>
19
17
20 <p><label for="issue_fixed_version"><%=l(:field_fixed_version)%></label><br/>
18 <p><label for="issue_fixed_version"><%=l(:field_fixed_version)%></label>
21 <select name="issue[fixed_version_id]">
19 <select name="issue[fixed_version_id]">
22 <option value="">--none--</option>
20 <option value="">--none--</option>
23 <%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %>
21 <%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %>
24 </select></p>
22 </select></p>
25
23
26 <p><label for="history_notes"><%=l(:field_notes)%></label><br />
24 <p><label for="history_notes"><%=l(:field_notes)%></label>
27 <%= text_area 'history', 'notes', :cols => 60, :rows => 10 %></p>
25 <%= text_area 'history', 'notes', :cols => 60, :rows => 10 %></p>
28 </div>
26 </div>
29
27
30 <%= submit_tag l(:button_save) %>
28 <%= submit_tag l(:button_save) %>
31 <%= end_form_tag %>
29 <%= end_form_tag %>
@@ -1,56 +1,26
1 <h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2>
1 <h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2>
2
2
3 <% labelled_tabular_form_for :issue, @issue, :url => {:action => 'edit'} do |f| %>
3 <%= error_messages_for 'issue' %>
4 <%= error_messages_for 'issue' %>
4 <%= start_form_tag :action => 'edit', :id => @issue %>
5
6 <div class="box">
5 <div class="box">
7 <!--[form:issue]-->
6 <!--[form:issue]-->
8 <p><%=l(:field_status)%>: <b><%= @issue.status.name %></b></p>
7 <p><label><%=l(:field_status)%></label> <%= @issue.status.name %></p>
9
10 <div style="float:left;margin-right:10px;">
11 <p><label for="issue_priority_id"><%=l(:field_priority)%> <span class="required">*</span></label><br/>
12 <select name="issue[priority_id]">
13 <%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p>
14 </select></p>
15 </div>
16
17 <div style="float:left;margin-right:10px;">
18 <p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label><br/>
19 <select name="issue[assigned_to_id]">
20 <option value=""></option>
21 <%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p>
22 </select></p>
23 </div>
24
8
25 <div>
9 <p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), :required => true %></p>
26 <p><label for="issue_category_id"><%=l(:field_category)%></label><br/>
10 <p><%= f.select :assigned_to_id, (@issue.project.members.collect {|m| [m.name, m.user_id]}), :include_blank => true %></p>
27 <select name="issue[category_id]">
11 <p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}) %></p>
28 <option value=""></option>
12 <p><%= f.text_field :subject, :size => 80, :required => true %></p>
29 <%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %></p>
13 <p><%= f.text_area :description, :cols => 60, :rows => 10, :required => true %></p>
30 </select></p>
14 <p><%= f.date_select :due_date, :start_year => Date.today.year, :include_blank => true %></p>
31 </div>
32
33 <p><label for="issue_subject"><%=l(:field_subject)%></label><span class="required">*</span><br/>
34 <%= text_field 'issue', 'subject', :size => 60 %></p>
35
36 <p><label for="issue_description"><%=l(:field_description)%></label><span class="required">*</span><br/>
37 <%= text_area 'issue', 'description', :cols => 60, :rows => 10 %></p>
38
39 <p><label for="issue_due_date"><%=l(:field_due_date)%></label><br />
40 <%= date_select 'issue', 'due_date', :start_year => Date.today.year, :include_blank => true %></p>
41
15
42 <% for @custom_value in @custom_values %>
16 <% for @custom_value in @custom_values %>
43 <p><%= custom_field_tag_with_label @custom_value %></p>
17 <p><%= custom_field_tag_with_label @custom_value %></p>
44 <% end %>
18 <% end %>
45
19
46 <p><label for="issue_fixed_version"><%=l(:field_fixed_version)%></label><br/>
20 <p><%= f.select :fixed_version_id, (@project.versions.collect {|v| [v.name, v.id]}), { :include_blank => true } %>
47 <select name="issue[fixed_version_id]">
48 <option value="">--none--</option>
49 <%= options_from_collection_for_select @project.versions, "id", "name", @issue.fixed_version_id %>
50 </select></p>
21 </select></p>
51
52 <!--[eoform:issue]-->
22 <!--[eoform:issue]-->
53 </div>
23 </div>
54
24
55 <%= submit_tag l(:button_save) %>
25 <%= submit_tag l(:button_save) %>
56 <%= end_form_tag %>
26 <% end %> No newline at end of file
@@ -1,13 +1,6
1 <%= error_messages_for 'news' %>
1 <%= error_messages_for 'news' %>
2
2 <div class="box">
3 <!--[form:news]-->
3 <p><%= f.text_field :title, :required => true, :size => 60 %></p>
4 <p><label for="news_title"><%=l(:field_title)%></label> <span class="required">*</span><br/>
4 <p><%= f.text_area :summary, :cols => 60, :rows => 2 %></p>
5 <%= text_field 'news', 'title', :size => 60 %></p>
5 <p><%= f.text_area :description, :required => true, :cols => 60, :rows => 10 %></p>
6
6 </div> No newline at end of file
7 <p><label for="news_summary"><%=l(:field_summary)%></label><br/>
8 <%= text_area 'news', 'summary', :cols => 60, :rows => 2 %></p>
9
10 <p><label for="news_description"><%=l(:field_description)%> <span class="required">*</span></label><br/>
11 <%= text_area 'news', 'description', :cols => 60, :rows => 10 %></p>
12 <!--[eoform:news]-->
13
@@ -1,6 +1,6
1 <h2><%=l(:label_news)%></h2>
1 <h2><%=l(:label_news)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @news %>
3 <% labelled_tabular_form_for :news, @news, :url => { :action => "edit" } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
@@ -1,10 +1,21
1 <h2><%= @news.title %></h2>
1 <h2><%= @news.title %></h2>
2
2
3 <p>
3 <p>
4 <b><%=l(:field_summary)%></b>: <%= @news.summary %><br />
4 <b><%=l(:field_summary)%></b>: <%= @news.summary %><br />
5 <b><%=l(:field_author)%></b>: <%= @news.author.display_name %><br />
5 <b><%=l(:field_author)%></b>: <%= @news.author.display_name %><br />
6 <b><%=l(:field_created_on)%></b>: <%= format_time(@news.created_on) %>
6 <b><%=l(:field_created_on)%></b>: <%= format_time(@news.created_on) %>
7 </p>
7 </p>
8
8
9 <%= simple_format auto_link @news.description %>
9 <%= simple_format auto_link @news.description %>
10
10
11 <% if authorize_for('news', 'edit') %>
12 <%= start_form_tag ({:controller => 'news', :action => 'edit', :id => @news}, :method => 'get' ) %>
13 <%= submit_tag l(:button_edit) %>
14 <%= end_form_tag %>
15 <% end %>
16
17 <% if authorize_for('news', 'destroy') %>
18 <%= start_form_tag ({:controller => 'news', :action => 'destroy', :id => @news}) %>
19 <%= submit_tag l(:button_delete) %>
20 <%= end_form_tag %>
21 <% end %>
@@ -1,41 +1,24
1 <%= error_messages_for 'project' %>
1 <%= error_messages_for 'project' %>
2
3 <div class="box">
2 <div class="box">
4 <!--[form:project]-->
3 <!--[form:project]-->
5 <p><label for="project_name"><%=l(:field_name)%> <span class="required">*</span></label><br/>
4 <p><%= f.text_field :name, :required => true %></p>
6 <%= text_field 'project', 'name' %></p>
7
5
8 <% if admin_loggedin? %>
6 <% if admin_loggedin? %>
9 <p><label for="project_parent_id"><%=l(:field_parent)%></label><br/>
7 <p><%= f.select :parent_id, (@root_projects.collect {|p| [p.name, p.id]}), { :include_blank => true } %></p>
10 <select name="project[parent_id]">
11 <option value=""></option>
12 <%= options_from_collection_for_select @root_projects, "id", "name", @project.parent_id %>
13 </select></p>
14 <% end %>
8 <% end %>
15
9
16 <p><label for="project_description"><%=l(:field_description)%> <span class="required">*</span></label><br/>
10 <p><%= f.text_area :description, :required => true, :cols => 60, :rows => 3 %></p>
17 <%= text_area 'project', 'description', :cols => 60, :rows => 3 %></p>
11 <p><%= f.text_field :homepage, :size => 40 %></p>
18
12 <p><%= f.check_box :is_public %></p>
19 <p><label for="project_homepage"><%=l(:field_homepage)%></label><br/>
20 <%= text_field 'project', 'homepage', :size => 40 %></p>
21
22 <p><%= check_box 'project', 'is_public' %>
23 <label for="project_is_public"><%=l(:field_is_public)%></label></p>
24
13
25 <% for @custom_value in @custom_values %>
14 <% for @custom_value in @custom_values %>
26 <p><%= custom_field_tag_with_label @custom_value %></p>
15 <p><%= custom_field_tag_with_label @custom_value %></p>
27 <% end %>
16 <% end %>
28
17
29 <fieldset><legend><%=l(:label_custom_field_plural)%></legend>
18 <p><label><%=l(:label_custom_field_plural)%></label>
30 <% for custom_field in @custom_fields %>
19 <% for custom_field in @custom_fields %>
31 <input type="checkbox"
20 <%= check_box_tag "custom_field_ids[]", custom_field.id, (@project.custom_fields.include? custom_field) %>
32
21 <%= custom_field.name %>
33 name="custom_field_ids[]"
22 <% end %></p>
34 value="<%= custom_field.id %>"
35 <%if @project.custom_fields.include? custom_field%>checked="checked"<%end%>
36 > <%= custom_field.name %>
37
38 <% end %></fieldset>
39
40 </div>
41 <!--[eoform:project]-->
23 <!--[eoform:project]-->
24 </div>
@@ -1,6 +1,6
1 <h2><%=l(:label_project_new)%></h2>
1 <h2><%=l(:label_project_new)%></h2>
2
2
3 <%= start_form_tag :action => 'add' %>
3 <% labelled_tabular_form_for :project, @project, :url => { :action => "add" } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
@@ -1,12 +1,14
1 <h2><%=l(:label_document_new)%></h2>
1 <h2><%=l(:label_document_new)%></h2>
2
2
3 <%= start_form_tag( { :action => 'add_document', :id => @project }, :multipart => true) %>
3 <%= start_form_tag( { :action => 'add_document', :id => @project }, :class => "tabular", :multipart => true) %>
4 <%= render :partial => 'documents/form' %>
4 <%= render :partial => 'documents/form' %>
5
5
6 <p><label for="attachment_file"><%=l(:label_attachment)%></label><br/>
6 <div class="box">
7 <p><label for="attachment_file"><%=l(:label_attachment)%></label>
7 <%= file_field 'attachment', 'file' %></p>
8 <%= file_field 'attachment', 'file' %></p>
9 </div>
8
10
9 <%= submit_tag l(:button_create) %>
11 <%= submit_tag l(:button_create) %>
10 <%= end_form_tag %>
12 <%= end_form_tag %>
11
13
12
14
@@ -1,52 +1,26
1 <h2><%=l(:label_issue_new)%>: <%= @tracker.name %></h2>
1 <h2><%=l(:label_issue_new)%>: <%= @tracker.name %></h2>
2
2
3 <%= start_form_tag( { :action => 'add_issue', :id => @project }, :multipart => true) %>
3 <% labelled_tabular_form_for :issue, @issue, :url => {:action => 'add_issue'}, :html => {:multipart => true} do |f| %>
4 <%= error_messages_for 'issue' %>
4 <%= error_messages_for 'issue' %>
5
6 <div class="box">
5 <div class="box">
7 <!--[form:issue]-->
6 <!--[form:issue]-->
8
9 <%= hidden_field_tag 'tracker_id', @tracker.id %>
7 <%= hidden_field_tag 'tracker_id', @tracker.id %>
10
8
11 <div style="float:left;margin-right:10px;">
9 <p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), :required => true %></p>
12 <p><label for="issue_priority_id"><%=l(:field_priority)%> <span class="required">*</span></label><br />
10 <p><%= f.select :assigned_to_id, (@issue.project.members.collect {|m| [m.name, m.user_id]}), :include_blank => true %></p>
13 <select name="issue[priority_id]">
11 <p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}) %></p>
14 <%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p>
12 <p><%= f.text_field :subject, :size => 80, :required => true %></p>
15 </select></p>
13 <p><%= f.text_area :description, :cols => 60, :rows => 10, :required => true %></p>
16 </div>
14 <p><%= f.date_select :due_date, :start_year => Date.today.year, :include_blank => true %></p>
17
18 <div style="float:left;margin-right:10px;">
19 <p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label><br />
20 <select name="issue[assigned_to_id]">
21 <option value=""></option>
22 <%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p>
23 </select></p>
24 </div>
25
26 <div>
27 <p><label for="issue_category_id"><%=l(:field_category)%></label><br />
28 <select name="issue[category_id]">
29 <option value=""></option><%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %>
30 </select></p>
31 </div>
32
33 <p><label for="issue_subject"><%=l(:field_subject)%> <span class="required">*</span></label><br />
34 <%= text_field 'issue', 'subject', :size => 80 %></p>
35
36 <p><label for="issue_description"><%=l(:field_description)%> <span class="required">*</span></label><br />
37 <%= text_area 'issue', 'description', :cols => 60, :rows => 10 %></p>
38
39 <p><label for="issue_due_date"><%=l(:field_due_date)%></label><br />
40 <%= date_select 'issue', 'due_date', :start_year => Date.today.year, :include_blank => true %></p>
41
15
42 <% for @custom_value in @custom_values %>
16 <% for @custom_value in @custom_values %>
43 <p><%= custom_field_tag_with_label @custom_value %></p>
17 <p><%= custom_field_tag_with_label @custom_value %></p>
44 <% end %>
18 <% end %>
45
19
46 <p><label for="attachment_file"><%=l(:label_attachment)%></label><br />
20 <p><label for="attachment_file"><%=l(:label_attachment)%></label>
47 <%= file_field 'attachment', 'file' %></p>
21 <%= file_field 'attachment', 'file' %></p>
48 <!--[eoform:issue]-->
22 <!--[eoform:issue]-->
49 </div>
23 </div>
50
24
51 <%= submit_tag l(:button_create) %>
25 <%= submit_tag l(:button_create) %>
52 <%= end_form_tag %> No newline at end of file
26 <% end %> No newline at end of file
@@ -1,7 +1,6
1 <h2><%=l(:label_news_new)%></h2>
1 <h2><%=l(:label_news_new)%></h2>
2
2
3 <%= start_form_tag :action => 'add_news', :id => @project %>
3 <% labelled_tabular_form_for :news, @news, :url => { :action => "add_news" } do |f| %>
4 <%= render :partial => 'news/form' %>
4 <%= render :partial => 'news/form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
7
@@ -1,7 +1,6
1 <h2><%=l(:label_version_new)%></h2>
1 <h2><%=l(:label_version_new)%></h2>
2
2
3 <%= start_form_tag :action => 'add_version', :id => @project %>
3 <% labelled_tabular_form_for :version, @version, :url => { :action => 'add_version' } do |f| %>
4 <%= render :partial => 'versions/form' %>
4 <%= render :partial => 'versions/form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
7
@@ -1,20 +1,20
1 <h2><%=l(:label_public_projects)%></h2>
1 <h2><%=l(:label_public_projects)%></h2>
2
2
3 <table width="100%" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <%= sort_header_tag('name', :caption => l(:label_project)) %>
5 <%= sort_header_tag('name', :caption => l(:label_project)) %>
6 <th><%=l(:field_description)%></th>
6 <th><%=l(:field_description)%></th>
7 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
7 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
8 </tr>
8 </tr>
9
9
10 <% for project in @projects %>
10 <% for project in @projects %>
11 <tr class="<%= cycle("odd", "even") %>">
11 <tr class="<%= cycle("odd", "even") %>">
12 <td><%= link_to project.name, :action => 'show', :id => project %>
12 <td><%= link_to project.name, :action => 'show', :id => project %>
13 <td><%= project.description %>
13 <td><%= project.description %>
14 <td align="center"><%= format_date(project.created_on) %>
14 <td align="center"><%= format_date(project.created_on) %>
15 </tr>
15 </tr>
16 <% end %>
16 <% end %>
17 </table>
17 </table>
18
18
19 <%= pagination_links_full @project_pages %>
19 <%= pagination_links_full @project_pages %>
20 [ <%= @project_pages.current.first_item %> - <%= @project_pages.current.last_item %> / <%= @project_count %> ] No newline at end of file
20 [ <%= @project_pages.current.first_item %> - <%= @project_pages.current.last_item %> / <%= @project_count %> ]
@@ -1,46 +1,46
1 <h2><%=l(:label_attachment_plural)%></h2>
1 <h2><%=l(:label_attachment_plural)%></h2>
2
2
3 <% delete_allowed = authorize_for('versions', 'destroy_file') %>
3 <% delete_allowed = authorize_for('versions', 'destroy_file') %>
4
4
5 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
5 <table class="listTableContent">
6 <tr class="ListHead">
6 <tr class="ListHead">
7 <th><%=l(:field_version)%></th>
7 <th><%=l(:field_version)%></th>
8 <th><%=l(:field_filename)%></th>
8 <th><%=l(:field_filename)%></th>
9 <th><%=l(:label_date)%></th>
9 <th><%=l(:label_date)%></th>
10 <th><%=l(:field_filesize)%></th>
10 <th><%=l(:field_filesize)%></th>
11 <th>D/L</th>
11 <th>D/L</th>
12 <th>MD5</th>
12 <th>MD5</th>
13 <% if delete_allowed %><th></th><% end %>
13 <% if delete_allowed %><th></th><% end %>
14 </tr>
14 </tr>
15
15
16 <% for version in @versions %>
16 <% for version in @versions %>
17 <% unless version.attachments.empty? %>
17 <% unless version.attachments.empty? %>
18 <tr><td colspan="7"><%= image_tag 'package' %> <b><%= version.name %></b></td></tr>
18 <tr><td colspan="7"><%= image_tag 'package' %> <b><%= version.name %></b></td></tr>
19 <% for file in version.attachments %>
19 <% for file in version.attachments %>
20 <tr class="<%= cycle("odd", "even") %>">
20 <tr class="<%= cycle("odd", "even") %>">
21 <td></td>
21 <td></td>
22 <td><%= link_to file.filename, :controller => 'versions', :action => 'download', :id => version, :attachment_id => file %></td>
22 <td><%= link_to file.filename, :controller => 'versions', :action => 'download', :id => version, :attachment_id => file %></td>
23 <td align="center"><%= format_date(file.created_on) %></td>
23 <td align="center"><%= format_date(file.created_on) %></td>
24 <td align="center"><%= human_size(file.filesize) %></td>
24 <td align="center"><%= human_size(file.filesize) %></td>
25 <td align="center"><%= file.downloads %></td>
25 <td align="center"><%= file.downloads %></td>
26 <td align="center"><small><%= file.digest %></small></td>
26 <td align="center"><small><%= file.digest %></small></td>
27 <% if delete_allowed %>
27 <% if delete_allowed %>
28 <td align="center">
28 <td align="center">
29 <%= start_form_tag :controller => 'versions', :action => 'destroy_file', :id => version, :attachment_id => file %>
29 <%= start_form_tag :controller => 'versions', :action => 'destroy_file', :id => version, :attachment_id => file %>
30 <%= submit_tag l(:button_delete), :class => "button-small" %>
30 <%= submit_tag l(:button_delete), :class => "button-small" %>
31 <%= end_form_tag %>
31 <%= end_form_tag %>
32 </td>
32 </td>
33 <% end %>
33 <% end %>
34 </tr>
34 </tr>
35 <% end
35 <% end
36 reset_cycle %>
36 reset_cycle %>
37 <% end %>
37 <% end %>
38 <% end %>
38 <% end %>
39 </table>
39 </table>
40
40
41 <br />
41 <br />
42 <p>
42 <p>
43 <%= link_to_if_authorized '&#187; ' + l(:label_attachment_new), :controller => 'projects', :action => 'add_file', :id => @project %>
43 <%= link_to_if_authorized '&#187; ' + l(:label_attachment_new), :controller => 'projects', :action => 'add_file', :id => @project %>
44 </p>
44 </p>
45
45
46
46
@@ -1,53 +1,53
1 <h2><%=l(:label_issue_plural)%></h2>
1 <h2><%=l(:label_issue_plural)%></h2>
2
2
3 <form method="post" class="noborder">
3 <form method="post" class="noborder">
4 <table cellpadding=2>
4 <table cellpadding=2>
5 <tr>
5 <tr>
6 <td><small><%=l(:field_status)%>:</small><br /><%= search_filter_tag 'status_id', :class => 'select-small' %></td>
6 <td><small><%=l(:field_status)%>:</small><br /><%= search_filter_tag 'status_id', :class => 'select-small' %></td>
7 <td><small><%=l(:field_tracker)%>:</small><br /><%= search_filter_tag 'tracker_id', :class => 'select-small' %></td>
7 <td><small><%=l(:field_tracker)%>:</small><br /><%= search_filter_tag 'tracker_id', :class => 'select-small' %></td>
8 <td><small><%=l(:field_priority)%>:</small><br /><%= search_filter_tag 'priority_id', :class => 'select-small' %></td>
8 <td><small><%=l(:field_priority)%>:</small><br /><%= search_filter_tag 'priority_id', :class => 'select-small' %></td>
9 <td><small><%=l(:field_category)%>:</small><br /><%= search_filter_tag 'category_id', :class => 'select-small' %></td>
9 <td><small><%=l(:field_category)%>:</small><br /><%= search_filter_tag 'category_id', :class => 'select-small' %></td>
10 <td><small><%=l(:field_fixed_version)%>:</small><br /><%= search_filter_tag 'fixed_version_id', :class => 'select-small' %></td>
10 <td><small><%=l(:field_fixed_version)%>:</small><br /><%= search_filter_tag 'fixed_version_id', :class => 'select-small' %></td>
11 <td><small><%=l(:field_assigned_to)%>:</small><br /><%= search_filter_tag 'assigned_to_id', :class => 'select-small' %></td>
11 <td><small><%=l(:field_assigned_to)%>:</small><br /><%= search_filter_tag 'assigned_to_id', :class => 'select-small' %></td>
12 <td><small><%=l(:label_subproject_plural)%>:</small><br /><%= search_filter_tag 'subproject_id', :class => 'select-small' %></td>
12 <td><small><%=l(:label_subproject_plural)%>:</small><br /><%= search_filter_tag 'subproject_id', :class => 'select-small' %></td>
13
13
14 <td valign="bottom">
14 <td valign="bottom">
15 <%= submit_tag l(:button_apply), :class => 'button-small' %>
15 <%= submit_tag l(:button_apply), :class => 'button-small' %>
16 <%= end_form_tag %>
16 <%= end_form_tag %>
17
17
18 <%= start_form_tag %>
18 <%= start_form_tag %>
19 <%= submit_tag l(:button_clear), :class => 'button-small' %>
19 <%= submit_tag l(:button_clear), :class => 'button-small' %>
20 <%= end_form_tag %>
20 <%= end_form_tag %>
21 </td>
21 </td>
22 </tr>
22 </tr>
23 </table>
23 </table>
24 &nbsp;
24 &nbsp;
25 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
25 <table class="listTableContent">
26 <tr><td colspan="7" align="right">
26 <tr><td colspan="7" align="right">
27 <small><%= link_to l(:label_export_csv), :action => 'export_issues_csv', :id => @project.id %></small>
27 <small><%= link_to l(:label_export_csv), :action => 'export_issues_csv', :id => @project.id %></small>
28 </td></tr>
28 </td></tr>
29 <tr class="ListHead">
29 <tr class="ListHead">
30 <%= sort_header_tag('issues.id', :caption => '#') %>
30 <%= sort_header_tag('issues.id', :caption => '#') %>
31 <%= sort_header_tag('issue_statuses.name', :caption => l(:field_status)) %>
31 <%= sort_header_tag('issue_statuses.name', :caption => l(:field_status)) %>
32 <%= sort_header_tag('issues.tracker_id', :caption => l(:field_tracker)) %>
32 <%= sort_header_tag('issues.tracker_id', :caption => l(:field_tracker)) %>
33 <th><%=l(:field_subject)%></th>
33 <th><%=l(:field_subject)%></th>
34 <%= sort_header_tag('users.lastname', :caption => l(:field_author)) %>
34 <%= sort_header_tag('users.lastname', :caption => l(:field_author)) %>
35 <%= sort_header_tag('issues.created_on', :caption => l(:field_created_on)) %>
35 <%= sort_header_tag('issues.created_on', :caption => l(:field_created_on)) %>
36 <%= sort_header_tag('issues.updated_on', :caption => l(:field_updated_on)) %>
36 <%= sort_header_tag('issues.updated_on', :caption => l(:field_updated_on)) %>
37 </tr>
37 </tr>
38 <% for issue in @issues %>
38 <% for issue in @issues %>
39 <tr bgcolor="#<%= issue.status.html_color %>">
39 <tr bgcolor="#<%= issue.status.html_color %>">
40 <td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td>
40 <td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td>
41 <td align="center"><%= issue.status.name %></td>
41 <td align="center"><%= issue.status.name %></td>
42 <td align="center"><%= issue.tracker.name %></td>
42 <td align="center"><%= issue.tracker.name %></td>
43 <td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td>
43 <td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td>
44 <td align="center"><%= issue.author.display_name %></td>
44 <td align="center"><%= issue.author.display_name %></td>
45 <td align="center"><%= format_time(issue.created_on) %></td>
45 <td align="center"><%= format_time(issue.created_on) %></td>
46 <td align="center"><%= format_time(issue.updated_on) %></td>
46 <td align="center"><%= format_time(issue.updated_on) %></td>
47 </tr>
47 </tr>
48 <% end %>
48 <% end %>
49 </table>
49 </table>
50 <p>
50 <p>
51 <%= pagination_links_full @issue_pages %>
51 <%= pagination_links_full @issue_pages %>
52 [ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ]
52 [ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ]
53 </p> No newline at end of file
53 </p>
@@ -1,17 +1,14
1 <h2><%=l(:label_news_plural)%></h2>
1 <h2><%=l(:label_news_plural)%></h2>
2
2
3 <% for news in @news %>
3 <% for news in @news %>
4 <p>
4 <p>
5 <b><%= news.title %></b> <small>(<%= link_to_user news.author %> <%= format_time(news.created_on) %>)</small>
5 <b><%= news.title %></b> <small>(<%= link_to_user news.author %> <%= format_time(news.created_on) %>)</small><br />
6 <%= link_to_if_authorized image_tag('edit_small'), :controller => 'news', :action => 'edit', :id => news %>
6 <%= news.summary %><br />
7 <%= link_to_if_authorized image_tag('delete'), { :controller => 'news', :action => 'destroy', :id => news }, :confirm => 'Are you sure?' %>
8 <br />
9 <%= news.summary %>
10 <small>[<%= link_to l(:label_read), :controller => 'news', :action => 'show', :id => news %>]</small>
7 <small>[<%= link_to l(:label_read), :controller => 'news', :action => 'show', :id => news %>]</small>
11 </p>
8 </p>
12 <% end %>
9 <% end %>
13
10
14 <%= pagination_links_full @news_pages %>
11 <%= pagination_links_full @news_pages %>
15 <p>
12 <p>
16 <%= link_to_if_authorized '&#187; ' + l(:label_news_new), :controller => 'projects', :action => 'add_news', :id => @project %>
13 <%= link_to_if_authorized '&#187; ' + l(:label_news_new), :controller => 'projects', :action => 'add_news', :id => @project %>
17 </p>
14 </p>
@@ -1,105 +1,105
1 <h2><%=l(:label_settings)%></h2>
1 <h2><%=l(:label_settings)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @project %>
3 <% labelled_tabular_form_for :project, @project, :url => { :action => "edit", :id => @project } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <center><%= submit_tag l(:button_save) %></center>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %>
7
7
8 &nbsp;
8 &nbsp;
9
9
10 <div class="box">
10 <div class="box">
11 <h3><%=l(:label_member_plural)%></h3>
11 <h3><%=l(:label_member_plural)%></h3>
12 <%= error_messages_for 'member' %>
12 <%= error_messages_for 'member' %>
13 <table>
13 <table>
14 <% for member in @project.members.find(:all, :include => :user) %>
14 <% for member in @project.members.find(:all, :include => :user) %>
15 <% unless member.new_record? %>
15 <% unless member.new_record? %>
16 <tr>
16 <tr>
17 <td><%= member.user.display_name %></td>
17 <td><%= member.user.display_name %></td>
18 <td>
18 <td>
19 <%= start_form_tag :controller => 'members', :action => 'edit', :id => member %>
19 <%= start_form_tag :controller => 'members', :action => 'edit', :id => member %>
20 <select name="member[role_id]">
20 <select name="member[role_id]">
21 <%= options_from_collection_for_select @roles, "id", "name", member.role_id %>
21 <%= options_from_collection_for_select @roles, "id", "name", member.role_id %>
22 </select>
22 </select>
23 </td>
23 </td>
24 <td>
24 <td>
25 <%= submit_tag l(:button_change), :class => "button-small" %>
25 <%= submit_tag l(:button_change), :class => "button-small" %>
26 <%= end_form_tag %>
26 <%= end_form_tag %>
27 </td>
27 </td>
28 <td>
28 <td>
29 <%= start_form_tag :controller => 'members', :action => 'destroy', :id => member %>
29 <%= start_form_tag :controller => 'members', :action => 'destroy', :id => member %>
30 <%= submit_tag l(:button_delete), :class => "button-small" %>
30 <%= submit_tag l(:button_delete), :class => "button-small" %>
31 <%= end_form_tag %>
31 <%= end_form_tag %>
32 </td>
32 </td>
33 </tr>
33 </tr>
34 <% end %>
34 <% end %>
35 <% end %>
35 <% end %>
36 </table>
36 </table>
37 <hr />
37 <hr />
38 <label><%=l(:label_member_new)%></label><br/>
38 <label><%=l(:label_member_new)%></label><br/>
39 <%= start_form_tag :controller => 'projects', :action => 'add_member', :id => @project %>
39 <%= start_form_tag :controller => 'projects', :action => 'add_member', :id => @project %>
40 <select name="member[user_id]">
40 <select name="member[user_id]">
41 <%= options_from_collection_for_select @users, "id", "display_name", @member.user_id %>
41 <%= options_from_collection_for_select @users, "id", "display_name", @member.user_id %>
42 </select>
42 </select>
43 <select name="member[role_id]">
43 <select name="member[role_id]">
44 <%= options_from_collection_for_select @roles, "id", "name", @member.role_id %>
44 <%= options_from_collection_for_select @roles, "id", "name", @member.role_id %>
45 </select>
45 </select>
46 <%= submit_tag l(:button_add) %>
46 <%= submit_tag l(:button_add) %>
47 <%= end_form_tag %>
47 <%= end_form_tag %>
48 </div>
48 </div>
49
49
50 <div class="box">
50 <div class="box">
51 <h3><%=l(:label_version_plural)%></h3>
51 <h3><%=l(:label_version_plural)%></h3>
52
52
53 <table>
53 <table>
54 <% for version in @project.versions %>
54 <% for version in @project.versions %>
55 <tr>
55 <tr>
56 <td><%= link_to version.name, :controller => 'versions', :action => 'edit', :id => version %></td>
56 <td><%= link_to version.name, :controller => 'versions', :action => 'edit', :id => version %></td>
57 <td><%=h version.description %></td>
57 <td><%=h version.description %></td>
58 <td>
58 <td>
59 <%= start_form_tag :controller => 'versions', :action => 'destroy', :id => version %>
59 <%= start_form_tag :controller => 'versions', :action => 'destroy', :id => version %>
60 <%= submit_tag l(:button_delete), :class => "button-small" %>
60 <%= submit_tag l(:button_delete), :class => "button-small" %>
61 <%= end_form_tag %>
61 <%= end_form_tag %>
62 </td>
62 </td>
63 </tr>
63 </tr>
64 <% end %>
64 <% end %>
65 </table>
65 </table>
66 <hr />
66 <hr />
67 <%= start_form_tag ({ :controller => 'projects', :action => 'add_version', :id => @project }, :method => 'get' ) %>
67 <%= start_form_tag ({ :controller => 'projects', :action => 'add_version', :id => @project }, :method => 'get' ) %>
68 <%= submit_tag l(:label_version_new) %>
68 <%= submit_tag l(:label_version_new) %>
69 <%= end_form_tag %>
69 <%= end_form_tag %>
70 </div>
70 </div>
71
71
72
72
73 <div class="box">
73 <div class="box">
74 <h3><%=l(:label_issue_category_plural)%></h3>
74 <h3><%=l(:label_issue_category_plural)%></h3>
75 <table>
75 <table>
76 <% for @category in @project.issue_categories %>
76 <% for @category in @project.issue_categories %>
77 <% unless @category.new_record? %>
77 <% unless @category.new_record? %>
78 <tr>
78 <tr>
79 <td>
79 <td>
80 <%= start_form_tag :controller => 'issue_categories', :action => 'edit', :id => @category %>
80 <%= start_form_tag :controller => 'issue_categories', :action => 'edit', :id => @category %>
81 <%= text_field 'category', 'name', :size => 25 %>
81 <%= text_field 'category', 'name', :size => 25 %>
82 </td>
82 </td>
83 <td>
83 <td>
84 <%= submit_tag l(:button_save), :class => "button-small" %>
84 <%= submit_tag l(:button_save), :class => "button-small" %>
85 <%= end_form_tag %>
85 <%= end_form_tag %>
86 </td>
86 </td>
87 <td>
87 <td>
88 <%= start_form_tag :controller => 'issue_categories', :action => 'destroy', :id => @category %>
88 <%= start_form_tag :controller => 'issue_categories', :action => 'destroy', :id => @category %>
89 <%= submit_tag l(:button_delete), :class => "button-small" %>
89 <%= submit_tag l(:button_delete), :class => "button-small" %>
90 <%= end_form_tag %>
90 <%= end_form_tag %>
91 </td>
91 </td>
92 </tr>
92 </tr>
93 <% end %>
93 <% end %>
94 <% end %>
94 <% end %>
95 </table>
95 </table>
96 <hr />
96 <hr />
97
97
98 <%= start_form_tag :action => 'add_issue_category', :id => @project %>
98 <%= start_form_tag :action => 'add_issue_category', :id => @project %>
99 <label for="issue_category_name"><%=l(:label_issue_category_new)%></label><br/>
99 <label for="issue_category_name"><%=l(:label_issue_category_new)%></label><br/>
100 <%= error_messages_for 'issue_category' %>
100 <%= error_messages_for 'issue_category' %>
101 <%= text_field 'issue_category', 'name', :size => 25 %>
101 <%= text_field 'issue_category', 'name', :size => 25 %>
102 <%= submit_tag l(:button_create) %>
102 <%= submit_tag l(:button_create) %>
103 <%= end_form_tag %>
103 <%= end_form_tag %>
104
104
105 </div>
105 </div>
@@ -1,13 +1,14
1 <h2><%=l(:label_report_plural)%></h2>
1 <h2><%=l(:label_report_plural)%></h2>
2
2
3 <strong><%=l(:field_tracker)%></strong>
3 <strong><%=l(:field_tracker)%></strong>
4 <%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %>
4 <%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %>
5 <br />
5 <br />
6
6
7 <strong><%=l(:field_priority)%></strong>
7 <strong><%=l(:field_priority)%></strong>
8 <%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %>
8 <%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %>
9 <br />
9 <br />
10
10
11 <strong><%=l(:field_category)%></strong>
11 <strong><%=l(:field_category)%></strong>
12 <%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %>
12 <%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %>
13
13
14 &nbsp;
@@ -1,23 +1,21
1 <%= error_messages_for 'role' %>
1 <%= error_messages_for 'role' %>
2
3 <div class="box">
2 <div class="box">
4 <!--[form:role]-->
3 <!--[form:role]-->
5 <p><label for="role_name"><%=l(:field_name)%> <span class="required">*</span></label><br />
4 <p><%= f.text_field :name, :required => true %></p>
6 <%= text_field 'role', 'name' %></p>
7
5
8 <strong><%=l(:label_permissions)%>:</strong>
6 <strong><%=l(:label_permissions)%>:</strong>
9 <% permissions = @permissions.group_by {|p| p.group_id } %>
7 <% permissions = @permissions.group_by {|p| p.group_id } %>
10 <% permissions.keys.sort.each do |group_id| %>
8 <% permissions.keys.sort.each do |group_id| %>
11 <fieldset style="margin-top: 6px;"><legend><strong><%= l(Permission::GROUPS[group_id]) %></strong></legend>
9 <fieldset style="margin-top: 6px;"><legend><strong><%= l(Permission::GROUPS[group_id]) %></strong></legend>
12 <% permissions[group_id].each do |p| %>
10 <% permissions[group_id].each do |p| %>
13 <div style="width:170px;float:left;"><%= check_box_tag "permission_ids[]", p.id, (@role.permissions.include? p) %>
11 <div style="width:170px;float:left;"><%= check_box_tag "permission_ids[]", p.id, (@role.permissions.include? p) %>
14 <%= l(p.description.to_sym) %>
12 <%= l(p.description.to_sym) %>
15 </div>
13 </div>
16 <% end %>
14 <% end %>
17 </fieldset>
15 </fieldset>
18 <% end %>
16 <% end %>
19 <br />
17 <br />
20 <a href="javascript:checkAll('role_form', true)"><%=l(:button_check_all)%></a> |
18 <a href="javascript:checkAll('role_form', true)"><%=l(:button_check_all)%></a> |
21 <a href="javascript:checkAll('role_form', false)"><%=l(:button_uncheck_all)%></a><br />
19 <a href="javascript:checkAll('role_form', false)"><%=l(:button_uncheck_all)%></a><br />
22 <!--[eoform:role]-->
20 <!--[eoform:role]-->
23 </div>
21 </div>
@@ -1,8 +1,6
1 <h2><%=l(:label_role)%></h2>
1 <h2><%=l(:label_role)%></h2>
2
2
3 <%= start_form_tag ({ :action => 'edit', :id => @role }, :id => 'role_form') %>
3 <% labelled_tabular_form_for :role, @role, :url => { :action => 'edit' }, :html => {:id => 'role_form'} do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %>
7
8
@@ -1,23 +1,21
1 <h2><%=l(:label_role_plural)%></h2>
1 <h2><%=l(:label_role_plural)%></h2>
2
2
3 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <th><%=l(:label_role)%></th>
5 <th><%=l(:label_role)%></th>
6 <th></th>
6 <th></th>
7 </tr>
7 </tr>
8
8
9 <% for role in @roles %>
9 <% for role in @roles %>
10 <tr class="<%= cycle("odd", "even") %>">
10 <tr class="<%= cycle("odd", "even") %>">
11 <td><%= link_to role.name, :action => 'edit', :id => role %></td>
11 <td><%= link_to role.name, :action => 'edit', :id => role %></td>
12 <td align="center">
12 <td align="center">
13 <%= start_form_tag :action => 'destroy', :id => role %>
13 <%= button_to l(:button_delete), { :action => 'destroy', :id => role }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
14 <%= submit_tag l(:button_delete), :class => "button-small" %>
15 <%= end_form_tag %>
16 </tr>
14 </tr>
17 <% end %>
15 <% end %>
18 </table>
16 </table>
19
17
20 <%= pagination_links_full @role_pages %>
18 <%= pagination_links_full @role_pages %>
21 <br />
19 <br />
22
20
23 <%= link_to '&#187; ' + l(:label_role_new), :action => 'new' %>
21 <%= link_to '&#187; ' + l(:label_role_new), :action => 'new' %>
@@ -1,7 +1,6
1 <h2><%=l(:label_role_new)%></h2>
1 <h2><%=l(:label_role_new)%></h2>
2
2
3 <%= start_form_tag ({ :action => 'new' }, :id => 'role_form') %>
3 <% labelled_tabular_form_for :role, @role, :url => { :action => 'new' }, :html => {:id => 'role_form'} do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
7
@@ -1,10 +1,7
1 <%= error_messages_for 'tracker' %>
1 <%= error_messages_for 'tracker' %>
2
2 <div class="box">
3 <!--[form:tracker]-->
3 <!--[form:tracker]-->
4 <p><label for="tracker_name"><%=l(:field_name)%></label> <span class="required">*</span><br/>
4 <p><%= f.text_field :name, :required => true %></p>
5 <%= text_field 'tracker', 'name' %></p>
5 <p><%= f.check_box :is_in_chlog %></p>
6
7 <p><%= check_box 'tracker', 'is_in_chlog' %>
8 <label for="tracker_is_in_chlog"><%=l(:field_is_in_chlog)%></label></p>
9 <!--[eoform:tracker]-->
6 <!--[eoform:tracker]-->
10
7 </div>
@@ -1,6 +1,6
1 <h2><%=l(:label_tracker)%></h2>
1 <h2><%=l(:label_tracker)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @tracker %>
3 <% labelled_tabular_form_for :tracker, @tracker, :url => { :action => 'edit' } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
@@ -1,24 +1,22
1 <h2><%=l(:label_tracker_plural)%></h2>
1 <h2><%=l(:label_tracker_plural)%></h2>
2
2
3 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <th><%=l(:label_tracker)%></th>
5 <th><%=l(:label_tracker)%></th>
6 <th></th>
6 <th></th>
7 </tr>
7 </tr>
8
8
9 <% for tracker in @trackers %>
9 <% for tracker in @trackers %>
10 <tr class="<%= cycle("odd", "even") %>">
10 <tr class="<%= cycle("odd", "even") %>">
11 <td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td>
11 <td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td>
12 <td align="center">
12 <td align="center">
13 <%= start_form_tag :action => 'destroy', :id => tracker %>
13 <%= button_to l(:button_delete), { :action => 'destroy', :id => tracker }, :confirm => l(:text_are_you_sure), :class => "button-small" %>
14 <%= submit_tag l(:button_delete), :class => "button-small" %>
15 <%= end_form_tag %>
16 </td>
14 </td>
17 </tr>
15 </tr>
18 <% end %>
16 <% end %>
19 </table>
17 </table>
20
18
21 <%= pagination_links_full @tracker_pages %>
19 <%= pagination_links_full @tracker_pages %>
22 <br />
20 <br />
23
21
24 <%= link_to '&#187; ' + l(:label_tracker_new), :action => 'new' %>
22 <%= link_to '&#187; ' + l(:label_tracker_new), :action => 'new' %>
@@ -1,7 +1,6
1 <h2><%=l(:label_tracker_new)%></h2>
1 <h2><%=l(:label_tracker_new)%></h2>
2
2
3 <%= start_form_tag :action => 'new' %>
3 <% labelled_tabular_form_for :tracker, @tracker, :url => { :action => 'new' } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
7
@@ -1,37 +1,26
1 <%= error_messages_for 'user' %>
1 <%= error_messages_for 'user' %>
2
2
3 <div class="box">
3 <div class="box">
4 <!--[form:user]-->
4 <!--[form:user]-->
5 <p><label for="user_login"><%=l(:field_login)%></label> <span class="required">*</span><br/>
5 <p><%= f.text_field :login, :required => true, :size => 25 %></p>
6 <%= text_field 'user', 'login', :size => 25 %></p>
7
6
8 <p><label for="password"><%=l(:field_password)%></label> <span class="required">*</span><br/>
7 <p><label for="password"><%=l(:field_password)%><span class="required"> *</span></label>
9 <%= password_field_tag 'password', nil, :size => 25 %></p>
8 <%= password_field_tag 'password', nil, :size => 25 %></p>
10
9
11 <p><label for="password_confirmation"><%=l(:field_password_confirmation)%></label> <span class="required">*</span><br/>
10 <p><label for="password_confirmation"><%=l(:field_password_confirmation)%><span class="required"> *</span></label>
12 <%= password_field_tag 'password_confirmation', nil, :size => 25 %></p>
11 <%= password_field_tag 'password_confirmation', nil, :size => 25 %></p>
13
12
14 <p><label for="user_firstname"><%=l(:field_firstname)%></label> <span class="required">*</span><br/>
13 <p><%= f.text_field :firstname, :required => true %></p>
15 <%= text_field 'user', 'firstname' %></p>
14 <p><%= f.text_field :lastname, :required => true %></p>
16
15 <p><%= f.text_field :mail, :required => true %></p>
17 <p><label for="user_lastname"><%=l(:field_lastname)%></label> <span class="required">*</span><br/>
16 <p><%= f.select :language, lang_options_for_select %></p>
18 <%= text_field 'user', 'lastname' %></p>
19
20 <p><label for="user_mail"><%=l(:field_mail)%></label> <span class="required">*</span><br/>
21 <%= text_field 'user', 'mail' %></p>
22
23 <p><label for="user_language"><%=l(:field_language)%></label><br/>
24 <%= select("user", "language", lang_options_for_select) %></p>
25
17
26 <% for @custom_value in @custom_values %>
18 <% for @custom_value in @custom_values %>
27 <p><%= custom_field_tag_with_label @custom_value %></p>
19 <p><%= custom_field_tag_with_label @custom_value %></p>
28 <% end %>
20 <% end %>
29
21
30 <div style="clear: both;"></div>
22 <p><%= f.check_box :admin %></p>
31
23 <p><%= f.check_box :mail_notification %></p>
32 <p><%= check_box 'user', 'admin' %> <label for="user_admin"><%=l(:field_admin)%></label></p>
33
34 <p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p>
35
24
36 <!--[eoform:user]-->
25 <!--[eoform:user]-->
37 </div>
26 </div>
@@ -1,6 +1,6
1 <h2><%=l(:label_user_new)%></h2>
1 <h2><%=l(:label_user_new)%></h2>
2
2
3 <%= start_form_tag :action => 'add' %>
3 <% labelled_tabular_form_for :user, @user, :url => { :action => "add" } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_create) %>
5 <%= submit_tag l(:button_create) %>
6 <%= end_form_tag %>
6 <% end %> No newline at end of file
@@ -1,6 +1,6
1 <h2><%=l(:label_user)%></h2>
1 <h2><%=l(:label_user)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @user %>
3 <% labelled_tabular_form_for :user, @user, :url => { :action => "edit" } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %>
@@ -1,46 +1,46
1 <h2><%=l(:label_user_plural)%></h2>
1 <h2><%=l(:label_user_plural)%></h2>
2
2
3 <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
3 <table class="listTableContent">
4 <tr class="ListHead">
4 <tr class="ListHead">
5 <%= sort_header_tag('login', :caption => l(:field_login)) %>
5 <%= sort_header_tag('login', :caption => l(:field_login)) %>
6 <%= sort_header_tag('firstname', :caption => l(:field_firstname)) %>
6 <%= sort_header_tag('firstname', :caption => l(:field_firstname)) %>
7 <%= sort_header_tag('lastname', :caption => l(:field_lastname)) %>
7 <%= sort_header_tag('lastname', :caption => l(:field_lastname)) %>
8 <th><%=l(:field_mail)%></th>
8 <th><%=l(:field_mail)%></th>
9 <%= sort_header_tag('admin', :caption => l(:field_admin)) %>
9 <%= sort_header_tag('admin', :caption => l(:field_admin)) %>
10 <%= sort_header_tag('status', :caption => l(:field_status)) %>
10 <%= sort_header_tag('status', :caption => l(:field_status)) %>
11 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
11 <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
12 <%= sort_header_tag('last_login_on', :caption => l(:field_last_login_on)) %>
12 <%= sort_header_tag('last_login_on', :caption => l(:field_last_login_on)) %>
13 <th></th>
13 <th></th>
14 </tr>
14 </tr>
15 <% for user in @users %>
15 <% for user in @users %>
16 <tr class="<%= cycle("odd", "even") %>">
16 <tr class="<%= cycle("odd", "even") %>">
17 <td><%= link_to user.login, :action => 'edit', :id => user %></td>
17 <td><%= link_to user.login, :action => 'edit', :id => user %></td>
18 <td><%= user.firstname %></td>
18 <td><%= user.firstname %></td>
19 <td><%= user.lastname %></td>
19 <td><%= user.lastname %></td>
20 <td><%= user.mail %></td>
20 <td><%= user.mail %></td>
21 <td align="center"><%= image_tag 'true' if user.admin? %></td>
21 <td align="center"><%= image_tag 'true' if user.admin? %></td>
22 <td align="center"><%= image_tag 'locked' if user.locked? %></td>
22 <td align="center"><%= image_tag 'locked' if user.locked? %></td>
23 <td align="center"><%= format_time(user.created_on) %></td>
23 <td align="center"><%= format_time(user.created_on) %></td>
24 <td align="center"><%= format_time(user.last_login_on) unless user.last_login_on.nil? %></td>
24 <td align="center"><%= format_time(user.last_login_on) unless user.last_login_on.nil? %></td>
25 <td align="center">
25 <td align="center">
26 <%= start_form_tag :action => 'edit', :id => user %>
26 <%= start_form_tag :action => 'edit', :id => user %>
27 <% if user.locked? %>
27 <% if user.locked? %>
28 <%= hidden_field_tag 'user[status]', User::STATUS_ACTIVE %>
28 <%= hidden_field_tag 'user[status]', User::STATUS_ACTIVE %>
29 <%= submit_tag l(:button_unlock), :class => "button-small" %>
29 <%= submit_tag l(:button_unlock), :class => "button-small" %>
30 <% else %>
30 <% else %>
31 <%= hidden_field_tag 'user[status]', User::STATUS_LOCKED %>
31 <%= hidden_field_tag 'user[status]', User::STATUS_LOCKED %>
32 <%= submit_tag l(:button_lock), :class => "button-small" %>
32 <%= submit_tag l(:button_lock), :class => "button-small" %>
33 <% end %>
33 <% end %>
34 <%= end_form_tag %>
34 <%= end_form_tag %>
35 </td>
35 </td>
36 </tr>
36 </tr>
37 <% end %>
37 <% end %>
38 </table>
38 </table>
39
39
40 <p><%= pagination_links_full @user_pages %>
40 <p><%= pagination_links_full @user_pages %>
41 [ <%= @user_pages.current.first_item %> - <%= @user_pages.current.last_item %> / <%= @user_count %> ]
41 [ <%= @user_pages.current.first_item %> - <%= @user_pages.current.last_item %> / <%= @user_count %> ]
42 </p>
42 </p>
43
43
44 <p>
44 <p>
45 <%= link_to '&#187; ' + l(:label_user_new), :action => 'add' %>
45 <%= link_to '&#187; ' + l(:label_user_new), :action => 'add' %>
46 </p> No newline at end of file
46 </p>
@@ -1,13 +1,8
1 <%= error_messages_for 'version' %>
1 <%= error_messages_for 'version' %>
2
2 <div class="box">
3 <!--[form:version]-->
3 <!--[form:version]-->
4 <p><label for="version_name"><%=l(:field_name)%></label> <span class="required">*</span><br/>
4 <p><%= f.text_field :name, :size => 20, :required => true %></p>
5 <%= text_field 'version', 'name', :size => 20 %></p>
5 <p><%= f.text_field :description, :size => 60 %></p>
6
6 <p><%= f.date_select :effective_date, :required => true %></p>
7 <p><label for="version_description"><%=l(:field_description)%></label><br/>
8 <%= text_field 'version', 'description', :size => 60 %></p>
9
10 <p><label for="version_effective_date"><%=l(:field_effective_date)%></label><br/>
11 <%= date_select 'version', 'effective_date' %></p>
12 <!--[eoform:version]-->
7 <!--[eoform:version]-->
13
8 </div> No newline at end of file
@@ -1,8 +1,7
1 <h2><%=l(:label_version)%></h2>
1 <h2><%=l(:label_version)%></h2>
2
2
3 <%= start_form_tag :action => 'edit', :id => @version %>
3 <% labelled_tabular_form_for :version, @version, :url => { :action => 'edit' } do |f| %>
4 <%= render :partial => 'form' %>
4 <%= render :partial => 'form', :locals => { :f => f } %>
5 <%= submit_tag l(:button_save) %>
5 <%= submit_tag l(:button_save) %>
6 <%= end_form_tag %>
6 <% end %>
7
8
7
@@ -1,134 +1,134
1 # Be sure to restart your web server when you modify this file.
1 # Be sure to restart your web server when you modify this file.
2
2
3 # Uncomment below to force Rails into production mode when
3 # Uncomment below to force Rails into production mode when
4 # you don't control web/app server and can't set it the proper way
4 # you don't control web/app server and can't set it the proper way
5 # ENV['RAILS_ENV'] ||= 'production'
5 # ENV['RAILS_ENV'] ||= 'production'
6
6
7 # Bootstrap the Rails environment, frameworks, and default configuration
7 # Bootstrap the Rails environment, frameworks, and default configuration
8 require File.join(File.dirname(__FILE__), 'boot')
8 require File.join(File.dirname(__FILE__), 'boot')
9
9
10 Rails::Initializer.run do |config|
10 Rails::Initializer.run do |config|
11 # Settings in config/environments/* take precedence those specified here
11 # Settings in config/environments/* take precedence those specified here
12
12
13 # Skip frameworks you're not going to use
13 # Skip frameworks you're not going to use
14 # config.frameworks -= [ :action_web_service, :action_mailer ]
14 # config.frameworks -= [ :action_web_service, :action_mailer ]
15
15
16 # Add additional load paths for your own custom dirs
16 # Add additional load paths for your own custom dirs
17 # config.load_paths += %W( #{RAILS_ROOT}/extras )
17 # config.load_paths += %W( #{RAILS_ROOT}/extras )
18
18
19 # Force all environments to use the same logger level
19 # Force all environments to use the same logger level
20 # (by default production uses :info, the others :debug)
20 # (by default production uses :info, the others :debug)
21 # config.log_level = :debug
21 # config.log_level = :debug
22
22
23 # Use the database for sessions instead of the file system
23 # Use the database for sessions instead of the file system
24 # (create the session table with 'rake create_sessions_table')
24 # (create the session table with 'rake create_sessions_table')
25 # config.action_controller.session_store = :active_record_store
25 # config.action_controller.session_store = :active_record_store
26
26
27 # Enable page/fragment caching by setting a file-based store
27 # Enable page/fragment caching by setting a file-based store
28 # (remember to create the caching directory and make it readable to the application)
28 # (remember to create the caching directory and make it readable to the application)
29 # config.action_controller.fragment_cache_store = :file_store, "#{RAILS_ROOT}/cache"
29 # config.action_controller.fragment_cache_store = :file_store, "#{RAILS_ROOT}/cache"
30
30
31 # Activate observers that should always be running
31 # Activate observers that should always be running
32 # config.active_record.observers = :cacher, :garbage_collector
32 # config.active_record.observers = :cacher, :garbage_collector
33
33
34 # Make Active Record use UTC-base instead of local time
34 # Make Active Record use UTC-base instead of local time
35 # config.active_record.default_timezone = :utc
35 # config.active_record.default_timezone = :utc
36
36
37 # Use Active Record's schema dumper instead of SQL when creating the test database
37 # Use Active Record's schema dumper instead of SQL when creating the test database
38 # (enables use of different database adapters for development and test environments)
38 # (enables use of different database adapters for development and test environments)
39 # config.active_record.schema_format = :ruby
39 # config.active_record.schema_format = :ruby
40
40
41 # See Rails::Configuration for more options
41 # See Rails::Configuration for more options
42
42
43 # SMTP server configuration
43 # SMTP server configuration
44 config.action_mailer.server_settings = {
44 config.action_mailer.server_settings = {
45 :address => "127.0.0.1",
45 :address => "127.0.0.1",
46 :port => 25,
46 :port => 25,
47 :domain => "somenet.foo",
47 :domain => "somenet.foo",
48 :authentication => :login,
48 :authentication => :login,
49 :user_name => "redmine",
49 :user_name => "redmine",
50 :password => "redmine",
50 :password => "redmine",
51 }
51 }
52
52
53 config.action_mailer.perform_deliveries = true
53 config.action_mailer.perform_deliveries = true
54
54
55 # Tell ActionMailer not to deliver emails to the real world.
55 # Tell ActionMailer not to deliver emails to the real world.
56 # The :test delivery method accumulates sent emails in the
56 # The :test delivery method accumulates sent emails in the
57 # ActionMailer::Base.deliveries array.
57 # ActionMailer::Base.deliveries array.
58 #config.action_mailer.delivery_method = :test
58 #config.action_mailer.delivery_method = :test
59 config.action_mailer.delivery_method = :smtp
59 config.action_mailer.delivery_method = :smtp
60 end
60 end
61
61
62 # Add new inflection rules using the following format
62 # Add new inflection rules using the following format
63 # (all these examples are active by default):
63 # (all these examples are active by default):
64 # Inflector.inflections do |inflect|
64 # Inflector.inflections do |inflect|
65 # inflect.plural /^(ox)$/i, '\1en'
65 # inflect.plural /^(ox)$/i, '\1en'
66 # inflect.singular /^(ox)en/i, '\1'
66 # inflect.singular /^(ox)en/i, '\1'
67 # inflect.irregular 'person', 'people'
67 # inflect.irregular 'person', 'people'
68 # inflect.uncountable %w( fish sheep )
68 # inflect.uncountable %w( fish sheep )
69 # end
69 # end
70
70
71 if File.exist? File.join(File.dirname(__FILE__), 'config_custom.rb')
71 if File.exist? File.join(File.dirname(__FILE__), 'config_custom.rb')
72 begin
72 begin
73 print "=> Loading config_custom.rb... "
73 print "=> Loading config_custom.rb... "
74 require File.join(File.dirname(__FILE__), 'config_custom')
74 require File.join(File.dirname(__FILE__), 'config_custom')
75 puts "done."
75 puts "done."
76 rescue Exception => detail
76 rescue Exception => detail
77 puts
77 puts
78 puts detail
78 puts detail
79 puts detail.backtrace.join("\n")
79 puts detail.backtrace.join("\n")
80 puts "=> Error in config_custom.rb. Check your configuration."
80 puts "=> Error in config_custom.rb. Check your configuration."
81 exit
81 exit
82 end
82 end
83 end
83 end
84
84
85 # IMPORTANT !!! DO NOT MODIFY PARAMETERS HERE
85 # IMPORTANT !!! DO NOT MODIFY PARAMETERS HERE
86 # Instead, rename config_custom.example.rb to config_custom.rb
86 # Instead, rename config_custom.example.rb to config_custom.rb
87 # and set your own configuration in that file
87 # and set your own configuration in that file
88 # Parameters defined in config_custom.rb override those defined below
88 # Parameters defined in config_custom.rb override those defined below
89
89
90 # application host name
90 # application host name
91 $RDM_HOST_NAME ||= "localhost:3000"
91 $RDM_HOST_NAME ||= "localhost:3000"
92 # file storage path
92 # file storage path
93 $RDM_STORAGE_PATH ||= "#{RAILS_ROOT}/files"
93 $RDM_STORAGE_PATH ||= "#{RAILS_ROOT}/files"
94 # if RDM_LOGIN_REQUIRED is set to true, login is required to access the application
94 # if RDM_LOGIN_REQUIRED is set to true, login is required to access the application
95 $RDM_LOGIN_REQUIRED ||= false
95 $RDM_LOGIN_REQUIRED ||= false
96 # default langage
96 # default langage
97 $RDM_DEFAULT_LANG ||= 'en'
97 $RDM_DEFAULT_LANG ||= 'en'
98
98
99 # page title
99 # page title
100 $RDM_HEADER_TITLE ||= "redMine"
100 $RDM_HEADER_TITLE ||= "redMine"
101 # page sub-title
101 # page sub-title
102 $RDM_HEADER_SUBTITLE ||= "Project management"
102 $RDM_HEADER_SUBTITLE ||= "Project management"
103 # footer signature
103 # footer signature
104 $RDM_FOOTER_SIG = "admin@somenet.foo"
104 $RDM_FOOTER_SIG = "admin@somenet.foo"
105
105
106 # application name
106 # application name
107 RDM_APP_NAME = "redMine"
107 RDM_APP_NAME = "redMine"
108 # application version
108 # application version
109 RDM_APP_VERSION = "0.3.0"
109 RDM_APP_VERSION = "0.3.0"
110
110
111 ActiveRecord::Errors.default_error_messages = {
111 ActiveRecord::Errors.default_error_messages = {
112 :inclusion => "activerecord_error_inclusion",
112 :inclusion => "activerecord_error_inclusion",
113 :exclusion => "activerecord_error_exclusion",
113 :exclusion => "activerecord_error_exclusion",
114 :invalid => "activerecord_error_invalid",
114 :invalid => "activerecord_error_invalid",
115 :confirmation => "activerecord_error_confirmation",
115 :confirmation => "activerecord_error_confirmation",
116 :accepted => "activerecord_error_accepted",
116 :accepted => "activerecord_error_accepted",
117 :empty => "activerecord_error_empty",
117 :empty => "activerecord_error_empty",
118 :blank => "activerecord_error_blank",
118 :blank => "activerecord_error_blank",
119 :too_long => "activerecord_error_too_long",
119 :too_long => "activerecord_error_too_long",
120 :too_short => "activerecord_error_too_short",
120 :too_short => "activerecord_error_too_short",
121 :wrong_length => "activerecord_error_wrong_length",
121 :wrong_length => "activerecord_error_wrong_length",
122 :taken => "activerecord_error_taken",
122 :taken => "activerecord_error_taken",
123 :not_a_number => "activerecord_error_not_a_number"
123 :not_a_number => "activerecord_error_not_a_number"
124 }
124 }
125
125
126 ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "<span class=\"fieldWithErrors\">#{html_tag}</span>" }
126 ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "#{html_tag}" }
127
127
128 GLoc.set_config :default_language => $RDM_DEFAULT_LANG
128 GLoc.set_config :default_language => $RDM_DEFAULT_LANG
129 GLoc.clear_strings
129 GLoc.clear_strings
130 GLoc.set_kcode
130 GLoc.set_kcode
131 GLoc.load_localized_strings
131 GLoc.load_localized_strings
132 GLoc.set_config(:raise_string_not_found_errors => false)
132 GLoc.set_config(:raise_string_not_found_errors => false)
133
133
134
134
@@ -1,63 +1,67
1 == redMine changelog
1 == redMine changelog
2
2
3 redMine - project management software
3 redMine - project management software
4 Copyright (C) 2006 Jean-Philippe Lang
4 Copyright (C) 2006 Jean-Philippe Lang
5 http://redmine.org/
5 http://redmine.org/
6
6
7
7
8 == xx/xx/2006 v0.3.0
8 == xx/xx/2006 v0.3.0
9
9
10 * user authentication against multiple LDAP
10 * user authentication against multiple LDAP (optional)
11 * token based "lost password" functionality
11 * token based "lost password" functionality
12 * user self-registration functionality (optional)
12 * user self-registration functionality (optional)
13 * custom fields now available for issues, users and projects
13 * custom fields now available for issues, users and projects
14 * new custom field format "text" (displayed as a textarea field)
14 * new custom field format "text" (displayed as a textarea field)
15 * project & administration drop down menus in navigation bar for quicker access
15 * project & administration drop down menus in navigation bar for quicker access
16 * "due date" field added on issues
16 * "due date" field added on issues
17 * error messages internationalization
17 * tracker selection filter added on change log
18 * Localization plugin replaced with GLoc 1.1.0
18 * Localization plugin replaced with GLoc 1.1.0
19 * error messages internationalization
20 * german translation added (thanks to Karim Trott)
19 * new filter in issues list: "Fixed version"
21 * new filter in issues list: "Fixed version"
20 * active filters are displayed with colored background on issues list
22 * active filters are displayed with colored background on issues list
21 * custom configuration is now defined in config/config_custom.rb
23 * custom configuration is now defined in config/config_custom.rb
22 * user object no more stored in session (only user_id)
24 * user object no more stored in session (only user_id)
23 * news summary field is no longer required
25 * news summary field is no longer required
26 * tables and forms redesign
24 * Fixed: boolean custom field not working
27 * Fixed: boolean custom field not working
25 * Fixed: error messages for custom fields are not displayed
28 * Fixed: error messages for custom fields are not displayed
29 * Fixed: invalid custom fields should have a red border
26 * Fixed: custom fields values are not validated on issue update
30 * Fixed: custom fields values are not validated on issue update
27 * Fixed: unable to choose an empty value for 'List' custom fields
31 * Fixed: unable to choose an empty value for 'List' custom fields
28 * Fixed: no issue categories sorting
32 * Fixed: no issue categories sorting
29 * Fixed: incorrect versions sorting
33 * Fixed: incorrect versions sorting
30
34
31
35
32 == 07/12/2006 - v0.2.2
36 == 07/12/2006 - v0.2.2
33
37
34 * Fixed: bug in "issues list"
38 * Fixed: bug in "issues list"
35
39
36
40
37 == 07/09/2006 - v0.2.1
41 == 07/09/2006 - v0.2.1
38
42
39 * new databases supported: Oracle, PostgreSQL, SQL Server
43 * new databases supported: Oracle, PostgreSQL, SQL Server
40 * projects/subprojects hierarchy (1 level of subprojects only)
44 * projects/subprojects hierarchy (1 level of subprojects only)
41 * environment information display in admin/info
45 * environment information display in admin/info
42 * more filter options in issues list (rev6)
46 * more filter options in issues list (rev6)
43 * default language based on browser settings (Accept-Language HTTP header)
47 * default language based on browser settings (Accept-Language HTTP header)
44 * issues list exportable to CSV (rev6)
48 * issues list exportable to CSV (rev6)
45 * simple_format and auto_link on long text fields
49 * simple_format and auto_link on long text fields
46 * more data validations
50 * more data validations
47 * Fixed: error when all mail notifications are unchecked in admin/mail_options
51 * Fixed: error when all mail notifications are unchecked in admin/mail_options
48 * Fixed: all project news are displayed on project summary
52 * Fixed: all project news are displayed on project summary
49 * Fixed: Can't change user password in users/edit
53 * Fixed: Can't change user password in users/edit
50 * Fixed: Error on tables creation with PostgreSQL (rev5)
54 * Fixed: Error on tables creation with PostgreSQL (rev5)
51 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
55 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
52
56
53
57
54 == 06/25/2006 - v0.1.0
58 == 06/25/2006 - v0.1.0
55
59
56 * multiple users/multiple projects
60 * multiple users/multiple projects
57 * role based access control
61 * role based access control
58 * issue tracking system
62 * issue tracking system
59 * fully customizable workflow
63 * fully customizable workflow
60 * documents/files repository
64 * documents/files repository
61 * email notifications on issue creation and update
65 * email notifications on issue creation and update
62 * multilanguage support (except for error messages):english, french, spanish
66 * multilanguage support (except for error messages):english, french, spanish
63 * online manual in french (unfinished) No newline at end of file
67 * online manual in french (unfinished)
@@ -1,289 +1,290
1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2
2
3 actionview_datehelper_select_day_prefix:
3 actionview_datehelper_select_day_prefix:
4 actionview_datehelper_select_month_names: January,February,March,April,May,June,July,August,September,October,November,December
4 actionview_datehelper_select_month_names: January,February,March,April,May,June,July,August,September,October,November,December
5 actionview_datehelper_select_month_names_abbr: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
5 actionview_datehelper_select_month_names_abbr: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
6 actionview_datehelper_select_month_prefix:
6 actionview_datehelper_select_month_prefix:
7 actionview_datehelper_select_year_prefix:
7 actionview_datehelper_select_year_prefix:
8 actionview_datehelper_time_in_words_day: 1 day
8 actionview_datehelper_time_in_words_day: 1 day
9 actionview_datehelper_time_in_words_day_plural: %d days
9 actionview_datehelper_time_in_words_day_plural: %d days
10 actionview_datehelper_time_in_words_hour_about: about an hour
10 actionview_datehelper_time_in_words_hour_about: about an hour
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 actionview_datehelper_time_in_words_minute: 1 minute
13 actionview_datehelper_time_in_words_minute: 1 minute
14 actionview_datehelper_time_in_words_minute_half: half a minute
14 actionview_datehelper_time_in_words_minute_half: half a minute
15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 actionview_datehelper_time_in_words_minute_single: 1 minute
17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 actionview_datehelper_time_in_words_second_less_than: less than a second
18 actionview_datehelper_time_in_words_second_less_than: less than a second
19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
20 actionview_instancetag_blank_option: Please select
20 actionview_instancetag_blank_option: Please select
21
21
22 activerecord_error_inclusion: is not included in the list
22 activerecord_error_inclusion: is not included in the list
23 activerecord_error_exclusion: is reserved
23 activerecord_error_exclusion: is reserved
24 activerecord_error_invalid: is invalid
24 activerecord_error_invalid: is invalid
25 activerecord_error_confirmation: doesn't match confirmation
25 activerecord_error_confirmation: doesn't match confirmation
26 activerecord_error_accepted: must be accepted
26 activerecord_error_accepted: must be accepted
27 activerecord_error_empty: can't be empty
27 activerecord_error_empty: can't be empty
28 activerecord_error_blank: can't be blank
28 activerecord_error_blank: can't be blank
29 activerecord_error_too_long: is too long
29 activerecord_error_too_long: is too long
30 activerecord_error_too_short: is too short
30 activerecord_error_too_short: is too short
31 activerecord_error_wrong_length: is the wrong length
31 activerecord_error_wrong_length: is the wrong length
32 activerecord_error_taken: has already been taken
32 activerecord_error_taken: has already been taken
33 activerecord_error_not_a_number: is not a number
33 activerecord_error_not_a_number: is not a number
34
34
35 general_fmt_age: %d yr
35 general_fmt_age: %d yr
36 general_fmt_age_plural: %d yrs
36 general_fmt_age_plural: %d yrs
37 general_fmt_date: %%b %%d, %%Y (%%a)
37 general_fmt_date: %%b %%d, %%Y (%%a)
38 general_fmt_datetime: %%b %%d, %%Y (%%a), %%I:%%M %%p
38 general_fmt_datetime: %%b %%d, %%Y (%%a), %%I:%%M %%p
39 general_fmt_datetime_short: %%b %%d, %%I:%%M %%p
39 general_fmt_datetime_short: %%b %%d, %%I:%%M %%p
40 general_fmt_time: %%I:%%M %%p
40 general_fmt_time: %%I:%%M %%p
41 general_text_No: 'No'
41 general_text_No: 'No'
42 general_text_Yes: 'Yes'
42 general_text_Yes: 'Yes'
43 general_text_no: 'no'
43 general_text_no: 'no'
44 general_text_yes: 'yes'
44 general_text_yes: 'yes'
45 general_lang_en: 'English'
45 general_lang_en: 'English'
46
46
47 notice_account_updated: Account was successfully updated.
47 notice_account_updated: Account was successfully updated.
48 notice_account_invalid_creditentials: Invalid user or password
48 notice_account_invalid_creditentials: Invalid user or password
49 notice_account_password_updated: Password was successfully updated.
49 notice_account_password_updated: Password was successfully updated.
50 notice_account_wrong_password: Wrong password
50 notice_account_wrong_password: Wrong password
51 notice_account_register_done: Account was successfully created.
51 notice_account_register_done: Account was successfully created.
52 notice_account_unknown_email: Unknown user.
52 notice_account_unknown_email: Unknown user.
53 notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
53 notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
54 notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
54 notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
55 notice_account_activated: Your account has been activated. You can now log in.
55 notice_account_activated: Your account has been activated. You can now log in.
56 notice_successful_create: Successful creation.
56 notice_successful_create: Successful creation.
57 notice_successful_update: Successful update.
57 notice_successful_update: Successful update.
58 notice_successful_delete: Successful deletion.
58 notice_successful_delete: Successful deletion.
59 notice_successful_connection: Successful connection.
59 notice_successful_connection: Successful connection.
60 notice_file_not_found: Requested file doesn't exist or has been deleted.
60 notice_file_not_found: Requested file doesn't exist or has been deleted.
61
61
62 gui_validation_error: 1 error
62 gui_validation_error: 1 error
63 gui_validation_error_plural: %d errors
63 gui_validation_error_plural: %d errors
64
64
65 field_name: Name
65 field_name: Name
66 field_description: Description
66 field_description: Description
67 field_summary: Summary
67 field_summary: Summary
68 field_is_required: Required
68 field_is_required: Required
69 field_firstname: Firstname
69 field_firstname: Firstname
70 field_lastname: Lastname
70 field_lastname: Lastname
71 field_mail: Email
71 field_mail: Email
72 field_filename: File
72 field_filename: File
73 field_filesize: Size
73 field_filesize: Size
74 field_downloads: Downloads
74 field_downloads: Downloads
75 field_author: Author
75 field_author: Author
76 field_created_on: Created
76 field_created_on: Created
77 field_updated_on: Updated
77 field_updated_on: Updated
78 field_field_format: Format
78 field_field_format: Format
79 field_is_for_all: For all projects
79 field_is_for_all: For all projects
80 field_possible_values: Possible values
80 field_possible_values: Possible values
81 field_regexp: Regular expression
81 field_regexp: Regular expression
82 field_min_length: Minimum length
82 field_min_length: Minimum length
83 field_max_length: Maximum length
83 field_max_length: Maximum length
84 field_value: Value
84 field_value: Value
85 field_category: Catogory
85 field_category: Catogory
86 field_title: Title
86 field_title: Title
87 field_project: Project
87 field_project: Project
88 field_issue: Issue
88 field_issue: Issue
89 field_status: Status
89 field_status: Status
90 field_notes: Notes
90 field_notes: Notes
91 field_is_closed: Issue closed
91 field_is_closed: Issue closed
92 field_is_default: Default status
92 field_is_default: Default status
93 field_html_color: Color
93 field_html_color: Color
94 field_tracker: Tracker
94 field_tracker: Tracker
95 field_subject: Subject
95 field_subject: Subject
96 field_due_date: Due date
96 field_due_date: Due date
97 field_assigned_to: Assigned to
97 field_assigned_to: Assigned to
98 field_priority: Priority
98 field_priority: Priority
99 field_fixed_version: Fixed version
99 field_fixed_version: Fixed version
100 field_user: User
100 field_user: User
101 field_role: Role
101 field_role: Role
102 field_homepage: Homepage
102 field_homepage: Homepage
103 field_is_public: Public
103 field_is_public: Public
104 field_parent: Subproject de
104 field_parent: Subproject of
105 field_is_in_chlog: Issues displayed in changelog
105 field_is_in_chlog: Issues displayed in changelog
106 field_login: Login
106 field_login: Login
107 field_mail_notification: Mail notifications
107 field_mail_notification: Mail notifications
108 field_admin: Administrator
108 field_admin: Administrator
109 field_locked: Locked
109 field_locked: Locked
110 field_last_login_on: Last connection
110 field_last_login_on: Last connection
111 field_language: Language
111 field_language: Language
112 field_effective_date: Date
112 field_effective_date: Date
113 field_password: Password
113 field_password: Password
114 field_new_password: New password
114 field_new_password: New password
115 field_password_confirmation: Confirmation
115 field_password_confirmation: Confirmation
116 field_version: Version
116 field_version: Version
117 field_type: Type
117 field_type: Type
118 field_host: Host
118 field_host: Host
119 field_port: Port
119 field_port: Port
120 field_account: Account
120 field_account: Account
121 field_base_dn: Base DN
121 field_base_dn: Base DN
122 field_attr_login: Login attribute
122 field_attr_login: Login attribute
123 field_attr_firstname: Firstname attribute
123 field_attr_firstname: Firstname attribute
124 field_attr_lastname: Lastname attribute
124 field_attr_lastname: Lastname attribute
125 field_attr_mail: Email attribute
125 field_attr_mail: Email attribute
126 field_onthefly: On-the-fly user creation
126 field_onthefly: On-the-fly user creation
127
127
128 label_user: User
128 label_user: User
129 label_user_plural: Users
129 label_user_plural: Users
130 label_user_new: New user
130 label_user_new: New user
131 label_project: Project
131 label_project: Project
132 label_project_new: New project
132 label_project_new: New project
133 label_project_plural: Projects
133 label_project_plural: Projects
134 label_project_latest: Latest projects
134 label_project_latest: Latest projects
135 label_issue: Issue
135 label_issue: Issue
136 label_issue_new: New issue
136 label_issue_new: New issue
137 label_issue_plural: Issues
137 label_issue_plural: Issues
138 label_issue_view_all: View all issues
138 label_issue_view_all: View all issues
139 label_document: Document
139 label_document: Document
140 label_document_new: New document
140 label_document_new: New document
141 label_document_plural: Documents
141 label_document_plural: Documents
142 label_role: Role
142 label_role: Role
143 label_role_plural: Roles
143 label_role_plural: Roles
144 label_role_new: New role
144 label_role_new: New role
145 label_role_and_permissions: Roles and permissions
145 label_role_and_permissions: Roles and permissions
146 label_member: Member
146 label_member: Member
147 label_member_new: New member
147 label_member_new: New member
148 label_member_plural: Members
148 label_member_plural: Members
149 label_tracker: Tracker
149 label_tracker: Tracker
150 label_tracker_plural: Trackers
150 label_tracker_plural: Trackers
151 label_tracker_new: New tracker
151 label_tracker_new: New tracker
152 label_workflow: Workflow
152 label_workflow: Workflow
153 label_issue_status: Issue status
153 label_issue_status: Issue status
154 label_issue_status_plural: Issue statuses
154 label_issue_status_plural: Issue statuses
155 label_issue_status_new: New status
155 label_issue_status_new: New status
156 label_issue_category: Issue category
156 label_issue_category: Issue category
157 label_issue_category_plural: Issue categories
157 label_issue_category_plural: Issue categories
158 label_issue_category_new: New category
158 label_issue_category_new: New category
159 label_custom_field: Custom field
159 label_custom_field: Custom field
160 label_custom_field_plural: Custom fields
160 label_custom_field_plural: Custom fields
161 label_custom_field_new: New custom field
161 label_custom_field_new: New custom field
162 label_enumerations: Enumerations
162 label_enumerations: Enumerations
163 label_enumeration_new: New value
163 label_enumeration_new: New value
164 label_information: Information
164 label_information: Information
165 label_information_plural: Information
165 label_information_plural: Information
166 label_please_login: Please login
166 label_please_login: Please login
167 label_register: Register
167 label_register: Register
168 label_password_lost: Lost password
168 label_password_lost: Lost password
169 label_home: Home
169 label_home: Home
170 label_my_page: My page
170 label_my_page: My page
171 label_my_account: My account
171 label_my_account: My account
172 label_my_projects: My projects
172 label_my_projects: My projects
173 label_administration: Administration
173 label_administration: Administration
174 label_login: Login
174 label_login: Login
175 label_logout: Logout
175 label_logout: Logout
176 label_help: Help
176 label_help: Help
177 label_reported_issues: Reported issues
177 label_reported_issues: Reported issues
178 label_assigned_to_me_issues: Issues assigned to me
178 label_assigned_to_me_issues: Issues assigned to me
179 label_last_login: Last connection
179 label_last_login: Last connection
180 label_last_updates: Last updated
180 label_last_updates: Last updated
181 label_last_updates_plural: %d last updated
181 label_last_updates_plural: %d last updated
182 label_registered_on: Registered on
182 label_registered_on: Registered on
183 label_activity: Activity
183 label_activity: Activity
184 label_new: New
184 label_new: New
185 label_logged_as: Logged as
185 label_logged_as: Logged as
186 label_environment: Environment
186 label_environment: Environment
187 label_authentication: Authentication
187 label_authentication: Authentication
188 label_auth_source: Authentification mode
188 label_auth_source: Authentification mode
189 label_auth_source_new: New authentication mode
189 label_auth_source_new: New authentication mode
190 label_auth_source_plural: Authentification modes
190 label_auth_source_plural: Authentification modes
191 label_subproject: Subproject
191 label_subproject: Subproject
192 label_subproject_plural: Subprojects
192 label_subproject_plural: Subprojects
193 label_min_max_length: Min - Max length
193 label_min_max_length: Min - Max length
194 label_list: List
194 label_list: List
195 label_date: Date
195 label_date: Date
196 label_integer: Integer
196 label_integer: Integer
197 label_boolean: Boolean
197 label_boolean: Boolean
198 label_string: String
198 label_string: String
199 label_text: Text
199 label_text: Text
200 label_attribute: Attribute
200 label_attribute: Attribute
201 label_attribute_plural: Attributes
201 label_attribute_plural: Attributes
202 label_download: %d Download
202 label_download: %d Download
203 label_download_plural: %d Downloads
203 label_download_plural: %d Downloads
204 label_no_data: No data to display
204 label_no_data: No data to display
205 label_change_status: Change status
205 label_change_status: Change status
206 label_history: History
206 label_history: History
207 label_attachment: File
207 label_attachment: File
208 label_attachment_new: New file
208 label_attachment_new: New file
209 label_attachment_delete: Delete file
209 label_attachment_delete: Delete file
210 label_attachment_plural: Files
210 label_attachment_plural: Files
211 label_report: Report
211 label_report: Report
212 label_report_plural: Reports
212 label_report_plural: Reports
213 label_news: News
213 label_news: News
214 label_news_new: Add news
214 label_news_new: Add news
215 label_news_plural: News
215 label_news_plural: News
216 label_news_latest: Latest news
216 label_news_latest: Latest news
217 label_news_view_all: View all news
217 label_news_view_all: View all news
218 label_change_log: Change log
218 label_change_log: Change log
219 label_settings: Settings
219 label_settings: Settings
220 label_overview: Overview
220 label_overview: Overview
221 label_version: Version
221 label_version: Version
222 label_version_new: New version
222 label_version_new: New version
223 label_version_plural: Versions
223 label_version_plural: Versions
224 label_confirmation: Confirmation
224 label_confirmation: Confirmation
225 label_export_csv: Export to CSV
225 label_export_csv: Export to CSV
226 label_read: Read...
226 label_read: Read...
227 label_public_projects: Public projects
227 label_public_projects: Public projects
228 label_open_issues: Open
228 label_open_issues: Open
229 label_open_issues_plural: Open
229 label_open_issues_plural: Open
230 label_closed_issues: Closed
230 label_closed_issues: Closed
231 label_closed_issues_plural: Closed
231 label_closed_issues_plural: Closed
232 label_total: Total
232 label_total: Total
233 label_permissions: Permissions
233 label_permissions: Permissions
234 label_current_status: Current status
234 label_current_status: Current status
235 label_new_statuses_allowed: New statuses allowed
235 label_new_statuses_allowed: New statuses allowed
236 label_all: All
236 label_all: All
237 label_none: None
237 label_none: None
238 label_next: Next
238 label_next: Next
239 label_previous: Previous
239 label_previous: Previous
240 label_used_by: Used by
240 label_used_by: Used by
241
241
242 button_login: Login
242 button_login: Login
243 button_submit: Submit
243 button_submit: Submit
244 button_save: Save
244 button_save: Save
245 button_check_all: Check all
245 button_check_all: Check all
246 button_uncheck_all: Uncheck all
246 button_uncheck_all: Uncheck all
247 button_delete: Delete
247 button_delete: Delete
248 button_create: Create
248 button_create: Create
249 button_test: Test
249 button_test: Test
250 button_edit: Edit
250 button_edit: Edit
251 button_add: Add
251 button_add: Add
252 button_change: Change
252 button_change: Change
253 button_apply: Apply
253 button_apply: Apply
254 button_clear: Clear
254 button_clear: Clear
255 button_lock: Lock
255 button_lock: Lock
256 button_unlock: Unlock
256 button_unlock: Unlock
257 button_download: Download
257 button_download: Download
258 button_list: List
258 button_list: List
259 button_view: View
259 button_view: View
260
260
261 text_select_mail_notifications: Select actions for which mail notifications should be sent.
261 text_select_mail_notifications: Select actions for which mail notifications should be sent.
262 text_regexp_info: eg. ^[A-Z0-9]+$
262 text_regexp_info: eg. ^[A-Z0-9]+$
263 text_min_max_length_info: 0 means no restriction
263 text_min_max_length_info: 0 means no restriction
264 text_possible_values_info: values separated with |
264 text_possible_values_info: values separated with |
265 text_project_destroy_confirmation: Are you sure you want to delete this project and all related data ?
265 text_project_destroy_confirmation: Are you sure you want to delete this project and all related data ?
266 text_workflow_edit: Select a role and a tracker to edit the workflow
266 text_workflow_edit: Select a role and a tracker to edit the workflow
267 text_are_you_sure: Are you sure ?
267
268
268 default_role_manager: Manager
269 default_role_manager: Manager
269 default_role_developper: Developer
270 default_role_developper: Developer
270 default_role_reporter: Reporter
271 default_role_reporter: Reporter
271 default_tracker_bug: Bug
272 default_tracker_bug: Bug
272 default_tracker_feature: Feature
273 default_tracker_feature: Feature
273 default_tracker_support: Support
274 default_tracker_support: Support
274 default_issue_status_new: New
275 default_issue_status_new: New
275 default_issue_status_assigned: Assigned
276 default_issue_status_assigned: Assigned
276 default_issue_status_resolved: Resolved
277 default_issue_status_resolved: Resolved
277 default_issue_status_feedback: Feedback
278 default_issue_status_feedback: Feedback
278 default_issue_status_closed: Closed
279 default_issue_status_closed: Closed
279 default_issue_status_rejected: Rejected
280 default_issue_status_rejected: Rejected
280 default_doc_category_user: User documentation
281 default_doc_category_user: User documentation
281 default_doc_category_tech: Technical documentation
282 default_doc_category_tech: Technical documentation
282 default_priority_low: Low
283 default_priority_low: Low
283 default_priority_normal: Normal
284 default_priority_normal: Normal
284 default_priority_high: High
285 default_priority_high: High
285 default_priority_urgent: Urgent
286 default_priority_urgent: Urgent
286 default_priority_immediate: Immediate
287 default_priority_immediate: Immediate
287
288
288 enumeration_issue_priorities: Issue priorities
289 enumeration_issue_priorities: Issue priorities
289 enumeration_doc_categories: Document categories
290 enumeration_doc_categories: Document categories
@@ -1,289 +1,290
1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2
2
3 actionview_datehelper_select_day_prefix:
3 actionview_datehelper_select_day_prefix:
4 actionview_datehelper_select_month_names: Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre
4 actionview_datehelper_select_month_names: Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre
5 actionview_datehelper_select_month_names_abbr: Ene,Feb,Mar,Abr,Mayo,Jun,Jul,Ago,Sep,Oct,Nov,Dic
5 actionview_datehelper_select_month_names_abbr: Ene,Feb,Mar,Abr,Mayo,Jun,Jul,Ago,Sep,Oct,Nov,Dic
6 actionview_datehelper_select_month_prefix:
6 actionview_datehelper_select_month_prefix:
7 actionview_datehelper_select_year_prefix:
7 actionview_datehelper_select_year_prefix:
8 actionview_datehelper_time_in_words_day: 1 day
8 actionview_datehelper_time_in_words_day: 1 day
9 actionview_datehelper_time_in_words_day_plural: %d days
9 actionview_datehelper_time_in_words_day_plural: %d days
10 actionview_datehelper_time_in_words_hour_about: about an hour
10 actionview_datehelper_time_in_words_hour_about: about an hour
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 actionview_datehelper_time_in_words_minute: 1 minute
13 actionview_datehelper_time_in_words_minute: 1 minute
14 actionview_datehelper_time_in_words_minute_half: half a minute
14 actionview_datehelper_time_in_words_minute_half: half a minute
15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 actionview_datehelper_time_in_words_minute_single: 1 minute
17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 actionview_datehelper_time_in_words_second_less_than: less than a second
18 actionview_datehelper_time_in_words_second_less_than: less than a second
19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
20 actionview_instancetag_blank_option: Please select
20 actionview_instancetag_blank_option: Please select
21
21
22 activerecord_error_inclusion: is not included in the list
22 activerecord_error_inclusion: is not included in the list
23 activerecord_error_exclusion: is reserved
23 activerecord_error_exclusion: is reserved
24 activerecord_error_invalid: is invalid
24 activerecord_error_invalid: is invalid
25 activerecord_error_confirmation: doesn't match confirmation
25 activerecord_error_confirmation: doesn't match confirmation
26 activerecord_error_accepted: must be accepted
26 activerecord_error_accepted: must be accepted
27 activerecord_error_empty: can't be empty
27 activerecord_error_empty: can't be empty
28 activerecord_error_blank: can't be blank
28 activerecord_error_blank: can't be blank
29 activerecord_error_too_long: is too long
29 activerecord_error_too_long: is too long
30 activerecord_error_too_short: is too short
30 activerecord_error_too_short: is too short
31 activerecord_error_wrong_length: is the wrong length
31 activerecord_error_wrong_length: is the wrong length
32 activerecord_error_taken: has already been taken
32 activerecord_error_taken: has already been taken
33 activerecord_error_not_a_number: is not a number
33 activerecord_error_not_a_number: is not a number
34
34
35 general_fmt_age: %d año
35 general_fmt_age: %d año
36 general_fmt_age_plural: %d años
36 general_fmt_age_plural: %d años
37 general_fmt_date: %%d/%%m/%%Y
37 general_fmt_date: %%d/%%m/%%Y
38 general_fmt_datetime: %%d/%%m/%%Y %%H:%%M
38 general_fmt_datetime: %%d/%%m/%%Y %%H:%%M
39 general_fmt_datetime_short: %%d/%%m %%H:%%M
39 general_fmt_datetime_short: %%d/%%m %%H:%%M
40 general_fmt_time: %%H:%%M
40 general_fmt_time: %%H:%%M
41 general_text_No: 'No'
41 general_text_No: 'No'
42 general_text_Yes: 'Sí'
42 general_text_Yes: 'Sí'
43 general_text_no: 'no'
43 general_text_no: 'no'
44 general_text_yes: 'sí'
44 general_text_yes: 'sí'
45 general_lang_es: 'Español'
45 general_lang_es: 'Español'
46
46
47 notice_account_updated: Account was successfully updated.
47 notice_account_updated: Account was successfully updated.
48 notice_account_invalid_creditentials: Invalid user or password
48 notice_account_invalid_creditentials: Invalid user or password
49 notice_account_password_updated: Password was successfully updated.
49 notice_account_password_updated: Password was successfully updated.
50 notice_account_wrong_password: Wrong password
50 notice_account_wrong_password: Wrong password
51 notice_account_register_done: Account was successfully created.
51 notice_account_register_done: Account was successfully created.
52 notice_account_unknown_email: Unknown user.
52 notice_account_unknown_email: Unknown user.
53 notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
53 notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
54 notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
54 notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
55 notice_account_activated: Your account has been activated. You can now log in.
55 notice_account_activated: Your account has been activated. You can now log in.
56 notice_successful_create: Successful creation.
56 notice_successful_create: Successful creation.
57 notice_successful_update: Successful update.
57 notice_successful_update: Successful update.
58 notice_successful_delete: Successful deletion.
58 notice_successful_delete: Successful deletion.
59 notice_successful_connection: Successful connection.
59 notice_successful_connection: Successful connection.
60 notice_file_not_found: Requested file doesn't exist or has been deleted.
60 notice_file_not_found: Requested file doesn't exist or has been deleted.
61
61
62 gui_validation_error: 1 error
62 gui_validation_error: 1 error
63 gui_validation_error_plural: %d errores
63 gui_validation_error_plural: %d errores
64
64
65 field_name: Nombre
65 field_name: Nombre
66 field_description: Descripción
66 field_description: Descripción
67 field_summary: Resumen
67 field_summary: Resumen
68 field_is_required: Obligatorio
68 field_is_required: Obligatorio
69 field_firstname: Nombre
69 field_firstname: Nombre
70 field_lastname: Apellido
70 field_lastname: Apellido
71 field_mail: Email
71 field_mail: Email
72 field_filename: Fichero
72 field_filename: Fichero
73 field_filesize: Tamaño
73 field_filesize: Tamaño
74 field_downloads: Telecargas
74 field_downloads: Telecargas
75 field_author: Autor
75 field_author: Autor
76 field_created_on: Creado
76 field_created_on: Creado
77 field_updated_on: Actualizado
77 field_updated_on: Actualizado
78 field_field_format: Formato
78 field_field_format: Formato
79 field_is_for_all: Para todos los proyectos
79 field_is_for_all: Para todos los proyectos
80 field_possible_values: Valores posibles
80 field_possible_values: Valores posibles
81 field_regexp: Expresión regular
81 field_regexp: Expresión regular
82 #field_min_length: Minimum length
82 #field_min_length: Minimum length
83 #field_max_length: Maximum length
83 #field_max_length: Maximum length
84 field_value: Valor
84 field_value: Valor
85 field_category: Categoría
85 field_category: Categoría
86 field_title: Título
86 field_title: Título
87 field_project: Proyecto
87 field_project: Proyecto
88 field_issue: Petición
88 field_issue: Petición
89 field_status: Estatuto
89 field_status: Estatuto
90 field_notes: Notas
90 field_notes: Notas
91 field_is_closed: Petición resuelta
91 field_is_closed: Petición resuelta
92 field_is_default: Estatuto por defecto
92 field_is_default: Estatuto por defecto
93 field_html_color: Color
93 field_html_color: Color
94 field_tracker: Tracker
94 field_tracker: Tracker
95 field_subject: Tema
95 field_subject: Tema
96 #field_due_date: Due date
96 #field_due_date: Due date
97 field_assigned_to: Asignado a
97 field_assigned_to: Asignado a
98 field_priority: Prioridad
98 field_priority: Prioridad
99 field_fixed_version: Versión corregida
99 field_fixed_version: Versión corregida
100 field_user: Usuario
100 field_user: Usuario
101 field_role: Papel
101 field_role: Papel
102 field_homepage: Sitio web
102 field_homepage: Sitio web
103 field_is_public: Público
103 field_is_public: Público
104 #field_parent: Subproject de
104 #field_parent: Subproject de
105 field_is_in_chlog: Consultar las peticiones en el histórico
105 field_is_in_chlog: Consultar las peticiones en el histórico
106 field_login: Identificador
106 field_login: Identificador
107 field_mail_notification: Notificación por mail
107 field_mail_notification: Notificación por mail
108 field_admin: Administrador
108 field_admin: Administrador
109 field_locked: Cerrado
109 field_locked: Cerrado
110 field_last_login_on: Última conexión
110 field_last_login_on: Última conexión
111 field_language: Lengua
111 field_language: Lengua
112 field_effective_date: Fecha
112 field_effective_date: Fecha
113 field_password: Contraseña
113 field_password: Contraseña
114 field_new_password: Nueva contraseña
114 field_new_password: Nueva contraseña
115 field_password_confirmation: Confirmación
115 field_password_confirmation: Confirmación
116 field_version: Versión
116 field_version: Versión
117 field_type: Tipo
117 field_type: Tipo
118 #field_host: Host
118 #field_host: Host
119 #field_port: Port
119 #field_port: Port
120 #field_account: Account
120 #field_account: Account
121 #field_base_dn: Base DN
121 #field_base_dn: Base DN
122 #field_attr_login: Login attribute
122 #field_attr_login: Login attribute
123 #field_attr_firstname: Firstname attribute
123 #field_attr_firstname: Firstname attribute
124 #field_attr_lastname: Lastname attribute
124 #field_attr_lastname: Lastname attribute
125 #field_attr_mail: Email attribute
125 #field_attr_mail: Email attribute
126 #field_onthefly: On-the-fly user creation
126 #field_onthefly: On-the-fly user creation
127
127
128 label_user: Usuario
128 label_user: Usuario
129 label_user_plural: Usuarios
129 label_user_plural: Usuarios
130 label_user_new: Nuevo usuario
130 label_user_new: Nuevo usuario
131 label_project: Proyecto
131 label_project: Proyecto
132 label_project_new: Nuevo proyecto
132 label_project_new: Nuevo proyecto
133 label_project_plural: Proyectos
133 label_project_plural: Proyectos
134 #label_project_latest: Latest projects
134 #label_project_latest: Latest projects
135 label_issue: Petición
135 label_issue: Petición
136 label_issue_new: Nueva petición
136 label_issue_new: Nueva petición
137 label_issue_plural: Peticiones
137 label_issue_plural: Peticiones
138 label_issue_view_all: Ver todas las peticiones
138 label_issue_view_all: Ver todas las peticiones
139 label_document: Documento
139 label_document: Documento
140 label_document_new: Nuevo documento
140 label_document_new: Nuevo documento
141 label_document_plural: Documentos
141 label_document_plural: Documentos
142 label_role: Papel
142 label_role: Papel
143 label_role_plural: Papeles
143 label_role_plural: Papeles
144 label_role_new: Nuevo papel
144 label_role_new: Nuevo papel
145 label_role_and_permissions: Papeles y permisos
145 label_role_and_permissions: Papeles y permisos
146 label_member: Miembro
146 label_member: Miembro
147 label_member_new: Nuevo miembro
147 label_member_new: Nuevo miembro
148 label_member_plural: Miembros
148 label_member_plural: Miembros
149 label_tracker: Tracker
149 label_tracker: Tracker
150 label_tracker_plural: Trackers
150 label_tracker_plural: Trackers
151 label_tracker_new: Nuevo tracker
151 label_tracker_new: Nuevo tracker
152 label_workflow: Workflow
152 label_workflow: Workflow
153 label_issue_status: Estatuto de petición
153 label_issue_status: Estatuto de petición
154 label_issue_status_plural: Estatutos de las peticiones
154 label_issue_status_plural: Estatutos de las peticiones
155 label_issue_status_new: Nuevo estatuto
155 label_issue_status_new: Nuevo estatuto
156 label_issue_category: Categoría de las peticiones
156 label_issue_category: Categoría de las peticiones
157 label_issue_category_plural: Categorías de las peticiones
157 label_issue_category_plural: Categorías de las peticiones
158 label_issue_category_new: Nueva categoría
158 label_issue_category_new: Nueva categoría
159 label_custom_field: Campo personalizado
159 label_custom_field: Campo personalizado
160 label_custom_field_plural: Campos personalizados
160 label_custom_field_plural: Campos personalizados
161 label_custom_field_new: Nuevo campo personalizado
161 label_custom_field_new: Nuevo campo personalizado
162 label_enumerations: Listas de valores
162 label_enumerations: Listas de valores
163 label_enumeration_new: Nuevo valor
163 label_enumeration_new: Nuevo valor
164 label_information: Informacion
164 label_information: Informacion
165 label_information_plural: Informaciones
165 label_information_plural: Informaciones
166 label_please_login: Conexión
166 label_please_login: Conexión
167 #label_register: Register
167 #label_register: Register
168 label_password_lost: ¿Olvidaste la contraseña?
168 label_password_lost: ¿Olvidaste la contraseña?
169 label_home: Acogida
169 label_home: Acogida
170 label_my_page: Mi página
170 label_my_page: Mi página
171 label_my_account: Mi cuenta
171 label_my_account: Mi cuenta
172 label_my_projects: Mis proyectos
172 label_my_projects: Mis proyectos
173 label_administration: Administración
173 label_administration: Administración
174 label_login: Conexión
174 label_login: Conexión
175 label_logout: Desconexión
175 label_logout: Desconexión
176 label_help: Ayuda
176 label_help: Ayuda
177 label_reported_issues: Peticiones registradas
177 label_reported_issues: Peticiones registradas
178 label_assigned_to_me_issues: Peticiones que me están asignadas
178 label_assigned_to_me_issues: Peticiones que me están asignadas
179 label_last_login: Última conexión
179 label_last_login: Última conexión
180 label_last_updates: Actualizado
180 label_last_updates: Actualizado
181 label_last_updates_plural: %d Actualizados
181 label_last_updates_plural: %d Actualizados
182 label_registered_on: Inscrito el
182 label_registered_on: Inscrito el
183 label_activity: Actividad
183 label_activity: Actividad
184 label_new: Nuevo
184 label_new: Nuevo
185 label_logged_as: Conectado como
185 label_logged_as: Conectado como
186 #label_environment: Environment
186 #label_environment: Environment
187 #label_authentication: Authentication
187 #label_authentication: Authentication
188 #label_auth_source: Authentification mode
188 #label_auth_source: Authentification mode
189 #label_auth_source_new: New authentication mode
189 #label_auth_source_new: New authentication mode
190 #label_auth_source_plural: Authentification modes
190 #label_auth_source_plural: Authentification modes
191 #label_subproject: Subproject
191 #label_subproject: Subproject
192 #label_subproject_plural: Subprojects
192 #label_subproject_plural: Subprojects
193 #label_min_max_length: Min - Max length
193 #label_min_max_length: Min - Max length
194 #label_list: List
194 #label_list: List
195 label_date: Fecha
195 label_date: Fecha
196 #label_integer: Integer
196 #label_integer: Integer
197 #label_boolean: Boolean
197 #label_boolean: Boolean
198 #label_string: String
198 #label_string: String
199 #label_text: Text
199 #label_text: Text
200 #label_attribute: Attribute
200 #label_attribute: Attribute
201 #label_attribute_plural: Attributes
201 #label_attribute_plural: Attributes
202 label_download: %d Telecarga
202 label_download: %d Telecarga
203 label_download_plural: %d Telecargas
203 label_download_plural: %d Telecargas
204 #label_no_data: No data to display
204 #label_no_data: No data to display
205 label_change_status: Cambiar el estatuto
205 label_change_status: Cambiar el estatuto
206 label_history: Histórico
206 label_history: Histórico
207 label_attachment: Fichero
207 label_attachment: Fichero
208 label_attachment_new: Nuevo fichero
208 label_attachment_new: Nuevo fichero
209 #label_attachment_delete: Delete file
209 #label_attachment_delete: Delete file
210 label_attachment_plural: Ficheros
210 label_attachment_plural: Ficheros
211 #label_report: Report
211 #label_report: Report
212 #label_report_plural: Reports
212 #label_report_plural: Reports
213 label_news: Noticia
213 label_news: Noticia
214 label_news_new: Nueva noticia
214 label_news_new: Nueva noticia
215 label_news_plural: Noticias
215 label_news_plural: Noticias
216 label_news_latest: Últimas noticias
216 label_news_latest: Últimas noticias
217 label_news_view_all: Ver todas las noticias
217 label_news_view_all: Ver todas las noticias
218 label_change_log: Cambios
218 label_change_log: Cambios
219 label_settings: Configuración
219 label_settings: Configuración
220 label_overview: Vistazo
220 label_overview: Vistazo
221 label_version: Versión
221 label_version: Versión
222 label_version_new: Nueva versión
222 label_version_new: Nueva versión
223 label_version_plural: Versiónes
223 label_version_plural: Versiónes
224 label_confirmation: Confirmación
224 label_confirmation: Confirmación
225 label_export_csv: Exportar a CSV
225 label_export_csv: Exportar a CSV
226 label_read: Leer...
226 label_read: Leer...
227 label_public_projects: Proyectos publicos
227 label_public_projects: Proyectos publicos
228 label_open_issues: Abierta
228 label_open_issues: Abierta
229 label_open_issues_plural: Abiertas
229 label_open_issues_plural: Abiertas
230 label_closed_issues: Cerrada
230 label_closed_issues: Cerrada
231 label_closed_issues_plural: Cerradas
231 label_closed_issues_plural: Cerradas
232 label_total: Total
232 label_total: Total
233 label_permissions: Permisos
233 label_permissions: Permisos
234 #label_current_status: Current status
234 #label_current_status: Current status
235 label_new_statuses_allowed: Nuevos estatutos autorizados
235 label_new_statuses_allowed: Nuevos estatutos autorizados
236 label_all: Todos
236 label_all: Todos
237 label_none: Ninguno
237 label_none: Ninguno
238 label_next: Próximo
238 label_next: Próximo
239 label_previous: Precedente
239 label_previous: Precedente
240 label_used_by: Utilizado por
240 label_used_by: Utilizado por
241
241
242 button_login: Conexión
242 button_login: Conexión
243 button_submit: Someter
243 button_submit: Someter
244 button_save: Validar
244 button_save: Validar
245 button_check_all: Seleccionar todo
245 button_check_all: Seleccionar todo
246 button_uncheck_all: No seleccionar nada
246 button_uncheck_all: No seleccionar nada
247 button_delete: Suprimir
247 button_delete: Suprimir
248 button_create: Crear
248 button_create: Crear
249 button_test: Testar
249 button_test: Testar
250 button_edit: Modificar
250 button_edit: Modificar
251 button_add: Añadir
251 button_add: Añadir
252 button_change: Cambiar
252 button_change: Cambiar
253 button_apply: Aplicar
253 button_apply: Aplicar
254 button_clear: Anular
254 button_clear: Anular
255 button_lock: Bloquear
255 button_lock: Bloquear
256 button_unlock: Desbloquear
256 button_unlock: Desbloquear
257 button_download: Telecargar
257 button_download: Telecargar
258 button_list: Listar
258 button_list: Listar
259 button_view: Ver
259 button_view: Ver
260
260
261 text_select_mail_notifications: Seleccionar las actividades que necesitan la activación de la notificación por mail.
261 text_select_mail_notifications: Seleccionar las actividades que necesitan la activación de la notificación por mail.
262 text_regexp_info: eg. ^[A-Z0-9]+$
262 text_regexp_info: eg. ^[A-Z0-9]+$
263 text_min_max_length_info: 0 para ninguna restricción
263 text_min_max_length_info: 0 para ninguna restricción
264 #text_possible_values_info: values separated with |
264 #text_possible_values_info: values separated with |
265 text_project_destroy_confirmation: ¿ Estás seguro de querer eliminar el proyecto ?
265 text_project_destroy_confirmation: ¿ Estás seguro de querer eliminar el proyecto ?
266 text_workflow_edit: Seleccionar un workflow para actualizar
266 text_workflow_edit: Seleccionar un workflow para actualizar
267 text_are_you_sure: ¿ Estás seguro ?
267
268
268 default_role_manager: Manager
269 default_role_manager: Manager
269 default_role_developper: Desarrollador
270 default_role_developper: Desarrollador
270 default_role_reporter: Informador
271 default_role_reporter: Informador
271 default_tracker_bug: Anomalía
272 default_tracker_bug: Anomalía
272 default_tracker_feature: Evolución
273 default_tracker_feature: Evolución
273 default_tracker_support: Asistencia
274 default_tracker_support: Asistencia
274 default_issue_status_new: Nuevo
275 default_issue_status_new: Nuevo
275 default_issue_status_assigned: Asignada
276 default_issue_status_assigned: Asignada
276 default_issue_status_resolved: Resuelta
277 default_issue_status_resolved: Resuelta
277 default_issue_status_feedback: Comentario
278 default_issue_status_feedback: Comentario
278 default_issue_status_closed: Cerrada
279 default_issue_status_closed: Cerrada
279 default_issue_status_rejected: Rechazada
280 default_issue_status_rejected: Rechazada
280 default_doc_category_user: Documentación del usuario
281 default_doc_category_user: Documentación del usuario
281 default_doc_category_tech: Documentación tecnica
282 default_doc_category_tech: Documentación tecnica
282 default_priority_low: Bajo
283 default_priority_low: Bajo
283 default_priority_normal: Normal
284 default_priority_normal: Normal
284 default_priority_high: Alto
285 default_priority_high: Alto
285 default_priority_urgent: Urgente
286 default_priority_urgent: Urgente
286 default_priority_immediate: Ahora
287 default_priority_immediate: Ahora
287
288
288 enumeration_issue_priorities: Prioridad de las peticiones
289 enumeration_issue_priorities: Prioridad de las peticiones
289 enumeration_doc_categories: Categorías del documento
290 enumeration_doc_categories: Categorías del documento
@@ -1,289 +1,290
1 _gloc_rule_default: '|n| n<=1 ? "" : "_plural" '
1 _gloc_rule_default: '|n| n<=1 ? "" : "_plural" '
2
2
3 actionview_datehelper_select_day_prefix:
3 actionview_datehelper_select_day_prefix:
4 actionview_datehelper_select_month_names: Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre
4 actionview_datehelper_select_month_names: Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre
5 actionview_datehelper_select_month_names_abbr: Jan,Fév,Mars,Avril,Mai,Juin,Juil,Août,Sept,Oct,Nov,Déc
5 actionview_datehelper_select_month_names_abbr: Jan,Fév,Mars,Avril,Mai,Juin,Juil,Août,Sept,Oct,Nov,Déc
6 actionview_datehelper_select_month_prefix:
6 actionview_datehelper_select_month_prefix:
7 actionview_datehelper_select_year_prefix:
7 actionview_datehelper_select_year_prefix:
8 actionview_datehelper_time_in_words_day: 1 jour
8 actionview_datehelper_time_in_words_day: 1 jour
9 actionview_datehelper_time_in_words_day_plural: %d jours
9 actionview_datehelper_time_in_words_day_plural: %d jours
10 actionview_datehelper_time_in_words_hour_about: about an hour
10 actionview_datehelper_time_in_words_hour_about: about an hour
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 actionview_datehelper_time_in_words_minute: 1 minute
13 actionview_datehelper_time_in_words_minute: 1 minute
14 actionview_datehelper_time_in_words_minute_half: 30 secondes
14 actionview_datehelper_time_in_words_minute_half: 30 secondes
15 actionview_datehelper_time_in_words_minute_less_than: moins d'une minute
15 actionview_datehelper_time_in_words_minute_less_than: moins d'une minute
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 actionview_datehelper_time_in_words_minute_single: 1 minute
17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 actionview_datehelper_time_in_words_second_less_than: moins d'une seconde
18 actionview_datehelper_time_in_words_second_less_than: moins d'une seconde
19 actionview_datehelper_time_in_words_second_less_than_plural: moins de %d secondes
19 actionview_datehelper_time_in_words_second_less_than_plural: moins de %d secondes
20 actionview_instancetag_blank_option: Choisir
20 actionview_instancetag_blank_option: Choisir
21
21
22 activerecord_error_inclusion: n'est pas inclus dans la liste
22 activerecord_error_inclusion: n'est pas inclus dans la liste
23 activerecord_error_exclusion: est reservé
23 activerecord_error_exclusion: est reservé
24 activerecord_error_invalid: est invalide
24 activerecord_error_invalid: est invalide
25 activerecord_error_confirmation: ne correspond pas à la confirmation
25 activerecord_error_confirmation: ne correspond pas à la confirmation
26 activerecord_error_accepted: doit être accepté
26 activerecord_error_accepted: doit être accepté
27 activerecord_error_empty: doit être renseigné
27 activerecord_error_empty: doit être renseigné
28 activerecord_error_blank: doit être renseigné
28 activerecord_error_blank: doit être renseigné
29 activerecord_error_too_long: est trop long
29 activerecord_error_too_long: est trop long
30 activerecord_error_too_short: est trop court
30 activerecord_error_too_short: est trop court
31 activerecord_error_wrong_length: n'est pas de la bonne longueur
31 activerecord_error_wrong_length: n'est pas de la bonne longueur
32 activerecord_error_taken: est déjà utilisé
32 activerecord_error_taken: est déjà utilisé
33 activerecord_error_not_a_number: n'est pas un nombre
33 activerecord_error_not_a_number: n'est pas un nombre
34
34
35 general_fmt_age: %d an
35 general_fmt_age: %d an
36 general_fmt_age_plural: %d ans
36 general_fmt_age_plural: %d ans
37 general_fmt_date: %%d/%%m/%%Y
37 general_fmt_date: %%d/%%m/%%Y
38 general_fmt_datetime: %%d/%%m/%%Y %%H:%%M
38 general_fmt_datetime: %%d/%%m/%%Y %%H:%%M
39 general_fmt_datetime_short: %%d/%%m %%H:%%M
39 general_fmt_datetime_short: %%d/%%m %%H:%%M
40 general_fmt_time: %%H:%%M
40 general_fmt_time: %%H:%%M
41 general_text_No: 'Non'
41 general_text_No: 'Non'
42 general_text_Yes: 'Oui'
42 general_text_Yes: 'Oui'
43 general_text_no: 'non'
43 general_text_no: 'non'
44 general_text_yes: 'oui'
44 general_text_yes: 'oui'
45 general_lang_fr: 'Français'
45 general_lang_fr: 'Français'
46
46
47 notice_account_updated: Le compte a été mis à jour avec succès.
47 notice_account_updated: Le compte a été mis à jour avec succès.
48 notice_account_invalid_creditentials: Identifiant ou mot de passe invalide.
48 notice_account_invalid_creditentials: Identifiant ou mot de passe invalide.
49 notice_account_password_updated: Mot de passe mis à jour avec succès.
49 notice_account_password_updated: Mot de passe mis à jour avec succès.
50 notice_account_wrong_password: Mot de passe incorrect
50 notice_account_wrong_password: Mot de passe incorrect
51 notice_account_register_done: Un message contenant les instructions pour activer votre compte vous a été envoyé.
51 notice_account_register_done: Un message contenant les instructions pour activer votre compte vous a été envoyé.
52 notice_account_unknown_email: Aucun compte ne correspond à cette adresse.
52 notice_account_unknown_email: Aucun compte ne correspond à cette adresse.
53 notice_can_t_change_password: Ce compte utilise une authentification externe. Impossible de changer le mot de passe.
53 notice_can_t_change_password: Ce compte utilise une authentification externe. Impossible de changer le mot de passe.
54 notice_account_lost_email_sent: Un message contenant les instructions pour choisir un nouveau mot de passe vous a été envoyé.
54 notice_account_lost_email_sent: Un message contenant les instructions pour choisir un nouveau mot de passe vous a été envoyé.
55 notice_account_activated: Votre compte a été activé. Vous pouvez à présent vous connecter.
55 notice_account_activated: Votre compte a été activé. Vous pouvez à présent vous connecter.
56 notice_successful_create: Création effectuée avec succès.
56 notice_successful_create: Création effectuée avec succès.
57 notice_successful_update: Mise à jour effectuée avec succès.
57 notice_successful_update: Mise à jour effectuée avec succès.
58 notice_successful_delete: Suppression effectuée avec succès.
58 notice_successful_delete: Suppression effectuée avec succès.
59 notice_successful_connection: Connection réussie.
59 notice_successful_connection: Connection réussie.
60 notice_file_not_found: Le fichier demandé n'existe pas ou a été supprimé.
60 notice_file_not_found: Le fichier demandé n'existe pas ou a été supprimé.
61
61
62 gui_validation_error: 1 erreur
62 gui_validation_error: 1 erreur
63 gui_validation_error_plural: %d erreurs
63 gui_validation_error_plural: %d erreurs
64
64
65 field_name: Nom
65 field_name: Nom
66 field_description: Description
66 field_description: Description
67 field_summary: Résumé
67 field_summary: Résumé
68 field_is_required: Obligatoire
68 field_is_required: Obligatoire
69 field_firstname: Prénom
69 field_firstname: Prénom
70 field_lastname: Nom
70 field_lastname: Nom
71 field_mail: Email
71 field_mail: Email
72 field_filename: Fichier
72 field_filename: Fichier
73 field_filesize: Taille
73 field_filesize: Taille
74 field_downloads: Téléchargements
74 field_downloads: Téléchargements
75 field_author: Auteur
75 field_author: Auteur
76 field_created_on: Créé
76 field_created_on: Créé
77 field_updated_on: Mis à jour
77 field_updated_on: Mis à jour
78 field_field_format: Format
78 field_field_format: Format
79 field_is_for_all: Pour tous les projets
79 field_is_for_all: Pour tous les projets
80 field_possible_values: Valeurs possibles
80 field_possible_values: Valeurs possibles
81 field_regexp: Expression régulière
81 field_regexp: Expression régulière
82 field_min_length: Longueur minimum
82 field_min_length: Longueur minimum
83 field_max_length: Longueur maximum
83 field_max_length: Longueur maximum
84 field_value: Valeur
84 field_value: Valeur
85 field_category: Catégorie
85 field_category: Catégorie
86 field_title: Titre
86 field_title: Titre
87 field_project: Projet
87 field_project: Projet
88 field_issue: Demande
88 field_issue: Demande
89 field_status: Statut
89 field_status: Statut
90 field_notes: Notes
90 field_notes: Notes
91 field_is_closed: Demande fermée
91 field_is_closed: Demande fermée
92 field_is_default: Statut par défaut
92 field_is_default: Statut par défaut
93 field_html_color: Couleur
93 field_html_color: Couleur
94 field_tracker: Tracker
94 field_tracker: Tracker
95 field_subject: Sujet
95 field_subject: Sujet
96 field_due_date: Date d'échéance
96 field_due_date: Date d'échéance
97 field_assigned_to: Assigné à
97 field_assigned_to: Assigné à
98 field_priority: Priorité
98 field_priority: Priorité
99 field_fixed_version: Version corrigée
99 field_fixed_version: Version corrigée
100 field_user: Utilisateur
100 field_user: Utilisateur
101 field_role: Rôle
101 field_role: Rôle
102 field_homepage: Site web
102 field_homepage: Site web
103 field_is_public: Public
103 field_is_public: Public
104 field_parent: Sous-projet de
104 field_parent: Sous-projet de
105 field_is_in_chlog: Demandes affichées dans l'historique
105 field_is_in_chlog: Demandes affichées dans l'historique
106 field_login: Identifiant
106 field_login: Identifiant
107 field_mail_notification: Notifications par mail
107 field_mail_notification: Notifications par mail
108 field_admin: Administrateur
108 field_admin: Administrateur
109 field_locked: Verrouillé
109 field_locked: Verrouillé
110 field_last_login_on: Dernière connexion
110 field_last_login_on: Dernière connexion
111 field_language: Langue
111 field_language: Langue
112 field_effective_date: Date
112 field_effective_date: Date
113 field_password: Mot de passe
113 field_password: Mot de passe
114 field_new_password: Nouveau mot de passe
114 field_new_password: Nouveau mot de passe
115 field_password_confirmation: Confirmation
115 field_password_confirmation: Confirmation
116 field_version: Version
116 field_version: Version
117 field_type: Type
117 field_type: Type
118 field_host: Hôte
118 field_host: Hôte
119 field_port: Port
119 field_port: Port
120 field_account: Compte
120 field_account: Compte
121 field_base_dn: Base DN
121 field_base_dn: Base DN
122 field_attr_login: Attribut Identifiant
122 field_attr_login: Attribut Identifiant
123 field_attr_firstname: Attribut Prénom
123 field_attr_firstname: Attribut Prénom
124 field_attr_lastname: Attribut Nom
124 field_attr_lastname: Attribut Nom
125 field_attr_mail: Attribut Email
125 field_attr_mail: Attribut Email
126 field_onthefly: Création des utilisateurs à la volée
126 field_onthefly: Création des utilisateurs à la volée
127
127
128 label_user: Utilisateur
128 label_user: Utilisateur
129 label_user_plural: Utilisateurs
129 label_user_plural: Utilisateurs
130 label_user_new: Nouvel utilisateur
130 label_user_new: Nouvel utilisateur
131 label_project: Projet
131 label_project: Projet
132 label_project_new: Nouveau projet
132 label_project_new: Nouveau projet
133 label_project_plural: Projets
133 label_project_plural: Projets
134 label_project_latest: Derniers projets
134 label_project_latest: Derniers projets
135 label_issue: Demande
135 label_issue: Demande
136 label_issue_new: Nouvelle demande
136 label_issue_new: Nouvelle demande
137 label_issue_plural: Demandes
137 label_issue_plural: Demandes
138 label_issue_view_all: Voir toutes les demandes
138 label_issue_view_all: Voir toutes les demandes
139 label_document: Document
139 label_document: Document
140 label_document_new: Nouveau document
140 label_document_new: Nouveau document
141 label_document_plural: Documents
141 label_document_plural: Documents
142 label_role: Rôle
142 label_role: Rôle
143 label_role_plural: Rôles
143 label_role_plural: Rôles
144 label_role_new: Nouveau rôle
144 label_role_new: Nouveau rôle
145 label_role_and_permissions: Rôles et permissions
145 label_role_and_permissions: Rôles et permissions
146 label_member: Membre
146 label_member: Membre
147 label_member_new: Nouveau membre
147 label_member_new: Nouveau membre
148 label_member_plural: Membres
148 label_member_plural: Membres
149 label_tracker: Tracker
149 label_tracker: Tracker
150 label_tracker_plural: Trackers
150 label_tracker_plural: Trackers
151 label_tracker_new: Nouveau tracker
151 label_tracker_new: Nouveau tracker
152 label_workflow: Workflow
152 label_workflow: Workflow
153 label_issue_status: Statut de demandes
153 label_issue_status: Statut de demandes
154 label_issue_status_plural: Statuts de demandes
154 label_issue_status_plural: Statuts de demandes
155 label_issue_status_new: Nouveau statut
155 label_issue_status_new: Nouveau statut
156 label_issue_category: Catégorie de demandes
156 label_issue_category: Catégorie de demandes
157 label_issue_category_plural: Catégories de demandes
157 label_issue_category_plural: Catégories de demandes
158 label_issue_category_new: Nouvelle catégorie
158 label_issue_category_new: Nouvelle catégorie
159 label_custom_field: Champ personnalisé
159 label_custom_field: Champ personnalisé
160 label_custom_field_plural: Champs personnalisés
160 label_custom_field_plural: Champs personnalisés
161 label_custom_field_new: Nouveau champ personnalisé
161 label_custom_field_new: Nouveau champ personnalisé
162 label_enumerations: Listes de valeurs
162 label_enumerations: Listes de valeurs
163 label_enumeration_new: Nouvelle valeur
163 label_enumeration_new: Nouvelle valeur
164 label_information: Information
164 label_information: Information
165 label_information_plural: Informations
165 label_information_plural: Informations
166 label_please_login: Identification
166 label_please_login: Identification
167 label_register: S'enregistrer
167 label_register: S'enregistrer
168 label_password_lost: Mot de passe perdu
168 label_password_lost: Mot de passe perdu
169 label_home: Accueil
169 label_home: Accueil
170 label_my_page: Ma page
170 label_my_page: Ma page
171 label_my_account: Mon compte
171 label_my_account: Mon compte
172 label_my_projects: Mes projets
172 label_my_projects: Mes projets
173 label_administration: Administration
173 label_administration: Administration
174 label_login: Connexion
174 label_login: Connexion
175 label_logout: Déconnexion
175 label_logout: Déconnexion
176 label_help: Aide
176 label_help: Aide
177 label_reported_issues: Demandes soumises
177 label_reported_issues: Demandes soumises
178 label_assigned_to_me_issues: Demandes qui me sont assignées
178 label_assigned_to_me_issues: Demandes qui me sont assignées
179 label_last_login: Dernière connexion
179 label_last_login: Dernière connexion
180 label_last_updates: Dernière mise à jour
180 label_last_updates: Dernière mise à jour
181 label_last_updates_plural: %d dernières mises à jour
181 label_last_updates_plural: %d dernières mises à jour
182 label_registered_on: Inscrit le
182 label_registered_on: Inscrit le
183 label_activity: Activité
183 label_activity: Activité
184 label_new: Nouveau
184 label_new: Nouveau
185 label_logged_as: Connecté en tant que
185 label_logged_as: Connecté en tant que
186 label_environment: Environnement
186 label_environment: Environnement
187 label_authentication: Authentification
187 label_authentication: Authentification
188 label_auth_source: Mode d'authentification
188 label_auth_source: Mode d'authentification
189 label_auth_source_new: Nouveau mode d'authentification
189 label_auth_source_new: Nouveau mode d'authentification
190 label_auth_source_plural: Modes d'authentification
190 label_auth_source_plural: Modes d'authentification
191 label_subproject: Sous-projet
191 label_subproject: Sous-projet
192 label_subproject_plural: Sous-projets
192 label_subproject_plural: Sous-projets
193 label_min_max_length: Longueurs mini - maxi
193 label_min_max_length: Longueurs mini - maxi
194 label_list: Liste
194 label_list: Liste
195 label_date: Date
195 label_date: Date
196 label_integer: Entier
196 label_integer: Entier
197 label_boolean: Booléen
197 label_boolean: Booléen
198 label_string: Chaîne
198 label_string: Chaîne
199 label_text: Texte
199 label_text: Texte
200 label_attribute: Attribut
200 label_attribute: Attribut
201 label_attribute_plural: Attributs
201 label_attribute_plural: Attributs
202 label_download: %d Téléchargement
202 label_download: %d Téléchargement
203 label_download_plural: %d Téléchargements
203 label_download_plural: %d Téléchargements
204 label_no_data: Aucune donnée à afficher
204 label_no_data: Aucune donnée à afficher
205 label_change_status: Changer le statut
205 label_change_status: Changer le statut
206 label_history: Historique
206 label_history: Historique
207 label_attachment: Fichier
207 label_attachment: Fichier
208 label_attachment_new: Nouveau fichier
208 label_attachment_new: Nouveau fichier
209 label_attachment_delete: Supprimer le fichier
209 label_attachment_delete: Supprimer le fichier
210 label_attachment_plural: Fichiers
210 label_attachment_plural: Fichiers
211 label_report: Rapport
211 label_report: Rapport
212 label_report_plural: Rapports
212 label_report_plural: Rapports
213 label_news: Annonce
213 label_news: Annonce
214 label_news_new: Nouvelle annonce
214 label_news_new: Nouvelle annonce
215 label_news_plural: Annonces
215 label_news_plural: Annonces
216 label_news_latest: Dernières annonces
216 label_news_latest: Dernières annonces
217 label_news_view_all: Voir toutes les annonces
217 label_news_view_all: Voir toutes les annonces
218 label_change_log: Historique
218 label_change_log: Historique
219 label_settings: Configuration
219 label_settings: Configuration
220 label_overview: Aperçu
220 label_overview: Aperçu
221 label_version: Version
221 label_version: Version
222 label_version_new: Nouvelle version
222 label_version_new: Nouvelle version
223 label_version_plural: Versions
223 label_version_plural: Versions
224 label_confirmation: Confirmation
224 label_confirmation: Confirmation
225 label_export_csv: Exporter en CSV
225 label_export_csv: Exporter en CSV
226 label_read: Lire...
226 label_read: Lire...
227 label_public_projects: Projets publics
227 label_public_projects: Projets publics
228 label_open_issues: Ouverte
228 label_open_issues: Ouverte
229 label_open_issues_plural: Ouvertes
229 label_open_issues_plural: Ouvertes
230 label_closed_issues: Fermée
230 label_closed_issues: Fermée
231 label_closed_issues_plural: Fermées
231 label_closed_issues_plural: Fermées
232 label_total: Total
232 label_total: Total
233 label_permissions: Permissions
233 label_permissions: Permissions
234 label_current_status: Statut actuel
234 label_current_status: Statut actuel
235 label_new_statuses_allowed: Nouveaux statuts autorisés
235 label_new_statuses_allowed: Nouveaux statuts autorisés
236 label_all: Tous
236 label_all: Tous
237 label_none: Aucun
237 label_none: Aucun
238 label_next: Suivant
238 label_next: Suivant
239 label_previous: Précédent
239 label_previous: Précédent
240 label_used_by: Utilisé par
240 label_used_by: Utilisé par
241
241
242 button_login: Connexion
242 button_login: Connexion
243 button_submit: Soumettre
243 button_submit: Soumettre
244 button_save: Valider
244 button_save: Valider
245 button_check_all: Tout cocher
245 button_check_all: Tout cocher
246 button_uncheck_all: Tout décocher
246 button_uncheck_all: Tout décocher
247 button_delete: Supprimer
247 button_delete: Supprimer
248 button_create: Créer
248 button_create: Créer
249 button_test: Tester
249 button_test: Tester
250 button_edit: Modifier
250 button_edit: Modifier
251 button_add: Ajouter
251 button_add: Ajouter
252 button_change: Changer
252 button_change: Changer
253 button_apply: Appliquer
253 button_apply: Appliquer
254 button_clear: Effacer
254 button_clear: Effacer
255 button_lock: Verrouiller
255 button_lock: Verrouiller
256 button_unlock: Déverrouiller
256 button_unlock: Déverrouiller
257 button_download: Télécharger
257 button_download: Télécharger
258 button_list: Lister
258 button_list: Lister
259 button_view: Voir
259 button_view: Voir
260
260
261 text_select_mail_notifications: Sélectionner les actions pour lesquelles la notification par mail doit être activée.
261 text_select_mail_notifications: Sélectionner les actions pour lesquelles la notification par mail doit être activée.
262 text_regexp_info: ex. ^[A-Z0-9]+$
262 text_regexp_info: ex. ^[A-Z0-9]+$
263 text_min_max_length_info: 0 pour aucune restriction
263 text_min_max_length_info: 0 pour aucune restriction
264 text_possible_values_info: valeurs séparées par |
264 text_possible_values_info: valeurs séparées par |
265 text_project_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce projet et tout ce qui lui est rattaché ?
265 text_project_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce projet et tout ce qui lui est rattaché ?
266 text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow
266 text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow
267 text_are_you_sure: Etes-vous sûr ?
267
268
268 default_role_manager: Manager
269 default_role_manager: Manager
269 default_role_developper: Développeur
270 default_role_developper: Développeur
270 default_role_reporter: Rapporteur
271 default_role_reporter: Rapporteur
271 default_tracker_bug: Anomalie
272 default_tracker_bug: Anomalie
272 default_tracker_feature: Evolution
273 default_tracker_feature: Evolution
273 default_tracker_support: Assistance
274 default_tracker_support: Assistance
274 default_issue_status_new: Nouveau
275 default_issue_status_new: Nouveau
275 default_issue_status_assigned: Assigné
276 default_issue_status_assigned: Assigné
276 default_issue_status_resolved: Résolu
277 default_issue_status_resolved: Résolu
277 default_issue_status_feedback: Commentaire
278 default_issue_status_feedback: Commentaire
278 default_issue_status_closed: Fermé
279 default_issue_status_closed: Fermé
279 default_issue_status_rejected: Rejeté
280 default_issue_status_rejected: Rejeté
280 default_doc_category_user: Documentation utilisateur
281 default_doc_category_user: Documentation utilisateur
281 default_doc_category_tech: Documentation technique
282 default_doc_category_tech: Documentation technique
282 default_priority_low: Bas
283 default_priority_low: Bas
283 default_priority_normal: Normal
284 default_priority_normal: Normal
284 default_priority_high: Haut
285 default_priority_high: Haut
285 default_priority_urgent: Urgent
286 default_priority_urgent: Urgent
286 default_priority_immediate: Immédiat
287 default_priority_immediate: Immédiat
287
288
288 enumeration_issue_priorities: Priorités des demandes
289 enumeration_issue_priorities: Priorités des demandes
289 enumeration_doc_categories: Catégories des documents
290 enumeration_doc_categories: Catégories des documents
@@ -1,354 +1,393
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 */
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 /* Edited by Jean-Philippe Lang *>
2 /* Edited by Jean-Philippe Lang *>
3 /**************** Body and tag styles ****************/
3 /**************** Body and tag styles ****************/
4
4
5
5
6 #header * {margin:0; padding:0;}
6 #header * {margin:0; padding:0;}
7 p, ul, ol, li {margin:0; padding:0;}
7 p, ul, ol, li {margin:0; padding:0;}
8
8
9
9
10 body{
10 body{
11 font:76% Verdana,Tahoma,Arial,sans-serif;
11 font:76% Verdana,Tahoma,Arial,sans-serif;
12 line-height:1.4em;
12 line-height:1.4em;
13 text-align:center;
13 text-align:center;
14 color:#303030;
14 color:#303030;
15 background:#e8eaec;
15 background:#e8eaec;
16 margin:0;
16 }
17 }
17
18
18
19
19 a{
20 a{
20 color:#467aa7;
21 color:#467aa7;
21 font-weight:bold;
22 font-weight:bold;
22 text-decoration:none;
23 text-decoration:none;
23 background-color:inherit;
24 background-color:inherit;
24 }
25 }
25
26
26 a:hover{color:#2a5a8a; text-decoration:none; background-color:inherit;}
27 a:hover{color:#2a5a8a; text-decoration:none; background-color:inherit;}
27 a img{border:none;}
28 a img{border:none;}
28
29
29 p{padding:0 0 1em 0;}
30 p{padding:0 0 1em 0;}
30 p form{margin-top:0; margin-bottom:20px;}
31 p form{margin-top:0; margin-bottom:20px;}
31
32
32 img.left,img.center,img.right{padding:4px; border:1px solid #a0a0a0;}
33 img.left,img.center,img.right{padding:4px; border:1px solid #a0a0a0;}
33 img.left{float:left; margin:0 12px 5px 0;}
34 img.left{float:left; margin:0 12px 5px 0;}
34 img.center{display:block; margin:0 auto 5px auto;}
35 img.center{display:block; margin:0 auto 5px auto;}
35 img.right{float:right; margin:0 0 5px 12px;}
36 img.right{float:right; margin:0 0 5px 12px;}
36
37
37 /**************** Header and navigation styles ****************/
38 /**************** Header and navigation styles ****************/
38
39
39 #container{
40 #container{
40 width:100%;
41 width:100%;
41 min-width: 800px;
42 min-width: 800px;
42 margin:5px auto;
43 margin:0;
43 padding:1px 0;
44 padding:0;
44 text-align:left;
45 text-align:left;
45 background:#ffffff;
46 background:#ffffff;
46 color:#303030;
47 color:#303030;
47 border:2px solid #a0a0a0;
48 }
48 }
49
49
50 #header{
50 #header{
51 height:5.5em;
51 height:4.5em;
52 /*width:758px;*/
52 /*width:758px;*/
53 margin:0 1px 1px 1px;
53 margin:0;
54 background:#467aa7;
54 background:#467aa7;
55 color:#ffffff;
55 color:#ffffff;
56 margin-bottom:1px;
56 }
57 }
57
58
58 #header h1{
59 #header h1{
59 padding:14px 0 0 20px;
60 padding:10px 0 0 20px;
60 font-size:2.4em;
61 font-size:1.8em;
61 background-color:inherit;
62 background-color:inherit;
62 color:#fff; /*rgb(152, 26, 33);*/
63 color:#fff; /*rgb(152, 26, 33);*/
63 letter-spacing:-2px;
64 letter-spacing:-2px;
64 font-weight:normal;
65 font-weight:normal;
65 }
66 }
66
67
67 #header h2{
68 #header h2{
68 margin:10px 0 0 40px;
69 margin:3px 0 0 40px;
69 font-size:1.4em;
70 font-size:1.4em;
70 background-color:inherit;
71 background-color:inherit;
71 color:#f0f2f4;
72 color:#f0f2f4;
72 letter-spacing:-1px;
73 letter-spacing:-1px;
73 font-weight:normal;
74 font-weight:normal;
74 }
75 }
75
76
76 #navigation{
77 #navigation{
77 height:2.2em;
78 height:2.2em;
78 line-height:2.2em;
79 line-height:2.2em;
79 /*width:758px;*/
80 /*width:758px;*/
80 margin:0 1px;
81 margin:0;
81 background:#578bb8;
82 background:#578bb8;
82 color:#ffffff;
83 color:#ffffff;
83 }
84 }
84
85
85 #navigation li{
86 #navigation li{
86 float:left;
87 float:left;
87 list-style-type:none;
88 list-style-type:none;
88 border-right:1px solid #ffffff;
89 border-right:1px solid #ffffff;
89 white-space:nowrap;
90 white-space:nowrap;
90 }
91 }
91
92
92 #navigation li.right {
93 #navigation li.right {
93 float:right;
94 float:right;
94 list-style-type:none;
95 list-style-type:none;
95 border-right:0;
96 border-right:0;
96 border-left:1px solid #ffffff;
97 border-left:1px solid #ffffff;
97 white-space:nowrap;
98 white-space:nowrap;
98 }
99 }
99
100
100 #navigation li a{
101 #navigation li a{
101 display:block;
102 display:block;
102 padding:0px 10px 0px 22px;
103 padding:0px 10px 0px 22px;
103 font-size:0.8em;
104 font-size:0.8em;
104 font-weight:normal;
105 font-weight:normal;
105 /*text-transform:uppercase;*/
106 /*text-transform:uppercase;*/
106 text-decoration:none;
107 text-decoration:none;
107 background-color:inherit;
108 background-color:inherit;
108 color: #ffffff;
109 color: #ffffff;
109 }
110 }
110
111
111 * html #navigation a {width:1%;}
112 * html #navigation a {width:1%;}
112
113
113 #navigation .selected,#navigation a:hover{
114 #navigation .selected,#navigation a:hover{
114 color:#ffffff;
115 color:#ffffff;
115 text-decoration:none;
116 text-decoration:none;
116 background-color: #80b0da;
117 background-color: #80b0da;
117 }
118 }
118
119
119 /**************** Icons links *******************/
120 /**************** Icons links *******************/
120 .picHome { background: url(../images/home.png) no-repeat 4px 50%; }
121 .picHome { background: url(../images/home.png) no-repeat 4px 50%; }
121 .picUser { background: url(../images/user.png) no-repeat 4px 50%; }
122 .picUser { background: url(../images/user.png) no-repeat 4px 50%; }
122 .picUserPage { background: url(../images/user_page.png) no-repeat 4px 50%; }
123 .picUserPage { background: url(../images/user_page.png) no-repeat 4px 50%; }
123 .picAdmin { background: url(../images/admin.png) no-repeat 4px 50%; }
124 .picAdmin { background: url(../images/admin.png) no-repeat 4px 50%; }
124 .picProject { background: url(../images/projects.png) no-repeat 4px 50%; }
125 .picProject { background: url(../images/projects.png) no-repeat 4px 50%; }
125 .picLogout { background: url(../images/logout.png) no-repeat 4px 50%; }
126 .picLogout { background: url(../images/logout.png) no-repeat 4px 50%; }
126 .picHelp { background: url(../images/help.png) no-repeat 4px 50%; }
127 .picHelp { background: url(../images/help.png) no-repeat 4px 50%; }
127
128
128 /**************** Content styles ****************/
129 /**************** Content styles ****************/
129
130
131 html>body #content {
132 height: auto;
133 min-height: 300px;
134 }
135
130 #content{
136 #content{
131 /*float:right;*/
137 /*float:right;*/
132 /*width:530px;*/
138 /*width:530px;*/
133 width: auto;
139 width: auto;
134 min-height: 500px;
140 height:300px;
135 font-size:0.9em;
141 font-size:0.9em;
136 padding:20px 10px 10px 20px;
142 padding:20px 10px 10px 20px;
137 /*position: absolute;*/
143 /*position: absolute;*/
138 margin: 0 0 0 140px;
144 margin-left: 120px;
139 border-left: 1px dashed #c0c0c0;
145 border-left: 1px dashed #c0c0c0;
146
140 }
147 }
141
148
142 #content h2{
149 #content h2{
143 display:block;
150 display:block;
144 margin:0 0 16px 0;
151 margin:0 0 16px 0;
145 font-size:1.7em;
152 font-size:1.7em;
146 font-weight:normal;
153 font-weight:normal;
147 letter-spacing:-1px;
154 letter-spacing:-1px;
148 color:#505050;
155 color:#505050;
149 background-color:inherit;
156 background-color:inherit;
150 }
157 }
151
158
152 #content h2 a{font-weight:normal;}
159 #content h2 a{font-weight:normal;}
153 #content h3{margin:0 0 12px 0; font-size:1.4em; letter-spacing:-1px;}
160 #content h3{margin:0 0 12px 0; font-size:1.4em; letter-spacing:-1px;}
154 #content a:hover,#subcontent a:hover{text-decoration:underline;}
161 #content a:hover,#subcontent a:hover{text-decoration:underline;}
155 #content ul,#content ol{margin:0 5px 16px 35px;}
162 #content ul,#content ol{margin:0 5px 16px 35px;}
156 #content dl{margin:0 5px 10px 25px;}
163 #content dl{margin:0 5px 10px 25px;}
157 #content dt{font-weight:bold; margin-bottom:5px;}
164 #content dt{font-weight:bold; margin-bottom:5px;}
158 #content dd{margin:0 0 10px 15px;}
165 #content dd{margin:0 0 10px 15px;}
159
166
160
167
161 /***********************************************/
168 /***********************************************/
162
169
163 /*
170 /*
164 form{
171 form{
165 padding:15px;
172 padding:15px;
166 margin:0 0 20px 0;
173 margin:0 0 20px 0;
167 border:1px solid #c0c0c0;
174 border:1px solid #c0c0c0;
168 background-color:#CEE1ED;
175 background-color:#CEE1ED;
169 width:600px;
176 width:600px;
170 }
177 }
171 */
178 */
172
179
173 form {
180 form {
174 display: inline;
181 display: inline;
175 }
182 }
176
183
177 .noborder {
184 .noborder {
178 border:0px;
185 border:0px;
186 Exception exceptions.AssertionError: <exceptions.AssertionError instance at 0xb7c0b20c> in <bound
187 method SubversionRepository.__del__ of <vclib.svn.SubversionRepository instance at 0xb7c1252c>>
188 ignored
189
179 background-color:#fff;
190 background-color:#fff;
180 width:100%;
191 width:100%;
181 }
192 }
182
193
183 textarea {
194 textarea {
184 padding:0;
195 padding:0;
185 margin:0;
196 margin:0;
186 }
197 }
187
198
188 input {
199 input {
189 vertical-align: top;
200 vertical-align: middle;
190 }
201 }
191
202
192 input.button-small
203 input.button-small
193 {
204 {
194 font-size: 0.8em;
205 font-size: 0.8em;
195 }
206 }
196
207
197 select.select-small
208 select.select-small
198 {
209 {
199 border: 1px solid #7F9DB9;
210 border: 1px solid #7F9DB9;
200 padding: 1px;
211 padding: 1px;
201 font-size: 0.8em;
212 font-size: 0.8em;
202 }
213 }
203
214
204 .active-filter
215 .active-filter
205 {
216 {
206 background-color: #F9FA9E;
217 background-color: #F9FA9E;
207
218
208 }
219 }
209
220
210 label {
221 label {
211 font-weight: bold;
222 font-weight: bold;
212 font-size: 1em;
223 font-size: 1em;
213 }
224 }
214
225
215 fieldset {
226 fieldset {
216 border:1px solid #7F9DB9;
227 border:1px solid #7F9DB9;
217 padding: 6px;
228 padding: 6px;
218 }
229 }
219
230
220 legend {
231 legend {
221 color: #505050;
232 color: #505050;
222
233
223 }
234 }
224
235
225 .required {
236 .required {
226 color: #bb0000;
237 color: #bb0000;
227 }
238 }
228
239
229 table.listTableContent {
240 table.listTableContent {
230 /*margin: 2em 2em 2em 0; */
241 border:1px solid #578bb8;
231 border:1px solid #c0c0c0;
232 width:99%;
242 width:99%;
243 border-collapse: collapse;
233 }
244 }
234
245
235 table.listTableContent td {
246 table.listTableContent td {
236 margin: 2px;
247 padding:4px;
237
238 }
248 }
239
249
240 tr.ListHead {
250 tr.ListHead {
241 background-color:#467aa7;
251 background-color:#467aa7;
242 color:#FFFFFF;
252 color:#FFFFFF;
243 text-align:center;
253 text-align:center;
244 }
254 }
245
255
246 tr.ListHead a {
256 tr.ListHead a {
247 color:#FFFFFF;
257 color:#FFFFFF;
248 text-decoration:underline;
258 text-decoration:underline;
249 }
259 }
250
260
251 tr.odd {
261 tr.odd {
252 background-color: #C1E2F7;
262 background-color:#f0f1f2;
253 }
263 }
254 tr.even {
264 tr.even {
255 background-color:#CEE1ED;
265 background-color: #fff;
256 }
266 }
257
267
258 hr { border:none; border-bottom: dotted 2px #c0c0c0; }
268 hr { border:none; border-bottom: dotted 2px #c0c0c0; }
259
269
260
270
261 /**************** Sidebar styles ****************/
271 /**************** Sidebar styles ****************/
262
272
263 #subcontent{
273 #subcontent{
264 float:left;
274 float:left;
265 clear:both;
275 clear:both;
266 width:130px;
276 width:110px;
267 padding:20px 20px 10px 5px;
277 padding:20px 20px 10px 5px;
268 line-height:1.4em;
269 }
278 }
270
279
271 #subcontent h2{
280 #subcontent h2{
272 display:block;
281 display:block;
273 margin:0 0 15px 0;
282 margin:0 0 5px 0;
274 font-size:1.6em;
283 font-size:1.0em;
275 font-weight:normal;
284 font-weight:bold;
276 text-align:left;
285 text-align:left;
277 letter-spacing:-1px;
286 letter-spacing:-1px;
278 color:#505050;
287 color:#606060;
279 background-color:inherit;
288 background-color:inherit;
280 }
289 }
281
290
282 #subcontent p{margin:0 0 16px 0; font-size:0.9em;}
291 #subcontent p{margin:0 0 16px 0; font-size:0.9em;}
283
292
284 /**************** Menublock styles ****************/
293 /**************** Menublock styles ****************/
285
294
286 .menublock{margin:0 0 20px 8px; font-size:0.9em;}
295 .menublock{margin:0 0 20px 8px; font-size:0.8em;}
287 .menublock li{list-style:none; display:block; padding:1px; margin-bottom:0px;}
296 .menublock li{list-style:none; display:block; padding:1px; margin-bottom:0px;}
288 .menublock li a{font-weight:bold; text-decoration:none;}
297 .menublock li a{font-weight:bold; text-decoration:none;}
289 .menublock li a:hover{text-decoration:none;}
298 .menublock li a:hover{text-decoration:none;}
290 .menublock li ul{margin:3px 0 3px 15px; font-size:1em; font-weight:normal;}
299 .menublock li ul{margin:0; font-size:1em; font-weight:normal;}
291 .menublock li ul li{margin-bottom:0;}
300 .menublock li ul li{margin-bottom:0;}
292 .menublock li ul a{font-weight:normal;}
301 .menublock li ul a{font-weight:normal;}
293
302
294 /**************** Searchbar styles ****************/
303 /**************** Searchbar styles ****************/
295
304
296 #searchbar{margin:0 0 20px 0;}
305 #searchbar{margin:0 0 20px 0;}
297 #searchbar form fieldset{margin-left:10px; border:0 solid;}
306 #searchbar form fieldset{margin-left:10px; border:0 solid;}
298
307
299 #searchbar #s{
308 #searchbar #s{
300 height:1.2em;
309 height:1.2em;
301 width:110px;
310 width:110px;
302 margin:0 5px 0 0;
311 margin:0 5px 0 0;
303 border:1px solid #a0a0a0;
312 border:1px solid #a0a0a0;
304 }
313 }
305
314
306 #searchbar #searchbutton{
315 #searchbar #searchbutton{
307 width:auto;
316 width:auto;
308 padding:0 1px;
317 padding:0 1px;
309 border:1px solid #808080;
318 border:1px solid #808080;
310 font-size:0.9em;
319 font-size:0.9em;
311 text-align:center;
320 text-align:center;
312 }
321 }
313
322
314 /**************** Footer styles ****************/
323 /**************** Footer styles ****************/
315
324
316 #footer{
325 #footer{
317 clear:both;
326 clear:both;
318 /*width:758px;*/
327 /*width:758px;*/
319 padding:5px 0;
328 padding:5px 0;
320 margin:0 1px;
329 margin:0;
321 font-size:0.9em;
330 font-size:0.9em;
322 color:#f0f0f0;
331 color:#f0f0f0;
323 background:#467aa7;
332 background:#467aa7;
324 }
333 }
325
334
326 #footer p{padding:0; margin:0; text-align:center;}
335 #footer p{padding:0; margin:0; text-align:center;}
327 #footer a{color:#f0f0f0; background-color:inherit; font-weight:bold;}
336 #footer a{color:#f0f0f0; background-color:inherit; font-weight:bold;}
328 #footer a:hover{color:#ffffff; background-color:inherit; text-decoration: underline;}
337 #footer a:hover{color:#ffffff; background-color:inherit; text-decoration: underline;}
329
338
330 /**************** Misc classes and styles ****************/
339 /**************** Misc classes and styles ****************/
331
340
332 .splitcontentleft{float:left; width:49%;}
341 .splitcontentleft{float:left; width:49%;}
333 .splitcontentright{float:right; width:49%;}
342 .splitcontentright{float:right; width:49%;}
334 .clear{clear:both;}
343 .clear{clear:both;}
335 .small{font-size:0.8em;line-height:1.4em;padding:0 0 0 0;}
344 .small{font-size:0.8em;line-height:1.4em;padding:0 0 0 0;}
336 .hide{display:none;}
345 .hide{display:none;}
337 .textcenter{text-align:center;}
346 .textcenter{text-align:center;}
338 .textright{text-align:right;}
347 .textright{text-align:right;}
339 .important{color:#f02025; background-color:inherit; font-weight:bold;}
348 .important{color:#f02025; background-color:inherit; font-weight:bold;}
340
349
341 .box{
350 .box{
342 margin:0 0 20px 0;
351 margin:0 0 20px 0;
343 padding:10px;
352 padding:10px;
344 border:1px solid #c0c0c0;
353 border:1px solid #c0c0c0;
345 background-color:#fafbfc;
354 background-color:#fafbfc;
346 color:#505050;
355 color:#505050;
347 line-height:1.5em;
356 line-height:1.5em;
348 }
357 }
349
358
350 .login {
359 .login {
351 width: 50%;
360 width: 50%;
352 text-align: left;
361 text-align: left;
353 }
362 }
354
363
364
365 /***** CSS FORM ******/
366 .tabular p{
367 margin: 0;
368 padding: 5px 0 8px 0;
369 padding-left: 180px; /*width of left column containing the label elements*/
370 height: 1%;
371 }
372
373 .tabular label{
374 font-weight: bold;
375 float: left;
376 margin-left: -180px; /*width of left column*/
377 width: 175px; /*width of labels. Should be smaller than left column to create some right
378 margin*/
379 }
380
381 .error {
382 color: #cc0000;
383 }
384
385
386 /*.threepxfix class below:
387 Targets IE6- ONLY. Adds 3 pixel indent for multi-line form contents.
388 to account for 3 pixel bug: http://www.positioniseverything.net/explorer/threepxtest.html
389 */
390
391 * html .threepxfix{
392 margin-left: 3px;
393 } No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now