OSDN Git Service

add app body
authoryasushiito <yas@pen-chan.jp>
Tue, 27 Jan 2015 23:48:02 +0000 (08:48 +0900)
committeryasushiito <yas@pen-chan.jp>
Tue, 27 Jan 2015 23:48:02 +0000 (08:48 +0900)
52 files changed:
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_picture_license_groups.js.coffee
app/assets/javascripts/controllers/original_picture_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/models/ground_color.js.coffee
app/assets/javascripts/models/ground_picture.js.coffee
app/assets/javascripts/models/speech_balloon.js.coffee
app/assets/javascripts/peta/binder.js.coffee
app/assets/javascripts/peta/item.js.coffee
app/assets/javascripts/pettanr.js.coffee
app/assets/javascripts/routes.js.coffee
app/assets/javascripts/tags.js.coffee
app/assets/javascripts/views/common.js.coffee
app/assets/javascripts/views/ground_colors/show.js.coffee
app/assets/javascripts/views/ground_pictures/show.js.coffee
app/assets/javascripts/views/panel_pictures/show.js.coffee
app/assets/javascripts/views/panels/body.js.coffee
app/assets/javascripts/views/panels/show.js.coffee
app/assets/javascripts/views/pictures/credit.js.coffee
app/assets/javascripts/views/pictures/credit_icon.js.coffee
app/assets/javascripts/views/resource_pictures/credit.js.coffee
app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee
app/assets/javascripts/views/scrolls/show.js.coffee
app/assets/javascripts/views/show.js.coffee
app/assets/javascripts/views/speech_balloons/show.js.coffee
app/assets/javascripts/views/top/account.js.coffee

index 999793b..e597b41 100644 (file)
@@ -1,18 +1,18 @@
 class Pettanr.ArtistsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('name'))\r
-      view = new Pettanr.Views.Artist.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('name'))\r
+      show = new Pettanr.Views.Artist.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -25,11 +25,11 @@ class Pettanr.ArtistsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 240772c..629b6cb 100644 (file)
@@ -1,18 +1,18 @@
 class Pettanr.AuthorsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('name'))\r
-      view = new Pettanr.Views.Author.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('name'))\r
+      show = new Pettanr.Views.Author.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -25,11 +25,11 @@ class Pettanr.AuthorsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index d09e6d8..f33d702 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.BalloonsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_speech_balloon: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.Balloon.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.Balloon.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index b0e760a..60c8426 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.ComicStoriesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_comic: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_story: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.ComicStory.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.ComicStory.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -37,11 +37,11 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 1cbca39..8dc41d0 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.ComicsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_story: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('title'))\r
-      view = new Pettanr.Views.Comic.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('title'))\r
+      show = new Pettanr.Views.Comic.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -33,11 +33,11 @@ class Pettanr.ComicsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index be3225d..5fc6bef 100644 (file)
@@ -1,11 +1,11 @@
 class Pettanr.FoldersController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   root: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @set_model()\r
     @item = new Pettanr.Folder.Root()\r
     @item.fetch({cache: true}).done =>\r
@@ -14,7 +14,7 @@ class Pettanr.FoldersController extends Pettanr.AppController
   show_html_format: (format) -> \r
   \r
   children_html: () -> \r
-    @redraw_title(@params, @item.get('name'))\r
+    @trigger('retitle', @params, @item.get('name'))\r
     collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
     collection.fetch({cache: true}).done =>\r
       f = new Locmare.Filer({\r
@@ -23,7 +23,7 @@ class Pettanr.FoldersController extends Pettanr.AppController
         pager: null, \r
         operators: window.operators\r
       })\r
-      $("#pettanr").html(f.render().el)\r
+      @trigger('ready', f)\r
   \r
   show: () ->\r
     if @params['format'] == 'prof'\r
@@ -46,10 +46,10 @@ class Pettanr.FoldersController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
index a06b298..ab28395 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.GroundColorsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.GroundColor.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.GroundColor.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      #view.render()\r
+      # show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 41e10aa..9e8dcf9 100644 (file)
@@ -1,27 +1,27 @@
 class Pettanr.GroundPicturesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.GroundPicture.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.GroundPicture.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      #view.render()\r
+      # show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 9a8aeea..cacc223 100644 (file)
@@ -9,67 +9,67 @@ class Pettanr.HomeController extends Pettanr.AppController
     view.render()\r
   \r
   scrolls: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   scroll_panels: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   comics: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   comic_stories: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   stories: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   story_sheets: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   sheets: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   sheet_panels: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   panels: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   panel_pictures: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   speech_balloons: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   balloons: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   speeches: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   ground_pictures: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   ground_colors: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   resource_pictures: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   scrolls_count: () ->\r
index ec4cfc8..a7e98f9 100644 (file)
@@ -1,18 +1,18 @@
 class Pettanr.LicenseGroupsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.LicenseGroup.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.LicenseGroup.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -25,11 +25,11 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 807471e..cd42803 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.LicensesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_icense_group: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_system_picture: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.License.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.License.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -33,11 +33,11 @@ class Pettanr.LicensesController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 96ab794..9fd9529 100644 (file)
@@ -1,6 +1,6 @@
 class Pettanr.OriginalPictureLicenseGroupsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
index 0845c9d..c2d01c4 100644 (file)
@@ -1,6 +1,6 @@
 class Pettanr.OriginalPictureLicensesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
index d014a07..39816eb 100644 (file)
@@ -1,22 +1,22 @@
 class Pettanr.OriginalPicturesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   history: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.OriginalPicture.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.OriginalPicture.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-    view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 832aee1..c083c89 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.PanelPicturesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.PanelPicture.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.PanelPicture.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      #view.render()\r
+      # show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 7c8b9ac..9223df7 100644 (file)
@@ -1,63 +1,63 @@
 class Pettanr.PanelsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_scroll: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_sheet: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_speech_balloon_template: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
