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:
commit
623c60d2b2
@ -783,6 +783,10 @@ module ApplicationHelper
|
||||
end
|
||||
end
|
||||
|
||||
def favicon
|
||||
"<link rel='shortcut icon' href='#{image_path('/favicon.ico')}' />"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def wiki_helper
|
||||
|
||||
@ -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 %>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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 %>
|
||||
|
||||
@ -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
@ -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ő
|
||||
|
||||
@ -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: 缩小
|
||||
|
||||
@ -903,6 +903,10 @@ td.username img.gravatar {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
.journal-link {
|
||||
float: right;
|
||||
}
|
||||
|
||||
h2 img { vertical-align:middle; }
|
||||
|
||||
.hascontextmenu { cursor: context-menu; }
|
||||
|
||||
50
public/themes/rtl/stylesheets/application.css
Normal file
50
public/themes/rtl/stylesheets/application.css
Normal 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; }
|
||||
6
public/themes/rtl/stylesheets/context_menu.css
Normal file
6
public/themes/rtl/stylesheets/context_menu.css
Normal 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; }
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user