diff --git a/tracks/app/views/contexts/_context_form.rhtml b/tracks/app/views/contexts/_context_form.rhtml
index 76ed4f3b..2db8edeb 100644
--- a/tracks/app/views/contexts/_context_form.rhtml
+++ b/tracks/app/views/contexts/_context_form.rhtml
@@ -1,13 +1,36 @@
-<%
- @context = context_form
-%>
-<%= error_messages_for 'context' %>
-
- |
- <%= text_field 'context', 'name', :class => 'context-name' %> |
-
-
- |
- <%= check_box 'context', 'hide', :class => 'context-hide' %> |
-
-<% @context = nil %>
\ No newline at end of file
+<% context = context_form
+ @context = context-%>
+
+ <% form_tag(context_path(context), {:id => dom_id(context, 'edit_form'), :class => "inline-form "+dom_id(context, 'edit_form')+"-edit-context-form", :method => :put}) do -%>
+ <%= error_messages_for 'context' %>
+
+
+ <%= text_field('context', 'name', :class => 'context-name') %>
+
+
+ <%= check_box('context', 'hide', :class => 'context-hide') %>
+
+
+
+
+
+ <% end %>
+ <%= apply_behavior "."+dom_id(context, 'edit_form')+"-edit-context-form", make_remote_form(
+ :before => "$('"+dom_id(context, 'submit')+"').startWaiting()",
+ :complete => "$('"+dom_id(context, 'submit')+"').stopWaiting(); Effect.Appear($(this).up('.list'))",
+ :condition => "!$('"+dom_id(context, 'submit')+"').isWaiting()"),
+ :external => true
+@context = nil %>
+
+
diff --git a/tracks/app/views/contexts/_context_listing.rhtml b/tracks/app/views/contexts/_context_listing.rhtml
index 8af019ff..7f433acd 100644
--- a/tracks/app/views/contexts/_context_listing.rhtml
+++ b/tracks/app/views/contexts/_context_listing.rhtml
@@ -7,7 +7,7 @@
<%= link_to_context( context ) %> <%= " (" + count_undone_todos_phrase(context,"actions") + ")" %>
-
+
-
- <% form_tag context_path(context), { :id => dom_id(context, 'edit_form'), :class => "inline-form edit-context-form", :method => :put } do -%>
-
- <% end -%>
- <%= apply_behavior ".edit-context-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('.context').toggle
- element.up('.edit-form').toggle
- element.up('form').reset
- end %>
-
+ <%= render :partial => 'context_form', :object => context %>
<% if controller.action_name == 'create' %>
-
+
<% end %>
diff --git a/tracks/app/views/contexts/update.rjs b/tracks/app/views/contexts/update.rjs
index 3680032b..6387842a 100644
--- a/tracks/app/views/contexts/update.rjs
+++ b/tracks/app/views/contexts/update.rjs
@@ -1,2 +1,6 @@
+status_message = 'Context saved'
+page.notify :notice, status_message, 5.0
page.replace_html dom_id(@context, 'container'), :partial => 'context_listing', :object => @context
-page.sortable "list-contexts", get_listing_sortable_options
\ No newline at end of file
+page.sortable "list-contexts", get_listing_sortable_options
+
+page.hide "busy"
\ No newline at end of file
diff --git a/tracks/app/views/projects/_project_form.rhtml b/tracks/app/views/projects/_project_form.rhtml
index 55c402d4..cc657588 100644
--- a/tracks/app/views/projects/_project_form.rhtml
+++ b/tracks/app/views/projects/_project_form.rhtml
@@ -1,44 +1,45 @@
<%
project = project_form
%>
-<% form_tag project_path(project), { :id => dom_id(project, 'edit_form'), :class => "inline-form edit-project-form", :method => :put } do -%>
-
+<% form_tag project_path(project), { :id => dom_id(project, 'edit_form'), :class => "inline-form "+dom_id(project, 'edit_form')+"-edit-project-form", :method => :put } do -%>
-
- |
- <%= text_field :project, 'name', :class => 'project-name' %> |
-
-
- |
- <%= text_area :project, 'description', "cols" => 30, "rows" => 4, :class => 'project-description' %> |
-
-
- |
-
- <% ['active', 'hidden', 'completed'].each do | state | %>
- <%= radio_button(:project, 'state', state) %> <%= state.titlecase %>
- <% end %>
- |
-
-
- |
-
- <%= text_field_tag("project[default_context_name]", project.default_context.name, {:tabindex=>1,:size=> 25}) %>
- <%= render :partial => 'default_context_autocomplete' %>
- |
-
+
+ <%= text_field :project, 'name', :class => 'project-name' %>
-
- | |
- Cancel |
-
-
+
+ <%= text_area :project, 'description', "cols" => 30, "rows" => 4, :class => 'project-description' %>
-<%= 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 %>
+
+ <% ['active', 'hidden', 'completed'].each do | state | %>
+ <%= radio_button(:project, 'state', state) %> <%= state.titlecase %>
+ <% end %>
+
+
+ <%= text_field_tag("project[default_context_name]", project.default_context.name, {:tabindex=>1,:size=> 25}) %>
+ <%= render :partial => 'default_context_autocomplete' %>
+
+
+
+
+
+
+ <% end -%>
+
+
+<%= apply_behavior "."+dom_id(project, 'edit_form')+"-edit-project-form", make_remote_form(
+ :before => "$('"+dom_id(project, 'submit')+"').startWaiting();",
+ :complete => "$('"+dom_id(project, 'submit')+"').stopWaiting();Effect.Appear($(this).up('.list'))",
+ :condition => "!$('"+dom_id(project, 'submit')+"').isWaiting()",
+ :external => false) %>
-<% end -%>
diff --git a/tracks/app/views/projects/edit.rjs b/tracks/app/views/projects/edit.rjs
index 6fa66f75..5dd5ae38 100644
--- a/tracks/app/views/projects/edit.rjs
+++ b/tracks/app/views/projects/edit.rjs
@@ -1,5 +1,5 @@
page[dom_id(@project, 'edit')].replace_html :partial => 'project_form', :locals => { :project_form => @project }
-page[@project].stop_waiting
page[@project].hide
+page[@project].stop_waiting
page[dom_id(@project, 'edit')].show
-page[dom_id(@project, 'form')].down('table').down('input').focus
\ No newline at end of file
+page[dom_id(@project, 'form')].down('table').down('input').focus