mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-02 22:11:48 +01:00
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:
parent
30c23fc560
commit
4775184403
5 changed files with 45 additions and 33 deletions
|
|
@ -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'")
|
||||
|
|
|
|||
|
|
@ -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"> <input type="hidden" name="wants_render" value="true" /></td>
|
||||
<td width="300"><input type="submit" value="Update" /> <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 -%>
|
||||
|
|
|
|||
|
|
@ -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"> <input type="hidden" name="wants_render" value="true" /></td>
|
||||
<td width="300"><input type="submit" value="Update" /> <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 %>
|
||||
|
|
|
|||
5
tracks/app/views/projects/edit.rjs
Normal file
5
tracks/app/views/projects/edit.rjs
Normal 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
|
||||
|
|
@ -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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue