Localization plugin removed (replaced with GLoc)

git-svn-id: http://redmine.rubyforge.org/svn/trunk@14 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2006-07-29 19:54:22 +00:00
parent 5b47d7bfcc
commit b862c447f1
92 changed files with 1093 additions and 647 deletions

View File

@ -41,7 +41,7 @@ class AccountController < ApplicationController
self.logged_in_user = user self.logged_in_user = user
redirect_back_or_default :controller => 'account', :action => 'my_page' redirect_back_or_default :controller => 'account', :action => 'my_page'
else else
flash[:notice] = l(:notice_account_invalid_creditentials) flash.now[:notice] = l(:notice_account_invalid_creditentials)
end end
end end
end end
@ -64,7 +64,7 @@ class AccountController < ApplicationController
@user = self.logged_in_user @user = self.logged_in_user
if request.post? and @user.update_attributes(@params[:user]) if request.post? and @user.update_attributes(@params[:user])
set_localization set_localization
flash[:notice] = l(:notice_account_updated) flash.now[:notice] = l(:notice_account_updated)
self.logged_in_user.reload self.logged_in_user.reload
end end
end end
@ -72,11 +72,12 @@ class AccountController < ApplicationController
# Change logged in user's password # Change logged in user's password
def change_password def change_password
@user = self.logged_in_user @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]) if @user.check_password?(@params[:password])
@user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation] @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 else
flash[:notice] = l(:notice_account_wrong_password) flash.now[:notice] = l(:notice_account_wrong_password)
end end
render :action => 'my_account' render :action => 'my_account'
end end
@ -101,10 +102,15 @@ class AccountController < ApplicationController
else else
if request.post? if request.post?
user = User.find_by_mail(params[:mail]) user = User.find_by_mail(params[:mail])
flash[:notice] = l(:notice_account_unknown_email) and return unless user # 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") token = Token.new(:user => user, :action => "recovery")
if token.save 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) Mailer.deliver_lost_password(token)
flash[:notice] = l(:notice_account_lost_email_sent) flash[:notice] = l(:notice_account_lost_email_sent)
redirect_to :action => 'login' redirect_to :action => 'login'
@ -143,7 +149,7 @@ class AccountController < ApplicationController
@user.custom_values = @custom_values @user.custom_values = @custom_values
token = Token.new(:user => @user, :action => "register") token = Token.new(:user => @user, :action => "register")
if @user.save and token.save if @user.save and token.save
Mailer.set_language_if_valid(Localization.lang) Mailer.set_language_if_valid(@user.language)
Mailer.deliver_register(token) Mailer.deliver_register(token)
flash[:notice] = l(:notice_account_register_done) flash[:notice] = l(:notice_account_register_done)
redirect_to :controller => '' redirect_to :controller => ''

View File

@ -37,21 +37,19 @@ class ApplicationController < ActionController::Base
end end
def set_localization def set_localization
Localization.lang = begin lang = begin
if self.logged_in_user and Localization.langs.keys.include? self.logged_in_user.language 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 self.logged_in_user.language
elsif request.env['HTTP_ACCEPT_LANGUAGE'] elsif request.env['HTTP_ACCEPT_LANGUAGE']
accept_lang = HTTPUtils.parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.split('-').first 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 accept_lang
end end
end end
rescue rescue
nil nil
end || $RDM_DEFAULT_LANG end || $RDM_DEFAULT_LANG
set_language_if_valid(lang)
set_language_if_valid(Localization.lang)
end end
def require_login def require_login

View File

@ -38,7 +38,7 @@ class EnumerationsController < ApplicationController
def create def create
@enumeration = Enumeration.new(params[:enumeration]) @enumeration = Enumeration.new(params[:enumeration])
if @enumeration.save if @enumeration.save
flash[:notice] = 'Enumeration was successfully created.' flash[:notice] = l(:notice_successful_create)
redirect_to :action => 'list', :opt => @enumeration.opt redirect_to :action => 'list', :opt => @enumeration.opt
else else
render :action => 'new' render :action => 'new'
@ -52,7 +52,7 @@ class EnumerationsController < ApplicationController
def update def update
@enumeration = Enumeration.find(params[:id]) @enumeration = Enumeration.find(params[:id])
if @enumeration.update_attributes(params[:enumeration]) 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 redirect_to :action => 'list', :opt => @enumeration.opt
else else
render :action => 'edit' render :action => 'edit'
@ -61,6 +61,7 @@ class EnumerationsController < ApplicationController
def destroy def destroy
Enumeration.find(params[:id]).destroy Enumeration.find(params[:id]).destroy
flash[:notice] = l(:notice_successful_delete)
redirect_to :action => 'list' redirect_to :action => 'list'
rescue rescue
flash[:notice] = "Unable to delete enumeration" flash[:notice] = "Unable to delete enumeration"

View File

@ -31,7 +31,7 @@ class HelpController < ApplicationController
end end
end end
# choose language according to available help translations # 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 if template
redirect_to "/manual/#{lang}/#{template}" redirect_to "/manual/#{lang}/#{template}"

View File

@ -227,7 +227,7 @@ class ProjectsController < ApplicationController
CSV::Writer.generate(export, ',') do |csv| CSV::Writer.generate(export, ',') do |csv|
csv << %w(Id Status Tracker Subject Author Created Updated) csv << %w(Id Status Tracker Subject Author Created Updated)
@issues.each do |issue| @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
end end
export.rewind export.rewind

View File

@ -37,7 +37,7 @@ class RolesController < ApplicationController
redirect_to :action => 'list' redirect_to :action => 'list'
end end
end end
@permissions = Permission.find(:all, :order => 'sort ASC') @permissions = Permission.find(:all, :conditions => ["is_public=?", false], :order => 'sort ASC')
end end
def edit def edit
@ -48,7 +48,7 @@ class RolesController < ApplicationController
flash[:notice] = 'Role was successfully updated.' flash[:notice] = 'Role was successfully updated.'
redirect_to :action => 'list' 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 end
def destroy def destroy
@ -62,7 +62,6 @@ class RolesController < ApplicationController
end end
def workflow def workflow
@role = Role.find_by_id(params[:role_id]) @role = Role.find_by_id(params[:role_id])
@tracker = Tracker.find_by_id(params[:tracker_id]) @tracker = Tracker.find_by_id(params[:tracker_id])

View File

@ -50,18 +50,18 @@ module ApplicationHelper
end end
def format_date(date) def format_date(date)
_('(date)', date) if date l_date(date) if date
end end
def format_time(time) def format_time(time)
_('(time)', time) if time l_datetime(time) if time
end end
def pagination_links_full(paginator, options={}, html_options={}) def pagination_links_full(paginator, options={}, html_options={})
html ='' html =''
html << link_to(('&#171; ' + _('Previous') ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous html << link_to(('&#171; ' + l(:label_previous) ), { :page => paginator.current.previous }) + ' ' if paginator.current.previous
html << (pagination_links(paginator, options, html_options) || '') html << (pagination_links(paginator, options, html_options) || '')
html << ' ' + link_to((_('Next') + ' &#187;'), { :page => paginator.current.next }) if paginator.current.next html << ' ' + link_to((l(:label_next) + ' &#187;'), { :page => paginator.current.next }) if paginator.current.next
html html
end end
@ -90,4 +90,8 @@ module ApplicationHelper
"" ""
end end
end end
def lang_options_for_select
GLoc.valid_languages.collect {|lang| [ l_lang_name(lang.to_s, lang), lang.to_s]}
end
end end

View File

@ -58,42 +58,43 @@ module SearchFilterHelper
def search_filter_init_list_issues def search_filter_init_list_issues
search_filter_criteria('status_id') { search_filter_criteria('status_id') {
[ [_('[Open]'), "O", ["issue_statuses.is_closed=?", false]], [ [('['+l(:label_open_issues_plural)+']'), "O", ["issue_statuses.is_closed=?", false]],
[_('[All]'), "A", nil] [('['+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]] } ] + IssueStatus.find(:all).collect {|s| [s.name, s.id, ["issues.status_id=?", s.id]] }
} }
search_filter_criteria('tracker_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]] } ] + Tracker.find(:all).collect {|s| [s.name, s.id, ["issues.tracker_id=?", s.id]] }
} }
search_filter_criteria('priority_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]] } ] + Enumeration.find(:all, :conditions => ['opt=?','IPRI']).collect {|s| [s.name, s.id, ["issues.priority_id=?", s.id]] }
} }
search_filter_criteria('category_id') { search_filter_criteria('category_id') {
[ [_('[All]'), "A", nil], [ [('['+l(:label_all)+']'), "A", nil],
[_('[None]'), "N", ["issues.category_id is null"]] [('['+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]] } ] + @project.issue_categories.find(:all).collect {|s| [s.name, s.id, ["issues.category_id=?", s.id]] }
} }
search_filter_criteria('fixed_version_id') { search_filter_criteria('fixed_version_id') {
[ [_('[All]'), "A", nil], [ [('['+l(:label_all)+']'), "A", nil],
[_('[None]'), "N", ["issues.fixed_version_id is null"]] [('['+l(:label_none)+']'), "N", ["issues.fixed_version_id is null"]]
] + @project.versions.collect {|s| [s.name, s.id, ["issues.fixed_version_id=?", s.id]] } ] + @project.versions.collect {|s| [s.name, s.id, ["issues.fixed_version_id=?", s.id]] }
} }
search_filter_criteria('assigned_to_id') { search_filter_criteria('assigned_to_id') {
[ [_('[All]'), "A", nil], [ [('['+l(:label_all)+']'), "A", nil],
[_('[None]'), "N", ["issues.assigned_to_id is null"]] [('['+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]] } ] + @project.users.collect {|s| [s.display_name, s.id, ["issues.assigned_to_id=?", s.id]] }
} }
search_filter_criteria('subproject_id') { search_filter_criteria('subproject_id') {
[ [_('[None]'), "N", ["issues.project_id=?", @project.id]], [ [('['+l(:label_none)+']'), "N", ["issues.project_id=?", @project.id]],
[_('[All]'), "A", ["(issues.project_id=? or projects.parent_id=?)", @project.id, @project.id]] [('['+l(:label_all)+']'), "A", ["(issues.project_id=? or projects.parent_id=?)", @project.id, @project.id]]
] ]
} }
end end

View File

@ -30,7 +30,7 @@ class AuthSourceLdap < AuthSource
# get user's DN # get user's DN
ldap_con = initialize_ldap_con(self.account, self.account_password) ldap_con = initialize_ldap_con(self.account, self.account_password)
login_filter = Net::LDAP::Filter.eq( self.attr_login, login ) 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 dn = String.new
ldap_con.search( :base => self.base_dn, ldap_con.search( :base => self.base_dn,
:filter => object_filter & login_filter, :filter => object_filter & login_filter,

View File

@ -21,19 +21,15 @@ class Enumeration < ActiveRecord::Base
validates_presence_of :opt, :name validates_presence_of :opt, :name
validates_uniqueness_of :name, :scope => [:opt] validates_uniqueness_of :name, :scope => [:opt]
OPTIONS = [ OPTIONS = {
["Issue priorities", "IPRI"], "IPRI" => :enumeration_issue_priorities,
["Document categories", "DCAT"] "DCAT" => :enumeration_doc_categories
].freeze }.freeze
def self.get_values(option) def self.get_values(option)
find(:all, :conditions => ['opt=?', option]) find(:all, :conditions => ['opt=?', option])
end end
def name
_ self.attributes['name']
end
private private
def check_integrity def check_integrity
case self.opt case self.opt

View File

@ -38,10 +38,6 @@ class IssueStatus < ActiveRecord::Base
statuses statuses
end end
def name
_ self.attributes['name']
end
private private
def check_integrity 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]) raise "Can't delete status" if Issue.find(:first, :conditions => ["status_id=?", self.id]) or IssueHistory.find(:first, :conditions => ["status_id=?", self.id])

View File

@ -46,5 +46,4 @@ class Mailer < ActionMailer::Base
@subject = "redMine account activation" @subject = "redMine account activation"
@body['token'] = token @body['token'] = token
end end
end end

View File

@ -16,14 +16,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Member < ActiveRecord::Base class Member < ActiveRecord::Base
belongs_to :user belongs_to :user
belongs_to :role belongs_to :role
belongs_to :project belongs_to :project
validates_presence_of :role, :user, :project validates_presence_of :role, :user, :project
validates_uniqueness_of :user_id, :scope => :project_id validates_uniqueness_of :user_id, :scope => :project_id
def name def name
self.user.display_name self.user.display_name
end end
end end

