diff --git a/tracks/app/controllers/projects_controller.rb b/tracks/app/controllers/projects_controller.rb
index f5a64496..f960e9d1 100644
--- a/tracks/app/controllers/projects_controller.rb
+++ b/tracks/app/controllers/projects_controller.rb
@@ -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 'new project_name'
@@ -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'")
diff --git a/tracks/app/views/projects/_project_form.rhtml b/tracks/app/views/projects/_project_form.rhtml
index b783aa28..55c402d4 100644
--- a/tracks/app/views/projects/_project_form.rhtml
+++ b/tracks/app/views/projects/_project_form.rhtml
@@ -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 -%>
+
+
|
<%= text_field :project, 'name', :class => 'project-name' %> |
@@ -20,7 +23,22 @@
|
- <%= 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' %>
|
-
\ No newline at end of file
+
+
+
+ | |
+ Cancel |
+
+
+
+<%= 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 -%>
diff --git a/tracks/app/views/projects/_project_listing.rhtml b/tracks/app/views/projects/_project_listing.rhtml
index 736897d7..852e2bcd 100644
--- a/tracks/app/views/projects/_project_listing.rhtml
+++ b/tracks/app/views/projects/_project_listing.rhtml
@@ -17,38 +17,20 @@
page << " new Ajax.Request(this.href, {asynchronous:true,"
page << " evalScripts:true, method:'delete'}); };"
end -%>
- <%= image_tag( "blank.png", :title => "Edit project", :class=>"edit_item") %>
- <%= 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
+ <%= image_tag( "blank.png", :title => "Edit project", :class=>"edit_item") %>
+ <%= 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
-%>
<% if controller.action_name == 'create' %>
-<% end %>
\ No newline at end of file
+<% end %>
diff --git a/tracks/app/views/projects/edit.rjs b/tracks/app/views/projects/edit.rjs
new file mode 100644
index 00000000..6fa66f75
--- /dev/null
+++ b/tracks/app/views/projects/edit.rjs
@@ -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
\ No newline at end of file
diff --git a/tracks/app/views/projects/update.rjs b/tracks/app/views/projects/update.rjs
index 81dd4d49..bc9edc33 100644
--- a/tracks/app/views/projects/update.rjs
+++ b/tracks/app/views/projects/update.rjs
@@ -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"
\ No newline at end of file