From 319a56e9e17f9d71a64222ce3233a5e3e21a87e0 Mon Sep 17 00:00:00 2001 From: yasushiito Date: Wed, 28 Jan 2015 08:48:02 +0900 Subject: [PATCH] add app body --- .../javascripts/controllers/artists.js.coffee | 14 ++--- .../javascripts/controllers/authors.js.coffee | 14 ++--- .../javascripts/controllers/balloons.js.coffee | 14 ++--- .../controllers/comic_stories.js.coffee | 20 ++++---- .../javascripts/controllers/comics.js.coffee | 18 +++---- .../javascripts/controllers/folders.js.coffee | 12 ++--- .../controllers/ground_colors.js.coffee | 14 ++--- .../controllers/ground_pictures.js.coffee | 16 +++--- app/assets/javascripts/controllers/home.js.coffee | 32 ++++++------ .../controllers/license_groups.js.coffee | 14 ++--- .../javascripts/controllers/licenses.js.coffee | 18 +++---- .../original_picture_license_groups.js.coffee | 2 +- .../original_picture_licenses.js.coffee | 2 +- .../controllers/original_pictures.js.coffee | 12 ++--- .../controllers/panel_pictures.js.coffee | 14 ++--- .../javascripts/controllers/panels.js.coffee | 36 ++++++------- .../javascripts/controllers/pictures.js.coffee | 12 ++--- .../controllers/resource_pictures.js.coffee | 16 +++--- .../controllers/scroll_panels.js.coffee | 20 ++++---- .../javascripts/controllers/scrolls.js.coffee | 26 +++++----- .../javascripts/controllers/sheet_panels.js.coffee | 20 ++++---- .../javascripts/controllers/sheets.js.coffee | 20 ++++---- .../controllers/speech_balloon_templates.js.coffee | 18 +++---- .../controllers/speech_balloons.js.coffee | 18 ++++--- .../javascripts/controllers/speeches.js.coffee | 14 ++--- .../javascripts/controllers/stories.js.coffee | 20 ++++---- .../javascripts/controllers/story_sheets.js.coffee | 20 ++++---- .../controllers/system_pictures.js.coffee | 10 ++-- .../controllers/writing_formats.js.coffee | 16 +++--- .../javascripts/editor/panel_editor.js.coffee | 2 +- .../javascripts/models/ground_color.js.coffee | 4 +- .../javascripts/models/ground_picture.js.coffee | 4 +- .../javascripts/models/speech_balloon.js.coffee | 4 +- app/assets/javascripts/peta/binder.js.coffee | 2 + app/assets/javascripts/peta/item.js.coffee | 15 ++++++ app/assets/javascripts/pettanr.js.coffee | 60 ++++++++++++++++++++-- app/assets/javascripts/routes.js.coffee | 9 ++-- app/assets/javascripts/tags.js.coffee | 23 ++++++--- app/assets/javascripts/views/common.js.coffee | 24 ++++++++- .../javascripts/views/ground_colors/show.js.coffee | 41 +++++++++++++-- .../views/ground_pictures/show.js.coffee | 41 +++++++++++++-- .../views/panel_pictures/show.js.coffee | 33 ++++++++++-- app/assets/javascripts/views/panels/body.js.coffee | 27 +++++++--- app/assets/javascripts/views/panels/show.js.coffee | 57 +++++++++++++++----- .../javascripts/views/pictures/credit.js.coffee | 7 ++- .../views/pictures/credit_icon.js.coffee | 5 +- .../views/resource_pictures/credit.js.coffee | 4 ++ .../views/resource_pictures/credit_icon.js.coffee | 5 +- .../javascripts/views/scrolls/show.js.coffee | 33 +++++++++--- app/assets/javascripts/views/show.js.coffee | 54 +++++++++++++++---- .../views/speech_balloons/show.js.coffee | 41 +++++++++++++-- app/assets/javascripts/views/top/account.js.coffee | 24 ++++++--- 52 files changed, 674 insertions(+), 327 deletions(-) diff --git a/app/assets/javascripts/controllers/artists.js.coffee b/app/assets/javascripts/controllers/artists.js.coffee index 999793bc..e597b419 100644 --- a/app/assets/javascripts/controllers/artists.js.coffee +++ b/app/assets/javascripts/controllers/artists.js.coffee @@ -1,18 +1,18 @@ class Pettanr.ArtistsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('name')) - view = new Pettanr.Views.Artist.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('name')) + show = new Pettanr.Views.Artist.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -25,11 +25,11 @@ class Pettanr.ArtistsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/authors.js.coffee b/app/assets/javascripts/controllers/authors.js.coffee index 240772c5..629b6cb3 100644 --- a/app/assets/javascripts/controllers/authors.js.coffee +++ b/app/assets/javascripts/controllers/authors.js.coffee @@ -1,18 +1,18 @@ class Pettanr.AuthorsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('name')) - view = new Pettanr.Views.Author.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('name')) + show = new Pettanr.Views.Author.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -25,11 +25,11 @@ class Pettanr.AuthorsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/balloons.js.coffee b/app/assets/javascripts/controllers/balloons.js.coffee index d09e6d85..f33d7027 100644 --- a/app/assets/javascripts/controllers/balloons.js.coffee +++ b/app/assets/javascripts/controllers/balloons.js.coffee @@ -1,26 +1,26 @@ class Pettanr.BalloonsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_speech_balloon: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.Balloon.Show({ - el: "#pettanr", + show = new Pettanr.Views.Balloon.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/comic_stories.js.coffee b/app/assets/javascripts/controllers/comic_stories.js.coffee index b0e760a4..60c84263 100644 --- a/app/assets/javascripts/controllers/comic_stories.js.coffee +++ b/app/assets/javascripts/controllers/comic_stories.js.coffee @@ -1,30 +1,30 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_comic: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_story: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.ComicStory.Show({ - el: "#pettanr", + show = new Pettanr.Views.ComicStory.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -37,11 +37,11 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/comics.js.coffee b/app/assets/javascripts/controllers/comics.js.coffee index 1cbca39e..8dc41d0e 100644 --- a/app/assets/javascripts/controllers/comics.js.coffee +++ b/app/assets/javascripts/controllers/comics.js.coffee @@ -1,26 +1,26 @@ class Pettanr.ComicsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_story: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('title')) - view = new Pettanr.Views.Comic.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('title')) + show = new Pettanr.Views.Comic.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -33,11 +33,11 @@ class Pettanr.ComicsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/folders.js.coffee b/app/assets/javascripts/controllers/folders.js.coffee index be3225d8..5fc6befd 100644 --- a/app/assets/javascripts/controllers/folders.js.coffee +++ b/app/assets/javascripts/controllers/folders.js.coffee @@ -1,11 +1,11 @@ class Pettanr.FoldersController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() root: () -> - @redraw_title(@params) + @trigger('retitle', @params) @set_model() @item = new Pettanr.Folder.Root() @item.fetch({cache: true}).done => @@ -14,7 +14,7 @@ class Pettanr.FoldersController extends Pettanr.AppController show_html_format: (format) -> children_html: () -> - @redraw_title(@params, @item.get('name')) + @trigger('retitle', @params, @item.get('name')) collection = new Pettanr.Folder.Children({id: @item.get('id')}) collection.fetch({cache: true}).done => f = new Locmare.Filer({ @@ -23,7 +23,7 @@ class Pettanr.FoldersController extends Pettanr.AppController pager: null, operators: window.operators }) - $("#pettanr").html(f.render().el) + @trigger('ready', f) show: () -> if @params['format'] == 'prof' @@ -46,10 +46,10 @@ class Pettanr.FoldersController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() diff --git a/app/assets/javascripts/controllers/ground_colors.js.coffee b/app/assets/javascripts/controllers/ground_colors.js.coffee index a06b2982..ab28395a 100644 --- a/app/assets/javascripts/controllers/ground_colors.js.coffee +++ b/app/assets/javascripts/controllers/ground_colors.js.coffee @@ -1,26 +1,26 @@ class Pettanr.GroundColorsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.GroundColor.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.GroundColor.Show({ item: @item, operators: @operators }) - #view.render() + # show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/ground_pictures.js.coffee b/app/assets/javascripts/controllers/ground_pictures.js.coffee index 41e10aa9..9e8dcf92 100644 --- a/app/assets/javascripts/controllers/ground_pictures.js.coffee +++ b/app/assets/javascripts/controllers/ground_pictures.js.coffee @@ -1,27 +1,27 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.GroundPicture.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.GroundPicture.Show({ item: @item, operators: @operators }) - #view.render() + # show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/home.js.coffee b/app/assets/javascripts/controllers/home.js.coffee index 9a8aeea8..cacc2233 100644 --- a/app/assets/javascripts/controllers/home.js.coffee +++ b/app/assets/javascripts/controllers/home.js.coffee @@ -9,67 +9,67 @@ class Pettanr.HomeController extends Pettanr.AppController view.render() scrolls: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() scroll_panels: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() comics: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() comic_stories: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() stories: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() story_sheets: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() sheets: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() sheet_panels: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() panels: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() panel_pictures: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() speech_balloons: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() balloons: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() speeches: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() ground_pictures: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() ground_colors: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() resource_pictures: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() scrolls_count: () -> diff --git a/app/assets/javascripts/controllers/license_groups.js.coffee b/app/assets/javascripts/controllers/license_groups.js.coffee index ec4cfc82..a7e98f97 100644 --- a/app/assets/javascripts/controllers/license_groups.js.coffee +++ b/app/assets/javascripts/controllers/license_groups.js.coffee @@ -1,18 +1,18 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.LicenseGroup.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.LicenseGroup.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -25,11 +25,11 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/licenses.js.coffee b/app/assets/javascripts/controllers/licenses.js.coffee index 807471ef..cd428037 100644 --- a/app/assets/javascripts/controllers/licenses.js.coffee +++ b/app/assets/javascripts/controllers/licenses.js.coffee @@ -1,26 +1,26 @@ class Pettanr.LicensesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_icense_group: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_system_picture: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.License.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.License.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -33,11 +33,11 @@ class Pettanr.LicensesController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/original_picture_license_groups.js.coffee b/app/assets/javascripts/controllers/original_picture_license_groups.js.coffee index 96ab7944..9fd95291 100644 --- a/app/assets/javascripts/controllers/original_picture_license_groups.js.coffee +++ b/app/assets/javascripts/controllers/original_picture_license_groups.js.coffee @@ -1,6 +1,6 @@ class Pettanr.OriginalPictureLicenseGroupsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() diff --git a/app/assets/javascripts/controllers/original_picture_licenses.js.coffee b/app/assets/javascripts/controllers/original_picture_licenses.js.coffee index 0845c9d0..c2d01c4f 100644 --- a/app/assets/javascripts/controllers/original_picture_licenses.js.coffee +++ b/app/assets/javascripts/controllers/original_picture_licenses.js.coffee @@ -1,6 +1,6 @@ class Pettanr.OriginalPictureLicensesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() diff --git a/app/assets/javascripts/controllers/original_pictures.js.coffee b/app/assets/javascripts/controllers/original_pictures.js.coffee index d014a073..39816eb7 100644 --- a/app/assets/javascripts/controllers/original_pictures.js.coffee +++ b/app/assets/javascripts/controllers/original_pictures.js.coffee @@ -1,22 +1,22 @@ class Pettanr.OriginalPicturesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() history: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.OriginalPicture.Show({ - el: "#pettanr", + show = new Pettanr.Views.OriginalPicture.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/panel_pictures.js.coffee b/app/assets/javascripts/controllers/panel_pictures.js.coffee index 832aee12..c083c896 100644 --- a/app/assets/javascripts/controllers/panel_pictures.js.coffee +++ b/app/assets/javascripts/controllers/panel_pictures.js.coffee @@ -1,26 +1,26 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.PanelPicture.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.PanelPicture.Show({ item: @item, operators: @operators }) - #view.render() + # show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/panels.js.coffee b/app/assets/javascripts/controllers/panels.js.coffee index 7c8b9ac0..9223df77 100644 --- a/app/assets/javascripts/controllers/panels.js.coffee +++ b/app/assets/javascripts/controllers/panels.js.coffee @@ -1,63 +1,63 @@ class Pettanr.PanelsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_scroll: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_sheet: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_speech_balloon_template: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() - show_html: (el) -> + show_html: () -> @item = new Pettanr.Panel({id: @item.get('id')}, {with_elements: true}) # retake panel for 'with_elements' mode @item.fetch({cache: false}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.Panel.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.Panel.Show({ panel: @item, operators: @operators, spot: null }) - view.render() + show.render() + @trigger('ready', show) false - show: (el) -> + show: () -> @set_show() switch @params['format'] when 'prof' - @show_prof(el) + @show_prof() else - @show_html(el) + @show_html() count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @set_new() @editor() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @set_model() @item = new Pettanr.Panel({id: @params['id']}, {with_elements: true}) @item.fetch({cache: false}).done => - @editor() + editor = new Editor.PanelEditor({root_item: @item, operators: @operators}) + editor.render() + @trigger('ready', editor) editor: () -> - editor = new Editor.PanelEditor({root_item: @item, operators: @operators}) - $("#pettanr").html(editor.render().el) create: () -> diff --git a/app/assets/javascripts/controllers/pictures.js.coffee b/app/assets/javascripts/controllers/pictures.js.coffee index 9073a6ae..ee4066fc 100644 --- a/app/assets/javascripts/controllers/pictures.js.coffee +++ b/app/assets/javascripts/controllers/pictures.js.coffee @@ -1,22 +1,22 @@ class Pettanr.PicturesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_artist: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.Picture.Show({ - el: "#pettanr", + show = new Pettanr.Views.Picture.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/resource_pictures.js.coffee b/app/assets/javascripts/controllers/resource_pictures.js.coffee index 2df82568..a39e24f3 100644 --- a/app/assets/javascripts/controllers/resource_pictures.js.coffee +++ b/app/assets/javascripts/controllers/resource_pictures.js.coffee @@ -1,30 +1,30 @@ class Pettanr.ResourcePicturesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_artist: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_license_group: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_license: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.ResourcePicture.Show({ - el: "#pettanr", + show = new Pettanr.Views.ResourcePicture.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/scroll_panels.js.coffee b/app/assets/javascripts/controllers/scroll_panels.js.coffee index c0fa60d4..946f47b0 100644 --- a/app/assets/javascripts/controllers/scroll_panels.js.coffee +++ b/app/assets/javascripts/controllers/scroll_panels.js.coffee @@ -1,30 +1,30 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_scroll: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.ScrollPanel.Show({ - el: "#pettanr", + show = new Pettanr.Views.ScrollPanel.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -41,11 +41,11 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/scrolls.js.coffee b/app/assets/javascripts/controllers/scrolls.js.coffee index 5b6fcbd5..078fbe43 100644 --- a/app/assets/javascripts/controllers/scrolls.js.coffee +++ b/app/assets/javascripts/controllers/scrolls.js.coffee @@ -1,26 +1,26 @@ class Pettanr.ScrollsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('title')) - view = new Pettanr.Views.Scroll.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('title')) + show = new Pettanr.Views.Scroll.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -34,22 +34,22 @@ class Pettanr.ScrollsController extends Pettanr.AppController @set_play() @item.fetch({cache: true}).done => @list.open(() => - @redraw_title(@params, @item.get('title')) - view = new Pettanr.Views.Scroll.Play({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('title')) + show = new Pettanr.Views.Scroll.Play({ item: @item, list: @list, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) ) new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/sheet_panels.js.coffee b/app/assets/javascripts/controllers/sheet_panels.js.coffee index 3a1dd2e2..3291f88a 100644 --- a/app/assets/javascripts/controllers/sheet_panels.js.coffee +++ b/app/assets/javascripts/controllers/sheet_panels.js.coffee @@ -1,30 +1,30 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_sheet: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.SheetPanel.Show({ - el: "#pettanr", + show = new Pettanr.Views.SheetPanel.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -37,11 +37,11 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/sheets.js.coffee b/app/assets/javascripts/controllers/sheets.js.coffee index 0c7da59e..e9c02d1a 100644 --- a/app/assets/javascripts/controllers/sheets.js.coffee +++ b/app/assets/javascripts/controllers/sheets.js.coffee @@ -1,30 +1,30 @@ class Pettanr.SheetsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_story: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.Sheet.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.Sheet.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -37,11 +37,11 @@ class Pettanr.SheetsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee index 1025cf19..2ab81b70 100644 --- a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee @@ -1,26 +1,26 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_system_picture: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.SpeechBalloonTemplate.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.SpeechBalloonTemplate.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -33,11 +33,11 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/speech_balloons.js.coffee b/app/assets/javascripts/controllers/speech_balloons.js.coffee index eacb165b..02876945 100644 --- a/app/assets/javascripts/controllers/speech_balloons.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloons.js.coffee @@ -1,30 +1,30 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_panel: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_speech_balloon_template: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.SpeechBalloon.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.SpeechBalloon.Show({ item: @item, operators: @operators }) - #view.render() + # show.render() + @trigger('ready', show) show: () -> @set_show() @@ -37,9 +37,11 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController count: () -> new: () -> + @trigger('retitle', @params) @form_new() edit: () -> + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/speeches.js.coffee b/app/assets/javascripts/controllers/speeches.js.coffee index 68aa806d..b6dab9ce 100644 --- a/app/assets/javascripts/controllers/speeches.js.coffee +++ b/app/assets/javascripts/controllers/speeches.js.coffee @@ -1,26 +1,26 @@ class Pettanr.SpeechesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_speech_balloon: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.Speech.Show({ - el: "#pettanr", + show = new Pettanr.Views.Speech.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/stories.js.coffee b/app/assets/javascripts/controllers/stories.js.coffee index 13fb5fcf..207acc31 100644 --- a/app/assets/javascripts/controllers/stories.js.coffee +++ b/app/assets/javascripts/controllers/stories.js.coffee @@ -1,30 +1,30 @@ class Pettanr.StoriesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_comic: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_sheet: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('title')) - view = new Pettanr.Views.Story.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('title')) + show = new Pettanr.Views.Story.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -37,11 +37,11 @@ class Pettanr.StoriesController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/story_sheets.js.coffee b/app/assets/javascripts/controllers/story_sheets.js.coffee index a6d328b5..4d2b7488 100644 --- a/app/assets/javascripts/controllers/story_sheets.js.coffee +++ b/app/assets/javascripts/controllers/story_sheets.js.coffee @@ -1,30 +1,30 @@ class Pettanr.StorySheetsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_author: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_story: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_sheet: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.StorySheet.Show({ - el: "#pettanr", + show = new Pettanr.Views.StorySheet.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -37,11 +37,11 @@ class Pettanr.StorySheetsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/system_pictures.js.coffee b/app/assets/javascripts/controllers/system_pictures.js.coffee index b22af431..c47ddba0 100644 --- a/app/assets/javascripts/controllers/system_pictures.js.coffee +++ b/app/assets/javascripts/controllers/system_pictures.js.coffee @@ -1,18 +1,18 @@ class Pettanr.SystemPicturesController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> - @redraw_title(@params) + @trigger('retitle', @params) @item.fetch({cache: true}).done => - view = new Pettanr.Views.SystemPicture.Show({ - el: "#pettanr", + show = new Pettanr.Views.SystemPicture.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/writing_formats.js.coffee b/app/assets/javascripts/controllers/writing_formats.js.coffee index 8ae4b8c5..067990e2 100644 --- a/app/assets/javascripts/controllers/writing_formats.js.coffee +++ b/app/assets/javascripts/controllers/writing_formats.js.coffee @@ -1,22 +1,22 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() by_system_picture: () -> - @redraw_title(@params) + @trigger('retitle', @params) @filer_list() show_html: () -> @item.fetch({cache: true}).done => - @redraw_title(@params, @item.get('caption')) - view = new Pettanr.Views.WritingFormat.Show({ - el: "#pettanr", + @trigger('retitle', @params, @item.get('caption')) + show = new Pettanr.Views.WritingFormat.Show({ item: @item, operators: @operators }) - view.render() + show.render() + @trigger('ready', show) show: () -> @set_show() @@ -29,11 +29,11 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController count: () -> new: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_new() edit: () -> - @redraw_title(@params) + @trigger('retitle', @params) @form_edit() create: () -> diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index 826a53f6..a6926e74 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -14,7 +14,7 @@ class Editor.PanelEditor extends Backbone.View spot: null }) @dock = new Editor.PanelEditor.Dock({parent: this}) - @credits = new Pettanr.Views.Panel.Show.Credits({pictures: {}}) + @credits = new Pettanr.Views.Panel.ShowModule.Credits({pictures: {}}) list = @panel.zorderd_elements() _.each list, (element) => diff --git a/app/assets/javascripts/models/ground_color.js.coffee b/app/assets/javascripts/models/ground_color.js.coffee index 09cfeafc..254d97d0 100644 --- a/app/assets/javascripts/models/ground_color.js.coffee +++ b/app/assets/javascripts/models/ground_color.js.coffee @@ -15,8 +15,8 @@ class Pettanr.GroundColor extends Peta.Element @has_picture: () -> false - panel: () -> - new Pettanr.Panel({id: @get('panel_id')}) + panel: (options = {}) -> + new Pettanr.Panel({id: @get('panel_id')}, options) element_face: () -> new Pettanr.Views.GroundColor.ElementFace({element: this}) diff --git a/app/assets/javascripts/models/ground_picture.js.coffee b/app/assets/javascripts/models/ground_picture.js.coffee index ec7bf157..251b8ab7 100644 --- a/app/assets/javascripts/models/ground_picture.js.coffee +++ b/app/assets/javascripts/models/ground_picture.js.coffee @@ -17,8 +17,8 @@ class Pettanr.GroundPicture extends Peta.Element @repeat_texts: () -> ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'] - panel: () -> - new Pettanr.Panel({id: @get('panel_id')}) + panel: (options = {}) -> + new Pettanr.Panel({id: @get('panel_id')}, options) picture: () -> new Pettanr.Picture({id: @get('picture_id')}) diff --git a/app/assets/javascripts/models/speech_balloon.js.coffee b/app/assets/javascripts/models/speech_balloon.js.coffee index 341fc01e..0294f03b 100644 --- a/app/assets/javascripts/models/speech_balloon.js.coffee +++ b/app/assets/javascripts/models/speech_balloon.js.coffee @@ -13,8 +13,8 @@ class Pettanr.SpeechBalloon extends Peta.Element t: null } - panel: () -> - new Pettanr.Panel({id: @get('panel_id')}) + panel: (options = {}) -> + new Pettanr.Panel({id: @get('panel_id')}, options) speech_balloon_template: () -> new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')}) diff --git a/app/assets/javascripts/peta/binder.js.coffee b/app/assets/javascripts/peta/binder.js.coffee index 1aa35a0b..e56a3bda 100644 --- a/app/assets/javascripts/peta/binder.js.coffee +++ b/app/assets/javascripts/peta/binder.js.coffee @@ -12,6 +12,8 @@ class Peta.Binder extends Peta.Content # Instance Methods + play_url: () -> + Pettanr.url(@table_name(), 'play', {id: @get('id')}) @test: () -> super() diff --git a/app/assets/javascripts/peta/item.js.coffee b/app/assets/javascripts/peta/item.js.coffee index fa9fa2a9..70c2056e 100644 --- a/app/assets/javascripts/peta/item.js.coffee +++ b/app/assets/javascripts/peta/item.js.coffee @@ -145,6 +145,21 @@ class Peta.Item extends Backbone.Model icon_view: (half) -> new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half}) + index_url: () -> + Pettanr.url(@table_name(), 'index', {id: @get('id')}) + + show_url: () -> + Pettanr.url(@table_name(), 'show', {id: @get('id')}) + + prof_url: () -> + Pettanr.url(@table_name(), 'show', {id: @get('id'), format: 'prof'}) + + edit_url: () -> + Pettanr.url(@table_name(), 'edit', {id: @get('id')}) + + destroy_url: () -> + Pettanr.url(@table_name(), 'destroy', {id: @get('id')}) + is_editize: () -> @editor diff --git a/app/assets/javascripts/pettanr.js.coffee b/app/assets/javascripts/pettanr.js.coffee index e3dc5aa3..6c39f298 100644 --- a/app/assets/javascripts/pettanr.js.coffee +++ b/app/assets/javascripts/pettanr.js.coffee @@ -106,6 +106,7 @@ class Pettanr constructor: () -> @params = {} @operators = window.operators + _.extend(this, Backbone.Events) set_model: () -> @my_controller = Manifest.manifest().controllers[@params['controller']] @@ -129,13 +130,13 @@ class Pettanr @set_list() @list.open(() => pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, @params) - f = new Locmare.Filer({ - el: "#pettanr", + filer = new Locmare.Filer({ item_name: @list.item_name, items: @list.items(), pager: pager, operators: @operators }) + @trigger('ready', filer) ) false @@ -163,7 +164,7 @@ class Pettanr }) el ||= $("#pettanr") el.html(profiler.render().el) - @redraw_title(@params) + @trigger('retitle', @params) set_new: () -> @set_model() @@ -197,11 +198,62 @@ class Pettanr form_edit: () -> @set_edit() - redraw_title: (params, str = null) -> + class Pettanr.AppBody extends Backbone.View + el: "#pettanr" + + initialize: (options) -> + super(options) + + render: () -> + this.$el.html('') + this + + refresh: (body) -> + @listenTo(body, 'navigate', @navigate) + this.$el.html(body.el) + + fire: (params) -> + c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller'] + controller = new c + controller.params = params + @listenTo(controller, 'ready', @refresh) + @listenTo(controller, 'retitle', @retitle) + controller[params['action']]() + + navigate: (url) -> + window.router.navigate(url, true) + + retitle: (params, str = null) -> t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title') site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption) $(document).attr('title', t + ' - ' + site_caption) + class Pettanr.Dialog extends Backbone.View + + initialize: (options) -> + super(options) + + render: () -> + this.$el.html('') + this + + refresh: (body) -> + @listenTo(body, 'navigate', @navigate) + this.$el.html(body.render().el) + + fire: (params) -> + c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller'] + controller = new c + controller.params = params + @listenTo(controller, 'ready', @refresh) + # ignore retitle message + # @listenTo(controller, 'retitle', @retitle) + controller[params['action']]() + + local_navigate: (url) -> + window.router.local_navigate(url, true) + + #>> https://gist.github.com/davidjbeveridge/3813724 @xeach: (arr, func, index=0) -> if index < arr.length then [ func(arr[index], index), @xeach(arr, func, index + 1)... ] else [] diff --git a/app/assets/javascripts/routes.js.coffee b/app/assets/javascripts/routes.js.coffee index 9fe1d8ed..f1a3b420 100644 --- a/app/assets/javascripts/routes.js.coffee +++ b/app/assets/javascripts/routes.js.coffee @@ -19,12 +19,11 @@ class Pettanr.Router extends Backbone.Router initialize: () -> _.each @peta_routes(), (r) => @route(r.route, r.callback) + @body = new Pettanr.AppBody() - fire: (params, el) -> - c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller'] - controller = new c - controller.params = params - controller[params['action']](el) + fire: (params, dialog) -> + b = dialog || @body + b.fire(params) peta_routes: () -> [ diff --git a/app/assets/javascripts/tags.js.coffee b/app/assets/javascripts/tags.js.coffee index 47826898..3aa22a7d 100644 --- a/app/assets/javascripts/tags.js.coffee +++ b/app/assets/javascripts/tags.js.coffee @@ -14,12 +14,11 @@ class Tag.Img extends Backbone.View this.$el.addClass(@class_name) if @class_name this -class Tag.A extends Backbone.View +class Tag.A_ extends Backbone.View tagName: 'a' initialize: (options) -> @attr = options.attr || {} - @handler_name = options.handler_name @content = options.content @class_name = options.class_name @@ -27,13 +26,25 @@ class Tag.A extends Backbone.View this.$el.attr(@attr) @el.className = @class_name if @class_name this.$el.html(@content) - if @handler_name - @events = {click: 'click'} - @delegateEvents(@events) + this + +class Tag.A extends Tag.A_ + + initialize: (options) -> + super(options) + @navigate = options.navigate + + render: () -> + super() + @events = {click: 'click'} + @delegateEvents(@events) this click: () -> - window.router.navigate(@handler_name, true) + if @navigate + window.router.navigate(@navigate, true) + else + @trigger('click') return false class Tag.Div extends Backbone.View diff --git a/app/assets/javascripts/views/common.js.coffee b/app/assets/javascripts/views/common.js.coffee index 6e6b1cb3..9333ed77 100644 --- a/app/assets/javascripts/views/common.js.coffee +++ b/app/assets/javascripts/views/common.js.coffee @@ -35,15 +35,21 @@ class Pettanr.Views.Common.Icon extends Backbone.View @icon = new Pettanr.Image.Icon({item: @item, half: @half}) @icon_button = new Tag.A({ attr: {href: '/' + @icon_url}, - handler_name: @icon_url, class_name: 'icon', content: @icon.render().el }) + @listenTo(@icon_button, 'click', @click) render: () -> this.$el.html(@icon_button.render().el) this + click: () -> + @trigger('click') + + url: () -> + @icon_url + class Pettanr.Views.Common.Caption extends Backbone.View tagName: 'span' @@ -55,14 +61,20 @@ class Pettanr.Views.Common.Caption extends Backbone.View @url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) @linked_name = new Tag.A({ attr: {href: '/' + @url}, - handler_name: @url, content: _.escape(@name) }) + @listenTo(@linked_name, 'click', @click) render: () -> this.$el.html(@linked_name.render().el) this + click: () -> + @trigger('click') + + url: () -> + @url + class Pettanr.Views.Common.IconWithCaption extends Backbone.View tagName: 'span' @@ -73,6 +85,8 @@ class Pettanr.Views.Common.IconWithCaption extends Backbone.View @length = options.length @icon = new Pettanr.Views.Common.Icon({item: @item, half: @half}) @caption = new Pettanr.Views.Common.Caption({item: @item, column_name: @column_name, length: @length}) + @listenTo(@icon, 'click', @click) + @listenTo(@caption, 'click', @click) render: () -> this.$el.html('') @@ -80,6 +94,12 @@ class Pettanr.Views.Common.IconWithCaption extends Backbone.View this.$el.append(@caption.render().el) this + click: () -> + @trigger('click') + + url: () -> + @icon.url() + class Pettanr.Views.Common.Summary extends Backbone.View initialize: (options) -> diff --git a/app/assets/javascripts/views/ground_colors/show.js.coffee b/app/assets/javascripts/views/ground_colors/show.js.coffee index eb037074..c00b29ca 100644 --- a/app/assets/javascripts/views/ground_colors/show.js.coffee +++ b/app/assets/javascripts/views/ground_colors/show.js.coffee @@ -22,14 +22,47 @@ class Pettanr.Views.GroundColor.Show extends Backbone.View caption_url: caption_url, prof_url: prof_url }) - @panel = @item.panel() - @panel.fetch({cache: true}).done => + @listenTo(this, 'ready', @ready) + @panel = @item.panel({with_elements: true}) + @panel.fetch({cache: false}).done => # with elements @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) - @render() + @body = new Pettanr.Views.Panel.Body({ + panel: @panel, + operators: @operators, + spot: @item + }) + @credits = new Pettanr.Views.Panel.ShowModule.Credits({ + pictures: @panel.licensed_pictures() + }) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + @trigger('ready') render: () -> this.$el.html('') + this + + ready: () -> + this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@author.render().el) - this + this.$el.append(@body.render().el) + this.$el.append(@credits.render().el) + rb = new Tag.RowBreak() + this.$el.append(rb.render().el) + + click_show: () -> + window.router.navigate(@item.show_url(), true) + + click_author: () -> + window.router.navigate(@panel.author().show_url(), true) + + click_prof: () -> + window.router.navigate(@item.prof_url(), true) + + click_credit_icon: (item) -> + window.router.navigate(item.show_url(), true) diff --git a/app/assets/javascripts/views/ground_pictures/show.js.coffee b/app/assets/javascripts/views/ground_pictures/show.js.coffee index 3d6b3a7b..1e1ff9a0 100644 --- a/app/assets/javascripts/views/ground_pictures/show.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/show.js.coffee @@ -22,14 +22,47 @@ class Pettanr.Views.GroundPicture.Show extends Backbone.View caption_url: caption_url, prof_url: prof_url }) - @panel = @item.panel() - @panel.fetch({cache: true}).done => + @listenTo(this, 'ready', @ready) + @panel = @item.panel({with_elements: true}) + @panel.fetch({cache: false}).done => # with elements @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) - @render() + @body = new Pettanr.Views.Panel.Body({ + panel: @panel, + operators: @operators, + spot: @item + }) + @credits = new Pettanr.Views.Panel.ShowModule.Credits({ + pictures: @panel.licensed_pictures() + }) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + @trigger('ready') render: () -> this.$el.html('') + this + + ready: () -> + this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@author.render().el) - this + this.$el.append(@body.render().el) + this.$el.append(@credits.render().el) + rb = new Tag.RowBreak() + this.$el.append(rb.render().el) + + click_show: () -> + window.router.navigate(@item.show_url(), true) + + click_author: () -> + window.router.navigate(@panel.author().show_url(), true) + + click_prof: () -> + window.router.navigate(@item.prof_url(), true) + + click_credit_icon: (item) -> + window.router.navigate(item.show_url(), true) diff --git a/app/assets/javascripts/views/panel_pictures/show.js.coffee b/app/assets/javascripts/views/panel_pictures/show.js.coffee index ee1b0402..6fd71d92 100644 --- a/app/assets/javascripts/views/panel_pictures/show.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/show.js.coffee @@ -22,6 +22,7 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View caption_url: caption_url, prof_url: prof_url }) + @listenTo(this, 'ready', @ready) @panel = @item.panel({with_elements: true}) @panel.fetch({cache: false}).done => # with elements @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) @@ -30,16 +31,38 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View operators: @operators, spot: @item }) - @credits = new Pettanr.Views.Panel.Show.Credits({panel: @panel}) - rb = new Tag.RowBreak() - this.$el.append(rb.render().el) - @render() + @credits = new Pettanr.Views.Panel.ShowModule.Credits({ + pictures: @panel.licensed_pictures() + }) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + @trigger('ready') render: () -> this.$el.html('') + this + + ready: () -> + this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@author.render().el) this.$el.append(@body.render().el) this.$el.append(@credits.render().el) - this + rb = new Tag.RowBreak() + this.$el.append(rb.render().el) + + click_show: () -> + window.router.navigate(@item.show_url(), true) + + click_author: () -> + window.router.navigate(@panel.author().show_url(), true) + + click_prof: () -> + window.router.navigate(@item.prof_url(), true) + + click_credit_icon: (item) -> + window.router.navigate(item.show_url(), true) diff --git a/app/assets/javascripts/views/panels/body.js.coffee b/app/assets/javascripts/views/panels/body.js.coffee index 6ada51f7..3221b307 100644 --- a/app/assets/javascripts/views/panels/body.js.coffee +++ b/app/assets/javascripts/views/panels/body.js.coffee @@ -113,19 +113,30 @@ class Pettanr.Views.Panel.Footer extends Backbone.View initialize: (options) -> @panel = options.panel @operators = options.operators + @panel_icon = new Pettanr.Views.Panel.Icon({item: @panel, half: true}) + @author_icon = new Pettanr.Views.Author.Icon({item: @panel.author(), half: true}) + @edit_button = new Pettanr.Views.Show.LinkedEditButton({item: @panel}) + @listenTo(@panel_icon, 'click', @click_panel) + @listenTo(@author_icon, 'click', @click_author) + @listenTo(@edit_button, 'click', @click_edit) render: () -> this.$el.html('') + this.$el.append(@panel_icon.render().el) + this.$el.append(@author_icon.render().el) this.$el.append( - (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el + Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')) ) - this.$el.append( - (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el - ) - this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at'))) if @panel.is_own(@operators) - this.$el.append( - (new Pettanr.Views.Show.LinkedEditButton({item: @panel})).render().el - ) + this.$el.append(@edit_button.render().el) this + click_panel: () -> + @trigger('click:panel') + + click_author: () -> + @trigger('click:author') + + click_edit: () -> + @trigger('click:edit') + diff --git a/app/assets/javascripts/views/panels/show.js.coffee b/app/assets/javascripts/views/panels/show.js.coffee index 6e34cdb1..bbfb829a 100644 --- a/app/assets/javascripts/views/panels/show.js.coffee +++ b/app/assets/javascripts/views/panels/show.js.coffee @@ -9,16 +9,13 @@ class Pettanr.Views.Panel.Show extends Backbone.View @operators = options.operators @spot = options.spot - icon_url = Pettanr.url(@panel.table_name(), 'show', {id: @panel.get('id')}) - caption_url = Pettanr.url(@panel.table_name(), 'show', {id: @panel.get('id')}) - prof_url = Pettanr.url(@panel.table_name(), 'show', {id: @panel.get('id'), format: 'prof'}) - @header = new Pettanr.Views.Scroll.ShowModule.Header({ + @header = new Pettanr.Views.Panel.ShowModule.Header({ item: @panel, operators: @operators, caption: @panel.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url + icon_url: @panel.show_url(), + caption_url: @panel.show_url(), + prof_url: @panel.prof_url() }) @body = new Pettanr.Views.Panel.Body({ panel: @panel, @@ -29,9 +26,16 @@ class Pettanr.Views.Panel.Show extends Backbone.View panel: @panel, operators: @operators }) - @credits = new Pettanr.Views.Panel.Show.Credits({ + @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@footer, 'click:panel', @click_show) + @listenTo(@footer, 'click:author', @click_author) + @listenTo(@footer, 'click:edit', @click_edit) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) render: () -> this.$el.html('') @@ -43,23 +47,52 @@ class Pettanr.Views.Panel.Show extends Backbone.View this.$el.append(rb.render().el) this -class Pettanr.Views.Panel.Show.Credits extends Backbone.View + click_show: () -> + window.router.navigate(@panel.show_url(), true) + + click_author: () -> + window.router.navigate(@panel.author().show_url(), true) + + click_edit: () -> + window.router.navigate(@panel.edit_url(), true) + + click_prof: () -> + window.router.navigate(@panel.prof_url(), true) + + click_credit_icon: (item) -> + window.router.navigate(item.show_url(), true) + +class Pettanr.Views.Panel.ShowModule +class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + +class Pettanr.Views.Panel.ShowModule.Credits extends Backbone.View tagName: 'div' className: 'credits' initialize: (options) -> @pictures = options.pictures + @credited = {} render: () -> this.$el.html('') - _.each @pictures, (picture) => + _.each @pictures, (picture, pid) => @add_picture(picture) this add_picture: (picture) -> - if not @pictures[picture.get('id')] + + add_picture: (picture) -> + pid = picture.get('id') + if not @credited[pid] picture.fetch({cache: true}).done => - @pictures[picture.get('id')] = picture + @credited[pid] = picture credit = picture.credit_view() + @listenTo(credit, 'click:icon', @click_credit_icon) this.$el.append(credit.render().el) + click_credit_icon: (item) -> + @trigger('click:credit:icon', item) + diff --git a/app/assets/javascripts/views/pictures/credit.js.coffee b/app/assets/javascripts/views/pictures/credit.js.coffee index d8cf4dfd..a8a9e842 100644 --- a/app/assets/javascripts/views/pictures/credit.js.coffee +++ b/app/assets/javascripts/views/pictures/credit.js.coffee @@ -11,8 +11,13 @@ class Pettanr.Views.Picture.Credit extends Backbone.View render: () -> this.$el.html('') if @with_icon - this.$el.append(@item.credit_icon.render().el) + p = @item.credit_icon_view() + @listenTo(p, 'click', @click) + this.$el.append(p.render().el) this.$el.append(@item.credit) this.$el.append((new Tag.RowBreak()).render().el) this + click: () -> + @trigger('click:icon', @item) + diff --git a/app/assets/javascripts/views/pictures/credit_icon.js.coffee b/app/assets/javascripts/views/pictures/credit_icon.js.coffee index cbdaf25a..30aa5e73 100644 --- a/app/assets/javascripts/views/pictures/credit_icon.js.coffee +++ b/app/assets/javascripts/views/pictures/credit_icon.js.coffee @@ -11,9 +11,12 @@ class Pettanr.Views.Picture.CreditIcon extends Backbone.View picture = @item.tmb_opt_img_tag() linked_picture = new Tag.A({ attr: {href: @item.url}, - handler_name: 'pictures/' + @item.get('id'), content: picture.render().el }) + @listenTo(linked_picture, 'click', @click) this.$el.append(linked_picture.render().el) this + click: () -> + @trigger('click') + diff --git a/app/assets/javascripts/views/resource_pictures/credit.js.coffee b/app/assets/javascripts/views/resource_pictures/credit.js.coffee index 6b12575c..964c49e5 100644 --- a/app/assets/javascripts/views/resource_pictures/credit.js.coffee +++ b/app/assets/javascripts/views/resource_pictures/credit.js.coffee @@ -11,6 +11,7 @@ class Pettanr.Views.ResourcePicture.Credit extends Backbone.View this.$el.html('') if @with_icon p = @item.credit_icon_view() + @listenTo(p, 'click', @click) this.$el.append(p.render().el) f = (data, status) => this.$el.append(data) @@ -19,3 +20,6 @@ class Pettanr.Views.ResourcePicture.Credit extends Backbone.View $.get(@url, null, f, 'html') this + click: () -> + @trigger('click:icon', @item) + diff --git a/app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee b/app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee index 5cd50b76..2491c275 100644 --- a/app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee +++ b/app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee @@ -11,9 +11,12 @@ class Pettanr.Views.ResourcePicture.CreditIcon extends Backbone.View resource_picture = @item.tmb_opt_img_tag() linked_resource_picture = new Tag.A({ attr: {href: @item.url}, - handler_name: 'resource_pictures/' + @item.get('id'), content: resource_picture.render().el }) + @listenTo(linked_resource_picture, 'click', @click) this.$el.append(linked_resource_picture.render().el) this + click: () -> + @trigger('click') + diff --git a/app/assets/javascripts/views/scrolls/show.js.coffee b/app/assets/javascripts/views/scrolls/show.js.coffee index baa530fb..5de1866a 100644 --- a/app/assets/javascripts/views/scrolls/show.js.coffee +++ b/app/assets/javascripts/views/scrolls/show.js.coffee @@ -16,19 +16,22 @@ class Pettanr.Views.Scroll.Show extends Backbone.View initialize: (options) -> @item = options.item @operators = options.operators - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')}) - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) @header = new Pettanr.Views.Scroll.ShowModule.Header({ item: @item, operators: @operators, caption: @item.get('title'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url + icon_url: @item.show_url(), + caption_url: @item.play_url(), + prof_url: @item.prof_url() }) @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) @owner = new Pettanr.Views.Scroll.ShowModule.Owner({item: @item, operators: @operators}) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_play) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@owner, 'click:edit', @click_edit) + @listenTo(@owner, 'click:destroy', @click_destroy) render: () -> this.$el.html('') @@ -37,3 +40,21 @@ class Pettanr.Views.Scroll.Show extends Backbone.View this.$el.append(@owner.render().el) if @item.is_own(@operators) this + click_show: () -> + window.router.navigate(@item.show_url(), true) + + click_play: () -> + window.router.navigate(@item.play_url(), true) + + click_prof: () -> + window.router.navigate(@item.prof_url(), true) + + click_author: () -> + window.router.navigate(@item.author().show_url(), true) + + click_edit: () -> + window.router.navigate(@item.edit_url(), true) + + click_destroy: () -> + window.router.navigate(@item.destroy_url(), true) + diff --git a/app/assets/javascripts/views/show.js.coffee b/app/assets/javascripts/views/show.js.coffee index 3035497c..69160ac9 100644 --- a/app/assets/javascripts/views/show.js.coffee +++ b/app/assets/javascripts/views/show.js.coffee @@ -14,23 +14,23 @@ class Pettanr.Views.Show.Header extends Backbone.View @icon = new Pettanr.Image.Icon({item: @item, half: true}) @icon_button = new Tag.A({ attr: {href: '/' + @icon_url}, - handler_name: @icon_url, class_name: 'icon', content: @icon.render().el }) @caption = new Tag.A({ attr: {href: '/' + @caption_url}, - handler_name: @caption_url, class_name: 'caption', content: _.escape(@title) }) @prof = new Pettanr.Image.SymbolImg({attr: {src: '/images/prof.gif'}, half: true}) @prof_button = new Tag.A({ attr: {href: '/' + @prof_url}, - handler_name: @prof_url, class_name: 'prof', content: @prof.render().el }) + @listenTo(@icon, 'click', @click_icon) + @listenTo(@caption, 'click', @click_caption) + @listenTo(@prof_button, 'click', @click_prof) render: () -> this.$el.html('') @@ -39,6 +39,15 @@ class Pettanr.Views.Show.Header extends Backbone.View this.$el.append(@prof_button.render().el) this + click_icon: () -> + @trigger('click:icon') + + click_caption: () -> + @trigger('click:caption') + + click_prof: () -> + @trigger('click:prof') + class Pettanr.Views.Show.HeaderAuthor extends Backbone.View tagName: 'div' @@ -47,12 +56,12 @@ class Pettanr.Views.Show.HeaderAuthor extends Backbone.View @author = @item.author() @author.fetch({cache: true}).done => name = @author.escape('name') - author_url = Pettanr.url(@author.table_name(), 'show', {id: @author.get('id')}) + author_url = @author.show_url() @linked_author = new Tag.A({ attr: {href: '/' + author_url}, - handler_name: author_url, content: name }) + @listenTo(@linked_author, 'click', @click) @render() render: () -> @@ -61,28 +70,33 @@ class Pettanr.Views.Show.HeaderAuthor extends Backbone.View this.$el.append(@linked_author.render().el) if @linked_author this + click: () -> + @trigger('click:author') + class Pettanr.Views.Show.LinkedEditButton extends Tag.A initialize: (options) -> item = options.item - edit_url = Pettanr.url(item.table_name(), 'edit', {id: item.get('id')}) super({ - attr: {href: '/' + edit_url}, - handler_name: edit_url, + attr: {href: '/' + item.edit_url()}, content: I18n.t('link.edit') }) + url: () -> + @url + class Pettanr.Views.Show.LinkedDestroyButton extends Tag.A initialize: (options) -> item = options.item - edit_url = Pettanr.url(item.table_name(), 'destroy', {id: item.get('id')}) super({ - attr: {href: '/' + edit_url}, - handler_name: edit_url, + attr: {href: '/' + item.destroy_url()}, content: I18n.t('link.destroy') }) + url: () -> + @destroy_url + class Pettanr.Views.Show.OwnerFooter extends Backbone.View tagName: 'div' className: 'show-owner-footer' @@ -93,6 +107,8 @@ class Pettanr.Views.Show.OwnerFooter extends Backbone.View @operators = options.operators @edit = new Pettanr.Views.Show.LinkedEditButton({item: @item}) @destroy = new Pettanr.Views.Show.LinkedDestroyButton({item: @item}) + @listenTo(@edit, 'click', @click_edit) + @listenTo(@destroy, 'click', @click_destroy) render: () -> this.$el.html('') @@ -100,6 +116,12 @@ class Pettanr.Views.Show.OwnerFooter extends Backbone.View this.$el.append(@destroy.render().el) this + click_edit: () -> + @trigger('click:edit') + + click_destroy: () -> + @trigger('click:destroy') + class Pettanr.Views.Show.Owner extends Backbone.View tagName: 'div' @@ -112,6 +134,8 @@ class Pettanr.Views.Show.Owner extends Backbone.View content: I18n.t('editor') }) @footer = new Pettanr.Views.Show.OwnerFooter({item: @item, operators: @operators}) + @listenTo(@footer, 'click:edit', @click_edit) + @listenTo(@footer, 'click:destroy', @click_destroy) render: () -> this.$el.html('') @@ -119,3 +143,11 @@ class Pettanr.Views.Show.Owner extends Backbone.View this.$el.append(@footer.render().el) this + click_edit: () -> + @trigger('click:footer:edit') + @trigger('click:edit') + + click_destroy: () -> + @trigger('click:footer:destroy') + @trigger('click:destroy') + diff --git a/app/assets/javascripts/views/speech_balloons/show.js.coffee b/app/assets/javascripts/views/speech_balloons/show.js.coffee index be851b1d..0ebfbaf8 100644 --- a/app/assets/javascripts/views/speech_balloons/show.js.coffee +++ b/app/assets/javascripts/views/speech_balloons/show.js.coffee @@ -22,14 +22,47 @@ class Pettanr.Views.SpeechBalloon.Show extends Backbone.View caption_url: caption_url, prof_url: prof_url }) - @panel = @item.panel() - @panel.fetch({cache: true}).done => + @listenTo(this, 'ready', @ready) + @panel = @item.panel({with_elements: true}) + @panel.fetch({cache: false}).done => # with elements @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) - @render() + @body = new Pettanr.Views.Panel.Body({ + panel: @panel, + operators: @operators, + spot: @item + }) + @credits = new Pettanr.Views.Panel.ShowModule.Credits({ + pictures: @panel.licensed_pictures() + }) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + @trigger('ready') render: () -> this.$el.html('') + this + + ready: () -> + this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@author.render().el) - this + this.$el.append(@body.render().el) + this.$el.append(@credits.render().el) + rb = new Tag.RowBreak() + this.$el.append(rb.render().el) + + click_show: () -> + window.router.navigate(@item.show_url(), true) + + click_author: () -> + window.router.navigate(@panel.author().show_url(), true) + + click_prof: () -> + window.router.navigate(@item.prof_url(), true) + + click_credit_icon: (item) -> + window.router.navigate(item.show_url(), true) diff --git a/app/assets/javascripts/views/top/account.js.coffee b/app/assets/javascripts/views/top/account.js.coffee index f2902747..d21ad9fd 100644 --- a/app/assets/javascripts/views/top/account.js.coffee +++ b/app/assets/javascripts/views/top/account.js.coffee @@ -3,15 +3,21 @@ class Pettanr.Views.Top.Account extends Backbone.View initialize: (options) -> @operators = options.operators + @author = @operators.author + @artist = @operators.artist + if @author + @author_view = @author.icon_with_caption_view() + @listenTo(@author_view, 'click', @author_click) + if @artist + @artist_view = @artist.icon_with_caption_view() + @listenTo(@artist_view, 'click', @artist_click) render: () -> this.$el.html('') - if au = @operators.author - author = au.icon_with_caption_view() - this.$el.append(author.render().el) - if ar = @operators.artist - artist = ar.icon_with_caption_view() - this.$el.append(artist.render().el) + if @author_view + this.$el.append(@author_view.render().el) + if @artist_view + this.$el.append(@artist_view.render().el) sign_out = new Tag.A({ attr: {href: '/'}, class_name: 'sign_out', @@ -21,6 +27,12 @@ class Pettanr.Views.Top.Account extends Backbone.View @delegateEvents({'click .sign_out': 'sign_out'}) this + author_click: () -> + window.router.navigate(@author_view.url(), true) + + artist_click: () -> + window.router.navigate(@artist_view.url(), true) + sign_out: () -> user = new Backbone.Model({id: 0}) user.url = '/users/sign_out' -- 2.11.0