OSDN Git Service

fix form save & done event
authoryasushiito <yas@pen-chan.jp>
Sun, 8 Mar 2015 01:37:17 +0000 (10:37 +0900)
committeryasushiito <yas@pen-chan.jp>
Sun, 8 Mar 2015 01:37:17 +0000 (10:37 +0900)
39 files changed:
app/assets/javascripts/controllers.js.coffee
app/assets/javascripts/controllers/artists.js.coffee
app/assets/javascripts/controllers/authors.js.coffee
app/assets/javascripts/controllers/balloons.js.coffee
app/assets/javascripts/controllers/comic_stories.js.coffee
app/assets/javascripts/controllers/comics.js.coffee
app/assets/javascripts/controllers/folders.js.coffee
app/assets/javascripts/controllers/ground_colors.js.coffee
app/assets/javascripts/controllers/ground_pictures.js.coffee
app/assets/javascripts/controllers/home.js.coffee
app/assets/javascripts/controllers/license_groups.js.coffee
app/assets/javascripts/controllers/licenses.js.coffee
app/assets/javascripts/controllers/original_pictures.js.coffee
app/assets/javascripts/controllers/panel_pictures.js.coffee
app/assets/javascripts/controllers/panels.js.coffee
app/assets/javascripts/controllers/pictures.js.coffee
app/assets/javascripts/controllers/resource_pictures.js.coffee
app/assets/javascripts/controllers/scroll_panels.js.coffee
app/assets/javascripts/controllers/scrolls.js.coffee
app/assets/javascripts/controllers/sheet_panels.js.coffee
app/assets/javascripts/controllers/sheets.js.coffee
app/assets/javascripts/controllers/speech_balloon_templates.js.coffee
app/assets/javascripts/controllers/speech_balloons.js.coffee
app/assets/javascripts/controllers/speeches.js.coffee
app/assets/javascripts/controllers/stories.js.coffee
app/assets/javascripts/controllers/story_sheets.js.coffee
app/assets/javascripts/controllers/system_pictures.js.coffee
app/assets/javascripts/controllers/writing_formats.js.coffee
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/editor/panel_editor/dock.js.coffee
app/assets/javascripts/locmare/form.js.coffee
app/assets/javascripts/locmare/form/extend_field.js.coffee
app/assets/javascripts/locmare/form/field.js.coffee
app/assets/javascripts/models/license.js.coffee
app/assets/javascripts/models/panel.js.coffee
app/assets/javascripts/peta/item.js.coffee
app/assets/javascripts/peta/root.js.coffee
app/assets/javascripts/pettanr/proxy.js.coffee
app/assets/javascripts/views/history.js.coffee

index c1be8b7..bee7d7b 100644 (file)
@@ -66,6 +66,7 @@ class Pettanr.AppController
       profiler.render()\r
       @trigger('ready', profiler)\r
       @trigger('title', @params)\r
+      @trigger('done', @params)\r
   \r
   set_new: () ->\r
     @set_model()\r
@@ -73,12 +74,14 @@ class Pettanr.AppController
     @item.boosts 'post'\r
     # Backbone.Model has defaults property\r
     #@item.supply_default()\r
+    Pettanr.History.lock_url = @item.new_url()\r
   \r
   set_edit: () ->\r
     @set_model()\r
     @item = new @my_model_class({id: @params['id']})\r
     @item.fetch({cache: true}).done =>\r
       @item.boosts 'post'\r
+      Pettanr.History.lock_url = @item.edit_url()\r
       @render_form()\r
   \r
   render_form: () ->\r
index ca3317d..f4fd833 100644 (file)
@@ -3,6 +3,7 @@ class Pettanr.ArtistsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -13,6 +14,7 @@ class Pettanr.ArtistsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -26,11 +28,13 @@ class Pettanr.ArtistsController extends Pettanr.AppController
   \r
   new: () ->\r
     @trigger('title', @params)\r