-  show_html: (el) ->\r
+  show_html: () ->\r
     @item = new Pettanr.Panel({id: @item.get('id')}, {with_elements: true}) # retake panel for 'with_elements' mode\r
     @item.fetch({cache: false}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.Panel.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.Panel.Show({\r
         panel: @item,\r
         operators: @operators,\r
         spot: null\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
       false\r
   \r
-  show: (el) ->\r
+  show: () ->\r
     @set_show()\r
     switch @params['format']\r
       when 'prof'\r
-        @show_prof(el)\r
+        @show_prof()\r
       else\r
-        @show_html(el)\r
+        @show_html()\r
   \r
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @set_new()\r
     @editor()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @set_model()\r
     @item = new Pettanr.Panel({id: @params['id']}, {with_elements: true})\r
     @item.fetch({cache: false}).done =>\r
-      @editor()\r
+      editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
+      editor.render()\r
+      @trigger('ready', editor)\r
   \r
   editor: () ->\r
-    editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
-    $("#pettanr").html(editor.render().el)\r
   \r
   create: () ->\r
   \r
index 9073a6a..ee4066f 100644 (file)
@@ -1,22 +1,22 @@
 class Pettanr.PicturesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_artist: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.Picture.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.Picture.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 2df8256..a39e24f 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.ResourcePicturesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_artist: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_license_group: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_license: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.ResourcePicture.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.ResourcePicture.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index c0fa60d..946f47b 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.ScrollPanelsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_scroll: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.ScrollPanel.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.ScrollPanel.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -41,11 +41,11 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 5b6fcbd..078fbe4 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.ScrollsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('title'))\r
-      view = new Pettanr.Views.Scroll.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('title'))\r
+      show = new Pettanr.Views.Scroll.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -34,22 +34,22 @@ class Pettanr.ScrollsController extends Pettanr.AppController
     @set_play()\r
     @item.fetch({cache: true}).done =>\r
       @list.open(() => \r
-        @redraw_title(@params, @item.get('title'))\r
-        view = new Pettanr.Views.Scroll.Play({\r
-          el: "#pettanr",\r
+        @trigger('retitle', @params, @item.get('title'))\r
+        show = new Pettanr.Views.Scroll.Play({\r
           item: @item,\r
           list: @list,\r
           operators: @operators\r
         })\r
-        view.render()\r
+        show.render()\r
+        @trigger('ready', show)\r
       )\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 3a1dd2e..3291f88 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.SheetPanelsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_sheet: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.SheetPanel.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.SheetPanel.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -37,11 +37,11 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 0c7da59..e9c02d1 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.SheetsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_story: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.Sheet.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.Sheet.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -37,11 +37,11 @@ class Pettanr.SheetsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 1025cf1..2ab81b7 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_system_picture: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.SpeechBalloonTemplate.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.SpeechBalloonTemplate.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -33,11 +33,11 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index eacb165..0287694 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.SpeechBalloonsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_panel: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_speech_balloon_template: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.SpeechBalloon.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.SpeechBalloon.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      #view.render()\r
+      #  show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -37,9 +37,11 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 68aa806..b6dab9c 100644 (file)
@@ -1,26 +1,26 @@
 class Pettanr.SpeechesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_speech_balloon: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.Speech.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.Speech.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 13fb5fc..207acc3 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.StoriesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_comic: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_sheet: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('title'))\r
-      view = new Pettanr.Views.Story.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('title'))\r
+      show = new Pettanr.Views.Story.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -37,11 +37,11 @@ class Pettanr.StoriesController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index a6d328b..4d2b748 100644 (file)
@@ -1,30 +1,30 @@
 class Pettanr.StorySheetsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_author: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_story: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_sheet: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.StorySheet.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.StorySheet.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -37,11 +37,11 @@ class Pettanr.StorySheetsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index b22af43..c47ddba 100644 (file)
@@ -1,18 +1,18 @@
 class Pettanr.SystemPicturesController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @item.fetch({cache: true}).done =>\r
-      view = new Pettanr.Views.SystemPicture.Show({\r
-        el: "#pettanr",\r
+      show = new Pettanr.Views.SystemPicture.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
index 8ae4b8c..067990e 100644 (file)
@@ -1,22 +1,22 @@
 class Pettanr.WritingFormatsController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   by_system_picture: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   show_html: () -> \r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.get('caption'))\r
-      view = new Pettanr.Views.WritingFormat.Show({\r
-        el: "#pettanr",\r
+      @trigger('retitle', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.WritingFormat.Show({\r
         item: @item,\r
         operators: @operators\r
       })\r
-      view.render()\r
+      show.render()\r
+      @trigger('ready', show)\r
   \r
   show: () ->\r
     @set_show()\r
@@ -29,11 +29,11 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_new()\r
   \r
   edit: () ->\r
-    @redraw_title(@params)\r
+    @trigger('retitle', @params)\r
     @form_edit()\r
   \r
   create: () ->\r
index 826a53f..a6926e7 100644 (file)
@@ -14,7 +14,7 @@ class Editor.PanelEditor extends Backbone.View
       spot: null\r
     })\r
     @dock = new Editor.PanelEditor.Dock({parent: this})\r
-    @credits = new Pettanr.Views.Panel.Show.Credits({pictures: {}})\r
+    @credits = new Pettanr.Views.Panel.ShowModule.Credits({pictures: {}})\r
     \r
     list = @panel.zorderd_elements()\r
     _.each list, (element) =>\r
index 09cfeaf..254d97d 100644 (file)
@@ -15,8 +15,8 @@ class Pettanr.GroundColor extends Peta.Element
   @has_picture: () ->\r
     false\r
   \r
-  panel: () ->\r
-    new Pettanr.Panel({id: @get('panel_id')})\r
+  panel: (options = {}) ->\r
+    new Pettanr.Panel({id: @get('panel_id')}, options)\r
   \r
   element_face: () ->\r
     new Pettanr.Views.GroundColor.ElementFace({element: this})\r
index ec7bf15..251b8ab 100644 (file)
@@ -17,8 +17,8 @@ class Pettanr.GroundPicture extends Peta.Element
   @repeat_texts: () -> \r
     ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']\r
   \r
-  panel: () ->\r
-    new Pettanr.Panel({id: @get('panel_id')})\r
+  panel: (options = {}) ->\r
+    new Pettanr.Panel({id: @get('panel_id')}, options)\r
   \r
   picture: () ->\r
     new Pettanr.Picture({id: @get('picture_id')})\r
index 341fc01..0294f03 100644 (file)
@@ -13,8 +13,8 @@ class Pettanr.SpeechBalloon extends Peta.Element
     t: null\r
   } \r
   \r
-  panel: () ->\r
-    new Pettanr.Panel({id: @get('panel_id')})\r
+  panel: (options = {}) ->\r
+    new Pettanr.Panel({id: @get('panel_id')}, options)\r
   \r
   speech_balloon_template: () ->\r
     new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')})\r
index 1aa35a0..e56a3bd 100644 (file)
@@ -12,6 +12,8 @@ class Peta.Binder extends Peta.Content
   \r
   # Instance Methods\r
   \r
+  play_url: () ->\r
+    Pettanr.url(@table_name(), 'play', {id: @get('id')})\r
   \r
   @test: () ->\r
     super()\r
index fa9fa2a..70c2056 100644 (file)
@@ -145,6 +145,21 @@ class Peta.Item extends Backbone.Model
   icon_view: (half) ->\r
     new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half})\r
   \r
