* prototype.js upgraded to 1.5.0_rc1 git-svn-id: http://redmine.rubyforge.org/svn/trunk@181 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.4.2
@@ -22,16 +22,16 @@ class IssueCategoriesController < ApplicationController | |||
def edit | |||
if request.post? and @category.update_attributes(params[:category]) | |||
flash[:notice] = l(:notice_successful_update) | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'categories', :id => @project | |||
end | |||
end | |||
def destroy | |||
@category.destroy | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'categories', :id => @project | |||
rescue | |||
flash[:notice] = "Categorie can't be deleted" | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'categories', :id => @project | |||
end | |||
private |
@@ -16,21 +16,21 @@ | |||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
class MembersController < ApplicationController | |||
layout 'base' | |||
before_filter :find_project, :authorize | |||
layout 'base' | |||
before_filter :find_project, :authorize | |||
def edit | |||
if request.post? and @member.update_attributes(params[:member]) | |||
flash[:notice] = l(:notice_successful_update) | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
end | |||
end | |||
def destroy | |||
@member.destroy | |||
def edit | |||
if request.post? and @member.update_attributes(params[:member]) | |||
flash[:notice] = l(:notice_successful_update) | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project | |||
end | |||
end | |||
def destroy | |||
@member.destroy | |||
flash[:notice] = l(:notice_successful_delete) | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
end | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project | |||
end | |||
private | |||
def find_project |
@@ -138,7 +138,7 @@ class ProjectsController < ApplicationController | |||
@issue_category = @project.issue_categories.build(params[:issue_category]) | |||
if @issue_category.save | |||
flash[:notice] = l(:notice_successful_create) | |||
redirect_to :action => 'settings', :id => @project | |||
redirect_to :action => 'settings', :tab => 'categories', :id => @project | |||
else | |||
settings | |||
render :action => 'settings' | |||
@@ -151,7 +151,7 @@ class ProjectsController < ApplicationController | |||
@version = @project.versions.build(params[:version]) | |||
if request.post? and @version.save | |||
flash[:notice] = l(:notice_successful_create) | |||
redirect_to :action => 'settings', :id => @project | |||
redirect_to :action => 'settings', :tab => 'versions', :id => @project | |||
end | |||
end | |||
@@ -161,7 +161,7 @@ class ProjectsController < ApplicationController | |||
if request.post? | |||
if @member.save | |||
flash[:notice] = l(:notice_successful_create) | |||
redirect_to :action => 'settings', :id => @project | |||
redirect_to :action => 'settings', :tab => 'members', :id => @project | |||
else | |||
settings | |||
render :action => 'settings' |
@@ -22,16 +22,16 @@ class VersionsController < ApplicationController | |||
def edit | |||
if request.post? and @version.update_attributes(params[:version]) | |||
flash[:notice] = l(:notice_successful_update) | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project | |||
end | |||
end | |||
def destroy | |||
@version.destroy | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project | |||
rescue | |||
flash[:notice] = "Unable to delete version" | |||
redirect_to :controller => 'projects', :action => 'settings', :id => @project | |||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project | |||
end | |||
def download |
@@ -1,13 +1,24 @@ | |||
<h2><%=l(:label_settings)%></h2> | |||
<div class="tabs"> | |||
<ul> | |||
<li><%= link_to l(:label_information_plural), {}, :id=> "tab-info", :onclick => "showTab('info'); this.blur(); return false;" %></li> | |||
<li><%= link_to l(:label_member_plural), {}, :id=> "tab-members", :onclick => "showTab('members'); this.blur(); return false;" %></li> | |||
<li><%= link_to l(:label_version_plural), {}, :id=> "tab-versions", :onclick => "showTab('versions'); this.blur(); return false;" %></li> | |||
<li><%= link_to l(:label_issue_category_plural), {}, :id=> "tab-categories", :onclick => "showTab('categories'); this.blur(); return false;" %></li> | |||
</ul> | |||
</div> | |||
<div id="tab-content-info" class="tab-content"> | |||
<% if authorize_for('projects', 'edit') %> | |||
<% labelled_tabular_form_for :project, @project, :url => { :action => "edit", :id => @project } do |f| %> | |||
<%= render :partial => 'form', :locals => { :f => f } %> | |||
<%= submit_tag l(:button_save) %> | |||
<% end %> | |||
<br /> | |||
<% end %> | |||
</div> | |||
<div id="tab-content-members" class="tab-content" style="display:none;"> | |||
<div class="box"> | |||
<h3><%=l(:label_member_plural)%></h3> | |||
<%= error_messages_for 'member' %> | |||
@@ -36,7 +47,7 @@ | |||
<% if authorize_for('projects', 'add_member') %> | |||
<hr /> | |||
<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', :tab => 'members', :id => @project %> | |||
<select name="member[user_id]"> | |||
<%= options_from_collection_for_select @users, "id", "display_name", @member.user_id %> | |||
</select> | |||
@@ -47,7 +58,9 @@ | |||
<%= end_form_tag %> | |||
<% end %> | |||
</div> | |||
</div> | |||
<div id="tab-content-versions" class="tab-content" style="display:none;"> | |||
<div class="box"> | |||
<h3><%=l(:label_version_plural)%></h3> | |||
<table> | |||
@@ -68,8 +81,9 @@ | |||
<%= link_to l(:label_version_new), :controller => 'projects', :action => 'add_version', :id => @project %> | |||
<% end %> | |||
</div> | |||
</div> | |||
<div id="tab-content-categories" class="tab-content" style="display:none;"> | |||
<div class="box"> | |||
<h3><%=l(:label_issue_category_plural)%></h3> | |||
<table> | |||
@@ -95,7 +109,7 @@ | |||
</table> | |||
<% if authorize_for('projects', 'add_issue_category') %> | |||
<hr /> | |||
<%= start_form_tag :action => 'add_issue_category', :id => @project %> | |||
<%= start_form_tag :action => 'add_issue_category', :tab => 'categories', :id => @project %> | |||
<label for="issue_category_name"><%=l(:label_issue_category_new)%></label><br/> | |||
<%= error_messages_for 'issue_category' %> | |||
<%= text_field 'issue_category', 'name', :size => 25 %> | |||
@@ -103,3 +117,7 @@ | |||
<%= end_form_tag %> | |||
<% end %> | |||
</div> | |||
</div> | |||
<%= tab = params[:tab] ? h(params[:tab]) : 'info' | |||
javascript_tag "showTab('#{tab}');" %> |
@@ -16,4 +16,18 @@ function addFileField() { | |||
p = document.getElementById("attachments_p"); | |||
p.appendChild(document.createElement("br")); | |||
p.appendChild(f); | |||
} | |||
function showTab(name) { | |||
var f = $$('div#content .tab-content'); | |||
for(var i=0; i<f.length; i++){ | |||
Element.hide(f[i]); | |||
} | |||
var f = $$('div.tabs a'); | |||
for(var i=0; i<f.length; i++){ | |||
Element.removeClassName(f[i], "selected"); | |||
} | |||
Element.show('tab-content-' + name); | |||
Element.addClassName('tab-' + name, "selected"); | |||
return false; | |||
} |
@@ -215,6 +215,30 @@ font-family: Trebuchet MS,Georgia,"Times New Roman",serif; | |||
#content dt{font-weight:bold; margin-bottom:5px;} | |||
#content dd{margin:0 0 10px 15px;} | |||
#content .tabs{height: 2.6em;} | |||
#content .tabs ul{margin:0;} | |||
#content .tabs ul li{ | |||
float:left; | |||
list-style-type:none; | |||
white-space:nowrap; | |||
margin-right:8px; | |||
background:#fff; | |||
} | |||
#content .tabs ul li a{ | |||
display:block; | |||
font-size: 0.9em; | |||
text-decoration:none; | |||
line-height:1em; | |||
padding:4px; | |||
border: 1px solid #c0c0c0; | |||
} | |||
#content .tabs ul li a.selected, #content .tabs ul li a:hover{ | |||
background-color: #80b0da; | |||
border: 1px solid #80b0da; | |||
color: #fff; | |||
text-decoration:none; | |||
} | |||
/***********************************************/ | |||