-    @form_new(@create)\r
+    @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
-    @form_edit(@update)\r
+    @form_new()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @listenTo(@form, 'success', @post_success)\r
index 01cbdc5..631cb87 100644 (file)
@@ -3,6 +3,7 @@ class Pettanr.AuthorsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -13,6 +14,7 @@ class Pettanr.AuthorsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -26,11 +28,13 @@ class Pettanr.AuthorsController extends Pettanr.AppController
   \r
   new: () ->\r
     @trigger('title', @params)\r
-    @form_new(@create)\r
+    @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
-    @form_edit(@update)\r
+    @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @listenTo(@form, 'success', @post_success)\r
index 3a73435..1f8539f 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.BalloonsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_speech_balloon: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -21,6 +24,7 @@ class Pettanr.BalloonsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -32,7 +36,3 @@ class Pettanr.BalloonsController extends Pettanr.AppController
   \r
   count: () ->\r
   \r
-  new: () ->\r
-  \r
-  edit: () ->\r
-  \r
index 1960a7a..6ef36ff 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_comic: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_story: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -25,6 +29,7 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -39,10 +44,12 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite(@operators)\r
index 3d1ffc2..85c805a 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.ComicsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_story: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -21,6 +24,7 @@ class Pettanr.ComicsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -34,11 +38,13 @@ class Pettanr.ComicsController extends Pettanr.AppController
   \r
   new: () ->\r
     @trigger('title', @params)\r
-    @form_new(@create)\r
+    @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
-    @form_edit(@update)\r
+    @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite({operators: @operators})\r
index e0c6132..7e32738 100644 (file)
@@ -3,12 +3,14 @@ class Pettanr.FoldersController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   root: () ->\r
     @set_model()\r
     @item = new Pettanr.Folder.Root()\r
     @item.fetch({cache: true}).done =>\r
       @children_html()\r
+      @trigger('done', @params)\r
   \r
   show_html_format: (format) -> \r
   \r
@@ -23,6 +25,7 @@ class Pettanr.FoldersController extends Pettanr.AppController
         operators: @operators\r
       })\r
       @trigger('ready', filer)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     if @params['format'] == 'prof'\r
@@ -46,10 +49,12 @@ class Pettanr.FoldersController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   # for remote folder\r
   refresh: (view) ->\r
@@ -58,6 +63,6 @@ class Pettanr.FoldersController extends Pettanr.AppController
   title: (params, str) ->\r
     @trigger('title', params, str)\r
   \r
-  done: (url) ->\r
-    @trigger('done', url)\r
+  done: (params) ->\r
+    @trigger('done', params)\r
   \r
index 02cc6a0..4fc6fe9 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.GroundColorsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -21,6 +24,7 @@ class Pettanr.GroundColorsController extends Pettanr.AppController
       })\r
       # show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -32,7 +36,3 @@ class Pettanr.GroundColorsController extends Pettanr.AppController
   \r
   count: () ->\r
   \r
-  new: () ->\r
-  \r
-  edit: () ->\r
-  \r
index 7be455b..fca4bd5 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -22,6 +25,7 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController
       })\r
       # show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -33,7 +37,3 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController
   \r
   count: () ->\r
   \r
-  new: () ->\r
-  \r
-  edit: () ->\r
-  \r
index 74c444c..91b5e61 100644 (file)
@@ -11,66 +11,82 @@ class Pettanr.HomeController extends Pettanr.AppController
   scrolls: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   scroll_panels: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   comics: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   comic_stories: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   stories: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   story_sheets: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   sheets: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   sheet_panels: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   panels: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   panel_pictures: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   speech_balloons: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   balloons: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   speeches: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   ground_pictures: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   ground_colors: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   resource_pictures: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   scrolls_count: () ->\r
     @list_count()\r
index d30c628..eda7909 100644 (file)
@@ -3,6 +3,7 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -13,6 +14,7 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -27,8 +29,10 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
index 84752e2..ede3ff1 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.LicensesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_icense_group: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_system_picture: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -21,6 +24,7 @@ class Pettanr.LicensesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -35,10 +39,12 @@ class Pettanr.LicensesController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @listenTo(@form, 'success', @post_success)\r
index d9e7f84..39cbf0b 100644 (file)
@@ -3,10 +3,12 @@ class Pettanr.OriginalPicturesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   history: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -17,6 +19,7 @@ class Pettanr.OriginalPicturesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
index 1ecc26f..5d9c24a 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -21,6 +24,7 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController
       })\r
       # show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -32,7 +36,3 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController
   \r
   count: () ->\r
   \r