+  index_url: () ->\r
+    Pettanr.url(@table_name(), 'index', {id: @get('id')})\r
+  \r
+  show_url: () ->\r
+    Pettanr.url(@table_name(), 'show', {id: @get('id')})\r
+  \r
+  prof_url: () ->\r
+    Pettanr.url(@table_name(), 'show', {id: @get('id'), format: 'prof'})\r
+  \r
+  edit_url: () ->\r
+    Pettanr.url(@table_name(), 'edit', {id: @get('id')})\r
+  \r
+  destroy_url: () ->\r
+    Pettanr.url(@table_name(), 'destroy', {id: @get('id')})\r
+  \r
   is_editize: () ->\r
     @editor\r
   \r
index e3dc5aa..6c39f29 100644 (file)
@@ -106,6 +106,7 @@ class Pettanr
     constructor: () ->\r
       @params = {}\r
       @operators = window.operators\r
+      _.extend(this, Backbone.Events)\r
       \r
     set_model: () ->\r
       @my_controller = Manifest.manifest().controllers[@params['controller']]\r
@@ -129,13 +130,13 @@ class Pettanr
       @set_list()\r
       @list.open(() =>\r
         pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, @params)\r
-        f = new Locmare.Filer({\r
-          el: "#pettanr",\r
+        filer = new Locmare.Filer({\r
           item_name: @list.item_name, \r
           items: @list.items(), \r
           pager: pager, \r
           operators: @operators\r
         })\r
+        @trigger('ready', filer)\r
       )\r
       false\r
     \r
@@ -163,7 +164,7 @@ class Pettanr
         })\r
         el ||= $("#pettanr")\r
         el.html(profiler.render().el)\r
-        @redraw_title(@params)\r
+        @trigger('retitle', @params)\r
     \r
     set_new: () ->\r
       @set_model()\r
@@ -197,11 +198,62 @@ class Pettanr
     form_edit: () ->\r
       @set_edit()\r
     \r
-    redraw_title: (params, str = null) ->\r
+  class Pettanr.AppBody extends Backbone.View\r
+    el: "#pettanr"\r
+    \r
+    initialize: (options) ->\r
+      super(options)\r
+    \r
+    render: () ->\r
+      this.$el.html('')\r
+      this\r
+    \r
+    refresh: (body) ->\r
+      @listenTo(body, 'navigate', @navigate)\r
+      this.$el.html(body.el)\r
+    \r
+    fire: (params) ->\r
+      c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+      controller = new c\r
+      controller.params = params\r
+      @listenTo(controller, 'ready', @refresh)\r
+      @listenTo(controller, 'retitle', @retitle)\r
+      controller[params['action']]()\r
+    \r
+    navigate: (url) ->\r
+      window.router.navigate(url, true)\r
+    \r
+    retitle: (params, str = null) ->\r
       t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
       site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
       $(document).attr('title', t + ' - ' + site_caption)\r
     \r
+  class Pettanr.Dialog extends Backbone.View\r
+    \r
+    initialize: (options) ->\r
+      super(options)\r
+    \r
+    render: () ->\r
+      this.$el.html('')\r
+      this\r
+    \r
+    refresh: (body) ->\r
+      @listenTo(body, 'navigate', @navigate)\r
+      this.$el.html(body.render().el)\r
+    \r
+    fire: (params) ->\r
+      c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+      controller = new c\r
+      controller.params = params\r
+      @listenTo(controller, 'ready', @refresh)\r
+      # ignore retitle message\r
+      # @listenTo(controller, 'retitle', @retitle)\r
+      controller[params['action']]()\r
+    \r
+    local_navigate: (url) ->\r
+      window.router.local_navigate(url, true)\r
+    \r
+  \r
   #>> https://gist.github.com/davidjbeveridge/3813724\r
   @xeach: (arr, func, index=0) ->\r
     if index < arr.length then [ func(arr[index], index), @xeach(arr, func, index + 1)... ] else []\r