View File

@ -16,13 +16,13 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class News < ActiveRecord::Base class News < ActiveRecord::Base
belongs_to :project belongs_to :project
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
validates_presence_of :title, :description validates_presence_of :title, :description
# returns last created news # returns last created news
def self.latest def self.latest
find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC") find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC")
end end
end end

View File

@ -16,27 +16,27 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Permission < ActiveRecord::Base class Permission < ActiveRecord::Base
has_and_belongs_to_many :roles has_and_belongs_to_many :roles
validates_presence_of :controller, :action, :description validates_presence_of :controller, :action, :description
GROUPS = { GROUPS = {
100 => "Project", 100 => :label_project,
200 => "Membres", 200 => :label_member_plural,
300 => "Versions", 300 => :label_version_plural,
400 => "Issue categories", 400 => :label_issue_category_plural,
1000 => "Issues", 1000 => :label_issue_plural,
1100 => "News", 1100 => :label_news_plural,
1200 => "Documents", 1200 => :label_document_plural,
1300 => "Files", 1300 => :label_attachment_plural,
}.freeze }.freeze
@@cached_perms_for_public = nil @@cached_perms_for_public = nil
@@cached_perms_for_roles = nil @@cached_perms_for_roles = nil
def name def name
self.controller + "/" + self.action self.controller + "/" + self.action
end end
def group_id def group_id
(self.sort / 100)*100 (self.sort / 100)*100

View File

@ -17,12 +17,12 @@
class Role < ActiveRecord::Base class Role < ActiveRecord::Base
before_destroy :check_integrity before_destroy :check_integrity
has_and_belongs_to_many :permissions has_and_belongs_to_many :permissions
has_many :workflows, :dependent => true has_many :workflows, :dependent => true
has_many :members has_many :members
validates_presence_of :name validates_presence_of :name
validates_uniqueness_of :name validates_uniqueness_of :name
private private
def check_integrity def check_integrity

View File

@ -24,10 +24,6 @@ class Tracker < ActiveRecord::Base
validates_presence_of :name validates_presence_of :name
validates_uniqueness_of :name validates_uniqueness_of :name
def name
_ self.attributes['name']
end
private private
def check_integrity def check_integrity
raise "Can't delete tracker" if Issue.find(:first, :conditions => ["tracker_id=?", self.id]) raise "Can't delete tracker" if Issue.find(:first, :conditions => ["tracker_id=?", self.id])

View File

@ -57,7 +57,7 @@ class User < ActiveRecord::Base
# user has an external authentication method # user has an external authentication method
return nil unless user.auth_source.authenticate(login, password) return nil unless user.auth_source.authenticate(login, password)
else else
# local authentication # authentication with local password
return nil unless User.hash_password(password) == user.hashed_password return nil unless User.hash_password(password) == user.hashed_password
end end
else else
@ -69,6 +69,7 @@ class User < ActiveRecord::Base
onthefly.language = $RDM_DEFAULT_LANG onthefly.language = $RDM_DEFAULT_LANG
if onthefly.save if onthefly.save
user = find(:first, :conditions => ["login=?", login]) user = find(:first, :conditions => ["login=?", login])
logger.info("User '#{user.login}' created on the fly.") if logger
end end
end end
end end

View File

@ -23,7 +23,7 @@
<%= text_field 'user', 'mail' %></p> <%= text_field 'user', 'mail' %></p>
<p><label for="user_language"><%=l(:field_language)%></label><br/> <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]--> <!--[eoform:user]-->
<p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p> <p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p>
@ -35,6 +35,7 @@
<div class="splitcontentright"> <div class="splitcontentright">
<% unless @user.auth_source_id %>
<div class="box"> <div class="box">
<h3><%=l(:field_password)%></h3> <h3><%=l(:field_password)%></h3>
&nbsp; &nbsp;
@ -52,4 +53,5 @@
<center><%= submit_tag l(:button_save) %></center> <center><%= submit_tag l(:button_save) %></center>
<%= end_form_tag %> <%= end_form_tag %>
</div> </div>
<% end %>
</div> </div>

View File

@ -1,7 +1,6 @@
<h2><%=l(:label_register)%></h2> <h2><%=l(:label_register)%></h2>
<%= start_form_tag %> <%= start_form_tag %>
<%= error_messages_for 'user' %> <%= error_messages_for 'user' %>
<div class="box"> <div class="box">
@ -25,22 +24,15 @@
<%= text_field 'user', 'mail' %></p> <%= text_field 'user', 'mail' %></p>
<p><label for="user_language"><%=l(:field_language)%></label><br/> <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 %> <% for custom_value in @custom_values %>
<div style="float:left;margin-right:10px;"> <p><%= custom_field_tag_with_label custom_value %></p>
<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>
<% end %> <% end %>
<div style="clear: both;"></div>
<p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p> <p><%= check_box 'user', 'mail_notification' %> <label for="user_mail_notification"><%=l(:field_mail_notification)%></label></p>
<!--[eoform:user]--> <!--[eoform:user]-->
</div> </div>
<%= submit_tag l(:button_submit) %> <%= submit_tag l(:button_submit) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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> <p><%=l(:field_version)%>: <strong><%= RDM_APP_NAME %> <%= RDM_APP_VERSION %></strong></p>

View File

@ -7,7 +7,7 @@
<th><%=l(:field_field_format)%></th> <th><%=l(:field_field_format)%></th>
<th><%=l(:field_is_required)%></th> <th><%=l(:field_is_required)%></th>
<th><%=l(:field_is_for_all)%></th> <th><%=l(:field_is_for_all)%></th>
<th><%=_('Used by')%></th> <th><%=l(:label_used_by)%></th>
<th></th> <th></th>
</tr> </tr>
<% for custom_field in @custom_fields %> <% for custom_field in @custom_fields %>

View File

@ -9,7 +9,7 @@
<p><label for="document_title"><%=l(:field_title)%> <span class="required">*</span></label><br /> <p><label for="document_title"><%=l(:field_title)%> <span class="required">*</span></label><br />
<%= text_field 'document', 'title', :size => 60 %></p> <%= 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> <%= text_area 'document', 'description', :cols => 60, :rows => 5 %></p>
<!--[eoform:document]--> <!--[eoform:document]-->

View File

