From dbe1cc622a8fda2e7f24294b97dbd064c1cb197e Mon Sep 17 00:00:00 2001 From: yasushiito Date: Mon, 20 Jul 2015 15:03:09 +0900 Subject: [PATCH] fix: view system2 --- .../javascripts/controllers/artists.js.coffee | 3 +- .../javascripts/controllers/authors.js.coffee | 3 +- .../javascripts/controllers/balloons.js.coffee | 3 +- .../controllers/comic_stories.js.coffee | 3 +- .../javascripts/controllers/comics.js.coffee | 3 +- .../controllers/ground_colors.js.coffee | 3 +- .../controllers/ground_pictures.js.coffee | 3 +- .../controllers/license_groups.js.coffee | 3 +- .../javascripts/controllers/licenses.js.coffee | 3 +- .../controllers/original_pictures.js.coffee | 3 +- .../controllers/panel_pictures.js.coffee | 3 +- .../javascripts/controllers/panels.js.coffee | 3 +- .../javascripts/controllers/pictures.js.coffee | 3 +- .../resource_picture_pictures.js.coffee | 3 +- .../controllers/resource_pictures.js.coffee | 3 +- .../controllers/scroll_panels.js.coffee | 3 +- .../javascripts/controllers/scrolls.js.coffee | 3 +- .../javascripts/controllers/sheet_panels.js.coffee | 3 +- .../javascripts/controllers/sheets.js.coffee | 3 +- .../controllers/speech_balloon_templates.js.coffee | 3 +- .../controllers/speech_balloons.js.coffee | 3 +- .../javascripts/controllers/speeches.js.coffee | 3 +- .../javascripts/controllers/stories.js.coffee | 3 +- .../javascripts/controllers/story_sheets.js.coffee | 3 +- .../controllers/system_pictures.js.coffee | 3 +- .../controllers/writing_formats.js.coffee | 3 +- .../javascripts/editor/panel_editor.js.coffee | 2 +- .../body/file_body/file_item/icon/base.js.coffee | 32 ---- .../file_body/file_item/icon/default.js.coffee | 18 +-- .../file_body/file_item/symbol/default.js.coffee | 19 +-- .../file_item/symbol/default/face/image.js.coffee | 6 +- .../javascripts/models/ground_picture.js.coffee | 12 -- .../javascripts/models/original_picture.js.coffee | 13 +- .../javascripts/models/panel_picture.js.coffee | 12 -- app/assets/javascripts/models/picture.js.coffee | 21 +-- .../javascripts/models/resource_picture.js.coffee | 32 ++-- app/assets/javascripts/models/sheet.js.coffee | 4 + .../javascripts/models/system_picture.js.coffee | 16 +- app/assets/javascripts/peta/content.js.coffee | 5 +- app/assets/javascripts/peta/item.js.coffee | 27 ++-- app/assets/javascripts/pettanr/file.js.coffee | 11 +- app/assets/javascripts/view.js.coffee | 8 +- app/assets/javascripts/view/button.js.coffee | 9 +- .../javascripts/view/button/item_action.js.coffee | 11 +- .../view/button/shortable_caption.js.coffee | 9 +- app/assets/javascripts/view/credit.js.coffee | 66 ++++++++ app/assets/javascripts/view/credits.js.coffee | 29 ++++ app/assets/javascripts/view/faced_label.js.coffee | 18 ++- app/assets/javascripts/view/icon.js.coffee | 14 +- app/assets/javascripts/view/show.js.coffee | 67 ++++++++ app/assets/javascripts/view/show/footer.js.coffee | 19 +-- .../javascripts/view/show/footer/footer.js.coffee | 44 +++-- app/assets/javascripts/view/show/header.js.coffee | 42 ++--- .../view/show/header/authored_by.js.coffee | 29 ++-- app/assets/javascripts/view/summary.js.coffee | 18 +++ .../javascripts/view/summary/binder.js.coffee | 29 ++++ app/assets/javascripts/view/summary/leaf.js.coffee | 67 ++++++++ .../javascripts/views/artists/show.js.coffee | 12 +- .../javascripts/views/artists/summary.js.coffee | 2 +- .../javascripts/views/authors/show.js.coffee | 21 +-- .../javascripts/views/authors/summary.js.coffee | 2 +- .../javascripts/views/balloons/show.js.coffee | 65 ++------ .../javascripts/views/balloons/summary.js.coffee | 2 +- .../views/comic_stories/summary.js.coffee | 2 +- app/assets/javascripts/views/comics/show.js.coffee | 57 +------ .../javascripts/views/comics/summary.js.coffee | 2 +- .../javascripts/views/folders/summary.js.coffee | 2 +- .../javascripts/views/ground_colors/show.js.coffee | 65 ++------ .../views/ground_colors/summary.js.coffee | 2 +- .../views/ground_pictures/element.js.coffee | 2 +- .../views/ground_pictures/show.js.coffee | 65 ++------ .../views/ground_pictures/summary.js.coffee | 4 +- .../views/license_groups/show.js.coffee | 5 +- .../views/license_groups/summary.js.coffee | 2 +- .../javascripts/views/licenses/show.js.coffee | 5 +- .../javascripts/views/licenses/summary.js.coffee | 8 +- .../views/original_pictures/show.js.coffee | 61 ++++--- .../views/original_pictures/summary.js.coffee | 15 +- .../views/panel_pictures/element.js.coffee | 2 +- .../views/panel_pictures/show.js.coffee | 65 ++------ .../views/panel_pictures/summary.js.coffee | 16 +- app/assets/javascripts/views/panels/show.js.coffee | 44 +---- .../javascripts/views/panels/summary.js.coffee | 2 +- .../javascripts/views/pictures/credit.js.coffee | 24 --- .../views/pictures/credit_icon.js.coffee | 17 -- .../javascripts/views/pictures/summary.js.coffee | 2 +- .../resource_picture_pictures/summary.js.coffee | 4 +- .../views/resource_pictures/credit.js.coffee | 24 --- .../views/resource_pictures/credit_icon.js.coffee | 22 --- .../views/resource_pictures/show.js.coffee | 177 ++++++--------------- .../views/resource_pictures/summary.js.coffee | 4 +- .../views/scroll_panels/summary.js.coffee | 2 +- .../javascripts/views/scrolls/play.js.coffee | 41 +---- .../javascripts/views/scrolls/show.js.coffee | 55 +------ .../javascripts/views/scrolls/summary.js.coffee | 2 +- .../views/sheet_panels/summary.js.coffee | 2 +- app/assets/javascripts/views/sheets/play.js.coffee | 25 +-- app/assets/javascripts/views/sheets/show.js.coffee | 34 +--- .../javascripts/views/sheets/summary.js.coffee | 2 +- .../views/speech_balloon_templates/show.js.coffee | 15 +- .../speech_balloon_templates/summary.js.coffee | 2 +- .../views/speech_balloons/show.js.coffee | 66 ++------ .../views/speech_balloons/summary.js.coffee | 2 +- .../javascripts/views/speeches/show.js.coffee | 65 ++------ .../javascripts/views/speeches/summary.js.coffee | 2 +- .../javascripts/views/stories/show.js.coffee | 34 +--- .../javascripts/views/stories/summary.js.coffee | 2 +- .../views/story_sheets/summary.js.coffee | 2 +- .../views/system_pictures/show.js.coffee | 5 +- .../views/system_pictures/summary.js.coffee | 2 +- .../views/writing_formats/show.js.coffee | 5 +- .../views/writing_formats/summary.js.coffee | 2 +- app/assets/javascripts/yasapp.js | 3 + 113 files changed, 733 insertions(+), 1228 deletions(-) create mode 100644 app/assets/javascripts/view/credit.js.coffee create mode 100644 app/assets/javascripts/view/credits.js.coffee create mode 100644 app/assets/javascripts/view/summary.js.coffee create mode 100644 app/assets/javascripts/view/summary/binder.js.coffee create mode 100644 app/assets/javascripts/view/summary/leaf.js.coffee delete mode 100644 app/assets/javascripts/views/pictures/credit.js.coffee delete mode 100644 app/assets/javascripts/views/pictures/credit_icon.js.coffee delete mode 100644 app/assets/javascripts/views/resource_pictures/credit.js.coffee delete mode 100644 app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee diff --git a/app/assets/javascripts/controllers/artists.js.coffee b/app/assets/javascripts/controllers/artists.js.coffee index 96c8caf0..ad7b8364 100644 --- a/app/assets/javascripts/controllers/artists.js.coffee +++ b/app/assets/javascripts/controllers/artists.js.coffee @@ -17,8 +17,7 @@ class Pettanr.ArtistsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('name')) - show = new Pettanr.Views.Artist.Show({ - item: @item, + show = new Pettanr.Views.Artist.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/authors.js.coffee b/app/assets/javascripts/controllers/authors.js.coffee index 1a961edd..d0a46cdd 100644 --- a/app/assets/javascripts/controllers/authors.js.coffee +++ b/app/assets/javascripts/controllers/authors.js.coffee @@ -17,8 +17,7 @@ class Pettanr.AuthorsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('name')) - show = new Pettanr.Views.Author.Show({ - item: @item, + show = new Pettanr.Views.Author.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/balloons.js.coffee b/app/assets/javascripts/controllers/balloons.js.coffee index 7992a5f9..38da1bbf 100644 --- a/app/assets/javascripts/controllers/balloons.js.coffee +++ b/app/assets/javascripts/controllers/balloons.js.coffee @@ -27,8 +27,7 @@ class Pettanr.BalloonsController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.Balloon.Show({ - item: @item, + show = new Pettanr.Views.Balloon.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/comic_stories.js.coffee b/app/assets/javascripts/controllers/comic_stories.js.coffee index 5cc0c33f..7052a6f6 100644 --- a/app/assets/javascripts/controllers/comic_stories.js.coffee +++ b/app/assets/javascripts/controllers/comic_stories.js.coffee @@ -32,8 +32,7 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.ComicStory.Show({ - item: @item, + show = new Pettanr.Views.ComicStory.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/comics.js.coffee b/app/assets/javascripts/controllers/comics.js.coffee index 7b19554a..658bce55 100644 --- a/app/assets/javascripts/controllers/comics.js.coffee +++ b/app/assets/javascripts/controllers/comics.js.coffee @@ -27,8 +27,7 @@ class Pettanr.ComicsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('title')) - show = new Pettanr.Views.Comic.Show({ - item: @item, + show = new Pettanr.Views.Comic.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/ground_colors.js.coffee b/app/assets/javascripts/controllers/ground_colors.js.coffee index 883ee9fb..a0cb68f8 100644 --- a/app/assets/javascripts/controllers/ground_colors.js.coffee +++ b/app/assets/javascripts/controllers/ground_colors.js.coffee @@ -27,8 +27,7 @@ class Pettanr.GroundColorsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.GroundColor.Show({ - item: @item, + show = new Pettanr.Views.GroundColor.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/ground_pictures.js.coffee b/app/assets/javascripts/controllers/ground_pictures.js.coffee index d3d823ff..21bb7ace 100644 --- a/app/assets/javascripts/controllers/ground_pictures.js.coffee +++ b/app/assets/javascripts/controllers/ground_pictures.js.coffee @@ -27,8 +27,7 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.GroundPicture.Show({ - item: @item, + show = new Pettanr.Views.GroundPicture.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/license_groups.js.coffee b/app/assets/javascripts/controllers/license_groups.js.coffee index 9591900e..a34b2a6f 100644 --- a/app/assets/javascripts/controllers/license_groups.js.coffee +++ b/app/assets/javascripts/controllers/license_groups.js.coffee @@ -17,8 +17,7 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.LicenseGroup.Show({ - item: @item, + show = new Pettanr.Views.LicenseGroup.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/licenses.js.coffee b/app/assets/javascripts/controllers/licenses.js.coffee index a76eff81..2716c94a 100644 --- a/app/assets/javascripts/controllers/licenses.js.coffee +++ b/app/assets/javascripts/controllers/licenses.js.coffee @@ -27,8 +27,7 @@ class Pettanr.LicensesController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.License.Show({ - item: @item, + show = new Pettanr.Views.License.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/original_pictures.js.coffee b/app/assets/javascripts/controllers/original_pictures.js.coffee index a7e6ace1..70a4dc24 100644 --- a/app/assets/javascripts/controllers/original_pictures.js.coffee +++ b/app/assets/javascripts/controllers/original_pictures.js.coffee @@ -22,8 +22,7 @@ class Pettanr.OriginalPicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.OriginalPicture.Show({ - item: @item, + show = new Pettanr.Views.OriginalPicture.Show(@item, { }) @listenTo(show, 'click:license', @click_license) @listenTo(show, 'success', @publish) diff --git a/app/assets/javascripts/controllers/panel_pictures.js.coffee b/app/assets/javascripts/controllers/panel_pictures.js.coffee index 71e82673..8ac97408 100644 --- a/app/assets/javascripts/controllers/panel_pictures.js.coffee +++ b/app/assets/javascripts/controllers/panel_pictures.js.coffee @@ -27,8 +27,7 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.PanelPicture.Show({ - item: @item, + show = new Pettanr.Views.PanelPicture.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/panels.js.coffee b/app/assets/javascripts/controllers/panels.js.coffee index 9158499e..702ba508 100644 --- a/app/assets/javascripts/controllers/panels.js.coffee +++ b/app/assets/javascripts/controllers/panels.js.coffee @@ -40,8 +40,7 @@ class Pettanr.PanelsController extends Pettanr.AppController @item.fetch({cache: false}).done => @item.attributes = @item.replaced_attributes() @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.Panel.Show({ - panel: @item, + show = new Pettanr.Views.Panel.Show(@item, { spot: null }) show.render() diff --git a/app/assets/javascripts/controllers/pictures.js.coffee b/app/assets/javascripts/controllers/pictures.js.coffee index 68f969e9..ea4920d1 100644 --- a/app/assets/javascripts/controllers/pictures.js.coffee +++ b/app/assets/javascripts/controllers/pictures.js.coffee @@ -22,8 +22,7 @@ class Pettanr.PicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.Picture.Show({ - item: @item, + show = new Pettanr.Views.Picture.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/resource_picture_pictures.js.coffee b/app/assets/javascripts/controllers/resource_picture_pictures.js.coffee index 8f1de07d..2f4834df 100644 --- a/app/assets/javascripts/controllers/resource_picture_pictures.js.coffee +++ b/app/assets/javascripts/controllers/resource_picture_pictures.js.coffee @@ -32,8 +32,7 @@ class Pettanr.ResourcePicturePicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.ResourcePicturePicture.Show({ - item: @item, + show = new Pettanr.Views.ResourcePicturePicture.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/resource_pictures.js.coffee b/app/assets/javascripts/controllers/resource_pictures.js.coffee index 58d6173d..2a996434 100644 --- a/app/assets/javascripts/controllers/resource_pictures.js.coffee +++ b/app/assets/javascripts/controllers/resource_pictures.js.coffee @@ -32,8 +32,7 @@ class Pettanr.ResourcePicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.ResourcePicture.Show({ - item: @item, + show = new Pettanr.Views.ResourcePicture.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/scroll_panels.js.coffee b/app/assets/javascripts/controllers/scroll_panels.js.coffee index 4d1ca1ed..05ad66e9 100644 --- a/app/assets/javascripts/controllers/scroll_panels.js.coffee +++ b/app/assets/javascripts/controllers/scroll_panels.js.coffee @@ -32,8 +32,7 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.ScrollPanel.Show({ - item: @item, + show = new Pettanr.Views.ScrollPanel.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/scrolls.js.coffee b/app/assets/javascripts/controllers/scrolls.js.coffee index 609d0578..e29fba03 100644 --- a/app/assets/javascripts/controllers/scrolls.js.coffee +++ b/app/assets/javascripts/controllers/scrolls.js.coffee @@ -28,8 +28,7 @@ class Pettanr.ScrollsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('title')) - show = new Pettanr.Views.Scroll.Show({ - item: @item, + show = new Pettanr.Views.Scroll.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/sheet_panels.js.coffee b/app/assets/javascripts/controllers/sheet_panels.js.coffee index 2015fb04..1f02c3d5 100644 --- a/app/assets/javascripts/controllers/sheet_panels.js.coffee +++ b/app/assets/javascripts/controllers/sheet_panels.js.coffee @@ -32,8 +32,7 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.SheetPanel.Show({ - item: @item, + show = new Pettanr.Views.SheetPanel.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/sheets.js.coffee b/app/assets/javascripts/controllers/sheets.js.coffee index 19b3249f..56c030a5 100644 --- a/app/assets/javascripts/controllers/sheets.js.coffee +++ b/app/assets/javascripts/controllers/sheets.js.coffee @@ -32,8 +32,7 @@ class Pettanr.SheetsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.Sheet.Show({ - item: @item, + show = new Pettanr.Views.Sheet.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee index bc3170e7..e759022b 100644 --- a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee @@ -27,8 +27,7 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.SpeechBalloonTemplate.Show({ - item: @item, + show = new Pettanr.Views.SpeechBalloonTemplate.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/speech_balloons.js.coffee b/app/assets/javascripts/controllers/speech_balloons.js.coffee index 69aab0f5..48d47447 100644 --- a/app/assets/javascripts/controllers/speech_balloons.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloons.js.coffee @@ -32,8 +32,7 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.SpeechBalloon.Show({ - item: @item, + show = new Pettanr.Views.SpeechBalloon.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/speeches.js.coffee b/app/assets/javascripts/controllers/speeches.js.coffee index 8668bd43..0c81de81 100644 --- a/app/assets/javascripts/controllers/speeches.js.coffee +++ b/app/assets/javascripts/controllers/speeches.js.coffee @@ -27,8 +27,7 @@ class Pettanr.SpeechesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.Speech.Show({ - item: @item, + show = new Pettanr.Views.Speech.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/stories.js.coffee b/app/assets/javascripts/controllers/stories.js.coffee index c5739006..f2926054 100644 --- a/app/assets/javascripts/controllers/stories.js.coffee +++ b/app/assets/javascripts/controllers/stories.js.coffee @@ -32,8 +32,7 @@ class Pettanr.StoriesController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('title')) - show = new Pettanr.Views.Story.Show({ - item: @item, + show = new Pettanr.Views.Story.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/story_sheets.js.coffee b/app/assets/javascripts/controllers/story_sheets.js.coffee index 489de179..cf76d2e7 100644 --- a/app/assets/javascripts/controllers/story_sheets.js.coffee +++ b/app/assets/javascripts/controllers/story_sheets.js.coffee @@ -32,8 +32,7 @@ class Pettanr.StorySheetsController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.StorySheet.Show({ - item: @item, + show = new Pettanr.Views.StorySheet.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/system_pictures.js.coffee b/app/assets/javascripts/controllers/system_pictures.js.coffee index 181f6e19..ff7bb381 100644 --- a/app/assets/javascripts/controllers/system_pictures.js.coffee +++ b/app/assets/javascripts/controllers/system_pictures.js.coffee @@ -17,8 +17,7 @@ class Pettanr.SystemPicturesController extends Pettanr.AppController show_html: () -> @trigger('title', @params) - show = new Pettanr.Views.SystemPicture.Show({ - item: @item, + show = new Pettanr.Views.SystemPicture.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/controllers/writing_formats.js.coffee b/app/assets/javascripts/controllers/writing_formats.js.coffee index f45a3952..50c97f2d 100644 --- a/app/assets/javascripts/controllers/writing_formats.js.coffee +++ b/app/assets/javascripts/controllers/writing_formats.js.coffee @@ -22,8 +22,7 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController show_html: () -> @trigger('title', @params, @item.get('caption')) - show = new Pettanr.Views.WritingFormat.Show({ - item: @item, + show = new Pettanr.Views.WritingFormat.Show(@item, { }) show.render() @trigger('ready', show) diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index 45855127..ff26b0f0 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -11,7 +11,7 @@ class Editor.PanelEditor extends Pettanr.View spot: null }) @dock = new Editor.PanelEditor.Dock({parent: this}) - @credits = new Pettanr.Views.Common.Credits(parent: this) + @credits = new Pettanr.View.Credits(parent: this) @body.on('panel:resize', @panel_resize) @listenTo(@dock, 'http_post', @http_post) diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/base.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/base.js.coffee index e9b567b6..9503c8ab 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/base.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/base.js.coffee @@ -20,20 +20,6 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.IconItemColum this.$el.html(template(args)) this - url: () -> - controller = Manifest.manifest().controllers[@item.table_name()] - action = controller.actions['show'] - params = { - controller: controller, - action: action, - id: @item.get('id'), - format: 'prof' - } - action.url(params) - - click: () -> - @trigger('click:prof', @url()) - filer: () -> @file_item.filer() @@ -43,21 +29,3 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.IconItemColum item_name: () -> @filer().item_name - column_template_dir: () -> - @filer().template_dir + 'item_column-' - - column_template_file_name: () -> - raise "undefined column_template_file_name\n" - - column_template_name: () -> - @column_template_dir() + @column_template_file_name() - - item_template_dir: () -> - @filer().template_dir + 'icon-' - - item_template_file_name: () -> - raise "undefined item_template_file_name\n" - - item_template_name: () -> - @item_template_dir() + @item_template_file_name() - diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/default.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/default.js.coffee index 62986c57..65be0ce9 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/default.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/default.js.coffee @@ -4,23 +4,15 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.IconItemColum super(options) render: () -> - icon = new Pettanr.Image.SymbolImg({ + prof_button = @item.prof_button({ class_name: 'face', - attr: { - src: @icon_file_name() - } + context: this, + click: () -> + @trigger('click:prof', @item.prof_url()) }) - a = new Tag.A({ - attr: {href: '/' + @url()}, - content: icon.render().el - }) - this.$el.html(a.render().el) - @listenTo(a, 'click', @click) + this.$el.html(prof_button.render().el) this - icon_file_name: () -> - '/images/prof.gif' - is_visible: () -> true diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default.js.coffee index 8162a6c9..6dffc039 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default.js.coffee @@ -11,23 +11,18 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemCol @face.render() this - ready_symbol: (symbol) -> + ready_symbol: (symbol_file) -> view = if @has_link() - linked_symbol = new Tag.A({ - attr: {href: '/' + @link.url()}, - content: symbol.render().el + Pettanr.View.face_button(@item, symbol_file, { + context: this, + click: () => + @trigger('click:symbol') + @trigger('http_get', @link.url()) }) - @listenTo(linked_symbol, 'click', @click) - linked_symbol else - symbol + new Pettanr.View.Icon(symbol_file) this.$el.html(view.render().el) - click: () -> - @trigger('click:symbol') - @trigger('http_get', @link.url()) - false - mdl: () -> Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.DefaultModule diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default/face/image.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default/face/image.js.coffee index d92afcde..b8db290b 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default/face/image.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default/face/image.js.coffee @@ -6,11 +6,7 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemCol # not render # get symbol data and send message render: () -> - picture = new Pettanr.Image.SymbolImg({ - attr: { - src: @url() - } - }) + picture = @item.face_file() @trigger('ready:symbol', picture) url: () -> diff --git a/app/assets/javascripts/models/ground_picture.js.coffee b/app/assets/javascripts/models/ground_picture.js.coffee index 22180936..07dd815e 100644 --- a/app/assets/javascripts/models/ground_picture.js.coffee +++ b/app/assets/javascripts/models/ground_picture.js.coffee @@ -34,24 +34,12 @@ class Pettanr.GroundPicture extends Peta.Element @has_picture: () -> true - tmb_opt_img_tag: (picture) -> - new Pettanr.Image.SymbolPicture({ - attr: { - src: picture.r_url(), - alt: @escape('caption') - }, - picture: picture - }) - repeat_text: () -> Pettanr.GroundPicture.repeat_texts()[@get('repeat')] element_face: () -> new Pettanr.Views.GroundPicture.ElementFace({element: this}) - picture_file: () -> - new Pettanr.PictureFile(this) - initialize: (attr, options) -> super(attr, options) diff --git a/app/assets/javascripts/models/original_picture.js.coffee b/app/assets/javascripts/models/original_picture.js.coffee index 7c169b50..06441e30 100644 --- a/app/assets/javascripts/models/original_picture.js.coffee +++ b/app/assets/javascripts/models/original_picture.js.coffee @@ -26,21 +26,10 @@ class Pettanr.OriginalPicture extends Peta.Content license_url: () -> '/original_picture_license_groups/new/' + @get('id') - opt_img_tag: () -> - {src: @r_url(), width: @get('width'), height: @get('height')} - - tmb_opt_img_tag: () -> - new Pettanr.Image.SymbolPicture({ - attr: { - src: @r_url() - }, - picture: this - }) - symbol_option: (context, options) -> @retrieve(this, { success: (symbol_item) => - options.success.call(context, symbol_item.to_symbol()) + options.success.call(context, symbol_item.symbol_file()) }) filer_caption: (context, options) -> diff --git a/app/assets/javascripts/models/panel_picture.js.coffee b/app/assets/javascripts/models/panel_picture.js.coffee index 206c834c..962f2f58 100644 --- a/app/assets/javascripts/models/panel_picture.js.coffee +++ b/app/assets/javascripts/models/panel_picture.js.coffee @@ -56,21 +56,9 @@ class Pettanr.PanelPicture extends Peta.Element r_url: (picture) -> '/pictures/' + @filename(picture) - tmb_opt_img_tag: (picture) -> - new Pettanr.Image.SymbolPicture({ - attr: { - src: picture.r_url(), - alt: @escape('caption') - }, - picture: picture - }) - element_face: () -> new Pettanr.Views.PanelPicture.ElementFace({element: this}) - picture_file: () -> - new Pettanr.PictureFile(this, @flip()) - initialize: (attr, options) -> super(attr, options) diff --git a/app/assets/javascripts/models/picture.js.coffee b/app/assets/javascripts/models/picture.js.coffee index 0cc5a67b..b1d85c34 100644 --- a/app/assets/javascripts/models/picture.js.coffee +++ b/app/assets/javascripts/models/picture.js.coffee @@ -41,7 +41,7 @@ class Pettanr.Picture extends Peta.Content } opt_img_tag: () -> - {src: @r_url(), width: @get('width'), height: @get('height')} + @picture_file() tmb_opt_img_tag: () -> @symbol_file() @@ -93,25 +93,6 @@ class Pettanr.Picture extends Peta.Content history_view: () -> new Pettanr.Views.Picture.History({item: this}) - credit_icon_view: () -> - new Pettanr.Views.Picture.CreditIcon({item: this}) - - credit_view: (with_icon = true) -> - new Pettanr.Views.Picture.Credit({item: this, with_icon: with_icon}) - - picture_file: (subdir = null) -> - new Pettanr.PictureFile(this, subdir) - - fetch: (options) -> - if @id - @credit_icon = @credit_icon_view() - @credit = null - f = (data, status) => - @credit = data - @trigger('ready') - $.get(@url + '/credit', null, f, 'html') - super(options) - initialize: (attr = {}, options = {}) -> super(attr, options) diff --git a/app/assets/javascripts/models/resource_picture.js.coffee b/app/assets/javascripts/models/resource_picture.js.coffee index fd7081ee..6a82a510 100644 --- a/app/assets/javascripts/models/resource_picture.js.coffee +++ b/app/assets/javascripts/models/resource_picture.js.coffee @@ -22,28 +22,22 @@ class Pettanr.ResourcePicture extends Peta.Content mime_type: () -> 'image/' + @get('ext') - full_src: () -> - @src('full') - - src: (subdir = null) -> + r_url: (subdir = null) -> opt = if _.isEmpty(subdir) '' else '?subdir=' + Pettanr.to_s(subdir) '/resource_pictures/' + @filename() + opt - tmb_opt_img_tag: () -> - klass = if true # thumbnail - Pettanr.Image.SymbolPicture - new klass({ - attr: { - src: @src() - }, - picture: this - }) + symbol_file: () -> + subdir = if @no_resize() + 'full' + else + null + super(subdir) - opt_img_tag: () -> - {src: @url('full'), width: @get('width'), height: @get('height')} + no_resize: () -> + false alt_name: () -> lgn = Pettanr.to_s(@license().license_group().get('caption')) @@ -53,15 +47,9 @@ class Pettanr.ResourcePicture extends Peta.Content symbol_option: (context, options) -> @retrieve(this, { success: (symbol_item) => - options.success.call(context, symbol_item.to_symbol()) + options.success.call(context, symbol_item.symbol_file()) }) - credit_icon_view: () -> - new Pettanr.Views.ResourcePicture.CreditIcon({item: this}) - - credit_view: (with_icon = true) -> - new Pettanr.Views.ResourcePicture.Credit({item: this, with_icon: with_icon}) - initialize: (attr = {}, options = {}) -> super(attr, options) diff --git a/app/assets/javascripts/models/sheet.js.coffee b/app/assets/javascripts/models/sheet.js.coffee index 47e5a28d..ecfba805 100644 --- a/app/assets/javascripts/models/sheet.js.coffee +++ b/app/assets/javascripts/models/sheet.js.coffee @@ -29,6 +29,10 @@ class Pettanr.Sheet extends Peta.Root label: (shorten_length) -> @_label('title', shorten_length) + # item is root, but binder like + play_url: () -> + Pettanr.url(@table_name(), 'play', {id: @get('id')}) + initialize: (attr = {}, options = {}) -> super(attr, options) diff --git a/app/assets/javascripts/models/system_picture.js.coffee b/app/assets/javascripts/models/system_picture.js.coffee index 9007526e..148a6d0b 100644 --- a/app/assets/javascripts/models/system_picture.js.coffee +++ b/app/assets/javascripts/models/system_picture.js.coffee @@ -19,26 +19,12 @@ class Pettanr.SystemPicture extends Peta.SystemResource r_url: () -> '/system_pictures/' + @filename() - opt_img_tag: () -> - {src: @r_url(), width: @get('width'), height: @get('height')} - - tmb_opt_img_tag: () -> - new Pettanr.Image.SymbolPicture({ - attr: { - src: @r_url() - }, - picture: this - }) - symbol_option: (context, options) -> @retrieve(this, { success: (symbol_item) => - options.success.call(context, symbol_item.to_symbol()) + options.success.call(context, symbol_item.symbol_file()) }) - picture_file: () -> - new Pettanr.PictureFile(this) - initialize: (attr = {}, options = {}) -> super(attr, options) diff --git a/app/assets/javascripts/peta/content.js.coffee b/app/assets/javascripts/peta/content.js.coffee index e3f95dd8..7d8134f2 100644 --- a/app/assets/javascripts/peta/content.js.coffee +++ b/app/assets/javascripts/peta/content.js.coffee @@ -40,7 +40,10 @@ class Peta.Content extends Peta.Item operator = @my_class().operator(operators) return false if not operator @owner_model().get(@my_class().owner_column()) == operator.id - + + authored_by: (options) -> + new Pettanr.View.Show.AuthoredBy(this, options) + @test: () -> super() console.log(@is_content()) diff --git a/app/assets/javascripts/peta/item.js.coffee b/app/assets/javascripts/peta/item.js.coffee index 77d01cc2..fa8ae555 100644 --- a/app/assets/javascripts/peta/item.js.coffee +++ b/app/assets/javascripts/peta/item.js.coffee @@ -287,21 +287,28 @@ class Peta.Item extends Backbone.Model symbol_option: (context, options) -> @trace_to('symbol', this, { success: (symbol_item) => - options.success.call(context, symbol_item.to_symbol()) + options.success.call(context, symbol_item.symbol_file()) }) - to_symbol: () -> - @tmb_opt_img_tag() - - icon_view: (half) -> - new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half}) - face_file: () -> new Pettanr.ImageFile('/images/' + @item_name() + '.gif') - symbol_file: () -> - new Pettanr.PictureFile(this) + # thumbnail size picture + symbol_file: (subdir) -> + new Pettanr.PictureFile(this, subdir) + + # real size picture + picture_file: (subdir = null) -> + new Pettanr.PictureFile(this, subdir) + real_picture: (subdir = null) -> + new Pettanr.View.RealIcon(@picture_file(subdir)) + + # item.face_button({ + # context: this, + # click: () -> + # # ... + # }) face_button: (options) -> Pettanr.View.face_button(this, @face_file(), options) @@ -328,7 +335,7 @@ class Peta.Item extends Backbone.Model new Pettanr.View.FacedLabel(this, options) mini_faced_label: (options) -> - new Pettanr.View.FacedLabel(this, options) + new Pettanr.View.MiniFacedLabel(this, options) @index_url: () -> Pettanr.url(@table_name(), 'index', {id: null}) diff --git a/app/assets/javascripts/pettanr/file.js.coffee b/app/assets/javascripts/pettanr/file.js.coffee index 012daf09..b6c16f15 100644 --- a/app/assets/javascripts/pettanr/file.js.coffee +++ b/app/assets/javascripts/pettanr/file.js.coffee @@ -13,12 +13,15 @@ class Pettanr.ImageFile extends Pettanr.File height: () -> null - size: () -> + real_size: () -> [@width(), @height()] has_size: () -> @width() and @height() + tag_options: () -> + {} + thumbnail_size: () -> if @has_size() Pettanr.View.Image.to_thumbnail_size(@width(), @height()) @@ -34,8 +37,7 @@ class Pettanr.ImageFile extends Pettanr.File class Pettanr.PictureFile extends Pettanr.ImageFile constructor: (@item, subdir = null) -> - @filename = @item.r_url() - @filename += ('?subdir=' + subdir) if !_.isEmpty(subdir) + @filename = @item.r_url(subdir) width: () -> Math.abs(@item.get('width')) @@ -43,3 +45,6 @@ class Pettanr.PictureFile extends Pettanr.ImageFile height: () -> Math.abs(@item.get('height')) + tag_options: () -> + {} + diff --git a/app/assets/javascripts/view.js.coffee b/app/assets/javascripts/view.js.coffee index 8eafedcc..26ec9373 100644 --- a/app/assets/javascripts/view.js.coffee +++ b/app/assets/javascripts/view.js.coffee @@ -15,20 +15,20 @@ class Pettanr.View extends Backbone.View new Tag.Div(options) @face_button: (item, image, options = {}) -> - icon = new Pettanr.View.Icon(image, image.tag_option) + icon = new Pettanr.View.Icon(image) new Pettanr.View.Button(item.show_url(), icon.render().el, options) @mini_face_button: (item, image, options = {}) -> - icon = new Pettanr.View.Minicon(image, image.tag_option) + icon = new Pettanr.View.Minicon(image) new Pettanr.View.Button(item.show_url(), icon.render().el, options) @prof_button: (url, options = {}) -> file = Pettanr.View.Image.icon_prof_file() - icon = new Pettanr.View.Icon(file, {}) + icon = new Pettanr.View.Icon(file) new Pettanr.View.Button(url, icon.render().el, options) @mini_prof_button: (url, options = {}) -> file = Pettanr.View.Image.icon_prof_file() - icon = new Pettanr.View.Minicon(file, {}) + icon = new Pettanr.View.Minicon(file) new Pettanr.View.Button(url, icon.render().el, options) diff --git a/app/assets/javascripts/view/button.js.coffee b/app/assets/javascripts/view/button.js.coffee index 8ec60539..b8f8b865 100644 --- a/app/assets/javascripts/view/button.js.coffee +++ b/app/assets/javascripts/view/button.js.coffee @@ -1,13 +1,16 @@ class Pettanr.View.Button extends Tag.A - initialize: (@url, @content, options) -> + constructor: (@url, @content, options) -> + super(options) + + initialize: (options) -> @context = options.context || this @class_name = options.class_name @click_func = options.click - el = if _.isFunction(content) + el = if _.isFunction(@content) content.call(@context) else - content + @content @url = '/' + @url if @url[0] != '/' super({ attr: {href: @url}, diff --git a/app/assets/javascripts/view/button/item_action.js.coffee b/app/assets/javascripts/view/button/item_action.js.coffee index 5232a067..cd3b0f17 100644 --- a/app/assets/javascripts/view/button/item_action.js.coffee +++ b/app/assets/javascripts/view/button/item_action.js.coffee @@ -1,9 +1,12 @@ class Pettanr.View.Button.ItemAction extends Pettanr.View.Button - initialize: (item, action_name, dic_name, options) -> + constructor: (@item, action_name, dic_name, options) -> if !options options = dic_name - dic_name = I18n.t('link.' + action_name) - url = item[action_name + '_url']() - super(url, dic_name, options) + dic_name = options.dic_name || 'link.' + action_name + url = options.url || @item[action_name + '_url']() + super(url, I18n.t(dic_name), options) + + initialize: (options) -> + super(options) diff --git a/app/assets/javascripts/view/button/shortable_caption.js.coffee b/app/assets/javascripts/view/button/shortable_caption.js.coffee index b9577969..3881b4d1 100644 --- a/app/assets/javascripts/view/button/shortable_caption.js.coffee +++ b/app/assets/javascripts/view/button/shortable_caption.js.coffee @@ -1,6 +1,9 @@ class Pettanr.View.ShortableCaption extends Pettanr.View.Button - initialize: (item, column_name, options) -> - content = item.short(column_name, options.length) - super(item.show_url(), content, options) + constructor: (@item, @column_name, options) -> + super(options) + + initialize: (options) -> + content = @item.short(@column_name, options.length) + super(@item.show_url(), content, options) diff --git a/app/assets/javascripts/view/credit.js.coffee b/app/assets/javascripts/view/credit.js.coffee new file mode 100644 index 00000000..8558a799 --- /dev/null +++ b/app/assets/javascripts/view/credit.js.coffee @@ -0,0 +1,66 @@ +class Pettanr.View.Credit extends Pettanr.View + tagName: 'div' + className: 'credit' + + constructor: (@item, options) -> + super(options) + + initialize: (options = {icon: true}) -> + @icon_options = options.icon + @data_options = options.data + + render: () -> + this.$el.html('') + if @icon_options + icon = new Pettanr.View.Credit.Icon(@item) + @listenTo(icon, 'click:icon', @click_icon) + this.$el.append(icon.render().el) + data = new Pettanr.View.Credit.Data(@item, @data_options) + this.$el.append(data.render().el) + this + + click_icon: () -> + @trigger('click:icon', @item) + +class Pettanr.View.Credit.Data extends Pettanr.View + tagName: 'div' + className: 'credit-data' + + constructor: (@item, options) -> + super(options) + + initialize: (options) -> + @credit_api_url = @item.url + '/credit' + + render: () -> + this.$el.html('') + if @item.credit_data + @append_credit_data() + else + f = (data, status) => + @item.credit_data = data + @append_credit_data() + $.get(@credit_api_url, null, f, 'html') + this + + append_credit_data: () -> + this.$el.append(@item.credit_data) + @rb() + +class Pettanr.View.Credit.Icon extends Pettanr.View + tagName: 'span' + className: 'credit-icon' + + constructor: (@item, options) -> + super(options) + + render: () -> + this.$el.html('') + symbol_button = @item.symbol_button({ + context: this, + click: () => + @trigger('click') + }) + this.$el.append(symbol_button.render().el) + this + diff --git a/app/assets/javascripts/view/credits.js.coffee b/app/assets/javascripts/view/credits.js.coffee new file mode 100644 index 00000000..e233a016 --- /dev/null +++ b/app/assets/javascripts/view/credits.js.coffee @@ -0,0 +1,29 @@ +class Pettanr.View.Credits extends Pettanr.View + tagName: 'div' + className: 'credits' + + constructor: (@parent, options) -> + super(options) + + initialize: (@options) -> + @licensed_pictures = {} + + render: () -> + this.$el.html('') + this + + push: (retrievers) -> + _.each retrievers, (retriever, pid) => + Pettanr.Picture.retrieve(pid, this, { + success: (picture) => + pid = picture.get('id') + return if @licensed_pictures[pid] + @licensed_pictures[pid] = picture + credit = new Pettanr.View.Credit(picture, @options) + @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/view/faced_label.js.coffee b/app/assets/javascripts/view/faced_label.js.coffee index 71fcba25..4315f72d 100644 --- a/app/assets/javascripts/view/faced_label.js.coffee +++ b/app/assets/javascripts/view/faced_label.js.coffee @@ -1,9 +1,11 @@ class Pettanr.View.FacedLabel extends Pettanr.View tagName: 'span' - initialize: (@item, options) -> - @face_button_method_name ||= 'face_button' - @face_button = @item[@face_button_method_name](options) + constructor: (@item, options) -> + super(options) + + initialize: (options) -> + @face_button = @item[@face_button_method_name()](options) @label_button = @item.label_button(options) render: () -> @@ -12,9 +14,11 @@ class Pettanr.View.FacedLabel extends Pettanr.View this.$el.append(@label_button.render().el) this -class Pettanr.View.FacedLabel extends Pettanr.View.FacedLabel + face_button_method_name: () -> + 'face_button' + +class Pettanr.View.MiniFacedLabel extends Pettanr.View.FacedLabel - initialize: (@item, options) -> - @face_button_method_name = 'mini_face_button' - super(@item, options) + face_button_method_name: () -> + 'mini_face_button' diff --git a/app/assets/javascripts/view/icon.js.coffee b/app/assets/javascripts/view/icon.js.coffee index ff5334cb..9c863dfc 100644 --- a/app/assets/javascripts/view/icon.js.coffee +++ b/app/assets/javascripts/view/icon.js.coffee @@ -1,7 +1,11 @@ # image: picture item or image file class Pettanr.View.Icon extends Tag.Img - initialize: (@image, options = {}) -> + constructor: (@image, options) -> + super(options) + + initialize: (options) -> + options ||= @image.tag_options() attr = {} attr['src'] = @image.src() size = @get_size() @@ -28,9 +32,11 @@ class Pettanr.View.Icon extends Tag.Img class Pettanr.View.Minicon extends Pettanr.View.Icon - initialize: (@image, options = {}) -> - super(@image, options) - get_size: () -> @image.minicon_size() +class Pettanr.View.RealIcon extends Pettanr.View.Icon + + get_size: () -> + @image.real_size() + diff --git a/app/assets/javascripts/view/show.js.coffee b/app/assets/javascripts/view/show.js.coffee index caf92482..af08756b 100644 --- a/app/assets/javascripts/view/show.js.coffee +++ b/app/assets/javascripts/view/show.js.coffee @@ -1 +1,68 @@ class Pettanr.View.Show extends Pettanr.View + tagName: 'div' + className: 'show' + + constructor: (@item, options) -> + super(options) + + default_header_options: () -> + { + face: { + click: () => + @trigger('http_get', @item.show_url()) + }, + label: { + click: () => + @trigger('http_get', @item.show_url()) + }, + prof: { + click: () => + @trigger('http_get', @item.prof_url()) + }, + } + + binder_header_options: () -> + { + face: { + click: () => + @trigger('http_get', @item.show_url()) + }, + label: { + url: @item.play_url(), + click: () => + @trigger('http_get', @item.play_url()) + }, + prof: { + click: () => + @trigger('http_get', @item.prof_url()) + }, + } + + default_footer_options: () -> + { + actions: { + edit: { + click: () => + @trigger('http_get', @item.edit_url()) + }, + destroy: { + click: () => + redirect = (url) => + @trigger('http_get', url) + Pettanr.Proxy.destroy(@item, {redirect: redirect}) + }, + }, + } + + add_credits: (options = {icon: true}) -> + @credits = new Pettanr.View.Credits(this, options) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + this.$el.append(@credits.render().el) + @credits.push(@panel.licensed_pictures()) + + click_authored_by: (author) -> + @trigger('http_get', author.show_url()) + + click_credit_icon: (item) -> + @trigger('http_get', item.show_url()) + diff --git a/app/assets/javascripts/view/show/footer.js.coffee b/app/assets/javascripts/view/show/footer.js.coffee index d55258ec..08b6b868 100644 --- a/app/assets/javascripts/view/show/footer.js.coffee +++ b/app/assets/javascripts/view/show/footer.js.coffee @@ -1,16 +1,17 @@ class Pettanr.View.Show.Footer extends Pettanr.View tagName: 'div' - initialize: (options) -> + constructor: (@item, @context, options) -> super(options) - @item = options.item + + initialize: (options = {}) -> @header = options.header || new Tag.H3({ class_name: 'owner-header', content: I18n.t('editor') }) - @footer = options.footer || new Pettanr.View.Show.Footer.Footer(@item) - @listenTo(@footer, 'click:edit', @click_edit) - @listenTo(@footer, 'click:destroy', @click_destroy) + @footer = options.footer || new Pettanr.View.Show.Footer.Footer( + @item, @context, options.actions + ) render: () -> this.$el.html('') @@ -18,11 +19,3 @@ class Pettanr.View.Show.Footer extends Pettanr.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/view/show/footer/footer.js.coffee b/app/assets/javascripts/view/show/footer/footer.js.coffee index da66c31b..d97f7737 100644 --- a/app/assets/javascripts/view/show/footer/footer.js.coffee +++ b/app/assets/javascripts/view/show/footer/footer.js.coffee @@ -1,27 +1,37 @@ +# +# new Footer.Footer(item, this, { +# edit: { +# click: () => +# ... +# } +# }) +# +# +# new Footer.Footer(null, this, { +# edit: { +# item: item1, +# dic_name: 'translation.key', +# click: () => +# ... +# } +# }) class Pettanr.View.Show.Footer.Footer extends Pettanr.View tagName: 'div' className: 'show-owner-footer' - initialize: (item, options) -> + constructor: (@item, @context, options) -> super(options) - @edit = new Pettanr.View.Button.ItemAction( - item, 'edit', { - context: this, - click: () => - @trigger('click:edit') - } - ) - @destroy = new Pettanr.View.Button.ItemAction( - item, 'destroy', { - context: this, - click: () => - @trigger('click:destroy') - } - ) + + initialize: (options) -> + @buttons = [] + _.each options, (setting, action) => + setting.context ||= @context + i = @item || setting.item + @buttons.push(new Pettanr.View.Button.ItemAction(i, action, setting)) render: () -> this.$el.html('') - this.$el.append(@edit.render().el) - this.$el.append(@destroy.render().el) + _.each @buttons, (button) => + this.$el.append(button.render().el) this diff --git a/app/assets/javascripts/view/show/header.js.coffee b/app/assets/javascripts/view/show/header.js.coffee index 014bd654..794e429c 100644 --- a/app/assets/javascripts/view/show/header.js.coffee +++ b/app/assets/javascripts/view/show/header.js.coffee @@ -2,31 +2,33 @@ class Pettanr.View.Show.Header extends Pettanr.View tagName: 'h1' className: 'show-header' - initialize: (@item, options) -> + constructor: (@item, @context, options) -> + super(options) + + initialize: (options) -> @face_options = options.face @label_options = options.label @prof_options = options.prof + @face_options.context ||= @context + @face_options.class_name ||= 'face' + @face_options.click ||= () => + @trigger('click:face') + + @label_options.context ||= @context + @label_options.class_name ||= 'label' + @label_options.click ||= () => + @trigger('click:label') + + @prof_options.context ||= @context + @prof_options.class_name ||= 'prof' + @prof_options.click ||= () => + @trigger('click:prof') + @pick = null - @face_button = @item.mini_face_button({ - context: this, - class_name: 'icon', - click: () => - @trigger('click:icon') - }) - @label_button = @item.label_button({ - url: @label_options.url, - context: this, - class_name: 'caption', - click: () => - @trigger('click:caption') - }) - @prof_button = @item.mini_prof_button({ - context: this, - class_name: 'prof', - click: () => - @trigger('click:prof') - }) + @face_button = @item.mini_face_button(@face_options) + @label_button = @item.label_button(@label_options) + @prof_button = @item.mini_prof_button(@prof_options) render: () -> this.$el.html('') diff --git a/app/assets/javascripts/view/show/header/authored_by.js.coffee b/app/assets/javascripts/view/show/header/authored_by.js.coffee index 61fbb0a4..376c5f25 100644 --- a/app/assets/javascripts/view/show/header/authored_by.js.coffee +++ b/app/assets/javascripts/view/show/header/authored_by.js.coffee @@ -1,22 +1,23 @@ class Pettanr.View.Show.AuthoredBy extends Pettanr.View tagName: 'div' - initialize: (options) -> - @item = options.item - @item.get_parent(@item.my_class().owner_type(), this, { - success: (author) => # author or artist - @linked_author = new Pettanr.View.ShortableCaption(author, 'name', { - click: () -> - @trigger('click:author') - }) - @listenTo(@linked_author, 'click', @click) - @render() - }) + constructor: (@content, options) -> + super(options) + + initialize: (@options = {}) -> render: () -> this.$el.html('') - this.$el.append(Pettanr.AppHelper.t_a(@item.item_name(), 'author_id')) - this.$el.append(@linked_author.render().el) + author_item_name = @content.my_class().owner_type() + @content.get_parent(author_item_name, this, { + success: (author) => # author or artist + label_button = author.label_button({ + context: this, + click: () => + @trigger('click', author) + }) + this.$el.append(Pettanr.AppHelper.t_a(@content.item_name(), @content.my_class().owner_column())) + this.$el.append(label_button.render().el) + }) this - diff --git a/app/assets/javascripts/view/summary.js.coffee b/app/assets/javascripts/view/summary.js.coffee new file mode 100644 index 00000000..a4e3aeb5 --- /dev/null +++ b/app/assets/javascripts/view/summary.js.coffee @@ -0,0 +1,18 @@ +class Pettanr.View.Summary extends Pettanr.View + + constructor: (options) -> + super(options) + + initialize: (options) -> + @clear() + @listenTo(this, 'ready', @render) + + clear: () -> + icon = new Pettanr.Views.Common.LoadIcon() + this.$el.html(icon.render().el) + this + + render: () -> + this.$el.html('') + this + diff --git a/app/assets/javascripts/view/summary/binder.js.coffee b/app/assets/javascripts/view/summary/binder.js.coffee new file mode 100644 index 00000000..5bf5e8da --- /dev/null +++ b/app/assets/javascripts/view/summary/binder.js.coffee @@ -0,0 +1,29 @@ +class Pettanr.View.Summary.Binder extends Pettanr.View + + initialize: (options) -> + super(options) + @item = options.item + @visible_t = options.visible_t + @visible_column_name = options.visible_column_name + @load() + + load: () -> + @visible = new Tag.Div({ + content: Pettanr.AppHelper.t_selected_item(@visible_t, @item.get(@visible_column_name)) + }) + @item.get_parent('author', this, { + success: (@author) => + @author_icon_with_caption = @author.icon_with_caption_view(true, 'name', 12) + @listenTo(@author_icon_with_caption, 'click', @author_click) + @trigger('ready') + }) + + render: () -> + this.$el.html('') + this.$el.append(@visible.render().el) + this.$el.append(@author_icon_with_caption.render().el) + this + + author_click: () -> + @trigger('http_get', @author_icon_with_caption.url()) + diff --git a/app/assets/javascripts/view/summary/leaf.js.coffee b/app/assets/javascripts/view/summary/leaf.js.coffee new file mode 100644 index 00000000..35dfb0a7 --- /dev/null +++ b/app/assets/javascripts/view/summary/leaf.js.coffee @@ -0,0 +1,67 @@ +class Pettanr.View.Summary.Leaf extends Pettanr.View + + initialize: (options) -> + super(options) + @item = options.item + @binder_item_name = options.binder_item_name + @destination_item_name = options.destination_item_name + @binder_view = new Tag.Span({}) + @destination_view = new Tag.Span({}) + @load() + + load: () -> + @listenTo(this, 'load_binder', @load_destination) + @listenTo(this, 'load_destination', @ready) + @load_binder() + + ready: () -> + @trigger('ready') + + load_binder: () -> + @item.get_parent(@binder_item_name, this, { + success: (@binder) => + @binder_icon = @binder.icon_view(true) + @listenTo(@binder_icon, 'click', @binder_click) + @binder.get_parent('author', this, { + success: (@binder_author) => + @binder_author_icon_with_caption = @binder_author.icon_with_caption_view(true, 'name', 12) + @listenTo(@binder_author_icon_with_caption, 'click', @binder_author_click) + @binder_view.$el.append(@binder_icon.render().el) + @binder_view.$el.append(@binder_author_icon_with_caption.render().el) + @trigger('load_binder') + }) + }) + + load_destination: () -> + @item.get_parent(@destination_item_name, this, { + success: (@destination) => + @destination_icon = @destination.icon_view(true) + @listenTo(@destination_icon, 'click', @destination_click) + @destination.get_parent('author', this, { + success: (@destination_author) => + @destination_author_icon_with_caption = @destination_author.icon_with_caption_view(true, 'name', 12) + @listenTo(@destination_author_icon_with_caption, 'click', @destination_author_click) + @destination_view.$el.append(@destination_icon.render().el) + @destination_view.$el.append(@destination_author_icon_with_caption.render().el) + @trigger('load_destination') + }) + }) + + render: () -> + this.$el.html('') + this.$el.append(@binder_view.render().el) + this.$el.append(@destination_view.render().el) + this + + binder_click: () -> + @trigger('http_get', @binder_icon.url()) + + destination_click: () -> + @trigger('http_get', @destination_icon.url()) + + binder_author_click: () -> + @trigger('http_get', @binder_author_icon_with_caption.url()) + + destination_author_click: () -> + @trigger('http_get', @destination_author_icon_with_caption.url()) + diff --git a/app/assets/javascripts/views/artists/show.js.coffee b/app/assets/javascripts/views/artists/show.js.coffee index 00561e19..0761d9f5 100644 --- a/app/assets/javascripts/views/artists/show.js.coffee +++ b/app/assets/javascripts/views/artists/show.js.coffee @@ -45,18 +45,10 @@ class Pettanr.Views.Artist.ShowModule.Body extends Pettanr.View http_get: (url) -> @trigger('http_get', url) -class Pettanr.Views.Artist.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.Artist.Show extends Pettanr.View.Show initialize: (options) -> - @item = options.item - @header = new Pettanr.Views.Artist.ShowModule.Header({ - item: @item, - caption: @item.get('name'), - icon_url: @item.show_url(), - caption_url: @item.show_url(), - prof_url: @item.prof_url() - }) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) @body = new Pettanr.Views.Artist.ShowModule.Body({ item: @item, }) diff --git a/app/assets/javascripts/views/artists/summary.js.coffee b/app/assets/javascripts/views/artists/summary.js.coffee index 371fb423..bd13f4ec 100644 --- a/app/assets/javascripts/views/artists/summary.js.coffee +++ b/app/assets/javascripts/views/artists/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Artist.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Artist.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/authors/show.js.coffee b/app/assets/javascripts/views/authors/show.js.coffee index 8dbe7213..88872247 100644 --- a/app/assets/javascripts/views/authors/show.js.coffee +++ b/app/assets/javascripts/views/authors/show.js.coffee @@ -1,9 +1,4 @@ -class Pettanr.Views.Author.ShowModule -class Pettanr.Views.Author.ShowModule.Header extends Pettanr.Views.Show.Header - - initialize: (options) -> - super(options) - +class Pettanr.Views.Author.ShowModule extends Pettanr.View.Show class Pettanr.Views.Author.ShowModule.Scrolls extends Pettanr.View initialize: (options) -> @@ -65,7 +60,7 @@ class Pettanr.Views.Author.ShowModule.Panels extends Pettanr.View super(options) @item = options.item @panels_body = new Pettanr.Views.Author.ShowModule.PanelsBody({item: @item}) - @credits = new Pettanr.Views.Common.Credits({parent: this}) + @credits = new Pettanr.View.Credits({parent: this}) render: () -> @listenTo(@panels_body, 'ready', @ready) @@ -103,18 +98,10 @@ class Pettanr.Views.Author.ShowModule.Body extends Pettanr.View http_get: (url) -> @trigger('http_get', url) -class Pettanr.Views.Author.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.Author.Show extends Pettanr.View.Show initialize: (options) -> - @item = options.item - @header = new Pettanr.Views.Author.ShowModule.Header({ - item: @item, - caption: @item.get('name'), - icon_url: @item.show_url(), - caption_url: @item.show_url(), - prof_url: @item.prof_url() - }) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) @body = new Pettanr.Views.Author.ShowModule.Body({ item: @item, }) diff --git a/app/assets/javascripts/views/authors/summary.js.coffee b/app/assets/javascripts/views/authors/summary.js.coffee index ed9a3ef6..c8a97eca 100644 --- a/app/assets/javascripts/views/authors/summary.js.coffee +++ b/app/assets/javascripts/views/authors/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Author.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Author.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/balloons/show.js.coffee b/app/assets/javascripts/views/balloons/show.js.coffee index ddaed7e2..65e39a73 100644 --- a/app/assets/javascripts/views/balloons/show.js.coffee +++ b/app/assets/javascripts/views/balloons/show.js.coffee @@ -1,26 +1,10 @@ -class Pettanr.Views.Balloon.ShowModule -class Pettanr.Views.Balloon.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Balloon.Show extends Pettanr.View.Show initialize: (options) -> - super(options) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) -class Pettanr.Views.Balloon.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.Balloon.ShowModule.Header({ - item: @item, - caption: '', - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) + render: () -> + this.$el.html('') @item.get_parent('speech_balloon', this, { success: (@speech_balloon) => @speech_balloon.get_parent('panel', this, { @@ -28,50 +12,21 @@ class Pettanr.Views.Balloon.Show extends Pettanr.View @panel = item.with_elements() @panel.fetch().done => @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @authored_by = @panel.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @item }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) @listenTo(@header, 'click:pick', @click_pick) - @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') + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() }) }) - - 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) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/balloons/summary.js.coffee b/app/assets/javascripts/views/balloons/summary.js.coffee index 099b0470..bc5aa9bd 100644 --- a/app/assets/javascripts/views/balloons/summary.js.coffee +++ b/app/assets/javascripts/views/balloons/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Balloon.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Balloon.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/comic_stories/summary.js.coffee b/app/assets/javascripts/views/comic_stories/summary.js.coffee index 95966030..e4331f0b 100644 --- a/app/assets/javascripts/views/comic_stories/summary.js.coffee +++ b/app/assets/javascripts/views/comic_stories/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.ComicStory.Summary extends Pettanr.Views.Common.Leaf.Summary +class Pettanr.Views.ComicStory.Summary extends Pettanr.View.Summary.Leaf initialize: (options) -> options['binder_item_name'] = 'comic' diff --git a/app/assets/javascripts/views/comics/show.js.coffee b/app/assets/javascripts/views/comics/show.js.coffee index 701a0458..43e90e07 100644 --- a/app/assets/javascripts/views/comics/show.js.coffee +++ b/app/assets/javascripts/views/comics/show.js.coffee @@ -1,64 +1,19 @@ -class Pettanr.Views.Comic.ShowModule -class Pettanr.Views.Comic.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Comic.Show extends Pettanr.View.Show initialize: (options) -> - super(options) - -class Pettanr.Views.Comic.ShowModule.Owner extends Pettanr.Views.Show.Owner - - initialize: (options) -> - super(options) - -class Pettanr.Views.Comic.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - 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, - caption: @item.get('title'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) - @owner = new Pettanr.Views.Comic.ShowModule.Owner({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() + @owner = new Pettanr.View.Show.Footer(@item, this, @default_footer_options()) @listenTo(@header, 'click:pick', @click_pick) - @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(@owner, 'click:edit', @click_edit) - @listenTo(@owner, 'click:destroy', @click_destroy) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@author.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@owner.render().el) if @item.is_own() this - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_edit: () -> - @trigger('http_get', @item.edit_url()) - - click_destroy: () -> - redirect = (url) => - @trigger('http_get', url) - Pettanr.Proxy.destroy(@item, {redirect: redirect}) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/comics/summary.js.coffee b/app/assets/javascripts/views/comics/summary.js.coffee index a3c89fad..3ed18937 100644 --- a/app/assets/javascripts/views/comics/summary.js.coffee +++ b/app/assets/javascripts/views/comics/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Comic.Summary extends Pettanr.Views.Common.Binder.Summary +class Pettanr.Views.Comic.Summary extends Pettanr.View.Summary.Binder initialize: (options) -> options['visible_t'] = 'comic_visible_items' diff --git a/app/assets/javascripts/views/folders/summary.js.coffee b/app/assets/javascripts/views/folders/summary.js.coffee index f12739fd..0c0c7058 100644 --- a/app/assets/javascripts/views/folders/summary.js.coffee +++ b/app/assets/javascripts/views/folders/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Folder.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Folder.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/ground_colors/show.js.coffee b/app/assets/javascripts/views/ground_colors/show.js.coffee index 85f83d79..79b28b6c 100644 --- a/app/assets/javascripts/views/ground_colors/show.js.coffee +++ b/app/assets/javascripts/views/ground_colors/show.js.coffee @@ -1,74 +1,29 @@ -class Pettanr.Views.GroundColor.ShowModule -class Pettanr.Views.GroundColor.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.GroundColor.Show extends Pettanr.View.Show initialize: (options) -> - super(options) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) -class Pettanr.Views.GroundColor.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.GroundColor.ShowModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) + render: () -> + this.$el.html('') @item.get_parent('panel', this, { success: (item) => @panel = item.with_elements() @panel.fetch().done => @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @authored_by = @panel.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @item }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) @listenTo(@header, 'click:pick', @click_pick) - @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') + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() }) - - 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) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/ground_colors/summary.js.coffee b/app/assets/javascripts/views/ground_colors/summary.js.coffee index 2199cd87..14a1e987 100644 --- a/app/assets/javascripts/views/ground_colors/summary.js.coffee +++ b/app/assets/javascripts/views/ground_colors/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.GroundColor.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.GroundColor.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/ground_pictures/element.js.coffee b/app/assets/javascripts/views/ground_pictures/element.js.coffee index 5b9ceb0d..326efb11 100644 --- a/app/assets/javascripts/views/ground_pictures/element.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/element.js.coffee @@ -38,7 +38,7 @@ class Pettanr.Views.GroundPicture.Element extends Pettanr.View top: '0px', left: '0px', 'z-index': @element.get('z'), - 'background-image': 'url(' + @picture.picture_file.src() + ')', + 'background-image': 'url(' + @picture.picture_file().src() + ')', 'background-repeat': @element.repeat_text(), 'background-position': Pettanr.to_s(@element.get('x')) + 'px ' + Pettanr.to_s(@element.get('y')) + 'px' } diff --git a/app/assets/javascripts/views/ground_pictures/show.js.coffee b/app/assets/javascripts/views/ground_pictures/show.js.coffee index feea0009..7c914492 100644 --- a/app/assets/javascripts/views/ground_pictures/show.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/show.js.coffee @@ -1,74 +1,29 @@ -class Pettanr.Views.GroundPicture.ShowModule -class Pettanr.Views.GroundPicture.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.GroundPicture.Show extends Pettanr.View.Show initialize: (options) -> - super(options) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) -class Pettanr.Views.GroundPicture.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.GroundPicture.ShowModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) + render: () -> + this.$el.html('') @item.get_parent('panel', this, { success: (item) => @panel = item.with_elements() @panel.fetch().done => @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @authored_by = @panel.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @item }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) @listenTo(@header, 'click:pick', @click_pick) - @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') + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() }) - - 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) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/ground_pictures/summary.js.coffee b/app/assets/javascripts/views/ground_pictures/summary.js.coffee index 1159ac56..0ce9dbbb 100644 --- a/app/assets/javascripts/views/ground_pictures/summary.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/summary.js.coffee @@ -1,11 +1,11 @@ -class Pettanr.Views.GroundPicture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.GroundPicture.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) @item = options.item @item.get_parent('picture', this, { success: (@picture) => - @credit = @picture.credit_view(false) + @credit = new Pettanr.View.Credit(@picture, {}) @item.get_parent('panel', this, { success: (@panel) => @panel_icon = new Pettanr.Views.Common.Icon({item: @panel, half: true}) diff --git a/app/assets/javascripts/views/license_groups/show.js.coffee b/app/assets/javascripts/views/license_groups/show.js.coffee index dd0283d7..5b15ef30 100644 --- a/app/assets/javascripts/views/license_groups/show.js.coffee +++ b/app/assets/javascripts/views/license_groups/show.js.coffee @@ -1,9 +1,10 @@ -class Pettanr.Views.LicenseGroup.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.LicenseGroup.Show extends Pettanr.View.Show initialize: (options) -> + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) render: () -> this.$el.html('') + this.$el.append(@header.render().el) this diff --git a/app/assets/javascripts/views/license_groups/summary.js.coffee b/app/assets/javascripts/views/license_groups/summary.js.coffee index 0ccbfdaa..0532b9ab 100644 --- a/app/assets/javascripts/views/license_groups/summary.js.coffee +++ b/app/assets/javascripts/views/license_groups/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.LicenseGroup.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.LicenseGroup.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/licenses/show.js.coffee b/app/assets/javascripts/views/licenses/show.js.coffee index 292aeb41..47cfaff7 100644 --- a/app/assets/javascripts/views/licenses/show.js.coffee +++ b/app/assets/javascripts/views/licenses/show.js.coffee @@ -1,9 +1,10 @@ -class Pettanr.Views.License.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.License.Show extends Pettanr.View.Show initialize: (options) -> + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) render: () -> this.$el.html('') + this.$el.append(@header.render().el) this diff --git a/app/assets/javascripts/views/licenses/summary.js.coffee b/app/assets/javascripts/views/licenses/summary.js.coffee index 3c867abf..53140ca5 100644 --- a/app/assets/javascripts/views/licenses/summary.js.coffee +++ b/app/assets/javascripts/views/licenses/summary.js.coffee @@ -1,15 +1,11 @@ -class Pettanr.Views.License.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.License.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) @item = options.item @item.get_parent('system_picture', this, { success: (@system_picture) => - @img = new Tag.Img({ - attr: { - src: @system_picture.src() - } - }) + @img = new Pettanr.View.Icon(@system_picture.symbol_file()) @trigger('ready') }) diff --git a/app/assets/javascripts/views/original_pictures/show.js.coffee b/app/assets/javascripts/views/original_pictures/show.js.coffee index 7b138fc8..3d68e790 100644 --- a/app/assets/javascripts/views/original_pictures/show.js.coffee +++ b/app/assets/javascripts/views/original_pictures/show.js.coffee @@ -1,9 +1,4 @@ class Pettanr.Views.OriginalPicture.ShowModule -class Pettanr.Views.OriginalPicture.ShowModule.Header extends Pettanr.Views.Show.Header - - initialize: (options) -> - super(options) - class Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton extends Tag.A initialize: (options) -> @@ -35,9 +30,7 @@ class Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter extends Pettanr.View tagName: 'div' className: 'show-owner-footer' - initialize: (options) -> - super(options) - @item = options.item + initialize: (@item, options) -> @license = new Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton({item: @item}) @edit = new Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton({item: @item}) @destroy = new Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton({item: @item}) @@ -101,46 +94,46 @@ class Pettanr.Views.OriginalPicture.ShowModule.History extends Pettanr.View http_get: (url) -> @trigger('http_get', url) -class Pettanr.Views.OriginalPicture.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.OriginalPicture.Show extends Pettanr.View.Show initialize: (options) -> - @item = options.item - @header = new Pettanr.Views.OriginalPicture.ShowModule.Header({ - item: @item, - icon_url: @item.show_url(), - prof_url: @item.prof_url() - }) - @artist = new Pettanr.Views.Show.HeaderArtist({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() @img = new Pettanr.Views.OriginalPicture.Img({item: @item}) - @owner = new Pettanr.Views.OriginalPicture.ShowModule.Owner({item: @item}) + @owner = new Pettanr.View.Show.Footer(@item, this, { + actions: { + license: { + dic_name: 'original_pictures.show.select', + click: () => + @create_dialog() + @trigger('click:license', @dialog) + }, + edit: { + dic_name: 'original_pictures.show.replace', + click: () => + @trigger('http_get', @item.edit_url()) + }, + destroy: { + click: () => + redirect = (url) => + @trigger('http_get', url) + Pettanr.Proxy.destroy(@item, {redirect: redirect}) + }, + }, + }) @history = new Pettanr.Views.OriginalPicture.ShowModule.History({item: @item}) - @listenTo(@header, 'click:icon', @click_show) - @listenTo(@header, 'click:prof', @click_prof) - @listenTo(@artist, 'click:artist', @click_artist) - @listenTo(@owner, 'click:license', @click_license) - @listenTo(@owner, 'click:edit', @click_edit) - @listenTo(@owner, 'click:destroy', @click_destroy) + @listenTo(@authored_by, 'click', @click_authored_by) @listenTo(@history, 'http_get', @http_get) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@artist.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@img.render().el) this.$el.append(@owner.render().el) this.$el.append(@history.render().el) this - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_artist: () -> - @trigger('http_get', @item.artist().show_url()) - click_license: () -> @create_dialog() @trigger('click:license', @dialog) diff --git a/app/assets/javascripts/views/original_pictures/summary.js.coffee b/app/assets/javascripts/views/original_pictures/summary.js.coffee index de82aae6..2979ef08 100644 --- a/app/assets/javascripts/views/original_pictures/summary.js.coffee +++ b/app/assets/javascripts/views/original_pictures/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.OriginalPicture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.OriginalPicture.Summary extends Pettanr.View.Summary className: 'op-smy' initialize: (options) -> @@ -19,14 +19,17 @@ class Pettanr.Views.OriginalPicture.Summary extends Pettanr.Views.Common.Summary @item.get_child('resource_picture', this, { success: (@resource_picture) => if @resource_picture - @credit = @resource_picture.credit_view(true) - @listenTo(@credit, 'click:icon', @resource_picture_click) - this.$el.append(@credit.render().el) + @item.get_parent('picture', this, { + success: (@picture) => + @credit = new Pettanr.View.Credit(@picture, {icon: true}) + @listenTo(@credit, 'click:icon', @picture_click) + this.$el.append(@credit.render().el) + }) }) @rb() this # in credit - resource_picture_click: (resource_picture) -> - @trigger('http_get', resource_picture.show_url()) + picture_click: (picture) -> + @trigger('http_get', picture.show_url()) diff --git a/app/assets/javascripts/views/panel_pictures/element.js.coffee b/app/assets/javascripts/views/panel_pictures/element.js.coffee index bdcad4e9..62c903c1 100644 --- a/app/assets/javascripts/views/panel_pictures/element.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/element.js.coffee @@ -76,7 +76,7 @@ class Pettanr.Views.PanelPicture.Element.Img extends Pettanr.View @element.merge_opacity(style, opacity) { vPicture: @element.get('id'), - src: @picture.picture_file(@element.flip()).src(@picture), + src: @picture.picture_file(@element.flip()).src(), width: Pettanr.to_s(Math.abs(@element.get('width'))) + 'px', height: Pettanr.to_s(Math.abs(@element.get('height'))) + 'px', alt: @element.get('caption'), diff --git a/app/assets/javascripts/views/panel_pictures/show.js.coffee b/app/assets/javascripts/views/panel_pictures/show.js.coffee index e72d7081..5c71fc3c 100644 --- a/app/assets/javascripts/views/panel_pictures/show.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/show.js.coffee @@ -1,74 +1,29 @@ -class Pettanr.Views.PanelPicture.ShowModule -class Pettanr.Views.PanelPicture.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.PanelPicture.Show extends Pettanr.View.Show initialize: (options) -> - super(options) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) -class Pettanr.Views.PanelPicture.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.PanelPicture.ShowModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) + render: () -> + this.$el.html('') @item.get_parent('panel', this, { success: (item) => @panel = item.with_elements() @panel.fetch().done => @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @authored_by = @panel.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @item }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) @listenTo(@header, 'click:pick', @click_pick) - @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') + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() }) - - 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) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/panel_pictures/summary.js.coffee b/app/assets/javascripts/views/panel_pictures/summary.js.coffee index 82a5e00e..f25ee8f5 100644 --- a/app/assets/javascripts/views/panel_pictures/summary.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/summary.js.coffee @@ -1,15 +1,18 @@ -class Pettanr.Views.PanelPicture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.PanelPicture.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) @item = options.item @item.get_parent('picture', this, { success: (@picture) => - @credit = @picture.credit_view(false) + @credit = new Pettanr.View.Credit(@picture, {}) @item.get_parent('panel', this, { success: (@panel) => - @panel_icon = new Pettanr.Views.Common.Icon({item: @panel, half: true}) - @listenTo(@panel_icon, 'click', @panel_click) + @mini_face_button =@panel.mini_face_button({ + context: this, + click: () -> + @trigger('http_get', @panel.show_url()) + }) @trigger('ready') }) }) @@ -17,9 +20,6 @@ class Pettanr.Views.PanelPicture.Summary extends Pettanr.Views.Common.Summary render: () -> this.$el.html('') this.$el.append(@credit.render().el) - this.$el.append(@panel_icon.render().el) + this.$el.append(@mini_face_button.render().el) this - panel_click: () -> - @trigger('http_get', @panel_icon.url()) - diff --git a/app/assets/javascripts/views/panels/show.js.coffee b/app/assets/javascripts/views/panels/show.js.coffee index 7db481c2..3c06ee97 100644 --- a/app/assets/javascripts/views/panels/show.js.coffee +++ b/app/assets/javascripts/views/panels/show.js.coffee @@ -1,30 +1,11 @@ -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.Owner extends Pettanr.Views.Show.Owner - - initialize: (options) -> - super(options) - # panel: panel item # spot: no opacity element class Pettanr.Views.Panel.Show extends Pettanr.View - tagName: 'div' - initialize: (options) -> - @panel = options.panel + initialize: (@panel, options) -> @spot = options.spot - @header = new Pettanr.Views.Panel.ShowModule.Header({ - item: @panel, - caption: @panel.get('caption'), - icon_url: @panel.show_url(), - caption_url: @panel.show_url(), - prof_url: @panel.prof_url() - }) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @spot @@ -32,19 +13,12 @@ class Pettanr.Views.Panel.Show extends Pettanr.View @footer = new Pettanr.Views.Panel.Footer({ panel: @panel, }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) @owner = new Pettanr.Views.Panel.ShowModule.Owner({item: @panel}) @listenTo(@header, 'click:pick', @click_pick) - @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(@footer, 'click:inspire', @click_inspire) - @listenTo(@credits, 'click:credit:icon', @click_credit_icon) @listenTo(@owner, 'click:edit', @click_edit) @listenTo(@owner, 'click:destroy', @click_destroy) @@ -53,16 +27,10 @@ class Pettanr.Views.Panel.Show extends Pettanr.View this.$el.append(@header.render().el) this.$el.append(@body.render().el) this.$el.append(@footer.render().el) - this.$el.append(@credits.render().el) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() + @add_credits() this.$el.append(@owner.render().el) this - click_show: () -> - @trigger('http_get', @panel.show_url()) - click_author: () -> @trigger('http_get', @panel.author().show_url()) @@ -79,12 +47,6 @@ class Pettanr.Views.Panel.Show extends Pettanr.View @listenTo(inspire, 'inspire', @inspire) inspire.inspire() - click_prof: () -> - @trigger('http_get', @panel.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/panels/summary.js.coffee b/app/assets/javascripts/views/panels/summary.js.coffee index 1d26732d..8153d4a6 100644 --- a/app/assets/javascripts/views/panels/summary.js.coffee +++ b/app/assets/javascripts/views/panels/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Panel.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Panel.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/pictures/credit.js.coffee b/app/assets/javascripts/views/pictures/credit.js.coffee deleted file mode 100644 index 1de33a27..00000000 --- a/app/assets/javascripts/views/pictures/credit.js.coffee +++ /dev/null @@ -1,24 +0,0 @@ -class Pettanr.Views.Picture.Credit extends Pettanr.View - tagName: 'div' - className: 'credit' - - initialize: (options) -> - @item = options.item - @with_icon = options.with_icon - @url = @item.url + '/credit' - - render: () -> - 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) - @rb() - $.get(@url, null, f, 'html') - 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 deleted file mode 100644 index 6789c7b5..00000000 --- a/app/assets/javascripts/views/pictures/credit_icon.js.coffee +++ /dev/null @@ -1,17 +0,0 @@ -class Pettanr.Views.Picture.CreditIcon extends Pettanr.View - tagName: 'span' - className: 'credit-icon' - - initialize: (options) -> - @item = options.item - - render: () -> - this.$el.html('') - symbol_button = @item.symbol_button({ - context: this, - click: () => - @trigger('click') - }) - this.$el.append(symbol_button.render().el) - this - diff --git a/app/assets/javascripts/views/pictures/summary.js.coffee b/app/assets/javascripts/views/pictures/summary.js.coffee index 47805392..287ab410 100644 --- a/app/assets/javascripts/views/pictures/summary.js.coffee +++ b/app/assets/javascripts/views/pictures/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Picture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Picture.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/resource_picture_pictures/summary.js.coffee b/app/assets/javascripts/views/resource_picture_pictures/summary.js.coffee index ca38b7f5..b560dbe3 100644 --- a/app/assets/javascripts/views/resource_picture_pictures/summary.js.coffee +++ b/app/assets/javascripts/views/resource_picture_pictures/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.ResourcePicturePicture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.ResourcePicturePicture.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) @@ -8,7 +8,7 @@ class Pettanr.Views.ResourcePicturePicture.Summary extends Pettanr.Views.Common. load: () -> @item.get_parent('picture', this, { success: (@picture) => - @credit = @picture.credit_view(false) + @credit = new Pettanr.View.Credit(@picture, {}) @trigger('ready') }) diff --git a/app/assets/javascripts/views/resource_pictures/credit.js.coffee b/app/assets/javascripts/views/resource_pictures/credit.js.coffee deleted file mode 100644 index 7974c880..00000000 --- a/app/assets/javascripts/views/resource_pictures/credit.js.coffee +++ /dev/null @@ -1,24 +0,0 @@ -class Pettanr.Views.ResourcePicture.Credit extends Pettanr.View - tagName: 'div' - className: 'credit' - - initialize: (options) -> - @item = options.item - @with_icon = options.with_icon - @url = @item.url + '/credit' - - render: () -> - 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) - @rb() - $.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 deleted file mode 100644 index 7a0ea278..00000000 --- a/app/assets/javascripts/views/resource_pictures/credit_icon.js.coffee +++ /dev/null @@ -1,22 +0,0 @@ -class Pettanr.Views.ResourcePicture.CreditIcon extends Pettanr.View - tagName: 'span' - className: 'credit-icon' - - initialize: (options) -> - @item = options.item - @url = @item.url + '/credit' - - render: () -> - this.$el.html('') - resource_picture = @item.tmb_opt_img_tag() - linked_resource_picture = new Tag.A({ - attr: {href: @item.url}, - 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/resource_pictures/show.js.coffee b/app/assets/javascripts/views/resource_pictures/show.js.coffee index 06885e8a..905d8de4 100644 --- a/app/assets/javascripts/views/resource_pictures/show.js.coffee +++ b/app/assets/javascripts/views/resource_pictures/show.js.coffee @@ -1,143 +1,60 @@ -class Pettanr.Views.ResourcePicture.ShowModule -class Pettanr.Views.ResourcePicture.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.ResourcePicture.Show extends Pettanr.View.Show initialize: (options) -> - super(options) - -class Pettanr.Views.ResourcePicture.ShowModule.LinkedReplaceButton extends Tag.A - - initialize: (options) -> - item = options.item - op = new Pettanr.OriginalPicture({id: item.get('original_picture_id')}) - super({ - attr: {href: '/' + op.edit_url()}, - content: I18n.t('original_pictures.show.replace') - }) - -class Pettanr.Views.ResourcePicture.ShowModule.LinkedSourceButton extends Tag.A - - initialize: (options) -> - item = options.item - op = new Pettanr.OriginalPicture({id: item.get('original_picture_id')}) - super({ - attr: {href: '/' + op.show_url()}, - content: I18n.t('original_pictures.show.title') - }) - -class Pettanr.Views.ResourcePicture.ShowModule.LinkedStopButton extends Tag.A - - initialize: (options) -> - item = options.item - super({ - attr: {href: '/' + item.destroy_url()}, - content: I18n.t('original_pictures.index.stop') - }) - -class Pettanr.Views.ResourcePicture.ShowModule.OwnerFooter extends Pettanr.View - tagName: 'div' - className: 'show-owner-footer' - - initialize: (options) -> - super(options) - @item = options.item - @replace = new Pettanr.Views.ResourcePicture.ShowModule.LinkedReplaceButton({item: @item}) - @source = new Pettanr.Views.ResourcePicture.ShowModule.LinkedSourceButton({item: @item}) - @stop = new Pettanr.Views.ResourcePicture.ShowModule.LinkedStopButton({item: @item}) - @listenTo(@replace, 'click', @click_replace) - @listenTo(@source, 'click', @click_source) - @listenTo(@stop, 'click', @click_stop) - - render: () -> - super() - this.$el.append(@replace.render().el) - this.$el.append(@source.render().el) - this.$el.append(@stop.render().el) - this - - click_replace: () -> - @trigger('click:replace') - - click_source: () -> - @trigger('click:source') - - click_stop: () -> - @trigger('click:stop') - -class Pettanr.Views.ResourcePicture.ShowModule.Owner extends Pettanr.Views.Show.Owner - - initialize: (options) -> - super(options) - @listenTo(@footer, 'click:replace', @click_replace) - @listenTo(@footer, 'click:source', @click_source) - @listenTo(@footer, 'click:stop', @click_stop) - - click_replace: () -> - @trigger('click:replace') - - click_source: () -> - @trigger('click:source') - - click_stop: () -> - @trigger('click:stop') - - footer_class: () -> - Pettanr.Views.ResourcePicture.ShowModule.OwnerFooter - -class Pettanr.Views.ResourcePicture.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - @header = new Pettanr.Views.ResourcePicture.ShowModule.Header({ - item: @item, - icon_url: @item.show_url(), - caption_url: @item.show_url(), - prof_url: @item.prof_url() - }) - @artist = new Pettanr.Views.Show.HeaderArtist({item: @item}) - @img = new Pettanr.Views.ResourcePicture.Img({item: @item}) - @credit = @item.credit_view(false) - @owner = new Pettanr.Views.ResourcePicture.ShowModule.Owner({item: @item, original_picture: @original_picture}) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) + @authored_by = @item.authored_by() + @img = @item.real_picture('full') @listenTo(@header, 'click:pick', @click_pick) - @listenTo(@header, 'click:icon', @click_show) - @listenTo(@header, 'click:prof', @click_prof) - @listenTo(@artist, 'click:artist', @click_artist) - @listenTo(@owner, 'click:replace', @click_replace) - @listenTo(@owner, 'click:source', @click_source) - @listenTo(@owner, 'click:stop', @click_stop) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@artist.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@img.render().el) - this.$el.append(@credit.render().el) - this.$el.append(@owner.render().el) + @item.get_parent('original_picture', this, { + success: (@original_picture) => + @owner = new Pettanr.View.Show.Footer(null, this, { + actions: { + replace: { + item: @original_picture, + url: @original_picture.edit_url(), + dic_name: 'original_pictures.show.replace', + click: () => + @trigger('http_get', @original_picture.edit_url()) + }, + source: { + item: @original_picture, + url: @original_picture.show_url(), + dic_name: 'original_pictures.show.title', + click: () => + @trigger('http_get', @original_picture.show_url()) + }, + stop: { + item: @item, + url: @item.destroy_url(), + dic_name: 'original_pictures.index.stop', + click: () => + redirect = (url) => + @trigger('http_get', url) + Pettanr.Proxy.destroy(@item, {redirect: redirect}) + }, + }, + }) + @item.get_parent('picture', this, { + success: (@picture) => + @credit = new Pettanr.View.Credit(@picture, { + icon: { + click: () => + @trigger('http_get', @picture.show_url()) + } + }) + this.$el.append(@credit.render().el) + this.$el.append(@owner.render().el) + }) + }) this - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_artist: () -> - @trigger('http_get', @item.artist().show_url()) - - click_replace: () -> - op = new Pettanr.OriginalPicture({id: @item.get('original_picture_id')}) - @trigger('http_get', op.edit_url()) - - click_source: () -> - op = new Pettanr.OriginalPicture({id: @item.get('original_picture_id')}) - @trigger('http_get', op.show_url()) - - click_stop: () -> - redirect = (url) => - @trigger('http_get', url) - Pettanr.Proxy.destroy(@item, {redirect: redirect}) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/resource_pictures/summary.js.coffee b/app/assets/javascripts/views/resource_pictures/summary.js.coffee index 0b647e02..5ae01e97 100644 --- a/app/assets/javascripts/views/resource_pictures/summary.js.coffee +++ b/app/assets/javascripts/views/resource_pictures/summary.js.coffee @@ -1,11 +1,11 @@ -class Pettanr.Views.ResourcePicture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.ResourcePicture.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) @item = options.item @item.get_parent('picture', this, { success: (@picture) => - @credit = @picture.credit_view(false) + @credit = new Pettanr.View.Credit(@picture, {}) @trigger('ready') }) diff --git a/app/assets/javascripts/views/scroll_panels/summary.js.coffee b/app/assets/javascripts/views/scroll_panels/summary.js.coffee index e2450e06..105a9409 100644 --- a/app/assets/javascripts/views/scroll_panels/summary.js.coffee +++ b/app/assets/javascripts/views/scroll_panels/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.ScrollPanel.Summary extends Pettanr.Views.Common.Leaf.Summary +class Pettanr.Views.ScrollPanel.Summary extends Pettanr.View.Summary.Leaf initialize: (options) -> options['binder_item_name'] = 'scroll' diff --git a/app/assets/javascripts/views/scrolls/play.js.coffee b/app/assets/javascripts/views/scrolls/play.js.coffee index 38053d5a..ce430e7a 100644 --- a/app/assets/javascripts/views/scrolls/play.js.coffee +++ b/app/assets/javascripts/views/scrolls/play.js.coffee @@ -470,7 +470,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View else this.$el.html('') # paginate(@pager) - credits = new Pettanr.Views.Common.Credits({parent: this}) + credits = new Pettanr.View.Credits({parent: this}) @panels = new Pettanr.Views.Scroll.PlayModule.Panels({ parent: this, binder: @binder, @@ -533,25 +533,13 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View @appender.enable() }) -class Pettanr.Views.Scroll.Play extends Pettanr.View - tagName: 'div' - className: 'show' +class Pettanr.Views.Scroll.Play extends Pettanr.View.Show - initialize: (options) -> - @item = options.item + initialize: (@item, options) -> @list = options.list @pager = options.pager - 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.PlayModule.Header({ - item: @item, - caption: @item.get('title'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() @body = new Pettanr.Views.Scroll.PlayModule.Body({ parent: this, binder: @item, @@ -560,10 +548,7 @@ class Pettanr.Views.Scroll.Play extends Pettanr.View }) # @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item}) @listenTo(@header, 'click:pick', @click_pick) - @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(@authored_by, 'click', @click_authored_by) @listenTo(@body, 'http_get', @http_get) @listenTo(@body, 'click:insert', @click_insert) @listenTo(@body, 'click:move', @click_move) @@ -572,23 +557,11 @@ class Pettanr.Views.Scroll.Play extends Pettanr.View render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@author.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@body.render().el) # this.$el.append(@owner.render().el) if @item.is_own() this - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_play: () -> - @trigger('http_get', @item.play_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_author: () -> - @trigger('http_get', @author.author.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/scrolls/show.js.coffee b/app/assets/javascripts/views/scrolls/show.js.coffee index d661c9d6..5f0e297d 100644 --- a/app/assets/javascripts/views/scrolls/show.js.coffee +++ b/app/assets/javascripts/views/scrolls/show.js.coffee @@ -1,62 +1,19 @@ -class Pettanr.Views.Scroll.ShowModule -class Pettanr.Views.Scroll.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Scroll.Show extends Pettanr.View.Show initialize: (options) -> - super(options) - -class Pettanr.Views.Scroll.ShowModule.Owner extends Pettanr.Views.Show.Owner - - initialize: (options) -> - super(options) - -class Pettanr.Views.Scroll.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - @header = new Pettanr.View.Show.Header(@item, { - label: { - url: @item.play_url(), - } - }) - @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) - @owner = new Pettanr.Views.Scroll.ShowModule.Owner({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() + @owner = new Pettanr.View.Show.Footer(@item, this, @default_footer_options()) @listenTo(@header, 'click:pick', @click_pick) - @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) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@author.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@owner.render().el) if @item.is_own() this - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_play: () -> - @trigger('http_get', @item.play_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_author: () -> - @trigger('http_get', @item.author().show_url()) - - click_edit: () -> - @trigger('http_get', @item.edit_url()) - - click_destroy: () -> - redirect = (url) => - @trigger('http_get', url) - Pettanr.Proxy.destroy(@item, {redirect: redirect}) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/scrolls/summary.js.coffee b/app/assets/javascripts/views/scrolls/summary.js.coffee index 8759ad8a..83edbc27 100644 --- a/app/assets/javascripts/views/scrolls/summary.js.coffee +++ b/app/assets/javascripts/views/scrolls/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Scroll.Summary extends Pettanr.Views.Common.Binder.Summary +class Pettanr.Views.Scroll.Summary extends Pettanr.View.Summary.Binder initialize: (options) -> options['visible_t'] = 'scroll_visible_items' diff --git a/app/assets/javascripts/views/sheet_panels/summary.js.coffee b/app/assets/javascripts/views/sheet_panels/summary.js.coffee index 461d0c3c..d16e150e 100644 --- a/app/assets/javascripts/views/sheet_panels/summary.js.coffee +++ b/app/assets/javascripts/views/sheet_panels/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.SheetPanel.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.SheetPanel.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/sheets/play.js.coffee b/app/assets/javascripts/views/sheets/play.js.coffee index a415763e..fb44be7d 100644 --- a/app/assets/javascripts/views/sheets/play.js.coffee +++ b/app/assets/javascripts/views/sheets/play.js.coffee @@ -106,7 +106,7 @@ class Pettanr.Views.Sheet.PlayModule.Body extends Pettanr.View render: () -> this.$el.html('') # paginate(@pager) - credits = new Pettanr.Views.Common.Credits({parent: this}) + credits = new Pettanr.View.Credits({parent: this}) panels = new Pettanr.Views.Sheet.PlayModule.Panels({ parent: this, items: @items, @@ -118,34 +118,23 @@ class Pettanr.Views.Sheet.PlayModule.Body extends Pettanr.View # paginate(@pager) this -class Pettanr.Views.Sheet.Play extends Pettanr.View - tagName: 'div' - className: 'show' +class Pettanr.Views.Sheet.Play extends Pettanr.View.Show - initialize: (options) -> - @item = options.item + initialize: (@item, options) -> @list = options.list - 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.Sheet.PlayModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() @body = new Pettanr.Views.Sheet.PlayModule.Body({ parent: this, list: @list, }) @owner = new Pettanr.Views.Sheet.PlayModule.Owner({item: @item}) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@author.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@body.render().el) this.$el.append(@owner.render().el) if @item.is_own() this diff --git a/app/assets/javascripts/views/sheets/show.js.coffee b/app/assets/javascripts/views/sheets/show.js.coffee index 0811a79d..30cd6172 100644 --- a/app/assets/javascripts/views/sheets/show.js.coffee +++ b/app/assets/javascripts/views/sheets/show.js.coffee @@ -1,38 +1,16 @@ -class Pettanr.Views.Sheet.ShowModule -class Pettanr.Views.Sheet.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Sheet.Show extends Pettanr.View.Show initialize: (options) -> - super(options) - -class Pettanr.Views.Sheet.ShowModule.Owner extends Pettanr.Views.Show.Owner - - initialize: (options) -> - super(options) - -class Pettanr.Views.Sheet.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - 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.Sheet.ShowModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) - @owner = new Pettanr.Views.Sheet.ShowModule.Owner({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() + @owner = new Pettanr.View.Show.Footer(@item, this, @default_footer_options()) @listenTo(@header, 'click:pick', @click_pick) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@author.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@owner.render().el) if @item.is_own() this diff --git a/app/assets/javascripts/views/sheets/summary.js.coffee b/app/assets/javascripts/views/sheets/summary.js.coffee index 16d87aef..57f7b903 100644 --- a/app/assets/javascripts/views/sheets/summary.js.coffee +++ b/app/assets/javascripts/views/sheets/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Sheet.Summary extends Pettanr.Views.Common.Binder.Summary +class Pettanr.Views.Sheet.Summary extends Pettanr.View.Summary.Binder initialize: (options) -> options['visible_t'] = 'sheet_visible_items' diff --git a/app/assets/javascripts/views/speech_balloon_templates/show.js.coffee b/app/assets/javascripts/views/speech_balloon_templates/show.js.coffee index ab3fb3c6..f689287e 100644 --- a/app/assets/javascripts/views/speech_balloon_templates/show.js.coffee +++ b/app/assets/javascripts/views/speech_balloon_templates/show.js.coffee @@ -1,9 +1,20 @@ -class Pettanr.Views.SpeechBalloonTemplate.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.SpeechBalloonTemplate.Show extends Pettanr.View.Show initialize: (options) -> + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @listenTo(@header, 'click:pick', @click_pick) render: () -> this.$el.html('') + this.$el.append(@header.render().el) this + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/speech_balloon_templates/summary.js.coffee b/app/assets/javascripts/views/speech_balloon_templates/summary.js.coffee index 740483aa..c2653151 100644 --- a/app/assets/javascripts/views/speech_balloon_templates/summary.js.coffee +++ b/app/assets/javascripts/views/speech_balloon_templates/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.SpeechBalloonTemplate.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.SpeechBalloonTemplate.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/speech_balloons/show.js.coffee b/app/assets/javascripts/views/speech_balloons/show.js.coffee index 44d604f7..7cb05c27 100644 --- a/app/assets/javascripts/views/speech_balloons/show.js.coffee +++ b/app/assets/javascripts/views/speech_balloons/show.js.coffee @@ -1,74 +1,28 @@ -class Pettanr.Views.SpeechBalloon.ShowModule -class Pettanr.Views.SpeechBalloon.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.SpeechBalloon.Show extends Pettanr.View.Show initialize: (options) -> - super(options) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) -class Pettanr.Views.SpeechBalloon.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.SpeechBalloon.ShowModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) + render: () -> + this.$el.html('') @item.get_parent('panel', this, { success: (item) => @panel = item.with_elements() @panel.fetch().done => @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @authored_by = @panel.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @item }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) - @listenTo(@header, 'click:pick', @click_pick) - @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') + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() }) - - 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) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/speech_balloons/summary.js.coffee b/app/assets/javascripts/views/speech_balloons/summary.js.coffee index d4ed14b0..cc212b2f 100644 --- a/app/assets/javascripts/views/speech_balloons/summary.js.coffee +++ b/app/assets/javascripts/views/speech_balloons/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.SpeechBalloon.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.SpeechBalloon.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/speeches/show.js.coffee b/app/assets/javascripts/views/speeches/show.js.coffee index 2f2723ef..5e5ca4c5 100644 --- a/app/assets/javascripts/views/speeches/show.js.coffee +++ b/app/assets/javascripts/views/speeches/show.js.coffee @@ -1,26 +1,10 @@ -class Pettanr.Views.Speech.ShowModule -class Pettanr.Views.Speech.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Speech.Show extends Pettanr.View.Show initialize: (options) -> - super(options) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) -class Pettanr.Views.Speech.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.Speech.ShowModule.Header({ - item: @item, - caption: '', - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) + render: () -> + this.$el.html('') @item.get_parent('speech_balloon', this, { success: (@speech_balloon) => @speech_balloon.get_parent('panel', this, { @@ -28,50 +12,21 @@ class Pettanr.Views.Speech.Show extends Pettanr.View @panel = item.with_elements() @panel.fetch().done => @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @authored_by = @panel.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @item }) - @credits = new Pettanr.Views.Common.Credits({ - parent: this - }) @listenTo(@header, 'click:pick', @click_pick) - @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') + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() }) }) - - 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) - @credits.clear() - @credits.push(@panel.licensed_pictures()) - @rb() - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) diff --git a/app/assets/javascripts/views/speeches/summary.js.coffee b/app/assets/javascripts/views/speeches/summary.js.coffee index 14503b82..0dc37956 100644 --- a/app/assets/javascripts/views/speeches/summary.js.coffee +++ b/app/assets/javascripts/views/speeches/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Speech.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.Speech.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/stories/show.js.coffee b/app/assets/javascripts/views/stories/show.js.coffee index 512bd69f..50e25db2 100644 --- a/app/assets/javascripts/views/stories/show.js.coffee +++ b/app/assets/javascripts/views/stories/show.js.coffee @@ -1,38 +1,16 @@ -class Pettanr.Views.Story.ShowModule -class Pettanr.Views.Story.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Story.Show extends Pettanr.View.Show initialize: (options) -> - super(options) - -class Pettanr.Views.Story.ShowModule.Owner extends Pettanr.Views.Show.Owner - - initialize: (options) -> - super(options) - -class Pettanr.Views.Story.Show extends Pettanr.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - 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.Story.ShowModule.Header({ - item: @item, - caption: @item.get('title'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) - @owner = new Pettanr.Views.Story.ShowModule.Owner({item: @item}) + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) + @authored_by = @item.authored_by() + @owner = new Pettanr.View.Show.Footer(@item, this, @default_footer_options()) @listenTo(@header, 'click:pick', @click_pick) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) - this.$el.append(@author.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@owner.render().el) if @item.is_own() this diff --git a/app/assets/javascripts/views/stories/summary.js.coffee b/app/assets/javascripts/views/stories/summary.js.coffee index 22acf79d..c75efef4 100644 --- a/app/assets/javascripts/views/stories/summary.js.coffee +++ b/app/assets/javascripts/views/stories/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.Story.Summary extends Pettanr.Views.Common.Binder.Summary +class Pettanr.Views.Story.Summary extends Pettanr.View.Summary.Binder initialize: (options) -> options['visible_t'] = 'story_visible_items' diff --git a/app/assets/javascripts/views/story_sheets/summary.js.coffee b/app/assets/javascripts/views/story_sheets/summary.js.coffee index 95d86fad..529d54b0 100644 --- a/app/assets/javascripts/views/story_sheets/summary.js.coffee +++ b/app/assets/javascripts/views/story_sheets/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.StorySheet.Summary extends Pettanr.Views.Common.Leaf.Summary +class Pettanr.Views.StorySheet.Summary extends Pettanr.View.Summary.Leaf initialize: (options) -> options['binder_item_name'] = 'story' diff --git a/app/assets/javascripts/views/system_pictures/show.js.coffee b/app/assets/javascripts/views/system_pictures/show.js.coffee index 7f2172e0..0a557773 100644 --- a/app/assets/javascripts/views/system_pictures/show.js.coffee +++ b/app/assets/javascripts/views/system_pictures/show.js.coffee @@ -1,9 +1,10 @@ -class Pettanr.Views.SystemPicture.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.SystemPicture.Show extends Pettanr.View.Show initialize: (options) -> + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) render: () -> this.$el.html('') + this.$el.append(@header.render().el) this diff --git a/app/assets/javascripts/views/system_pictures/summary.js.coffee b/app/assets/javascripts/views/system_pictures/summary.js.coffee index 9a4f910f..913d0ab8 100644 --- a/app/assets/javascripts/views/system_pictures/summary.js.coffee +++ b/app/assets/javascripts/views/system_pictures/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.SystemPicture.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.SystemPicture.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/views/writing_formats/show.js.coffee b/app/assets/javascripts/views/writing_formats/show.js.coffee index 955552be..9f598113 100644 --- a/app/assets/javascripts/views/writing_formats/show.js.coffee +++ b/app/assets/javascripts/views/writing_formats/show.js.coffee @@ -1,9 +1,10 @@ -class Pettanr.Views.WritingFormat.Show extends Pettanr.View - tagName: 'div' +class Pettanr.Views.WritingFormat.Show extends Pettanr.View.Show initialize: (options) -> + @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options()) render: () -> this.$el.html('') + this.$el.append(@header.render().el) this diff --git a/app/assets/javascripts/views/writing_formats/summary.js.coffee b/app/assets/javascripts/views/writing_formats/summary.js.coffee index 97287225..4b3faab8 100644 --- a/app/assets/javascripts/views/writing_formats/summary.js.coffee +++ b/app/assets/javascripts/views/writing_formats/summary.js.coffee @@ -1,4 +1,4 @@ -class Pettanr.Views.WritingFormat.Summary extends Pettanr.Views.Common.Summary +class Pettanr.Views.WritingFormat.Summary extends Pettanr.View.Summary initialize: (options) -> super(options) diff --git a/app/assets/javascripts/yasapp.js b/app/assets/javascripts/yasapp.js index 7aa64464..66d9c277 100644 --- a/app/assets/javascripts/yasapp.js +++ b/app/assets/javascripts/yasapp.js @@ -309,7 +309,10 @@ //= require_directory ./view/button //= require_directory ./view/image //= require_directory ./view/show +//= require_directory ./view/show/header +//= require_directory ./view/show/footer //= require_directory ./view/play +//= require_directory ./view/summary //= require_directory ./views //= require_directory ./views/folders //= require_directory ./views/artists -- 2.11.0