index 9fe1d8e..f1a3b42 100644 (file)
@@ -19,12 +19,11 @@ class Pettanr.Router extends Backbone.Router
   initialize: () ->\r
     _.each @peta_routes(), (r) =>\r
       @route(r.route, r.callback)\r
+    @body = new Pettanr.AppBody()\r
   \r
-  fire: (params, el) ->\r
-    c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
-    controller = new c\r
-    controller.params = params\r
-    controller[params['action']](el)\r
+  fire: (params, dialog) ->\r
+    b = dialog || @body\r
+    b.fire(params)\r
   \r
   peta_routes: () ->\r
     [\r
index 4782689..3aa22a7 100644 (file)
@@ -14,12 +14,11 @@ class Tag.Img extends Backbone.View
     this.$el.addClass(@class_name) if @class_name\r
     this\r
 \r
-class Tag.A extends Backbone.View\r
+class Tag.A_ extends Backbone.View\r
   tagName: 'a'\r
   \r
   initialize: (options) ->\r
     @attr = options.attr || {}\r
-    @handler_name = options.handler_name\r
     @content = options.content\r
     @class_name = options.class_name\r
   \r
@@ -27,13 +26,25 @@ class Tag.A extends Backbone.View
     this.$el.attr(@attr)\r
     @el.className = @class_name if @class_name\r
     this.$el.html(@content)\r
-    if @handler_name\r
-      @events = {click: 'click'} \r
-      @delegateEvents(@events)\r
+    this\r
+  \r
+class Tag.A extends Tag.A_\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @navigate = options.navigate\r
+  \r
+  render: () ->\r
+    super()\r
+    @events = {click: 'click'}\r
+    @delegateEvents(@events)\r
     this\r
   \r
   click: () ->\r
-    window.router.navigate(@handler_name, true)\r
+    if @navigate\r
+      window.router.navigate(@navigate, true)\r
+    else\r
+      @trigger('click')\r
     return false\r
   \r
 class Tag.Div extends Backbone.View\r
index 6e6b1cb..9333ed7 100644 (file)
@@ -35,15 +35,21 @@ class Pettanr.Views.Common.Icon extends Backbone.View
     @icon = new Pettanr.Image.Icon({item: @item, half: @half})\r
     @icon_button = new Tag.A({\r
       attr: {href: '/' + @icon_url}, \r
-      handler_name: @icon_url,\r
       class_name: 'icon',\r
       content: @icon.render().el\r
     })\r
+    @listenTo(@icon_button, 'click', @click)\r
   \r
   render: () ->\r
     this.$el.html(@icon_button.render().el)\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click')\r
+  \r
+  url: () ->\r
+    @icon_url\r
+  \r
 class Pettanr.Views.Common.Caption extends Backbone.View\r
   tagName: 'span'\r
   \r
@@ -55,14 +61,20 @@ class Pettanr.Views.Common.Caption extends Backbone.View
     @url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
     @linked_name = new Tag.A({\r
       attr: {href: '/' + @url}, \r
-      handler_name: @url,\r
       content: _.escape(@name)\r
     })\r
+    @listenTo(@linked_name, 'click', @click)\r
   \r
   render: () ->\r
     this.$el.html(@linked_name.render().el)\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click')\r
+  \r
+  url: () ->\r
+    @url\r
+  \r
 class Pettanr.Views.Common.IconWithCaption extends Backbone.View\r
   tagName: 'span'\r
   \r
@@ -73,6 +85,8 @@ class Pettanr.Views.Common.IconWithCaption extends Backbone.View
     @length = options.length\r
     @icon = new Pettanr.Views.Common.Icon({item: @item, half: @half})\r
     @caption = new Pettanr.Views.Common.Caption({item: @item, column_name: @column_name, length: @length})\r
+    @listenTo(@icon, 'click', @click)\r
+    @listenTo(@caption, 'click', @click)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -80,6 +94,12 @@ class Pettanr.Views.Common.IconWithCaption extends Backbone.View
     this.$el.append(@caption.render().el)\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click')\r
+  \r
+  url: () ->\r
+    @icon.url()\r
+  \r
 class Pettanr.Views.Common.Summary extends Backbone.View\r
   \r
   initialize: (options) ->\r
index eb03707..c00b29c 100644 (file)
@@ -22,14 +22,47 @@ class Pettanr.Views.GroundColor.Show extends Backbone.View
       caption_url: caption_url,\r
       prof_url: prof_url\r
     })\r
-    @panel = @item.panel()\r
-    @panel.fetch({cache: true}).done =>\r
+    @listenTo(this, 'ready', @ready)\r
+    @panel = @item.panel({with_elements: true})\r
+    @panel.fetch({cache: false}).done =>  # with elements\r
       @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel})\r
-      @render()\r
+      @body = new Pettanr.Views.Panel.Body({\r
+        panel: @panel,\r
+        operators: @operators,\r
+        spot: @item\r
+      })\r
+      @credits = new Pettanr.Views.Panel.ShowModule.Credits({\r
+        pictures: @panel.licensed_pictures()\r
+      })\r
+      @listenTo(@header, 'click:icon', @click_show)\r
+      @listenTo(@header, 'click:caption', @click_show)\r
+      @listenTo(@header, 'click:prof', @click_prof)\r
+      @listenTo(@author, 'click:author', @click_author)\r
+      @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
+      @trigger('ready')\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this\r
+  \r
+  ready: () ->\r
+    this.$el.html('')\r
     this.$el.append(@header.render().el)\r
     this.$el.append(@author.render().el)\r