-  new: () ->\r
-  \r
-  edit: () ->\r
-  \r
index ffea984..6d8819d 100644 (file)
@@ -3,22 +3,27 @@ class Pettanr.PanelsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_scroll: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_sheet: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_speech_balloon_template: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () ->\r
     @item = new Pettanr.Panel.WithElements({id: @item.get('id')}) # retake panel for 'with_elements' mode\r
@@ -31,6 +36,7 @@ class Pettanr.PanelsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
       false\r
   \r
   show: () ->\r
@@ -46,7 +52,9 @@ class Pettanr.PanelsController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @set_new()\r
+    Pettanr.History.lock_url = @item.new_url()\r
     @editor()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
@@ -54,20 +62,25 @@ class Pettanr.PanelsController extends Pettanr.AppController
     panel = new Pettanr.Panel({id: @params['id']})\r
     @item = panel.with_elements()\r
     @item.fetch({cache: false}).done =>\r
-      editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
-      #editor.render()\r
-      @trigger('ready', editor)\r
+      Pettanr.History.lock_url = @item.edit_url()\r
+      @editor()\r
+      @trigger('done', @params)\r
   \r
   editor: () ->\r
+    editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
+    editor.render()\r
+    @trigger('ready', editor)\r
   \r
   create: () ->\r
-    @form.item.overwrite({operators: @operators})\r
+    # @form is editor\r
+    @form.panel.overwrite({operators: @operators})\r
     @listenTo(@form, 'success', @post_success)\r
     @listenTo(@form, 'fail', @post_fail)\r
     @form.save()\r
   \r
   update: () ->\r
-    @form.item.overwrite({operators: @operators})\r
+    # @form is editor\r
+    @form.panel.overwrite({operators: @operators})\r
     @listenTo(@form, 'success', @post_success)\r
     @listenTo(@form, 'fail', @post_fail)\r
     @form.save()\r
index 8d81b95..365aa3f 100644 (file)
@@ -3,10 +3,12 @@ class Pettanr.PicturesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_artist: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -17,6 +19,7 @@ class Pettanr.PicturesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
index 98c8f74..be46b2d 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.ResourcePicturesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_artist: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_license_group: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_license: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -25,6 +29,7 @@ class Pettanr.ResourcePicturesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
index a4329d3..db47b98 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_scroll: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -25,6 +29,7 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -34,19 +39,17 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController
       when 'html'\r
         @show_html()\r
   \r
-  play: () ->\r
-    @set_play()\r
-    @play_list()\r
-  \r
   count: () ->\r
   \r
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite(@operators)\r
index 09068d4..35c6ee5 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.ScrollsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -21,6 +24,7 @@ class Pettanr.ScrollsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -43,14 +47,17 @@ class Pettanr.ScrollsController extends Pettanr.AppController
         show.render()\r
         @trigger('ready', show)\r
       )\r
+      @trigger('done', @params)\r
   \r
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite({operators: @operators})\r
index 74d673f..46230fa 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_sheet: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -25,6 +29,7 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -39,10 +44,12 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite(@operators)\r
index 59e1a8e..d0b3c9e 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.SheetsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_story: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -25,6 +29,7 @@ class Pettanr.SheetsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -39,10 +44,12 @@ class Pettanr.SheetsController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite({operators: @operators})\r
index 72a9be8..c1bdb8d 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_system_picture: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -21,6 +24,7 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -35,10 +39,12 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @listenTo(@form, 'success', @post_success)\r
index 0207dea..ea01d4e 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_panel: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_speech_balloon_template: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -25,6 +29,7 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController
       })\r
       #  show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -36,11 +41,3 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController
   \r
   count: () ->\r
   \r
