Redmine 3.4.4
This commit is contained in:
commit
64924a6376
2112 changed files with 259028 additions and 0 deletions
10
app/views/settings/_api.html.erb
Normal file
10
app/views/settings/_api.html.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'api'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_check_box :rest_api_enabled %></p>
|
||||
|
||||
<p><%= setting_check_box :jsonp_enabled %></p>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
21
app/views/settings/_attachments.html.erb
Normal file
21
app/views/settings/_attachments.html.erb
Normal file
|
@ -0,0 +1,21 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'attachments'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_text_field :attachment_max_size, :size => 6 %> <%= l(:"number.human.storage_units.units.kb") %></p>
|
||||
|
||||
<p><%= setting_text_area :attachment_extensions_allowed %>
|
||||
<em class="info"><%= l(:text_comma_separated) %> <%= l(:label_example) %>: txt, png</em></p>
|
||||
|
||||
<p><%= setting_text_area :attachment_extensions_denied %>
|
||||
<em class="info"><%= l(:text_comma_separated) %> <%= l(:label_example) %>: js, swf</em></p>
|
||||
|
||||
<p><%= setting_text_field :file_max_size_displayed, :size => 6 %> <%= l(:"number.human.storage_units.units.kb") %></p>
|
||||
|
||||
<p><%= setting_text_field :diff_max_lines_displayed, :size => 6 %></p>
|
||||
|
||||
<p><%= setting_text_field :repositories_encodings, :size => 60 %>
|
||||
<em class="info"><%= l(:text_comma_separated) %></em></p>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
55
app/views/settings/_authentication.html.erb
Normal file
55
app/views/settings/_authentication.html.erb
Normal file
|
@ -0,0 +1,55 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'authentication'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_check_box :login_required %></p>
|
||||
|
||||
<p><%= setting_select :autologin, [[l(:label_disabled), 0]] + [1, 7, 30, 365].collect{|days| [l('datetime.distance_in_words.x_days', :count => days), days.to_s]} %></p>
|
||||
|
||||
<p><%= setting_select :self_registration, [[l(:label_disabled), "0"],
|
||||
[l(:label_registration_activation_by_email), "1"],
|
||||
[l(:label_registration_manual_activation), "2"],
|
||||
[l(:label_registration_automatic_activation), "3"]],
|
||||
:onchange =>
|
||||
"if (this.value != '0') { $('#settings_show_custom_fields_on_registration').removeAttr('disabled'); } else { $('#settings_show_custom_fields_on_registration').attr('disabled', true); }" %></p>
|
||||
|
||||
<p><%= setting_check_box :show_custom_fields_on_registration,
|
||||
:disabled => !Setting.self_registration? %></p>
|
||||
|
||||
<p><%= setting_check_box :unsubscribe %></p>
|
||||
|
||||
<p><%= setting_text_field :password_min_length, :size => 6 %></p>
|
||||
|
||||
<p>
|
||||
<%= setting_select :password_max_age, [[l(:label_disabled), 0]] + [7, 30, 60, 90, 180, 365].collect{|days| [l('datetime.distance_in_words.x_days', :count => days), days.to_s]} %>
|
||||
</p>
|
||||
|
||||
<p><%= setting_check_box :lost_password %></p>
|
||||
|
||||
<p><%= setting_text_field :max_additional_emails, :size => 6 %></p>
|
||||
|
||||
<p><%= setting_check_box :openid, :disabled => !Object.const_defined?(:OpenID) %></p>
|
||||
</div>
|
||||
|
||||
<fieldset class="box">
|
||||
<legend><%= l(:label_session_expiration) %></legend>
|
||||
|
||||
<div class="tabular settings">
|
||||
<p><%= setting_select :session_lifetime, session_lifetime_options %></p>
|
||||
<p><%= setting_select :session_timeout, session_timeout_options %></p>
|
||||
</div>
|
||||
|
||||
<p><em class="info"><%= l(:text_session_expiration_settings) %></em></p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="box">
|
||||
<legend><%= l(:label_default_values_for_new_users) %></legend>
|
||||
|
||||
<div class="tabular settings">
|
||||
<p><%= setting_check_box :default_users_hide_mail, :label => :field_hide_mail %></p>
|
||||
|
||||
<p><%= setting_select :default_users_time_zone, ActiveSupport::TimeZone.all.collect {|z| [ z.to_s, z.name ]}, :label => :field_time_zone, :blank => :label_none %></p>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
34
app/views/settings/_display.html.erb
Normal file
34
app/views/settings/_display.html.erb
Normal file
|
@ -0,0 +1,34 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'display'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_select :ui_theme, Redmine::Themes.themes.collect {|t| [t.name, t.id]}, :blank => :label_default, :label => :label_theme %></p>
|
||||
|
||||
<p><%= setting_select :default_language, lang_options_for_select(false) %></p>
|
||||
|
||||
<p><%= setting_check_box :force_default_language_for_anonymous %></p>
|
||||
|
||||
<p><%= setting_check_box :force_default_language_for_loggedin %></p>
|
||||
|
||||
<p><%= setting_select :start_of_week, [[day_name(1),'1'], [day_name(6),'6'], [day_name(7),'7']], :blank => :label_language_based %></p>
|
||||
<% locale = User.current.language.blank? ? ::I18n.locale : User.current.language %>
|
||||
<p><%= setting_select :date_format, date_format_setting_options(locale), :blank => :label_language_based %></p>
|
||||
|
||||
<p><%= setting_select :time_format, Setting::TIME_FORMATS.collect {|f| [::I18n.l(Time.now, :locale => locale, :format => f), f]}, :blank => :label_language_based %></p>
|
||||
|
||||
<p><%= setting_select :timespan_format, [["%.2f" % 0.75, 'decimal'], ['0:45 h', 'minutes']], :blank => false %></p>
|
||||
|
||||
<p><%= setting_select :user_format, @options[:user_format] %></p>
|
||||
|
||||
<p><%= setting_check_box :gravatar_enabled %></p>
|
||||
|
||||
<p><%= setting_select :gravatar_default, [["Wavatars", 'wavatar'], ["Identicons", 'identicon'], ["Monster ids", 'monsterid'], ["Retro", 'retro'], ["Mystery man", 'mm']], :blank => :label_none %></p>
|
||||
|
||||
<p><%= setting_check_box :thumbnails_enabled %></p>
|
||||
|
||||
<p><%= setting_text_field :thumbnails_size, :size => 6 %></p>
|
||||
|
||||
<p><%= setting_select :new_item_menu_tab, [[l(:label_none), '0'], [l(:label_new_project_issue_tab_enabled), '1'], [l(:label_new_object_tab_enabled), '2']] %></p>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
34
app/views/settings/_general.html.erb
Normal file
34
app/views/settings/_general.html.erb
Normal file
|
@ -0,0 +1,34 @@
|
|||
<%= form_tag({:action => 'edit'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_text_field :app_title, :size => 30 %></p>
|
||||
|
||||
<p><%= setting_text_area :welcome_text, :cols => 60, :rows => 5, :class => 'wiki-edit' %></p>
|
||||
<%= wikitoolbar_for 'settings_welcome_text' %>
|
||||
|
||||
|
||||
<p><%= setting_text_field :per_page_options, :size => 20 %>
|
||||
<em class="info"><%= l(:text_comma_separated) %></em></p>
|
||||
|
||||
<p><%= setting_text_field :search_results_per_page, :size => 6 %>
|
||||
|
||||
<p><%= setting_text_field :activity_days_default, :size => 6 %> <%= l(:label_day_plural) %></p>
|
||||
|
||||
<p><%= setting_text_field :host_name, :size => 60 %>
|
||||
<em class="info"><%= l(:label_example) %>: <%= @guessed_host_and_path %></em></p>
|
||||
|
||||
<p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p>
|
||||
|
||||
<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %></p>
|
||||
|
||||
<p><%= setting_check_box :cache_formatted_text %></p>
|
||||
|
||||
<p><%= setting_select :wiki_compression, [['Gzip', 'gzip']], :blank => :label_none %></p>
|
||||
|
||||
<p><%= setting_text_field :feeds_limit, :size => 6 %></p>
|
||||
|
||||
<%= call_hook(:view_settings_general_form) %>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
49
app/views/settings/_issues.html.erb
Normal file
49
app/views/settings/_issues.html.erb
Normal file
|
@ -0,0 +1,49 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'issues'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_check_box :cross_project_issue_relations %></p>
|
||||
|
||||
<p><%= setting_select :link_copied_issue, link_copied_issue_options %></p>
|
||||
|
||||
<p><%= setting_select :cross_project_subtasks, cross_project_subtasks_options %></p>
|
||||
|
||||
<p><%= setting_check_box :issue_group_assignment %></p>
|
||||
|
||||
<p><%= setting_check_box :default_issue_start_date_to_creation_date %></p>
|
||||
|
||||
<p><%= setting_check_box :display_subprojects_issues %></p>
|
||||
|
||||
<p><%= setting_select :issue_done_ratio, Issue::DONE_RATIO_OPTIONS.collect {|i| [l("setting_issue_done_ratio_#{i}"), i]} %></p>
|
||||
|
||||
<p><%= setting_multiselect :non_working_week_days, (1..7).map {|d| [day_name(d), d.to_s]}, :inline => true %></p>
|
||||
|
||||
<p><%= setting_text_field :issues_export_limit, :size => 6 %></p>
|
||||
|
||||
<p><%= setting_text_field :gantt_items_limit, :size => 6 %></p>
|
||||
</div>
|
||||
|
||||
<fieldset class="box">
|
||||
<legend><%= l(:label_parent_task_attributes) %></legend>
|
||||
<div class="tabular settings">
|
||||
<p><%= setting_select :parent_issue_dates, parent_issue_dates_options, :label => "#{l(:field_start_date)} / #{l(:field_due_date)}" %></p>
|
||||
|
||||
<p><%= setting_select :parent_issue_priority, parent_issue_priority_options, :label => :field_priority %></p>
|
||||
|
||||
<p><%= setting_select :parent_issue_done_ratio, parent_issue_done_ratio_options, :label => :field_done_ratio %></p>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="box">
|
||||
<legend><%= l(:setting_issue_list_default_columns) %></legend>
|
||||
<%= render_query_columns_selection(
|
||||
IssueQuery.new(:column_names => Setting.issue_list_default_columns),
|
||||
:name => 'settings[issue_list_default_columns]') %>
|
||||
|
||||
<p><%= setting_multiselect :issue_list_default_totals,
|
||||
IssueQuery.new(:totalable_names => Setting.issue_list_default_totals).available_totalable_columns.map {|c| [c.caption, c.name.to_s]},
|
||||
:inline => true,
|
||||
:label => :label_total_plural %></p>
|
||||
</fieldset>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
32
app/views/settings/_mail_handler.html.erb
Normal file
32
app/views/settings/_mail_handler.html.erb
Normal file
|
@ -0,0 +1,32 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'mail_handler'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p>
|
||||
<%= setting_text_area :mail_handler_body_delimiters, :rows => 5 %>
|
||||
<label class="block">
|
||||
<%= setting_check_box :mail_handler_enable_regex_delimiters, :label => false %>
|
||||
<%= l(:setting_mail_handler_enable_regex_delimiters) %>
|
||||
</label>
|
||||
<em class="info"><%= l(:text_line_separated) %></em>
|
||||
</p>
|
||||
<p>
|
||||
<%= setting_text_field :mail_handler_excluded_filenames, :size => 60 %>
|
||||
<em class="info"><%= l(:text_comma_separated) %>
|
||||
<%= l(:label_example) %>: smime.p7s, *.vcf</em>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_check_box :mail_handler_api_enabled,
|
||||
:onclick => "if (this.checked) { $('#settings_mail_handler_api_key').removeAttr('disabled'); } else { $('#settings_mail_handler_api_key').attr('disabled', true); }"%></p>
|
||||
|
||||
<p><%= setting_text_field :mail_handler_api_key, :size => 30,
|
||||
:id => 'settings_mail_handler_api_key',
|
||||
:disabled => !Setting.mail_handler_api_enabled? %>
|
||||
<%= link_to_function l(:label_generate_key), "if (!$('#settings_mail_handler_api_key').attr('disabled')) { $('#settings_mail_handler_api_key').val(randomKey(20)) }" %>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
|
||||
<% end %>
|
42
app/views/settings/_notifications.html.erb
Normal file
42
app/views/settings/_notifications.html.erb
Normal file
|
@ -0,0 +1,42 @@
|
|||
<% if @deliveries %>
|
||||
<%= form_tag({:action => 'edit', :tab => 'notifications'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_text_field :mail_from, :size => 60 %></p>
|
||||
|
||||
<p><%= setting_check_box :bcc_recipients %></p>
|
||||
|
||||
<p><%= setting_check_box :plain_text_mail %></p>
|
||||
|
||||
<p><%= setting_select(:default_notification_option, User.valid_notification_options.collect {|o| [l(o.last), o.first.to_s]}) %></p>
|
||||
|
||||
</div>
|
||||
|
||||
<fieldset class="box" id="notified_events"><legend><%=l(:text_select_mail_notifications)%></legend>
|
||||
<%= hidden_field_tag 'settings[notified_events][]', '' %>
|
||||
<% @notifiables.each do |notifiable| %>
|
||||
<%= notification_field notifiable %>
|
||||
<br />
|
||||
<% end %>
|
||||
<p><%= check_all_links('notified_events') %></p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="box"><legend><%= l(:setting_emails_header) %></legend>
|
||||
<%= setting_text_area :emails_header, :label => false, :class => 'wiki-edit', :rows => 5 %>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="box"><legend><%= l(:setting_emails_footer) %></legend>
|
||||
<%= setting_text_area :emails_footer, :label => false, :class => 'wiki-edit', :rows => 5 %>
|
||||
</fieldset>
|
||||
|
||||
<div style="float:right;">
|
||||
<%= link_to l(:label_send_test_email), test_email_path, :method => :post %>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="nodata">
|
||||
<%= simple_format(l(:text_email_delivery_not_configured)) %>
|
||||
</div>
|
||||
<% end %>
|
20
app/views/settings/_projects.html.erb
Normal file
20
app/views/settings/_projects.html.erb
Normal file
|
@ -0,0 +1,20 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'projects'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_check_box :default_projects_public %></p>
|
||||
|
||||
<p><%= setting_multiselect(:default_projects_modules,
|
||||
Redmine::AccessControl.available_project_modules.collect {|m| [l_or_humanize(m, :prefix => "project_module_"), m.to_s]}) %></p>
|
||||
|
||||
<p><%= setting_multiselect(:default_projects_tracker_ids,
|
||||
Tracker.sorted.collect {|t| [t.name, t.id.to_s]}) %></p>
|
||||
|
||||
<p><%= setting_check_box :sequential_project_identifiers %></p>
|
||||
|
||||
<p><%= setting_select :new_project_user_role_id,
|
||||
Role.find_all_givable.collect {|r| [r.name, r.id.to_s]},
|
||||
:blank => "--- #{l(:actionview_instancetag_blank_option)} ---" %></p>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
160
app/views/settings/_repositories.html.erb
Normal file
160
app/views/settings/_repositories.html.erb
Normal file
|
@ -0,0 +1,160 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'repositories'}) do %>
|
||||
|
||||
<fieldset class="box settings enabled_scm">
|
||||
<legend><%= l(:setting_enabled_scm) %></legend>
|
||||
<%= hidden_field_tag 'settings[enabled_scm][]', '' %>
|
||||
<table>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><%= l(:text_scm_command) %></th>
|
||||
<th><%= l(:text_scm_command_version) %></th>
|
||||
</tr>
|
||||
<% Redmine::Scm::Base.all.collect do |choice| %>
|
||||
<% scm_class = "Repository::#{choice}".constantize %>
|
||||
<% text, value = (choice.is_a?(Array) ? choice : [choice, choice]) %>
|
||||
<% setting = :enabled_scm %>
|
||||
<% enabled = Setting.send(setting).include?(value) %>
|
||||
<tr>
|
||||
<td class="scm_name">
|
||||
<label>
|
||||
<%= check_box_tag("settings[#{setting}][]", value, enabled, :id => nil) %>
|
||||
<%= text.to_s %>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<% if enabled %>
|
||||
<span class="icon <%= (scm_class.scm_available ? 'icon-ok' : 'icon-error') %>"></span>
|
||||
<%= scm_class.scm_command %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<%= scm_class.scm_version_string if enabled %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
<p><em class="info"><%= l(:text_scm_config) %></em></p>
|
||||
</fieldset>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_check_box :autofetch_changesets %></p>
|
||||
|
||||
<p><%= setting_check_box :sys_api_enabled,
|
||||
:onclick =>
|
||||
"if (this.checked) { $('#settings_sys_api_key').removeAttr('disabled'); } else { $('#settings_sys_api_key').attr('disabled', true); }" %></p>
|
||||
|
||||
<p><%= setting_text_field :sys_api_key,
|
||||
:size => 30,
|
||||
:id => 'settings_sys_api_key',
|
||||
:disabled => !Setting.sys_api_enabled? %>
|
||||
<%= link_to_function l(:label_generate_key),
|
||||
"if (!$('#settings_sys_api_key').attr('disabled')) { $('#settings_sys_api_key').val(randomKey(20)) }" %>
|
||||
</p>
|
||||
|
||||
<p><%= setting_text_field :repository_log_display_limit, :size => 6 %></p>
|
||||
|
||||
<p><%= setting_check_box :commit_logs_formatting %></p>
|
||||
</div>
|
||||
|
||||
<fieldset class="box tabular settings">
|
||||
<legend><%= l(:text_issues_ref_in_commit_messages) %></legend>
|
||||
<p><%= setting_text_field :commit_ref_keywords, :size => 30 %>
|
||||
<em class="info"><%= l(:text_comma_separated) %></em></p>
|
||||
|
||||
<p><%= setting_check_box :commit_cross_project_ref %></p>
|
||||
|
||||
<p><%= setting_check_box :commit_logtime_enabled,
|
||||
:onclick =>
|
||||
"if (this.checked) { $('#settings_commit_logtime_activity_id').removeAttr('disabled'); } else { $('#settings_commit_logtime_activity_id').attr('disabled', true); }"%></p>
|
||||
|
||||
<p><%= setting_select :commit_logtime_activity_id,
|
||||
[[l(:label_default), 0]] +
|
||||
TimeEntryActivity.shared.active.collect{|activity| [activity.name, activity.id.to_s]},
|
||||
:disabled => !Setting.commit_logtime_enabled?%></p>
|
||||
</fieldset>
|
||||
|
||||
<table class="list" id="commit-keywords">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= l(:label_tracker) %></th>
|
||||
<th><%= l(:setting_commit_fix_keywords) %></th>
|
||||
<th><%= l(:label_applied_status) %></th>
|
||||
<th><%= l(:field_done_ratio) %></th>
|
||||
<th class="buttons"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @commit_update_keywords.each do |rule| %>
|
||||
<tr class="commit-keywords">
|
||||
<td>
|
||||
<%= select_tag(
|
||||
"settings[commit_update_keywords][if_tracker_id][]",
|
||||
options_for_select(
|
||||
[[l(:label_all), ""]] +
|
||||
Tracker.sorted.map {|t| [t.name, t.id.to_s]},
|
||||
rule['if_tracker_id']),
|
||||
:id => nil
|
||||
) %>
|
||||
</td>
|
||||
<td>
|
||||
<%= text_field_tag("settings[commit_update_keywords][keywords][]",
|
||||
rule['keywords'], :id => nil, :size => 30) %>
|
||||
</td>
|
||||
<td>
|
||||
<%= select_tag("settings[commit_update_keywords][status_id][]",
|
||||
options_for_select(
|
||||
[["", 0]] +
|
||||
IssueStatus.sorted.
|
||||
collect{|status| [status.name, status.id.to_s]},
|
||||
rule['status_id']),
|
||||
:id => nil
|
||||
) %>
|
||||
</td>
|
||||
<td>
|
||||
<%= select_tag("settings[commit_update_keywords][done_ratio][]",
|
||||
options_for_select(
|
||||
[["", ""]] +
|
||||
(0..10).to_a.collect {|r| ["#{r*10} %", "#{r*10}"] },
|
||||
rule['done_ratio']),
|
||||
:id => nil
|
||||
) %>
|
||||
</td>
|
||||
<td class="buttons">
|
||||
<%= link_to(l(:button_delete), '#',
|
||||
:class => 'delete-commit-keywords icon-only icon-del',
|
||||
:title => l(:button_delete)) %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><em class="info"><%= l(:text_comma_separated) %></em></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="buttons">
|
||||
<%= link_to(l(:button_add), '#',
|
||||
:class => 'add-commit-keywords icon-only icon-add',
|
||||
:title => l(:button_add)) %>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p><%= submit_tag l(:button_save) %></p>
|
||||
<% end %>
|
||||
|
||||
<%= javascript_tag do %>
|
||||
$('#commit-keywords').on('click', 'a.delete-commit-keywords', function(e){
|
||||
e.preventDefault();
|
||||
if ($('#commit-keywords tbody tr.commit-keywords').length > 1) {
|
||||
$(this).parents('#commit-keywords tr').remove();
|
||||
} else {
|
||||
$('#commit-keywords tbody tr.commit-keywords').find('input, select').val('');
|
||||
}
|
||||
});
|
||||
$('#commit-keywords').on('click', 'a.add-commit-keywords', function(e){
|
||||
e.preventDefault();
|
||||
var row = $('#commit-keywords tr.commit-keywords:last');
|
||||
row.clone().insertAfter(row).find('input, select').val('');
|
||||
});
|
||||
<% end %>
|
10
app/views/settings/_timelog.html.erb
Normal file
10
app/views/settings/_timelog.html.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
<%= form_tag({:action => 'edit', :tab => 'timelog'}) do %>
|
||||
|
||||
<div class="box tabular settings">
|
||||
<p><%= setting_multiselect(:timelog_required_fields,
|
||||
[[l(:field_issue), 'issue_id'], [l(:field_comments), 'comments'] ]) %></p>
|
||||
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<% end %>
|
7
app/views/settings/edit.html.erb
Normal file
7
app/views/settings/edit.html.erb
Normal file
|
@ -0,0 +1,7 @@
|
|||
<h2><%= l(:label_settings) %></h2>
|
||||
|
||||
<%= render_settings_error @setting_errors %>
|
||||
|
||||
<%= render_tabs administration_settings_tabs %>
|
||||
|
||||
<% html_title(l(:label_settings), l(:label_administration)) -%>
|
10
app/views/settings/plugin.html.erb
Normal file
10
app/views/settings/plugin.html.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
<%= title [l(:label_plugins), {:controller => 'admin', :action => 'plugins'}], @plugin.name %>
|
||||
|
||||
<div id="settings">
|
||||
<%= form_tag({:action => 'plugin'}) do %>
|
||||
<div class="box tabular settings">
|
||||
<%= render :partial => @partial, :locals => {:settings => @settings}%>
|
||||
</div>
|
||||
<%= submit_tag l(:button_apply) %>
|
||||
<% end %>
|
||||
</div>
|
Loading…
Add table
Add a link
Reference in a new issue