-    this\r
+    this.$el.append(@body.render().el)\r
+    this.$el.append(@credits.render().el)\r
+    rb = new Tag.RowBreak()\r
+    this.$el.append(rb.render().el)\r
+  \r
+  click_show: () ->\r
+    window.router.navigate(@item.show_url(), true)\r
+  \r
+  click_author: () ->\r
+    window.router.navigate(@panel.author().show_url(), true)\r
+  \r
+  click_prof: () ->\r
+    window.router.navigate(@item.prof_url(), true)\r
+  \r
+  click_credit_icon: (item) ->\r
+    window.router.navigate(item.show_url(), true)\r
   \r
index 3d6b3a7..1e1ff9a 100644 (file)
@@ -22,14 +22,47 @@ class Pettanr.Views.GroundPicture.Show extends Backbone.View
       caption_url: caption_url,\r
       prof_url: prof_url\r
     })\r
-    @panel = @item.panel()\r
-    @panel.fetch({cache: true}).done =>\r
+    @listenTo(this, 'ready', @ready)\r
+    @panel = @item.panel({with_elements: true})\r
+    @panel.fetch({cache: false}).done =>  # with elements\r
       @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel})\r
-      @render()\r
+      @body = new Pettanr.Views.Panel.Body({\r
+        panel: @panel,\r
+        operators: @operators,\r
+        spot: @item\r
+      })\r
+      @credits = new Pettanr.Views.Panel.ShowModule.Credits({\r
+        pictures: @panel.licensed_pictures()\r
+      })\r
+      @listenTo(@header, 'click:icon', @click_show)\r
+      @listenTo(@header, 'click:caption', @click_show)\r
+      @listenTo(@header, 'click:prof', @click_prof)\r
+      @listenTo(@author, 'click:author', @click_author)\r
+      @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
+      @trigger('ready')\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this\r
+  \r
+  ready: () ->\r
+    this.$el.html('')\r
     this.$el.append(@header.render().el)\r
     this.$el.append(@author.render().el)\r
-    this\r
+    this.$el.append(@body.render().el)\r
+    this.$el.append(@credits.render().el)\r
+    rb = new Tag.RowBreak()\r
+    this.$el.append(rb.render().el)\r
+  \r
+  click_show: () ->\r
+    window.router.navigate(@item.show_url(), true)\r
+  \r
+  click_author: () ->\r
+    window.router.navigate(@panel.author().show_url(), true)\r
+  \r
+  click_prof: () ->\r
+    window.router.navigate(@item.prof_url(), true)\r
+  \r
+  click_credit_icon: (item) ->\r
+    window.router.navigate(item.show_url(), true)\r
   \r
index ee1b040..6fd71d9 100644 (file)
@@ -22,6 +22,7 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View
       caption_url: caption_url,\r
       prof_url: prof_url\r
     })\r
+    @listenTo(this, 'ready', @ready)\r
     @panel = @item.panel({with_elements: true})\r
     @panel.fetch({cache: false}).done =>  # with elements\r
       @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel})\r
@@ -30,16 +31,38 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View
         operators: @operators,\r
         spot: @item\r
       })\r
-      @credits = new Pettanr.Views.Panel.Show.Credits({panel: @panel})\r
-      rb = new Tag.RowBreak()\r
-      this.$el.append(rb.render().el)\r
-      @render()\r
+      @credits = new Pettanr.Views.Panel.ShowModule.Credits({\r
+        pictures: @panel.licensed_pictures()\r
+      })\r
+      @listenTo(@header, 'click:icon', @click_show)\r
+      @listenTo(@header, 'click:caption', @click_show)\r
+      @listenTo(@header, 'click:prof', @click_prof)\r
+      @listenTo(@author, 'click:author', @click_author)\r
+      @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
+      @trigger('ready')\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this\r
+  \r
+  ready: () ->\r
+    this.$el.html('')\r
     this.$el.append(@header.render().el)\r
     this.$el.append(@author.render().el)\r
     this.$el.append(@body.render().el)\r
     this.$el.append(@credits.render().el)\r
-    this\r
+    rb = new Tag.RowBreak()\r
+    this.$el.append(rb.render().el)\r
+  \r
+  click_show: () ->\r
+    window.router.navigate(@item.show_url(), true)\r
+  \r
+  click_author: () ->\r
+    window.router.navigate(@panel.author().show_url(), true)\r
+  \r
+  click_prof: () ->\r
+    window.router.navigate(@item.prof_url(), true)\r
+  \r
+  click_credit_icon: (item) ->\r
+    window.router.navigate(item.show_url(), true)\r
   \r
index 6ada51f..3221b30 100644 (file)
@@ -113,19 +113,30 @@ class Pettanr.Views.Panel.Footer extends Backbone.View
   initialize: (options) ->\r
     @panel = options.panel\r
     @operators = options.operators\r
+    @panel_icon = new Pettanr.Views.Panel.Icon({item: @panel, half: true})\r
+    @author_icon = new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})\r
+    @edit_button = new Pettanr.Views.Show.LinkedEditButton({item: @panel})\r
+    @listenTo(@panel_icon, 'click', @click_panel)\r
+    @listenTo(@author_icon, 'click', @click_author)\r
+    @listenTo(@edit_button, 'click', @click_edit)\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@panel_icon.render().el)\r
+    this.$el.append(@author_icon.render().el)\r
     this.$el.append(\r
-      (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el\r
+      Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at'))\r
     )\r
-    this.$el.append(\r
-      (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
-    )\r
-    this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))\r
     if @panel.is_own(@operators)\r
-      this.$el.append(\r
-        (new Pettanr.Views.Show.LinkedEditButton({item: @panel})).render().el\r
-      )\r
+      this.$el.append(@edit_button.render().el)\r
     this\r
   \r
+  click_panel: () ->\r
+    @trigger('click:panel')\r
+  \r
+  click_author: () ->\r
+    @trigger('click:author')\r
+  \r
+  click_edit: () ->\r
+    @trigger('click:edit')\r
+  \r
index 6e34cdb..bbfb829 100644 (file)
@@ -9,16 +9,13 @@ class Pettanr.Views.Panel.Show extends Backbone.View
     @operators = options.operators\r
     @spot = options.spot\r
     \r