@ -1,8 +1,8 @@
<h2><%=_('Document')%></h2> <h2><%=l(:label_document)%></h2>
<%= start_form_tag :action => 'edit', :id => @document %> <%= start_form_tag :action => 'edit', :id => @document %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,18 +1,18 @@
<h2><%= @document.title %></h2> <h2><%= @document.title %></h2>
<strong><%=_('Description')%>:</strong> <%= @document.description %><br /> <strong><%=l(:field_description)%>:</strong> <%= @document.description %><br />
<strong><%=_('Category')%>:</strong> <%= @document.category.name %><br /> <strong><%=l(:field_category)%>:</strong> <%= @document.category.name %><br />
<br /> <br />
<% if authorize_for('documents', 'edit') %> <% if authorize_for('documents', 'edit') %>
<%= start_form_tag ({ :controller => 'documents', :action => 'edit', :id => @document }, :method => 'get' ) %> <%= start_form_tag({ :controller => 'documents', :action => 'edit', :id => @document }, :method => 'get' ) %>
<%= submit_tag _('Edit') %> <%= submit_tag l(:button_edit) %>
<%= end_form_tag %> <%= end_form_tag %>
<% end %> <% end %>
<% if authorize_for('documents', 'destroy') %> <% if authorize_for('documents', 'destroy') %>
<%= start_form_tag ({ :controller => 'documents', :action => 'destroy', :id => @document } ) %> <%= start_form_tag({ :controller => 'documents', :action => 'destroy', :id => @document } ) %>
<%= submit_tag _('Delete') %> <%= submit_tag l(:button_delete) %>
<%= end_form_tag %> <%= end_form_tag %>
<% end %> <% end %>
@ -24,12 +24,12 @@
<td><%= link_to attachment.filename, :action => 'download', :id => @document, :attachment_id => attachment %></td> <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"><%= format_date(attachment.created_on) %></td>
<td align="center"><%= attachment.author.display_name %></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') %> <% if authorize_for('documents', 'destroy_attachment') %>
<td align="center"> <td align="center">
<%= start_form_tag :action => 'destroy_attachment', :id => @document, :attachment_id => attachment %> <%= 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 %> <%= end_form_tag %>
</tr> </tr>
<% end %> <% end %>
@ -40,8 +40,8 @@
<% if authorize_for('documents', 'add_attachment') %> <% if authorize_for('documents', 'add_attachment') %>
<%= start_form_tag ({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true) %> <%= start_form_tag ({ :controller => 'documents', :action => 'add_attachment', :id => @document }, :multipart => true) %>
<%=_('Add file')%><br /><%= file_field 'attachment', 'file' %> <%=l(:label_attachment_new)%><br /><%= file_field 'attachment', 'file' %>
<%= submit_tag _('Add') %> <%= submit_tag l(:button_add) %>
<%= end_form_tag %> <%= end_form_tag %>
<% end %> <% end %>

View File

@ -3,7 +3,7 @@
<!--[form:optvalue]--> <!--[form:optvalue]-->
<%= hidden_field 'enumeration', 'opt' %> <%= 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> <%= text_field 'enumeration', 'name' %></p>
<!--[eoform:optvalue]--> <!--[eoform:optvalue]-->

View File

@ -1,10 +1,10 @@
<h2><%=_('Enumerations')%></h2> <h2><%=l(:label_enumerations)%></h2>
<%= start_form_tag :action => 'update', :id => @enumeration %> <%= start_form_tag :action => 'update', :id => @enumeration %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>
<%= start_form_tag :action => 'destroy', :id => @enumeration %> <%= start_form_tag :action => 'destroy', :id => @enumeration %>
<%= submit_tag _('Delete') %> <%= submit_tag l(:button_delete) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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> <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> <li><%= link_to value.name, :action => 'edit', :id => value %></li>
<% end %> <% end %>
</ul> </ul>
<ul> <ul>
<li><%= link_to ('&#187; ' + _('New')), :action => 'new', :opt => option[1] %></li> <li><%= link_to ('&#187; ' + l(:label_new)), :action => 'new', :opt => option %></li>
</ul> </ul>
<% else %> <% 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 %> <% end %>

View File

@ -1,6 +1,6 @@
<h2><%=_('New enumeration')%></h2> <h2><%=l(:label_enumeration_new)%></h2>
<%= start_form_tag :action => 'create' %> <%= start_form_tag :action => 'create' %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,7 +1,7 @@
<%= error_messages_for 'issue_category' %> <%= error_messages_for 'issue_category' %>
<!--[form: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> <%= text_field 'issue_category', 'name' %></p>
<!--[eoform:issue_category]--> <!--[eoform:issue_category]-->

View File

@ -1,6 +1,6 @@
<h2>Editing issue category</h2> <h2><%=l(:label_issue_category)%></h2>
<%= start_form_tag :action => 'edit', :id => @category %> <%= start_form_tag :action => 'edit', :id => @category %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,16 +1,16 @@
<%= error_messages_for 'issue_status' %> <%= error_messages_for 'issue_status' %>
<!--[form: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> <%= text_field 'issue_status', 'name' %></p>
<p><%= check_box 'issue_status', 'is_closed' %> <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' %> <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> #<%= text_field 'issue_status', 'html_color', :maxlength => 6 %> <span class="required">*</span></p>
<!--[eoform:issue_status]--> <!--[eoform:issue_status]-->

View File

@ -1,6 +1,6 @@
<h2><%=_('Issue status')%></h2> <h2><%=l(:label_issue_status)%></h2>
<%= start_form_tag :action => 'update', :id => @issue_status %> <%= start_form_tag :action => 'update', :id => @issue_status %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,11 +1,11 @@
<h2><%=_('Issue statuses')%></h2> <h2><%=l(:label_issue_status_plural)%></h2>
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<th><%=_('Status')%></th> <th><%=l(:field_status)%></th>
<th><%=_('Default status')%></th> <th><%=l(:field_is_default)%></th>
<th><%=_('Issue closed')%></th> <th><%=l(:field_is_closed)%></th>
<th><%=_('Color')%></th> <th><%=l(:field_html_color)%></th>
<th></th> <th></th>
</tr> </tr>
@ -17,7 +17,7 @@
<td bgcolor="#<%= status.html_color %>">&nbsp</td> <td bgcolor="#<%= status.html_color %>">&nbsp</td>
<td align="center"> <td align="center">
<%= start_form_tag :action => 'destroy', :id => status %> <%= start_form_tag :action => 'destroy', :id => status %>
<%= submit_tag _('Delete'), :class => "button-small" %> <%= submit_tag l(:button_delete), :class => "button-small" %>
<%= end_form_tag %> <%= end_form_tag %>
</td> </td>
</tr> </tr>
@ -27,4 +27,4 @@
<%= pagination_links_full @issue_status_pages %> <%= pagination_links_full @issue_status_pages %>
<br /> <br />
<%= link_to '&#187; ' + _('New issue status'), :action => 'new' %> <%= link_to '&#187; ' + l(:label_issue_status_new), :action => 'new' %>

View File

@ -1,6 +1,6 @@
<h2><%=_('New issue status')%></h2> <h2><%=l(:label_issue_status_new)%></h2>
<%= start_form_tag :action => 'create' %> <%= start_form_tag :action => 'create' %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,28 +1,28 @@
<% if issues.length > 0 %> <% if issues.length > 0 %>
<table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable"> <table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable">
<tr><td> <tr><td>
<table width="100%" border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table width="100%" border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<th>#</th> <th>#</th>
<th><%=_('Tracker')%></th> <th><%=l(:field_tracker)%></th>
<th><%=_('Subject')%></th> <th><%=l(:field_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>
</tr> </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> </table>
</td>
</tr>
</table>
<% else %> <% else %>
<%=_('No issue')%> <i><%=l(:label_no_data)%></i>
<% end %> <% end %>

View File

@ -1,4 +1,4 @@
<h2><%=_('Issue')%> #<%= @issue.id %>: <%= @issue.subject %></h2> <h2><%=l(:label_issue)%> #<%= @issue.id %>: <%= @issue.subject %></h2>
<%= error_messages_for 'history' %> <%= error_messages_for 'history' %>
<%= start_form_tag :action => 'change_status', :id => @issue %> <%= start_form_tag :action => 'change_status', :id => @issue %>
@ -7,26 +7,25 @@
<%= hidden_field 'history', 'status_id' %> <%= hidden_field 'history', 'status_id' %>
<div class="box"> <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> <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]"> <select name="issue[assigned_to_id]">
<option value=""></option> <option value=""></option>
<%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %></p> <%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %></p>
</select></p> </select></p>
</div> </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]"> <select name="issue[fixed_version_id]">
<option value="">--none--</option> <option value="">--none--</option>
<%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %> <%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %>
</select></p> </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> <%= text_area 'history', 'notes', :cols => 60, :rows => 10 %></p>
</div> </div>
<%= submit_tag l(:button_save) %>
<%= submit_tag _('Save') %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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' %> <%= error_messages_for 'issue' %>
<%= start_form_tag :action => 'edit', :id => @issue %> <%= start_form_tag :action => 'edit', :id => @issue %>
<div class="box"> <div class="box">
<!--[form:issue]--> <!--[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;"> <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]"> <select name="issue[priority_id]">
<%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p> <%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p>
</select></p> </select></p>
</div> </div>
<div style="float:left;margin-right:10px;"> <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]"> <select name="issue[assigned_to_id]">
<option value=""></option> <option value=""></option>
<%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p> <%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p>
@ -23,24 +23,27 @@
</div> </div>
<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]"> <select name="issue[category_id]">
<option value=""></option> <option value=""></option>
<%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %></p> <%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %></p>
</select></p> </select></p>
</div> </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> <%= 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> <%= 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 %> <% for custom_value in @custom_values %>
<p><%= custom_field_tag_with_label custom_value %></p> <p><%= custom_field_tag_with_label custom_value %></p>
<% end %> <% 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]"> <select name="issue[fixed_version_id]">
<option value="">--none--</option> <option value="">--none--</option>
<%= options_from_collection_for_select @project.versions, "id", "name", @issue.fixed_version_id %> <%= options_from_collection_for_select @project.versions, "id", "name", @issue.fixed_version_id %>
@ -49,5 +52,5 @@
<!--[eoform:issue]--> <!--[eoform:issue]-->
</div> </div>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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"> <div class="box">
<p><b><%=_('Status')%>:</b> <%= @issue.status.name %></p> <p>
<p><b><%=_('Priority')%>:</b> <%= @issue.priority.name %></p> <b><%=l(:field_status)%> :</b> <%= @issue.status.name %> &nbsp &nbsp
<p><b><%=_('Category')%>:</b> <%= @issue.category.name unless @issue.category_id.nil? %></p> <b><%=l(:field_priority)%> :</b> <%= @issue.priority.name %> &nbsp &nbsp
<p><b><%=_('Author')%>:</b> <%= @issue.author.display_name %></p> <b><%=l(:field_assigned_to)%> :</b> <%= @issue.assigned_to ? @issue.assigned_to.display_name : "-" %> &nbsp &nbsp
<p><b><%=_('Assigned to')%>:</b> <%= @issue.assigned_to.display_name unless @issue.assigned_to.nil? %></p> <b><%=l(:field_category)%> :</b> <%= @issue.category ? @issue.category.name : "-" %>
</p>
<p><b><%=_('Subject')%>:</b> <%= @issue.subject %></p> <p><b><%=l(:field_author)%> :</b> <%= @issue.author.display_name %></p>
<p><b><%=_('Description')%>:</b> <%= simple_format auto_link @issue.description %></p> <p><b><%=l(:field_subject)%> :</b> <%= @issue.subject %></p>
<p><b><%=_('Created on')%>:</b> <%= format_date(@issue.created_on) %></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 %> <% 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 %> <% end %>
<% if authorize_for('issues', 'edit') %> <% if authorize_for('issues', 'edit') %>
<%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %> <%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %>
<%= submit_tag _('Edit') %> <%= submit_tag l(:button_edit) %>
<%= end_form_tag %> <%= end_form_tag %>
&nbsp;&nbsp; &nbsp;&nbsp;
<% end %> <% end %>
<% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %> <% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %>
<%= start_form_tag ({:controller => 'issues', :action => 'change_status', :id => @issue}) %> <%= 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]"> <select name="history[status_id]">
<%= options_from_collection_for_select @status_options, "id", "name" %> <%= options_from_collection_for_select @status_options, "id", "name" %>
</select> </select>
<%= submit_tag _ "Update..." %> <%= submit_tag l(:button_change) %>
<%= end_form_tag %> <%= end_form_tag %>
&nbsp;&nbsp; &nbsp;&nbsp;
<% end %> <% end %>
<% if authorize_for('issues', 'destroy') %> <% if authorize_for('issues', 'destroy') %>
<%= start_form_tag ({:controller => 'issues', :action => 'destroy', :id => @issue} ) %> <%= start_form_tag ({:controller => 'issues', :action => 'destroy', :id => @issue} ) %>
<%= submit_tag _ "Delete" %> <%= submit_tag l(:button_delete) %>
<%= end_form_tag %> <%= end_form_tag %>
&nbsp;&nbsp; &nbsp;&nbsp;
<% end %> <% end %>
@ -46,7 +47,7 @@
<div class="splitcontentleft"> <div class="splitcontentleft">
<div class="box"> <div class="box">
<h3><%=_('History')%></h3> <h3><%=l(:label_history)%></h3>
<table width="100%"> <table width="100%">
<% for history in @issue.histories.find(:all, :include => :author) %> <% for history in @issue.histories.find(:all, :include => :author) %>
<tr> <tr>
@ -64,7 +65,7 @@
<div class="splitcontentright"> <div class="splitcontentright">
<div class="box"> <div class="box">
<h3><%=_('Attachments')%></h3> <h3><%=l(:label_attachment_plural)%></h3>
<table width="100%"> <table width="100%">
<% for attachment in @issue.attachments %> <% for attachment in @issue.attachments %>
<tr> <tr>
@ -74,7 +75,7 @@
<% if authorize_for('issues', 'destroy_attachment') %> <% if authorize_for('issues', 'destroy_attachment') %>
<td> <td>
<%= start_form_tag :action => 'destroy_attachment', :id => @issue, :attachment_id => attachment %> <%= 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 %> <%= end_form_tag %>
</td> </td>
<% end %> <% end %>
@ -84,8 +85,8 @@
<br /> <br />
<% if authorize_for('issues', 'add_attachment') %> <% if authorize_for('issues', 'add_attachment') %>
<%= start_form_tag ({ :controller => 'issues', :action => 'add_attachment', :id => @issue }, :multipart => true) %> <%= start_form_tag ({ :controller => 'issues', :action => 'add_attachment', :id => @issue }, :multipart => true) %>
<%=_('Add file')%>: <%= file_field 'attachment', 'file' %> <%=l(:label_attachment_new)%>: <%= file_field 'attachment', 'file' %>
<%= submit_tag _('Add') %> <%= submit_tag l(:button_add) %>
<%= end_form_tag %> <%= end_form_tag %>
<% end %> <% end %>
</div> </div>

View File

@ -14,33 +14,33 @@
<script type='text/javascript'> <script type='text/javascript'>
var menu_contenu=' \ var menu_contenu=' \
<div id="menuAdmin" class="menu" onmouseover="menuMouseover(event)"> \ <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">&#9654;<\/span><\/a> \ <a class="menuItem" href="\/admin\/projects" onmouseover="menuItemMouseover(event,\'menuProjects\');"><span class="menuItemText"><%=l(:label_project_plural)%><\/span><span class="menuItemArrow">&#9654;<\/span><\/a> \
<a class="menuItem" href="\/users" onmouseover="menuItemMouseover(event,\'menuUsers\');"><span class="menuItemText"><%=_('Users')%><\/span><span class="menuItemArrow">&#9654;<\/span><\/a> \ <a class="menuItem" href="\/users" onmouseover="menuItemMouseover(event,\'menuUsers\');"><span class="menuItemText"><%=l(:label_user_plural)%><\/span><span class="menuItemArrow">&#9654;<\/span><\/a> \
<a class="menuItem" href="\/roles"><%=_('Roles and permissions')%><\/a> \ <a class="menuItem" href="\/roles"><%=l(:label_role_and_permissions)%><\/a> \
<a class="menuItem" href="\/trackers" onmouseover="menuItemMouseover(event,\'menuTrackers\');"><span class="menuItemText"><%=_('Trackers')%><\/span><span class="menuItemArrow">&#9654;<\/span><\/a> \ <a class="menuItem" href="\/trackers" onmouseover="menuItemMouseover(event,\'menuTrackers\');"><span class="menuItemText"><%=l(:label_tracker_plural)%><\/span><span class="menuItemArrow">&#9654;<\/span><\/a> \
<a class="menuItem" href="\/custom_fields"><%=_('Custom fields')%><\/a> \ <a class="menuItem" href="\/custom_fields"><%=l(:label_custom_field_plural)%><\/a> \
<a class="menuItem" href="\/enumerations"><%=_('Enumerations')%><\/a> \ <a class="menuItem" href="\/enumerations"><%=l(:label_enumerations)%><\/a> \
<a class="menuItem" href="\/admin\/mail_options"><%=_('Mail notifications')%><\/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="\/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> \
<div id="menuTrackers" class="menu"> \ <div id="menuTrackers" class="menu"> \
<a class="menuItem" href="\/issue_statuses"><%=_('Issue Statuses')%><\/a> \ <a class="menuItem" href="\/issue_statuses"><%=l(:label_issue_status_plural)%><\/a> \
<a class="menuItem" href="\/roles\/workflow"><%=_('Workflow')%><\/a> \ <a class="menuItem" href="\/roles\/workflow"><%=l(:label_workflow)%><\/a> \
<\/div> \ <\/div> \
<div id="menuProjects" class="menu"><a class="menuItem" href="\/projects\/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"><%=_('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? %> \ <% unless @project.nil? || @project.id.nil? %> \
<div id="menuProject" class="menu" onmouseover="menuMouseover(event)"> \ <div id="menuProject" class="menu" onmouseover="menuMouseover(event)"> \
<%= link_to _('Issues'), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_issue_plural), {:controller => 'projects', :action => 'list_issues', :id => @project }, :class => "menuItem" %> \
<%= link_to _('Reports'), {:controller => 'reports', :action => 'issue_report', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_report_plural), {:controller => 'reports', :action => 'issue_report', :id => @project }, :class => "menuItem" %> \
<%= link_to _('News'), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_news_plural), {:controller => 'projects', :action => 'list_news', :id => @project }, :class => "menuItem" %> \
<%= link_to _('Change log'), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_change_log), {:controller => 'projects', :action => 'changelog', :id => @project }, :class => "menuItem" %> \
<%= link_to _('Documents'), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %> \
<%= link_to _('Members'), {:controller => 'projects', :action => 'list_members', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_member_plural), {:controller => 'projects', :action => 'list_members', :id => @project }, :class => "menuItem" %> \
<%= link_to _('Files'), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %> \ <%= link_to l(:label_attachment_plural), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %> \
<%= link_to_if_authorized _('Settings'), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %> \ <%= link_to_if_authorized l(:label_settings), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %> \
<\/div> \ <\/div> \
<% end %> \ <% end %> \
'; ';
@ -95,20 +95,20 @@ var menu_contenu=' \
<% unless @project.nil? || @project.id.nil? %> <% unless @project.nil? || @project.id.nil? %>
<h2><%= @project.name %></h2> <h2><%= @project.name %></h2>
<ul class="menublock"> <ul class="menublock">
<li><%= link_to _('Overview'), :controller => 'projects', :action => 'show', :id => @project %></li> <li><%= link_to l(:label_overview), :controller => 'projects', :action => 'show', :id => @project %></li>
<li><%= link_to _('Issues'), :controller => 'projects', :action => 'list_issues', :id => @project %></li> <li><%= link_to l(:label_issue_plural), :controller => 'projects', :action => 'list_issues', :id => @project %></li>
<li><%= link_to _('Reports'), :controller => 'reports', :action => 'issue_report', :id => @project %></li> <li><%= link_to l(:label_report_plural), :controller => 'reports', :action => 'issue_report', :id => @project %></li>
<li><%= link_to _('News'), :controller => 'projects', :action => 'list_news', :id => @project %></li> <li><%= link_to l(:label_news_plural), :controller => 'projects', :action => 'list_news', :id => @project %></li>
<li><%= link_to _('Change log'), :controller => 'projects', :action => 'changelog', :id => @project %></li> <li><%= link_to l(:label_change_log), :controller => 'projects', :action => 'changelog', :id => @project %></li>
<li><%= link_to _('Documents'), :controller => 'projects', :action => 'list_documents', :id => @project %></li> <li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li>
<li><%= link_to _('Members'), :controller => 'projects', :action => 'list_members', :id => @project %></li> <li><%= link_to l(:label_member_plural), :controller => 'projects', :action => 'list_members', :id => @project %></li>
<li><%= link_to _('Files'), :controller => 'projects', :action => 'list_files', :id => @project %></li> <li><%= link_to l(:label_attachment_plural), :controller => 'projects', :action => 'list_files', :id => @project %></li>
<li><%= link_to_if_authorized _('Settings'), :controller => 'projects', :action => 'settings', :id => @project %></li> <li><%= link_to_if_authorized l(:label_settings), :controller => 'projects', :action => 'settings', :id => @project %></li>
</ul> </ul>
<% end %> <% end %>
<% if loggedin? and @logged_in_user.memberships.length > 0 %> <% if loggedin? and @logged_in_user.memberships.length > 0 %>
<h2><%=_('My projects') %></h2> <h2><%=l(:label_my_projects) %></h2>
<ul class="menublock"> <ul class="menublock">
<% for membership in @logged_in_user.memberships %> <% for membership in @logged_in_user.memberships %>
<li><%= link_to membership.project.name, :controller => 'projects', :action => 'show', :id => membership.project %></li> <li><%= link_to membership.project.name, :controller => 'projects', :action => 'show', :id => membership.project %></li>

