ChiliProject is not maintained anymore. Please be advised that there will be no more updates.
We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.
changeset_rea7e9f7e100db9e5ffda644296b543802039f503.diff
b/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> |
b/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." |
b/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." |
b/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." |
b/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." |
b/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', |