-  new: () ->\r
-    @trigger('title', @params)\r
-    @form_new()\r
-  \r
-  edit: () ->\r
-    @trigger('title', @params)\r
-    @form_edit()\r
-  \r
index ff659df..ee7715a 100644 (file)
@@ -3,14 +3,17 @@ class Pettanr.SpeechesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_speech_balloon: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -21,6 +24,7 @@ class Pettanr.SpeechesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -32,7 +36,3 @@ class Pettanr.SpeechesController extends Pettanr.AppController
   \r
   count: () ->\r
   \r
-  new: () ->\r
-  \r
-  edit: () ->\r
-  \r
index d4fc2c5..8b613b6 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.StoriesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_comic: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_sheet: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -25,6 +29,7 @@ class Pettanr.StoriesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -38,11 +43,13 @@ class Pettanr.StoriesController extends Pettanr.AppController
   \r
   new: () ->\r
     @trigger('title', @params)\r
-    @form_new(@create)\r
+    @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
-    @form_edit(@update)\r
+    @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite({operators: @operators})\r
index a460b62..999d5a9 100644 (file)
@@ -3,18 +3,22 @@ class Pettanr.StorySheetsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_story: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_sheet: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -25,6 +29,7 @@ class Pettanr.StorySheetsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -39,10 +44,12 @@ class Pettanr.StorySheetsController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @form.item.overwrite(@operators)\r
index 473b745..0a86f0c 100644 (file)
@@ -3,6 +3,7 @@ class Pettanr.SystemPicturesController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @trigger('title', @params)\r
@@ -13,6 +14,7 @@ class Pettanr.SystemPicturesController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
index fc4370a..fd1593e 100644 (file)
@@ -3,10 +3,12 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController
   index: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_system_picture: () ->\r
     @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
@@ -17,6 +19,7 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController
       })\r
       show.render()\r
       @trigger('ready', show)\r
+      @trigger('done', @params)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -31,10 +34,12 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController
   new: () ->\r
     @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
     @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   create: () ->\r
     @listenTo(@form, 'success', @post_success)\r
index 826a8cb..24fbd6a 100644 (file)
@@ -5,6 +5,7 @@ class Editor.PanelEditor extends Backbone.View
   initialize: (options) ->\r
     @panel = options.root_item\r
     @operators = options.operators\r
+    @item = @panel\r
     @dialog = new Editor.PanelEditor.Dialog({\r
       parent: this\r
     })\r
@@ -21,8 +22,7 @@ class Editor.PanelEditor extends Backbone.View
       element.fetch({cache: true}).done =>\r
         @add_element(element)\r
     @body.on('panel:resize', @panel_resize)\r
-    @listenTo(@dock, 'put', @put)\r
-    Pettanr.History.lock_url = @panel.edit_url()\r
+    @listenTo(@dock, 'http_post', @http_post)\r
   \r
   add_element: (element) ->\r
     panel_element_view = @body.add_element(element)\r
@@ -54,7 +54,6 @@ class Editor.PanelEditor extends Backbone.View
     rb = new Tag.RowBreak()\r
     this.$el.append(rb.render().el)\r
     @dock.init_tabs()\r
-    window.editor = this  # enable leave cancel flag on unsave\r
     @dock.$el.tabs()\r
     this\r
   \r
@@ -69,15 +68,22 @@ class Editor.PanelEditor extends Backbone.View
     @dialog.$el.dialog('destroy')\r
     Pettanr.History.lock_url = null  # release editor\r
   \r
-  put: () ->\r
-    success = (data, textStatus) =>\r
-      Pettanr.History.lock_url = null  # release editor\r
-      @dock.valid()\r
-    error = (data, textStatus) =>\r
-      @dock.invalid()\r
-    @dock.save({success: success, error: error})\r
+  http_post: (url, dock) ->\r
+    @trigger('http_post', url, this)  # send editor\r
+  \r
+  save: () ->\r
+    @listenTo(@panel, 'save:success', @post_success)\r
+    @listenTo(@panel, 'save:fail', @post_fail)\r
+    @panel.save(@dock.save_data())\r
     false\r
   \r
+  post_success: (model, response) ->\r
+    Pettanr.History.lock_url = null  # release editor\r
+    @trigger('success', model, response)\r
+  \r
+  post_fail: (model, response) ->\r
+    @trigger('fail', response)\r
+  \r
   root_item: () ->\r
     @panel\r
   \r
