1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-03-11 19:53:07 +00:00

Merge branch 'master' of git://github.com/edavis10/redmine

This commit is contained in:
Holger Just 2010-08-03 15:01:47 +02:00
commit 623c60d2b2
13 changed files with 574 additions and 426 deletions

View File

@ -783,6 +783,10 @@ module ApplicationHelper
end
end
def favicon
"<link rel='shortcut icon' href='#{image_path('/favicon.ico')}' />"
end
private
def wiki_helper

View File

@ -3,6 +3,8 @@
<p><%= link_to("#{l(:label_revision)} #{changeset.revision}",
:controller => 'repositories', :action => 'revision', :id => changeset.project, :rev => changeset.revision) %><br />
<span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
<%= textilizable(changeset, :comments) %>
<div class="changeset-changes">
<%= textilizable(changeset, :comments) %>
</div>
</div>
<% end %>

View File

@ -1,7 +1,7 @@
<% reply_links = authorize_for('issues', 'edit') -%>
<% for journal in journals %>
<div id="change-<%= journal.id %>" class="journal">
<h4><div style="float:right;"><%= link_to "##{journal.indice}", :anchor => "note-#{journal.indice}" %></div>
<h4><div class="journal-link"><%= link_to "##{journal.indice}", :anchor => "note-#{journal.indice}" %></div>
<%= avatar(journal.user, :size => "24") %>
<%= content_tag('a', '', :name => "note-#{journal.indice}")%>
<%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %></h4>

View File

@ -5,6 +5,7 @@
<title><%=h html_title %></title>
<meta name="description" content="<%= Redmine::Info.app_name %>" />
<meta name="keywords" content="issue,bug,tracker" />
<%= favicon %>
<%= stylesheet_link_tag 'application', :media => 'all' %>
<%= javascript_include_tag :defaults %>
<%= heads_for_wiki_formatter %>

View File