-    icon_url = Pettanr.url(@panel.table_name(), 'show', {id: @panel.get('id')})\r
-    caption_url = Pettanr.url(@panel.table_name(), 'show', {id: @panel.get('id')})\r
-    prof_url = Pettanr.url(@panel.table_name(), 'show', {id: @panel.get('id'), format: 'prof'})\r
-    @header = new Pettanr.Views.Scroll.ShowModule.Header({\r
+    @header = new Pettanr.Views.Panel.ShowModule.Header({\r
       item: @panel, \r
       operators: @operators,\r
       caption: @panel.get('caption'), \r
-      icon_url: icon_url,\r
-      caption_url: caption_url,\r
-      prof_url: prof_url\r
+      icon_url: @panel.show_url(),\r
+      caption_url: @panel.show_url(),\r
+      prof_url: @panel.prof_url()\r
     })\r
     @body = new Pettanr.Views.Panel.Body({\r
       panel: @panel,\r
@@ -29,9 +26,16 @@ class Pettanr.Views.Panel.Show extends Backbone.View
       panel: @panel,\r
       operators: @operators\r
     })\r
-    @credits = new Pettanr.Views.Panel.Show.Credits({\r
+    @credits = new Pettanr.Views.Panel.ShowModule.Credits({\r
       pictures: @panel.licensed_pictures()\r
     })\r
+    @listenTo(@header, 'click:icon', @click_show)\r
+    @listenTo(@header, 'click:caption', @click_show)\r
+    @listenTo(@header, 'click:prof', @click_prof)\r
+    @listenTo(@footer, 'click:panel', @click_show)\r
+    @listenTo(@footer, 'click:author', @click_author)\r
+    @listenTo(@footer, 'click:edit', @click_edit)\r
+    @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -43,23 +47,52 @@ class Pettanr.Views.Panel.Show extends Backbone.View
     this.$el.append(rb.render().el)\r
     this\r
   \r
-class Pettanr.Views.Panel.Show.Credits extends Backbone.View\r
+  click_show: () ->\r
+    window.router.navigate(@panel.show_url(), true)\r
+  \r
+  click_author: () ->\r
+    window.router.navigate(@panel.author().show_url(), true)\r
+  \r
+  click_edit: () ->\r
+    window.router.navigate(@panel.edit_url(), true)\r
+  \r
+  click_prof: () ->\r
+    window.router.navigate(@panel.prof_url(), true)\r
+  \r
+  click_credit_icon: (item) ->\r
+    window.router.navigate(item.show_url(), true)\r
+  \r
+class Pettanr.Views.Panel.ShowModule\r
+class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Panel.ShowModule.Credits extends Backbone.View\r
   tagName: 'div'\r
   className: 'credits'\r
   \r
   initialize: (options) ->\r
     @pictures = options.pictures\r
+    @credited = {}\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    _.each @pictures, (picture) =>\r
+    _.each @pictures, (picture, pid) =>\r
       @add_picture(picture)\r
     this\r
   \r
   add_picture: (picture) ->\r
-    if not @pictures[picture.get('id')]\r
+  \r
+  add_picture: (picture) ->\r
+    pid = picture.get('id')\r
+    if not @credited[pid]\r
       picture.fetch({cache: true}).done =>\r
-        @pictures[picture.get('id')] = picture\r
+        @credited[pid] = picture\r
         credit = picture.credit_view()\r
+        @listenTo(credit, 'click:icon', @click_credit_icon)\r
         this.$el.append(credit.render().el)\r
   \r
+  click_credit_icon: (item) ->\r
+    @trigger('click:credit:icon', item)\r
+  \r
index d8cf4df..a8a9e84 100644 (file)
@@ -11,8 +11,13 @@ class Pettanr.Views.Picture.Credit extends Backbone.View
   render: () ->\r
     this.$el.html('')\r
     if @with_icon\r
-      this.$el.append(@item.credit_icon.render().el)\r
+      p = @item.credit_icon_view()\r
+      @listenTo(p, 'click', @click)\r
+      this.$el.append(p.render().el)\r
     this.$el.append(@item.credit)\r
     this.$el.append((new Tag.RowBreak()).render().el)\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click:icon', @item)\r
+  \r
index cbdaf25..30aa5e7 100644 (file)
@@ -11,9 +11,12 @@ class Pettanr.Views.Picture.CreditIcon extends Backbone.View
     picture = @item.tmb_opt_img_tag()\r
     linked_picture = new Tag.A({\r
       attr: {href: @item.url},\r
-      handler_name: 'pictures/' + @item.get('id'),\r
       content: picture.render().el\r
     })\r
+    @listenTo(linked_picture, 'click', @click)\r
     this.$el.append(linked_picture.render().el)\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click')\r
+  \r
index 6b12575..964c49e 100644 (file)
@@ -11,6 +11,7 @@ class Pettanr.Views.ResourcePicture.Credit extends Backbone.View
     this.$el.html('')\r
     if @with_icon\r
       p = @item.credit_icon_view()\r
+      @listenTo(p, 'click', @click)\r
       this.$el.append(p.render().el)\r
     f = (data, status) =>\r
       this.$el.append(data)\r
@@ -19,3 +20,6 @@ class Pettanr.Views.ResourcePicture.Credit extends Backbone.View
     $.get(@url, null, f, 'html')\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click:icon', @item)\r
+  \r
index 5cd50b7..2491c27 100644 (file)
@@ -11,9 +11,12 @@ class Pettanr.Views.ResourcePicture.CreditIcon extends Backbone.View
     resource_picture = @item.tmb_opt_img_tag()\r
     linked_resource_picture = new Tag.A({\r
       attr: {href: @item.url},\r
-      handler_name: 'resource_pictures/' + @item.get('id'),\r
       content: resource_picture.render().el\r
     })\r
+    @listenTo(linked_resource_picture, 'click', @click)\r
     this.$el.append(linked_resource_picture.render().el)\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click')\r
+  \r
index baa530f..5de1866 100644 (file)
@@ -16,19 +16,22 @@ class Pettanr.Views.Scroll.Show extends Backbone.View
   initialize: (options) ->\r
     @item = options.item\r
     @operators = options.operators\r
-    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
-    caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
-    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
     @header = new Pettanr.Views.Scroll.ShowModule.Header({\r
       item: @item, \r
       operators: @operators,\r
       caption: @item.get('title'), \r
-      icon_url: icon_url,\r
-      caption_url: caption_url,\r
-      prof_url: prof_url\r
+      icon_url: @item.show_url(),\r
+      caption_url: @item.play_url(),\r
+      prof_url: @item.prof_url()\r
     })\r
     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
     @owner = new Pettanr.Views.Scroll.ShowModule.Owner({item: @item, operators: @operators})\r
+    @listenTo(@header, 'click:icon', @click_show)\r
+    @listenTo(@header, 'click:caption', @click_play)\r
+    @listenTo(@header, 'click:prof', @click_prof)\r
+    @listenTo(@author, 'click:author', @click_author)\r
+    @listenTo(@owner, 'click:edit', @click_edit)\r
+    @listenTo(@owner, 'click:destroy', @click_destroy)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -37,3 +40,21 @@ class Pettanr.Views.Scroll.Show extends Backbone.View
     this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
     this\r
   \r
+  click_show: () ->\r
+    window.router.navigate(@item.show_url(), true)\r
+  \r
+  click_play: () ->\r
+    window.router.navigate(@item.play_url(), true)\r
+  \r
+  click_prof: () ->\r
+    window.router.navigate(@item.prof_url(), true)\r
+  \r
+  click_author: () ->\r
+    window.router.navigate(@item.author().show_url(), true)\r
+  \r
+  click_edit: () ->\r
+    window.router.navigate(@item.edit_url(), true)\r
+  \r
+  click_destroy: () ->\r
+    window.router.navigate(@item.destroy_url(), true)\r
+  \r
index 3035497..69160ac 100644 (file)
@@ -14,23 +14,23 @@ class Pettanr.Views.Show.Header extends Backbone.View
     @icon = new Pettanr.Image.Icon({item: @item, half: true})\r
     @icon_button = new Tag.A({\r
       attr: {href: '/' + @icon_url}, \r
-      handler_name: @icon_url,\r
       class_name: 'icon',\r
       content: @icon.render().el\r
     })\r
     @caption = new Tag.A({\r
       attr: {href: '/' + @caption_url},\r
-      handler_name: @caption_url,\r
       class_name: 'caption',\r
       content: _.escape(@title)\r
     })\r
     @prof = new Pettanr.Image.SymbolImg({attr: {src: '/images/prof.gif'}, half: true})\r
     @prof_button = new Tag.A({\r
       attr: {href: '/' + @prof_url}, \r
-      handler_name: @prof_url,\r
       class_name: 'prof',\r
       content: @prof.render().el\r
     })\r
+    @listenTo(@icon, 'click', @click_icon)\r
+    @listenTo(@caption, 'click', @click_caption)\r
+    @listenTo(@prof_button, 'click', @click_prof)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -39,6 +39,15 @@ class Pettanr.Views.Show.Header extends Backbone.View
     this.$el.append(@prof_button.render().el)\r
     this\r
   \r
+  click_icon: () ->\r
+    @trigger('click:icon')\r
+  \r
+  click_caption: () ->\r
+    @trigger('click:caption')\r
+  \r
+  click_prof: () ->\r
+    @trigger('click:prof')\r
+  \r
 class Pettanr.Views.Show.HeaderAuthor extends Backbone.View\r
   tagName: 'div'\r
   \r
@@ -47,12 +56,12 @@ class Pettanr.Views.Show.HeaderAuthor extends Backbone.View
     @author = @item.author()\r
     @author.fetch({cache: true}).done =>\r
       name = @author.escape('name')\r
-      author_url = Pettanr.url(@author.table_name(), 'show', {id: @author.get('id')})\r
+      author_url = @author.show_url()\r
       @linked_author =  new Tag.A({\r
         attr: {href: '/' + author_url}, \r
-        handler_name: author_url,\r
         content: name\r
       })\r
+      @listenTo(@linked_author, 'click', @click)\r
       @render()\r
   \r
   render: () ->\r
@@ -61,28 +70,33 @@ class Pettanr.Views.Show.HeaderAuthor extends Backbone.View
     this.$el.append(@linked_author.render().el) if @linked_author\r
     this\r
   \r
+  click: () ->\r
+    @trigger('click:author')\r
+  \r
 class Pettanr.Views.Show.LinkedEditButton extends Tag.A\r
   \r
   initialize: (options) ->\r
     item = options.item\r
-    edit_url = Pettanr.url(item.table_name(), 'edit', {id: item.get('id')})\r
     super({\r
-      attr: {href: '/' + edit_url}, \r
-      handler_name: edit_url,\r
+      attr: {href: '/' + item.edit_url()}, \r
       content: I18n.t('link.edit')\r
     })\r
   \r
+  url: () ->\r
+    @url\r
+  \r
 class Pettanr.Views.Show.LinkedDestroyButton extends Tag.A\r
   \r
   initialize: (options) ->\r
     item = options.item\r
-    edit_url = Pettanr.url(item.table_name(), 'destroy', {id: item.get('id')})\r
     super({\r
-      attr: {href: '/' + edit_url}, \r
-      handler_name: edit_url,\r
+      attr: {href: '/' + item.destroy_url()}, \r
       content: I18n.t('link.destroy')\r
     })\r
   \r
+  url: () ->\r
+    @destroy_url\r
+  \r
 class Pettanr.Views.Show.OwnerFooter extends Backbone.View\r
   tagName: 'div'\r
   className: 'show-owner-footer'\r
@@ -93,6 +107,8 @@ class Pettanr.Views.Show.OwnerFooter extends Backbone.View
     @operators = options.operators\r
     @edit = new Pettanr.Views.Show.LinkedEditButton({item: @item})\r
     @destroy = new Pettanr.Views.Show.LinkedDestroyButton({item: @item})\r
+    @listenTo(@edit, 'click', @click_edit)\r
+    @listenTo(@destroy, 'click', @click_destroy)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -100,6 +116,12 @@ class Pettanr.Views.Show.OwnerFooter extends Backbone.View
     this.$el.append(@destroy.render().el)\r
     this\r
   \r
+  click_edit: () ->\r
+    @trigger('click:edit')\r
+  \r
+  click_destroy: () ->\r
+    @trigger('click:destroy')\r
+  \r
 class Pettanr.Views.Show.Owner extends Backbone.View\r
   tagName: 'div'\r
   \r
@@ -112,6 +134,8 @@ class Pettanr.Views.Show.Owner extends Backbone.View
       content: I18n.t('editor')\r
     })\r
     @footer = new Pettanr.Views.Show.OwnerFooter({item: @item, operators: @operators})\r
+    @listenTo(@footer, 'click:edit', @click_edit)\r
+    @listenTo(@footer, 'click:destroy', @click_destroy)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -119,3 +143,11 @@ class Pettanr.Views.Show.Owner extends Backbone.View
     this.$el.append(@footer.render().el)\r
     this\r
   \r
+  click_edit: () ->\r
+    @trigger('click:footer:edit')\r
+    @trigger('click:edit')\r
+  \r
+  click_destroy: () ->\r
+    @trigger('click:footer:destroy')\r
+    @trigger('click:destroy')\r
+  \r
index be851b1..0ebfbaf 100644 (file)
@@ -22,14 +22,47 @@ class Pettanr.Views.SpeechBalloon.Show extends Backbone.View
       caption_url: caption_url,\r
       prof_url: prof_url\r
     })\r
