git-svn-id: http://redmine.rubyforge.org/svn/trunk@14 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.3.0
@@ -41,7 +41,7 @@ class AccountController < ApplicationController | |||
self.logged_in_user = user | |||
redirect_back_or_default :controller => 'account', :action => 'my_page' | |||
else | |||
flash[:notice] = l(:notice_account_invalid_creditentials) | |||
flash.now[:notice] = l(:notice_account_invalid_creditentials) | |||
end | |||
end | |||
end | |||
@@ -64,7 +64,7 @@ class AccountController < ApplicationController | |||
@user = self.logged_in_user | |||
if request.post? and @user.update_attributes(@params[:user]) | |||
set_localization | |||
flash[:notice] = l(:notice_account_updated) | |||
flash.now[:notice] = l(:notice_account_updated) | |||
self.logged_in_user.reload | |||
end | |||
end | |||
@@ -72,11 +72,12 @@ class AccountController < ApplicationController | |||
# Change logged in user's password | |||
def change_password | |||
@user = self.logged_in_user | |||
flash.now[:notice] = l(:notice_can_t_change_password) and render :action => 'my_account' and return if @user.auth_source_id | |||
if @user.check_password?(@params[:password]) | |||
@user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation] | |||
flash[:notice] = l(:notice_account_password_updated) if @user.save | |||
flash.now[:notice] = l(:notice_account_password_updated) if @user.save | |||
else | |||
flash[:notice] = l(:notice_account_wrong_password) | |||
flash.now[:notice] = l(:notice_account_wrong_password) | |||
end | |||
render :action => 'my_account' | |||
end | |||
@@ -100,11 +101,16 @@ class AccountController < ApplicationController | |||
return | |||
else | |||
if request.post? | |||
user = User.find_by_mail(params[:mail]) | |||
flash[:notice] = l(:notice_account_unknown_email) and return unless user | |||
user = User.find_by_mail(params[:mail]) | |||
# user not found in db | |||
flash.now[:notice] = l(:notice_account_unknown_email) and return unless user | |||
# user uses an external authentification | |||
flash.now[:notice] = l(:notice_can_t_change_password) and return if user.auth_source_id | |||
# create a new token for password recovery | |||
token = Token.new(:user => user, :action => "recovery") | |||
if token.save | |||
Mailer.set_language_if_valid(Localization.lang) | |||
# send token to user via email | |||
Mailer.set_language_if_valid(user.language) | |||
Mailer.deliver_lost_password(token) | |||
flash[:notice] = l(:notice_account_lost_email_sent) | |||
redirect_to :action => 'login' | |||
@@ -143,7 +149,7 @@ class AccountController < ApplicationController | |||
@user.custom_values = @custom_values | |||
token = Token.new(:user => @user, :action => "register") | |||
if @user.save and token.save | |||
Mailer.set_language_if_valid(Localization.lang) | |||
Mailer.set_language_if_valid(@user.language) | |||
Mailer.deliver_register(token) | |||
flash[:notice] = l(:notice_account_register_done) | |||
redirect_to :controller => '' |
@@ -37,21 +37,19 @@ class ApplicationController < ActionController::Base | |||
end | |||
def set_localization | |||
Localization.lang = begin | |||
if self.logged_in_user and Localization.langs.keys.include? self.logged_in_user.language | |||
lang = begin | |||
if self.logged_in_user and self.logged_in_user.language and !self.logged_in_user.language.empty? and GLoc.valid_languages.include? self.logged_in_user.language.to_sym | |||
self.logged_in_user.language | |||
elsif request.env['HTTP_ACCEPT_LANGUAGE'] | |||
accept_lang = HTTPUtils.parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.split('-').first | |||
if Localization.langs.keys.include? accept_lang | |||
if accept_lang and !accept_lang.empty? and GLoc.valid_languages.include? accept_lang.to_sym | |||
accept_lang | |||
end | |||
end | |||
rescue | |||
nil | |||
end || $RDM_DEFAULT_LANG | |||
set_language_if_valid(Localization.lang) | |||
set_language_if_valid(lang) | |||
end | |||
def require_login |
@@ -38,7 +38,7 @@ class EnumerationsController < ApplicationController | |||
def create | |||
@enumeration = Enumeration.new(params[:enumeration]) | |||
if @enumeration.save | |||
flash[:notice] = 'Enumeration was successfully created.' | |||
flash[:notice] = l(:notice_successful_create) | |||
redirect_to :action => 'list', :opt => @enumeration.opt | |||
else | |||
render :action => 'new' | |||
@@ -52,7 +52,7 @@ class EnumerationsController < ApplicationController | |||
def update | |||
@enumeration = Enumeration.find(params[:id]) | |||
if @enumeration.update_attributes(params[:enumeration]) | |||
flash[:notice] = 'Enumeration was successfully updated.' | |||
flash[:notice] = l(:notice_successful_update) | |||
redirect_to :action => 'list', :opt => @enumeration.opt | |||
else | |||
render :action => 'edit' | |||
@@ -60,7 +60,8 @@ class EnumerationsController < ApplicationController | |||
end | |||
def destroy | |||
Enumeration.find(params[:id]).destroy | |||
Enumeration.find(params[:id]).destroy | |||
flash[:notice] = l(:notice_successful_delete) | |||
redirect_to :action => 'list' | |||
rescue | |||
flash[:notice] = "Unable to delete enumeration" |
@@ -31,7 +31,7 @@ class HelpController < ApplicationController | |||
end | |||
end | |||
# choose language according to available help translations | |||
lang = (@help_config['langs'].include? Localization.lang) ? Localization.lang : @help_config['langs'].first | |||
lang = (@help_config['langs'].include? current_language) ? current_language : @help_config['langs'].first | |||
if template | |||
redirect_to "/manual/#{lang}/#{template}" |
@@ -227,7 +227,7 @@ class ProjectsController < ApplicationController | |||
CSV::Writer.generate(export, ',') do |csv| | |||
csv << %w(Id Status Tracker Subject Author Created Updated) | |||
@issues.each do |issue| | |||
csv << [issue.id, issue.status.name, issue.tracker.name, issue.subject, issue.author.display_name, _('(time)', issue.created_on), _('(time)', issue.updated_on)] | |||
csv << [issue.id, issue.status.name, issue.tracker.name, issue.subject, issue.author.display_name, l_datetime(issue.created_on), l_datetime(issue.updated_on)] | |||
end | |||
end | |||
export.rewind |
@@ -37,7 +37,7 @@ class RolesController < ApplicationController | |||
redirect_to :action => 'list' | |||
end | |||
end | |||
@permissions = Permission.find(:all, :order => 'sort ASC') | |||
@permissions = Permission.find(:all, :conditions => ["is_public=?", false], :order => 'sort ASC') | |||
end | |||
def edit | |||
@@ -48,7 +48,7 @@ class RolesController < ApplicationController | |||
flash[:notice] = 'Role was successfully updated.' | |||
redirect_to :action => 'list' | |||
end | |||
@permissions = Permission.find(:all, :order => 'sort ASC') | |||
@permissions = Permission.find(:all, :conditions => ["is_public=?", false], :order => 'sort ASC') | |||
end | |||
def destroy | |||
@@ -61,8 +61,7 @@ class RolesController < ApplicationController | |||
redirect_to :action => 'list' | |||
end | |||
def workflow | |||
def workflow | |||
@role = Role.find_by_id(params[:role_id]) | |||
@tracker = Tracker.find_by_id(params[:tracker_id]) | |||
@@ -50,18 +50,18 @@ module ApplicationHelper | |||
end | |||
def format_date(date) | |||
_('(date)', date) if date | |||
l_date(date) if date | |||
end | |||
def format_time(time) | |||
_('(time)', time) if time | |||
l_datetime(time) if time | |||
end | |||
def pagination_links_full(paginator, options={}, html_options={}) | |||
html ='' | |||
html << link_to(('« ' + _('Previous') ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous | |||
html << link_to(('« ' + l(:label_previous) ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous | |||
html << (pagination_links(paginator, options, html_options) || '') | |||
html << ' ' + link_to((_('Next') + ' »'), { :page => paginator.current.next }) if paginator.current.next | |||
html << ' ' + link_to((l(:label_next) + ' »'), { :page => paginator.current.next }) if paginator.current.next | |||
html | |||
end | |||
@@ -90,4 +90,8 @@ module ApplicationHelper | |||
"" | |||
end | |||
end | |||
def lang_options_for_select | |||
GLoc.valid_languages.collect {|lang| [ l_lang_name(lang.to_s, lang), lang.to_s]} | |||
end | |||
end |
@@ -58,42 +58,43 @@ module SearchFilterHelper | |||
def search_filter_init_list_issues | |||
search_filter_criteria('status_id') { | |||
[ [_('[Open]'), "O", ["issue_statuses.is_closed=?", false]], | |||
[_('[All]'), "A", nil] | |||
[ [('['+l(:label_open_issues_plural)+']'), "O", ["issue_statuses.is_closed=?", false]], | |||
[('['+l(:label_closed_issues_plural)+']'), "C", ["issue_statuses.is_closed=?", true]], | |||
[('['+l(:label_all)+']'), "A", nil] | |||
] + IssueStatus.find(:all).collect {|s| [s.name, s.id, ["issues.status_id=?", s.id]] } | |||
} | |||
search_filter_criteria('tracker_id') { | |||
[ [_('[All]'), "A", nil] | |||
[ [('['+l(:label_all)+']'), "A", nil] | |||
] + Tracker.find(:all).collect {|s| [s.name, s.id, ["issues.tracker_id=?", s.id]] } | |||
} | |||
search_filter_criteria('priority_id') { | |||
[ [_('[All]'), "A", nil] | |||
[ [('['+l(:label_all)+']'), "A", nil] | |||
] + Enumeration.find(:all, :conditions => ['opt=?','IPRI']).collect {|s| [s.name, s.id, ["issues.priority_id=?", s.id]] } | |||
} | |||
search_filter_criteria('category_id') { | |||
[ [_('[All]'), "A", nil], | |||
[_('[None]'), "N", ["issues.category_id is null"]] | |||
[ [('['+l(:label_all)+']'), "A", nil], | |||
[('['+l(:label_none)+']'), "N", ["issues.category_id is null"]] | |||
] + @project.issue_categories.find(:all).collect {|s| [s.name, s.id, ["issues.category_id=?", s.id]] } | |||
} | |||
search_filter_criteria('fixed_version_id') { | |||
[ [_('[All]'), "A", nil], | |||
[_('[None]'), "N", ["issues.fixed_version_id is null"]] | |||
[ [('['+l(:label_all)+']'), "A", nil], | |||
[('['+l(:label_none)+']'), "N", ["issues.fixed_version_id is null"]] | |||
] + @project.versions.collect {|s| [s.name, s.id, ["issues.fixed_version_id=?", s.id]] } | |||
} | |||
search_filter_criteria('assigned_to_id') { | |||
[ [_('[All]'), "A", nil], | |||
[_('[None]'), "N", ["issues.assigned_to_id is null"]] | |||
[ [('['+l(:label_all)+']'), "A", nil], | |||
[('['+l(:label_none)+']'), "N", ["issues.assigned_to_id is null"]] | |||
] + @project.users.collect {|s| [s.display_name, s.id, ["issues.assigned_to_id=?", s.id]] } | |||
} | |||
search_filter_criteria('subproject_id') { | |||
[ [_('[None]'), "N", ["issues.project_id=?", @project.id]], | |||
[_('[All]'), "A", ["(issues.project_id=? or projects.parent_id=?)", @project.id, @project.id]] | |||
[ [('['+l(:label_none)+']'), "N", ["issues.project_id=?", @project.id]], | |||
[('['+l(:label_all)+']'), "A", ["(issues.project_id=? or projects.parent_id=?)", @project.id, @project.id]] | |||
] | |||
} | |||
end |
@@ -30,7 +30,7 @@ class AuthSourceLdap < AuthSource | |||
# get user's DN | |||
ldap_con = initialize_ldap_con(self.account, self.account_password) | |||
login_filter = Net::LDAP::Filter.eq( self.attr_login, login ) | |||
object_filter = Net::LDAP::Filter.eq( "objectClass", "organizationalPerson" ) | |||
object_filter = Net::LDAP::Filter.eq( "objectClass", "*" ) | |||
dn = String.new | |||
ldap_con.search( :base => self.base_dn, | |||
:filter => object_filter & login_filter, |
@@ -21,18 +21,14 @@ class Enumeration < ActiveRecord::Base | |||
validates_presence_of :opt, :name | |||
validates_uniqueness_of :name, :scope => [:opt] | |||
OPTIONS = [ | |||
["Issue priorities", "IPRI"], | |||
["Document categories", "DCAT"] | |||
].freeze | |||
OPTIONS = { | |||
"IPRI" => :enumeration_issue_priorities, | |||
"DCAT" => :enumeration_doc_categories | |||
}.freeze | |||
def self.get_values(option) | |||
find(:all, :conditions => ['opt=?', option]) | |||
end | |||
def name | |||
_ self.attributes['name'] | |||
end | |||
private | |||
def check_integrity |
@@ -38,10 +38,6 @@ class IssueStatus < ActiveRecord::Base | |||
statuses | |||
end | |||
def name | |||
_ self.attributes['name'] | |||
end | |||
private | |||
def check_integrity | |||
raise "Can't delete status" if Issue.find(:first, :conditions => ["status_id=?", self.id]) or IssueHistory.find(:first, :conditions => ["status_id=?", self.id]) |
@@ -45,6 +45,5 @@ class Mailer < ActionMailer::Base | |||
@from = 'redmine@somenet.foo' | |||
@subject = "redMine account activation" | |||
@body['token'] = token | |||
end | |||
end | |||
end |
@@ -16,14 +16,14 @@ | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
class Member < ActiveRecord::Base | |||
belongs_to :user | |||
belongs_to :role | |||
belongs_to :project | |||
validates_presence_of :role, :user, :project | |||
belongs_to :user | |||
belongs_to :role | |||
belongs_to :project | |||
validates_presence_of :role, :user, :project | |||
validates_uniqueness_of :user_id, :scope => :project_id | |||
def name | |||
self.user.display_name | |||
end | |||
def name | |||
self.user.display_name | |||
end | |||
end |
@@ -16,13 +16,13 @@ | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
class News < ActiveRecord::Base | |||
belongs_to :project | |||
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' | |||
validates_presence_of :title, :description | |||
# returns last created news | |||
def self.latest | |||
find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC") | |||
end | |||
belongs_to :project | |||
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' | |||
validates_presence_of :title, :description | |||
# returns last created news | |||
def self.latest | |||
find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC") | |||
end | |||
end |
@@ -16,27 +16,27 @@ | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
class Permission < ActiveRecord::Base | |||
has_and_belongs_to_many :roles | |||
validates_presence_of :controller, :action, :description | |||
has_and_belongs_to_many :roles | |||
validates_presence_of :controller, :action, :description | |||
GROUPS = { | |||
100 => "Project", | |||
200 => "Membres", | |||
300 => "Versions", | |||
400 => "Issue categories", | |||
1000 => "Issues", | |||
1100 => "News", | |||
1200 => "Documents", | |||
1300 => "Files", | |||
}.freeze | |||
100 => :label_project, | |||
200 => :label_member_plural, | |||
300 => :label_version_plural, | |||
400 => :label_issue_category_plural, | |||
1000 => :label_issue_plural, | |||
1100 => :label_news_plural, | |||
1200 => :label_document_plural, | |||
1300 => :label_attachment_plural, | |||
}.freeze | |||
@@cached_perms_for_public = nil | |||
@@cached_perms_for_roles = nil | |||
def name | |||
self.controller + "/" + self.action | |||
end | |||
def name | |||
self.controller + "/" + self.action | |||
end | |||
def group_id | |||
(self.sort / 100)*100 |
@@ -17,13 +17,13 @@ | |||
class Role < ActiveRecord::Base | |||
before_destroy :check_integrity | |||
has_and_belongs_to_many :permissions | |||
has_and_belongs_to_many :permissions | |||
has_many :workflows, :dependent => true | |||
has_many :members | |||
validates_presence_of :name | |||
validates_uniqueness_of :name | |||
validates_presence_of :name | |||
validates_uniqueness_of :name | |||
private | |||
def check_integrity | |||
raise "Can't delete role" if Member.find(:first, :conditions =>["role_id=?", self.id]) |
@@ -24,10 +24,6 @@ class Tracker < ActiveRecord::Base | |||
validates_presence_of :name | |||
validates_uniqueness_of :name | |||
def name | |||
_ self.attributes['name'] | |||
end | |||
private | |||
def check_integrity | |||
raise "Can't delete tracker" if Issue.find(:first, :conditions => ["tracker_id=?", self.id]) |
@@ -57,7 +57,7 @@ class User < ActiveRecord::Base | |||
# user has an external authentication method | |||
return nil unless user.auth_source.authenticate(login, password) | |||
else | |||
# local authentication | |||
# authentication with local password | |||
return nil unless User.hash_password(password) == user.hashed_password | |||
end | |||
else | |||
@@ -69,6 +69,7 @@ class User < ActiveRecord::Base | |||
onthefly.language = $RDM_DEFAULT_LANG | |||
if onthefly.save | |||
user = find(:first, :conditions => ["login=?", login]) | |||
logger.info("User '#{user.login}' created on the fly.") if logger | |||
end | |||
end | |||
end |
@@ -23,7 +23,7 @@ | |||
<%= text_field 'user', 'mail' %></p> | |||
<p><label for="user_language"><%=l(:field_language)%></label><br/> | |||
<%= select("user", "language", Localization.langs.invert) %></p> | |||
<%= select("user", "language", lang_options_for_select) %></p> | |||
<!--[eoform:user]--> | |||
<p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p> | |||
@@ -34,7 +34,8 @@ | |||
</div> | |||
<div class="splitcontentright"> | |||
<div class="splitcontentright"> | |||
<% unless @user.auth_source_id %> | |||
<div class="box"> | |||
<h3><%=l(:field_password)%></h3> | |||
| |||
@@ -51,5 +52,6 @@ | |||
<center><%= submit_tag l(:button_save) %></center> | |||
<%= end_form_tag %> | |||
</div> | |||
</div> | |||
<% end %> | |||
</div> |
@@ -1,7 +1,6 @@ | |||
<h2><%=l(:label_register)%></h2> | |||
<%= start_form_tag %> | |||
<%= error_messages_for 'user' %> | |||
<div class="box"> | |||
@@ -25,22 +24,15 @@ | |||
<%= text_field 'user', 'mail' %></p> | |||
<p><label for="user_language"><%=l(:field_language)%></label><br/> | |||
<%= select("user", "language", Localization.langs.invert) %></p> | |||
<%= select("user", "language", lang_options_for_select) %></p> | |||
<% for custom_value in @custom_values %> | |||
<div style="float:left;margin-right:10px;"> | |||
<p><%= content_tag "label", custom_value.custom_field.name %> | |||
<% if custom_value.custom_field.is_required? %><span class="required">*</span><% end %> | |||
<br /> | |||
<%= custom_field_tag custom_value %></p> | |||
</div> | |||
<% for custom_value in @custom_values %> | |||
<p><%= custom_field_tag_with_label custom_value %></p> | |||
<% end %> | |||
<div style="clear: both;"></div> | |||
<p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p> | |||
<!--[eoform:user]--> | |||
</div> | |||
<%= submit_tag l(:button_submit) %> | |||
<%= submit_tag l(:button_submit) %> | |||
<%= end_form_tag %> |
@@ -1,4 +1,4 @@ | |||
<h2><%=_('Information')%></h2> | |||
<h2><%=l(:label_information_plural)%></h2> | |||
<p><%=l(:field_version)%>: <strong><%= RDM_APP_NAME %> <%= RDM_APP_VERSION %></strong></p> | |||
@@ -7,7 +7,7 @@ | |||
<th><%=l(:field_field_format)%></th> | |||
<th><%=l(:field_is_required)%></th> | |||
<th><%=l(:field_is_for_all)%></th> | |||
<th><%=_('Used by')%></th> | |||
<th><%=l(:label_used_by)%></th> | |||
<th></th> | |||
</tr> | |||
<% for custom_field in @custom_fields %> |
@@ -9,7 +9,7 @@ | |||
<p><label for="document_title"><%=l(:field_title)%> <span class="required">*</span></label><br /> | |||
<%= text_field 'document', 'title', :size => 60 %></p> | |||
<p><label for="document_description"><%=l(:field_description)%> <span class="required">*</span></label><br /> | |||
<p><label for="document_description"><%=l(:field_description)%></label><br /> | |||
<%= text_area 'document', 'description', :cols => 60, :rows => 5 %></p> | |||
<!--[eoform:document]--> | |||
@@ -1,8 +1,8 @@ | |||
<h2><%=_('Document')%></h2> | |||
<h2><%=l(:label_document)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @document %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> | |||
@@ -1,18 +1,18 @@ | |||
<h2><%= @document.title %></h2> | |||
<strong><%=_('Description')%>:</strong> <%= @document.description %><br /> | |||
<strong><%=_('Category')%>:</strong> <%= @document.category.name %><br /> | |||
<strong><%=l(:field_description)%>:</strong> <%= @document.description %><br /> | |||
<strong><%=l(:field_category)%>:</strong> <%= @document.category.name %><br /> | |||
<br /> | |||
<% if authorize_for('documents', 'edit') %> | |||
<%= start_form_tag ({ :controller => 'documents', :action => 'edit', :id => @document }, :method => 'get' ) %> | |||
<%= submit_tag _('Edit') %> | |||
<%= start_form_tag({ :controller => 'documents', :action => 'edit', :id => @document }, :method => 'get' ) %> | |||
<%= submit_tag l(:button_edit) %> | |||
<%= end_form_tag %> | |||
<% end %> | |||
<% if authorize_for('documents', 'destroy') %> | |||
<%= start_form_tag ({ :controller => 'documents', :action => 'destroy', :id => @document } ) %> | |||
<%= submit_tag _('Delete') %> | |||
<%= start_form_tag({ :controller => 'documents', :action => 'destroy', :id => @document } ) %> | |||
<%= submit_tag l(:button_delete) %> | |||
<%= end_form_tag %> | |||
<% end %> | |||
@@ -24,12 +24,12 @@ | |||
<td><%= link_to attachment.filename, :action => 'download', :id => @document, :attachment_id => attachment %></td> | |||
<td align="center"><%= format_date(attachment.created_on) %></td> | |||
<td align="center"><%= attachment.author.display_name %></td> | |||
<td><%= human_size(attachment.filesize) %><br /><%= attachment.downloads %> <%=_('download')%>(s)</td> | |||
<td><%= human_size(attachment.filesize) %><br /><%= lwr(:label_download, attachment.downloads) %></td> | |||
<% if authorize_for('documents', 'destroy_attachment') %> | |||
<td align="center"> | |||
<%= start_form_tag :action => 'destroy_attachment', :id => @document, :attachment_id => attachment %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</tr> | |||
<% end %> | |||
@@ -40,8 +40,8 @@ | |||
<% if authorize_for('documents', 'add_attachment') %> | |||
<%= start_form_tag ({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true) %> | |||
<%=_('Add file')%><br /><%= file_field 'attachment', 'file' %> | |||
<%= submit_tag _('Add') %> | |||
<%=l(:label_attachment_new)%><br /><%= file_field 'attachment', 'file' %> | |||
<%= submit_tag l(:button_add) %> | |||
<%= end_form_tag %> | |||
<% end %> | |||
@@ -3,7 +3,7 @@ | |||
<!--[form:optvalue]--> | |||
<%= hidden_field 'enumeration', 'opt' %> | |||
<p><label for="enumeration_name"><%=_('Name')%></label><br/> | |||
<p><label for="enumeration_name"><%=l(:field_name)%></label><br/> | |||
<%= text_field 'enumeration', 'name' %></p> | |||
<!--[eoform:optvalue]--> | |||
@@ -1,10 +1,10 @@ | |||
<h2><%=_('Enumerations')%></h2> | |||
<h2><%=l(:label_enumerations)%></h2> | |||
<%= start_form_tag :action => 'update', :id => @enumeration %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> | |||
<%= start_form_tag :action => 'destroy', :id => @enumeration %> | |||
<%= submit_tag _('Delete') %> | |||
<%= submit_tag l(:button_delete) %> | |||
<%= end_form_tag %> |
@@ -1,22 +1,21 @@ | |||
<h2><%=_('Enumerations')%></h2> | |||
<h2><%=l(:label_enumerations)%></h2> | |||
<% for option in Enumeration::OPTIONS %> | |||
<% Enumeration::OPTIONS.each do |option, name| %> | |||
<% if @params[:opt]==option[1] %> | |||
<% if @params[:opt]==option %> | |||
<p><%= image_tag 'dir_open' %> <b><%=_ option[0] %></b></p> | |||
<p><%= image_tag 'dir_open' %> <b><%= l(name) %></b></p> | |||
<ul> | |||
<% for value in Enumeration::find(:all, :conditions => [ "opt = ?", option[1]]) %> | |||
<% for value in Enumeration.find(:all, :conditions => ["opt = ?", option]) %> | |||
<li><%= link_to value.name, :action => 'edit', :id => value %></li> | |||
<% end %> | |||
</ul> | |||
<ul> | |||
<li><%= link_to ('» ' + _('New')), :action => 'new', :opt => option[1] %></li> | |||
<li><%= link_to ('» ' + l(:label_new)), :action => 'new', :opt => option %></li> | |||
</ul> | |||
<% else %> | |||
<p><%= image_tag 'dir' %> <%= link_to _(option[0]), :opt => option[1] %></p> | |||
<p><%= image_tag 'dir' %> <%= link_to l(name), :opt => option %></p> | |||
<% end %> | |||
<% end %> | |||
<% end %> |
@@ -1,6 +1,6 @@ | |||
<h2><%=_('New enumeration')%></h2> | |||
<h2><%=l(:label_enumeration_new)%></h2> | |||
<%= start_form_tag :action => 'create' %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> |
@@ -1,7 +1,7 @@ | |||
<%= error_messages_for 'issue_category' %> | |||
<!--[form:issue_category]--> | |||
<p><label for="issue_category_name"><%=_('Name')%></label><br/> | |||
<p><label for="issue_category_name"><%l(:field_name)%></label><br/> | |||
<%= text_field 'issue_category', 'name' %></p> | |||
<!--[eoform:issue_category]--> | |||
@@ -1,6 +1,6 @@ | |||
<h2>Editing issue category</h2> | |||
<h2><%=l(:label_issue_category)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @category %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,16 +1,16 @@ | |||
<%= error_messages_for 'issue_status' %> | |||
<!--[form:issue_status]--> | |||
<p><label for="issue_status_name"><%=_('Name')%></label> <span class="required">*</span><br/> | |||
<p><label for="issue_status_name"><%=l(:field_name)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'issue_status', 'name' %></p> | |||
<p><%= check_box 'issue_status', 'is_closed' %> | |||
<label for="issue_status_is_closed"><%=_('Issue closed')%></label></p> | |||
<label for="issue_status_is_closed"><%=l(:field_is_closed)%></label></p> | |||
<p><%= check_box 'issue_status', 'is_default' %> | |||
<label for="issue_status_is_default"><%=_('Default status')%></label></p> | |||
<label for="issue_status_is_default"><%=l(:field_is_default)%></label></p> | |||
<p><label for="issue_status_html_color"><%=_('Color')%></label> | |||
<p><label for="issue_status_html_color"><%=l(:field_html_color)%></label> | |||
#<%= text_field 'issue_status', 'html_color', :maxlength => 6 %> <span class="required">*</span></p> | |||
<!--[eoform:issue_status]--> |
@@ -1,6 +1,6 @@ | |||
<h2><%=_('Issue status')%></h2> | |||
<h2><%=l(:label_issue_status)%></h2> | |||
<%= start_form_tag :action => 'update', :id => @issue_status %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,11 +1,11 @@ | |||
<h2><%=_('Issue statuses')%></h2> | |||
<h2><%=l(:label_issue_status_plural)%></h2> | |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<th><%=_('Status')%></th> | |||
<th><%=_('Default status')%></th> | |||
<th><%=_('Issue closed')%></th> | |||
<th><%=_('Color')%></th> | |||
<th><%=l(:field_status)%></th> | |||
<th><%=l(:field_is_default)%></th> | |||
<th><%=l(:field_is_closed)%></th> | |||
<th><%=l(:field_html_color)%></th> | |||
<th></th> | |||
</tr> | |||
@@ -17,7 +17,7 @@ | |||
<td bgcolor="#<%= status.html_color %>"> </td> | |||
<td align="center"> | |||
<%= start_form_tag :action => 'destroy', :id => status %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
</tr> | |||
@@ -27,4 +27,4 @@ | |||
<%= pagination_links_full @issue_status_pages %> | |||
<br /> | |||
<%= link_to '» ' + _('New issue status'), :action => 'new' %> | |||
<%= link_to '» ' + l(:label_issue_status_new), :action => 'new' %> |
@@ -1,6 +1,6 @@ | |||
<h2><%=_('New issue status')%></h2> | |||
<h2><%=l(:label_issue_status_new)%></h2> | |||
<%= start_form_tag :action => 'create' %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> |
@@ -1,28 +1,28 @@ | |||
<% if issues.length > 0 %> | |||
<table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable"> | |||
<tr><td> | |||
<table width="100%" border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<th>#</th> | |||
<th><%=_('Tracker')%></th> | |||
<th><%=_('Subject')%></th> | |||
</tr> | |||
<% for issue in issues %> | |||
<tr bgcolor="#<%= issue.status.html_color %>"> | |||
<td align="center"> | |||
<%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %><br /> | |||
</td> | |||
<td><p class="small"><%= issue.project.name %> - <%= issue.tracker.name %><br /> | |||
<%= issue.status.name %> - <%= format_time(issue.updated_on) %></p></td> | |||
<td> | |||
<p class="small"><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></p> | |||
</td> | |||
</tr> | |||
<% end %> | |||
</table> | |||
</td> | |||
<table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable"> | |||
<tr><td> | |||
<table width="100%" border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<th>#</th> | |||
<th><%=l(:field_tracker)%></th> | |||
<th><%=l(:field_subject)%></th> | |||
</tr> | |||
</table> | |||
<% for issue in issues %> | |||
<tr bgcolor="#<%= issue.status.html_color %>"> | |||
<td align="center"> | |||
<%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %><br /> | |||
</td> | |||
<td><p class="small"><%= issue.project.name %> - <%= issue.tracker.name %><br /> | |||
<%= issue.status.name %> - <%= format_time(issue.updated_on) %></p></td> | |||
<td> | |||
<p class="small"><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></p> | |||
</td> | |||
</tr> | |||
<% end %> | |||
</table> | |||
</td> | |||
</tr> | |||
</table> | |||
<% else %> | |||
<%=_('No issue')%> | |||
<i><%=l(:label_no_data)%></i> | |||
<% end %> |
@@ -1,4 +1,4 @@ | |||
<h2><%=_('Issue')%> #<%= @issue.id %>: <%= @issue.subject %></h2> | |||
<h2><%=l(:label_issue)%> #<%= @issue.id %>: <%= @issue.subject %></h2> | |||
<%= error_messages_for 'history' %> | |||
<%= start_form_tag :action => 'change_status', :id => @issue %> | |||
@@ -7,26 +7,25 @@ | |||
<%= hidden_field 'history', 'status_id' %> | |||
<div class="box"> | |||
<p><%=_('New status')%>: <b><%= @history.status.name %></b></p> | |||
<p><%=l(:label_issue_status_new)%>: <b><%= @history.status.name %></b></p> | |||
<div> | |||
<p><label for="issue_assigned_to_id"><%=_('Assigned to')%></label><br/> | |||
<p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label><br/> | |||
<select name="issue[assigned_to_id]"> | |||
<option value=""></option> | |||
<%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %></p> | |||
</select></p> | |||
</div> | |||
<p><label for="issue_fixed_version"><%=_('Fixed in version')%></label><br/> | |||
<p><label for="issue_fixed_version"><%=l(:field_fixed_version)%></label><br/> | |||
<select name="issue[fixed_version_id]"> | |||
<option value="">--none--</option> | |||
<%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %> | |||
</select></p> | |||
<p><label for="history_notes"><%=_('Notes')%></label><br /> | |||
<p><label for="history_notes"><%=l(:field_notes)%></label><br /> | |||
<%= text_area 'history', 'notes', :cols => 60, :rows => 10 %></p> | |||
</div> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,21 +1,21 @@ | |||
<h2><%=_@issue.tracker.name%> #<%= @issue.id %> - <%= @issue.subject %></h2> | |||
<h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2> | |||
<%= error_messages_for 'issue' %> | |||
<%= start_form_tag :action => 'edit', :id => @issue %> | |||
<div class="box"> | |||
<!--[form:issue]--> | |||
<p><%=_('Status')%>: <b><%= @issue.status.name %></b></p> | |||
<p><%=l(:field_status)%>: <b><%= @issue.status.name %></b></p> | |||
<div style="float:left;margin-right:10px;"> | |||
<p><label for="issue_priority_id"><%=_('Priority')%> <span class="required">*</span></label><br/> | |||
<p><label for="issue_priority_id"><%=l(:field_priority)%> <span class="required">*</span></label><br/> | |||
<select name="issue[priority_id]"> | |||
<%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p> | |||
</select></p> | |||
</div> | |||
<div style="float:left;margin-right:10px;"> | |||
<p><label for="issue_assigned_to_id"><%=_('Assigned to')%></label><br/> | |||
<p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label><br/> | |||
<select name="issue[assigned_to_id]"> | |||
<option value=""></option> | |||
<%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p> | |||
@@ -23,24 +23,27 @@ | |||
</div> | |||
<div> | |||
<p><label for="issue_category_id"><%=_('Category')%></label><br/> | |||
<p><label for="issue_category_id"><%=l(:field_category)%></label><br/> | |||
<select name="issue[category_id]"> | |||
<option value=""></option> | |||
<%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %></p> | |||
</select></p> | |||
</div> | |||
<p><label for="issue_subject"><%=_('Subject')%></label><span class="required">*</span><br/> | |||
<p><label for="issue_subject"><%=l(:field_subject)%></label><span class="required">*</span><br/> | |||
<%= text_field 'issue', 'subject', :size => 60 %></p> | |||
<p><label for="issue_description"><%=_('Description')%></label><span class="required">*</span><br/> | |||
<p><label for="issue_description"><%=l(:field_description)%></label><span class="required">*</span><br/> | |||
<%= text_area 'issue', 'description', :cols => 60, :rows => 10 %></p> | |||
<p><label for="issue_due_date"><%=l(:field_due_date)%></label><br /> | |||
<%= date_select 'issue', 'due_date', :start_year => Date.today.year, :include_blank => true %></p> | |||
<% for custom_value in @custom_values %> | |||
<p><%= custom_field_tag_with_label custom_value %></p> | |||
<% end %> | |||
<p><label for="issue_fixed_version"><%=_('Fixed in version')%></label><br/> | |||
<p><label for="issue_fixed_version"><%=l(:field_fixed_version)%></label><br/> | |||
<select name="issue[fixed_version_id]"> | |||
<option value="">--none--</option> | |||
<%= options_from_collection_for_select @project.versions, "id", "name", @issue.fixed_version_id %> | |||
@@ -49,5 +52,5 @@ | |||
<!--[eoform:issue]--> | |||
</div> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,42 +1,43 @@ | |||
<h2><%=_(@issue.tracker.name)%> #<%= @issue.id %> - <%= @issue.subject %></h2> | |||
<h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2> | |||
<div class="box"> | |||
<p><b><%=_('Status')%>:</b> <%= @issue.status.name %></p> | |||
<p><b><%=_('Priority')%>:</b> <%= @issue.priority.name %></p> | |||
<p><b><%=_('Category')%>:</b> <%= @issue.category.name unless @issue.category_id.nil? %></p> | |||
<p><b><%=_('Author')%>:</b> <%= @issue.author.display_name %></p> | |||
<p><b><%=_('Assigned to')%>:</b> <%= @issue.assigned_to.display_name unless @issue.assigned_to.nil? %></p> | |||
<p><b><%=_('Subject')%>:</b> <%= @issue.subject %></p> | |||
<p><b><%=_('Description')%>:</b> <%= simple_format auto_link @issue.description %></p> | |||
<p><b><%=_('Created on')%>:</b> <%= format_date(@issue.created_on) %></p> | |||
<p> | |||
<b><%=l(:field_status)%> :</b> <%= @issue.status.name %>     | |||
<b><%=l(:field_priority)%> :</b> <%= @issue.priority.name %>     | |||
<b><%=l(:field_assigned_to)%> :</b> <%= @issue.assigned_to ? @issue.assigned_to.display_name : "-" %>     | |||
<b><%=l(:field_category)%> :</b> <%= @issue.category ? @issue.category.name : "-" %> | |||
</p> | |||
<p><b><%=l(:field_author)%> :</b> <%= @issue.author.display_name %></p> | |||
<p><b><%=l(:field_subject)%> :</b> <%= @issue.subject %></p> | |||
<p><b><%=l(:field_description)%> :</b> <%= simple_format auto_link @issue.description %></p> | |||
<p><b><%=l(:field_due_date)%> :</b> <%= format_date(@issue.due_date) %></p> | |||
<p><b><%=l(:field_created_on)%> :</b> <%= format_date(@issue.created_on) %></p> | |||
<% for custom_value in @custom_values %> | |||
<p><b><%= custom_value.custom_field.name %></b>: <%= show_value custom_value %></p> | |||
<p><b><%= custom_value.custom_field.name %></b> : <%= show_value custom_value %></p> | |||
<% end %> | |||
<% if authorize_for('issues', 'edit') %> | |||
<%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %> | |||
<%= submit_tag _('Edit') %> | |||
<%= submit_tag l(:button_edit) %> | |||
<%= end_form_tag %> | |||
| |||
<% end %> | |||
<% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %> | |||
<%= start_form_tag ({:controller => 'issues', :action => 'change_status', :id => @issue}) %> | |||
<label for="history_status_id"><%=_('Change status')%>:</label> | |||
<label for="history_status_id"><%=l(:label_change_status)%> :</label> | |||
<select name="history[status_id]"> | |||
<%= options_from_collection_for_select @status_options, "id", "name" %> | |||
</select> | |||
<%= submit_tag _ "Update..." %> | |||
<%= submit_tag l(:button_change) %> | |||
<%= end_form_tag %> | |||
| |||
<% end %> | |||
<% if authorize_for('issues', 'destroy') %> | |||
<%= start_form_tag ({:controller => 'issues', :action => 'destroy', :id => @issue} ) %> | |||
<%= submit_tag _ "Delete" %> | |||
<%= submit_tag l(:button_delete) %> | |||
<%= end_form_tag %> | |||
| |||
<% end %> | |||
@@ -46,7 +47,7 @@ | |||
<div class="splitcontentleft"> | |||
<div class="box"> | |||
<h3><%=_('History')%></h3> | |||
<h3><%=l(:label_history)%></h3> | |||
<table width="100%"> | |||
<% for history in @issue.histories.find(:all, :include => :author) %> | |||
<tr> | |||
@@ -64,7 +65,7 @@ | |||
<div class="splitcontentright"> | |||
<div class="box"> | |||
<h3><%=_('Attachments')%></h3> | |||
<h3><%=l(:label_attachment_plural)%></h3> | |||
<table width="100%"> | |||
<% for attachment in @issue.attachments %> | |||
<tr> | |||
@@ -74,7 +75,7 @@ | |||
<% if authorize_for('issues', 'destroy_attachment') %> | |||
<td> | |||
<%= start_form_tag :action => 'destroy_attachment', :id => @issue, :attachment_id => attachment %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
<% end %> | |||
@@ -84,8 +85,8 @@ | |||
<br /> | |||
<% if authorize_for('issues', 'add_attachment') %> | |||
<%= start_form_tag ({ :controller => 'issues', :action => 'add_attachment', :id => @issue }, :multipart => true) %> | |||
<%=_('Add file')%>: <%= file_field 'attachment', 'file' %> | |||
<%= submit_tag _('Add') %> | |||
<%=l(:label_attachment_new)%>: <%= file_field 'attachment', 'file' %> | |||
<%= submit_tag l(:button_add) %> | |||
<%= end_form_tag %> | |||
<% end %> | |||
</div> |
@@ -14,33 +14,33 @@ | |||
<script type='text/javascript'> | |||
var menu_contenu=' \ | |||
<div id="menuAdmin" class="menu" onmouseover="menuMouseover(event)"> \ | |||
<a class="menuItem" href="\/admin\/projects" onmouseover="menuItemMouseover(event,\'menuProjects\');"><span class="menuItemText"><%=_('Projects')%><\/span><span class="menuItemArrow">▶<\/span><\/a> \ | |||
<a class="menuItem" href="\/users" onmouseover="menuItemMouseover(event,\'menuUsers\');"><span class="menuItemText"><%=_('Users')%><\/span><span class="menuItemArrow">▶<\/span><\/a> \ | |||
<a class="menuItem" href="\/roles"><%=_('Roles and permissions')%><\/a> \ | |||
<a class="menuItem" href="\/trackers" onmouseover="menuItemMouseover(event,\'menuTrackers\');"><span class="menuItemText"><%=_('Trackers')%><\/span><span class="menuItemArrow">▶<\/span><\/a> \ | |||
<a class="menuItem" href="\/custom_fields"><%=_('Custom fields')%><\/a> \ | |||
<a class="menuItem" href="\/enumerations"><%=_('Enumerations')%><\/a> \ | |||
<a class="menuItem" href="\/admin\/mail_options"><%=_('Mail notifications')%><\/a> \ | |||
<a class="menuItem" href="\/admin\/projects" onmouseover="menuItemMouseover(event,\'menuProjects\');"><span class="menuItemText"><%=l(:label_project_plural)%><\/span><span class="menuItemArrow">▶<\/span><\/a> \ | |||
<a class="menuItem" href="\/users" onmouseover="menuItemMouseover(event,\'menuUsers\');"><span class="menuItemText"><%=l(:label_user_plural)%><\/span><span class="menuItemArrow">▶<\/span><\/a> \ | |||
<a class="menuItem" href="\/roles"><%=l(:label_role_and_permissions)%><\/a> \ | |||
<a class="menuItem" href="\/trackers" onmouseover="menuItemMouseover(event,\'menuTrackers\');"><span class="menuItemText"><%=l(:label_tracker_plural)%><\/span><span class="menuItemArrow">▶<\/span><\/a> \ | |||
<a class="menuItem" href="\/custom_fields"><%=l(:label_custom_field_plural)%><\/a> \ | |||
<a class="menuItem" href="\/enumerations"><%=l(:label_enumerations)%><\/a> \ | |||
<a class="menuItem" href="\/admin\/mail_options"><%=l(:field_mail_notification)%><\/a> \ | |||
<a class="menuItem" href="\/auth_sources"><%=l(:label_authentication)%><\/a> \ | |||
<a class="menuItem" href="\/admin\/info"><%=_('Information')%><\/a> \ | |||
<a class="menuItem" href="\/admin\/info"><%=l(:label_information_plural)%><\/a> \ | |||
<\/div> \ | |||
<div id="menuTrackers" class="menu"> \ | |||
<a class="menuItem" href="\/issue_statuses"><%=_('Issue Statuses')%><\/a> \ | |||
<a class="menuItem" href="\/roles\/workflow"><%=_('Workflow')%><\/a> \ | |||
<a class="menuItem" href="\/issue_statuses"><%=l(:label_issue_status_plural)%><\/a> \ | |||
<a class="menuItem" href="\/roles\/workflow"><%=l(:label_workflow)%><\/a> \ | |||
<\/div> \ | |||
<div id="menuProjects" class="menu"><a class="menuItem" href="\/projects\/add"><%=_('New')%><\/a><\/div> \ | |||
<div id="menuUsers" class="menu"><a class="menuItem" href="\/users\/add"><%=_('New')%><\/a><\/div> \ | |||
<div id="menuProjects" class="menu"><a class="menuItem" href="\/projects\/add"><%=l(:label_new)%><\/a><\/div> \ | |||
<div id="menuUsers" class="menu"><a class="menuItem" href="\/users\/add"><%=l(:label_new)%><\/a><\/div> \ | |||
\ | |||
<% unless @project.nil? || @project.id.nil? %> \ | |||
<div id="menuProject" class="menu" onmouseover="menuMouseover(event)"> \ | |||
<%= link_to _('Issues'), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to _('Reports'), {:controller => 'reports', :action => 'issue_report', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to _('News'), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to _('Change log'), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to _('Documents'), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to _('Members'), {:controller => 'projects', :action => 'list_members', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to _('Files'), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to_if_authorized _('Settings'), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_issue_plural), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_report_plural), {:controller => 'reports', :action => 'issue_report', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_news_plural), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_change_log), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_member_plural), {:controller => 'projects', :action => 'list_members', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to l(:label_attachment_plural), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %> \ | |||
<%= link_to_if_authorized l(:label_settings), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %> \ | |||
<\/div> \ | |||
<% end %> \ | |||
'; | |||
@@ -95,20 +95,20 @@ var menu_contenu=' \ | |||
<% unless @project.nil? || @project.id.nil? %> | |||
<h2><%= @project.name %></h2> | |||
<ul class="menublock"> | |||
<li><%= link_to _('Overview'), :controller => 'projects', :action => 'show', :id => @project %></li> | |||
<li><%= link_to _('Issues'), :controller => 'projects', :action => 'list_issues', :id => @project %></li> | |||
<li><%= link_to _('Reports'), :controller => 'reports', :action => 'issue_report', :id => @project %></li> | |||
<li><%= link_to _('News'), :controller => 'projects', :action => 'list_news', :id => @project %></li> | |||
<li><%= link_to _('Change log'), :controller => 'projects', :action => 'changelog', :id => @project %></li> | |||
<li><%= link_to _('Documents'), :controller => 'projects', :action => 'list_documents', :id => @project %></li> | |||
<li><%= link_to _('Members'), :controller => 'projects', :action => 'list_members', :id => @project %></li> | |||
<li><%= link_to _('Files'), :controller => 'projects', :action => 'list_files', :id => @project %></li> | |||
<li><%= link_to_if_authorized _('Settings'), :controller => 'projects', :action => 'settings', :id => @project %></li> | |||
<li><%= link_to l(:label_overview), :controller => 'projects', :action => 'show', :id => @project %></li> | |||
<li><%= link_to l(:label_issue_plural), :controller => 'projects', :action => 'list_issues', :id => @project %></li> | |||
<li><%= link_to l(:label_report_plural), :controller => 'reports', :action => 'issue_report', :id => @project %></li> | |||
<li><%= link_to l(:label_news_plural), :controller => 'projects', :action => 'list_news', :id => @project %></li> | |||
<li><%= link_to l(:label_change_log), :controller => 'projects', :action => 'changelog', :id => @project %></li> | |||
<li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li> | |||
<li><%= link_to l(:label_member_plural), :controller => 'projects', :action => 'list_members', :id => @project %></li> | |||
<li><%= link_to l(:label_attachment_plural), :controller => 'projects', :action => 'list_files', :id => @project %></li> | |||
<li><%= link_to_if_authorized l(:label_settings), :controller => 'projects', :action => 'settings', :id => @project %></li> | |||
</ul> | |||
<% end %> | |||
<% if loggedin? and @logged_in_user.memberships.length > 0 %> | |||
<h2><%=_('My projects') %></h2> | |||
<h2><%=l(:label_my_projects) %></h2> | |||
<ul class="menublock"> | |||
<% for membership in @logged_in_user.memberships %> | |||
<li><%= link_to membership.project.name, :controller => 'projects', :action => 'show', :id => membership.project %></li> |
@@ -1,5 +1,5 @@ | |||
<%=_('Issue')%> #<%= issue.id %> - <%= issue.subject %> | |||
<%=_('Author')%>: <%= issue.author.display_name %> | |||
<%=l(:label_issue)%> #<%= issue.id %> - <%= issue.subject %> | |||
<%=l(:field_author)%>: <%= issue.author.display_name %> | |||
<%= issue.description %> | |||
@@ -1,13 +1,13 @@ | |||
<%= error_messages_for 'news' %> | |||
<!--[form:news]--> | |||
<p><label for="news_title"><%=_('Title')%></label> <span class="required">*</span><br/> | |||
<p><label for="news_title"><%=l(:field_title)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'news', 'title', :size => 60 %></p> | |||
<p><label for="news_summary"><%=_('Summary')%></label><br/> | |||
<p><label for="news_summary"><%=l(:field_summary)%></label><br/> | |||
<%= text_area 'news', 'summary', :cols => 60, :rows => 2 %></p> | |||
<p><label for="news_description"><%=_('Description')%> <span class="required">*</span></label><br/> | |||
<p><label for="news_description"><%=l(:field_description)%> <span class="required">*</span></label><br/> | |||
<%= text_area 'news', 'description', :cols => 60, :rows => 10 %></p> | |||
<!--[eoform:news]--> | |||
@@ -1,6 +1,6 @@ | |||
<h2><%=_('News')%></h2> | |||
<h2><%=l(:label_news)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @news %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,9 +1,9 @@ | |||
<h2><%= @news.title %></h2> | |||
<p> | |||
<b><%=_('Summary')%></b>: <%= @news.summary %><br /> | |||
<b><%=_('By')%></b>: <%= @news.author.display_name %><br /> | |||
<b><%=_('Date')%></b>: <%= format_time(@news.created_on) %> | |||
<b><%=l(:field_summary)%></b>: <%= @news.summary %><br /> | |||
<b><%=l(:field_author)%></b>: <%= @news.author.display_name %><br /> | |||
<b><%=l(:field_created_on)%></b>: <%= format_time(@news.created_on) %> | |||
</p> | |||
<%= simple_format auto_link @news.description %> |
@@ -2,31 +2,31 @@ | |||
<div class="box"> | |||
<!--[form:project]--> | |||
<p><label for="project_name"><%=_('Name')%> <span class="required">*</span></label><br/> | |||
<p><label for="project_name"><%=l(:field_name)%> <span class="required">*</span></label><br/> | |||
<%= text_field 'project', 'name' %></p> | |||
<% if admin_loggedin? %> | |||
<p><label for="project_parent_id"><%=_('Subproject of')%></label><br/> | |||
<p><label for="project_parent_id"><%=l(:field_parent)%></label><br/> | |||
<select name="project[parent_id]"> | |||
<option value=""></option> | |||
<%= options_from_collection_for_select @root_projects, "id", "name", @project.parent_id %> | |||
</select></p> | |||
<% end %> | |||
<p><label for="project_description"><%=_('Description')%> <span class="required">*</span></label><br/> | |||
<p><label for="project_description"><%=l(:field_description)%> <span class="required">*</span></label><br/> | |||
<%= text_area 'project', 'description', :cols => 60, :rows => 3 %></p> | |||
<p><label for="project_homepage"><%=_('Homepage')%></label><br/> | |||
<p><label for="project_homepage"><%=l(:field_homepage)%></label><br/> | |||
<%= text_field 'project', 'homepage', :size => 40 %></p> | |||
<p><%= check_box 'project', 'is_public' %> | |||
<label for="project_is_public"><%=_('Public')%></label></p> | |||
<label for="project_is_public"><%=l(:field_is_public)%></label></p> | |||
<% for custom_value in @custom_values %> | |||
<p><%= custom_field_tag_with_label custom_value %></p> | |||
<% end %> | |||
<fieldset><legend><%=_('Custom fields')%></legend> | |||
<fieldset><legend><%=l(:label_custom_field_plural)%></legend> | |||
<% for custom_field in @custom_fields %> | |||
<input type="checkbox" | |||
@@ -1,6 +1,6 @@ | |||
<h2><%=_('New project')%></h2> | |||
<h2><%=l(:label_project_new)%></h2> | |||
<%= start_form_tag :action => 'add' %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> |
@@ -1,26 +1,12 @@ | |||
<h2><%=_('New document')%></h2> | |||
<h2><%=l(:label_document_new)%></h2> | |||
<%= error_messages_for 'document' %> | |||
<%= start_form_tag( { :action => 'add_document', :id => @project }, :multipart => true) %> | |||
<!--[form:document]--> | |||
<p><label for="document_category_id"><%=_('Category')%></label><br /> | |||
<select name="document[category_id]"> | |||
<%= options_from_collection_for_select @categories, "id", "name",@document.category_id %> | |||
</select></p> | |||
<p><label for="document_title"><%=_('Title')%> <span class="required">*</span></label><br /> | |||
<%= text_field 'document', 'title', :size => 60 %></p> | |||
<p><label for="document_description"><%=_('Description')%> <span class="required">*</span></label><br /> | |||
<%= text_area 'document', 'description', :cols => 60, :rows => 5 %></p> | |||
<%= render :partial => 'documents/form' %> | |||
<p><label for="attachment_file"><%=_('File')%></label><br/> | |||
<p><label for="attachment_file"><%=l(:label_attachment)%></label><br/> | |||
<%= file_field 'attachment', 'file' %></p> | |||
<!--[eoform:document]--> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> | |||
@@ -1,13 +1,14 @@ | |||
<h2><%=_('New file')%></h2> | |||
<h2><%=l(:label_attachment_new)%></h2> | |||
<%= error_messages_for 'attachment' %> | |||
<%= start_form_tag ({ :action => 'add_file', :project => @project }, :multipart => true) %> | |||
<p><label for="version_id"><%=_('Version')%></label><br /> | |||
<p><label for="version_id"><%=l(:field_version)%></label><br /> | |||
<select name="version_id"> | |||
<%= options_from_collection_for_select @versions, "id", "name" %> | |||
</select></p> | |||
<p><b><%=_('File')%><b><br /><%= file_field 'attachment', 'file' %></p> | |||
<p><b><%=l(:label_attachment)%><b><br /><%= file_field 'attachment', 'file' %></p> | |||
<br/> | |||
<%= submit_tag _('Add') %> | |||
<%= submit_tag l(:button_add) %> | |||
<%= end_form_tag %> |
@@ -1,4 +1,4 @@ | |||
<h2><%=_('New issue')%>: <%=_(@tracker.name)%></h2> | |||
<h2><%=l(:label_issue_new)%>: <%= @tracker.name %></h2> | |||
<%= start_form_tag( { :action => 'add_issue', :id => @project }, :multipart => true) %> | |||
<%= error_messages_for 'issue' %> | |||
@@ -9,14 +9,14 @@ | |||
<%= hidden_field_tag 'tracker_id', @tracker.id %> | |||
<div style="float:left;margin-right:10px;"> | |||
<p><label for="issue_priority_id"><%=_('Priority')%> <span class="required">*</span></label><br/> | |||
<p><label for="issue_priority_id"><%=l(:field_priority)%> <span class="required">*</span></label><br /> | |||
<select name="issue[priority_id]"> | |||
<%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p> | |||
</select></p> | |||
</div> | |||
<div style="float:left;margin-right:10px;"> | |||
<p><label for="issue_assigned_to_id"><%=_('Assigned to')%></label><br/> | |||
<p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label><br /> | |||
<select name="issue[assigned_to_id]"> | |||
<option value=""></option> | |||
<%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p> | |||
@@ -24,28 +24,29 @@ | |||
</div> | |||
<div> | |||
<p><label for="issue_category_id"><%=_('Category')%></label><br/> | |||
<p><label for="issue_category_id"><%=l(:field_category)%></label><br /> | |||
<select name="issue[category_id]"> | |||
<option value=""></option><%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %> | |||
</select></p> | |||
</div> | |||
<p><label for="issue_subject"><%=_('Subject')%> <span class="required">*</span></label><br/> | |||
<p><label for="issue_subject"><%=l(:field_subject)%> <span class="required">*</span></label><br /> | |||
<%= text_field 'issue', 'subject', :size => 80 %></p> | |||
<p><label for="issue_description"><%=_('Description')%> <span class="required">*</span></label><br/> | |||
<p><label for="issue_description"><%=l(:field_description)%> <span class="required">*</span></label><br /> | |||
<%= text_area 'issue', 'description', :cols => 60, :rows => 10 %></p> | |||
<p><label for="issue_due_date"><%=l(:field_due_date)%></label><br /> | |||
<%= date_select 'issue', 'due_date', :start_year => Date.today.year, :include_blank => true %></p> | |||
<% for custom_value in @custom_values %> | |||
<p><%= custom_field_tag_with_label custom_value %></p> | |||
<% end %> | |||
<p><label for="attachment_file"><%=_('Attachment')%></label><br/> | |||
<p><label for="attachment_file"><%=l(:label_attachment)%></label><br /> | |||
<%= file_field 'attachment', 'file' %></p> | |||
<!--[eoform:issue]--> | |||
</div> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> |
@@ -1,7 +1,7 @@ | |||
<h2><%=('Add news')%></h2> | |||
<h2><%=l(:label_news_new)%></h2> | |||
<%= start_form_tag :action => 'add_news', :id => @project %> | |||
<%= render :partial => 'news/form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> | |||
@@ -1,7 +1,7 @@ | |||
<h2><%=_('New version')%></h2> | |||
<h2><%=l(:label_version_new)%></h2> | |||
<%= start_form_tag :action => 'add_version', :id => @project %> | |||
<%= render :partial => 'versions/form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> | |||
@@ -1,4 +1,4 @@ | |||
<h2><%=_('Change log')%></h2> | |||
<h2><%=l(:label_change_log)%></h2> | |||
<% fixed_issues = @fixed_issues.group_by {|i| i.fixed_version } %> | |||
<% fixed_issues.each do |version, issues| %> |
@@ -1,11 +1,13 @@ | |||
<h2><%=_('Confirmation')%></h2> | |||
<h2><%=l(:label_confirmation)%></h2> | |||
<div class="box"> | |||
<center> | |||
<p><%=_('Are you sure you want to delete project')%> <strong><%= @project.name %></strong> ?</p> | |||
<p><strong><%= @project.name %></strong><br /> | |||
<%=l(:text_project_destroy_confirmation)%></p> | |||
<p> | |||
<%= start_form_tag({:controller => 'projects', :action => 'destroy', :id => @project}) %> | |||
<%= hidden_field_tag "confirm", 1 %> | |||
<%= submit_tag _('Delete') %> | |||
<%= submit_tag l(:button_delete) %> | |||
<%= end_form_tag %> | |||
</p> | |||
</center> |
@@ -1,10 +1,10 @@ | |||
<h2><%=_('Public projects')%></h2> | |||
<h2><%=l(:label_public_projects)%></h2> | |||
<table width="100%" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<%= sort_header_tag('name', :caption => _('Project')) %> | |||
<th>Description</th> | |||
<%= sort_header_tag('created_on', :caption => _('Created on')) %> | |||
<%= sort_header_tag('name', :caption => l(:label_project)) %> | |||
<th><%=l(:field_description)%></th> | |||
<%= sort_header_tag('created_on', :caption => l(:field_created_on)) %> | |||
</tr> | |||
<% for project in @projects %> |
@@ -1,4 +1,4 @@ | |||
<h2><%=_('Documents')%></h2> | |||
<h2><%=l(:label_document_plural)%></h2> | |||
<% documents = @documents.group_by {|d| d.category } %> | |||
<% documents.each do |category, docs| %> | |||
@@ -8,7 +8,7 @@ | |||
<li> | |||
<b><%= link_to d.title, :controller => 'documents', :action => 'show', :id => d %></b> | |||
<br /> | |||
<%=_('Desciption')%>: <%= d.description %><br /> | |||
<%=l(:field_description)%>: <%= d.description %><br /> | |||
<%= format_time(d.created_on) %> | |||
</li> | |||
@@ -17,5 +17,5 @@ | |||
<% end %> | |||
<p> | |||
<%= link_to_if_authorized '» ' + _('New'), :controller => 'projects', :action => 'add_document', :id => @project %> | |||
<%= link_to_if_authorized '» ' + l(:label_document_new), :controller => 'projects', :action => 'add_document', :id => @project %> | |||
</p> |
@@ -1,13 +1,13 @@ | |||
<h2><%=_('Files')%></h2> | |||
<h2><%=l(:label_attachment_plural)%></h2> | |||
<% delete_allowed = authorize_for('versions', 'destroy_file') %> | |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<th><%=_('Version')%></th> | |||
<th><%=_('File')%></th> | |||
<th><%=_('Date')%></th> | |||
<th><%=_('Size')%></th> | |||
<th><%=l(:field_version)%></th> | |||
<th><%=l(:field_filename)%></th> | |||
<th><%=l(:label_date)%></th> | |||
<th><%=l(:field_filesize)%></th> | |||
<th>D/L</th> | |||
<th>MD5</th> | |||
<% if delete_allowed %><th></th><% end %> | |||
@@ -28,7 +28,7 @@ | |||
<% if delete_allowed %> | |||
<td align="center"> | |||
<%= start_form_tag :controller => 'versions', :action => 'destroy_file', :id => version, :attachment_id => file %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
<% end %> | |||
@@ -40,7 +40,7 @@ | |||
<br /> | |||
<p> | |||
<%= link_to_if_authorized '» ' + _('New'), :controller => 'projects', :action => 'add_file', :id => @project %> | |||
<%= link_to_if_authorized '» ' + l(:label_attachment_new), :controller => 'projects', :action => 'add_file', :id => @project %> | |||
</p> | |||
@@ -1,56 +1,53 @@ | |||
<h2><%=_('Issues')%></h2> | |||
<h2><%=l(:label_issue_plural)%></h2> | |||
<form method="post" class="noborder"> | |||
<table cellpadding=2> | |||
<table cellpadding=2> | |||
<tr> | |||
<td><small><%=_('Status')%>:</small><br /><%= search_filter_tag 'status_id', :class => 'select-small' %></td> | |||
<td><small><%=_('Tracker')%>:</small><br /><%= search_filter_tag 'tracker_id', :class => 'select-small' %></td> | |||
<td><small><%=_('Priority')%>:</small><br /><%= search_filter_tag 'priority_id', :class => 'select-small' %></td> | |||
<td><small><%=_('Category')%>:</small><br /><%= search_filter_tag 'category_id', :class => 'select-small' %></td> | |||
<td><small><%=_('Fixed in version')%>:</small><br /><%= search_filter_tag 'fixed_version_id', :class => 'select-small' %></td> | |||
<td><small><%=_('Assigned to')%>:</small><br /><%= search_filter_tag 'assigned_to_id', :class => 'select-small' %></td> | |||
<td><small><%=_('Subprojects')%>:</small><br /><%= search_filter_tag 'subproject_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:field_status)%>:</small><br /><%= search_filter_tag 'status_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:field_tracker)%>:</small><br /><%= search_filter_tag 'tracker_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:field_priority)%>:</small><br /><%= search_filter_tag 'priority_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:field_category)%>:</small><br /><%= search_filter_tag 'category_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:field_fixed_version)%>:</small><br /><%= search_filter_tag 'fixed_version_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:field_assigned_to)%>:</small><br /><%= search_filter_tag 'assigned_to_id', :class => 'select-small' %></td> | |||
<td><small><%=l(:label_subproject_plural)%>:</small><br /><%= search_filter_tag 'subproject_id', :class => 'select-small' %></td> | |||
<td valign="bottom"> | |||
<%= submit_tag _('Apply filter'), :class => 'button-small' %> | |||
<%= submit_tag l(:button_apply), :class => 'button-small' %> | |||
<%= end_form_tag %> | |||
<%= start_form_tag %> | |||
<%= submit_tag _('Reset'), :class => 'button-small' %> | |||
<%= submit_tag l(:button_clear), :class => 'button-small' %> | |||
<%= end_form_tag %> | |||
</td> | |||
</tr> | |||
</table> | |||
| |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr><td colspan="7" align="right"> | |||
<small><%= link_to 'Export to CSV', :action => 'export_issues_csv', :id => @project.id %></small> | |||
</td></tr> | |||
<tr class="ListHead"> | |||
<%= sort_header_tag('issues.id', :caption => '#') %> | |||
<%= sort_header_tag('issue_statuses.name', :caption => _('Status')) %> | |||
<%= sort_header_tag('issues.tracker_id', :caption => _('Tracker')) %> | |||
<th><%=_('Subject')%></th> | |||
<%= sort_header_tag('users.lastname', :caption => _('Author')) %> | |||
<%= sort_header_tag('issues.created_on', :caption => _('Created on')) %> | |||
<%= sort_header_tag('issues.updated_on', :caption => _('Last update')) %> | |||
</tr> | |||
<% for issue in @issues %> | |||
<tr bgcolor="#<%= issue.status.html_color %>"> | |||
<td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td> | |||
<td align="center"><%= issue.status.name %></td> | |||
<td align="center"><%= issue.tracker.name %></td> | |||
<td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td> | |||
<td align="center"><%= issue.author.display_name %></td> | |||
<td align="center"><%= format_time(issue.created_on) %></td> | |||
<td align="center"><%= format_time(issue.updated_on) %></td> | |||
</tr> | |||
<% end %> | |||
</table> | |||
<p> | |||
<%= pagination_links_full @issue_pages %> | |||
[ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ] | |||
</p> | |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr><td colspan="7" align="right"> | |||
<small><%= link_to l(:label_export_csv), :action => 'export_issues_csv', :id => @project.id %></small> | |||
</td></tr> | |||
<tr class="ListHead"> | |||
<%= sort_header_tag('issues.id', :caption => '#') %> | |||
<%= sort_header_tag('issue_statuses.name', :caption => l(:field_status)) %> | |||
<%= sort_header_tag('issues.tracker_id', :caption => l(:field_tracker)) %> | |||
<th><%=l(:field_subject)%></th> | |||
<%= sort_header_tag('users.lastname', :caption => l(:field_author)) %> | |||
<%= sort_header_tag('issues.created_on', :caption => l(:field_created_on)) %> | |||
<%= sort_header_tag('issues.updated_on', :caption => l(:field_updated_on)) %> | |||
</tr> | |||
<% for issue in @issues %> | |||
<tr bgcolor="#<%= issue.status.html_color %>"> | |||
<td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td> | |||
<td align="center"><%= issue.status.name %></td> | |||
<td align="center"><%= issue.tracker.name %></td> | |||
<td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td> | |||
<td align="center"><%= issue.author.display_name %></td> | |||
<td align="center"><%= format_time(issue.created_on) %></td> | |||
<td align="center"><%= format_time(issue.updated_on) %></td> | |||
</tr> | |||
<% end %> | |||
</table> | |||
<p> | |||
<%= pagination_links_full @issue_pages %> | |||
[ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ] | |||
</p> |
@@ -1,4 +1,4 @@ | |||
<h2><%=_('Project members')%></h2> | |||
<h2><%=l(:label_member_plural)%></h2> | |||
<% members = @members.group_by {|m| m.role } %> | |||
<% members.each do |role, member| %> |
@@ -1,4 +1,4 @@ | |||
<h2><%=_('News')%></h2> | |||
<h2><%=l(:label_news_plural)%></h2> | |||
<% for news in @news %> | |||
<p> | |||
@@ -7,11 +7,11 @@ | |||
<%= link_to_if_authorized image_tag('delete'), { :controller => 'news', :action => 'destroy', :id => news }, :confirm => 'Are you sure?' %> | |||
<br /> | |||
<%= news.summary %> | |||
<small>[<%= link_to _('Read...'), :controller => 'news', :action => 'show', :id => news %>]</small> | |||
<small>[<%= link_to l(:label_read), :controller => 'news', :action => 'show', :id => news %>]</small> | |||
</p> | |||
<% end %> | |||
<%= pagination_links_full @news_pages %> | |||
<p> | |||
<%= link_to_if_authorized '» ' + _('Add'), :controller => 'projects', :action => 'add_news', :id => @project %> | |||
<%= link_to_if_authorized '» ' + l(:label_news_new), :controller => 'projects', :action => 'add_news', :id => @project %> | |||
</p> |
@@ -1,14 +1,14 @@ | |||
<h2><%=_('Settings')%></h2> | |||
<h2><%=l(:label_settings)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @project %> | |||
<%= render :partial => 'form' %> | |||
<center><%= submit_tag _('Save') %></center> | |||
<center><%= submit_tag l(:button_save) %></center> | |||
<%= end_form_tag %> | |||
| |||
<div class="box"> | |||
<h3><%=_('Members')%></h3> | |||
<h3><%=l(:label_member_plural)%></h3> | |||
<%= error_messages_for 'member' %> | |||
<table> | |||
<% for member in @project.members.find(:all, :include => :user) %> | |||
@@ -22,12 +22,12 @@ | |||
</select> | |||
</td> | |||
<td> | |||
<%= submit_tag _('Save'), :class => "button-small" %> | |||
<%= submit_tag l(:button_change), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
<td> | |||
<%= start_form_tag :controller => 'members', :action => 'destroy', :id => member %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
</tr> | |||
@@ -35,7 +35,7 @@ | |||
<% end %> | |||
</table> | |||
<hr /> | |||
<label><%=_('New member')%></label><br/> | |||
<label><%=l(:label_member_new)%></label><br/> | |||
<%= start_form_tag :controller => 'projects', :action => 'add_member', :id => @project %> | |||
<select name="member[user_id]"> | |||
<%= options_from_collection_for_select @users, "id", "display_name", @member.user_id %> | |||
@@ -43,12 +43,12 @@ | |||
<select name="member[role_id]"> | |||
<%= options_from_collection_for_select @roles, "id", "name", @member.role_id %> | |||
</select> | |||
<%= submit_tag _('Add') %> | |||
<%= submit_tag l(:button_add) %> | |||
<%= end_form_tag %> | |||
</div> | |||
<div class="box"> | |||
<h3><%=_('Versions')%></h3> | |||
<h3><%=l(:label_version_plural)%></h3> | |||
<table> | |||
<% for version in @project.versions %> | |||
@@ -57,7 +57,7 @@ | |||
<td><%=h version.description %></td> | |||
<td> | |||
<%= start_form_tag :controller => 'versions', :action => 'destroy', :id => version %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
</tr> | |||
@@ -65,13 +65,13 @@ | |||
</table> | |||
<hr /> | |||
<%= start_form_tag ({ :controller => 'projects', :action => 'add_version', :id => @project }, :method => 'get' ) %> | |||
<%= submit_tag _('New version...') %> | |||
<%= submit_tag l(:label_version_new) %> | |||
<%= end_form_tag %> | |||
</div> | |||
<div class="box"> | |||
<h3><%=_('Issue categories')%></h3> | |||
<h3><%=l(:label_issue_category_plural)%></h3> | |||
<table> | |||
<% for @category in @project.issue_categories %> | |||
<% unless @category.new_record? %> | |||
@@ -81,12 +81,12 @@ | |||
<%= text_field 'category', 'name', :size => 25 %> | |||
</td> | |||
<td> | |||
<%= submit_tag _('Save'), :class => "button-small" %> | |||
<%= submit_tag l(:button_save), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
<td> | |||
<%= start_form_tag :controller => 'issue_categories', :action => 'destroy', :id => @category %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
</tr> | |||
@@ -96,10 +96,10 @@ | |||
<hr /> | |||
<%= start_form_tag :action => 'add_issue_category', :id => @project %> | |||
<label for="issue_category_name"><%=l(:label_issue_category_new)%></label><br/> | |||
<%= error_messages_for 'issue_category' %> | |||
<label for="issue_category_name"><%=_('New category')%></label><br/> | |||
<%= text_field 'issue_category', 'name', :size => 25 %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> | |||
</div> |
@@ -1,10 +1,10 @@ | |||
<h2><%=_('Overview')%></h2> | |||
<h2><%=l(:label_overview)%></h2> | |||
<div class="splitcontentleft"> | |||
<%= @project.description %> | |||
<ul> | |||
<li><%=_('Homepage')%>: <%= link_to @project.homepage, @project.homepage %></li> | |||
<li><%=_('Created on')%>: <%= format_date(@project.created_on) %></li> | |||
<li><%=l(:field_homepage)%>: <%= link_to @project.homepage, @project.homepage %></li> | |||
<li><%=l(:field_created_on)%>: <%= format_date(@project.created_on) %></li> | |||
<% for custom_value in @custom_values %> | |||
<% if !custom_value.value.empty? %> | |||
<li><%= custom_value.custom_field.name%>: <%= custom_value.value%></li> | |||
@@ -13,31 +13,32 @@ | |||
</ul> | |||
<div class="box"> | |||
<h3><%= image_tag "tracker" %> <%=_('Trackers')%></h3> | |||
<h3><%= image_tag "tracker" %> <%=l(:label_tracker_plural)%></h3> | |||
<ul> | |||
<% for tracker in @trackers %> | |||
<li><%= link_to tracker.name, :controller => 'projects', :action => 'list_issues', :id => @project, | |||
:set_filter => 1, | |||
"tracker_id" => tracker.id %>: | |||
<%= Issue.count(:conditions => ["project_id=? and tracker_id=? and issue_statuses.is_closed=?", @project.id, tracker.id, false], :include => :status) %> <%=_('open')%> | |||
<%= issue_count = Issue.count(:conditions => ["project_id=? and tracker_id=? and issue_statuses.is_closed=?", @project.id, tracker.id, false], :include => :status) %> | |||
<%= lwr(:label_open_issues, issue_count) %> | |||
</li> | |||
<% end %> | |||
</ul> | |||
<% if authorize_for 'projects', 'add_issue' %> | |||
» <%=_('Report an issue')%>: | |||
» <%=l(:label_issue_new)%>: | |||
<ul> | |||
<% @trackers.each do |tracker| %> | |||
<li><%= link_to _(tracker.name), :controller => 'projects', :action => 'add_issue', :id => @project, :tracker_id => tracker %></li> | |||
<li><%= link_to tracker.name, :controller => 'projects', :action => 'add_issue', :id => @project, :tracker_id => tracker %></li> | |||
<% end %> | |||
</ul> | |||
<% end %> | |||
<center><small>[ <%= link_to _('View all issues'), :controller => 'projects', :action => 'list_issues', :id => @project, :set_filter => 1 %> ]</small></center> | |||
<center><small>[ <%= link_to l(:label_issue_view_all), :controller => 'projects', :action => 'list_issues', :id => @project, :set_filter => 1 %> ]</small></center> | |||
</div> | |||
</div> | |||
<div class="splitcontentright"> | |||
<div class="box"> | |||
<h3><%= image_tag "users" %> <%=_('Members')%></h3> | |||
<h3><%= image_tag "users" %> <%=l(:label_member_plural)%></h3> | |||
<% for member in @members %> | |||
<%= link_to_user member.user %> (<%= member.role.name %>)<br /> | |||
<% end %> | |||
@@ -45,7 +46,7 @@ | |||
<% if @subprojects %> | |||
<div class="box"> | |||
<h3><%= image_tag "projects" %> <%=_('Subprojects')%></h3> | |||
<h3><%= image_tag "projects" %> <%=l(:label_subproject_plural)%></h3> | |||
<% for subproject in @subprojects %> | |||
<%= link_to subproject.name, :action => 'show', :id => subproject %><br /> | |||
<% end %> | |||
@@ -53,16 +54,16 @@ | |||
<% end %> | |||
<div class="box"> | |||
<h3><%=_('Latest news')%></h3> | |||
<h3><%=l(:label_news_latest)%></h3> | |||
<% for news in @news %> | |||
<p> | |||
<b><%= news.title %></b> <small>(<%= link_to_user news.author %> <%= format_time(news.created_on) %>)</small><br /> | |||
<%= news.summary %> | |||
<small>[<%= link_to _('Read...'), :controller => 'news', :action => 'show', :id => news %>]</small> | |||
<small>[<%= link_to l(:label_read), :controller => 'news', :action => 'show', :id => news %>]</small> | |||
</p> | |||
<hr /> | |||
<% end %> | |||
<center><small>[ <%= link_to _('View all news'), :controller => 'projects', :action => 'list_news', :id => @project %> ]</small></center> | |||
<center><small>[ <%= link_to l(:label_news_view_all), :controller => 'projects', :action => 'list_news', :id => @project %> ]</small></center> | |||
</div> | |||
</div> | |||
@@ -6,9 +6,9 @@ | |||
<% for status in @statuses %> | |||
<td align="center" width="<%= col_width %>%" bgcolor="#<%= status.html_color %>"><small><%= status.name %></small></td> | |||
<% end %> | |||
<td align="center" width="<%= col_width %>%"><strong><%=_('Open')%></strong></td> | |||
<td align="center" width="<%= col_width %>%"><strong><%=_('Closed')%></strong></td> | |||
<td align="center" width="<%= col_width %>%"><strong><%=_('Total')%></strong></td> | |||
<td align="center" width="<%= col_width %>%"><strong><%=l(:label_open_issues_plural)%></strong></td> | |||
<td align="center" width="<%= col_width %>%"><strong><%=l(:label_closed_issues_plural)%></strong></td> | |||
<td align="center" width="<%= col_width %>%"><strong><%=l(:label_total)%></strong></td> | |||
</tr> | |||
<% for row in rows %> |
@@ -1,13 +1,13 @@ | |||
<h2><%=_('Reports')%></h2> | |||
<h2><%=l(:label_report_plural)%></h2> | |||
<strong><%=_('Issues by tracker')%></strong> | |||
<strong><%=l(:field_tracker)%></strong> | |||
<%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %> | |||
<br /> | |||
<strong><%=_('Issues by priority')%></strong> | |||
<strong><%=l(:field_priority)%></strong> | |||
<%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %> | |||
<br /> | |||
<strong><%=_('Issues by category')%></strong> | |||
<strong><%=l(:field_category)%></strong> | |||
<%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %> | |||
@@ -2,22 +2,22 @@ | |||
<div class="box"> | |||
<!--[form:role]--> | |||
<p><label for="role_name"><%=_('Name')%> <span class="required">*</span></label><br /> | |||
<p><label for="role_name"><%=l(:field_name)%> <span class="required">*</span></label><br /> | |||
<%= text_field 'role', 'name' %></p> | |||
<strong><%=_('Permissions')%></strong> | |||
<strong><%=l(:label_permissions)%>:</strong> | |||
<% permissions = @permissions.group_by {|p| p.group_id } %> | |||
<% permissions.keys.sort.each do |group_id| %> | |||
<fieldset><legend><%= _(Permission::GROUPS[group_id]) %></legend> | |||
<% permissions.keys.sort.each do |group_id| %> | |||
<fieldset style="margin-top: 6px;"><legend><strong><%= l(Permission::GROUPS[group_id]) %></strong></legend> | |||
<% permissions[group_id].each do |p| %> | |||
<div style="width:200px;float:left;"><%= check_box_tag "permission_ids[]", p.id, (@role.permissions.include? p) %> | |||
<%= _(p.description) %> | |||
<div style="width:170px;float:left;"><%= check_box_tag "permission_ids[]", p.id, (@role.permissions.include? p) %> | |||
<%= l(p.description.to_sym) %> | |||
</div> | |||
<% end %> | |||
</fieldset> | |||
<% end %> | |||
<br /> | |||
<a href="javascript:checkAll('role_form', true)"><%=_('Check all')%></a> | | |||
<a href="javascript:checkAll('role_form', false)"><%=_('Uncheck all')%></a><br /> | |||
<a href="javascript:checkAll('role_form', true)"><%=l(:button_check_all)%></a> | | |||
<a href="javascript:checkAll('role_form', false)"><%=l(:button_uncheck_all)%></a><br /> | |||
<!--[eoform:role]--> | |||
</div> |
@@ -1,10 +1,8 @@ | |||
<h2><%=_('Role')%></h2> | |||
<h2><%=l(:label_role)%></h2> | |||
<%= start_form_tag ({ :action => 'edit', :id => @role }, :id => 'role_form') %> | |||
<%= render :partial => 'form' %> | |||
<br /> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> | |||
@@ -1,8 +1,8 @@ | |||
<h2><%=_('Roles')%></h2> | |||
<h2><%=l(:label_role_plural)%></h2> | |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<th><%=_('Role')%></th> | |||
<th><%=l(:label_role)%></th> | |||
<th></th> | |||
</tr> | |||
@@ -11,7 +11,7 @@ | |||
<td><%= link_to role.name, :action => 'edit', :id => role %></td> | |||
<td align="center"> | |||
<%= start_form_tag :action => 'destroy', :id => role %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</tr> | |||
<% end %> | |||
@@ -20,4 +20,4 @@ | |||
<%= pagination_links_full @role_pages %> | |||
<br /> | |||
<%= link_to '» ' + _('New role'), :action => 'new' %> | |||
<%= link_to '» ' + l(:label_role_new), :action => 'new' %> |
@@ -1,8 +1,7 @@ | |||
<h2><%=_('New role')%></h2> | |||
<h2><%=l(:label_role_new)%></h2> | |||
<%= start_form_tag ({ :action => 'new' }, :id => 'role_form') %> | |||
<%= render :partial => 'form' %> | |||
<br /><%= submit_tag _('Create') %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> | |||
@@ -1,22 +1,22 @@ | |||
<h2><%=_('Workflow setup')%></h2> | |||
<h2><%=l(:label_workflow)%></h2> | |||
<p><%=_('Select a workflow to edit')%>:</p> | |||
<p><%=l(:text_workflow_edit)%>:</p> | |||
<%= start_form_tag ({:action => 'workflow'}, :method => 'get') %> | |||
<div style="float:left;margin-right:10px;"> | |||
<p><label for="role_id"><%=_('Role')%></label><br/> | |||
<p><label for="role_id"><%=l(:label_role)%></label><br/> | |||
<select id="role_id" name="role_id"> | |||
<%= options_from_collection_for_select @roles, "id", "name", (@role.id unless @role.nil?) %> | |||
</select></p> | |||
</div> | |||
<div> | |||
<p><label for="tracker_id"><%=_('Tracker')%></label><br/> | |||
<p><label for="tracker_id"><%=l(:label_tracker)%></label><br/> | |||
<select id="tracker_id" name="tracker_id"> | |||
<%= options_from_collection_for_select @trackers, "id", "name", (@tracker.id unless @tracker.nil?) %> | |||
</select> | |||
<%= submit_tag _('Edit') %> | |||
<%= submit_tag l(:button_edit) %> | |||
</p> | |||
</div> | |||
<%= end_form_tag %> | |||
@@ -28,8 +28,8 @@ | |||
<%= form_tag ({:action => 'workflow', :role_id => @role, :tracker_id => @tracker }, :id => 'workflow_form' ) %> | |||
<table> | |||
<tr> | |||
<td align="center"><strong><%=_('Issue status')%></strong></td> | |||
<td align="center" colspan="<%= @statuses.length %>"><strong><%=_('New statuses allowed')%></strong></td> | |||
<td align="center"><strong><%=l(:label_current_status)%></strong></td> | |||
<td align="center" colspan="<%= @statuses.length %>"><strong><%=l(:label_new_statuses_allowed)%></strong></td> | |||
</tr> | |||
<tr> | |||
<td></td> | |||
@@ -59,11 +59,11 @@ | |||
</table> | |||
<br /> | |||
<p> | |||
<a href="javascript:checkAll('workflow_form', true)"><%=_('Check all')%></a> | | |||
<a href="javascript:checkAll('workflow_form', false)"><%=_('Uncheck all')%></a> | |||
<a href="javascript:checkAll('workflow_form', true)"><%=l(:button_check_all)%></a> | | |||
<a href="javascript:checkAll('workflow_form', false)"><%=l(:button_uncheck_all)%></a> | |||
</p> | |||
<br /> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> | |||
<% end %> |
@@ -1,10 +1,10 @@ | |||
<%= error_messages_for 'tracker' %> | |||
<!--[form:tracker]--> | |||
<p><label for="tracker_name"><%=_('Name')%></label> <span class="required">*</span><br/> | |||
<p><label for="tracker_name"><%=l(:field_name)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'tracker', 'name' %></p> | |||
<p><%= check_box 'tracker', 'is_in_chlog' %> | |||
<label for="tracker_is_in_chlog"><%=_('View issues in change log')%></label></p> | |||
<label for="tracker_is_in_chlog"><%=l(:field_is_in_chlog)%></label></p> | |||
<!--[eoform:tracker]--> | |||
@@ -1,6 +1,6 @@ | |||
<h2><%=_('Tracker')%></h2> | |||
<h2><%=l(:label_tracker)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @tracker %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,8 +1,8 @@ | |||
<h2><%=_('Trackers')%></h2> | |||
<h2><%=l(:label_tracker_plural)%></h2> | |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<th><%=_('Tracker')%></th> | |||
<th><%=l(:label_tracker)%></th> | |||
<th></th> | |||
</tr> | |||
@@ -11,7 +11,7 @@ | |||
<td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td> | |||
<td align="center"> | |||
<%= start_form_tag :action => 'destroy', :id => tracker %> | |||
<%= submit_tag _('Delete'), :class => "button-small" %> | |||
<%= submit_tag l(:button_delete), :class => "button-small" %> | |||
<%= end_form_tag %> | |||
</td> | |||
</tr> | |||
@@ -21,4 +21,4 @@ | |||
<%= pagination_links_full @tracker_pages %> | |||
<br /> | |||
<%= link_to '» ' + _('New tracker'), :action => 'new' %> | |||
<%= link_to '» ' + l(:label_tracker_new), :action => 'new' %> |
@@ -1,7 +1,7 @@ | |||
<h2><%=_('New tracker')%></h2> | |||
<h2><%=l(:label_tracker_new)%></h2> | |||
<%= start_form_tag :action => 'new' %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> | |||
@@ -2,26 +2,26 @@ | |||
<div class="box"> | |||
<!--[form:user]--> | |||
<p><label for="user_login"><%=_('Login')%></label> <span class="required">*</span><br/> | |||
<p><label for="user_login"><%=l(:field_login)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'user', 'login', :size => 25 %></p> | |||
<p><label for="password"><%=_('Password')%></label> <span class="required">*</span><br/> | |||
<p><label for="password"><%=l(:field_password)%></label> <span class="required">*</span><br/> | |||
<%= password_field_tag 'password', nil, :size => 25 %></p> | |||
<p><label for="password_confirmation"><%=_('Confirmation')%></label> <span class="required">*</span><br/> | |||
<p><label for="password_confirmation"><%=l(:field_password_confirmation)%></label> <span class="required">*</span><br/> | |||
<%= password_field_tag 'password_confirmation', nil, :size => 25 %></p> | |||
<p><label for="user_firstname"><%=_('Firstname')%></label> <span class="required">*</span><br/> | |||
<p><label for="user_firstname"><%=l(:field_firstname)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'user', 'firstname' %></p> | |||
<p><label for="user_lastname"><%=_('Lastname')%></label> <span class="required">*</span><br/> | |||
<p><label for="user_lastname"><%=l(:field_lastname)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'user', 'lastname' %></p> | |||
<p><label for="user_mail"><%=_('Mail')%></label> <span class="required">*</span><br/> | |||
<p><label for="user_mail"><%=l(:field_mail)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'user', 'mail' %></p> | |||
<p><label for="user_language"><%=_('Language')%></label><br/> | |||
<%= select("user", "language", Localization.langs.invert) %></p> | |||
<p><label for="user_language"><%=l(:field_language)%></label><br/> | |||
<%= select("user", "language", lang_options_for_select) %></p> | |||
<% for custom_value in @custom_values %> | |||
<p><%= custom_field_tag_with_label custom_value %></p> | |||
@@ -29,9 +29,9 @@ | |||
<div style="clear: both;"></div> | |||
<p><%= check_box 'user', 'admin' %> <label for="user_admin"><%=_('Administrator')%></label></p> | |||
<p><%= check_box 'user', 'admin' %> <label for="user_admin"><%=l(:field_admin)%></label></p> | |||
<p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=_('Mail notifications')%></label></p> | |||
<p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p> | |||
<!--[eoform:user]--> | |||
</div> |
@@ -1,6 +1,6 @@ | |||
<h2><%=_('New user')%></h2> | |||
<h2><%=l(:label_user_new)%></h2> | |||
<%= start_form_tag :action => 'add' %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Create') %> | |||
<%= submit_tag l(:button_create) %> | |||
<%= end_form_tag %> |
@@ -1,7 +1,6 @@ | |||
<h2><%=_('User')%></h2> | |||
<h2><%=l(:label_user)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @user %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> |
@@ -1,15 +1,15 @@ | |||
<h2><%=_('Users')%></h2> | |||
<h2><%=l(:label_user_plural)%></h2> | |||
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> | |||
<tr class="ListHead"> | |||
<%= sort_header_tag('login', :caption => _('Login')) %> | |||
<%= sort_header_tag('firstname', :caption => _('Firstname')) %> | |||
<%= sort_header_tag('lastname', :caption => _('Lastname')) %> | |||
<th><%=_('Mail')%></th> | |||
<%= sort_header_tag('admin', :caption => _('Admin')) %> | |||
<%= sort_header_tag('status', :caption => _('Status')) %> | |||
<%= sort_header_tag('created_on', :caption => _('Created on')) %> | |||
<%= sort_header_tag('last_login_on', :caption => _('Last login')) %> | |||
<%= sort_header_tag('login', :caption => l(:field_login)) %> | |||
<%= sort_header_tag('firstname', :caption => l(:field_firstname)) %> | |||
<%= sort_header_tag('lastname', :caption => l(:field_lastname)) %> | |||
<th><%=l(:field_mail)%></th> | |||
<%= sort_header_tag('admin', :caption => l(:field_admin)) %> | |||
<%= sort_header_tag('status', :caption => l(:field_status)) %> | |||
<%= sort_header_tag('created_on', :caption => l(:field_created_on)) %> | |||
<%= sort_header_tag('last_login_on', :caption => l(:field_last_login_on)) %> | |||
<th></th> | |||
</tr> | |||
<% for user in @users %> | |||
@@ -26,10 +26,10 @@ | |||
<%= start_form_tag :action => 'edit', :id => user %> | |||
<% if user.locked? %> | |||
<%= hidden_field_tag 'user[status]', User::STATUS_ACTIVE %> | |||
<%= submit_tag _('Unlock'), :class => "button-small" %> | |||
<%= submit_tag l(:button_unlock), :class => "button-small" %> | |||
<% else %> | |||
<%= hidden_field_tag 'user[status]', User::STATUS_LOCKED %> | |||
<%= submit_tag _('Lock'), :class => "button-small" %> | |||
<%= submit_tag l(:button_lock), :class => "button-small" %> | |||
<% end %> | |||
<%= end_form_tag %> | |||
</td> | |||
@@ -42,5 +42,5 @@ | |||
</p> | |||
<p> | |||
<%= link_to '» ' + _('New user'), :action => 'add' %> | |||
<%= link_to '» ' + l(:label_user_new), :action => 'add' %> | |||
</p> |
@@ -1,13 +1,13 @@ | |||
<%= error_messages_for 'version' %> | |||
<!--[form:version]--> | |||
<p><label for="version_name"><%=_('Version')%></label> <span class="required">*</span><br/> | |||
<p><label for="version_name"><%=l(:field_name)%></label> <span class="required">*</span><br/> | |||
<%= text_field 'version', 'name', :size => 20 %></p> | |||
<p><label for="version_description"><%=_('Description')%></label><br/> | |||
<p><label for="version_description"><%=l(:field_description)%></label><br/> | |||
<%= text_field 'version', 'description', :size => 60 %></p> | |||
<p><label for="version_effective_date"><%=_('Date')%></label><br/> | |||
<p><label for="version_effective_date"><%=l(:field_effective_date)%></label><br/> | |||
<%= date_select 'version', 'effective_date' %></p> | |||
<!--[eoform:version]--> | |||
@@ -1,8 +1,8 @@ | |||
<h2><%=_('Version')%></h2> | |||
<h2><%=l(:label_version)%></h2> | |||
<%= start_form_tag :action => 'edit', :id => @version %> | |||
<%= render :partial => 'form' %> | |||
<%= submit_tag _('Save') %> | |||
<%= submit_tag l(:button_save) %> | |||
<%= end_form_tag %> | |||
@@ -1,14 +1,14 @@ | |||
<div class="splitcontentleft"> | |||
<h2><%= $RDM_WELCOME_TITLE || _('Welcome') %> !</h2> | |||
<h2><%= $RDM_WELCOME_TITLE || l(:label_home) %></h2> | |||
<p><%= $RDM_WELCOME_TEXT %></p> | |||
<div class="box"> | |||
<h3><%=_('Latest news')%></h3> | |||
<h3><%=l(:label_news_latest)%></h3> | |||
<% for news in @news %> | |||
<p> | |||
<b><%= news.title %></b> (<%= link_to_user news.author %> <%= format_time(news.created_on) %> - <%= news.project.name %>)<br /> | |||
<%= news.summary %><br /> | |||
[<%= link_to 'Read...', :controller => 'news', :action => 'show', :id => news %>] | |||
[<%= link_to l(:label_read), :controller => 'news', :action => 'show', :id => news %>] | |||
</p> | |||
<hr /> | |||
<% end %> | |||
@@ -17,15 +17,14 @@ | |||
<div class="splitcontentright"> | |||
<div class="box"> | |||
<h3><%=_('Latest projects')%></h3> | |||
<h3><%=l(:label_project_latest)%></h3> | |||
<ul> | |||
<% for project in @projects %> | |||
<li> | |||
<%= link_to project.name, :controller => 'projects', :action => 'show', :id => project %> (added <%= format_time(project.created_on) %>)<br /> | |||
<%= link_to project.name, :controller => 'projects', :action => 'show', :id => project %> (<%= format_time(project.created_on) %>)<br /> | |||
<%= project.description %> | |||
</li> | |||
<% end %> | |||
</ul> | |||
</div> | |||
</div> | |||
</div> |
@@ -78,7 +78,7 @@ class Setup < ActiveRecord::Migration | |||
t.column "project_id", :integer, :default => 0, :null => false | |||
t.column "category_id", :integer, :default => 0, :null => false | |||
t.column "title", :string, :limit => 60, :default => "", :null => false | |||
t.column "description", :text, :default => "", :null => false | |||
t.column "description", :text, :default => "" | |||
t.column "created_on", :timestamp | |||
end | |||
@@ -113,7 +113,8 @@ class Setup < ActiveRecord::Migration | |||
t.column "tracker_id", :integer, :default => 0, :null => false | |||
t.column "project_id", :integer, :default => 0, :null => false | |||
t.column "subject", :string, :default => "", :null => false | |||
t.column "description", :text, :default => "", :null => false | |||
t.column "description", :text, :default => "", :null => false | |||
t.column "due_date", :date | |||
t.column "category_id", :integer | |||
t.column "status_id", :integer, :default => 0, :null => false | |||
t.column "assigned_to_id", :integer | |||
@@ -219,55 +220,55 @@ class Setup < ActiveRecord::Migration | |||
end | |||
# project | |||
Permission.create :controller => "projects", :action => "show", :description => "Overview", :sort => 100, :is_public => true | |||
Permission.create :controller => "projects", :action => "changelog", :description => "View change log", :sort => 105, :is_public => true | |||
Permission.create :controller => "reports", :action => "issue_report", :description => "View reports", :sort => 110, :is_public => true | |||
Permission.create :controller => "projects", :action => "settings", :description => "Settings", :sort => 150 | |||
Permission.create :controller => "projects", :action => "edit", :description => "Edit", :sort => 151 | |||
Permission.create :controller => "projects", :action => "show", :description => "label_overview", :sort => 100, :is_public => true | |||
Permission.create :controller => "projects", :action => "changelog", :description => "label_change_log", :sort => 105, :is_public => true | |||
Permission.create :controller => "reports", :action => "issue_report", :description => "label_report_plural", :sort => 110, :is_public => true | |||
Permission.create :controller => "projects", :action => "settings", :description => "label_settings", :sort => 150 | |||
Permission.create :controller => "projects", :action => "edit", :description => "button_edit", :sort => 151 | |||
# members | |||
Permission.create :controller => "projects", :action => "list_members", :description => "View list", :sort => 200, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_member", :description => "New member", :sort => 220 | |||
Permission.create :controller => "members", :action => "edit", :description => "Edit", :sort => 221 | |||
Permission.create :controller => "members", :action => "destroy", :description => "Delete", :sort => 222 | |||
Permission.create :controller => "projects", :action => "list_members", :description => "button_list", :sort => 200, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_member", :description => "button_add", :sort => 220 | |||
Permission.create :controller => "members", :action => "edit", :description => "button_edit", :sort => 221 | |||
Permission.create :controller => "members", :action => "destroy", :description => "button_delete", :sort => 222 | |||
# versions | |||
Permission.create :controller => "projects", :action => "add_version", :description => "New version", :sort => 320 | |||
Permission.create :controller => "versions", :action => "edit", :description => "Edit", :sort => 321 | |||
Permission.create :controller => "versions", :action => "destroy", :description => "Delete", :sort => 322 | |||
Permission.create :controller => "projects", :action => "add_version", :description => "button_add", :sort => 320 | |||
Permission.create :controller => "versions", :action => "edit", :description => "button_edit", :sort => 321 | |||
Permission.create :controller => "versions", :action => "destroy", :description => "button_delete", :sort => 322 | |||
# issue categories | |||
Permission.create :controller => "projects", :action => "add_issue_category", :description => "New issue category", :sort => 420 | |||
Permission.create :controller => "issue_categories", :action => "edit", :description => "Edit", :sort => 421 | |||
Permission.create :controller => "issue_categories", :action => "destroy", :description => "Delete", :sort => 422 | |||
Permission.create :controller => "projects", :action => "add_issue_category", :description => "button_add", :sort => 420 | |||
Permission.create :controller => "issue_categories", :action => "edit", :description => "button_edit", :sort => 421 | |||
Permission.create :controller => "issue_categories", :action => "destroy", :description => "button_delete", :sort => 422 | |||
# issues | |||
Permission.create :controller => "projects", :action => "list_issues", :description => "View list", :sort => 1000, :is_public => true | |||
Permission.create :controller => "projects", :action => "export_issues_csv", :description => "Export list to CSV", :sort => 1001, :is_public => true | |||
Permission.create :controller => "issues", :action => "show", :description => "View", :sort => 1005, :is_public => true | |||
Permission.create :controller => "issues", :action => "download", :description => "Download file", :sort => 1010, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_issue", :description => "Report an issue", :sort => 1050, :mail_option => 1, :mail_enabled => 1 | |||
Permission.create :controller => "issues", :action => "edit", :description => "Edit", :sort => 1055 | |||
Permission.create :controller => "issues", :action => "change_status", :description => "Change status", :sort => 1060, :mail_option => 1, :mail_enabled => 1 | |||
Permission.create :controller => "issues", :action => "destroy", :description => "Delete", :sort => 1065 | |||
Permission.create :controller => "issues", :action => "add_attachment", :description => "Add file", :sort => 1070 | |||
Permission.create :controller => "issues", :action => "destroy_attachment", :description => "Delete file", :sort => 1075 | |||
Permission.create :controller => "projects", :action => "list_issues", :description => "button_list", :sort => 1000, :is_public => true | |||
Permission.create :controller => "projects", :action => "export_issues_csv", :description => "label_export_csv", :sort => 1001, :is_public => true | |||
Permission.create :controller => "issues", :action => "show", :description => "button_view", :sort => 1005, :is_public => true | |||
Permission.create :controller => "issues", :action => "download", :description => "button_download", :sort => 1010, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_issue", :description => "button_add", :sort => 1050, :mail_option => 1, :mail_enabled => 1 | |||
Permission.create :controller => "issues", :action => "edit", :description => "button_edit", :sort => 1055 | |||
Permission.create :controller => "issues", :action => "change_status", :description => "label_change_status", :sort => 1060, :mail_option => 1, :mail_enabled => 1 | |||
Permission.create :controller => "issues", :action => "destroy", :description => "button_delete", :sort => 1065 | |||
Permission.create :controller => "issues", :action => "add_attachment", :description => "label_attachment_new", :sort => 1070 | |||
Permission.create :controller => "issues", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1075 | |||
# news | |||
Permission.create :controller => "projects", :action => "list_news", :description => "View list", :sort => 1100, :is_public => true | |||
Permission.create :controller => "news", :action => "show", :description => "View", :sort => 1101, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_news", :description => "Add", :sort => 1120 | |||
Permission.create :controller => "news", :action => "edit", :description => "Edit", :sort => 1121 | |||
Permission.create :controller => "news", :action => "destroy", :description => "Delete", :sort => 1122 | |||
Permission.create :controller => "projects", :action => "list_news", :description => "button_list", :sort => 1100, :is_public => true | |||
Permission.create :controller => "news", :action => "show", :description => "button_view", :sort => 1101, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_news", :description => "button_add", :sort => 1120 | |||
Permission.create :controller => "news", :action => "edit", :description => "button_edit", :sort => 1121 | |||
Permission.create :controller => "news", :action => "destroy", :description => "button_delete", :sort => 1122 | |||
# documents | |||
Permission.create :controller => "projects", :action => "list_documents", :description => "View list", :sort => 1200, :is_public => true | |||
Permission.create :controller => "documents", :action => "show", :description => "View", :sort => 1201, :is_public => true | |||
Permission.create :controller => "documents", :action => "download", :description => "Download", :sort => 1202, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_document", :description => "Add", :sort => 1220 | |||
Permission.create :controller => "documents", :action => "edit", :description => "Edit", :sort => 1221 | |||
Permission.create :controller => "documents", :action => "destroy", :description => "Delete", :sort => 1222 | |||
Permission.create :controller => "documents", :action => "add_attachment", :description => "Add file", :sort => 1223 | |||
Permission.create :controller => "documents", :action => "destroy_attachment", :description => "Delete file", :sort => 1224 | |||
Permission.create :controller => "projects", :action => "list_documents", :description => "button_list", :sort => 1200, :is_public => true | |||
Permission.create :controller => "documents", :action => "show", :description => "button_view", :sort => 1201, :is_public => true | |||
Permission.create :controller => "documents", :action => "download", :description => "button_download", :sort => 1202, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_document", :description => "button_add", :sort => 1220 | |||
Permission.create :controller => "documents", :action => "edit", :description => "button_edit", :sort => 1221 | |||
Permission.create :controller => "documents", :action => "destroy", :description => "button_delete", :sort => 1222 | |||
Permission.create :controller => "documents", :action => "add_attachment", :description => "label_attachment_new", :sort => 1223 | |||
Permission.create :controller => "documents", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1224 | |||
# files | |||
Permission.create :controller => "projects", :action => "list_files", :description => "View list", :sort => 1300, :is_public => true | |||
Permission.create :controller => "versions", :action => "download", :description => "Download", :sort => 1301, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_file", :description => "Add", :sort => 1320 | |||
Permission.create :controller => "versions", :action => "destroy_file", :description => "Delete", :sort => 1322 | |||
Permission.create :controller => "projects", :action => "list_files", :description => "button_list", :sort => 1300, :is_public => true | |||
Permission.create :controller => "versions", :action => "download", :description => "button_download", :sort => 1301, :is_public => true | |||
Permission.create :controller => "projects", :action => "add_file", :description => "button_add", :sort => 1320 | |||
Permission.create :controller => "versions", :action => "destroy_file", :description => "button_delete", :sort => 1322 | |||
# create default administrator account | |||
user = User.create :firstname => "redMine", :lastname => "Admin", :mail => "admin@somenet.foo", :mail_notification => true, :language => "en" |
@@ -1,61 +0,0 @@ | |||
# redMine - project management software | |||
# Copyright (C) 2006 Jean-Philippe Lang | |||
# | |||
# This program is free software; you can redistribute it and/or | |||
# modify it under the terms of the GNU General Public License | |||
# as published by the Free Software Foundation; either version 2 | |||
# of the License, or (at your option) any later version. | |||
# | |||
# This program is distributed in the hope that it will be useful, | |||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
# GNU General Public License for more details. | |||
# | |||
# You should have received a copy of the GNU General Public License | |||
# along with this program; if not, write to the Free Software | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
class DefaultConfiguration < ActiveRecord::Migration | |||
def self.up | |||
# roles | |||
r = Role.create(:name => "Manager") | |||
r.permissions = Permission.find(:all) | |||
r = Role.create :name => "Developer" | |||
r.permissions = Permission.find(:all) | |||
r = Role.create :name => "Reporter" | |||
r.permissions = Permission.find(:all) | |||
# trackers | |||
Tracker.create(:name => "Bug", :is_in_chlog => true) | |||
Tracker.create(:name => "Feature request", :is_in_chlog => true) | |||
Tracker.create(:name => "Support request", :is_in_chlog => false) | |||
# issue statuses | |||
IssueStatus.create(:name => "New", :is_closed => false, :is_default => true, :html_color => 'F98787') | |||
IssueStatus.create(:name => "Assigned", :is_closed => false, :is_default => false, :html_color => 'C0C0FF') | |||
IssueStatus.create(:name => "Resolved", :is_closed => false, :is_default => false, :html_color => '88E0B3') | |||
IssueStatus.create(:name => "Feedback", :is_closed => false, :is_default => false, :html_color => 'F3A4F4') | |||
IssueStatus.create(:name => "Closed", :is_closed => true, :is_default => false, :html_color => 'DBDBDB') | |||
IssueStatus.create(:name => "Rejected", :is_closed => true, :is_default => false, :html_color => 'F5C28B') | |||
# workflow | |||
Tracker.find(:all).each { |t| | |||
Role.find(:all).each { |r| | |||
IssueStatus.find(:all).each { |os| | |||
IssueStatus.find(:all).each { |ns| | |||
Workflow.create(:tracker_id => t.id, :role_id => r.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |||
} | |||
} | |||
} | |||
} | |||
# enumeartions | |||
Enumeration.create(:opt => "DCAT", :name => 'Uncategorized') | |||
Enumeration.create(:opt => "DCAT", :name => 'User documentation') | |||
Enumeration.create(:opt => "DCAT", :name => 'Technical documentation') | |||
Enumeration.create(:opt => "IPRI", :name => 'Low') | |||
Enumeration.create(:opt => "IPRI", :name => 'Normal') | |||
Enumeration.create(:opt => "IPRI", :name => 'High') | |||
Enumeration.create(:opt => "IPRI", :name => 'Urgent') | |||
Enumeration.create(:opt => "IPRI", :name => 'Immediate') | |||
end | |||
def self.down | |||
end | |||
end |
@@ -11,19 +11,20 @@ http://redmine.org/ | |||
* token based "lost password" functionality | |||
* user self-registration functionality (optional) | |||
* custom fields now available for issues, users and projects | |||
* new custom field format "text" (textarea) | |||
* project & administration drop down menus in navigation bar | |||
* new custom field format "text" (displayed as a textarea field) | |||
* project & administration drop down menus in navigation bar for quicker access | |||
* "due date" field added on issues | |||
* error messages internationalization | |||
* Localization plugin replaced with GLoc 1.1.0 | |||
* new filter in issues list: "Fixed version" | |||
* colored background for active filters on issues list | |||
* active filters are displayed with colored background on issues list | |||
* custom configuration is now defined in config/config_custom.rb | |||
* user object no more stored in session (only user_id) | |||
* news summary field is no longer required | |||
* Fixed: boolean custom field not working | |||
* Fixed: error messages for custom fields are not displayed | |||
* Fixed: custom fields values are not validated on issue update | |||
* Fixed: user unable to choose an empty value for 'List' custom fields | |||
* Fixed: unable to choose an empty value for 'List' custom fields | |||
* Fixed: no issue categories sorting | |||
* Fixed: incorrect versions sorting | |||
@@ -0,0 +1,400 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" | |||
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> | |||
<book> | |||
<title>Documentation redMine</title> | |||
<chapter> | |||
<title>Administration</title> | |||
<section> | |||
<title>Utilisateurs</title> | |||
<para>Ces écrans vous permettent de gérer les utilisateurs de | |||
l'application.</para> | |||
<section> | |||
<title>Liste des utilisateurs</title> | |||
<para></para> | |||
<screenshot> | |||
<screeninfo>Liste des utilisateurs</screeninfo> | |||
<mediaobject> | |||
<imageobject> | |||
<imagedata fileref="images/users_list.png" /> | |||
</imageobject> | |||
</mediaobject> | |||
</screenshot> | |||
<para>Les boutons Lock/Unlock vous permettent de | |||
vérouiller/dévérouiller les comptes utilisateurs.</para> | |||
<para>Un utilisateur dont le compte est vérouillé ne peut plus | |||
s'identifier pour accéder à l'application.</para> | |||
</section> | |||
<section> | |||
<title>Création ou modification d'un utilisateur</title> | |||
<para>En mode modification, laissez le champ Password vide pour | |||
laisser le mot de passe de l'utilisateur inchangé.</para> | |||
<para>Un utilisateur déclaré comme administrateur dispose de toutes | |||
les permissions sur l'application et sur tous les projets.</para> | |||
<itemizedlist> | |||
<listitem> | |||
<para><guilabel>Administrateur</guilabel>: déclare l'utilisateur | |||
comme administrateur de l'application.</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Notifications par mail</guilabel>: permet | |||
d'activer ou non l'envoi automatique de notifications par mail | |||
pour cet utilisateur</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Vérouillé</guilabel>: désactive le compte de | |||
l'utilisateur</para> | |||
</listitem> | |||
</itemizedlist> | |||
</section> | |||
</section> | |||
<section> | |||
<title>Rôles et permissions</title> | |||
<para>Les rôles permettent de définir les permissions des différents | |||
membres d'un projet. Chaque membre d'un projet dispose d'un rôle unique | |||
au sein d'un projet. Un utilisateur peut avoir différents rôles au sein | |||
de différents projets.</para> | |||
<para>Sur l'écran d'édition du rôle, cochez les actions que vous | |||
souhaitez autoriser pour le rôle.</para> | |||
</section> | |||
<section> | |||
<title>Trackers</title> | |||
<para>Les trackers permettent de typer les demandes et de définir des | |||
workflows spécifiques pour chacun de ces types.</para> | |||
</section> | |||
<section> | |||
<title>Champs personnalisés</title> | |||
<para>Les champs personnalisés vous permettent d'ajouter des | |||
informations supplémentaires sur les demandes. Un champ personnalisé | |||
peut être de l'un des types suivants:</para> | |||
<itemizedlist> | |||
<listitem> | |||
<para><guilabel>Integer</guilabel>: entier positif ou négatif</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>String</guilabel>: chaîne de caractère</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Date</guilabel>: date</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Boolean</guilabel>: booléen (case à cocher)</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>List</guilabel>: valeur à sélectionnée parmi une | |||
liste prédéfinie (liste déroulante)</para> | |||
</listitem> | |||
</itemizedlist> | |||
<para>Des éléments de validation peuvent être définis:</para> | |||
<itemizedlist> | |||
<listitem> | |||
<para><guilabel>Obligatoire</guilabel>: champ dont la saisie est | |||
obligatoire sur les demandes</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Pour tous les projects</guilabel>: champ | |||
automatiquement associé à l'ensemble des projets</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Min - max length</guilabel>: longueurs minimales et | |||
maximales pour les champs en saisie libre (0 signifie qu'il n'y a | |||
pas de restriction)</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Expression régulière</guilabel>: expression | |||
régulière permettant de valider la valeur saisie</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Valeurs possibles</guilabel>: valeurs possibles pour | |||
les champs de type "Liste". Les valeurs sont séparées par le | |||
caractère |</para> | |||
</listitem> | |||
</itemizedlist> | |||
<para>Si l'option <guilabel>Pour tous les projets</guilabel> n'est pas | |||
activée, chaque projet pourra choisir d'utiliser ou non le champ pour | |||
ses demandes.</para> | |||
</section> | |||
<section> | |||
<title>Statut des demandes</title> | |||
<para>Ces écrans vous permettent de définir les différents statuts | |||
possibles des demandes.</para> | |||
<itemizedlist> | |||
<listitem> | |||
<para><guilabel>Demande fermée</guilabel>: indique que le statut | |||
correspond à une demande considérée comme fermée</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Statut par défaut</guilabel>: statut appliqué par | |||
défaut aux nouvelles demandes (seul un statut peut être déclaré | |||
comme statut par défaut)</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Couleur</guilabel>: code couleur HTML (6 caractères) | |||
représentant le statut à l'affichage</para> | |||
</listitem> | |||
</itemizedlist> | |||
<para></para> | |||
</section> | |||
<section> | |||
<title>Workflow</title> | |||
<para>Le workflow permet de définir les changements que les différents | |||
membres d'un projet sont autorisés à effectuer sur les demandes, en | |||
fonction de leur type.</para> | |||
<para>Sélectionnez le rôle et le tracker pour lesquels vous souhaitez | |||
modifier le workflow, puis cliquez sur Edit. L'écran vous permet alors | |||
de modifier, pour le rôle et le tracker choisi, les changements | |||
autorisés. Les lignes représentent les statuts initiaux des demandes. | |||
Les colonnes représentent les statuts autorisés à être appliqués.</para> | |||
<para>Remarque: pour qu'un rôle puisse changer le statut des demandes, | |||
la permission doit lui être explicitement donnée indépendemment de la | |||
configuration du workflow.</para> | |||
<para></para> | |||
<screenshot> | |||
<screeninfo>Exemple de configuration d'un workflow</screeninfo> | |||
<mediaobject> | |||
<imageobject> | |||
<imagedata fileref="images/workflow.png" /> | |||
</imageobject> | |||
</mediaobject> | |||
</screenshot> | |||
<para>Dans l'exemple ci-dessus, les demandes de type Bug au statut | |||
Nouveau pourront être passées au statut Assignée ou Résolue par le rôle | |||
Développeur. Celles au statut Assignée pourront être passées au statut | |||
Résolue. Le statut de toutes les autres demandes de type Bug ne pourra | |||
pas être modifié par le Développeur.</para> | |||
</section> | |||
<section> | |||
<title>Listes de valeurs</title> | |||
<para>Les listes de valeurs utilisées par l'application (exemple: les | |||
priorités des demandes) peuvent être personnalisées. Cet écran vous | |||
permet de définir les valeurs possibles pour chacune des listes | |||
suivantes:</para> | |||
<itemizedlist> | |||
<listitem> | |||
<para>Priorités des demandes</para> | |||
</listitem> | |||
<listitem> | |||
<para>Catégories de documents</para> | |||
</listitem> | |||
</itemizedlist> | |||
<para></para> | |||
</section> | |||
<section> | |||
<title>Notifications par mail</title> | |||
<para>Cet écran vous permet de sélectionner les actions qui donneront | |||
lieu à une notification par mail aux membres du projet.</para> | |||
<para>Remarque: l'envoi de mails doit être activé dans la configuration | |||
de l'application si souhaitez effectuer des notifications.</para> | |||
</section> | |||
<section> | |||
<title>Informations</title> | |||
<para>Affiche des informations relatives à l'application et à son | |||
environnement.</para> | |||
</section> | |||
</chapter> | |||
<chapter> | |||
<title>Projets</title> | |||
<para></para> | |||
<section> | |||
<title>Aperçu du projet</title> | |||
<para>L'aperçu vous présente les informations générales relatives au | |||
projet, les principaux membres, les dernières annonces, ainsi qu'une | |||
synthèse du nombre de demandes ouvertes par tracker.</para> | |||
<para></para> | |||
</section> | |||
<section> | |||
<title>Gestion des demandes</title> | |||
<para></para> | |||
<section> | |||
<title>Liste des demandes</title> | |||
<para>Par défaut, l'ensemble des demandes ouvertes du projet sont | |||
affichées. Différents filtres vous permettent de sélectionner les | |||
demandes à afficher. Si le projet comporte des sous-projets, vous avez | |||
la possibilité d'afficher également les demandes relatives aux | |||
sous-projets (non affichées par défaut).</para> | |||
<para>Une fois appliqué, un filtre reste valable durant toute votre | |||
session. Vous pouvez le redéfinir, ou le supprimer en cliquant sur | |||
Annuler.</para> | |||
<para></para> | |||
<screenshot> | |||
<screeninfo>Liste des demandes</screeninfo> | |||
<mediaobject> | |||
<imageobject> | |||
<imagedata fileref="images/issues_list.png" /> | |||
</imageobject> | |||
</mediaobject> | |||
</screenshot> | |||
<para></para> | |||
</section> | |||
</section> | |||
<section> | |||
<title>Rapports</title> | |||
<para>Cet écran présente la synthèse du nombre de demandes par statut et | |||
selon différents critères (tracker, priorité, catégorie). Des liens | |||
directs permettent d'accéder à la liste détaillée des demandes pour | |||
chaque critère.</para> | |||
</section> | |||
<section> | |||
<title>Historique</title> | |||
<para>Cette page présente l'ensemble des demandes résolues dans chacune | |||
des versions du projet. Certains types de demande peuvent être exclus de | |||
cet affichage.</para> | |||
</section> | |||
<section> | |||
<title>Annonces</title> | |||
<para>Les nouvelles vous permettent d'informer les utilisateurs sur | |||
l'activité du projet.</para> | |||
</section> | |||
<section> | |||
<title>Documents</title> | |||
<para>Les documents sont groupés par catégories (voir Listes de | |||
valeurs). Un document peut contenir plusieurs fichiers (exemple: | |||
révisions ou versions successives).</para> | |||
</section> | |||
<section> | |||
<title>Fichiers</title> | |||
<para>Ce module vous permet de publier les différents fichiers (sources, | |||
binaires, ...) pour chaque version de l'application.</para> | |||
</section> | |||
<section> | |||
<title>Configuration du projet</title> | |||
<para></para> | |||
<section> | |||
<title>Propriétés du projet</title> | |||
<para></para> | |||
<itemizedlist> | |||
<listitem> | |||
<para><guilabel>Public</guilabel>: si le projet est public, il | |||
sera visible (consultation des demandes, des documents, ...) pour | |||
l'ensemble des utilisateurs, y compris ceux qui ne sont pas | |||
membres du projet. Si le projet n'est pas public, seuls les | |||
membres du projet y ont accès, en fonction de leur rôle.</para> | |||
</listitem> | |||
<listitem> | |||
<para><guilabel>Champs personnalisés</guilabel>: sélectionner les | |||
champs personnalisés que vous souhaitez utiliser au sein du | |||
projet. Seul l'administrateur peut ajouter de nouveaux champs | |||
personnalisés.</para> | |||
</listitem> | |||
</itemizedlist> | |||
<para></para> | |||
</section> | |||
<section> | |||
<title>Membres</title> | |||
<para>Cet écran vous permet de définir les membres du projet ainsi que | |||
leurs rôles respectifs. Un utilisateur ne peut avoir qu'un rôle au | |||
sein d'un projet donné. Le rôle d'un membre détermine les permissions | |||
dont il bénéficie sur le projet.</para> | |||
</section> | |||
<section> | |||
<title>Versions</title> | |||
<para>Les versions vous permettent de suivre les changements survenus | |||
tout au long du projet. A la fermeture d'une demande, vous pouvez par | |||
exemple indiquer quelle version la prend en compte. Vous pouvez par | |||
ailleurs publier les différentes versions de l'application (voir | |||
Fichiers).</para> | |||
</section> | |||
<section> | |||
<title>Catégories des demandes</title> | |||
<para>Les catégories de demande vous permettent de typer les demandes. | |||
Les catégories peuvent par exemple correspondre aux différents modules | |||
du projet.</para> | |||
</section> | |||
</section> | |||
</chapter> | |||
</book> |
@@ -42,6 +42,7 @@ general_text_No: 'No' | |||
general_text_Yes: 'Yes' | |||
general_text_no: 'no' | |||
general_text_yes: 'yes' | |||
general_lang_en: 'English' | |||
notice_account_updated: Account was successfully updated. | |||
notice_account_invalid_creditentials: Invalid user or password |
@@ -1,4 +1,4 @@ | |||
_gloc_rule_default: '|n| n==1 ? "" : "_plural" ' | |||
_gloc_rule_default: '|n| n<=1 ? "" : "_plural" ' | |||
actionview_datehelper_select_day_prefix: | |||
actionview_datehelper_select_month_names: Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre | |||
@@ -42,6 +42,7 @@ general_text_No: 'Non' | |||
general_text_Yes: 'Oui' | |||
general_text_no: 'non' | |||
general_text_yes: 'oui' | |||
general_lang_fr: 'Français' | |||
notice_account_updated: Le compte a été mis à jour avec succès. | |||
notice_account_invalid_creditentials: Identifiant ou mot de passe invalide. | |||
@@ -49,10 +50,11 @@ notice_account_password_updated: Mot de passe mis à jour avec succès. | |||
notice_account_wrong_password: Mot de passe incorrect | |||
notice_account_register_done: Un message contenant les instructions pour activer votre compte vous a été envoyé. | |||
notice_account_unknown_email: Aucun compte ne correspond à cette adresse. | |||
notice_can_t_change_password: Ce compte utilise une authentification externe. Impossible de changer le mot de passe. | |||
notice_account_lost_email_sent: Un message contenant les instructions pour choisir un nouveau mot de passe vous a été envoyé. | |||
notice_account_activated: Votre compte a été activé. Vous pouvez à présent vous connecter. | |||
notice_successful_update: Mise à jour effectuée avec succès. | |||
notice_successful_create: Création effectuée avec succès. | |||
notice_successful_update: Mise à jour effectuée avec succès. | |||
notice_successful_delete: Suppression effectuée avec succès. | |||
notice_successful_connection: Connection réussie. | |||
@@ -90,6 +92,7 @@ field_is_default: Statut par défaut | |||
field_html_color: Couleur | |||
field_tracker: Tracker | |||
field_subject: Sujet | |||
field_due_date: Date d'échéance | |||
field_assigned_to: Assigné à | |||
field_priority: Priorité | |||
field_fixed_version: Version corrigée | |||
@@ -127,24 +130,36 @@ label_user_new: Nouvel utilisateur | |||
label_project: Projet | |||
label_project_new: Nouveau projet | |||
label_project_plural: Projets | |||
label_project_latest: Derniers projets | |||
label_issue: Demande | |||
label_issue_new: Nouvelle demande | |||
label_issue_plural: Demandes | |||
label_issue_view_all: Voir toutes les demandes | |||
label_document: Document | |||
label_document_new: Nouveau document | |||
label_document_plural: Documents | |||
label_role: Rôle | |||
label_role_plural: Rôles | |||
label_role_add: Nouveau rôle | |||
label_role_new: Nouveau rôle | |||
label_role_and_permissions: Rôles et permissions | |||
label_member: Membre | |||
label_member_new: Nouveau membre | |||
label_member_plural: Membres | |||
label_tracker: Tracker | |||
label_tracker_plural: Trackers | |||
label_tracker_add: Nouveau tracker | |||
label_tracker_new: Nouveau tracker | |||
label_workflow: Workflow | |||
label_issue_status: Statut de demandes | |||
label_issue_status_plural: Statuts de demandes | |||
label_issue_status_add: Nouveau statut | |||
label_issue_status_new: Nouveau statut | |||
label_issue_category: Catégorie de demandes | |||
label_issue_category_plural: Catégories de demandes | |||
label_issue_category_new: Nouvelle catégorie | |||
label_custom_field: Champ personnalisé | |||
label_custom_field_plural: Champs personnalisés | |||
label_custom_field_new: Nouveau champ personnalisé | |||
label_enumerations: Listes de valeurs | |||
label_enumeration_new: Nouvelle valeur | |||
label_information: Information | |||
label_information_plural: Informations | |||
label_please_login: Identification | |||
@@ -153,6 +168,7 @@ label_password_lost: Mot de passe perdu | |||
label_home: Accueil | |||
label_my_page: Ma page | |||
label_my_account: Mon compte | |||
label_my_projects: Mes projets | |||
label_administration: Administration | |||
label_login: Connexion | |||
label_logout: Déconnexion | |||
@@ -182,7 +198,45 @@ label_string: Chaîne | |||
label_text: Texte | |||
label_attribute: Attribut | |||
label_attribute_plural: Attributs | |||
label_download: %d Téléchargement | |||
label_download_plural: %d Téléchargements | |||
label_no_data: Aucune donnée à afficher | |||
label_change_status: Changer le statut | |||
label_history: Historique | |||
label_attachment: Fichier | |||
label_attachment_new: Nouveau fichier | |||
label_attachment_delete: Supprimer le fichier | |||
label_attachment_plural: Fichiers | |||
label_report: Rapport | |||
label_report_plural: Rapports | |||
label_news: Annonce | |||
label_news_new: Nouvelle annonce | |||
label_news_plural: Annonces | |||
label_news_latest: Dernières annonces | |||
label_news_view_all: Voir toutes les annonces | |||
label_change_log: Historique | |||
label_settings: Configuration | |||
label_overview: Aperçu | |||
label_version: Version | |||
label_version_new: Nouvelle version | |||
label_version_plural: Versions | |||
label_confirmation: Confirmation | |||
label_export_csv: Exporter en CSV | |||
label_read: Lire... | |||
label_public_projects: Projets publics | |||
label_open_issues: Ouverte | |||
label_open_issues_plural: Ouvertes | |||
label_closed_issues: Fermée | |||
label_closed_issues_plural: Fermées | |||
label_total: Total | |||
label_permissions: Permissions | |||
label_current_status: Statut actuel | |||
label_new_statuses_allowed: Nouveaux statuts autorisés | |||
label_all: Tous | |||
label_none: Aucun | |||
label_next: Suivant | |||
label_previous: Précédent | |||
label_used_by: Utilisé par | |||
button_login: Connexion | |||
button_submit: Soumettre | |||
@@ -192,8 +246,43 @@ button_uncheck_all: Tout décocher | |||
button_delete: Supprimer | |||
button_create: Créer | |||
button_test: Tester | |||
button_edit: Modifier | |||
button_add: Ajouter | |||
button_change: Changer | |||
button_apply: Appliquer | |||
button_clear: Effacer | |||
button_lock: Verrouiller | |||
button_unlock: Déverrouiller | |||
button_download: Télécharger | |||
button_list: Lister | |||
button_view: Voir | |||
text_select_mail_notifications: Sélectionner les actions pour lesquelles la notification par mail doit être activée. | |||
text_regexp_info: eg. ^[A-Z0-9]+$ | |||
text_min_max_length_info: 0 pour aucune restriction | |||
text_possible_values_info: valeurs séparées par | | |||
text_possible_values_info: valeurs séparées par | | |||
text_project_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce projet et tout ce qui lui est rattaché ? | |||
text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow | |||
default_role_manager: Manager | |||
default_role_developper: Développeur | |||
default_role_reporter: Rapporteur | |||
default_tracker_bug: Anomalie | |||
default_tracker_feature: Evolution | |||
default_tracker_support: Assistance | |||
default_issue_status_new: Nouveau | |||
default_issue_status_assigned: Assigné | |||
default_issue_status_resolved: Résolu | |||
default_issue_status_feedback: Commentaire | |||
default_issue_status_closed: Fermé | |||
default_issue_status_rejected: Rejeté | |||
default_doc_category_user: Documentation utilisateur | |||
default_doc_category_tech: Documentation technique | |||
default_priority_low: Bas | |||
default_priority_normal: Normal | |||
default_priority_high: Haut | |||
default_priority_urgent: Urgent | |||
default_priority_immediate: Immédiat | |||
enumeration_issue_priorities: Priorités des demandes | |||
enumeration_doc_categories: Catégories des documents |
@@ -0,0 +1,43 @@ | |||
desc 'Load default configuration data (using default language)' | |||
task :load_default_data => :environment do | |||
include GLoc | |||
set_language_if_valid($RDM_DEFAULT_LANG) | |||
# roles | |||
r = Role.create :name => l(:default_role_manager) | |||
r.permissions = Permission.find(:all, :conditions => ["is_public=?", false]) | |||
r = Role.create :name => l(:default_role_developper) | |||
r.permissions = Permission.find(:all, :conditions => ["is_public=?", false]) | |||
r = Role.create :name => l(:default_role_reporter) | |||
r.permissions = Permission.find(:all, :conditions => ["is_public=?", false]) | |||
# trackers | |||
Tracker.create(:name => l(:default_tracker_bug), :is_in_chlog => true) | |||
Tracker.create(:name => l(:default_tracker_feature), :is_in_chlog => true) | |||
Tracker.create(:name => l(:default_tracker_support), :is_in_chlog => false) | |||
# issue statuses | |||
IssueStatus.create(:name => l(:default_issue_status_new), :is_closed => false, :is_default => true, :html_color => 'F98787') | |||
IssueStatus.create(:name => l(:default_issue_status_assigned), :is_closed => false, :is_default => false, :html_color => 'C0C0FF') | |||
IssueStatus.create(:name => l(:default_issue_status_resolved), :is_closed => false, :is_default => false, :html_color => '88E0B3') | |||
IssueStatus.create(:name => l(:default_issue_status_feedback), :is_closed => false, :is_default => false, :html_color => 'F3A4F4') | |||
IssueStatus.create(:name => l(:default_issue_status_closed), :is_closed => true, :is_default => false, :html_color => 'DBDBDB') | |||
IssueStatus.create(:name => l(:default_issue_status_rejected), :is_closed => true, :is_default => false, :html_color => 'F5C28B') | |||
# workflow | |||
Tracker.find(:all).each { |t| | |||
Role.find(:all).each { |r| | |||
IssueStatus.find(:all).each { |os| | |||
IssueStatus.find(:all).each { |ns| | |||
Workflow.create(:tracker_id => t.id, :role_id => r.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns | |||
} | |||
} | |||
} | |||
} | |||
# enumerations | |||
Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_user)) | |||
Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_tech)) | |||
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_low)) | |||
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_normal)) | |||
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_high)) | |||
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_urgent)) | |||
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_immediate)) | |||
end |
@@ -2,7 +2,7 @@ | |||
permissions_041: | |||
action: add_file | |||
id: 41 | |||
description: Add | |||
description: button_add | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -11,7 +11,7 @@ permissions_041: | |||
permissions_030: | |||
action: destroy | |||
id: 30 | |||
description: Delete | |||
description: button_delete | |||
controller: news | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -20,7 +20,7 @@ permissions_030: | |||
permissions_019: | |||
action: download | |||
id: 19 | |||
description: Download file | |||
description: button_download | |||
controller: issues | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -29,7 +29,7 @@ permissions_019: | |||
permissions_008: | |||
action: edit | |||
id: 8 | |||
description: Edit | |||
description: button_edit | |||
controller: members | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -38,7 +38,7 @@ permissions_008: | |||
permissions_042: | |||
action: destroy_file | |||
id: 42 | |||
description: Delete | |||
description: button_delete | |||
controller: versions | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -47,7 +47,7 @@ permissions_042: | |||
permissions_031: | |||
action: list_documents | |||
id: 31 | |||
description: View list | |||
description: button_list | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -56,7 +56,7 @@ permissions_031: | |||
permissions_020: | |||
action: add_issue | |||
id: 20 | |||
description: Report an issue | |||
description: button_add | |||
controller: projects | |||
mail_enabled: true | |||
mail_option: true | |||
@@ -65,7 +65,7 @@ permissions_020: | |||
permissions_009: | |||
action: destroy | |||
id: 9 | |||
description: Delete | |||
description: button_delete | |||
controller: members | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -74,7 +74,7 @@ permissions_009: | |||
permissions_032: | |||
action: show | |||
id: 32 | |||
description: View | |||
description: button_view | |||
controller: documents | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -83,7 +83,7 @@ permissions_032: | |||
permissions_021: | |||
action: edit | |||
id: 21 | |||
description: Edit | |||
description: button_edit | |||
controller: issues | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -92,7 +92,7 @@ permissions_021: | |||
permissions_010: | |||
action: add_version | |||
id: 10 | |||
description: New version | |||
description: button_add | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -101,7 +101,7 @@ permissions_010: | |||
permissions_033: | |||
action: download | |||
id: 33 | |||
description: Download | |||
description: button_download | |||
controller: documents | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -110,7 +110,7 @@ permissions_033: | |||
permissions_022: | |||
action: change_status | |||
id: 22 | |||
description: Change status | |||
description: label_change_status | |||
controller: issues | |||
mail_enabled: true | |||
mail_option: true | |||
@@ -119,7 +119,7 @@ permissions_022: | |||
permissions_011: | |||
action: edit | |||
id: 11 | |||
description: Edit | |||
description: button_edit | |||
controller: versions | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -128,7 +128,7 @@ permissions_011: | |||
permissions_034: | |||
action: add_document | |||
id: 34 | |||
description: Add | |||
description: button_add | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -137,7 +137,7 @@ permissions_034: | |||
permissions_023: | |||
action: destroy | |||
id: 23 | |||
description: Delete | |||
description: button_delete | |||
controller: issues | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -146,7 +146,7 @@ permissions_023: | |||
permissions_012: | |||
action: destroy | |||
id: 12 | |||
description: Delete | |||
description: button_delete | |||
controller: versions | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -155,7 +155,7 @@ permissions_012: | |||
permissions_001: | |||
action: show | |||
id: 1 | |||
description: Overview | |||
description: label_overview | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -164,7 +164,7 @@ permissions_001: | |||
permissions_035: | |||
action: edit | |||
id: 35 | |||
description: Edit | |||
description: button_edit | |||
controller: documents | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -173,7 +173,7 @@ permissions_035: | |||
permissions_024: | |||
action: add_attachment | |||
id: 24 | |||
description: Add file | |||
description: label_attachment_new | |||
controller: issues | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -182,7 +182,7 @@ permissions_024: | |||
permissions_013: | |||
action: add_issue_category | |||
id: 13 | |||
description: New issue category | |||
description: button_add | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -191,7 +191,7 @@ permissions_013: | |||
permissions_002: | |||
action: changelog | |||
id: 2 | |||
description: View change log | |||
description: label_change_log | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -200,7 +200,7 @@ permissions_002: | |||
permissions_036: | |||
action: destroy | |||
id: 36 | |||
description: Delete | |||
description: button_delete | |||
controller: documents | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -209,7 +209,7 @@ permissions_036: | |||
permissions_025: | |||
action: destroy_attachment | |||
id: 25 | |||
description: Delete file | |||
description: label_attachment_delete | |||
controller: issues | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -218,7 +218,7 @@ permissions_025: | |||
permissions_014: | |||
action: edit | |||
id: 14 | |||
description: Edit | |||
description: button_edit | |||
controller: issue_categories | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -227,7 +227,7 @@ permissions_014: | |||
permissions_003: | |||
action: issue_report | |||
id: 3 | |||
description: View reports | |||
description: label_report_plural | |||
controller: reports | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -236,7 +236,7 @@ permissions_003: | |||
permissions_037: | |||
action: add_attachment | |||
id: 37 | |||
description: Add file | |||
description: label_attachment_new | |||
controller: documents | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -245,7 +245,7 @@ permissions_037: | |||
permissions_026: | |||
action: list_news | |||
id: 26 | |||
description: View list | |||
description: button_list | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -254,7 +254,7 @@ permissions_026: | |||
permissions_015: | |||
action: destroy | |||
id: 15 | |||
description: Delete | |||
description: button_delete | |||
controller: issue_categories | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -263,7 +263,7 @@ permissions_015: | |||
permissions_004: | |||
action: settings | |||
id: 4 | |||
description: Settings | |||
description: label_settings | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -272,7 +272,7 @@ permissions_004: | |||
permissions_038: | |||
action: destroy_attachment | |||
id: 38 | |||
description: Delete file | |||
description: label_attachment_delete | |||
controller: documents | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -281,7 +281,7 @@ permissions_038: | |||
permissions_027: | |||
action: show | |||
id: 27 | |||
description: View | |||
description: button_view | |||
controller: news | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -290,7 +290,7 @@ permissions_027: | |||
permissions_016: | |||
action: list_issues | |||
id: 16 | |||
description: View list | |||
description: button_list | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -299,7 +299,7 @@ permissions_016: | |||
permissions_005: | |||
action: edit | |||
id: 5 | |||
description: Edit | |||
description: button_edit | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -308,7 +308,7 @@ permissions_005: | |||
permissions_039: | |||
action: list_files | |||
id: 39 | |||
description: View list | |||
description: button_list | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -317,7 +317,7 @@ permissions_039: | |||
permissions_028: | |||
action: add_news | |||
id: 28 | |||
description: Add | |||
description: button_add | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -326,7 +326,7 @@ permissions_028: | |||
permissions_017: | |||
action: export_issues_csv | |||
id: 17 | |||
description: Export list to CSV | |||
description: label_export_csv | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -335,7 +335,7 @@ permissions_017: | |||
permissions_006: | |||
action: list_members | |||
id: 6 | |||
description: View list | |||
description: button_list | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -344,7 +344,7 @@ permissions_006: | |||
permissions_040: | |||
action: download | |||
id: 40 | |||
description: Download | |||
description: button_download | |||
controller: versions | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -353,7 +353,7 @@ permissions_040: | |||
permissions_029: | |||
action: edit | |||
id: 29 | |||
description: Edit | |||
description: button_edit | |||
controller: news | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -362,7 +362,7 @@ permissions_029: | |||
permissions_018: | |||
action: show | |||
id: 18 | |||
description: View | |||
description: button_view | |||
controller: issues | |||
mail_enabled: false | |||
mail_option: false | |||
@@ -371,7 +371,7 @@ permissions_018: | |||
permissions_007: | |||
action: add_member | |||
id: 7 | |||
description: New member | |||
description: button_add | |||
controller: projects | |||
mail_enabled: false | |||
mail_option: false |
@@ -41,10 +41,6 @@ class AccountTest < ActionController::IntegrationTest | |||
assert_response :success | |||
assert_tag :tag => "div", :attributes => { :class => "errorExplanation" } | |||
post "account/change_password", :password => 'admiN', :new_password => "hello", :new_password_confirmation => "hello" | |||
assert_response :success | |||
assert_equal 'Wrong password', flash[:notice] | |||
post "account/change_password", :password => 'jsmith', :new_password => "hello", :new_password_confirmation => "hello" | |||
assert_response :success | |||
log_user('jsmith', 'hello') |