@ -99,13 +99,13 @@ de:
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
sentence_connector: "und"
skip_last_comma: true
activerecord:
errors:
template:
@ -136,9 +136,10 @@ de:
greater_than_start_date: "muss größer als Anfangsdatum sein"
not_same_project: "gehört nicht zum selben Projekt"
circular_dependency: "Diese Beziehung würde eine zyklische Abhängigkeit erzeugen"
cant_link_an_issue_with_a_descendant: "Ein Ticket kann nicht mit einer ihrer Unteraufgaben verlinkt werden"
actionview_instancetag_blank_option: Bitte auswählen
general_text_No: 'Nein'
general_text_Yes: 'Ja'
general_text_no: 'nein'
@ -171,6 +172,7 @@ de:
notice_feeds_access_key_reseted: Ihr Atom-Zugriffsschlüssel wurde zurückgesetzt.
notice_api_access_key_reseted: Ihr API-Zugriffsschlüssel wurde zurückgesetzt.
notice_failed_to_save_issues: "{{count}} von {{total}} ausgewählten Tickets konnte(n) nicht gespeichert werden: {{ids}}."
notice_failed_to_save_members: "Benutzer konnte nicht gespeichert werden: {{errors}}."
notice_no_issue_selected: "Kein Ticket ausgewählt! Bitte wählen Sie die Tickets, die Sie bearbeiten möchten."
notice_account_pending: "Ihr Konto wurde erstellt und wartet jetzt auf die Genehmigung des Administrators."
notice_default_data_loaded: Die Standard-Konfiguration wurde erfolgreich geladen.
@ -185,17 +187,18 @@ de:
error_issue_not_found_in_project: 'Das Ticket wurde nicht gefunden oder gehört nicht zu diesem Projekt.'
error_no_tracker_in_project: Diesem Projekt ist kein Tracker zugeordnet. Bitte überprüfen Sie die Projekteinstellungen.
error_no_default_issue_status: Es ist kein Status als Standard definiert. Bitte überprüfen Sie Ihre Konfiguration (unter "Administration -> Ticket-Status").
error_can_not_delete_custom_field: Kann das benutzerdefinierte Feld nicht löschen.
error_can_not_delete_tracker: Dieser Tracker enthält Tickets und kann nicht gelöscht werden.
error_can_not_remove_role: Diese Rolle wird verwendet und kann nicht gelöscht werden.
error_can_not_reopen_issue_on_closed_version: Das Ticket ist einer abgeschlossenen Version zugeordnet und kann daher nicht wieder geöffnet werden.
error_can_not_archive_project: Dieses Projekt kann nicht archiviert werden.
error_issue_done_ratios_not_updated: Der Ticket-Fortschritt wurde nicht aktualisiert.
error_workflow_copy_source: Bitte wählen Sie einen Quell-Tracker und eine Quell-Rolle.
error_workflow_copy_target: Bitte wählen Sie die Ziel-Tracker und -Rollen.
error_unable_delete_issue_status: "Der Ticket-Status konnte nicht gelöscht werden."
warning_attachments_not_saved:
one: "1 Datei konnte nicht gespeichert werden."
other: "{{count}} Dateien konnten nicht gespeichert werden."
error_unable_to_connect: Fehler beim Verbinden ({{value}})
warning_attachments_not_saved: "{{count}} Datei(en) konnten nicht gespeichert werden."
mail_subject_lost_password: "Ihr {{value}} Kennwort"
mail_body_lost_password: 'Benutzen Sie den folgenden Link, um Ihr Kennwort zu ändern:'
mail_subject_register: "{{value}} Kontoaktivierung"
@ -210,7 +213,6 @@ de:
mail_body_wiki_content_added: "Die Wiki-Seite '{{page}}' wurde von {{author}} hinzugefügt."
mail_subject_wiki_content_updated: "Wiki-Seite '{{page}}' erfolgreich aktualisiert"
mail_body_wiki_content_updated: "Die Wiki-Seite '{{page}}' wurde von {{author}} aktualisiert."
gui_validation_error: 1 Fehler
gui_validation_error_plural: "{{count}} Fehler"
@ -249,6 +251,7 @@ de:
field_priority: Priorität
field_fixed_version: Zielversion
field_user: Benutzer
field_principal: Principal
field_role: Rolle
field_homepage: Projekt-Homepage
field_is_public: Öffentlich
@ -304,6 +307,7 @@ de:
field_content: Inhalt
field_group_by: Gruppiere Ergebnisse nach
field_sharing: Gemeinsame Verwendung
field_parent_issue: Übergeordnete Aufgabe
setting_app_title: Applikations-Titel
setting_app_subtitle: Applikations-Untertitel
@ -413,6 +417,7 @@ de:
permission_delete_messages: Forenbeiträge löschen
permission_delete_own_messages: Eigene Forenbeiträge löschen
permission_export_wiki_pages: Wiki-Seiten exportieren
permission_manage_subtasks: Unteraufgaben verwalten
project_module_issue_tracking: Ticket-Verfolgung
project_module_time_tracking: Zeiterfassung
@ -422,7 +427,7 @@ de:
project_module_wiki: Wiki
project_module_repository: Projektarchiv
project_module_boards: Foren
label_user: Benutzer
label_user_plural: Benutzer
label_user_new: Neuer Benutzer
@ -479,6 +484,7 @@ de:
label_my_page: Meine Seite
label_my_account: Mein Konto
label_my_projects: Meine Projekte
label_my_page_block: My page block
label_administration: Administration
label_login: Anmelden
label_logout: Abmelden
@ -542,9 +548,18 @@ de:
label_open_issues_plural: offen
label_closed_issues: geschlossen
label_closed_issues_plural: geschlossen
label_x_open_issues_abbr_on_total: "{{count}} offen / {{total}}"
label_x_open_issues_abbr: "{{count}} offen"
label_x_closed_issues_abbr: "{{count}} geschlossen"
label_x_open_issues_abbr_on_total:
zero: 0 offen / {{total}}
one: 1 offen / {{total}}
other: "{{count}} offen / {{total}}"
label_x_open_issues_abbr:
zero: 0 offen
one: 1 offen
other: "{{count}} offen"
label_x_closed_issues_abbr:
zero: 0 geschlossen
one: 1 geschlossen
other: "{{count}} geschlossen"
label_total: Gesamtzahl
label_permissions: Berechtigungen
label_current_status: Gegenwärtiger Status
@ -768,7 +783,10 @@ de:
label_api_access_key: API-Zugriffsschlüssel
label_missing_api_access_key: Der API-Zugriffsschlüssel fehlt.
label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor {{value}} erstellt
label_profile: Profil
label_subtask_plural: Unteraufgaben
label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts.
button_login: Anmelden
button_submit: OK
button_save: Speichern
@ -816,13 +834,13 @@ de:
status_active: aktiv
status_registered: angemeldet
status_locked: gesperrt
version_status_closed: abgeschlossen
version_status_locked: gesperrt
version_status_open: offen
version_status_locked: gesperrt
version_status_closed: abgeschlossen
field_active: Aktiv
field_active: Activ
text_select_mail_notifications: Bitte wählen Sie die Aktionen aus, für die eine Mailbenachrichtigung gesendet werden soll.
text_regexp_info: z. B. ^[A-Z0-9]+$
text_min_max_length_info: 0 heißt keine Beschränkung
@ -877,10 +895,10 @@ de:
text_wiki_page_nullify_children: Verschiebe die Unterseiten auf die oberste Ebene
text_wiki_page_destroy_children: Lösche alle Unterseiten
text_wiki_page_reassign_children: Ordne die Unterseiten dieser Seite zu
text_own_membership_delete_confirmation: |-
Sie sind dabei, einige oder alle Ihre Berechtigungen zu entfernen. Es ist möglich, dass Sie danach das Projekt nicht mehr ansehen oder bearbeiten dürfen.
Sind Sie sicher, dass Sie dies tun möchten?
text_own_membership_delete_confirmation: "Sie sind dabei, einige oder alle Ihre Berechtigungen zu entfernen. Es ist möglich, dass Sie danach das Projekt nicht mehr ansehen oder bearbeiten dürfen.\nSind Sie sicher, dass Sie dies tun möchten?"
text_zoom_in: Zoom in
text_zoom_out: Zoom out
default_role_manager: Manager
default_role_developer: Entwickler
default_role_reporter: Reporter
@ -902,21 +920,9 @@ de:
default_priority_immediate: Sofort
default_activity_design: Design
default_activity_development: Entwicklung
enumeration_issue_priorities: Ticket-Prioritäten
enumeration_doc_categories: Dokumentenkategorien
enumeration_activities: Aktivitäten (Zeiterfassung)
enumeration_system_activity: System-Aktivität
label_profile: Profil
permission_manage_subtasks: Unteraufgaben verwalten
field_parent_issue: Übergeordnete Aufgabe
label_subtask_plural: Unteraufgaben
label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts.
error_can_not_delete_custom_field: Kann das benutzerdefinierte Feld nicht löschen.
error_unable_to_connect: Fehler beim Verbinden ({{value}})
error_can_not_remove_role: Diese Rolle wird verwendet und kann nicht gelöscht werden.
error_can_not_delete_tracker: Dieser Tracker enthält Tickets und kann nicht gelöscht werden.
field_principal: Principal
label_my_page_block: My page block
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in