-    @panel = @item.panel()\r
-    @panel.fetch({cache: true}).done =>\r
+    @listenTo(this, 'ready', @ready)\r
+    @panel = @item.panel({with_elements: true})\r
+    @panel.fetch({cache: false}).done =>  # with elements\r
       @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel})\r
-      @render()\r
+      @body = new Pettanr.Views.Panel.Body({\r
+        panel: @panel,\r
+        operators: @operators,\r
+        spot: @item\r
+      })\r
+      @credits = new Pettanr.Views.Panel.ShowModule.Credits({\r
+        pictures: @panel.licensed_pictures()\r
+      })\r
+      @listenTo(@header, 'click:icon', @click_show)\r
+      @listenTo(@header, 'click:caption', @click_show)\r
+      @listenTo(@header, 'click:prof', @click_prof)\r
+      @listenTo(@author, 'click:author', @click_author)\r
+      @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
+      @trigger('ready')\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this\r
+  \r
+  ready: () ->\r
+    this.$el.html('')\r
     this.$el.append(@header.render().el)\r
     this.$el.append(@author.render().el)\r
-    this\r
+    this.$el.append(@body.render().el)\r
+    this.$el.append(@credits.render().el)\r
+    rb = new Tag.RowBreak()\r
+    this.$el.append(rb.render().el)\r
+  \r
+  click_show: () ->\r
+    window.router.navigate(@item.show_url(), true)\r
+  \r
+  click_author: () ->\r
+    window.router.navigate(@panel.author().show_url(), true)\r
+  \r
+  click_prof: () ->\r
+    window.router.navigate(@item.prof_url(), true)\r
+  \r
+  click_credit_icon: (item) ->\r
+    window.router.navigate(item.show_url(), true)\r
   \r
