Apply James Kebinger's patch to reduce the size of the projects listing HTML. Thanks, James. Closes #509

git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@576 a4c988fc-2ded-0310-b66e-134b36920a42
This commit is contained in:
lukemelia 2007-08-14 06:57:27 +00:00
parent 30c23fc560
commit 4775184403
5 changed files with 45 additions and 33 deletions

View file

@ -2,8 +2,8 @@ class ProjectsController < ApplicationController
helper :application, :todos, :notes
before_filter :set_source_view
before_filter :set_project_from_params, :only => [:update, :destroy, :show]
before_filter :default_context_filter, :only => [:create,:update]
before_filter :set_project_from_params, :only => [:update, :destroy, :show, :edit]
before_filter :default_context_filter, :only => [:create, :update]
skip_before_filter :login_required, :only => [:index]
prepend_before_filter :login_or_feed_token_required, :only => [:index]
session :off, :only => :index, :if => Proc.new { |req| ['rss','atom','txt'].include?(req.parameters[:format]) }
@ -41,7 +41,7 @@ class ProjectsController < ApplicationController
format.xml { render :xml => @project.to_xml( :except => :user_id ) }
end
end
# Example XML usage: curl -H 'Accept: application/xml' -H 'Content-Type: application/xml'
# -u username:password
# -d '<request><project><name>new project_name</name></project></request>'
@ -119,6 +119,13 @@ class ProjectsController < ApplicationController
end
end
def edit
@contexts = current_user.contexts
respond_to do |format|
format.js
end
end
def destroy
@project.destroy
@active_projects_count = current_user.projects.count(:conditions => "state = 'active'")

View file

@ -1,6 +1,9 @@
<%
@project = project_form
project = project_form
%>
<% form_tag project_path(project), { :id => dom_id(project, 'edit_form'), :class => "inline-form edit-project-form", :method => :put } do -%>
<table style="table-layout: fixed;" width="450">
<tr>
<td width="150"><label for="project_name">Name:</label></td>
<td width="300"><%= text_field :project, 'name', :class => 'project-name' %></td>
@ -20,7 +23,22 @@
<tr>
<td width="150"><label for="project[default_context_name]">Default Context</label></td>
<td width="300">
<%= text_field_tag("project[default_context_name]", @project.default_context.name, {:tabindex=>1,:size=> 25}) %>
<%= text_field_tag("project[default_context_name]", project.default_context.name, {:tabindex=>1,:size=> 25}) %>
<%= render :partial => 'default_context_autocomplete' %>
</td>
</tr>
</tr>
<tr>
<td width="150">&nbsp; <input type="hidden" name="wants_render" value="true" /></td>
<td width="300"><input type="submit" value="Update" />&nbsp;<a href="#" class="form_reset">Cancel</a></td>
</tr>
</table>
<%= apply_behavior ".edit-project-form", make_remote_form(:external => false) %>
<%= apply_behavior "a.form_reset:click", :prevent_default => false do |page, element|
element.up('.list').down('.project').toggle
element.up('.edit-form').toggle
element.up('form').reset
end %>
<% end -%>

View file

@ -17,38 +17,20 @@
page << " new Ajax.Request(this.href, {asynchronous:true,"
page << " evalScripts:true, method:'delete'}); };"
end -%>
<a class="edit_project_button" href="#"><%= image_tag( "blank.png", :title => "Edit project", :class=>"edit_item") %></a>
<%= apply_behavior 'a.edit_project_button:click', {:prevent_default => true, :external => true} do |page, element|
element.up('.project').toggle
editform = element.up('.list').down('.edit-form')
editform.toggle
editform.visual_effect(:appear)
editform.down('input').focus
end
<a class="edit_project_button" id="<%= dom_id(project, 'editbutton') %>" href="<%= formatted_edit_project_path(project, :js) %>" title="delete the project '<%= project.name %>'"><%= image_tag( "blank.png", :title => "Edit project", :class=>"edit_item") %></a>
<%= apply_behavior "a.edit_project_button:click", { :prevent_default => true, :external => true} do |page|
page << " this.up('.project').startWaiting();"
page << " new Ajax.Request( this.href, {asynchronous:true, evalScripts:true, method:'get'});"
end
-%>
</div>
</div>
<div id="<%= dom_id(project, 'edit') %>" class="edit-form" style="display:none;">
<% form_tag project_path(project), { :id => dom_id(project, 'edit_form'), :class => "inline-form edit-project-form", :method => :put } do -%>
<table style="table-layout: fixed;" width="450">
<%= render :partial => 'project_form', :object => project %>
<tr>
<td width="150">&nbsp; <input type="hidden" name="wants_render" value="true" /></td>
<td width="300"><input type="submit" value="Update" />&nbsp;<a href="#" class="form_reset">Cancel</a></td>
</tr>
</table>
<% end -%>
<%= apply_behavior ".edit-project-form", make_remote_form(:complete => "Effect.Appear($(this).up('.list'));" ), :external => true %>
<%= apply_behavior "a.form_reset:click", :prevent_default => true do |page, element|
element.up('.list').down('.project').toggle
element.up('.edit-form').toggle
element.up('form').reset
end %>
</div>
</div>
<% if controller.action_name == 'create' %>
<script>
new Effect.Appear('<%= dom_id(project) %>');
</script>
<% end %>
<% end %>

View file

@ -0,0 +1,5 @@
page[dom_id(@project, 'edit')].replace_html :partial => 'project_form', :locals => { :project_form => @project }
page[@project].stop_waiting
page[@project].hide
page[dom_id(@project, 'edit')].show
page[dom_id(@project, 'form')].down('table').down('input').focus

View file

@ -11,8 +11,8 @@ page.replace_html "active-projects-count", @active_projects_count
page.replace_html "hidden-projects-count", @hidden_projects_count
page.replace_html "completed-projects-count", @completed_projects_count
page.set_element_visible ("list-hidden-projects-container", @hidden_projects_count > 0)
page.set_element_visible ("list-active-projects-container", @active_projects_count > 0)
page.set_element_visible ("list-completed-projects-container", @completed_projects_count > 0)
page.set_element_visible("list-hidden-projects-container", @hidden_projects_count > 0)
page.set_element_visible("list-active-projects-container", @active_projects_count > 0)
page.set_element_visible("list-completed-projects-container", @completed_projects_count > 0)
page.hide "busy"