Patch #9225 » changeset_rea7e9f7e100db9e5ffda644296b543802039f503.diff
| app/views/projects/_form.rhtml | ||
|---|---|---|
| 11 | 11 |
<p><%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %></p> |
| 12 | 12 |
<p><%= f.text_field :identifier, :required => true, :size => 60, :disabled => @project.identifier_frozen? %> |
| 13 | 13 |
<% unless @project.identifier_frozen? %> |
| 14 |
<%= javascript_tag "observeProjectIdentifier(#{Project::IDENTIFIER_MAX_LENGTH});observeProjectName(#{Project::IDENTIFIER_MAX_LENGTH});" %>
|
|
| 14 | 15 |
<br /><em><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info) %></em> |
| 15 | 16 |
<% end %></p> |
| 16 | 17 |
<p><%= f.text_field :homepage, :size => 60 %></p> |
| config/locales/de.yml | ||
|---|---|---|
| 869 | 869 |
text_tip_issue_begin_day: Aufgabe, die an diesem Tag beginnt |
| 870 | 870 |
text_tip_issue_end_day: Aufgabe, die an diesem Tag endet |
| 871 | 871 |
text_tip_issue_begin_end_day: Aufgabe, die an diesem Tag beginnt und endet |
| 872 |
text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern und Bindestriche erlaubt.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.' |
|
| 872 |
text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern und Bindestriche erlaubt, muss mit einem Kleinbuchstaben beginnen.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.'
|
|
| 873 | 873 |
text_caracters_maximum: "Max. %{count} Zeichen."
|
| 874 | 874 |
text_caracters_minimum: "Muss mindestens %{count} Zeichen lang sein."
|
| 875 | 875 |
text_length_between: "Länge zwischen %{min} und %{max} Zeichen."
|
| config/locales/en-GB.yml | ||
|---|---|---|
| 879 | 879 |
text_tip_issue_begin_day: task beginning this day |
| 880 | 880 |
text_tip_issue_end_day: task ending this day |
| 881 | 881 |
text_tip_issue_begin_end_day: task beginning and ending this day |
| 882 |
text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier cannot be changed.' |
|
| 882 |
text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed, must start with a lower case letter.<br />Once saved, the identifier cannot be changed.'
|
|
| 883 | 883 |
text_caracters_maximum: "%{count} characters maximum."
|
| 884 | 884 |
text_caracters_minimum: "Must be at least %{count} characters long."
|
| 885 | 885 |
text_length_between: "Length between %{min} and %{max} characters."
|
| config/locales/en.yml | ||
|---|---|---|
| 895 | 895 |
text_tip_issue_begin_day: issue beginning this day |
| 896 | 896 |
text_tip_issue_end_day: issue ending this day |
| 897 | 897 |
text_tip_issue_begin_end_day: issue beginning and ending this day |
| 898 |
text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier cannot be changed.' |
|
| 898 |
text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed, must start with a lower case letter.<br />Once saved, the identifier cannot be changed.'
|
|
| 899 | 899 |
text_caracters_maximum: "%{count} characters maximum."
|
| 900 | 900 |
text_caracters_minimum: "Must be at least %{count} characters long."
|
| 901 | 901 |
text_length_between: "Length between %{min} and %{max} characters."
|
| config/locales/fr.yml | ||
|---|---|---|
| 867 | 867 |
text_tip_issue_begin_day: tâche commençant ce jour |
| 868 | 868 |
text_tip_issue_end_day: tâche finissant ce jour |
| 869 | 869 |
text_tip_issue_begin_end_day: tâche commençant et finissant ce jour |
| 870 |
text_project_identifier_info: 'Seuls les lettres minuscules (a-z), chiffres et tirets sont autorisés.<br />Un fois sauvegardé, l''identifiant ne pourra plus être modifié.' |
|
| 870 |
text_project_identifier_info: 'Seuls les lettres minuscules (a-z), chiffres et tirets sont autorisés, doit commencer par une minuscule.<br />Un fois sauvegardé, l''identifiant ne pourra plus être modifié.'
|
|
| 871 | 871 |
text_caracters_maximum: "%{count} caractères maximum."
|
| 872 | 872 |
text_caracters_minimum: "%{count} caractères minimum."
|
| 873 | 873 |
text_length_between: "Longueur comprise entre %{min} et %{max} caractères."
|
| public/javascripts/application.js | ||
|---|---|---|
| 243 | 243 |
return key; |
| 244 | 244 |
} |
| 245 | 245 | |
| 246 |
// Automatic project identifier generation |
|
| 247 |
var projectIdentifierLocked = false; |
|
| 248 | ||
| 249 |
function generateProjectIdentifier(identifierMaxLength) {
|
|
| 250 |
var identifier = $('project_name').getValue() // project name
|
|
| 251 |
identifier = identifier.replace(/ä/g,'ae'); // umlauts |
|
| 252 |
identifier = identifier.replace(/ö/g,'oe'); // umlauts |
|
| 253 |
identifier = identifier.replace(/ü/g,'ue'); // umlauts |
|
| 254 |
identifier = identifier.replace(/Ä/g,'Ae'); // umlauts |
|
| 255 |
identifier = identifier.replace(/Ö/g,'Oe'); // umlauts |
|
| 256 |
identifier = identifier.replace(/Ü/g,'Ue'); // umlauts |
|
| 257 |
identifier = identifier.replace(/ß/g,'ss'); // umlauts |
|
| 258 |
identifier = identifier.replace(/[^a-z0-9]+/gi, '-'); // non-alphanumeric => dash |
|
| 259 |
identifier = identifier.replace(/^[-\d]*|-*$/g, ''); // remove dashes and numbers at beginning and dashes at end |
|
| 260 |
identifier = identifier.toLowerCase(); // to lower |
|
| 261 |
identifier = identifier.substr(0,identifierMaxLength); // max characters |
|
| 262 |
return identifier; |
|
| 263 |
} |
|
| 264 | ||
| 265 |
function observeProjectName(identifierMaxLength) {
|
|
| 266 |
var f = function() {
|
|
| 267 |
if(!projectIdentifierLocked) {
|
|
| 268 |
$('project_identifier').setValue(generateProjectIdentifier(identifierMaxLength));
|
|
| 269 |
} |
|
| 270 |
}; |
|
| 271 |
Event.observe('project_name', 'keyup', f);
|
|
| 272 |
} |
|
| 273 | ||
| 274 |
function observeProjectIdentifier(identifierMaxLength) {
|
|
| 275 |
var f = function() {
|
|
| 276 |
if($('project_identifier').getValue() != '' && $('project_identifier').getValue() != generateProjectIdentifier(identifierMaxLength)) {
|
|
| 277 |
projectIdentifierLocked = true; |
|
| 278 |
} else {
|
|
| 279 |
projectIdentifierLocked = false; |
|
| 280 |
} |
|
| 281 |
}; |
|
| 282 |
Event.observe('project_identifier', 'keyup', f);
|
|
| 283 |
} |
|
| 284 | ||
| 246 | 285 |
function observeParentIssueField(url) {
|
| 247 | 286 |
new Ajax.Autocompleter('issue_parent_issue_id',
|
| 248 | 287 |
'parent_issue_candidates', |