index f290274..d21ad9f 100644 (file)
@@ -3,15 +3,21 @@ class Pettanr.Views.Top.Account extends Backbone.View
   \r
   initialize: (options) ->\r
     @operators = options.operators\r
+    @author = @operators.author\r
+    @artist = @operators.artist\r
+    if @author\r
+      @author_view = @author.icon_with_caption_view()\r
+      @listenTo(@author_view, 'click', @author_click)\r
+    if @artist\r
+      @artist_view = @artist.icon_with_caption_view()\r
+      @listenTo(@artist_view, 'click', @artist_click)\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    if au = @operators.author\r
-      author = au.icon_with_caption_view()\r
-      this.$el.append(author.render().el)\r
-    if ar = @operators.artist\r
-      artist = ar.icon_with_caption_view()\r
-      this.$el.append(artist.render().el)\r
+    if @author_view\r
+      this.$el.append(@author_view.render().el)\r
+    if @artist_view\r
+      this.$el.append(@artist_view.render().el)\r
     sign_out = new Tag.A({\r
       attr: {href: '/'}, \r
       class_name: 'sign_out', \r
@@ -21,6 +27,12 @@ class Pettanr.Views.Top.Account extends Backbone.View
     @delegateEvents({'click .sign_out': 'sign_out'})\r
     this\r
   \r
+  author_click: () ->\r
+    window.router.navigate(@author_view.url(), true)\r
+  \r
+  artist_click: () ->\r
+    window.router.navigate(@artist_view.url(), true)\r
+  \r
   sign_out: () ->\r
     user = new Backbone.Model({id: 0})\r
     user.url = '/users/sign_out'\r