Feature #30492 » 30492-v2.diff
Gemfile (作業コピー) | ||
---|---|---|
29 | 29 |
gem "rack-openid" |
30 | 30 |
end |
31 | 31 | |
32 |
# Optional gem for exporting the gantt to a PNG file, not supported with jruby
|
|
33 |
group :rmagick do
|
|
34 |
gem "rmagick", "~> 2.16.0"
|
|
32 |
# Optional gem for exporting the gantt to a PNG file |
|
33 |
group :minimagick do
|
|
34 |
gem "mini_magick", "~> 4.9.5"
|
|
35 | 35 |
end |
36 | 36 | |
37 | 37 |
# Optional Markdown support, not for JRuby |
app/controllers/admin_controller.rb (作業コピー) | ||
---|---|---|
76 | 76 |
[:text_default_administrator_account_changed, User.default_admin_account_changed?], |
77 | 77 |
[:text_file_repository_writable, File.writable?(Attachment.storage_path)], |
78 | 78 |
["#{l :text_plugin_assets_writable} (./public/plugin_assets)", File.writable?(Redmine::Plugin.public_directory)], |
79 |
[:text_rmagick_available, Object.const_defined?(:Magick)],
|
|
79 |
[:text_minimagick_available, Object.const_defined?(:MiniMagick)],
|
|
80 | 80 |
[:text_convert_available, Redmine::Thumbnail.convert_available?], |
81 | 81 |
[:text_gs_available, Redmine::Thumbnail.gs_available?] |
82 | 82 |
] |
appveyor.yml (作業コピー) | ||
---|---|---|
13 | 13 |
build: off |
14 | 14 | |
15 | 15 |
test_script: |
16 |
- bundle install --without rmagick
|
|
16 |
- bundle install --without minimagick
|
|
17 | 17 |
- set SCMS=mercurial |
18 | 18 |
- set RUN_ON_NOT_OFFICIAL= |
19 | 19 |
- set RUBY_VER=1.9 |
config/configuration.yml.example (作業コピー) | ||
---|---|---|
179 | 179 |
# the ImageMagick's `convert` binary. Used to generate attachment thumbnails. |
180 | 180 |
#imagemagick_convert_command: |
181 | 181 | |
182 |
# Configuration of RMagick font.
|
|
182 |
# Configuration of MiniMagick font.
|
|
183 | 183 |
# |
184 |
# Redmine uses RMagick in order to export gantt png.
|
|
185 |
# You don't need this setting if you don't install RMagick.
|
|
184 |
# Redmine uses MiniMagick in order to export gantt png.
|
|
185 |
# You don't need this setting if you don't install MiniMagick.
|
|
186 | 186 |
# |
187 | 187 |
# In CJK (Chinese, Japanese and Korean), |
188 | 188 |
# in order to show CJK characters correctly, |
... | ... | |
195 | 195 |
# |
196 | 196 |
# Examples for Japanese: |
197 | 197 |
# Windows: |
198 |
# rmagick_font_path: C:\windows\fonts\msgothic.ttc
|
|
198 |
# minimagick_font_path: C:\windows\fonts\msgothic.ttc
|
|
199 | 199 |
# Linux: |
200 |
# rmagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
|
|
200 |
# minimagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
|
|
201 | 201 |
# |
202 |
rmagick_font_path:
|
|
202 |
minimagick_font_path:
|
|
203 | 203 | |
204 | 204 |
# Maximum number of simultaneous AJAX uploads |
205 | 205 |
#max_concurrent_ajax_uploads: 2 |
config/locales/ar.yml (作業コピー) | ||
---|---|---|
977 | 977 |
description_all_columns: كل الاعمدة |
978 | 978 |
description_issue_category_reassign: اختر التصنيف |
979 | 979 |
description_wiki_subpages_reassign: اختر صفحة جديدة |
980 |
text_rmagick_available: RMagick available (optional)
|
|
980 |
text_minimagick_available: MiniMagick available (optional)
|
|
981 | 981 |
text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do? |
982 | 982 |
text_repository_usernames_mapping: |- |
983 | 983 |
Select or update the Redmine user mapped to each username found in the repository log. |
config/locales/az.yml (作業コピー) | ||
---|---|---|
897 | 897 |
text_reassign_time_entries: 'Qeydiyyata alınmış vaxtı aşağıdakı tapşırığa keçir:' |
898 | 898 |
text_regexp_info: "məsələn: ^[A-Z0-9]+$" |
899 | 899 |
text_repository_usernames_mapping: "Saxlayıcının jurnalında tapılan adlarla bağlı olan Redmine istifadəçisini seçin və ya yeniləyin.\nEyni ad və e-poçta sahib olan istifadəçilər Redmine və saxlayıcıda avtomatik əlaqələndirilir." |
900 |
text_rmagick_available: RMagick istifadəsi mümkündür (opsional olaraq)
|
|
900 |
text_minimagick_available: MiniMagick istifadəsi mümkündür (opsional olaraq)
|
|
901 | 901 |
text_select_mail_notifications: Elektron poçta bildirişlərin göndərilməsi seçim edəcəyiniz hərəkətlərdən asılıdır. |
902 | 902 |
text_select_project_modules: 'Layihədə istifadə olunacaq modulları seçin:' |
903 | 903 |
text_status_changed_by_changeset: "%{value} redaksiyada reallaşdırılıb." |
config/locales/bg.yml (作業コピー) | ||
---|---|---|
1180 | 1180 |
text_default_administrator_account_changed: Сменен фабричния администраторски профил |
1181 | 1181 |
text_file_repository_writable: Възможност за писане в хранилището с файлове |
1182 | 1182 |
text_plugin_assets_writable: Папката на приставките е разрешена за запис |
1183 |
text_rmagick_available: Наличен RMagick (по избор)
|
|
1183 |
text_minimagick_available: Наличен MiniMagick (по избор)
|
|
1184 | 1184 |
text_convert_available: Наличен ImageMagick convert (по избор) |
1185 | 1185 |
text_gs_available: Налична поддръжка за ImageMagick PDF (по избор) |
1186 | 1186 |
text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?" |
config/locales/bs.yml (作業コピー) | ||
---|---|---|
762 | 762 |
text_default_administrator_account_changed: Tekući administratorski račun je promjenjen |
763 | 763 |
text_file_repository_writable: U direktorij sa fajlovima koji su prilozi se može pisati |
764 | 764 |
text_plugin_assets_writable: U direktorij plugin-ova se može pisati |
765 |
text_rmagick_available: RMagick je dostupan (opciono)
|
|
765 |
text_minimagick_available: MiniMagick je dostupan (opciono)
|
|
766 | 766 |
text_destroy_time_entries_question: "%{hours} sahata je prijavljeno na aktivnostima koje želite brisati. Želite li to učiniti ?" |
767 | 767 |
text_destroy_time_entries: Izbriši prijavljeno vrijeme |
768 | 768 |
text_assign_time_entries_to_project: Dodaj prijavljenoo vrijeme projektu |
config/locales/ca.yml (作業コピー) | ||
---|---|---|
855 | 855 |
text_default_administrator_account_changed: "S'ha canviat el compte d'administrador predeterminat" |
856 | 856 |
text_file_repository_writable: "Es pot escriure en el repositori de fitxers" |
857 | 857 |
text_plugin_assets_writable: "Es pot escriure als complements actius" |
858 |
text_rmagick_available: "RMagick disponible (opcional)"
|
|
858 |
text_minimagick_available: "MiniMagick disponible (opcional)"
|
|
859 | 859 |
text_destroy_time_entries_question: "S'han informat %{hours} hores en els assumptes que aneu a suprimir. Què voleu fer?" |
860 | 860 |
text_destroy_time_entries: "Suprimir les hores informades" |
861 | 861 |
text_assign_time_entries_to_project: "Assignar les hores informades al projecte" |
config/locales/cs.yml (作業コピー) | ||
---|---|---|
872 | 872 |
text_default_administrator_account_changed: Výchozí nastavení administrátorského účtu změněno |
873 | 873 |
text_file_repository_writable: Povolen zápis do adresáře ukládání souborů |
874 | 874 |
text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets |
875 |
text_rmagick_available: RMagick k dispozici (volitelné)
|
|
875 |
text_minimagick_available: MiniMagick k dispozici (volitelné)
|
|
876 | 876 |
text_destroy_time_entries_question: "U úkolů, které chcete odstranit, je evidováno %{hours} práce. Co chete udělat?" |
877 | 877 |
text_destroy_time_entries: Odstranit zaznamenané hodiny. |
878 | 878 |
text_assign_time_entries_to_project: Přiřadit zaznamenané hodiny projektu |
config/locales/da.yml (作業コピー) | ||
---|---|---|
673 | 673 |
text_select_project_modules: 'Vælg moduler er skal være aktiveret for dette projekt:' |
674 | 674 |
text_default_administrator_account_changed: Standardadministratorkonto ændret |
675 | 675 |
text_file_repository_writable: Filarkiv er skrivbar |
676 |
text_rmagick_available: RMagick tilgængelig (valgfri)
|
|
676 |
text_minimagick_available: MiniMagick tilgængelig (valgfri)
|
|
677 | 677 | |
678 | 678 |
default_role_manager: Leder |
679 | 679 |
default_role_developer: Udvikler |
config/locales/de.yml (作業コピー) | ||
---|---|---|
1109 | 1109 |
text_regexp_info: z. B. ^[A-Z0-9]+$ |
1110 | 1110 |
text_repository_identifier_info: 'Kleinbuchstaben (a-z), Ziffern, Binde- und Unterstriche erlaubt.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.' |
1111 | 1111 |
text_repository_usernames_mapping: "Bitte legen Sie die Zuordnung der Redmine-Benutzer zu den Benutzernamen der Commit-Nachrichten des Repositories fest.\nBenutzer mit identischen Redmine- und Repository-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet." |
1112 |
text_rmagick_available: RMagick verfügbar (optional)
|
|
1112 |
text_minimagick_available: MiniMagick verfügbar (optional)
|
|
1113 | 1113 |
text_scm_command: Kommando |
1114 | 1114 |
text_scm_command_not_available: SCM-Kommando ist nicht verfügbar. Bitte prüfen Sie die Einstellungen im Administrationspanel. |
1115 | 1115 |
text_scm_command_version: Version |
config/locales/el.yml (作業コピー) | ||
---|---|---|
774 | 774 |
text_default_administrator_account_changed: Ο προκαθορισμένος λογαριασμός του διαχειριστή άλλαξε |
775 | 775 |
text_file_repository_writable: Εγγράψιμος κατάλογος συνημμένων |
776 | 776 |
text_plugin_assets_writable: Εγγράψιμος κατάλογος plugin assets |
777 |
text_rmagick_available: Διαθέσιμο RMagick (προαιρετικό)
|
|
777 |
text_minimagick_available: Διαθέσιμο MiniMagick (προαιρετικό)
|
|
778 | 778 |
text_destroy_time_entries_question: "%{hours} δαπανήθηκαν σχετικά με τα θέματα που πρόκειται να διαγράψετε. Τι θέλετε να κάνετε ;" |
779 | 779 |
text_destroy_time_entries: Διαγραφή αναφερόμενων ωρών |
780 | 780 |
text_assign_time_entries_to_project: Ανάθεση αναφερόμενων ωρών στο έργο |
config/locales/en-GB.yml (作業コピー) | ||
---|---|---|
886 | 886 |
text_default_administrator_account_changed: Default administrator account changed |
887 | 887 |
text_file_repository_writable: Attachments directory writable |
888 | 888 |
text_plugin_assets_writable: Plugin assets directory writable |
889 |
text_rmagick_available: RMagick available (optional)
|
|
889 |
text_minimagick_available: MiniMagick available (optional)
|
|
890 | 890 |
text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?" |
891 | 891 |
text_destroy_time_entries: Delete reported hours |
892 | 892 |
text_assign_time_entries_to_project: Assign reported hours to the project |
config/locales/en.yml (作業コピー) | ||
---|---|---|
1178 | 1178 |
text_default_administrator_account_changed: Default administrator account changed |
1179 | 1179 |
text_file_repository_writable: Attachments directory writable |
1180 | 1180 |
text_plugin_assets_writable: Plugin assets directory writable |
1181 |
text_rmagick_available: RMagick available (optional)
|
|
1181 |
text_minimagick_available: MiniMagick available (optional)
|
|
1182 | 1182 |
text_convert_available: ImageMagick convert available (optional) |
1183 | 1183 |
text_gs_available: ImageMagick PDF support available (optional) |
1184 | 1184 |
text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?" |
config/locales/es-PA.yml (作業コピー) | ||
---|---|---|
804 | 804 |
text_reassign_time_entries: 'Reasignar las horas a esta incidencia:' |
805 | 805 |
text_regexp_info: ej. ^[A-Z0-9]+$ |
806 | 806 |
text_repository_usernames_mapping: "Establezca la correspondencia entre los usuarios de Redmine y los presentes en el log del repositorio.\nLos usuarios con el mismo nombre o correo en Redmine y en el repositorio serán asociados automáticamente." |
807 |
text_rmagick_available: RMagick disponible (opcional)
|
|
807 |
text_minimagick_available: MiniMagick disponible (opcional)
|
|
808 | 808 |
text_select_mail_notifications: Seleccionar los eventos a notificar |
809 | 809 |
text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:' |
810 | 810 |
text_status_changed_by_changeset: "Aplicado en los cambios %{value}" |
config/locales/es.yml (作業コピー) | ||
---|---|---|
802 | 802 |
text_reassign_time_entries: 'Reasignar las horas a esta petición:' |
803 | 803 |
text_regexp_info: ej. ^[A-Z0-9]+$ |
804 | 804 |
text_repository_usernames_mapping: "Establezca la correspondencia entre los usuarios de Redmine y los presentes en el log del repositorio.\nLos usuarios con el mismo nombre o correo en Redmine y en el repositorio serán asociados automáticamente." |
805 |
text_rmagick_available: RMagick disponible (opcional)
|
|
805 |
text_minimagick_available: MiniMagick disponible (opcional)
|
|
806 | 806 |
text_select_mail_notifications: Seleccionar los eventos a notificar |
807 | 807 |
text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:' |
808 | 808 |
text_status_changed_by_changeset: "Aplicado en los cambios %{value}" |
config/locales/et.yml (作業コピー) | ||
---|---|---|
948 | 948 |
text_default_administrator_account_changed: "Algne administraatori konto on muudetud" |
949 | 949 |
text_file_repository_writable: "Manuste kataloog on kirjutatav" |
950 | 950 |
text_plugin_assets_writable: "Lisamoodulite abifailide kataloog on kirjutatav" |
951 |
text_rmagick_available: "RMagick on kasutatav (ei ole kohustuslik)"
|
|
951 |
text_minimagick_available: "MiniMagick on kasutatav (ei ole kohustuslik)"
|
|
952 | 952 |
text_destroy_time_entries_question: "Kustutatavatele teemadele oli kirja pandud %{hours} tundi. Mis Sa soovid ette võtta?" |
953 | 953 |
text_destroy_time_entries: "Kustuta need tunnid" |
954 | 954 |
text_assign_time_entries_to_project: "Vii tunnid üle teise projekti" |
config/locales/eu.yml (作業コピー) | ||
---|---|---|
832 | 832 |
text_default_administrator_account_changed: Lehenetsitako kudeatzaile kontua aldatuta |
833 | 833 |
text_file_repository_writable: Eranskinen direktorioan idatz daiteke |
834 | 834 |
text_plugin_assets_writable: Pluginen baliabideen direktorioan idatz daiteke |
835 |
text_rmagick_available: RMagick eskuragarri (aukerazkoa)
|
|
835 |
text_minimagick_available: MiniMagick eskuragarri (aukerazkoa)
|
|
836 | 836 |
text_destroy_time_entries_question: "%{hours} orduei buruz berri eman zen zuk ezabatzera zoazen zereginean. Zer egin nahi duzu?" |
837 | 837 |
text_destroy_time_entries: Ezabatu berri emandako orduak |
838 | 838 |
text_assign_time_entries_to_project: Berri emandako orduak proiektura esleitu |
config/locales/fa.yml (作業コピー) | ||
---|---|---|
1131 | 1131 |
text_default_administrator_account_changed: حساب راهبری پیشفرض تغییر کرده است |
1132 | 1132 |
text_file_repository_writable: پوشه پیوستها نوشتنی است |
1133 | 1133 |
text_plugin_assets_writable: پوشه داراییهای افزونهها نوشتنی است |
1134 |
text_rmagick_available: RMagick در دسترس است (اختیاری)
|
|
1134 |
text_minimagick_available: MiniMagick در دسترس است (اختیاری)
|
|
1135 | 1135 |
text_convert_available: ImageMagick convert در دسترس است (اختیاری) |
1136 | 1136 |
text_destroy_time_entries_question: "%{hours} ساعت روی مسألههایی که میخواهید حذف کنید کار گزارش شده است. میخواهید چه کنید؟" |
1137 | 1137 |
text_destroy_time_entries: ساعتهای گزارش شده حذف شوند |
config/locales/fi.yml (作業コピー) | ||
---|---|---|
693 | 693 |
project_module_time_tracking: Ajan seuranta |
694 | 694 |
text_file_repository_writable: Kirjoitettava tiedostovarasto |
695 | 695 |
text_default_administrator_account_changed: Vakio hallinoijan tunnus muutettu |
696 |
text_rmagick_available: RMagick saatavilla (valinnainen)
|
|
696 |
text_minimagick_available: MiniMagick saatavilla (valinnainen)
|
|
697 | 697 |
button_configure: Asetukset |
698 | 698 |
label_plugins: Lisäosat |
699 | 699 |
label_ldap_authentication: LDAP tunnistautuminen |
config/locales/fr.yml (作業コピー) | ||
---|---|---|
1140 | 1140 |
text_default_administrator_account_changed: Compte administrateur par défaut changé |
1141 | 1141 |
text_file_repository_writable: Répertoire de stockage des fichiers accessible en écriture |
1142 | 1142 |
text_plugin_assets_writable: Répertoire public des plugins accessible en écriture |
1143 |
text_rmagick_available: Bibliothèque RMagick présente (optionnelle)
|
|
1143 |
text_minimagick_available: Bibliothèque MiniMagick présente (optionnelle)
|
|
1144 | 1144 |
text_convert_available: Binaire convert de ImageMagick présent (optionel) |
1145 | 1145 |
text_destroy_time_entries_question: "%{hours} heures ont été enregistrées sur les demandes à supprimer. Que voulez-vous faire ?" |
1146 | 1146 |
text_destroy_time_entries: Supprimer les heures |
config/locales/gl.yml (作業コピー) | ||
---|---|---|
777 | 777 |
text_reassign_time_entries: 'Reasignar as horas a esta petición:' |
778 | 778 |
text_regexp_info: ex. ^[A-Z0-9]+$ |
779 | 779 |
text_repository_usernames_mapping: "Estableza a correspondencia entre os usuarios de Redmine e os presentes no historial do repositorio.\nOs usuarios co mesmo nome ou correo en Redmine e no repositorio serán asociados automaticamente." |
780 |
text_rmagick_available: RMagick dispoñíbel (opcional)
|
|
780 |
text_minimagick_available: MiniMagick dispoñíbel (opcional)
|
|
781 | 781 |
text_select_mail_notifications: Seleccionar os eventos a notificar |
782 | 782 |
text_select_project_modules: 'Seleccione os módulos a activar para este proxecto:' |
783 | 783 |
text_status_changed_by_changeset: "Aplicado nos cambios %{value}" |
config/locales/he.yml (作業コピー) | ||
---|---|---|
861 | 861 |
text_default_administrator_account_changed: מנהל המערכת ברירת המחדל שונה |
862 | 862 |
text_file_repository_writable: מאגר הקבצים ניתן לכתיבה |
863 | 863 |
text_plugin_assets_writable: ספרית נכסי תוספים ניתנת לכתיבה |
864 |
text_rmagick_available: RMagick זמין (רשות)
|
|
864 |
text_minimagick_available: MiniMagick זמין (רשות)
|
|
865 | 865 |
text_destroy_time_entries_question: "%{hours} שעות דווחו על הנושאים שאתה עומד למחוק. מה ברצונך לעשות?" |
866 | 866 |
text_destroy_time_entries: מחק שעות שדווחו |
867 | 867 |
text_assign_time_entries_to_project: הצב שעות שדווחו לפרויקט הזה |
config/locales/hr.yml (作業コピー) | ||
---|---|---|
823 | 823 |
text_default_administrator_account_changed: Default administrator account changed |
824 | 824 |
text_file_repository_writable: Dozvoljeno pisanje u direktorij za privitke |
825 | 825 |
text_plugin_assets_writable: Plugin assets directory writable |
826 |
text_rmagick_available: RMagick dostupan (nije obavezno)
|
|
826 |
text_minimagick_available: MiniMagick dostupan (nije obavezno)
|
|
827 | 827 |
text_destroy_time_entries_question: "%{hours} sati je prijavljeno za predmete koje želite obrisati. Što ćete učiniti?" |
828 | 828 |
text_destroy_time_entries: Obriši prijavljene sate |
829 | 829 |
text_assign_time_entries_to_project: Pridruži prijavljene sate projektu |
config/locales/hu.yml (作業コピー) | ||
---|---|---|
693 | 693 |
text_select_project_modules: 'Válassza ki az engedélyezett modulokat ehhez a projekthez:' |
694 | 694 |
text_default_administrator_account_changed: Alapértelmezett adminisztrátor fiók megváltoztatva |
695 | 695 |
text_file_repository_writable: Fájl tároló írható |
696 |
text_rmagick_available: RMagick elérhető (nem kötelező)
|
|
696 |
text_minimagick_available: MiniMagick elérhető (nem kötelező)
|
|
697 | 697 |
text_destroy_time_entries_question: "%{hours} órányi munka van rögzítve a feladatokon, amiket törölni szeretne. Mit szeretne tenni?" |
698 | 698 |
text_destroy_time_entries: A rögzített órák törlése |
699 | 699 |
text_assign_time_entries_to_project: A rögzített órák hozzárendelése a projekthez |
config/locales/id.yml (作業コピー) | ||
---|---|---|
803 | 803 |
text_default_administrator_account_changed: Akun administrator default sudah berubah |
804 | 804 |
text_file_repository_writable: Direktori yang bisa ditulisi untuk lampiran |
805 | 805 |
text_plugin_assets_writable: Direktori yang bisa ditulisi untuk plugin asset |
806 |
text_rmagick_available: RMagick tersedia (optional)
|
|
806 |
text_minimagick_available: MiniMagick tersedia (optional)
|
|
807 | 807 |
text_destroy_time_entries_question: "%{hours} jam sudah dilaporkan pada masalah yang akan anda hapus. Apa yang akan anda lakukan ?" |
808 | 808 |
text_destroy_time_entries: Hapus jam yang terlapor |
809 | 809 |
text_assign_time_entries_to_project: Tugaskan jam terlapor pada proyek |
config/locales/it.yml (作業コピー) | ||
---|---|---|
675 | 675 |
project_module_time_tracking: Time tracking |
676 | 676 |
text_file_repository_writable: Repository dei file scrivibile |
677 | 677 |
text_default_administrator_account_changed: L'account amministrativo predefinito è stato modificato |
678 |
text_rmagick_available: RMagick disponibile (opzionale)
|
|
678 |
text_minimagick_available: MiniMagick disponibile (opzionale)
|
|
679 | 679 |
button_configure: Configura |
680 | 680 |
label_plugins: Plugin |
681 | 681 |
label_ldap_authentication: Autenticazione LDAP |
config/locales/ja.yml (作業コピー) | ||
---|---|---|
916 | 916 |
text_default_administrator_account_changed: デフォルト管理アカウントが変更済 |
917 | 917 |
text_file_repository_writable: ファイルリポジトリに書き込み可能 |
918 | 918 |
text_plugin_assets_writable: Plugin assetsディレクトリに書き込み可能 |
919 |
text_rmagick_available: RMagickが利用可能 (オプション)
|
|
919 |
text_minimagick_available: MiniMagickが利用可能 (オプション)
|
|
920 | 920 |
text_destroy_time_entries_question: このチケットの%{hours}時間分の作業記録の扱いを選択してください。 |
921 | 921 |
text_destroy_time_entries: 記録された作業時間を含めて削除 |
922 | 922 |
text_assign_time_entries_to_project: 記録された作業時間をプロジェクト自体に割り当て |
config/locales/ko.yml (作業コピー) | ||
---|---|---|
814 | 814 |
text_default_administrator_account_changed: 기본 관리자 계정이 변경 |
815 | 815 |
text_file_repository_writable: 파일 저장소 쓰기 가능 |
816 | 816 |
text_plugin_assets_writable: 플러그인 전용 디렉토리가 쓰기 가능 |
817 |
text_rmagick_available: RMagick 사용 가능 (선택적)
|
|
817 |
text_minimagick_available: MiniMagick 사용 가능 (선택적)
|
|
818 | 818 |
text_destroy_time_entries_question: 삭제하려는 일감에 %{hours} 시간이 보고되어 있습니다. 어떻게 하시겠습니까? |
819 | 819 |
text_destroy_time_entries: 보고된 시간을 삭제하기 |
820 | 820 |
text_assign_time_entries_to_project: 보고된 시간을 프로젝트에 할당하기 |
config/locales/lt.yml (作業コピー) | ||
---|---|---|
1095 | 1095 |
text_default_administrator_account_changed: Administratoriaus numatytoji paskyra pakeista |
1096 | 1096 |
text_file_repository_writable: Į failų saugyklą saugoti galima (RW) |
1097 | 1097 |
text_plugin_assets_writable: Į įskiepių katalogą įrašyti galima |
1098 |
text_rmagick_available: RMagick pasiekiamas (pasirinktinai)
|
|
1098 |
text_minimagick_available: MiniMagick pasiekiamas (pasirinktinai)
|
|
1099 | 1099 |
text_convert_available: ImageMagick konvertavimas galimas (pasirinktinai) |
1100 | 1100 |
text_destroy_time_entries_question: "Naikinamam darbui priskirta %{hours} valandų. Ką norite su jomis daryti?" |
1101 | 1101 |
text_destroy_time_entries: Ištrinti įrašytas valandas |
config/locales/lv.yml (作業コピー) | ||
---|---|---|
829 | 829 |
text_default_administrator_account_changed: Noklusētais administratora konts mainīts |
830 | 830 |
text_file_repository_writable: Pielikumu direktorijā atļauts rakstīt |
831 | 831 |
text_plugin_assets_writable: Spraudņu kataloga direktorijā atļauts rakstīt |
832 |
text_rmagick_available: "RMagick pieejams (neobligāts)"
|
|
832 |
text_minimagick_available: "MiniMagick pieejams (neobligāts)"
|
|
833 | 833 |
text_destroy_time_entries_question: "%{hours} stundas tika ziņotas par uzdevumu, ko vēlaties dzēst. Ko darīt?" |
834 | 834 |
text_destroy_time_entries: Dzēst ziņotās stundas |
835 | 835 |
text_assign_time_entries_to_project: Piešķirt ziņotās stundas projektam |
config/locales/mk.yml (作業コピー) | ||
---|---|---|
851 | 851 |
text_default_administrator_account_changed: Default administrator account changed |
852 | 852 |
text_file_repository_writable: Во папката за прилози може да се запишува |
853 | 853 |
text_plugin_assets_writable: Во папката за додатоци може да се запишува |
854 |
text_rmagick_available: RMagick available (незадолжително)
|
|
854 |
text_minimagick_available: MiniMagick available (незадолжително)
|
|
855 | 855 |
text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?" |
856 | 856 |
text_destroy_time_entries: Delete reported hours |
857 | 857 |
text_assign_time_entries_to_project: Додели ги пријавените часови на проектот |
config/locales/mn.yml (作業コピー) | ||
---|---|---|
835 | 835 |
text_default_administrator_account_changed: Стандарт администраторын бүртгэл өөрчлөгдлөө |
836 | 836 |
text_file_repository_writable: Хавсралт файл хадгалах хавтас руу бичих эрхтэй |
837 | 837 |
text_plugin_assets_writable: Плагин модулийн ассет хавтас руу бичих эрхтэй |
838 |
text_rmagick_available: RMagick суулгагдсан (заавал биш)
|
|
838 |
text_minimagick_available: MiniMagick суулгагдсан (заавал биш)
|
|
839 | 839 |
text_destroy_time_entries_question: "Таны устгах гэж байгаа асуудлууд дээр нийт %{hours} цаг зарцуулсан юм байна, та яах вэ ?" |
840 | 840 |
text_destroy_time_entries: Мэдэгдсэн цагуудыг устгах |
841 | 841 |
text_assign_time_entries_to_project: Мэдэгдсэн асуудлуудыг төсөлд оноох |
config/locales/nl.yml (作業コピー) | ||
---|---|---|
747 | 747 |
text_reassign_time_entries: 'Gerapporteerde uren opnieuw toewijzen:' |
748 | 748 |
text_regexp_info: bv. ^[A-Z0-9]+$ |
749 | 749 |
text_repository_usernames_mapping: "Koppel de Redmine-gebruikers aan gebruikers in de repository log.\nGebruikers met dezelfde Redmine en repository gebruikersnaam of e-mail worden automatisch gekoppeld." |
750 |
text_rmagick_available: RMagick beschikbaar (optioneel)
|
|
750 |
text_minimagick_available: MiniMagick beschikbaar (optioneel)
|
|
751 | 751 |
text_select_mail_notifications: Selecteer acties waarvoor mededelingen via e-mail moeten worden verstuurd. |
752 | 752 |
text_select_project_modules: 'Selecteer de modules die u wilt gebruiken voor dit project:' |
753 | 753 |
text_status_changed_by_changeset: "Toegepast in changeset %{value}." |
config/locales/no.yml (作業コピー) | ||
---|---|---|
665 | 665 |
text_select_project_modules: 'Velg moduler du vil aktivere for dette prosjektet:' |
666 | 666 |
text_default_administrator_account_changed: Standard administrator-konto er endret |
667 | 667 |
text_file_repository_writable: Fil-arkivet er skrivbart |
668 |
text_rmagick_available: RMagick er tilgjengelig (valgfritt)
|
|
668 |
text_minimagick_available: MiniMagick er tilgjengelig (valgfritt)
|
|
669 | 669 |
text_destroy_time_entries_question: "%{hours} timer er ført på sakene du er i ferd med å slette. Hva vil du gjøre ?" |
670 | 670 |
text_destroy_time_entries: Slett førte timer |
671 | 671 |
text_assign_time_entries_to_project: Overfør førte timer til prosjektet |
config/locales/pl.yml (作業コピー) | ||
---|---|---|
775 | 775 |
text_reassign_time_entries: 'Przepnij przepracowany czas do tego zagadnienia:' |
776 | 776 |
text_regexp_info: np. ^[A-Z0-9]+$ |
777 | 777 |
text_repository_usernames_mapping: "Wybierz lub uaktualnij przyporządkowanie użytkowników Redmine do użytkowników repozytorium.\nUżytkownicy z taką samą nazwą lub adresem e-mail są przyporządkowani automatycznie." |
778 |
text_rmagick_available: RMagick dostępne (opcjonalnie)
|
|
778 |
text_minimagick_available: MiniMagick dostępne (opcjonalnie)
|
|
779 | 779 |
text_select_mail_notifications: Zaznacz czynności przy których użytkownik powinien być powiadomiony e-mailem. |
780 | 780 |
text_select_project_modules: 'Wybierz moduły do aktywacji w tym projekcie:' |
781 | 781 |
text_status_changed_by_changeset: "Zastosowane w zmianach %{value}." |
config/locales/pt-BR.yml (作業コピー) | ||
---|---|---|
709 | 709 |
text_select_project_modules: 'Selecione módulos para habilitar para este projeto:' |
710 | 710 |
text_default_administrator_account_changed: Conta padrão do administrador alterada |
711 | 711 |
text_file_repository_writable: Repositório com permissão de escrita |
712 |
text_rmagick_available: RMagick disponível (opcional)
|
|
712 |
text_minimagick_available: MiniMagick disponível (opcional)
|
|
713 | 713 |
text_destroy_time_entries_question: "%{hours} horas de trabalho foram registradas nas tarefas que você está excluindo. O que você deseja fazer?" |
714 | 714 |
text_destroy_time_entries: Excluir horas de trabalho |
715 | 715 |
text_assign_time_entries_to_project: Atribuir estas horas de trabalho para outro projeto |
config/locales/pt.yml (作業コピー) | ||
---|---|---|
694 | 694 |
text_select_project_modules: 'Selecione os módulos a ativar para este projeto:' |
695 | 695 |
text_default_administrator_account_changed: Conta por omissão de administrador alterada. |
696 | 696 |
text_file_repository_writable: Repositório de ficheiros com permissões de escrita |
697 |
text_rmagick_available: RMagick disponível (opcional)
|
|
697 |
text_minimagick_available: MiniMagick disponível (opcional)
|
|
698 | 698 |
text_destroy_time_entries_question: "%{hours} horas de trabalho foram atribuídas a estas tarefas que vai apagar. O que deseja fazer?" |
699 | 699 |
text_destroy_time_entries: Apagar as horas |
700 | 700 |
text_assign_time_entries_to_project: Atribuir as horas ao projeto |
config/locales/ro.yml (作業コピー) | ||
---|---|---|
752 | 752 |
text_default_administrator_account_changed: S-a schimbat contul administratorului implicit |
753 | 753 |
text_file_repository_writable: Se poate scrie în directorul de atașamente |
754 | 754 |
text_plugin_assets_writable: Se poate scrie în directorul de plugin-uri |
755 |
text_rmagick_available: Este disponibil RMagick (opțional)
|
|
755 |
text_minimagick_available: Este disponibil MiniMagick (opțional)
|
|
756 | 756 |
text_destroy_time_entries_question: "%{hours} ore sunt înregistrate la tichetele pe care doriți să le ștergeți. Ce doriți sa faceți?" |
757 | 757 |
text_destroy_time_entries: Șterge orele înregistrate |
758 | 758 |
text_assign_time_entries_to_project: Atribuie orele la proiect |
config/locales/ru.yml (作業コピー) | ||
---|---|---|
907 | 907 |
text_reassign_time_entries: 'Перенести зарегистрированное время на следующую задачу:' |
908 | 908 |
text_regexp_info: "например: ^[A-Z0-9]+$" |
909 | 909 |
text_repository_usernames_mapping: "Выберите или обновите пользователя Redmine, связанного с найденными именами в журнале хранилища.\nПользователи с одинаковыми именами или email в Redmine и хранилище связываются автоматически." |
910 |
text_rmagick_available: Доступно использование RMagick (опционально)
|
|
910 |
text_minimagick_available: Доступно использование MiniMagick (опционально)
|
|
911 | 911 |
text_select_mail_notifications: Выберите действия, при которых будет отсылаться уведомление на электронную почту. |
912 | 912 |
text_select_project_modules: 'Выберите модули, которые будут использованы в проекте:' |
913 | 913 |
text_status_changed_by_changeset: "Реализовано в %{value} редакции." |
config/locales/sk.yml (作業コピー) | ||
---|---|---|
667 | 667 |
text_select_project_modules: 'Vybrať moduly povolené v tomto projekte:' |
668 | 668 |
text_default_administrator_account_changed: Predvolené nastavenie administrátorského účtu bolo zmenené |
669 | 669 |
text_file_repository_writable: Povolený zápis do priečinka s prílohami |
670 |
text_rmagick_available: RMagick k dispozícii (voliteľné)
|
|
670 |
text_minimagick_available: MiniMagick k dispozícii (voliteľné)
|
|
671 | 671 |
text_destroy_time_entries_question: Pri úlohách, ktoré chcete odstrániť, je zaznamenaných %{hours} hodín práce. Čo si želáte urobiť? |
672 | 672 |
text_destroy_time_entries: Odstrániť zaznamenané hodiny |
673 | 673 |
text_assign_time_entries_to_project: Priradiť zaznamenané hodiny k projektu |
config/locales/sl.yml (作業コピー) | ||
---|---|---|
738 | 738 |
text_select_project_modules: 'Izberite module, ki jih želite omogočiti za ta projekt:' |
739 | 739 |
text_default_administrator_account_changed: Spremenjen privzeti administratorski račun |
740 | 740 |
text_file_repository_writable: Omogočeno pisanje v shrambo datotek |
741 |
text_rmagick_available: RMagick je na voljo(neobvezno)
|
|
741 |
text_minimagick_available: MiniMagick je na voljo(neobvezno)
|
|
742 | 742 |
text_destroy_time_entries_question: "%{hours} ur je bilo opravljenih na zahtevku, ki ga želite izbrisati. Kaj želite storiti?" |
743 | 743 |
text_destroy_time_entries: Izbriši opravljene ure |
744 | 744 |
text_assign_time_entries_to_project: Predaj opravljene ure projektu |
config/locales/sq.yml (作業コピー) | ||
---|---|---|
929 | 929 |
text_default_administrator_account_changed: Default administrator account changed |
930 | 930 |
text_file_repository_writable: Attachments directory writable |
931 | 931 |
text_plugin_assets_writable: Plugin assets directory writable |
932 |
text_rmagick_available: RMagick available (optional)
|
|
932 |
text_minimagick_available: MiniMagick available (optional)
|
|
933 | 933 |
text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?" |
934 | 934 |
text_destroy_time_entries: Delete reported hours |
935 | 935 |
text_assign_time_entries_to_project: Assign reported hours to the project |
config/locales/sr-YU.yml (作業コピー) | ||
---|---|---|
851 | 851 |
text_default_administrator_account_changed: Podrazumevani administratorski nalog je promenjen |
852 | 852 |
text_file_repository_writable: Fascikla priloženih datoteka je upisiva |
853 | 853 |
text_plugin_assets_writable: Fascikla elemenata dodatnih komponenti je upisiva |
854 |
text_rmagick_available: RMagick je dostupan (opciono)
|
|
854 |
text_minimagick_available: MiniMagick je dostupan (opciono)
|
|
855 | 855 |
text_destroy_time_entries_question: "%{hours} sati je prijavljeno za ovaj problem koji želite izbrisati. Šta želite da uradite?" |
856 | 856 |
text_destroy_time_entries: Izbriši prijavljene sate |
857 | 857 |
text_assign_time_entries_to_project: Dodeli prijavljene sate projektu |
config/locales/sr.yml (作業コピー) | ||
---|---|---|
849 | 849 |
text_default_administrator_account_changed: Подразумевани администраторски налог је промењен |
850 | 850 |
text_file_repository_writable: Фасцикла приложених датотека је уписива |
851 | 851 |
text_plugin_assets_writable: Фасцикла елемената додатних компоненти је уписива |
852 |
text_rmagick_available: RMagick је доступан (опционо)
|
|
852 |
text_minimagick_available: MiniMagick је доступан (опционо)
|
|
853 | 853 |
text_destroy_time_entries_question: "%{hours} сати је пријављено за овај проблем који желите избрисати. Шта желите да урадите?" |
854 | 854 |
text_destroy_time_entries: Избриши пријављене сате |
855 | 855 |
text_assign_time_entries_to_project: Додели пријављене сате пројекту |
config/locales/sv.yml (作業コピー) | ||
---|---|---|
1031 | 1031 |
text_default_administrator_account_changed: Standardadministratörens konto ändrat |
1032 | 1032 |
text_file_repository_writable: Arkivet för bifogade filer är skrivbart |
1033 | 1033 |
text_plugin_assets_writable: Arkivet för plug-ins är skrivbart |
1034 |
text_rmagick_available: RMagick tillgängligt (ej obligatoriskt)
|
|
1034 |
text_minimagick_available: MiniMagick tillgängligt (ej obligatoriskt)
|
|
1035 | 1035 |
text_destroy_time_entries_question: "%{hours} timmar har rapporterats på ärendena du är på väg att ta bort. Vad vill du göra ?" |
1036 | 1036 |
text_destroy_time_entries: Ta bort rapporterade timmar |
1037 | 1037 |
text_assign_time_entries_to_project: Tilldela rapporterade timmar till projektet |
config/locales/th.yml (作業コピー) | ||
---|---|---|
669 | 669 |
text_select_project_modules: 'เลือกส่วนประกอบที่ต้องการใช้งานสำหรับโครงการนี้:' |
670 | 670 |
text_default_administrator_account_changed: ค่าเริ่มต้นของบัญชีผู้บริหารจัดการถูกเปลี่ยนแปลง |
671 | 671 |
text_file_repository_writable: ที่เก็บต้นฉบับสามารถเขียนได้ |
672 |
text_rmagick_available: RMagick มีให้ใช้ (เป็นตัวเลือก)
|
|
672 |
text_minimagick_available: MiniMagick มีให้ใช้ (เป็นตัวเลือก)
|
|
673 | 673 |
text_destroy_time_entries_question: "%{hours} ชั่วโมงที่ถูกแจ้งในปัญหานี้จะโดนลบ. คุณต้องการทำอย่างไร?" |
674 | 674 |
text_destroy_time_entries: ลบเวลาที่รายงานไว้ |
675 | 675 |
text_assign_time_entries_to_project: ระบุเวลาที่ใช้ในโครงการนี้ |
config/locales/tr.yml (作業コピー) | ||
---|---|---|
684 | 684 |
text_select_project_modules: 'Bu proje için etkinleştirmek istediğiniz modülleri seçin:' |
685 | 685 |
text_default_administrator_account_changed: Varsayılan yönetici hesabı değişti |
686 | 686 |
text_file_repository_writable: Dosya deposu yazılabilir |
687 |
text_rmagick_available: RMagick Kullanılabilir (isteğe bağlı)
|
|
687 |
text_minimagick_available: MiniMagick Kullanılabilir (isteğe bağlı)
|
|
688 | 688 |
text_destroy_time_entries_question: Silmek üzere olduğunuz işler üzerine %{hours} saat raporlandı.Ne yapmak istersiniz ? |
689 | 689 |
text_destroy_time_entries: Raporlanmış süreleri sil |
690 | 690 |
text_assign_time_entries_to_project: Raporlanmış süreleri projeye ata |
config/locales/uk.yml (作業コピー) | ||
---|---|---|
686 | 686 |
project_module_time_tracking: Відстеження часу |
687 | 687 |
text_file_repository_writable: Сховище файлів доступне для записів |
688 | 688 |
text_default_administrator_account_changed: Обліковий запис адміністратора по замовчуванню змінений |
689 |
text_rmagick_available: Доступно використання RMagick (опційно)
|
|
689 |
text_minimagick_available: Доступно використання MiniMagick (опційно)
|
|
690 | 690 |
button_configure: Налаштування |
691 | 691 |
label_plugins: Модулі |
692 | 692 |
label_ldap_authentication: Авторизація за допомогою LDAP |
config/locales/vi.yml (作業コピー) | ||
---|---|---|
738 | 738 |
text_select_project_modules: 'Chọn các module cho dự án:' |
739 | 739 |
text_default_administrator_account_changed: Thay đổi tài khoản quản trị mặc định |
740 | 740 |
text_file_repository_writable: Cho phép ghi thư mục đính kèm |
741 |
text_rmagick_available: Trạng thái RMagick
|
|
741 |
text_minimagick_available: Trạng thái MiniMagick
|
|
742 | 742 |
text_destroy_time_entries_question: "Thời gian %{hours} giờ đã báo cáo trong vấn đề bạn định xóa. Bạn muốn làm gì tiếp ?" |
743 | 743 |
text_destroy_time_entries: Xóa thời gian báo cáo |
744 | 744 |
text_assign_time_entries_to_project: Gán thời gian báo cáo cho dự án |
config/locales/zh-TW.yml (作業コピー) | ||
---|---|---|
1217 | 1217 |
text_default_administrator_account_changed: 已變更預設管理員帳號內容 |
1218 | 1218 |
text_file_repository_writable: 可寫入附加檔案目錄 |
1219 | 1219 |
text_plugin_assets_writable: 可寫入外掛程式目錄 |
1220 |
text_rmagick_available: 可使用 RMagick (選配)
|
|
1220 |
text_minimagick_available: 可使用 MiniMagick (選配)
|
|
1221 | 1221 |
text_convert_available: 可使用 ImageMagick 轉換圖片格式 (選配) |
1222 | 1222 |
text_destroy_time_entries_question: 您即將刪除的議題已報工 %{hours} 小時. 您的選擇是? |
1223 | 1223 |
text_destroy_time_entries: 刪除已報工的時數 |
config/locales/zh.yml (作業コピー) | ||
---|---|---|
872 | 872 |
text_default_administrator_account_changed: 默认的管理员帐号已改变 |
873 | 873 |
text_file_repository_writable: 附件路径可写 |
874 | 874 |
text_plugin_assets_writable: 插件的附件路径可写 |
875 |
text_rmagick_available: RMagick 可用(可选的)
|
|
875 |
text_minimagick_available: MiniMagick 可用(可选的)
|
|
876 | 876 |
text_destroy_time_entries_question: 您要删除的问题已经上报了 %{hours} 小时的工作量。您想进行那种操作? |
877 | 877 |
text_destroy_time_entries: 删除上报的工作量 |
878 | 878 |
text_assign_time_entries_to_project: 将已上报的工作量提交到项目中 |
lib/redmine/helpers/gantt.rb (作業コピー) | ||
---|---|---|
359 | 359 |
end |
360 | 360 | |
361 | 361 |
# Generates a gantt image |
362 |
# Only defined if RMagick is avalaible
|
|
362 |
# Only defined if MiniMagick is avalaible
|
|
363 | 363 |
def to_image(format='PNG') |
364 | 364 |
date_to = (@date_from >> @months) - 1 |
365 | 365 |
show_weeks = @zoom > 1 |
... | ... | |
372 | 372 |
g_height = 20 * number_of_rows + 30 |
373 | 373 |
headers_height = (show_weeks ? 2 * header_height : header_height) |
374 | 374 |
height = g_height + headers_height |
375 |
imgl = Magick::ImageList.new |
|
376 |
imgl.new_image(subject_width + g_width + 1, height) |
|
377 |
gc = Magick::Draw.new |
|
378 |
gc.font = Redmine::Configuration['rmagick_font_path'] || "" |
|
379 |
# Subjects |
|
380 |
gc.stroke('transparent') |
|
381 |
subjects(:image => gc, :top => (headers_height + 20), :indent => 4, :format => :image) |
|
382 |
# Months headers |
|
383 |
month_f = @date_from |
|
384 |
left = subject_width |
|
385 |
@months.times do |
|
386 |
width = ((month_f >> 1) - month_f) * zoom |
|
387 |
gc.fill('white') |
|
388 |
gc.stroke('grey') |
|
389 |
gc.stroke_width(1) |
|
390 |
gc.rectangle(left, 0, left + width, height) |
|
391 |
gc.fill('black') |
|
375 |
# TODO: Remove rmagick_font_path in a later version |
|
376 |
Rails.logger.warn('rmagick_font_path option is deprecated. Use minimagick_font_path instead.') \ |
|
377 |
unless Redmine::Configuration['rmagick_font_path'].nil? |
|
378 |
font_path = Redmine::Configuration['minimagick_font_path'].presence || Redmine::Configuration['rmagick_font_path'].presence |
|
379 | ||
380 |
img = MiniMagick::Image.create(".#{format}", false) |
|
381 |
MiniMagick::Tool::Convert.new do |gc| |
|
382 |
gc.size('%dx%d' % [subject_width + g_width + 1, height]) |
|
383 |
gc.xc('white') |
|
384 |
gc.font(font_path) if font_path.present? |
|
385 |
# Subjects |
|
392 | 386 |
gc.stroke('transparent') |
393 |
gc.stroke_width(1) |
|
394 |
gc.text(left.round + 8, 14, "#{month_f.year}-#{month_f.month}") |
|
395 |
left = left + width |
|
396 |
month_f = month_f >> 1 |
|
397 |
end |
|
398 |
# Weeks headers |
|
399 |
if show_weeks |
|
387 |
subjects(:image => gc, :top => (headers_height + 20), :indent => 4, :format => :image) |
|
388 |
# Months headers |
|
389 |
month_f = @date_from |
|
400 | 390 |
left = subject_width |
401 |
height = header_height |
|
402 |
if @date_from.cwday == 1 |
|
403 |
# date_from is monday |
|
404 |
week_f = date_from |
|
405 |
else |
|
406 |
# find next monday after date_from |
|
407 |
week_f = @date_from + (7 - @date_from.cwday + 1) |
|
408 |
width = (7 - @date_from.cwday + 1) * zoom |
|
391 |
@months.times do |
|
392 |
width = ((month_f >> 1) - month_f) * zoom |
|
409 | 393 |
gc.fill('white') |
410 | 394 |
gc.stroke('grey') |
411 |
gc.stroke_width(1) |
|
412 |
gc.rectangle(left, header_height, left + width, 2 * header_height + g_height - 1) |
|
413 |
left = left + width |
|
414 |
end |
|
415 |
while week_f <= date_to |
|
416 |
width = (week_f + 6 <= date_to) ? 7 * zoom : (date_to - week_f + 1) * zoom |
|
417 |
gc.fill('white') |
|
418 |
gc.stroke('grey') |
|
419 |
gc.stroke_width(1) |
|
420 |
gc.rectangle(left.round, header_height, left.round + width, 2 * header_height + g_height - 1) |
|
395 |
gc.strokewidth(1) |
|
396 |
gc.draw('rectangle %d,%d %d,%d' % [ |
|
397 |
left, 0, left + width, height |
|
398 |
]) |
|
421 | 399 |
gc.fill('black') |
422 | 400 |
gc.stroke('transparent') |
423 |
gc.stroke_width(1) |
|
424 |
gc.text(left.round + 2, header_height + 14, week_f.cweek.to_s) |
|
401 |
gc.strokewidth(1) |
|
402 |
gc.draw('text %d,%d %s' % [ |
|
403 |
left.round + 8, 14, Redmine::Utils::Shell::shell_quote("#{month_f.year}-#{month_f.month}") |
|
404 |
]) |
|
425 | 405 |
left = left + width |
426 |
week_f = week_f + 7
|
|
406 |
month_f = month_f >> 1
|
|
427 | 407 |
end |
428 |
end |
|
429 |
# Days details (week-end in grey) |
|
430 |
if show_days |
|
431 |
left = subject_width |
|
432 |
height = g_height + header_height - 1 |
|
433 |
wday = @date_from.cwday |
|
434 |
(date_to - @date_from + 1).to_i.times do |
|
435 |
width = zoom |
|
436 |
gc.fill(non_working_week_days.include?(wday) ? '#eee' : 'white') |
|
437 |
gc.stroke('#ddd') |
|
438 |
gc.stroke_width(1) |
|
439 |
gc.rectangle(left, 2 * header_height, left + width, 2 * header_height + g_height - 1) |
|
440 |
left = left + width |
|
441 |
wday = wday + 1 |
|
442 |
wday = 1 if wday > 7 |
|
408 |
# Weeks headers |
|
409 |
if show_weeks |
|
410 |
left = subject_width |
|
411 |
height = header_height |
|
412 |
if @date_from.cwday == 1 |
|
413 |
# date_from is monday |
|
414 |
week_f = date_from |
|
415 |
else |
|
416 |
# find next monday after date_from |
|
417 |
week_f = @date_from + (7 - @date_from.cwday + 1) |
|
418 |
width = (7 - @date_from.cwday + 1) * zoom |
|
419 |
gc.fill('white') |
|
420 |
gc.stroke('grey') |
|
421 |
gc.strokewidth(1) |
|
422 |
gc.draw('rectangle %d,%d %d,%d' % [ |
|
423 |
left, header_height, left + width, 2 * header_height + g_height - 1 |
|
424 |
]) |
|
425 |
left = left + width |
|
426 |
end |
|
427 |
while week_f <= date_to |
|
428 |
width = (week_f + 6 <= date_to) ? 7 * zoom : (date_to - week_f + 1) * zoom |
|
429 |
gc.fill('white') |
|
430 |
gc.stroke('grey') |
|
431 |
gc.strokewidth(1) |
|
432 |
gc.draw('rectangle %d,%d %d,%d' % [ |
|
433 |
left.round, header_height, left.round + width, 2 * header_height + g_height - 1 |
|
434 |
]) |
|
435 |
gc.fill('black') |
|
436 |
gc.stroke('transparent') |
|
437 |
gc.strokewidth(1) |
|
438 |
gc.draw('text %d,%d %s' % [ |
|
439 |
left.round + 2, header_height + 14, Redmine::Utils::Shell::shell_quote(week_f.cweek.to_s) |
|
440 |
]) |
|
441 |
left = left + width |
|
442 |
week_f = week_f + 7 |
|
443 |
end |
|
443 | 444 |
end |
445 |
# Days details (week-end in grey) |
|
446 |
if show_days |
|
447 |
left = subject_width |
|
448 |
height = g_height + header_height - 1 |
|
449 |
wday = @date_from.cwday |
|
450 |
(date_to - @date_from + 1).to_i.times do |
|
451 |
width = zoom |
|
452 |
gc.fill(non_working_week_days.include?(wday) ? '#eee' : 'white') |
|
453 |
gc.stroke('#ddd') |
|
454 |
gc.strokewidth(1) |
|
455 |
gc.draw('rectangle %d,%d %d,%d' % [ |
|
456 |
left, 2 * header_height, left + width, 2 * header_height + g_height - 1 |
|
457 |
]) |
|
458 |
left = left + width |
|
459 |
wday = wday + 1 |
|
460 |
wday = 1 if wday > 7 |
|
461 |
end |
|
462 |
end |
|
463 |
# border |
|
464 |
gc.fill('transparent') |
|
465 |
gc.stroke('grey') |
|
466 |
gc.strokewidth(1) |
|
467 |
gc.draw('rectangle %d,%d %d,%d' % [ |
|
468 |
0, 0, subject_width + g_width, headers_height |
|
469 |
]) |
|
470 |
gc.stroke('black') |
|
471 |
gc.draw('rectangle %d,%d %d,%d' % [ |
|
472 |
0, 0, subject_width + g_width, g_height + headers_height - 1 |
|
473 |
]) |
|
474 |
# content |
|
475 |
top = headers_height + 20 |
|
476 |
gc.stroke('transparent') |
|
477 |
lines(:image => gc, :top => top, :zoom => zoom, |
|
478 |
:subject_width => subject_width, :format => :image) |
|
479 |
# today red line |
|
480 |
if User.current.today >= @date_from and User.current.today <= date_to |
|
481 |
gc.stroke('red') |
|
482 |
x = (User.current.today - @date_from + 1) * zoom + subject_width |
|
483 |
gc.draw('line %g,%g %g,%g' % [ |
|
484 |
x, headers_height, x, headers_height + g_height - 1 |
|
485 |
]) |
|
486 |
end |
|
487 |
gc << img.path |
|
444 | 488 |
end |
445 |
# border |
|
446 |
gc.fill('transparent') |
|
447 |
gc.stroke('grey') |
|
448 |
gc.stroke_width(1) |
|
449 |
gc.rectangle(0, 0, subject_width + g_width, headers_height) |
|
450 |
gc.stroke('black') |
|
451 |
gc.rectangle(0, 0, subject_width + g_width, g_height + headers_height - 1) |
|
452 |
# content |
|
453 |
top = headers_height + 20 |
|
454 |
gc.stroke('transparent') |
|
455 |
lines(:image => gc, :top => top, :zoom => zoom, |
|
456 |
:subject_width => subject_width, :format => :image) |
|
457 |
# today red line |
|
458 |
if User.current.today >= @date_from and User.current.today <= date_to |
|
459 |
gc.stroke('red') |
|
460 |
x = (User.current.today - @date_from + 1) * zoom + subject_width |
|
461 |
gc.line(x, headers_height, x, headers_height + g_height - 1) |
|
462 |
end |
|
463 |
gc.draw(imgl) |
|
464 |
imgl.format = format |
|
465 |
imgl.to_blob |
|
466 |
end if Object.const_defined?(:Magick) |
|
489 |
img.to_blob |
|
490 |
ensure |
|
491 |
img.destroy! if img |
|
492 |
end if Object.const_defined?(:MiniMagick) |
|
467 | 493 | |
468 | 494 |
def to_pdf |
469 | 495 |
pdf = ::Redmine::Export::PDF::ITCPDF.new(current_language) |
... | ... | |
775 | 801 |
def image_subject(params, subject, options={}) |
776 | 802 |
params[:image].fill('black') |
777 | 803 |
params[:image].stroke('transparent') |
778 |
params[:image].stroke_width(1) |
|
779 |
params[:image].text(params[:indent], params[:top] + 2, subject) |
|
804 |
params[:image].strokewidth(1) |
|
805 |
params[:image].draw('text %d,%d %s' % [ |
|
806 |
params[:indent], params[:top] + 2, Redmine::Utils::Shell::shell_quote(subject) |
|
807 |
]) |
|
780 | 808 |
end |
781 | 809 | |
782 | 810 |
def issue_relations(issue) |
... | ... | |
962 | 990 |
# Renders the task bar, with progress and late |
963 | 991 |
if coords[:bar_start] && coords[:bar_end] |
964 | 992 |
params[:image].fill('#aaa') |
965 |
params[:image].rectangle(params[:subject_width] + coords[:bar_start], |
|
966 |
params[:top], |
|
967 |
params[:subject_width] + coords[:bar_end], |
|
968 |
params[:top] - height) |
|
993 |
params[:image].draw('rectangle %d,%d %d,%d' % [ |
|
994 |
params[:subject_width] + coords[:bar_start], |
|
995 |
params[:top], |
|
996 |
params[:subject_width] + coords[:bar_end], |
|
997 |
params[:top] - height |
|
998 |
]) |
|
969 | 999 |
if coords[:bar_late_end] |
970 | 1000 |
params[:image].fill('#f66') |
971 |
params[:image].rectangle(params[:subject_width] + coords[:bar_start], |
|
972 |
params[:top], |
|
973 |
params[:subject_width] + coords[:bar_late_end], |
|
974 |
params[:top] - height) |
|
1001 |
params[:image].draw('rectangle %d,%d %d,%d' % [ |
|
1002 |
params[:subject_width] + coords[:bar_start], |
|
1003 |
params[:top], |
|
1004 |
params[:subject_width] + coords[:bar_late_end], |
|
1005 |
params[:top] - height |
|
1006 |
]) |
|
975 | 1007 |
end |
976 | 1008 |
if coords[:bar_progress_end] |
977 | 1009 |
params[:image].fill('#00c600') |
978 |
params[:image].rectangle(params[:subject_width] + coords[:bar_start], |
|
979 |
params[:top], |
|
980 |
params[:subject_width] + coords[:bar_progress_end], |
|
981 |
params[:top] - height) |
|
1010 |
params[:image].draw('rectangle %d,%d %d,%d' % [ |
|
1011 |
params[:subject_width] + coords[:bar_start], |
|
1012 |
params[:top], |
|
1013 |
params[:subject_width] + coords[:bar_progress_end], |
|
1014 |
params[:top] - height |
|
1015 |
]) |
|
982 | 1016 |
end |
983 | 1017 |
end |
984 | 1018 |
# Renders the markers |
... | ... | |
987 | 1021 |
x = params[:subject_width] + coords[:start] |
988 | 1022 |
y = params[:top] - height / 2 |
989 | 1023 |
params[:image].fill('blue') |
990 |
params[:image].polygon(x - 4, y, x, y - 4, x + 4, y, x, y + 4) |
|
1024 |
params[:image].draw('polygon %d,%d %d,%d %d,%d %d,%d' % [ |
|
1025 |
x - 4, y, |
|
1026 |
x, y - 4, |
|
1027 |
x + 4, y, |
|
1028 |
x, y + 4 |
|
1029 |
]) |
|
991 | 1030 |
end |
992 | 1031 |
if coords[:end] |
993 | 1032 |
x = params[:subject_width] + coords[:end] + params[:zoom] |
994 | 1033 |
y = params[:top] - height / 2 |
995 | 1034 |
params[:image].fill('blue') |
996 |
params[:image].polygon(x - 4, y, x, y - 4, x + 4, y, x, y + 4) |
|
1035 |
params[:image].draw('polygon %d,%d %d,%d %d,%d %d,%d' % [ |
|
1036 |
x - 4, y, |
|
1037 |
x, y - 4, |
|
1038 |
x + 4, y, |
|
1039 |
x, y + 4 |
|
1040 |
]) |
|
997 | 1041 |
end |
998 | 1042 |
end |
999 | 1043 |
# Renders the label on the right |
1000 | 1044 |
if label |
1001 | 1045 |
params[:image].fill('black') |
1002 |
params[:image].text(params[:subject_width] + (coords[:bar_end] || 0) + 5,
|
|
1003 |
params[:top] + 1,
|
|
1004 |
label)
|
|
1046 |
params[:image].draw('text %d,%d %s' % [
|
|
1047 |
params[:subject_width] + (coords[:bar_end] || 0) + 5, params[:top] + 1, Redmine::Utils::Shell::shell_quote(label)
|
|
1048 |
])
|
|
1005 | 1049 |
end |
1006 | 1050 |
end |
1007 | 1051 |
end |
lib/redmine.rb (作業コピー) | ||
---|---|---|
20 | 20 |
require 'redmine/core_ext' |
21 | 21 | |
22 | 22 |
begin |
23 |
require 'rmagick' unless Object.const_defined?(:Magick)
|
|
23 |
require 'mini_magick' unless Object.const_defined?(:MiniMagick)
|
|
24 | 24 |
rescue LoadError |
25 |
# RMagick is not available
|
|
25 |
# MiniMagick is not available
|
|
26 | 26 |
end |
27 | 27 |
begin |
28 | 28 |
require 'redcarpet' unless Object.const_defined?(:Redcarpet) |
test/functional/gantts_controller_test.rb (作業コピー) | ||
---|---|---|
155 | 155 |
assert @response.body.starts_with?('%PDF') |
156 | 156 |
end |
157 | 157 | |
158 |
if Object.const_defined?(:Magick) |
|
158 |
if Object.const_defined?(:MiniMagick)
|
|
159 | 159 |
def test_gantt_should_export_to_png |
160 | 160 |
get :show, :params => { |
161 | 161 |
:project_id => 1, |
- « Previous
- 1
- 2
- 3
- 4
- Next »