File diff suppressed because it is too large Load Diff

View File

@ -914,20 +914,20 @@
permission_export_wiki_pages: Wiki oldalak exportálása
permission_manage_project_activities: Projekt tevékenységek kezelése
label_board_locked: Zárolt
error_can_not_delete_custom_field: Unable to delete custom field
permission_manage_subtasks: Manage subtasks
label_profile: Profile
error_unable_to_connect: Unable to connect ({{value}})
error_can_not_remove_role: This role is in use and can not be deleted.
field_parent_issue: Parent task
error_unable_delete_issue_status: Unable to delete issue status
label_subtask_plural: Subtasks
error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
label_project_copy_notifications: Send email notifications during the project copy
field_principal: Principal
label_my_page_block: My page block
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
notice_unable_delete_time_entry: Unable to delete time log entry.
label_overall_spent_time: Overall spent time
error_can_not_delete_custom_field: Nem lehet törölni az egyéni mezőt
permission_manage_subtasks: Alfeladatok kezelése
label_profile: Profil
error_unable_to_connect: Nem lehet csatlakozni ({{value}})
error_can_not_remove_role: Ez a szerepkör használatban van és ezért nem törölhető-
field_parent_issue: Szülő feladat
error_unable_delete_issue_status: Nem lehet törölni a feladat állapotát
label_subtask_plural: Alfeladatok
error_can_not_delete_tracker: Ebbe a kategóriába feladatok tartoznak és ezért nem törölhető.
label_project_copy_notifications: Küldjön e-mail értesítéseket projektmásolás közben.
field_principal: Felelős
label_my_page_block: Saját kezdőlap-blokk
notice_failed_to_save_members: "Nem sikerült menteni a tago(ka)t: {{errors}}."
text_zoom_out: Kicsinyít
text_zoom_in: Nagyít
notice_unable_delete_time_entry: Az időrögzítés nem törölhető
label_overall_spent_time: Összes rászánt idő

View File

@ -498,9 +498,9 @@ zh:
label_date: 日期
label_integer: 整数
label_float: 浮点数
label_boolean: 布尔
label_string:
label_text: 长段文字
label_boolean: 布尔
label_string: 符串
label_text: 文本
label_attribute: 属性
label_attribute_plural: 属性
label_download: "{{count}} 次下载"
@ -919,7 +919,7 @@ zh:
error_unable_to_connect: 不能连接到 ({{value}})
error_can_not_remove_role: 该角色正在使用中, 不能删除.
error_can_not_delete_tracker: 该跟踪标签包含问题, 不能删除.
field_principal: Principal
field_principal: 用户/用户组
label_my_page_block: 我的工作台模块
notice_failed_to_save_members: "成员保存失败:{{errors}}。"
text_zoom_out: 缩小

