\ No newline at end of file
diff --git a/redmine/app/views/account/lost_password.rhtml b/redmine/app/views/account/lost_password.rhtml
index cd392f2..3f32e71 100644
--- a/redmine/app/views/account/lost_password.rhtml
+++ b/redmine/app/views/account/lost_password.rhtml
@@ -2,9 +2,9 @@
\ No newline at end of file
diff --git a/redmine/app/views/documents/edit.rhtml b/redmine/app/views/documents/edit.rhtml
index 059c99d..3db4bcc 100644
--- a/redmine/app/views/documents/edit.rhtml
+++ b/redmine/app/views/documents/edit.rhtml
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/redmine/app/views/enumerations/edit.rhtml b/redmine/app/views/enumerations/edit.rhtml
index 5c26414..3002b59 100644
--- a/redmine/app/views/enumerations/edit.rhtml
+++ b/redmine/app/views/enumerations/edit.rhtml
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/redmine/app/views/issue_statuses/edit.rhtml b/redmine/app/views/issue_statuses/edit.rhtml
index 140a40d..80f856a 100644
--- a/redmine/app/views/issue_statuses/edit.rhtml
+++ b/redmine/app/views/issue_statuses/edit.rhtml
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/redmine/app/views/news/edit.rhtml b/redmine/app/views/news/edit.rhtml
index 27f7ac9..5e015c4 100644
--- a/redmine/app/views/news/edit.rhtml
+++ b/redmine/app/views/news/edit.rhtml
@@ -1,6 +1,6 @@
<%= submit_tag l(:button_create) %>
-<%= end_form_tag %>
\ No newline at end of file
+<% end %>
\ No newline at end of file
diff --git a/redmine/app/views/projects/add_news.rhtml b/redmine/app/views/projects/add_news.rhtml
index abe6e96..a6ecd3d 100644
--- a/redmine/app/views/projects/add_news.rhtml
+++ b/redmine/app/views/projects/add_news.rhtml
@@ -1,7 +1,6 @@
\ No newline at end of file
diff --git a/redmine/app/views/versions/edit.rhtml b/redmine/app/views/versions/edit.rhtml
index 6851d79..1556ebb 100644
--- a/redmine/app/views/versions/edit.rhtml
+++ b/redmine/app/views/versions/edit.rhtml
@@ -1,8 +1,7 @@
<%=l(:label_version)%>
-<%= start_form_tag :action => 'edit', :id => @version %>
- <%= render :partial => 'form' %>
- <%= submit_tag l(:button_save) %>
-<%= end_form_tag %>
-
+<% labelled_tabular_form_for :version, @version, :url => { :action => 'edit' } do |f| %>
+<%= render :partial => 'form', :locals => { :f => f } %>
+<%= submit_tag l(:button_save) %>
+<% end %>
diff --git a/redmine/config/environment.rb b/redmine/config/environment.rb
index 23b8a99..ee85b5b 100644
--- a/redmine/config/environment.rb
+++ b/redmine/config/environment.rb
@@ -123,7 +123,7 @@ ActiveRecord::Errors.default_error_messages = {
:not_a_number => "activerecord_error_not_a_number"
}
-ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "#{html_tag}" }
+ActionView::Base.field_error_proc = Proc.new{ |html_tag, instance| "#{html_tag}" }
GLoc.set_config :default_language => $RDM_DEFAULT_LANG
GLoc.clear_strings
diff --git a/redmine/doc/CHANGELOG b/redmine/doc/CHANGELOG
index 5d9140d..fb59f2a 100644
--- a/redmine/doc/CHANGELOG
+++ b/redmine/doc/CHANGELOG
@@ -7,22 +7,26 @@ http://redmine.org/
== xx/xx/2006 v0.3.0
-* user authentication against multiple LDAP
+* user authentication against multiple LDAP (optional)
* token based "lost password" functionality
* user self-registration functionality (optional)
* custom fields now available for issues, users and projects
* new custom field format "text" (displayed as a textarea field)
* project & administration drop down menus in navigation bar for quicker access
* "due date" field added on issues
-* error messages internationalization
+* tracker selection filter added on change log
* Localization plugin replaced with GLoc 1.1.0
+* error messages internationalization
+* german translation added (thanks to Karim Trott)
* new filter in issues list: "Fixed version"
* active filters are displayed with colored background on issues list
* custom configuration is now defined in config/config_custom.rb
* user object no more stored in session (only user_id)
* news summary field is no longer required
+* tables and forms redesign
* Fixed: boolean custom field not working
* Fixed: error messages for custom fields are not displayed
+* Fixed: invalid custom fields should have a red border
* Fixed: custom fields values are not validated on issue update
* Fixed: unable to choose an empty value for 'List' custom fields
* Fixed: no issue categories sorting
diff --git a/redmine/lang/de.yml b/redmine/lang/de.yml
new file mode 100644
index 0000000..cdfffab
--- /dev/null
+++ b/redmine/lang/de.yml
@@ -0,0 +1,290 @@
+_gloc_rule_default: '|n| n==1 ? "" : "_plural" '
+
+actionview_datehelper_select_day_prefix:
+actionview_datehelper_select_month_names: January,February,March,April,May,June,July,August,September,October,November,December
+actionview_datehelper_select_month_names_abbr: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
+actionview_datehelper_select_month_prefix:
+actionview_datehelper_select_year_prefix:
+actionview_datehelper_time_in_words_day: 1 day
+actionview_datehelper_time_in_words_day_plural: %d days
+actionview_datehelper_time_in_words_hour_about: about an hour
+actionview_datehelper_time_in_words_hour_about_plural: about %d hours
+actionview_datehelper_time_in_words_hour_about_single: about an hour
+actionview_datehelper_time_in_words_minute: 1 minute
+actionview_datehelper_time_in_words_minute_half: half a minute
+actionview_datehelper_time_in_words_minute_less_than: less than a minute
+actionview_datehelper_time_in_words_minute_plural: %d minutes
+actionview_datehelper_time_in_words_minute_single: 1 minute
+actionview_datehelper_time_in_words_second_less_than: less than a second
+actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
+actionview_instancetag_blank_option: Bitte auserwählt
+
+activerecord_error_inclusion: ist nicht in der Liste eingeschlossen
+activerecord_error_exclusion: ist reserviert
+activerecord_error_invalid: ist unzulässig
+activerecord_error_confirmation: bringt nicht Bestätigung zusammen
+activerecord_error_accepted: muß angenommen werden
+activerecord_error_empty: kann nicht leer sein
+activerecord_error_blank: kann nicht leer sein
+activerecord_error_too_long: ist zu lang
+activerecord_error_too_short: ist zu kurz
+activerecord_error_wrong_length: ist die falsche Länge
+activerecord_error_taken: ist bereits genommen worden
+activerecord_error_not_a_number: ist nicht eine Zahl
+
+general_fmt_age: %d yr
+general_fmt_age_plural: %d yrs
+general_fmt_date: %%b %%d, %%Y (%%a)
+general_fmt_datetime: %%b %%d, %%Y (%%a), %%I:%%M %%p
+general_fmt_datetime_short: %%b %%d, %%I:%%M %%p
+general_fmt_time: %%I:%%M %%p
+general_text_No: 'Nein'
+general_text_Yes: 'Ja'
+general_text_no: 'nein'
+general_text_yes: 'ja'
+general_lang_de: 'Deutsch'
+
+notice_account_updated: Konto wurde erfolgreich aktualisiert.
+notice_account_invalid_creditentials: Unzulässiger Benutzer oder Passwort
+notice_account_password_updated: Passwort wurde erfolgreich aktualisiert.
+notice_account_wrong_password: Falsches Passwort
+notice_account_register_done: Konto wurde erfolgreich verursacht.
+notice_account_unknown_email: Unbekannter Benutzer.
+notice_can_t_change_password: Dieses Konto verwendet eine externe Authentisierung Quelle. Unmöglich, das Kennwort zu ändern.
+notice_account_lost_email_sent: Ein email mit Anweisungen, ein neues Kennwort zu wählen ist dir geschickt worden.
+notice_account_activated: Dein Konto ist aktiviert worden. Du kannst jetzt einloggen.
+notice_successful_create: Erfolgreiche Kreation.
+notice_successful_update: Erfolgreiches Update.
+notice_successful_delete: Erfolgreiche Auslassung.
+notice_successful_connection: Erfolgreicher Anschluß.
+notice_file_not_found: Erbetene Akte besteht nicht oder ist gelöscht worden.
+
+gui_validation_error: 1 Störung
+gui_validation_error_plural: %d Störungen
+
+field_name: Name
+field_description: Beschreibung
+field_summary: Zusammenfassung
+field_is_required: Erforderlich
+field_firstname: Vorname
+field_lastname: Nachname
+field_mail: Email
+field_filename: Datei
+field_filesize: Grootte
+field_downloads: Downloads
+field_author: Autor
+field_created_on: Angelegt
+field_updated_on: aktualisiert
+field_field_format: Format
+field_is_for_all: Für alle Projekte
+field_possible_values: Mögliche Werte
+field_regexp: Regulärer Ausdruck
+field_min_length: Minimale Länge
+field_max_length: Maximale Länge
+field_value: Wert
+field_category: Kategorie
+field_title: Títel
+field_project: Projekt
+#field_issue: Issue
+field_status: Status
+field_notes: Anmerkungen
+field_is_closed: Problem erledigt
+#field_is_default: Default status
+field_html_color: Farbe
+field_tracker: Tracker
+field_subject: Thema
+#field_due_date: Due date
+field_assigned_to: Zugewiesen an
+field_priority: Priorität
+field_fixed_version: Erledigt in Version
+field_user: Benutzer
+field_role: Rolle
+field_homepage: Startseite
+field_is_public: Öffentlich
+#field_parent: Subprojekt von
+field_is_in_chlog: Ansicht der Issues in der Historie
+field_login: Mitgliedsname
+field_mail_notification: Mailbenachrichtigung
+#field_admin: Administrator
+field_locked: Gesperrt
+field_last_login_on: Letzte Anmeldung
+field_language: Sprache
+field_effective_date: Datum
+field_password: Passwort
+field_new_password: Neues Passwort
+field_password_confirmation: Bestätigung
+field_version: Version
+field_type: Typ
+field_host: Host
+#field_port: Port
+#field_account: Account
+#field_base_dn: Base DN
+#field_attr_login: Login attribute
+#field_attr_firstname: Firstname attribute
+#field_attr_lastname: Lastname attribute
+#field_attr_mail: Email attribute
+#field_onthefly: On-the-fly user creation
+
+label_user: Benutzer
+label_user_plural: Benutzer
+label_user_new: Neuer Benutzer
+label_project: Projekt
+label_project_new: Neues Projekt
+label_project_plural: Projekte
+#label_project_latest: Latest projects
+#label_issue: Issue
+#label_issue_new: New issue
+#label_issue_plural: Issues
+#label_issue_view_all: View all issues
+label_document: Dokument
+label_document_new: Neues Dokument
+label_document_plural: Dokumente
+label_role: Rolle
+label_role_plural: Rollen
+label_role_new: Neue Rolle
+label_role_and_permissions: Rollen und Rechte
+label_member: Mitglied
+label_member_new: Neues Mitglied
+label_member_plural: Mitglieder
+label_tracker: Tracker
+label_tracker_plural: Tracker
+label_tracker_new: Neuer Tracker
+label_workflow: Workflow
+label_issue_status: Problem Status
+label_issue_status_plural: Problem Stati
+label_issue_status_new: Neuer Status
+label_issue_category: Problem Kategorie
+label_issue_category_plural: Problem Kategorien
+label_issue_category_new: Neue Kategorie
+label_custom_field: Benutzerdefiniertes Feld
+label_custom_field_plural: Benutzerdefinierte Felder
+label_custom_field_new: Neues Feld
+label_enumerations: Enumerationen
+label_enumeration_new: Neuer Wert
+label_information: Information
+label_information_plural: Informationen
+#label_please_login: Please login
+label_register: Anmelden
+label_password_lost: Passwort vergessen
+label_home: Hauptseite
+label_my_page: Meine Seite
+label_my_account: Mein Konto
+label_my_projects: Meine Projekte
+label_administration: Administration
+label_login: Einloggen
+label_logout: Abmelden
+label_help: Hilfe
+label_reported_issues: Gemeldete Issues
+label_assigned_to_me_issues: Mir zugewiesen
+label_last_login: Letzte Anmeldung
+#label_last_updates: Last updated
+#label_last_updates_plural: %d last updated
+label_registered_on: Angemeldet am
+label_activity: Aktivität
+label_new: Neue
+label_logged_as: Angemeldet als
+#label_environment: Environment
+label_authentication: Authentisierung
+#label_auth_source: Authentification mode
+#label_auth_source_new: New authentication mode
+#label_auth_source_plural: Authentification modes
+#label_subproject: Subproject
+#label_subproject_plural: Subprojects
+label_min_max_length: Min - Max Länge
+label_list: Liste
+label_date: Date
+label_integer: Zahl
+label_boolean: Boolesch
+#label_string: String
+label_text: Text
+label_attribute: Attribut
+label_attribute_plural: Attribute
+#label_download: %d Download
+#label_download_plural: %d Downloads
+label_no_data: Nichts anzuzeigen
+label_change_status: Statuswechsel
+label_history: Historie
+label_attachment: Datei
+label_attachment_new: Neue Datei
+#label_attachment_delete: Delete file
+label_attachment_plural: Dateien
+label_report: Bericht
+label_report_plural: Berichte
+#label_news: Neuigkeiten
+#label_news_new: Add news
+#label_news_plural: Neuigkeiten
+label_news_latest: Letzte Neuigkeiten
+label_news_view_all: Alle Neuigkeiten anzeigen
+label_change_log: Change log
+label_settings: Konfiguration
+label_overview: Übersicht
+label_version: Version
+label_version_new: Neue Version
+label_version_plural: Versionen
+label_confirmation: Bestätigung
+#label_export_csv: Export to CSV
+label_read: Lesen...
+label_public_projects: Öffentliche Projekte
+#label_open_issues: Open
+#label_open_issues_plural: Open
+#label_closed_issues: Closed
+#label_closed_issues_plural: Closed
+label_total: Gesamtzahl
+label_permissions: Berechtigungen
+label_current_status: Gegenwärtiger Status
+label_new_statuses_allowed: Neue Status gewährten
+label_all: Alle
+label_none: Kein
+label_next: Weiter
+label_previous: Zurück
+label_used_by: Benutzt von
+
+button_login: Einloggen
+button_submit: Einreichen
+button_save: Speichern
+button_check_all: Alles auswählen
+button_uncheck_all: Alles abwählen
+button_delete: Löschen
+button_create: Anlegen
+button_test: Testen
+button_edit: Bearbeiten
+button_add: Hinzufügen
+button_change: Wechseln
+button_apply: Anwenden
+button_clear: Zurücksetzen
+button_lock: Verriegeln
+button_unlock: Entriegeln
+button_download: Fernzuladen
+button_list: Aufzulisten
+button_view: Siehe
+
+text_select_mail_notifications: Aktionen für die Mailbenachrichtigung aktiviert werden soll.
+text_regexp_info: eg. ^[A-Z0-9]+$
+text_min_max_length_info: 0 heisst keine Beschränkung
+#text_possible_values_info: values separated with |
+text_project_destroy_confirmation: Sind sie sicher, daß sie das Projekt löschen wollen ?
+text_workflow_edit: Auswahl Workflow zum Bearbeiten
+text_are_you_sure: Sind sie sicher ?
+
+default_role_manager: Manager
+default_role_developper: Developer
+default_role_reporter: Reporter
+default_tracker_bug: Fehler
+default_tracker_feature: Feature
+default_tracker_support: Support
+default_issue_status_new: Neu
+default_issue_status_assigned: Zugewiesen
+default_issue_status_resolved: Gelöst
+default_issue_status_feedback: Feedback
+default_issue_status_closed: Erledigt
+default_issue_status_rejected: Abgewiesen
+default_doc_category_user: Benutzerdokumentation
+default_doc_category_tech: Technische Dokumentation
+default_priority_low: Niedrig
+default_priority_normal: Normal
+default_priority_high: Hoch
+default_priority_urgent: Dringend
+default_priority_immediate: Sofort
+
+enumeration_issue_priorities: Issue-Prioritäten
+enumeration_doc_categories: Dokumentenkategorien
diff --git a/redmine/lang/en.yml b/redmine/lang/en.yml
index 14c78e7..7fd8063 100644
--- a/redmine/lang/en.yml
+++ b/redmine/lang/en.yml
@@ -101,7 +101,7 @@ field_user: User
field_role: Role
field_homepage: Homepage
field_is_public: Public
-field_parent: Subproject de
+field_parent: Subproject of
field_is_in_chlog: Issues displayed in changelog
field_login: Login
field_mail_notification: Mail notifications
@@ -264,6 +264,7 @@ text_min_max_length_info: 0 means no restriction
text_possible_values_info: values separated with |
text_project_destroy_confirmation: Are you sure you want to delete this project and all related data ?
text_workflow_edit: Select a role and a tracker to edit the workflow
+text_are_you_sure: Are you sure ?
default_role_manager: Manager
default_role_developper: Developer
diff --git a/redmine/lang/es.yml b/redmine/lang/es.yml
index 33baf28..a9806b3 100644
--- a/redmine/lang/es.yml
+++ b/redmine/lang/es.yml
@@ -264,6 +264,7 @@ text_min_max_length_info: 0 para ninguna restricción
#text_possible_values_info: values separated with |
text_project_destroy_confirmation: ¿ Estás seguro de querer eliminar el proyecto ?
text_workflow_edit: Seleccionar un workflow para actualizar
+text_are_you_sure: ¿ Estás seguro ?
default_role_manager: Manager
default_role_developper: Desarrollador
diff --git a/redmine/lang/fr.yml b/redmine/lang/fr.yml
index 5a515d8..5c29368 100644
--- a/redmine/lang/fr.yml
+++ b/redmine/lang/fr.yml
@@ -264,6 +264,7 @@ text_min_max_length_info: 0 pour aucune restriction
text_possible_values_info: valeurs séparées par |
text_project_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce projet et tout ce qui lui est rattaché ?
text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow
+text_are_you_sure: Etes-vous sûr ?
default_role_manager: Manager
default_role_developper: Développeur
diff --git a/redmine/public/stylesheets/application.css b/redmine/public/stylesheets/application.css
index 787347d..6ad4281 100644
--- a/redmine/public/stylesheets/application.css
+++ b/redmine/public/stylesheets/application.css
@@ -13,6 +13,7 @@ line-height:1.4em;
text-align:center;
color:#303030;
background:#e8eaec;
+margin:0;
}
@@ -39,25 +40,25 @@ img.right{float:right; margin:0 0 5px 12px;}
#container{
width:100%;
min-width: 800px;
-margin:5px auto;
-padding:1px 0;
+margin:0;
+padding:0;
text-align:left;
background:#ffffff;
color:#303030;
-border:2px solid #a0a0a0;
}
#header{
-height:5.5em;
+height:4.5em;
/*width:758px;*/
-margin:0 1px 1px 1px;
+margin:0;
background:#467aa7;
color:#ffffff;
+margin-bottom:1px;
}
#header h1{
-padding:14px 0 0 20px;
-font-size:2.4em;
+padding:10px 0 0 20px;
+font-size:1.8em;
background-color:inherit;
color:#fff; /*rgb(152, 26, 33);*/
letter-spacing:-2px;
@@ -65,7 +66,7 @@ font-weight:normal;
}
#header h2{
-margin:10px 0 0 40px;
+margin:3px 0 0 40px;
font-size:1.4em;
background-color:inherit;
color:#f0f2f4;
@@ -77,7 +78,7 @@ font-weight:normal;
height:2.2em;
line-height:2.2em;
/*width:758px;*/
-margin:0 1px;
+margin:0;
background:#578bb8;
color:#ffffff;
}
@@ -127,16 +128,22 @@ background-color: #80b0da;
/**************** Content styles ****************/
+html>body #content {
+height: auto;
+min-height: 300px;
+}
+
#content{
/*float:right;*/
/*width:530px;*/
width: auto;
-min-height: 500px;
+height:300px;
font-size:0.9em;
padding:20px 10px 10px 20px;
/*position: absolute;*/
-margin: 0 0 0 140px;
+margin-left: 120px;
border-left: 1px dashed #c0c0c0;
+
}
#content h2{
@@ -176,6 +183,10 @@ form {
.noborder {
border:0px;
+Exception exceptions.AssertionError: in >
+ignored
+
background-color:#fff;
width:100%;
}
@@ -186,7 +197,7 @@ textarea {
}
input {
- vertical-align: top;
+ vertical-align: middle;
}
input.button-small
@@ -227,14 +238,13 @@ legend {
}
table.listTableContent {
- /*margin: 2em 2em 2em 0; */
- border:1px solid #c0c0c0;
+ border:1px solid #578bb8;
width:99%;
+ border-collapse: collapse;
}
table.listTableContent td {
- margin: 2px;
-
+ padding:4px;
}
tr.ListHead {
@@ -249,10 +259,10 @@ tr.ListHead a {
}
tr.odd {
- background-color: #C1E2F7;
+ background-color:#f0f1f2;
}
tr.even {
- background-color:#CEE1ED;
+ background-color: #fff;
}
hr { border:none; border-bottom: dotted 2px #c0c0c0; }
@@ -263,19 +273,18 @@ hr { border:none; border-bottom: dotted 2px #c0c0c0; }
#subcontent{
float:left;
clear:both;
-width:130px;
+width:110px;
padding:20px 20px 10px 5px;
-line-height:1.4em;
}
#subcontent h2{
display:block;
-margin:0 0 15px 0;
-font-size:1.6em;
-font-weight:normal;
+margin:0 0 5px 0;
+font-size:1.0em;
+font-weight:bold;
text-align:left;
letter-spacing:-1px;
-color:#505050;
+color:#606060;
background-color:inherit;
}
@@ -283,11 +292,11 @@ background-color:inherit;
/**************** Menublock styles ****************/
-.menublock{margin:0 0 20px 8px; font-size:0.9em;}
+.menublock{margin:0 0 20px 8px; font-size:0.8em;}
.menublock li{list-style:none; display:block; padding:1px; margin-bottom:0px;}
.menublock li a{font-weight:bold; text-decoration:none;}
.menublock li a:hover{text-decoration:none;}
-.menublock li ul{margin:3px 0 3px 15px; font-size:1em; font-weight:normal;}
+.menublock li ul{margin:0; font-size:1em; font-weight:normal;}
.menublock li ul li{margin-bottom:0;}
.menublock li ul a{font-weight:normal;}
@@ -317,7 +326,7 @@ text-align:center;
clear:both;
/*width:758px;*/
padding:5px 0;
-margin:0 1px;
+margin:0;
font-size:0.9em;
color:#f0f0f0;
background:#467aa7;
@@ -352,3 +361,33 @@ width: 50%;
text-align: left;
}
+
+/***** CSS FORM ******/
+.tabular p{
+margin: 0;
+padding: 5px 0 8px 0;
+padding-left: 180px; /*width of left column containing the label elements*/
+height: 1%;
+}
+
+.tabular label{
+font-weight: bold;
+float: left;
+margin-left: -180px; /*width of left column*/
+width: 175px; /*width of labels. Should be smaller than left column to create some right
+margin*/
+}
+
+.error {
+color: #cc0000;
+}
+
+
+/*.threepxfix class below:
+Targets IE6- ONLY. Adds 3 pixel indent for multi-line form contents.
+to account for 3 pixel bug: http://www.positioniseverything.net/explorer/threepxtest.html
+*/
+
+* html .threepxfix{
+margin-left: 3px;
+}
\ No newline at end of file