View File

@ -1,5 +1,5 @@
<%=_('Issue')%> #<%= issue.id %> - <%= issue.subject %> <%=l(:label_issue)%> #<%= issue.id %> - <%= issue.subject %>
<%=_('Author')%>: <%= issue.author.display_name %> <%=l(:field_author)%>: <%= issue.author.display_name %>
<%= issue.description %> <%= issue.description %>

View File

@ -1,13 +1,13 @@
<%= error_messages_for 'news' %> <%= error_messages_for 'news' %>
<!--[form: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> <%= 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> <%= 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> <%= text_area 'news', 'description', :cols => 60, :rows => 10 %></p>
<!--[eoform:news]--> <!--[eoform:news]-->

View File

@ -1,6 +1,6 @@
<h2><%=_('News')%></h2> <h2><%=l(:label_news)%></h2>
<%= start_form_tag :action => 'edit', :id => @news %> <%= start_form_tag :action => 'edit', :id => @news %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,9 +1,9 @@
<h2><%= @news.title %></h2> <h2><%= @news.title %></h2>
<p> <p>
<b><%=_('Summary')%></b>: <%= @news.summary %><br /> <b><%=l(:field_summary)%></b>: <%= @news.summary %><br />
<b><%=_('By')%></b>: <%= @news.author.display_name %><br /> <b><%=l(:field_author)%></b>: <%= @news.author.display_name %><br />
<b><%=_('Date')%></b>: <%= format_time(@news.created_on) %> <b><%=l(:field_created_on)%></b>: <%= format_time(@news.created_on) %>
</p> </p>
<%= simple_format auto_link @news.description %> <%= simple_format auto_link @news.description %>

View File

@ -2,31 +2,31 @@
<div class="box"> <div class="box">
<!--[form:project]--> <!--[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> <%= text_field 'project', 'name' %></p>
<% if admin_loggedin? %> <% 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]"> <select name="project[parent_id]">
<option value=""></option> <option value=""></option>
<%= options_from_collection_for_select @root_projects, "id", "name", @project.parent_id %> <%= options_from_collection_for_select @root_projects, "id", "name", @project.parent_id %>
</select></p> </select></p>
<% end %> <% 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> <%= 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> <%= text_field 'project', 'homepage', :size => 40 %></p>
<p><%= check_box 'project', 'is_public' %> <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 %> <% for custom_value in @custom_values %>
<p><%= custom_field_tag_with_label custom_value %></p> <p><%= custom_field_tag_with_label custom_value %></p>
<% end %> <% end %>
<fieldset><legend><%=_('Custom fields')%></legend> <fieldset><legend><%=l(:label_custom_field_plural)%></legend>
<% for custom_field in @custom_fields %> <% for custom_field in @custom_fields %>
<input type="checkbox" <input type="checkbox"

View File

@ -1,6 +1,6 @@
<h2><%=_('New project')%></h2> <h2><%=l(:label_project_new)%></h2>
<%= start_form_tag :action => 'add' %> <%= start_form_tag :action => 'add' %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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) %> <%= start_form_tag( { :action => 'add_document', :id => @project }, :multipart => true) %>
<%= render :partial => 'documents/form' %>
<!--[form:document]--> <p><label for="attachment_file"><%=l(:label_attachment)%></label><br/>
<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>
<p><label for="attachment_file"><%=_('File')%></label><br/>
<%= file_field 'attachment', 'file' %></p> <%= file_field 'attachment', 'file' %></p>
<!--[eoform:document]--> <%= submit_tag l(:button_create) %>
<%= submit_tag _('Create') %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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) %> <%= 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"> <select name="version_id">
<%= options_from_collection_for_select @versions, "id", "name" %> <%= options_from_collection_for_select @versions, "id", "name" %>
</select></p> </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/> <br/>
<%= submit_tag _('Add') %> <%= submit_tag l(:button_add) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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) %> <%= start_form_tag( { :action => 'add_issue', :id => @project }, :multipart => true) %>
<%= error_messages_for 'issue' %> <%= error_messages_for 'issue' %>
@ -9,14 +9,14 @@
<%= hidden_field_tag 'tracker_id', @tracker.id %> <%= hidden_field_tag 'tracker_id', @tracker.id %>
<div style="float:left;margin-right:10px;"> <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]"> <select name="issue[priority_id]">
<%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p> <%= options_from_collection_for_select @priorities, "id", "name", @issue.priority_id %></p>
</select></p> </select></p>
</div> </div>
<div style="float:left;margin-right:10px;"> <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]"> <select name="issue[assigned_to_id]">
<option value=""></option> <option value=""></option>
<%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p> <%= options_from_collection_for_select @issue.project.members, "user_id", "name", @issue.assigned_to_id %></p>
@ -24,28 +24,29 @@
</div> </div>
<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]"> <select name="issue[category_id]">
<option value=""></option><%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %> <option value=""></option><%= options_from_collection_for_select @project.issue_categories, "id", "name", @issue.category_id %>
</select></p> </select></p>
</div> </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> <%= 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> <%= 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 %> <% for custom_value in @custom_values %>
<p><%= custom_field_tag_with_label custom_value %></p> <p><%= custom_field_tag_with_label custom_value %></p>
<% end %> <% end %>
<p><label for="attachment_file"><%=_('Attachment')%></label><br/> <p><label for="attachment_file"><%=l(:label_attachment)%></label><br />
<%= file_field 'attachment', 'file' %></p> <%= file_field 'attachment', 'file' %></p>
<!--[eoform:issue]--> <!--[eoform:issue]-->
</div> </div>
<%= submit_tag l(:button_create) %>
<%= submit_tag _('Create') %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,7 +1,7 @@
<h2><%=('Add news')%></h2> <h2><%=l(:label_news_new)%></h2>
<%= start_form_tag :action => 'add_news', :id => @project %> <%= start_form_tag :action => 'add_news', :id => @project %>
<%= render :partial => 'news/form' %> <%= render :partial => 'news/form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,7 +1,7 @@
<h2><%=_('New version')%></h2> <h2><%=l(:label_version_new)%></h2>
<%= start_form_tag :action => 'add_version', :id => @project %> <%= start_form_tag :action => 'add_version', :id => @project %>
<%= render :partial => 'versions/form' %> <%= render :partial => 'versions/form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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 = @fixed_issues.group_by {|i| i.fixed_version } %>
<% fixed_issues.each do |version, issues| %> <% fixed_issues.each do |version, issues| %>

View File

@ -1,11 +1,13 @@
<h2><%=_('Confirmation')%></h2> <h2><%=l(:label_confirmation)%></h2>
<div class="box"> <div class="box">
<center> <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> <p>
<%= start_form_tag({:controller => 'projects', :action => 'destroy', :id => @project}) %> <%= start_form_tag({:controller => 'projects', :action => 'destroy', :id => @project}) %>
<%= hidden_field_tag "confirm", 1 %> <%= hidden_field_tag "confirm", 1 %>
<%= submit_tag _('Delete') %> <%= submit_tag l(:button_delete) %>
<%= end_form_tag %> <%= end_form_tag %>
</p> </p>
</center> </center>

View File

@ -1,10 +1,10 @@
<h2><%=_('Public projects')%></h2> <h2><%=l(:label_public_projects)%></h2>
<table width="100%" cellspacing="1" cellpadding="2" class="listTableContent"> <table width="100%" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<%= sort_header_tag('name', :caption => _('Project')) %> <%= sort_header_tag('name', :caption => l(:label_project)) %>
<th>Description</th> <th><%=l(:field_description)%></th>
<%= sort_header_tag('created_on', :caption => _('Created on')) %> <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
</tr> </tr>
<% for project in @projects %> <% for project in @projects %>

View File

@ -1,4 +1,4 @@
<h2><%=_('Documents')%></h2> <h2><%=l(:label_document_plural)%></h2>
<% documents = @documents.group_by {|d| d.category } %> <% documents = @documents.group_by {|d| d.category } %>
<% documents.each do |category, docs| %> <% documents.each do |category, docs| %>
@ -8,7 +8,7 @@
<li> <li>
<b><%= link_to d.title, :controller => 'documents', :action => 'show', :id => d %></b> <b><%= link_to d.title, :controller => 'documents', :action => 'show', :id => d %></b>
<br /> <br />
<%=_('Desciption')%>: <%= d.description %><br /> <%=l(:field_description)%>: <%= d.description %><br />
<%= format_time(d.created_on) %> <%= format_time(d.created_on) %>
</li> </li>
@ -17,5 +17,5 @@
<% end %> <% end %>
<p> <p>
<%= link_to_if_authorized '&#187; ' + _('New'), :controller => 'projects', :action => 'add_document', :id => @project %> <%= link_to_if_authorized '&#187; ' + l(:label_document_new), :controller => 'projects', :action => 'add_document', :id => @project %>
</p> </p>

View File