View File

@ -903,6 +903,10 @@ td.username img.gravatar {
clear: left;
}
.journal-link {
float: right;
}
h2 img { vertical-align:middle; }
.hascontextmenu { cursor: context-menu; }

View File

@ -0,0 +1,50 @@
@import url(../../alternate/stylesheets/application.css);
body, #wrapper { direction: rtl;}
#quick-search { float: left; }
#main-menu { margin-left: -500px; left: auto; right: 6px; margin-right: 0px;}
#main-menu li { float: right; }
#top-menu ul { float: right; }
#account { float: left; }
#top-menu #loggedas { float: left; }
#top-menu li { float: right; }
.tabular label.floating
{
margin-right: 0;
margin-left: auto;
text-align: right;
}
.tabular label
{
float: right;
margin-left: auto;
}
.tabular p { clear: right; }
.tabular label.block { text-align: right; }
.icon { background-position: 100% 40%; padding-right: 20px; padding-left: 0px; }
div#activity dt, #search-results dt { background-position: 100% 50%; padding-right: 20px; padding-left: 0px; }
#content .tabs ul li { float: right; }
#content .tabs ul { padding-left: auto; padding-right: 1em; }
table.progress { float: right; }
.contextual { float: left; }
.icon22 { background-position: 100% 40%; padding-right: 26px; padding-left: auto; }
h3, .wiki h2 { padding: 10px 2px 1px 0; }
.tooltip span.tip { text-align: right; }
tr.issue td.subject { text-align: right; }
tr.time-entry td.subject, tr.time-entry td.comments { text-align: right; }
#sidebar { float: left; }
#main.nosidebar #content { border-width: 1px; border-style: solid; border-color: #D7D7D7 #BBBBBB #BBBBBB #D7D7D7;}
.tabular.settings label { margin-left: auto; }
.splitcontentleft { float: right; }
.splitcontentright { float: left; }
p.progress-info { clear: right; }
table.list td.buttons a { padding-right: 20px; }
.filecontent { direction: ltr; }
.entries { direction: ltr; }
.changeset-changes { direction: ltr; padding-left: 2em }
.changesets { direction: ltr; }
div#issue-changesets { float: left; margin-right: 1em; margin-left: 0 }
#activity dt, .journal { clear: right; }
.journal-link { float: left; }

View File

@ -0,0 +1,6 @@
@import url(../../../stylesheets/context_menu.css);
#context-menu li.folder ul { left:auto; right:168px; }
#context-menu li.folder>ul { left:auto; right:148px; }
#context-menu li a.submenu { background:url("../../../images/bullet_arrow_left.png") left no-repeat; }

View File

@ -153,4 +153,65 @@ class AccountControllerTest < ActionController::TestCase
assert_redirected_to ''
assert_nil @request.session[:user_id]
end
context "GET #register" do
context "with self registration on" do
setup do
Setting.self_registration = '3'
get :register
end
should_respond_with :success
should_render_template :register
should_assign_to :user
end
context "with self registration off" do
setup do
Setting.self_registration = '0'
get :register
end
should_redirect_to('/') { home_url }
end
end
# See integration/account_test.rb for the full test
context "POST #register" do
context "with self registration on automatic" do
setup do
Setting.self_registration = '3'
post :register, :user => {
:login => 'register',
:password => 'test',
:password_confirmation => 'test',
:firstname => 'John',
:lastname => 'Doe',
:mail => 'register@example.com'
}
end
should_respond_with :redirect
should_assign_to :user
should_redirect_to('my page') { {:controller => 'my', :action => 'account'} }
should_create_a_new_user { User.last(:conditions => {:login => 'register'}) }
should 'set the user status to active' do
user = User.last(:conditions => {:login => 'register'})
assert user
assert_equal User::STATUS_ACTIVE, user.status
end
end
context "with self registration off" do
setup do
Setting.self_registration = '0'
post :register
end
should_redirect_to('/') { home_url }
end
end
end

View File

@ -162,4 +162,13 @@ class ActiveSupport::TestCase
end
end
end
def self.should_create_a_new_user(&block)
should "create a new user" do
user = instance_eval &block
assert user
assert_kind_of User, user
assert !user.new_record?
end
end
end