index 5a70256..63f6ee3 100644 (file)
@@ -40,7 +40,7 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
         parent: @scenario_bay\r
       })\r
     )\r
-    @listenTo(@root_bay.body, 'put', @put)\r
+    @listenTo(@root_bay.body, 'http_post', @http_post)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -76,25 +76,15 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
   dom_labels_class: () ->\r
     @dom_class() + '-labels'\r
   \r
-  put: () ->\r
-    @trigger('put')\r
+  http_post: (url, root_form) ->\r
+    @trigger('http_post', url, this)  # send dock\r
     false\r
   \r
-  save: (options) ->\r
-    attrs = @save_data()\r
-    @root_bay.body.form.save(attrs, options)\r
-  \r
   save_data: () ->\r
     attrs = @root_bay.save_data()\r
     _.extend(attrs, @element_bay.save_data())\r
     attrs\r
   \r
-  valid: () ->\r
-    @root_bay.body.form.valid()\r
-  \r
-  invalid: () ->\r
-    @root_bay.body.form.invalid()\r
-  \r
 class Editor.EditorModule.DockModule.RootBay extends Editor.EditorModule.DockModule.SimpleBay\r
   \r
   render: () ->\r
@@ -118,7 +108,7 @@ class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.Editor
       operators: @dock().editor().operators,\r
       action: '/' + @root_item().table_name() + '/' + Pettanr.to_s(@root_item().get('id'))\r
     })\r
-    @listenTo(@form, 'put', @put)\r
+    @listenTo(@form, 'http_post', @http_post)\r
   \r
   render: () ->\r
     super()\r
@@ -135,8 +125,8 @@ class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.Editor
   root_item: () ->\r
     @dock().root_item()\r
   \r
-  put: () ->\r
-    @trigger('put')\r
+  http_post: (url, root_form) ->\r
+    @trigger('http_post', url, root_form)\r
     false\r
   \r
 class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.DockModule.BoardBay\r
index 33bc7c2..419fbbe 100644 (file)
@@ -146,6 +146,7 @@ class Locmare.Form extends Locmare.FormBase
   \r
   post: () ->\r
     _.each @fields, (field) =>\r
+      field.fold() if field.is_extend()\r
       @item.set(field.field_name, field.val())\r
     @item.unset('id')  # isNew use flag that id attr set\r
     @trigger('http_post', @item.create_url(), this)\r
@@ -153,17 +154,15 @@ class Locmare.Form extends Locmare.FormBase
   \r
   put: () ->\r
     _.each @fields, (field) =>\r
+      field.fold() if field.is_extend()\r
       @item.set(field.field_name, field.val())\r
     @trigger('http_post', @item.update_url(), this)\r
     return false\r
   \r
-  save: (attrs = null, options = null) ->\r
+  save: () ->\r
     @listenTo(@item, 'save:success', @success)\r
     @listenTo(@item, 'save:fail', @fail)\r
-    if attrs\r
-      @item.save(attrs, options)\r
-    else\r
-      @item.save()\r
+    @item.save()\r
   \r
   success: (model, response) ->\r
     @trigger('success', model, response)\r
@@ -171,13 +170,6 @@ class Locmare.Form extends Locmare.FormBase
   fail: (model, response) ->\r
     @trigger('fail', response)\r
   \r
-  valid: () ->\r
-    window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
-    return false\r
-  \r
-  invalid: () ->\r
-    alert('invalid')\r
-  \r
   save_data: () ->\r
     @item.my_class().child_models()\r
     attrs = {}\r
@@ -202,6 +194,7 @@ class Locmare.ExtendForm extends Locmare.FormBase
     @parent = options.parent\r
     @field_name = options.field_name\r
     super(options)\r