@ -1,13 +1,13 @@
<h2><%=_('Files')%></h2> <h2><%=l(:label_attachment_plural)%></h2>
<% delete_allowed = authorize_for('versions', 'destroy_file') %> <% delete_allowed = authorize_for('versions', 'destroy_file') %>
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<th><%=_('Version')%></th> <th><%=l(:field_version)%></th>
<th><%=_('File')%></th> <th><%=l(:field_filename)%></th>
<th><%=_('Date')%></th> <th><%=l(:label_date)%></th>
<th><%=_('Size')%></th> <th><%=l(:field_filesize)%></th>
<th>D/L</th> <th>D/L</th>
<th>MD5</th> <th>MD5</th>
<% if delete_allowed %><th></th><% end %> <% if delete_allowed %><th></th><% end %>
@ -28,7 +28,7 @@
<% if delete_allowed %> <% if delete_allowed %>
<td align="center"> <td align="center">
<%= start_form_tag :controller => 'versions', :action => 'destroy_file', :id => version, :attachment_id => file %> <%= 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 %> <%= end_form_tag %>
</td> </td>
<% end %> <% end %>
@ -40,7 +40,7 @@
<br /> <br />
<p> <p>
<%= link_to_if_authorized '&#187; ' + _('New'), :controller => 'projects', :action => 'add_file', :id => @project %> <%= link_to_if_authorized '&#187; ' + l(:label_attachment_new), :controller => 'projects', :action => 'add_file', :id => @project %>
</p> </p>

View File

