* project settings split in 4 tabs

* prototype.js upgraded to 1.5.0_rc1

git-svn-id: http://redmine.rubyforge.org/svn/trunk@181 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2007-01-26 17:59:06 +00:00
parent b9ef10fe3f
commit 190fef513f
8 changed files with 937 additions and 347 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -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 />&nbsp;
<% 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}');" %>

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -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;
}
/***********************************************/