+    @listenTo(@item, 'input', @input)\r
     @field = new Locmare.FormModule.Field({\r
       form: @parent, \r
       field_name: @field_name, \r
@@ -212,6 +205,7 @@ class Locmare.ExtendForm extends Locmare.FormBase
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@label.render().el) if not @label.hidden()\r
     @div_fields = new Locmare.FormModule.Fields({\r
       fields: @fields\r
     })\r
@@ -221,6 +215,21 @@ class Locmare.ExtendForm extends Locmare.FormBase
   refresh: () ->\r
     @field.refresh()\r
   \r
+  input: (field) ->\r
+    a = {}\r
+    a[@field_name] = @val()\r
+    @parent.item.set(a, {silent: true})\r
+    @parent.item.trigger('input:' + @field_name + ':' + field)\r
+    @parent.item.trigger('input:' + @field_name)\r
+    @parent.item.trigger('input')\r
+  \r
+  fold: () ->\r
+    _.each @fields, (field) =>\r
+      @item.set(field.field_name, field.val())\r
+  \r
+  val: () ->\r
+    JSON.stringify(@item.attributes)\r
+  \r
   init_fields: () ->\r
     _.each @manifest.field_names, (field_name) =>\r
       field_manifest = @manifest.fields[field_name]\r
@@ -234,6 +243,9 @@ class Locmare.ExtendForm extends Locmare.FormBase
     # parent is field\r
     @parent.form_field_name(@field_name)  + '[' + extend_field_name + ']'\r
   \r
+  is_extend: () ->\r
+    true\r
+  \r
 class Locmare.FormModule\r
 class Locmare.FormModule.Fields extends Backbone.View\r
   tagName: 'div'\r
index 4f450d2..4ac2a05 100644 (file)
@@ -8,35 +8,43 @@ class Locmare.FormModule.ExtendField extends Backbone.View
     @field_manifest = options.field_manifest\r
     @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
     @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
-    @helpers = {}\r
-    _.each @field_manifest.helpers, (helper_manifest, helper_name) =>\r
-      @helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(this, helper_manifest)\r
+    @helpers = new Locmare.FormModule.FieldModule.Helpers({field: this, field_manifest: @field_manifest})\r
     @rb = @row_break()\r
-    @options = {'data-model': @field_manifest.item_name()}\r
+    @on('change', @change)\r
+    item = @item()\r
+    @listenTo(item, 'resize', @refresh)\r
+    @listenTo(item, 'move', @refresh)\r
+    @listenTo(item, 'sort', @refresh)\r
   \r
   render: () ->\r
     this.$el.html('')\r
     this.$el.append(@label.render().el) if not @label.hidden()\r
     this.$el.append(@tag.render().el)\r
-    _.each @helpers, (helper) =>\r
-      this.$el.append(helper.render().el)\r
-    this.$el.append(@rb.render().el) if @rb\r
+    this.$el.append(@helpers.render().el)\r
     this\r
   \r
-  mounted: () ->\r
-    if @form.mounted\r
-      0\r
-    else\r
-      1\r
-  \r
-  mount_option: () ->\r
-    {'mount': @mounted()}\r
+  refresh: () ->\r
+    @tag.render()\r
+    @helpers.refresh()\r
   \r
+  change: () ->\r
+    @set(@val(), {silent: true})\r
+    @item().trigger('input:' + @field_name)\r
+    @item().trigger('input', this)\r
+    \r
   item: () ->\r
     @form.item\r
   \r
+  val: () ->\r
+    @tag.val()\r
+  \r
   value: () ->\r
-    @item().get(@field_manifest.column_name)\r
+    @item().get(@field_manifest.column_name())\r
+  \r
+  set: (v, opt = null) ->\r
+    a = {}\r
+    a[@field_manifest.column_name()] = v\r
+    @item().set(a, opt)\r
   \r
   options: (tag_options = {}) ->\r
     tag_options\r
index eb5f552..3795c02 100644 (file)
@@ -33,6 +33,9 @@ class Locmare.FormModule.Field extends Backbone.View
     @item().trigger('input:' + @field_name)\r
     @item().trigger('input')\r
     \r
+  is_extend: () ->\r
+    false\r
+  \r
   mounted: () ->\r
     if @form.mounted\r
       0\r
index d01e3b4..6d888e6 100644 (file)
@@ -27,7 +27,8 @@ class Pettanr.License extends Peta.SystemResource
     i.fetch({cache: true}).done =>\r
       caption = i.escape('caption') + '/' + @escape('caption')\r
       @trigger('ready:caption', caption)\r
-  \r
+  is_own: () ->\r
+    true\r
   initialize: () ->\r
     if @id\r
       @url = @url + @id\r
index 834bf3f..5c489b8 100644 (file)
@@ -9,6 +9,8 @@ class Pettanr.Panel extends Peta.Root
   \r
   defaults: {\r
     id: null,\r
+    width: 500,\r
+    height: 300,\r
     border: 2,\r
     publish: 0\r
   } \r
@@ -77,14 +79,20 @@ class Pettanr.Panel.WithElements extends Pettanr.Panel
     @url = @my_url() + '?with_elements=true'\r
     super(options)\r
   \r
-  save: (attrs, options = {}) ->\r
+  save: (attrs) ->\r
     @url = @my_url()\r
-    options.attrs = {panel: attrs}\r
     method = if @isNew()\r
       'create'\r
     else\r
       'update'\r
-    xhr = @sync(method, this, options)\r
+    _this = this\r
+    xhr = @sync(method, this, {\r
+      attrs: {panel: attrs},\r
+      success: (model, response, options) =>\r
+        _this.trigger('save:success', _this, response)\r
+      error: (model, response, options) =>\r
+        _this.trigger('save:fail', _this, response)\r
+    })\r
     xhr\r
   \r
   destroy: (options) ->\r
index bce93d9..ac4a100 100644 (file)
@@ -160,6 +160,9 @@ class Peta.Item extends Backbone.Model
   prof_url: () ->\r
     Pettanr.url(@table_name(), 'show', {id: @get('id'), format: 'prof'})\r
   \r
+  new_url: () ->\r
+    Pettanr.url(@table_name(), 'new', {})\r
+  \r
   create_url: () ->\r
     Pettanr.url(@table_name(), 'create', {})\r
   \r
index ebc5522..766c038 100644 (file)
@@ -4,7 +4,7 @@ class Peta.Root extends Peta.ElementNestableContent
     r = []\r
     _.each @my_class().child_models(), (k) =>\r
       l = @element_items(k)\r
-      r = r.concat(l)\r
+      r = r.concat(l || [])\r
     r\r
   \r
   zorderd_elements: () ->\r
index f9f6465..ca85d26 100644 (file)
@@ -18,9 +18,9 @@ class Pettanr.Proxy
     controller = Pettanr.AppController.new2(params, form, @operators)\r
     @listenTo(controller, 'ready', @ready)\r
     @listenTo(controller, 'title', @title)\r
+    @listenTo(controller, 'done', @done)\r
     action_name = params['action']\r
     controller[action_name]()\r
-    @trigger('done', params)\r
   \r
   ready: (view) ->\r
     @trigger('ready', view)\r
@@ -28,6 +28,9 @@ class Pettanr.Proxy
   title: (params, str) ->\r
     @trigger('title', params, str)\r
   \r
+  done: (params) ->\r
+    @trigger('done', params)\r
+  \r
   deny: (params, form, safe_url) ->\r
     @trigger('deny', params, form, safe_url)\r
   \r
index 6225c48..8c280db 100644 (file)
@@ -103,6 +103,7 @@ class Pettanr.Views.History.List extends Backbone.View
     @buttons.push(\r
       new Pettanr.Views.History.List.Log({params: params, options: options})\r
     )\r
+    @buttons.shift() if @buttons.length > 10\r
     @cursor = @buttons.length - 1\r
     @render()\r
   \r
@@ -130,7 +131,9 @@ class Pettanr.Views.History.List.Log extends Backbone.View
     @options = options.options\r
     # get caption and icon\r
     @item_name = Manifest.manifest().singularize(@params['controller'])\r
-    @model = Manifest.item_name_to_model(@item_name)\r
+    @controller = Manifest.manifest().controllers[@params['controller']]\r
+    @action = @controller.actions[@params['action']]\r
+    @model = Manifest.manifest().models[@action.item_name].classify()\r
   \r
   render: () ->\r
     this.$el.html('')\r