@ -1,56 +1,53 @@
<h2><%=_('Issues')%></h2> <h2><%=l(:label_issue_plural)%></h2>
<form method="post" class="noborder"> <form method="post" class="noborder">
<table cellpadding=2> <table cellpadding=2>
<tr> <tr>
<td><small><%=_('Status')%>:</small><br /><%= search_filter_tag 'status_id', :class => 'select-small' %></td> <td><small><%=l(:field_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><%=l(:field_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><%=l(:field_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><%=l(:field_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><%=l(:field_fixed_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><%=l(:field_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(:label_subproject_plural)%>:</small><br /><%= search_filter_tag 'subproject_id', :class => 'select-small' %></td>
<td valign="bottom"> <td valign="bottom">
<%= submit_tag _('Apply filter'), :class => 'button-small' %> <%= submit_tag l(:button_apply), :class => 'button-small' %>
<%= end_form_tag %> <%= end_form_tag %>
<%= start_form_tag %> <%= start_form_tag %>
<%= submit_tag _('Reset'), :class => 'button-small' %> <%= submit_tag l(:button_clear), :class => 'button-small' %>
<%= end_form_tag %> <%= end_form_tag %>
</td> </td>
</tr> </tr>
</table> </table>
&nbsp; &nbsp;
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr><td colspan="7" align="right">
<tr><td colspan="7" align="right"> <small><%= link_to l(:label_export_csv), :action => 'export_issues_csv', :id => @project.id %></small>
<small><%= link_to 'Export to CSV', :action => 'export_issues_csv', :id => @project.id %></small> </td></tr>
</td></tr> <tr class="ListHead">
<%= sort_header_tag('issues.id', :caption => '#') %>
<tr class="ListHead"> <%= sort_header_tag('issue_statuses.name', :caption => l(:field_status)) %>
<%= sort_header_tag('issues.id', :caption => '#') %> <%= sort_header_tag('issues.tracker_id', :caption => l(:field_tracker)) %>
<%= sort_header_tag('issue_statuses.name', :caption => _('Status')) %> <th><%=l(:field_subject)%></th>
<%= sort_header_tag('issues.tracker_id', :caption => _('Tracker')) %> <%= sort_header_tag('users.lastname', :caption => l(:field_author)) %>
<th><%=_('Subject')%></th> <%= sort_header_tag('issues.created_on', :caption => l(:field_created_on)) %>
<%= sort_header_tag('users.lastname', :caption => _('Author')) %> <%= sort_header_tag('issues.updated_on', :caption => l(:field_updated_on)) %>
<%= sort_header_tag('issues.created_on', :caption => _('Created on')) %> </tr>
<%= sort_header_tag('issues.updated_on', :caption => _('Last update')) %> <% for issue in @issues %>
</tr> <tr bgcolor="#<%= issue.status.html_color %>">
<td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td>
<% for issue in @issues %> <td align="center"><%= issue.status.name %></td>
<tr bgcolor="#<%= issue.status.html_color %>"> <td align="center"><%= issue.tracker.name %></td>
<td align="center"><%= link_to issue.long_id, :controller => 'issues', :action => 'show', :id => issue %></td> <td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td>
<td align="center"><%= issue.status.name %></td> <td align="center"><%= issue.author.display_name %></td>
<td align="center"><%= issue.tracker.name %></td> <td align="center"><%= format_time(issue.created_on) %></td>
<td><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></td> <td align="center"><%= format_time(issue.updated_on) %></td>
<td align="center"><%= issue.author.display_name %></td> </tr>
<td align="center"><%= format_time(issue.created_on) %></td> <% end %>
<td align="center"><%= format_time(issue.updated_on) %></td> </table>
</tr> <p>
<% end %> <%= pagination_links_full @issue_pages %>
</table> [ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ]
<p> </p>
<%= pagination_links_full @issue_pages %>
[ <%= @issue_pages.current.first_item %> - <%= @issue_pages.current.last_item %> / <%= @issue_count %> ]
</p>

View File

@ -1,4 +1,4 @@
<h2><%=_('Project members')%></h2> <h2><%=l(:label_member_plural)%></h2>
<% members = @members.group_by {|m| m.role } %> <% members = @members.group_by {|m| m.role } %>
<% members.each do |role, member| %> <% members.each do |role, member| %>

View File

@ -1,4 +1,4 @@
<h2><%=_('News')%></h2> <h2><%=l(:label_news_plural)%></h2>
<% for news in @news %> <% for news in @news %>
<p> <p>
@ -7,11 +7,11 @@
<%= link_to_if_authorized image_tag('delete'), { :controller => 'news', :action => 'destroy', :id => news }, :confirm => 'Are you sure?' %> <%= link_to_if_authorized image_tag('delete'), { :controller => 'news', :action => 'destroy', :id => news }, :confirm => 'Are you sure?' %>
<br /> <br />
<%= news.summary %> <%= 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> </p>
<% end %> <% end %>
<%= pagination_links_full @news_pages %> <%= pagination_links_full @news_pages %>
<p> <p>
<%= link_to_if_authorized '&#187; ' + _('Add'), :controller => 'projects', :action => 'add_news', :id => @project %> <%= link_to_if_authorized '&#187; ' + l(:label_news_new), :controller => 'projects', :action => 'add_news', :id => @project %>
</p> </p>

View File

@ -1,14 +1,14 @@
<h2><%=_('Settings')%></h2> <h2><%=l(:label_settings)%></h2>
<%= start_form_tag :action => 'edit', :id => @project %> <%= start_form_tag :action => 'edit', :id => @project %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<center><%= submit_tag _('Save') %></center> <center><%= submit_tag l(:button_save) %></center>
<%= end_form_tag %> <%= end_form_tag %>
&nbsp; &nbsp;
<div class="box"> <div class="box">
<h3><%=_('Members')%></h3> <h3><%=l(:label_member_plural)%></h3>
<%= error_messages_for 'member' %> <%= error_messages_for 'member' %>
<table> <table>
<% for member in @project.members.find(:all, :include => :user) %> <% for member in @project.members.find(:all, :include => :user) %>
@ -22,12 +22,12 @@
</select> </select>
</td> </td>
<td> <td>
<%= submit_tag _('Save'), :class => "button-small" %> <%= submit_tag l(:button_change), :class => "button-small" %>
<%= end_form_tag %> <%= end_form_tag %>
</td> </td>
<td> <td>
<%= start_form_tag :controller => 'members', :action => 'destroy', :id => member %> <%= 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 %> <%= end_form_tag %>
</td> </td>
</tr> </tr>
@ -35,7 +35,7 @@
<% end %> <% end %>
</table> </table>
<hr /> <hr />
<label><%=_('New member')%></label><br/> <label><%=l(:label_member_new)%></label><br/>
<%= start_form_tag :controller => 'projects', :action => 'add_member', :id => @project %> <%= start_form_tag :controller => 'projects', :action => 'add_member', :id => @project %>
<select name="member[user_id]"> <select name="member[user_id]">
<%= options_from_collection_for_select @users, "id", "display_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]"> <select name="member[role_id]">
<%= options_from_collection_for_select @roles, "id", "name", @member.role_id %> <%= options_from_collection_for_select @roles, "id", "name", @member.role_id %>
</select> </select>
<%= submit_tag _('Add') %> <%= submit_tag l(:button_add) %>
<%= end_form_tag %> <%= end_form_tag %>
</div> </div>
<div class="box"> <div class="box">
<h3><%=_('Versions')%></h3> <h3><%=l(:label_version_plural)%></h3>
<table> <table>
<% for version in @project.versions %> <% for version in @project.versions %>
@ -57,7 +57,7 @@
<td><%=h version.description %></td> <td><%=h version.description %></td>
<td> <td>
<%= start_form_tag :controller => 'versions', :action => 'destroy', :id => version %> <%= 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 %> <%= end_form_tag %>
</td> </td>
</tr> </tr>
@ -65,13 +65,13 @@
</table> </table>
<hr /> <hr />
<%= start_form_tag ({ :controller => 'projects', :action => 'add_version', :id => @project }, :method => 'get' ) %> <%= 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 %> <%= end_form_tag %>
</div> </div>
<div class="box"> <div class="box">
<h3><%=_('Issue categories')%></h3> <h3><%=l(:label_issue_category_plural)%></h3>
<table> <table>
<% for @category in @project.issue_categories %> <% for @category in @project.issue_categories %>
<% unless @category.new_record? %> <% unless @category.new_record? %>
@ -81,12 +81,12 @@
<%= text_field 'category', 'name', :size => 25 %> <%= text_field 'category', 'name', :size => 25 %>
</td> </td>
<td> <td>
<%= submit_tag _('Save'), :class => "button-small" %> <%= submit_tag l(:button_save), :class => "button-small" %>
<%= end_form_tag %> <%= end_form_tag %>
</td> </td>
<td> <td>
<%= start_form_tag :controller => 'issue_categories', :action => 'destroy', :id => @category %> <%= 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 %> <%= end_form_tag %>
</td> </td>
</tr> </tr>
@ -96,10 +96,10 @@
<hr /> <hr />
<%= start_form_tag :action => 'add_issue_category', :id => @project %> <%= 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' %> <%= error_messages_for 'issue_category' %>
<label for="issue_category_name"><%=_('New category')%></label><br/>
<%= text_field 'issue_category', 'name', :size => 25 %> <%= text_field 'issue_category', 'name', :size => 25 %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>
</div> </div>

View File

@ -1,10 +1,10 @@
<h2><%=_('Overview')%></h2> <h2><%=l(:label_overview)%></h2>
<div class="splitcontentleft"> <div class="splitcontentleft">
<%= @project.description %> <%= @project.description %>
<ul> <ul>
<li><%=_('Homepage')%>: <%= link_to @project.homepage, @project.homepage %></li> <li><%=l(:field_homepage)%>: <%= link_to @project.homepage, @project.homepage %></li>
<li><%=_('Created on')%>: <%= format_date(@project.created_on) %></li> <li><%=l(:field_created_on)%>: <%= format_date(@project.created_on) %></li>
<% for custom_value in @custom_values %> <% for custom_value in @custom_values %>
<% if !custom_value.value.empty? %> <% if !custom_value.value.empty? %>
<li><%= custom_value.custom_field.name%>: <%= custom_value.value%></li> <li><%= custom_value.custom_field.name%>: <%= custom_value.value%></li>
@ -13,31 +13,32 @@
</ul> </ul>
<div class="box"> <div class="box">
<h3><%= image_tag "tracker" %> <%=_('Trackers')%></h3> <h3><%= image_tag "tracker" %> <%=l(:label_tracker_plural)%></h3>
<ul> <ul>
<% for tracker in @trackers %> <% for tracker in @trackers %>
<li><%= link_to tracker.name, :controller => 'projects', :action => 'list_issues', :id => @project, <li><%= link_to tracker.name, :controller => 'projects', :action => 'list_issues', :id => @project,
:set_filter => 1, :set_filter => 1,
"tracker_id" => tracker.id %>: "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> </li>
<% end %> <% end %>
</ul> </ul>
<% if authorize_for 'projects', 'add_issue' %> <% if authorize_for 'projects', 'add_issue' %>
&#187; <%=_('Report an issue')%>: &#187; <%=l(:label_issue_new)%>:
<ul> <ul>
<% @trackers.each do |tracker| %> <% @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 %> <% end %>
</ul> </ul>
<% end %> <% 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> </div>
<div class="splitcontentright"> <div class="splitcontentright">
<div class="box"> <div class="box">
<h3><%= image_tag "users" %> <%=_('Members')%></h3> <h3><%= image_tag "users" %> <%=l(:label_member_plural)%></h3>
<% for member in @members %> <% for member in @members %>
<%= link_to_user member.user %> (<%= member.role.name %>)<br /> <%= link_to_user member.user %> (<%= member.role.name %>)<br />
<% end %> <% end %>
@ -45,7 +46,7 @@
<% if @subprojects %> <% if @subprojects %>
<div class="box"> <div class="box">
<h3><%= image_tag "projects" %> <%=_('Subprojects')%></h3> <h3><%= image_tag "projects" %> <%=l(:label_subproject_plural)%></h3>
<% for subproject in @subprojects %> <% for subproject in @subprojects %>
<%= link_to subproject.name, :action => 'show', :id => subproject %><br /> <%= link_to subproject.name, :action => 'show', :id => subproject %><br />
<% end %> <% end %>
@ -53,16 +54,16 @@
<% end %> <% end %>
<div class="box"> <div class="box">
<h3><%=_('Latest news')%></h3> <h3><%=l(:label_news_latest)%></h3>
<% for news in @news %> <% for news in @news %>
<p> <p>
<b><%= news.title %></b> <small>(<%= link_to_user news.author %> <%= format_time(news.created_on) %>)</small><br /> <b><%= news.title %></b> <small>(<%= link_to_user news.author %> <%= format_time(news.created_on) %>)</small><br />
<%= news.summary %> <%= 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> </p>
<hr /> <hr />
<% end %> <% 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>
</div> </div>

View File

@ -6,9 +6,9 @@
<% for status in @statuses %> <% for status in @statuses %>
<td align="center" width="<%= col_width %>%" bgcolor="#<%= status.html_color %>"><small><%= status.name %></small></td> <td align="center" width="<%= col_width %>%" bgcolor="#<%= status.html_color %>"><small><%= status.name %></small></td>
<% end %> <% end %>
<td align="center" width="<%= col_width %>%"><strong><%=_('Open')%></strong></td> <td align="center" width="<%= col_width %>%"><strong><%=l(:label_open_issues_plural)%></strong></td>
<td align="center" width="<%= col_width %>%"><strong><%=_('Closed')%></strong></td> <td align="center" width="<%= col_width %>%"><strong><%=l(:label_closed_issues_plural)%></strong></td>
<td align="center" width="<%= col_width %>%"><strong><%=_('Total')%></strong></td> <td align="center" width="<%= col_width %>%"><strong><%=l(:label_total)%></strong></td>
</tr> </tr>
<% for row in rows %> <% for row in rows %>

View File

@ -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 } %> <%= render :partial => 'simple', :locals => { :data => @issues_by_tracker, :field_name => "tracker_id", :rows => @trackers } %>
<br /> <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 } %> <%= render :partial => 'simple', :locals => { :data => @issues_by_priority, :field_name => "priority_id", :rows => @priorities } %>
<br /> <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 } %> <%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %>

View File

@ -2,22 +2,22 @@
<div class="box"> <div class="box">
<!--[form:role]--> <!--[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> <%= text_field 'role', 'name' %></p>
<strong><%=_('Permissions')%></strong> <strong><%=l(:label_permissions)%>:</strong>
<% permissions = @permissions.group_by {|p| p.group_id } %> <% permissions = @permissions.group_by {|p| p.group_id } %>
<% permissions.keys.sort.each do |group_id| %> <% permissions.keys.sort.each do |group_id| %>
<fieldset><legend><%= _(Permission::GROUPS[group_id]) %></legend> <fieldset style="margin-top: 6px;"><legend><strong><%= l(Permission::GROUPS[group_id]) %></strong></legend>
<% permissions[group_id].each do |p| %> <% permissions[group_id].each do |p| %>
<div style="width:200px;float:left;"><%= check_box_tag "permission_ids[]", p.id, (@role.permissions.include? p) %> <div style="width:170px;float:left;"><%= check_box_tag "permission_ids[]", p.id, (@role.permissions.include? p) %>
<%= _(p.description) %> <%= l(p.description.to_sym) %>
</div> </div>
<% end %> <% end %>
</fieldset> </fieldset>
<% end %> <% end %>
<br /> <br />
<a href="javascript:checkAll('role_form', true)"><%=_('Check all')%></a> | <a href="javascript:checkAll('role_form', true)"><%=l(:button_check_all)%></a> |
<a href="javascript:checkAll('role_form', false)"><%=_('Uncheck all')%></a><br /> <a href="javascript:checkAll('role_form', false)"><%=l(:button_uncheck_all)%></a><br />
<!--[eoform:role]--> <!--[eoform:role]-->
</div> </div>

View File

@ -1,10 +1,8 @@
<h2><%=_('Role')%></h2> <h2><%=l(:label_role)%></h2>
<%= start_form_tag ({ :action => 'edit', :id => @role }, :id => 'role_form') %> <%= start_form_tag ({ :action => 'edit', :id => @role }, :id => 'role_form') %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag l(:button_save) %>
<br />
<%= submit_tag _('Save') %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,8 +1,8 @@
<h2><%=_('Roles')%></h2> <h2><%=l(:label_role_plural)%></h2>
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<th><%=_('Role')%></th> <th><%=l(:label_role)%></th>
<th></th> <th></th>
</tr> </tr>
@ -11,7 +11,7 @@
<td><%= link_to role.name, :action => 'edit', :id => role %></td> <td><%= link_to role.name, :action => 'edit', :id => role %></td>
<td align="center"> <td align="center">
<%= start_form_tag :action => 'destroy', :id => role %> <%= start_form_tag :action => 'destroy', :id => role %>
<%= submit_tag _('Delete'), :class => "button-small" %> <%= submit_tag l(:button_delete), :class => "button-small" %>
<%= end_form_tag %> <%= end_form_tag %>
</tr> </tr>
<% end %> <% end %>
@ -20,4 +20,4 @@
<%= pagination_links_full @role_pages %> <%= pagination_links_full @role_pages %>
<br /> <br />
<%= link_to '&#187; ' + _('New role'), :action => 'new' %> <%= link_to '&#187; ' + l(:label_role_new), :action => 'new' %>

View File

@ -1,8 +1,7 @@
<h2><%=_('New role')%></h2> <h2><%=l(:label_role_new)%></h2>
<%= start_form_tag ({ :action => 'new' }, :id => 'role_form') %> <%= start_form_tag ({ :action => 'new' }, :id => 'role_form') %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag l(:button_create) %>
<br /><%= submit_tag _('Create') %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -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') %> <%= start_form_tag ({:action => 'workflow'}, :method => 'get') %>
<div style="float:left;margin-right:10px;"> <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"> <select id="role_id" name="role_id">
<%= options_from_collection_for_select @roles, "id", "name", (@role.id unless @role.nil?) %> <%= options_from_collection_for_select @roles, "id", "name", (@role.id unless @role.nil?) %>
</select></p> </select></p>
</div> </div>
<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"> <select id="tracker_id" name="tracker_id">
<%= options_from_collection_for_select @trackers, "id", "name", (@tracker.id unless @tracker.nil?) %> <%= options_from_collection_for_select @trackers, "id", "name", (@tracker.id unless @tracker.nil?) %>
</select> </select>
<%= submit_tag _('Edit') %> <%= submit_tag l(:button_edit) %>
</p> </p>
</div> </div>
<%= end_form_tag %> <%= end_form_tag %>
@ -28,8 +28,8 @@
<%= form_tag ({:action => 'workflow', :role_id => @role, :tracker_id => @tracker }, :id => 'workflow_form' ) %> <%= form_tag ({:action => 'workflow', :role_id => @role, :tracker_id => @tracker }, :id => 'workflow_form' ) %>
<table> <table>
<tr> <tr>
<td align="center"><strong><%=_('Issue status')%></strong></td> <td align="center"><strong><%=l(:label_current_status)%></strong></td>
<td align="center" colspan="<%= @statuses.length %>"><strong><%=_('New statuses allowed')%></strong></td> <td align="center" colspan="<%= @statuses.length %>"><strong><%=l(:label_new_statuses_allowed)%></strong></td>
</tr> </tr>
<tr> <tr>
<td></td> <td></td>
@ -59,11 +59,11 @@
</table> </table>
<br /> <br />
<p> <p>
<a href="javascript:checkAll('workflow_form', true)"><%=_('Check all')%></a> | <a href="javascript:checkAll('workflow_form', true)"><%=l(:button_check_all)%></a> |
<a href="javascript:checkAll('workflow_form', false)"><%=_('Uncheck all')%></a> <a href="javascript:checkAll('workflow_form', false)"><%=l(:button_uncheck_all)%></a>
</p> </p>
<br /> <br />
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>
<% end %> <% end %>

View File

@ -1,10 +1,10 @@
<%= error_messages_for 'tracker' %> <%= error_messages_for 'tracker' %>
<!--[form: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> <%= text_field 'tracker', 'name' %></p>
<p><%= check_box 'tracker', 'is_in_chlog' %> <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]--> <!--[eoform:tracker]-->

View File

@ -1,6 +1,6 @@
<h2><%=_('Tracker')%></h2> <h2><%=l(:label_tracker)%></h2>
<%= start_form_tag :action => 'edit', :id => @tracker %> <%= start_form_tag :action => 'edit', :id => @tracker %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,8 +1,8 @@
<h2><%=_('Trackers')%></h2> <h2><%=l(:label_tracker_plural)%></h2>
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<th><%=_('Tracker')%></th> <th><%=l(:label_tracker)%></th>
<th></th> <th></th>
</tr> </tr>
@ -11,7 +11,7 @@
<td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td> <td><%= link_to tracker.name, :action => 'edit', :id => tracker %></td>
<td align="center"> <td align="center">
<%= start_form_tag :action => 'destroy', :id => tracker %> <%= start_form_tag :action => 'destroy', :id => tracker %>
<%= submit_tag _('Delete'), :class => "button-small" %> <%= submit_tag l(:button_delete), :class => "button-small" %>
<%= end_form_tag %> <%= end_form_tag %>
</td> </td>
</tr> </tr>
@ -21,4 +21,4 @@
<%= pagination_links_full @tracker_pages %> <%= pagination_links_full @tracker_pages %>
<br /> <br />
<%= link_to '&#187; ' + _('New tracker'), :action => 'new' %> <%= link_to '&#187; ' + l(:label_tracker_new), :action => 'new' %>

View File

@ -1,7 +1,7 @@
<h2><%=_('New tracker')%></h2> <h2><%=l(:label_tracker_new)%></h2>
<%= start_form_tag :action => 'new' %> <%= start_form_tag :action => 'new' %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -2,26 +2,26 @@
<div class="box"> <div class="box">
<!--[form:user]--> <!--[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> <%= 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> <%= 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> <%= 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> <%= 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> <%= 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> <%= text_field 'user', 'mail' %></p>
<p><label for="user_language"><%=_('Language')%></label><br/> <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 %> <% for custom_value in @custom_values %>
<p><%= custom_field_tag_with_label custom_value %></p> <p><%= custom_field_tag_with_label custom_value %></p>
@ -29,9 +29,9 @@
<div style="clear: both;"></div> <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]--> <!--[eoform:user]-->
</div> </div>

View File

@ -1,6 +1,6 @@
<h2><%=_('New user')%></h2> <h2><%=l(:label_user_new)%></h2>
<%= start_form_tag :action => 'add' %> <%= start_form_tag :action => 'add' %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Create') %> <%= submit_tag l(:button_create) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,7 +1,6 @@
<h2><%=_('User')%></h2> <h2><%=l(:label_user)%></h2>
<%= start_form_tag :action => 'edit', :id => @user %> <%= start_form_tag :action => 'edit', :id => @user %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,15 +1,15 @@
<h2><%=_('Users')%></h2> <h2><%=l(:label_user_plural)%></h2>
<table border="0" cellspacing="1" cellpadding="2" class="listTableContent"> <table border="0" cellspacing="1" cellpadding="2" class="listTableContent">
<tr class="ListHead"> <tr class="ListHead">
<%= sort_header_tag('login', :caption => _('Login')) %> <%= sort_header_tag('login', :caption => l(:field_login)) %>
<%= sort_header_tag('firstname', :caption => _('Firstname')) %> <%= sort_header_tag('firstname', :caption => l(:field_firstname)) %>
<%= sort_header_tag('lastname', :caption => _('Lastname')) %> <%= sort_header_tag('lastname', :caption => l(:field_lastname)) %>
<th><%=_('Mail')%></th> <th><%=l(:field_mail)%></th>
<%= sort_header_tag('admin', :caption => _('Admin')) %> <%= sort_header_tag('admin', :caption => l(:field_admin)) %>
<%= sort_header_tag('status', :caption => _('Status')) %> <%= sort_header_tag('status', :caption => l(:field_status)) %>
<%= sort_header_tag('created_on', :caption => _('Created on')) %> <%= sort_header_tag('created_on', :caption => l(:field_created_on)) %>
<%= sort_header_tag('last_login_on', :caption => _('Last login')) %> <%= sort_header_tag('last_login_on', :caption => l(:field_last_login_on)) %>
<th></th> <th></th>
</tr> </tr>
<% for user in @users %> <% for user in @users %>
@ -26,10 +26,10 @@
<%= start_form_tag :action => 'edit', :id => user %> <%= start_form_tag :action => 'edit', :id => user %>
<% if user.locked? %> <% if user.locked? %>
<%= hidden_field_tag 'user[status]', User::STATUS_ACTIVE %> <%= hidden_field_tag 'user[status]', User::STATUS_ACTIVE %>
<%= submit_tag _('Unlock'), :class => "button-small" %> <%= submit_tag l(:button_unlock), :class => "button-small" %>
<% else %> <% else %>
<%= hidden_field_tag 'user[status]', User::STATUS_LOCKED %> <%= hidden_field_tag 'user[status]', User::STATUS_LOCKED %>
<%= submit_tag _('Lock'), :class => "button-small" %> <%= submit_tag l(:button_lock), :class => "button-small" %>
<% end %> <% end %>
<%= end_form_tag %> <%= end_form_tag %>
</td> </td>
@ -42,5 +42,5 @@
</p> </p>
<p> <p>
<%= link_to '&#187; ' + _('New user'), :action => 'add' %> <%= link_to '&#187; ' + l(:label_user_new), :action => 'add' %>
</p> </p>

View File

@ -1,13 +1,13 @@
<%= error_messages_for 'version' %> <%= error_messages_for 'version' %>
<!--[form: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> <%= 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> <%= 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> <%= date_select 'version', 'effective_date' %></p>
<!--[eoform:version]--> <!--[eoform:version]-->

View File

@ -1,8 +1,8 @@
<h2><%=_('Version')%></h2> <h2><%=l(:label_version)%></h2>
<%= start_form_tag :action => 'edit', :id => @version %> <%= start_form_tag :action => 'edit', :id => @version %>
<%= render :partial => 'form' %> <%= render :partial => 'form' %>
<%= submit_tag _('Save') %> <%= submit_tag l(:button_save) %>
<%= end_form_tag %> <%= end_form_tag %>

View File

@ -1,14 +1,14 @@
<div class="splitcontentleft"> <div class="splitcontentleft">
<h2><%= $RDM_WELCOME_TITLE || _('Welcome') %> !</h2> <h2><%= $RDM_WELCOME_TITLE || l(:label_home) %></h2>
<p><%= $RDM_WELCOME_TEXT %></p> <p><%= $RDM_WELCOME_TEXT %></p>
<div class="box"> <div class="box">
<h3><%=_('Latest news')%></h3> <h3><%=l(:label_news_latest)%></h3>
<% for news in @news %> <% for news in @news %>
<p> <p>
<b><%= news.title %></b> (<%= link_to_user news.author %> <%= format_time(news.created_on) %> - <%= news.project.name %>)<br /> <b><%= news.title %></b> (<%= link_to_user news.author %> <%= format_time(news.created_on) %> - <%= news.project.name %>)<br />
<%= news.summary %><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> </p>
<hr /> <hr />
<% end %> <% end %>
@ -17,15 +17,14 @@
<div class="splitcontentright"> <div class="splitcontentright">
<div class="box"> <div class="box">
<h3><%=_('Latest projects')%></h3> <h3><%=l(:label_project_latest)%></h3>
<ul> <ul>
<% for project in @projects %> <% for project in @projects %>
<li> <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 %> <%= project.description %>
</li> </li>
<% end %> <% end %>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -78,7 +78,7 @@ class Setup < ActiveRecord::Migration
t.column "project_id", :integer, :default => 0, :null => false t.column "project_id", :integer, :default => 0, :null => false
t.column "category_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 "title", :string, :limit => 60, :default => "", :null => false
t.column "description", :text, :default => "", :null => false t.column "description", :text, :default => ""
t.column "created_on", :timestamp t.column "created_on", :timestamp
end end
@ -114,6 +114,7 @@ class Setup < ActiveRecord::Migration
t.column "project_id", :integer, :default => 0, :null => false t.column "project_id", :integer, :default => 0, :null => false
t.column "subject", :string, :default => "", :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 "category_id", :integer
t.column "status_id", :integer, :default => 0, :null => false t.column "status_id", :integer, :default => 0, :null => false
t.column "assigned_to_id", :integer t.column "assigned_to_id", :integer
@ -219,55 +220,55 @@ class Setup < ActiveRecord::Migration
end end
# project # project
Permission.create :controller => "projects", :action => "show", :description => "Overview", :sort => 100, :is_public => true Permission.create :controller => "projects", :action => "show", :description => "label_overview", :sort => 100, :is_public => true
Permission.create :controller => "projects", :action => "changelog", :description => "View change log", :sort => 105, :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 => "View reports", :sort => 110, :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 => "Settings", :sort => 150 Permission.create :controller => "projects", :action => "settings", :description => "label_settings", :sort => 150
Permission.create :controller => "projects", :action => "edit", :description => "Edit", :sort => 151 Permission.create :controller => "projects", :action => "edit", :description => "button_edit", :sort => 151
# members # members
Permission.create :controller => "projects", :action => "list_members", :description => "View list", :sort => 200, :is_public => true Permission.create :controller => "projects", :action => "list_members", :description => "button_list", :sort => 200, :is_public => true
Permission.create :controller => "projects", :action => "add_member", :description => "New member", :sort => 220 Permission.create :controller => "projects", :action => "add_member", :description => "button_add", :sort => 220
Permission.create :controller => "members", :action => "edit", :description => "Edit", :sort => 221 Permission.create :controller => "members", :action => "edit", :description => "button_edit", :sort => 221
Permission.create :controller => "members", :action => "destroy", :description => "Delete", :sort => 222 Permission.create :controller => "members", :action => "destroy", :description => "button_delete", :sort => 222
# versions # versions
Permission.create :controller => "projects", :action => "add_version", :description => "New version", :sort => 320 Permission.create :controller => "projects", :action => "add_version", :description => "button_add", :sort => 320
Permission.create :controller => "versions", :action => "edit", :description => "Edit", :sort => 321 Permission.create :controller => "versions", :action => "edit", :description => "button_edit", :sort => 321
Permission.create :controller => "versions", :action => "destroy", :description => "Delete", :sort => 322 Permission.create :controller => "versions", :action => "destroy", :description => "button_delete", :sort => 322
# issue categories # issue categories
Permission.create :controller => "projects", :action => "add_issue_category", :description => "New issue category", :sort => 420 Permission.create :controller => "projects", :action => "add_issue_category", :description => "button_add", :sort => 420
Permission.create :controller => "issue_categories", :action => "edit", :description => "Edit", :sort => 421 Permission.create :controller => "issue_categories", :action => "edit", :description => "button_edit", :sort => 421
Permission.create :controller => "issue_categories", :action => "destroy", :description => "Delete", :sort => 422 Permission.create :controller => "issue_categories", :action => "destroy", :description => "button_delete", :sort => 422
# issues # issues
Permission.create :controller => "projects", :action => "list_issues", :description => "View list", :sort => 1000, :is_public => true Permission.create :controller => "projects", :action => "list_issues", :description => "button_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 => "projects", :action => "export_issues_csv", :description => "label_export_csv", :sort => 1001, :is_public => true
Permission.create :controller => "issues", :action => "show", :description => "View", :sort => 1005, :is_public => true Permission.create :controller => "issues", :action => "show", :description => "button_view", :sort => 1005, :is_public => true
Permission.create :controller => "issues", :action => "download", :description => "Download file", :sort => 1010, :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 => "Report an issue", :sort => 1050, :mail_option => 1, :mail_enabled => 1 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 => "Edit", :sort => 1055 Permission.create :controller => "issues", :action => "edit", :description => "button_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 => "change_status", :description => "label_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 => "destroy", :description => "button_delete", :sort => 1065
Permission.create :controller => "issues", :action => "add_attachment", :description => "Add file", :sort => 1070 Permission.create :controller => "issues", :action => "add_attachment", :description => "label_attachment_new", :sort => 1070
Permission.create :controller => "issues", :action => "destroy_attachment", :description => "Delete file", :sort => 1075 Permission.create :controller => "issues", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1075
# news # news
Permission.create :controller => "projects", :action => "list_news", :description => "View list", :sort => 1100, :is_public => true Permission.create :controller => "projects", :action => "list_news", :description => "button_list", :sort => 1100, :is_public => true
Permission.create :controller => "news", :action => "show", :description => "View", :sort => 1101, :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 => "Add", :sort => 1120 Permission.create :controller => "projects", :action => "add_news", :description => "button_add", :sort => 1120
Permission.create :controller => "news", :action => "edit", :description => "Edit", :sort => 1121 Permission.create :controller => "news", :action => "edit", :description => "button_edit", :sort => 1121
Permission.create :controller => "news", :action => "destroy", :description => "Delete", :sort => 1122 Permission.create :controller => "news", :action => "destroy", :description => "button_delete", :sort => 1122
# documents # documents
Permission.create :controller => "projects", :action => "list_documents", :description => "View list", :sort => 1200, :is_public => true Permission.create :controller => "projects", :action => "list_documents", :description => "button_list", :sort => 1200, :is_public => true
Permission.create :controller => "documents", :action => "show", :description => "View", :sort => 1201, :is_public => true Permission.create :controller => "documents", :action => "show", :description => "button_view", :sort => 1201, :is_public => true
Permission.create :controller => "documents", :action => "download", :description => "Download", :sort => 1202, :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 => "Add", :sort => 1220 Permission.create :controller => "projects", :action => "add_document", :description => "button_add", :sort => 1220
Permission.create :controller => "documents", :action => "edit", :description => "Edit", :sort => 1221 Permission.create :controller => "documents", :action => "edit", :description => "button_edit", :sort => 1221
Permission.create :controller => "documents", :action => "destroy", :description => "Delete", :sort => 1222 Permission.create :controller => "documents", :action => "destroy", :description => "button_delete", :sort => 1222
Permission.create :controller => "documents", :action => "add_attachment", :description => "Add file", :sort => 1223 Permission.create :controller => "documents", :action => "add_attachment", :description => "label_attachment_new", :sort => 1223
Permission.create :controller => "documents", :action => "destroy_attachment", :description => "Delete file", :sort => 1224 Permission.create :controller => "documents", :action => "destroy_attachment", :description => "label_attachment_delete", :sort => 1224
# files # files
Permission.create :controller => "projects", :action => "list_files", :description => "View list", :sort => 1300, :is_public => true Permission.create :controller => "projects", :action => "list_files", :description => "button_list", :sort => 1300, :is_public => true
Permission.create :controller => "versions", :action => "download", :description => "Download", :sort => 1301, :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 => "Add", :sort => 1320 Permission.create :controller => "projects", :action => "add_file", :description => "button_add", :sort => 1320
Permission.create :controller => "versions", :action => "destroy_file", :description => "Delete", :sort => 1322 Permission.create :controller => "versions", :action => "destroy_file", :description => "button_delete", :sort => 1322
# create default administrator account # create default administrator account
user = User.create :firstname => "redMine", :lastname => "Admin", :mail => "admin@somenet.foo", :mail_notification => true, :language => "en" user = User.create :firstname => "redMine", :lastname => "Admin", :mail => "admin@somenet.foo", :mail_notification => true, :language => "en"

View File

@ -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

Binary file not shown.

View File

@ -11,19 +11,20 @@ http://redmine.org/
* token based "lost password" functionality * token based "lost password" functionality
* user self-registration functionality (optional) * user self-registration functionality (optional)
* custom fields now available for issues, users and projects * custom fields now available for issues, users and projects
* new custom field format "text" (textarea) * new custom field format "text" (displayed as a textarea field)
* project & administration drop down menus in navigation bar * project & administration drop down menus in navigation bar for quicker access
* "due date" field added on issues
* error messages internationalization * error messages internationalization
* Localization plugin replaced with GLoc 1.1.0 * Localization plugin replaced with GLoc 1.1.0
* new filter in issues list: "Fixed version" * 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 * custom configuration is now defined in config/config_custom.rb
* user object no more stored in session (only user_id) * user object no more stored in session (only user_id)
* news summary field is no longer required * news summary field is no longer required
* Fixed: boolean custom field not working * Fixed: boolean custom field not working
* Fixed: error messages for custom fields are not displayed * Fixed: error messages for custom fields are not displayed
* Fixed: custom fields values are not validated on issue update * 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: no issue categories sorting
* Fixed: incorrect versions sorting * Fixed: incorrect versions sorting

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -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>

View File

@ -42,6 +42,7 @@ general_text_No: 'No'
general_text_Yes: 'Yes' general_text_Yes: 'Yes'
general_text_no: 'no' general_text_no: 'no'
general_text_yes: 'yes' general_text_yes: 'yes'
general_lang_en: 'English'
notice_account_updated: Account was successfully updated. notice_account_updated: Account was successfully updated.
notice_account_invalid_creditentials: Invalid user or password notice_account_invalid_creditentials: Invalid user or password

View File

@ -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_day_prefix:
actionview_datehelper_select_month_names: Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre 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_Yes: 'Oui'
general_text_no: 'non' general_text_no: 'non'
general_text_yes: 'oui' general_text_yes: 'oui'
general_lang_fr: 'Français'
notice_account_updated: Le compte a été mis à jour avec succès. notice_account_updated: Le compte a été mis à jour avec succès.
notice_account_invalid_creditentials: Identifiant ou mot de passe invalide. 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_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_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_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_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_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_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_delete: Suppression effectuée avec succès.
notice_successful_connection: Connection réussie. notice_successful_connection: Connection réussie.
@ -90,6 +92,7 @@ field_is_default: Statut par défaut
field_html_color: Couleur field_html_color: Couleur
field_tracker: Tracker field_tracker: Tracker
field_subject: Sujet field_subject: Sujet
field_due_date: Date d'échéance
field_assigned_to: Assigné à field_assigned_to: Assigné à
field_priority: Priorité field_priority: Priorité
field_fixed_version: Version corrigée field_fixed_version: Version corrigée
@ -127,24 +130,36 @@ label_user_new: Nouvel utilisateur
label_project: Projet label_project: Projet
label_project_new: Nouveau projet label_project_new: Nouveau projet
label_project_plural: Projets label_project_plural: Projets
label_project_latest: Derniers projets
label_issue: Demande label_issue: Demande
label_issue_new: Nouvelle demande label_issue_new: Nouvelle demande
label_issue_plural: Demandes 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: Rôle
label_role_plural: Rôles 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_role_and_permissions: Rôles et permissions
label_member: Membre
label_member_new: Nouveau membre
label_member_plural: Membres
label_tracker: Tracker label_tracker: Tracker
label_tracker_plural: Trackers label_tracker_plural: Trackers
label_tracker_add: Nouveau tracker label_tracker_new: Nouveau tracker
label_workflow: Workflow label_workflow: Workflow
label_issue_status: Statut de demandes label_issue_status: Statut de demandes
label_issue_status_plural: Statuts 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: Champ personnalisé
label_custom_field_plural: Champs personnalisés label_custom_field_plural: Champs personnalisés
label_custom_field_new: Nouveau champ personnalisé label_custom_field_new: Nouveau champ personnalisé
label_enumerations: Listes de valeurs label_enumerations: Listes de valeurs
label_enumeration_new: Nouvelle valeur
label_information: Information label_information: Information
label_information_plural: Informations label_information_plural: Informations
label_please_login: Identification label_please_login: Identification
@ -153,6 +168,7 @@ label_password_lost: Mot de passe perdu
label_home: Accueil label_home: Accueil
label_my_page: Ma page label_my_page: Ma page
label_my_account: Mon compte label_my_account: Mon compte
label_my_projects: Mes projets
label_administration: Administration label_administration: Administration
label_login: Connexion label_login: Connexion
label_logout: Déconnexion label_logout: Déconnexion
@ -182,7 +198,45 @@ label_string: Chaîne
label_text: Texte label_text: Texte
label_attribute: Attribut label_attribute: Attribut
label_attribute_plural: Attributs 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_login: Connexion
button_submit: Soumettre button_submit: Soumettre
@ -192,8 +246,43 @@ button_uncheck_all: Tout décocher
button_delete: Supprimer button_delete: Supprimer
button_create: Créer button_create: Créer
button_test: Tester 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_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_regexp_info: eg. ^[A-Z0-9]+$
text_min_max_length_info: 0 pour aucune restriction 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

View File

@ -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

View File

@ -2,7 +2,7 @@
permissions_041: permissions_041:
action: add_file action: add_file
id: 41 id: 41
description: Add description: button_add
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -11,7 +11,7 @@ permissions_041:
permissions_030: permissions_030:
action: destroy action: destroy
id: 30 id: 30
description: Delete description: button_delete
controller: news controller: news
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -20,7 +20,7 @@ permissions_030:
permissions_019: permissions_019:
action: download action: download
id: 19 id: 19
description: Download file description: button_download
controller: issues controller: issues
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -29,7 +29,7 @@ permissions_019:
permissions_008: permissions_008:
action: edit action: edit
id: 8 id: 8
description: Edit description: button_edit
controller: members controller: members
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -38,7 +38,7 @@ permissions_008:
permissions_042: permissions_042:
action: destroy_file action: destroy_file
id: 42 id: 42
description: Delete description: button_delete
controller: versions controller: versions
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -47,7 +47,7 @@ permissions_042:
permissions_031: permissions_031:
action: list_documents action: list_documents
id: 31 id: 31
description: View list description: button_list
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -56,7 +56,7 @@ permissions_031:
permissions_020: permissions_020:
action: add_issue action: add_issue
id: 20 id: 20
description: Report an issue description: button_add
controller: projects controller: projects
mail_enabled: true mail_enabled: true
mail_option: true mail_option: true
@ -65,7 +65,7 @@ permissions_020:
permissions_009: permissions_009:
action: destroy action: destroy
id: 9 id: 9
description: Delete description: button_delete
controller: members controller: members
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -74,7 +74,7 @@ permissions_009:
permissions_032: permissions_032:
action: show action: show
id: 32 id: 32
description: View description: button_view
controller: documents controller: documents
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -83,7 +83,7 @@ permissions_032:
permissions_021: permissions_021:
action: edit action: edit
id: 21 id: 21
description: Edit description: button_edit
controller: issues controller: issues
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -92,7 +92,7 @@ permissions_021:
permissions_010: permissions_010:
action: add_version action: add_version
id: 10 id: 10
description: New version description: button_add
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -101,7 +101,7 @@ permissions_010:
permissions_033: permissions_033:
action: download action: download
id: 33 id: 33
description: Download description: button_download
controller: documents controller: documents
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -110,7 +110,7 @@ permissions_033:
permissions_022: permissions_022:
action: change_status action: change_status
id: 22 id: 22
description: Change status description: label_change_status
controller: issues controller: issues
mail_enabled: true mail_enabled: true
mail_option: true mail_option: true
@ -119,7 +119,7 @@ permissions_022:
permissions_011: permissions_011:
action: edit action: edit
id: 11 id: 11
description: Edit description: button_edit
controller: versions controller: versions
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -128,7 +128,7 @@ permissions_011:
permissions_034: permissions_034:
action: add_document action: add_document
id: 34 id: 34
description: Add description: button_add
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -137,7 +137,7 @@ permissions_034:
permissions_023: permissions_023:
action: destroy action: destroy
id: 23 id: 23
description: Delete description: button_delete
controller: issues controller: issues
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -146,7 +146,7 @@ permissions_023:
permissions_012: permissions_012:
action: destroy action: destroy
id: 12 id: 12
description: Delete description: button_delete
controller: versions controller: versions
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -155,7 +155,7 @@ permissions_012:
permissions_001: permissions_001:
action: show action: show
id: 1 id: 1
description: Overview description: label_overview
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -164,7 +164,7 @@ permissions_001:
permissions_035: permissions_035:
action: edit action: edit
id: 35 id: 35
description: Edit description: button_edit
controller: documents controller: documents
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -173,7 +173,7 @@ permissions_035:
permissions_024: permissions_024:
action: add_attachment action: add_attachment
id: 24 id: 24
description: Add file description: label_attachment_new
controller: issues controller: issues
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -182,7 +182,7 @@ permissions_024:
permissions_013: permissions_013:
action: add_issue_category action: add_issue_category
id: 13 id: 13
description: New issue category description: button_add
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -191,7 +191,7 @@ permissions_013:
permissions_002: permissions_002:
action: changelog action: changelog
id: 2 id: 2
description: View change log description: label_change_log
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -200,7 +200,7 @@ permissions_002:
permissions_036: permissions_036:
action: destroy action: destroy
id: 36 id: 36
description: Delete description: button_delete
controller: documents controller: documents
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -209,7 +209,7 @@ permissions_036:
permissions_025: permissions_025:
action: destroy_attachment action: destroy_attachment
id: 25 id: 25
description: Delete file description: label_attachment_delete
controller: issues controller: issues
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -218,7 +218,7 @@ permissions_025:
permissions_014: permissions_014:
action: edit action: edit
id: 14 id: 14
description: Edit description: button_edit
controller: issue_categories controller: issue_categories
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -227,7 +227,7 @@ permissions_014:
permissions_003: permissions_003:
action: issue_report action: issue_report
id: 3 id: 3
description: View reports description: label_report_plural
controller: reports controller: reports
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -236,7 +236,7 @@ permissions_003:
permissions_037: permissions_037:
action: add_attachment action: add_attachment
id: 37 id: 37
description: Add file description: label_attachment_new
controller: documents controller: documents
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -245,7 +245,7 @@ permissions_037:
permissions_026: permissions_026:
action: list_news action: list_news
id: 26 id: 26
description: View list description: button_list
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -254,7 +254,7 @@ permissions_026:
permissions_015: permissions_015:
action: destroy action: destroy
id: 15 id: 15
description: Delete description: button_delete
controller: issue_categories controller: issue_categories
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -263,7 +263,7 @@ permissions_015:
permissions_004: permissions_004:
action: settings action: settings
id: 4 id: 4
description: Settings description: label_settings
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -272,7 +272,7 @@ permissions_004:
permissions_038: permissions_038:
action: destroy_attachment action: destroy_attachment
id: 38 id: 38
description: Delete file description: label_attachment_delete
controller: documents controller: documents
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -281,7 +281,7 @@ permissions_038:
permissions_027: permissions_027:
action: show action: show
id: 27 id: 27
description: View description: button_view
controller: news controller: news
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -290,7 +290,7 @@ permissions_027:
permissions_016: permissions_016:
action: list_issues action: list_issues
id: 16 id: 16
description: View list description: button_list
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -299,7 +299,7 @@ permissions_016:
permissions_005: permissions_005:
action: edit action: edit
id: 5 id: 5
description: Edit description: button_edit
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -308,7 +308,7 @@ permissions_005:
permissions_039: permissions_039:
action: list_files action: list_files
id: 39 id: 39
description: View list description: button_list
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -317,7 +317,7 @@ permissions_039:
permissions_028: permissions_028:
action: add_news action: add_news
id: 28 id: 28
description: Add description: button_add
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -326,7 +326,7 @@ permissions_028:
permissions_017: permissions_017:
action: export_issues_csv action: export_issues_csv
id: 17 id: 17
description: Export list to CSV description: label_export_csv
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -335,7 +335,7 @@ permissions_017:
permissions_006: permissions_006:
action: list_members action: list_members
id: 6 id: 6
description: View list description: button_list
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -344,7 +344,7 @@ permissions_006:
permissions_040: permissions_040:
action: download action: download
id: 40 id: 40
description: Download description: button_download
controller: versions controller: versions
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -353,7 +353,7 @@ permissions_040:
permissions_029: permissions_029:
action: edit action: edit
id: 29 id: 29
description: Edit description: button_edit
controller: news controller: news
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -362,7 +362,7 @@ permissions_029:
permissions_018: permissions_018:
action: show action: show
id: 18 id: 18
description: View description: button_view
controller: issues controller: issues
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false
@ -371,7 +371,7 @@ permissions_018:
permissions_007: permissions_007:
action: add_member action: add_member
id: 7 id: 7
description: New member description: button_add
controller: projects controller: projects
mail_enabled: false mail_enabled: false
mail_option: false mail_option: false

View File

@ -41,10 +41,6 @@ class AccountTest < ActionController::IntegrationTest
assert_response :success assert_response :success
assert_tag :tag => "div", :attributes => { :class => "errorExplanation" } 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" post "account/change_password", :password => 'jsmith', :new_password => "hello", :new_password_confirmation => "hello"
assert_response :success assert_response :success
log_user('jsmith', 'hello') log_user('jsmith', 'hello')