From eec19634998fd448e4bb1be831260537199d8271 Mon Sep 17 00:00:00 2001 From: yasushiito Date: Mon, 29 Sep 2014 11:02:55 +0900 Subject: [PATCH] fix summary --- .../javascripts/controllers/balloons.js.coffee | 8 ++ .../javascripts/controllers/comics.js.coffee | 14 ++- .../controllers/ground_colors.js.coffee | 14 ++- .../controllers/ground_pictures.js.coffee | 14 ++- .../controllers/panel_pictures.js.coffee | 14 ++- .../javascripts/controllers/scrolls.js.coffee | 14 ++- .../javascripts/controllers/sheets.js.coffee | 14 ++- .../controllers/speech_balloons.js.coffee | 14 ++- .../javascripts/controllers/speeches.js.coffee | 8 ++ .../javascripts/controllers/stories.js.coffee | 14 ++- .../javascripts/local_manifest/profiler.js.coffee | 4 +- .../locmare/bucket/form_field_name.js.coffee | 126 --------------------- .../javascripts/locmare/bucket/member.js.coffee | 60 ---------- app/assets/javascripts/locmare/filer.js.coffee | 7 -- .../javascripts/locmare/filer/body.js.coffee | 21 ++-- .../file_body/file_item/date/default.js.coffee | 5 +- .../file_body/file_item/summary/template.js.coffee | 2 +- .../locmare/filer/body/file_header.js.coffee | 56 +++------ .../locmare/filer/body/file_header/base.js.coffee | 29 +---- .../locmare/filer/body/file_header/none.js.coffee | 5 +- .../locmare/filer/body/file_header/show.js.coffee | 2 - app/assets/javascripts/locmare/profiler.js.coffee | 13 +-- .../locmare/profiler/column/base.js.coffee | 3 +- .../profiler/column/extend/extend_column.js.coffee | 3 + .../javascripts/locmare/profiler/header.js.coffee | 1 + app/assets/javascripts/models/author.js.coffee | 3 + app/assets/javascripts/models/comic.js.coffee | 3 + .../javascripts/models/ground_color.js.coffee | 3 + .../javascripts/models/ground_picture.js.coffee | 3 + app/assets/javascripts/models/panel.js.coffee | 3 + .../javascripts/models/panel_picture.js.coffee | 3 + app/assets/javascripts/models/scroll.js.coffee | 3 + .../javascripts/models/scroll_panel.js.coffee | 6 + app/assets/javascripts/models/sheet.js.coffee | 3 + .../javascripts/models/speech_balloon.js.coffee | 3 + app/assets/javascripts/models/story.js.coffee | 3 + app/assets/javascripts/peta/item.js.coffee | 3 + app/assets/javascripts/pettanr.js.coffee | 35 ++++-- app/assets/javascripts/tags.js.coffee | 14 +++ .../javascripts/views/authors/icon.js.coffee | 5 + .../javascripts/views/authors/name.js.coffee | 18 +++ .../javascripts/views/balloons/show.js.coffee | 30 +++++ app/assets/javascripts/views/comics/show.js.coffee | 29 +++++ app/assets/javascripts/views/common.js.coffee | 20 ++++ .../javascripts/views/ground_colors/show.js.coffee | 26 +++++ .../views/ground_pictures/show.js.coffee | 26 +++++ .../views/panel_pictures/show.js.coffee | 26 +++++ app/assets/javascripts/views/panels/icon.js.coffee | 5 + .../javascripts/views/scroll_panels/icon.js.coffee | 5 + .../views/scroll_panels/summary.js.coffee | 18 ++- .../javascripts/views/scrolls/icon.js.coffee | 5 + .../javascripts/views/scrolls/show.js.coffee | 29 +++++ .../javascripts/views/scrolls/summary.js.coffee | 16 ++- app/assets/javascripts/views/sheets/show.js.coffee | 29 +++++ app/assets/javascripts/views/show.js.coffee | 110 ++++++++++++++++++ .../views/speech_balloons/show.js.coffee | 26 +++++ .../javascripts/views/speeches/show.js.coffee | 30 +++++ .../javascripts/views/stories/show.js.coffee | 29 +++++ app/views/authors/_summary.html.erb | 2 +- app/views/scroll_panels/_footer.html.erb | 2 +- app/views/story_sheets/_summary.html.erb | 2 +- app/views/top/index.html.erb | 91 --------------- lib/locmare/bucket.rb | 3 - lib/locmare/bucket/form_field_name.rb | 65 ----------- lib/locmare/bucket/member.rb | 81 ------------- 65 files changed, 684 insertions(+), 597 deletions(-) delete mode 100644 app/assets/javascripts/locmare/bucket/form_field_name.js.coffee delete mode 100644 app/assets/javascripts/locmare/bucket/member.js.coffee create mode 100644 app/assets/javascripts/views/authors/icon.js.coffee create mode 100644 app/assets/javascripts/views/authors/name.js.coffee create mode 100644 app/assets/javascripts/views/balloons/show.js.coffee create mode 100644 app/assets/javascripts/views/common.js.coffee create mode 100644 app/assets/javascripts/views/panels/icon.js.coffee create mode 100644 app/assets/javascripts/views/scroll_panels/icon.js.coffee create mode 100644 app/assets/javascripts/views/scrolls/icon.js.coffee create mode 100644 app/assets/javascripts/views/show.js.coffee create mode 100644 app/assets/javascripts/views/speeches/show.js.coffee delete mode 100644 lib/locmare/bucket/form_field_name.rb delete mode 100644 lib/locmare/bucket/member.rb diff --git a/app/assets/javascripts/controllers/balloons.js.coffee b/app/assets/javascripts/controllers/balloons.js.coffee index 84152ead..b9b35e56 100644 --- a/app/assets/javascripts/controllers/balloons.js.coffee +++ b/app/assets/javascripts/controllers/balloons.js.coffee @@ -10,6 +10,14 @@ class Pettanr.BalloonsController extends Pettanr.AppController @filer_list() show_html: () -> + _this = this + @item.fetch().done -> + view = new Pettanr.Views.Balloon.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/comics.js.coffee b/app/assets/javascripts/controllers/comics.js.coffee index d717f624..61b3f227 100644 --- a/app/assets/javascripts/controllers/comics.js.coffee +++ b/app/assets/javascripts/controllers/comics.js.coffee @@ -10,12 +10,14 @@ class Pettanr.ComicsController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.Comic.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.Comic.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/ground_colors.js.coffee b/app/assets/javascripts/controllers/ground_colors.js.coffee index ecac27cf..2cdf2539 100644 --- a/app/assets/javascripts/controllers/ground_colors.js.coffee +++ b/app/assets/javascripts/controllers/ground_colors.js.coffee @@ -10,12 +10,14 @@ class Pettanr.GroundColorsController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.GroundColor.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.GroundColor.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + #view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/ground_pictures.js.coffee b/app/assets/javascripts/controllers/ground_pictures.js.coffee index 18167983..60598839 100644 --- a/app/assets/javascripts/controllers/ground_pictures.js.coffee +++ b/app/assets/javascripts/controllers/ground_pictures.js.coffee @@ -10,12 +10,14 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.GroundPicture.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.GroundPicture.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + #view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/panel_pictures.js.coffee b/app/assets/javascripts/controllers/panel_pictures.js.coffee index be94c43c..ecc77101 100644 --- a/app/assets/javascripts/controllers/panel_pictures.js.coffee +++ b/app/assets/javascripts/controllers/panel_pictures.js.coffee @@ -10,12 +10,14 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.PanelPicture.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.PanelPicture.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + #view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/scrolls.js.coffee b/app/assets/javascripts/controllers/scrolls.js.coffee index 3a62f1e7..97f1eb80 100644 --- a/app/assets/javascripts/controllers/scrolls.js.coffee +++ b/app/assets/javascripts/controllers/scrolls.js.coffee @@ -10,12 +10,14 @@ class Pettanr.ScrollsController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.Scroll.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.Scroll.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/sheets.js.coffee b/app/assets/javascripts/controllers/sheets.js.coffee index 8b5a3e09..3fa33f30 100644 --- a/app/assets/javascripts/controllers/sheets.js.coffee +++ b/app/assets/javascripts/controllers/sheets.js.coffee @@ -13,12 +13,14 @@ class Pettanr.SheetsController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.Sheet.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.Sheet.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/speech_balloons.js.coffee b/app/assets/javascripts/controllers/speech_balloons.js.coffee index 18d3b0cd..0ec2565f 100644 --- a/app/assets/javascripts/controllers/speech_balloons.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloons.js.coffee @@ -13,12 +13,14 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.SpeechBalloon.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.SpeechBalloon.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + #view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/speeches.js.coffee b/app/assets/javascripts/controllers/speeches.js.coffee index bab87b9d..339ccc75 100644 --- a/app/assets/javascripts/controllers/speeches.js.coffee +++ b/app/assets/javascripts/controllers/speeches.js.coffee @@ -10,6 +10,14 @@ class Pettanr.SpeechesController extends Pettanr.AppController @filer_list() show_html: () -> + _this = this + @item.fetch().done -> + view = new Pettanr.Views.Speech.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/controllers/stories.js.coffee b/app/assets/javascripts/controllers/stories.js.coffee index c8b50ad8..02e620dc 100644 --- a/app/assets/javascripts/controllers/stories.js.coffee +++ b/app/assets/javascripts/controllers/stories.js.coffee @@ -13,12 +13,14 @@ class Pettanr.StoriesController extends Pettanr.AppController @filer_list() show_html: () -> - view = new Pettanr.Views.Story.Show({ - el: "#pettanr", - item: @item, - operators: @operators - }) - view.render() + _this = this + @item.fetch().done -> + view = new Pettanr.Views.Story.Show({ + el: "#pettanr", + item: _this.item, + operators: _this.operators + }) + view.render() show: () -> @set_show() diff --git a/app/assets/javascripts/local_manifest/profiler.js.coffee b/app/assets/javascripts/local_manifest/profiler.js.coffee index e4b7138b..82b27795 100644 --- a/app/assets/javascripts/local_manifest/profiler.js.coffee +++ b/app/assets/javascripts/local_manifest/profiler.js.coffee @@ -9,8 +9,8 @@ class LocalManifest.Profiler extends ManifestBase.Base @json['associations'] ||= {} # supply column configures @json['column_names'].unshift('id') if not @json['column_names'] in 'id' - @json['column_names'].push('created_at') if not @json['column_names'] in 'created_at' - @json['column_names'].push('updated_at') if not @json['column_names'] in 'updated_at' + @json['column_names'].push('created_at') if not (@json['column_names'] in 'created_at') + @json['column_names'].push('updated_at') if not (@json['column_names'] in 'updated_at') @json['columns']['created_at'] = {'type': 'date'} @json['columns']['updated_at'] = {'type': 'date'} c = @json['columns'] diff --git a/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee b/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee deleted file mode 100644 index 8630e8e1..00000000 --- a/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee +++ /dev/null @@ -1,126 +0,0 @@ -class Locmare.FormModule.Field extends Backbone.View - tagName: 'div' - className: 'field' - - initialize: (options) -> - @form = options.form - @field_name = options.field_name - @field_manifest = options.field_manifest - @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label - @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag - @helpers = {} - _this = this - _.each @field_manifest.helpers, (helper_manifest, helper_name) -> - _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest) - @rb = @row_break() - @options = {'data-model': @field_manifest.form_name} - - render: () -> - this.$el.html('') - this.$el.append(@label.render().el) if not @label.hidden() - this.$el.append(@tag.render().el) - _this = this - _.each @helpers, (helper) -> - _this.$el.append(helper.render().el) - this.$el.append(@rb.render().el) if @rb - this - - mounted: () -> - if @form.mounted - 0 - else - 1 - - mount_option: () -> - {'mount': @mounted()} - - item: () -> - @form.item - - value: () -> - @item().get(@field_manifest.column_name) - - options: (tag_options = {}) -> - tag_options - - form_field_name: () -> - @form.form_field_name @field_name - - form_name: () -> - @form.form_name - - row_break: () -> - if @field_manifest.row_break - new Tag.Div({ - content: null, - class_name: 'row_break' - }) - else - null - -class Locmare.FormModule.FieldModule -module Locmare - module BucketModule - class FieldName - attr :bucket, :field_name, :field_manifest, - :label, :tag, :helpers, :options - def initialize bucket, field_name, field_manifest - @bucket = bucket - @field_name = field_name - @field_manifest = field_manifest - @label = LabelFactory.factory self, @field_manifest.label - @tag = TagFactory.factory self, @field_manifest.tag - @helpers = {} - @field_manifest.helpers.each {|helper_name, helper_manifest| - @helpers[helper_name] = HelperFactory.factory self, helper_manifest - } - @options = {'data-model' => @field_manifest.form_name} - end - - def item - @form.item - end - - def form_field_name - self.form_name + '[' + @field_name + ']' - end - - def form_name - @form.form_name - end - - def template_dir - @form.template_dir + 'field/' - end - - def template_file_name - 'default' - end - - def template_name - self.template_dir + self.template_file_name - end - - def template_option - {:field => self} - end - - def row_break_template_dir - @form.template_dir + 'row_break/' - end - - def row_break_template_file_name - if @field_manifest.row_break - 'br' - else - 'no_break' - end - end - - def row_break_template_name - self.row_break_template_dir + self.row_break_template_file_name - end - -end -end -end diff --git a/app/assets/javascripts/locmare/bucket/member.js.coffee b/app/assets/javascripts/locmare/bucket/member.js.coffee deleted file mode 100644 index d95da6ba..00000000 --- a/app/assets/javascripts/locmare/bucket/member.js.coffee +++ /dev/null @@ -1,60 +0,0 @@ -class Locmare.BucketModule.Member - tagName: 'div' - className: 'field' - - initialize: (options) -> - @form = options.form - @field_name = options.field_name - @field_manifest = options.field_manifest - @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label - @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag - @helpers = {} - _this = this - _.each @field_manifest.helpers, (helper_manifest, helper_name) -> - _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest) - @rb = @row_break() - @options = {'data-model': @field_manifest.form_name} - - render: () -> - this.$el.html('') - this.$el.append(@label.render().el) if not @label.hidden() - this.$el.append(@tag.render().el) - _this = this - _.each @helpers, (helper) -> - _this.$el.append(helper.render().el) - this.$el.append(@rb.render().el) if @rb - this - - mounted: () -> - if @form.mounted - 0 - else - 1 - - mount_option: () -> - {'mount': @mounted()} - - item: () -> - @form.item - - value: () -> - @item().get(@field_manifest.column_name) - - options: (tag_options = {}) -> - tag_options - - form_field_name: () -> - @form.form_name + '[' + @field_name + ']' - - form_name: () -> - @form.form_name - - row_break: () -> - if @field_manifest.row_break - new Tag.Div({ - content: null, - class_name: 'row_break' - }) - else - null - diff --git a/app/assets/javascripts/locmare/filer.js.coffee b/app/assets/javascripts/locmare/filer.js.coffee index 5a8a04c3..c2e63e7c 100644 --- a/app/assets/javascripts/locmare/filer.js.coffee +++ b/app/assets/javascripts/locmare/filer.js.coffee @@ -6,7 +6,6 @@ class Locmare.Filer extends Backbone.View @pager = options.pager @operators = options.operators @manifest = LocalManifest.manifest().filers[@item_name] - @template_dir = 'templates-filer-' @header = new Locmare.FilerModule.Header({'filer': this}) @body = new Locmare.FilerModule.Body({'filer': this}) @render() @@ -25,12 +24,6 @@ class Locmare.Filer extends Backbone.View mybody: () -> Locmare.FilerModule.Body - template_file_name: () -> - "filer" - - template_name: () -> - @template_dir + @template_file_name() - image_dir: () -> '/images/' diff --git a/app/assets/javascripts/locmare/filer/body.js.coffee b/app/assets/javascripts/locmare/filer/body.js.coffee index 5266dd02..b31c8fb0 100644 --- a/app/assets/javascripts/locmare/filer/body.js.coffee +++ b/app/assets/javascripts/locmare/filer/body.js.coffee @@ -9,34 +9,27 @@ class Locmare.FilerModule.Body extends Backbone.View render: () -> this.$el.append(@file_header.render().el) this.$el.append(@file_body.render().el) + rb = new Tag.RowBreak() + this.$el.append(rb.render().el) this file_header_class: () -> Locmare.FilerModule.BodyModule.FileHeader - + file_body_class: () -> Locmare.FilerModule.BodyModule.FileBody - + manifest: () -> @filer.manifest - + item_name: () -> @filer.item_name - + model: () -> @filer.model() - + items: () -> @filer.items - - template_dir: () -> - @filer.template_dir - - template_file_name: () -> - "body" - - template_name: () -> - @template_dir() + @template_file_name() class Locmare.FilerModule.BodyModule diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item/date/default.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item/date/default.js.coffee index 52c18f3a..5e36562a 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item/date/default.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item/date/default.js.coffee @@ -8,7 +8,10 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.DateItemColum this time_ago: () -> - $.timeago(@item.get('updated_at')) + if Pettanr.is_blank(@item.get('updated_at')) + '' + else + $.timeago(@item.get('updated_at')) is_visible: () -> true diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item/summary/template.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item/summary/template.js.coffee index b4203c4e..96a1e004 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item/summary/template.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item/summary/template.js.coffee @@ -5,7 +5,7 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SummaryItemCo render: () -> view = Pettanr.Views[@item.singular()] - summary = new view[view.summary()]() + summary = new view[view.summary()]({item: @item}) this.$el.html(summary.render().el) this diff --git a/app/assets/javascripts/locmare/filer/body/file_header.js.coffee b/app/assets/javascripts/locmare/filer/body/file_header.js.coffee index 722a7bef..a1fc514f 100644 --- a/app/assets/javascripts/locmare/filer/body/file_header.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_header.js.coffee @@ -1,45 +1,24 @@ class Locmare.FilerModule.BodyModule.FileHeader extends Backbone.View tagName: 'li' - id: '' initialize: (options) -> @body = options.body - c = if @manifest().symbol.is_visible() - Locmare.FilerModule.BodyModule.FileHeaderModule.Show - else - Locmare.FilerModule.BodyModule.FileHeaderModule.None - @symbol = new c({'file_header': this, 'column_name': 'symbol'}) - c = if @manifest().caption.is_visible() - Locmare.FilerModule.BodyModule.FileHeaderModule.Show - else - Locmare.FilerModule.BodyModule.FileHeaderModule.None - @caption = new c({'file_header': this, 'column_name': 'caption'}) - c = if @manifest().summary.is_visible() - Locmare.FilerModule.BodyModule.FileHeaderModule.Show - else - Locmare.FilerModule.BodyModule.FileHeaderModule.None - @summary = new c({'file_header': this, 'column_name': 'summary'}) - c = if @manifest().icon.is_visible() - Locmare.FilerModule.BodyModule.FileHeaderModule.Show - else - Locmare.FilerModule.BodyModule.FileHeaderModule.None - @icon = new c({'file_header': this, 'column_name': 'icon'}) - c = if @manifest().date.is_visible() - Locmare.FilerModule.BodyModule.FileHeaderModule.Show - else - Locmare.FilerModule.BodyModule.FileHeaderModule.None - @date = new c({'file_header': this, 'column_name': 'date'}) - c = if @manifest().edit.is_visible() - Locmare.FilerModule.BodyModule.FileHeaderModule.Show - else - Locmare.FilerModule.BodyModule.FileHeaderModule.None - @edit = new c({'file_header': this, 'column_name': 'edit'}) + @symbol = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'symbol'}) + @caption = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'caption'}) + @summary = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'summary'}) + @icon = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'icon'}) + @date = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'date'}) + @edit = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'edit'}) @el.className = 'filer-head filer-head-' + @item_name() render: () -> - args = {'file_header': this} - template = _.template($("#" + @template_name()).html()) - this.$el.html(template(args)) + this.$el.html('') + this.$el.append(@symbol.render().el) if @manifest().symbol.is_visible() + this.$el.append(@caption.render().el) if @manifest().caption.is_visible() + this.$el.append(@summary.render().el) if @manifest().summary.is_visible() + this.$el.append(@icon.render().el) if @manifest().icon.is_visible() + this.$el.append(@date.render().el) if @manifest().date.is_visible() + this.$el.append(@edit.render().el) if @manifest().edit.is_visible() this filer: () -> @@ -57,14 +36,5 @@ class Locmare.FilerModule.BodyModule.FileHeader extends Backbone.View items: () -> @filer.items - template_dir: () -> - @body.template_dir() - - template_file_name: () -> - "file_header" - - template_name: () -> - @template_dir() + @template_file_name() - class Locmare.FilerModule.BodyModule.FileHeaderModule diff --git a/app/assets/javascripts/locmare/filer/body/file_header/base.js.coffee b/app/assets/javascripts/locmare/filer/body/file_header/base.js.coffee index d8cd7bc6..9badf3d4 100644 --- a/app/assets/javascripts/locmare/filer/body/file_header/base.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_header/base.js.coffee @@ -7,32 +7,9 @@ class Locmare.FilerModule.BodyModule.FileHeaderModule.Base extends Backbone.View @el.className = 'filer-head-' + @column_name render: () -> - args = {'header_column': this} - template = _.template($("#" + @template_name()).html()) - this.$el.html(template(args)) + this.$el.html(@text()) this - filer: () -> - @file_header.filer() - - manifest: () -> - @filer().manifest - - item_name: () -> - @filer().item_name - - model: () -> - @filer().model() - - items: () -> - @filer().items - - template_dir: () -> - @filer().template_dir + 'header_column-' - - template_file_name: () -> - "show" - - template_name: () -> - @template_dir() + @template_file_name() + text: () -> + I18n.t('filer.header.' + @column_name) diff --git a/app/assets/javascripts/locmare/filer/body/file_header/none.js.coffee b/app/assets/javascripts/locmare/filer/body/file_header/none.js.coffee index ce1c9435..6c114ef9 100644 --- a/app/assets/javascripts/locmare/filer/body/file_header/none.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_header/none.js.coffee @@ -2,7 +2,4 @@ class Locmare.FilerModule.BodyModule.FileHeaderModule.None extends Locmare.Filer render: () -> this - - template_file_name: () -> - "none" - + diff --git a/app/assets/javascripts/locmare/filer/body/file_header/show.js.coffee b/app/assets/javascripts/locmare/filer/body/file_header/show.js.coffee index bf1fd639..e4737461 100644 --- a/app/assets/javascripts/locmare/filer/body/file_header/show.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_header/show.js.coffee @@ -1,5 +1,3 @@ class Locmare.FilerModule.BodyModule.FileHeaderModule.Show extends Locmare.FilerModule.BodyModule.FileHeaderModule.Base - template_file_name: () -> - "show" diff --git a/app/assets/javascripts/locmare/profiler.js.coffee b/app/assets/javascripts/locmare/profiler.js.coffee index e638ede3..e356c74a 100644 --- a/app/assets/javascripts/locmare/profiler.js.coffee +++ b/app/assets/javascripts/locmare/profiler.js.coffee @@ -1,5 +1,7 @@ class Locmare.Profiler extends Backbone.View tagName: 'div' + className: 'profiler' + initialize: (options) -> @item_name = options.item_name @item = options.item @@ -7,14 +9,9 @@ class Locmare.Profiler extends Backbone.View @operators = options.operators @profiler_manifest = LocalManifest.manifest().profilers[@item_name] - @template_dir = 'templates-profiler-' - _this = this - @item.fetch().done -> - _this.item.boosts 'post' - _this.header = new Locmare.ProfilerModule.Header({profiler: _this}) - _this.columns = new Locmare.ProfilerModule.Column({profiler: _this}) - _this.associations = new Locmare.ProfilerModule.Association({'profiler': _this, association_manifest: _this.profiler_manifest.associations}) - _this.render() + @header = new Locmare.ProfilerModule.Header({profiler: this}) + @columns = new Locmare.ProfilerModule.Column({profiler: this}) + @associations = new Locmare.ProfilerModule.Association({'profiler': this, association_manifest: @profiler_manifest.associations}) render: () -> this.$el.html('') diff --git a/app/assets/javascripts/locmare/profiler/column/base.js.coffee b/app/assets/javascripts/locmare/profiler/column/base.js.coffee index dc6f5503..f4083ce1 100644 --- a/app/assets/javascripts/locmare/profiler/column/base.js.coffee +++ b/app/assets/javascripts/locmare/profiler/column/base.js.coffee @@ -69,7 +69,8 @@ class Locmare.ProfilerModule.ColumnModule.DateValue extends Backbone.View this value: () -> - l(@column.item().get(@column.column_name)) + @column.item().get(@column.column_name) + #Pettanr.format_date(@column.item().get(@column.column_name)) class Locmare.ProfilerModule.ColumnModule.JsonValue extends Backbone.View tagName: 'pre' diff --git a/app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee b/app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee index 664db597..4746873a 100644 --- a/app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee +++ b/app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee @@ -1,4 +1,7 @@ class Locmare.ProfilerModule.ColumnModule.ExtendModule.ExtendColumn extends Backbone.View + tagName: 'div' + className: 'extend_column' + initialize: (options) -> @column = options.column # extend_column @extend_column_name = options.extend_column_name diff --git a/app/assets/javascripts/locmare/profiler/header.js.coffee b/app/assets/javascripts/locmare/profiler/header.js.coffee index 5e7bacd3..2c3097ff 100644 --- a/app/assets/javascripts/locmare/profiler/header.js.coffee +++ b/app/assets/javascripts/locmare/profiler/header.js.coffee @@ -1,5 +1,6 @@ class Locmare.ProfilerModule.Header extends Backbone.View tagName: 'div' + className: 'header' initialize: (options) -> @profiler = options.profiler diff --git a/app/assets/javascripts/models/author.js.coffee b/app/assets/javascripts/models/author.js.coffee index 7c3e37fb..500080c8 100644 --- a/app/assets/javascripts/models/author.js.coffee +++ b/app/assets/javascripts/models/author.js.coffee @@ -12,6 +12,9 @@ class Pettanr.Author extends Peta.Owner name: 'no name' } + name_view: (length = null) -> + new Pettanr.Views.Author.Name({item: this, length: length}) + initialize: () -> if @id @url = @url + @id diff --git a/app/assets/javascripts/models/comic.js.coffee b/app/assets/javascripts/models/comic.js.coffee index 469774c2..8cb686aa 100644 --- a/app/assets/javascripts/models/comic.js.coffee +++ b/app/assets/javascripts/models/comic.js.coffee @@ -13,6 +13,9 @@ class Pettanr.Comic extends Peta.Binder author_id: null } + author: () -> + new Pettanr.Author({id: @get('author_id')}) + is_visible: (operators) -> switch super(operators) when null diff --git a/app/assets/javascripts/models/ground_color.js.coffee b/app/assets/javascripts/models/ground_color.js.coffee index 3f6ed038..7839866f 100644 --- a/app/assets/javascripts/models/ground_color.js.coffee +++ b/app/assets/javascripts/models/ground_color.js.coffee @@ -15,6 +15,9 @@ class Pettanr.GroundColor extends Peta.Element @has_picture: () -> false + panel: () -> + new Pettanr.Panel({id: @get('panel_id')}) + initialize: () -> if @id @url = @url + @id diff --git a/app/assets/javascripts/models/ground_picture.js.coffee b/app/assets/javascripts/models/ground_picture.js.coffee index 3b0d89f9..a49d9f8d 100644 --- a/app/assets/javascripts/models/ground_picture.js.coffee +++ b/app/assets/javascripts/models/ground_picture.js.coffee @@ -17,6 +17,9 @@ class Pettanr.GroundPicture extends Peta.Element @repeat_texts: () -> ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'] + panel: () -> + new Pettanr.Panel({id: @get('panel_id')}) + picture: () -> new Pettanr.Picture({id: @get('picture_id')}) diff --git a/app/assets/javascripts/models/panel.js.coffee b/app/assets/javascripts/models/panel.js.coffee index 30a380ce..e751f11f 100644 --- a/app/assets/javascripts/models/panel.js.coffee +++ b/app/assets/javascripts/models/panel.js.coffee @@ -13,6 +13,9 @@ class Pettanr.Panel extends Peta.Root publish: 0 } + author: () -> + new Pettanr.Author({id: @get('author_id')}) + pp: () -> new Pettanr.PanelPicture({id: @get('pp_id')}) diff --git a/app/assets/javascripts/models/panel_picture.js.coffee b/app/assets/javascripts/models/panel_picture.js.coffee index 84aa33b5..1a86e4a0 100644 --- a/app/assets/javascripts/models/panel_picture.js.coffee +++ b/app/assets/javascripts/models/panel_picture.js.coffee @@ -14,6 +14,9 @@ class Pettanr.PanelPicture extends Peta.Element picture: () -> new Pettanr.Picture({id: @get('picture_id')}) + panel: () -> + new Pettanr.Panel({id: @get('panel_id')}) + @has_picture: () -> true diff --git a/app/assets/javascripts/models/scroll.js.coffee b/app/assets/javascripts/models/scroll.js.coffee index 5070dadf..a40b2baf 100644 --- a/app/assets/javascripts/models/scroll.js.coffee +++ b/app/assets/javascripts/models/scroll.js.coffee @@ -12,6 +12,9 @@ class Pettanr.Scroll extends Peta.Binder visible: 0 } + author: () -> + new Pettanr.Author({id: @get('author_id')}) + overwrite: (options) -> operators = options.operators return false if not operators.author diff --git a/app/assets/javascripts/models/scroll_panel.js.coffee b/app/assets/javascripts/models/scroll_panel.js.coffee index 62241263..a4ed1fd0 100644 --- a/app/assets/javascripts/models/scroll_panel.js.coffee +++ b/app/assets/javascripts/models/scroll_panel.js.coffee @@ -14,6 +14,12 @@ class Pettanr.ScrollPanel extends Peta.Leaf t: null } + scroll: () -> + new Pettanr.Scroll({id: @get('scroll_id')}) + + panel: () -> + new Pettanr.Panel({id: @get('panel_id')}) + initialize: () -> if @id @url = @url + @id diff --git a/app/assets/javascripts/models/sheet.js.coffee b/app/assets/javascripts/models/sheet.js.coffee index 58e66d6e..6b1c72bc 100644 --- a/app/assets/javascripts/models/sheet.js.coffee +++ b/app/assets/javascripts/models/sheet.js.coffee @@ -13,6 +13,9 @@ class Pettanr.Sheet extends Peta.Root author_id: null } + author: () -> + new Pettanr.Author({id: @get('author_id')}) + is_visible: (operators) -> switch super(operators) when null diff --git a/app/assets/javascripts/models/speech_balloon.js.coffee b/app/assets/javascripts/models/speech_balloon.js.coffee index a934e9c8..565f695b 100644 --- a/app/assets/javascripts/models/speech_balloon.js.coffee +++ b/app/assets/javascripts/models/speech_balloon.js.coffee @@ -13,6 +13,9 @@ class Pettanr.SpeechBalloon extends Peta.Element t: null } + panel: () -> + new Pettanr.Panel({id: @get('panel_id')}) + speech_balloon_template: () -> new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')}) diff --git a/app/assets/javascripts/models/story.js.coffee b/app/assets/javascripts/models/story.js.coffee index 4d171704..625cec7b 100644 --- a/app/assets/javascripts/models/story.js.coffee +++ b/app/assets/javascripts/models/story.js.coffee @@ -13,6 +13,9 @@ class Pettanr.Story extends Peta.Binder author_id: null } + author: () -> + new Pettanr.Author({id: @get('author_id')}) + is_visible: (operators) -> switch super(operators) when null diff --git a/app/assets/javascripts/peta/item.js.coffee b/app/assets/javascripts/peta/item.js.coffee index ef0922de..f6fcde4b 100644 --- a/app/assets/javascripts/peta/item.js.coffee +++ b/app/assets/javascripts/peta/item.js.coffee @@ -139,6 +139,9 @@ class Peta.Item extends Backbone.Model return false if not operators.is_resource_reader() true + icon_view: (half) -> + new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half}) + is_editize: () -> @editor diff --git a/app/assets/javascripts/pettanr.js.coffee b/app/assets/javascripts/pettanr.js.coffee index 3aeeaa5c..0dc52b3c 100644 --- a/app/assets/javascripts/pettanr.js.coffee +++ b/app/assets/javascripts/pettanr.js.coffee @@ -38,6 +38,24 @@ class Pettanr else '' + @truncate: (str, length = null) -> + s = Pettanr.to_s(str) + if length and s.length > 3 # 3 = '...' + r = s.substr(0, length - 4) + r = r.concat( '...') if s.length > length - 3 + r + else + Pettanr.to_s(str) + + @format_date: (date) -> + y = ('000' + (date.getFullYear())).slice(-4) + m = ('0' + (date.getMonth() + 1)).slice(-2) + d = ('0' + date.getDate()).slice(-2) + h = ('0' + date.getHours()).slice(-2) + n = ('0' + date.getMinutes()).slice(-2) + s = ('0' + date.getSeconds()).slice(-2) + y + '/' + m + '/' + d + ' ' + h + ':' + n + ':' + s + @to_style: (hash) -> a = _.map hash, (n, k) -> Pettanr.to_s(k) + ': ' + Pettanr.to_s(n) @@ -63,7 +81,7 @@ class Pettanr if l.length == 1 I18n.t('activerecord.models.' + Pettanr[label].item_name()) else - Pettanr.AppHelper.t_a(Pettanr[l.first].item_name(), l.last) + Pettanr.AppHelper.t_a(Pettanr[l[0]].item_name(), l[1]) @t_a: (item_name, attr_name) -> I18n.t('activerecord.attributes.' + item_name + '.' + attr_name) @@ -124,12 +142,15 @@ class Pettanr false show_prof: () -> - profiler = new Locmare.Profiler({ - el: "#pettanr", - item_name: @item.item_name(), - item: @item, - operators: @operators - }) + _this = this + @item.fetch().done -> + _this.item.boosts 'post' + profiler = new Locmare.Profiler({ + item_name: _this.item.item_name(), + item: _this.item, + operators: _this.operators + }) + $("#pettanr").html(profiler.render().el) set_new: () -> @set_model() diff --git a/app/assets/javascripts/tags.js.coffee b/app/assets/javascripts/tags.js.coffee index c796895f..c95a2916 100644 --- a/app/assets/javascripts/tags.js.coffee +++ b/app/assets/javascripts/tags.js.coffee @@ -56,4 +56,18 @@ class Tag.RowBreak extends Tag.Div @content = null @class_name = 'row_break' +class Tag.H3 extends Backbone.View + tagName: 'h3' + + initialize: (options) -> + @attr = options.attr || {} + @content = options.content + @class_name = options.class_name + + render: () -> + this.$el.attr(@attr) + @el.className = @class_name if @class_name + this.$el.html(@content) + this + @Tag = Tag diff --git a/app/assets/javascripts/views/authors/icon.js.coffee b/app/assets/javascripts/views/authors/icon.js.coffee new file mode 100644 index 00000000..ff07fcc6 --- /dev/null +++ b/app/assets/javascripts/views/authors/icon.js.coffee @@ -0,0 +1,5 @@ +class Pettanr.Views.Author.Icon extends Pettanr.Views.Common.Icon + + initialize: (options) -> + super(options) + diff --git a/app/assets/javascripts/views/authors/name.js.coffee b/app/assets/javascripts/views/authors/name.js.coffee new file mode 100644 index 00000000..e461e680 --- /dev/null +++ b/app/assets/javascripts/views/authors/name.js.coffee @@ -0,0 +1,18 @@ +class Pettanr.Views.Author.Name extends Backbone.View + tagName: 'span' + + initialize: (options) -> + @item = options.item + @length = options.length + @name = Pettanr.truncate(@item.get('name'), 12) + @url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) + @linked_name = new Tag.A({ + attr: {href: '/' + @url}, + handler_name: @url, + content: @name + }) + + render: () -> + this.$el.html(@linked_name.render().el) + this + diff --git a/app/assets/javascripts/views/balloons/show.js.coffee b/app/assets/javascripts/views/balloons/show.js.coffee new file mode 100644 index 00000000..d68d10f6 --- /dev/null +++ b/app/assets/javascripts/views/balloons/show.js.coffee @@ -0,0 +1,30 @@ +class Pettanr.Views.Balloon.ShowModule +class Pettanr.Views.Balloon.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + +class Pettanr.Views.Balloon.Show extends Backbone.View + tagName: 'div' + className: 'show' + + initialize: (options) -> + @item = options.item + @operators = options.operators + 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, + operators: @operators, + caption: '', + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + + render: () -> + this.$el.html('') + this.$el.append(@header.render().el) + this + diff --git a/app/assets/javascripts/views/comics/show.js.coffee b/app/assets/javascripts/views/comics/show.js.coffee index 3aa617ab..e983de60 100644 --- a/app/assets/javascripts/views/comics/show.js.coffee +++ b/app/assets/javascripts/views/comics/show.js.coffee @@ -1,10 +1,39 @@ +class Pettanr.Views.Comic.ShowModule +class Pettanr.Views.Comic.ShowModule.Header extends Pettanr.Views.Show.Header + + 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 Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) + caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')}) + prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) + @header = new Pettanr.Views.Scroll.ShowModule.Header({ + item: @item, + operators: @operators, + caption: @item.get('title'), + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) + @owner = new Pettanr.Views.Comic.ShowModule.Owner({item: @item, operators: @operators}) render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) + this.$el.append(@owner.render().el) if @item.is_own(@operators) this diff --git a/app/assets/javascripts/views/common.js.coffee b/app/assets/javascripts/views/common.js.coffee new file mode 100644 index 00000000..b2e384ce --- /dev/null +++ b/app/assets/javascripts/views/common.js.coffee @@ -0,0 +1,20 @@ +class Pettanr.Views.Common +class Pettanr.Views.Common.Icon extends Backbone.View + tagName: 'span' + + initialize: (options) -> + @item = options.item + @half = options.half + @icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) + @icon = new Pettanr.Image.Icon({item: @item, half: @half}) + @icon_button = new Tag.A({ + attr: {href: '/' + @icon_url}, + handler_name: @icon_url, + class_name: 'icon', + content: @icon.render().el + }) + + render: () -> + this.$el.html(@icon_button.render().el) + this + diff --git a/app/assets/javascripts/views/ground_colors/show.js.coffee b/app/assets/javascripts/views/ground_colors/show.js.coffee index 3bebcfd8..568717b7 100644 --- a/app/assets/javascripts/views/ground_colors/show.js.coffee +++ b/app/assets/javascripts/views/ground_colors/show.js.coffee @@ -1,10 +1,36 @@ +class Pettanr.Views.GroundColor.ShowModule +class Pettanr.Views.GroundColor.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + class Pettanr.Views.GroundColor.Show extends Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + 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, + operators: @operators, + caption: @item.get('caption'), + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + _this = this + @panel = @item.panel() + @panel.fetch().done -> + _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel}) + _this.render() render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) this diff --git a/app/assets/javascripts/views/ground_pictures/show.js.coffee b/app/assets/javascripts/views/ground_pictures/show.js.coffee index 3fd94350..e043dc11 100644 --- a/app/assets/javascripts/views/ground_pictures/show.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/show.js.coffee @@ -1,10 +1,36 @@ +class Pettanr.Views.GroundPicture.ShowModule +class Pettanr.Views.GroundPicture.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + class Pettanr.Views.GroundPicture.Show extends Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + 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, + operators: @operators, + caption: @item.get('caption'), + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + _this = this + @panel = @item.panel() + @panel.fetch().done -> + _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel}) + _this.render() render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) this diff --git a/app/assets/javascripts/views/panel_pictures/show.js.coffee b/app/assets/javascripts/views/panel_pictures/show.js.coffee index 89ca570e..b9bafd22 100644 --- a/app/assets/javascripts/views/panel_pictures/show.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/show.js.coffee @@ -1,10 +1,36 @@ +class Pettanr.Views.PanelPicture.ShowModule +class Pettanr.Views.PanelPicture.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + class Pettanr.Views.PanelPicture.Show extends Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + 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, + operators: @operators, + caption: @item.get('caption'), + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + _this = this + @panel = @item.panel() + @panel.fetch().done -> + _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel}) + _this.render() render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) this diff --git a/app/assets/javascripts/views/panels/icon.js.coffee b/app/assets/javascripts/views/panels/icon.js.coffee new file mode 100644 index 00000000..121b7521 --- /dev/null +++ b/app/assets/javascripts/views/panels/icon.js.coffee @@ -0,0 +1,5 @@ +class Pettanr.Views.Panel.Icon extends Pettanr.Views.Common.Icon + + initialize: (options) -> + super(options) + diff --git a/app/assets/javascripts/views/scroll_panels/icon.js.coffee b/app/assets/javascripts/views/scroll_panels/icon.js.coffee new file mode 100644 index 00000000..977407e5 --- /dev/null +++ b/app/assets/javascripts/views/scroll_panels/icon.js.coffee @@ -0,0 +1,5 @@ +class Pettanr.Views.ScrollPanel.Icon extends Pettanr.Views.Common.Icon + + initialize: (options) -> + super(options) + diff --git a/app/assets/javascripts/views/scroll_panels/summary.js.coffee b/app/assets/javascripts/views/scroll_panels/summary.js.coffee index 30d5a6d0..aefd1e41 100644 --- a/app/assets/javascripts/views/scroll_panels/summary.js.coffee +++ b/app/assets/javascripts/views/scroll_panels/summary.js.coffee @@ -1,10 +1,24 @@ class Pettanr.Views.ScrollPanel.Summary extends Backbone.View initialize: (options) -> - super(options) + @item = options.item + _this = this + @scroll = @item.scroll() + @scroll.fetch().done -> + _this.scroll_icon = _this.scroll.icon_view(true) + _this.panel = _this.item.panel() + _this.panel.fetch().done -> + _this.panel_icon = _this.panel.icon_view(true) + _this.author = _this.scroll.author() + _this.author.fetch().done -> + _this.author_name = _this.author.name_view(12) + _this.render() render: () -> this.$el.html('') - this.$el.append('-') + if @author_name + this.$el.append(@scroll_icon.render().el) + this.$el.append(@panel_icon.render().el) + this.$el.append(@author_name.render().el) this diff --git a/app/assets/javascripts/views/scrolls/icon.js.coffee b/app/assets/javascripts/views/scrolls/icon.js.coffee new file mode 100644 index 00000000..c899532c --- /dev/null +++ b/app/assets/javascripts/views/scrolls/icon.js.coffee @@ -0,0 +1,5 @@ +class Pettanr.Views.Scroll.Icon extends Pettanr.Views.Common.Icon + + initialize: (options) -> + super(options) + diff --git a/app/assets/javascripts/views/scrolls/show.js.coffee b/app/assets/javascripts/views/scrolls/show.js.coffee index 7649606f..baa530fb 100644 --- a/app/assets/javascripts/views/scrolls/show.js.coffee +++ b/app/assets/javascripts/views/scrolls/show.js.coffee @@ -1,10 +1,39 @@ +class Pettanr.Views.Scroll.ShowModule +class Pettanr.Views.Scroll.ShowModule.Header extends Pettanr.Views.Show.Header + + 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 Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) + caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')}) + prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) + @header = new Pettanr.Views.Scroll.ShowModule.Header({ + item: @item, + operators: @operators, + caption: @item.get('title'), + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) + @owner = new Pettanr.Views.Scroll.ShowModule.Owner({item: @item, operators: @operators}) render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) + this.$el.append(@owner.render().el) if @item.is_own(@operators) this diff --git a/app/assets/javascripts/views/scrolls/summary.js.coffee b/app/assets/javascripts/views/scrolls/summary.js.coffee index 01843f44..3f531c0b 100644 --- a/app/assets/javascripts/views/scrolls/summary.js.coffee +++ b/app/assets/javascripts/views/scrolls/summary.js.coffee @@ -1,10 +1,22 @@ class Pettanr.Views.Scroll.Summary extends Backbone.View initialize: (options) -> - super(options) + @item = options.item + @visible = new Tag.Div({ + content: Pettanr.AppHelper.t_selected_item('scroll_visible_items', @item.get('visible')) + }) + _this = this + @author = @item.author() + @author.fetch().done -> + _this.author_icon = _this.author.icon_view(true) + _this.author_name = _this.author.name_view(12) + _this.render() render: () -> this.$el.html('') - this.$el.append('-') + this.$el.append(@visible.render().el) + if @author_icon + this.$el.append(@author_icon.render().el) + this.$el.append(@author_name.render().el) this diff --git a/app/assets/javascripts/views/sheets/show.js.coffee b/app/assets/javascripts/views/sheets/show.js.coffee index a2c8ddc3..358e81c3 100644 --- a/app/assets/javascripts/views/sheets/show.js.coffee +++ b/app/assets/javascripts/views/sheets/show.js.coffee @@ -1,10 +1,39 @@ +class Pettanr.Views.Sheet.ShowModule +class Pettanr.Views.Sheet.ShowModule.Header extends Pettanr.Views.Show.Header + + 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 Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) + caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')}) + prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) + @header = new Pettanr.Views.Sheet.ShowModule.Header({ + item: @item, + caption: @item.get('caption'), + operators: @operators, + 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, operators: @operators}) render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) + this.$el.append(@owner.render().el) if @item.is_own(@operators) this diff --git a/app/assets/javascripts/views/show.js.coffee b/app/assets/javascripts/views/show.js.coffee new file mode 100644 index 00000000..55914088 --- /dev/null +++ b/app/assets/javascripts/views/show.js.coffee @@ -0,0 +1,110 @@ +class Pettanr.Views.Show +class Pettanr.Views.Show.Header extends Backbone.View + tagName: 'h1' + className: 'show-header' + + initialize: (options) -> + @item = options.item + @operators = options.operators + @title = options.caption + @icon_url = options.icon_url + @caption_url = options.caption_url + @prof_url = options.prof_url + + @icon = new Pettanr.Image.Icon({item: @item, half: true}) + @icon_button = new Tag.A({ + attr: {href: '/' + @icon_url}, + handler_name: @icon_url, + class_name: 'icon', + content: @icon.render().el + }) + @caption = new Tag.A({ + attr: {href: '/' + @caption_url}, + handler_name: @caption_url, + class_name: 'caption', + content: @title + }) + @prof = new Pettanr.Image.SymbolImg({attr: {src: '/images/prof.gif'}, half: true}) + @prof_button = new Tag.A({ + attr: {href: '/' + @prof_url}, + handler_name: @prof_url, + class_name: 'prof', + content: @prof.render().el + }) + + render: () -> + this.$el.html('') + this.$el.append(@icon_button.render().el) + this.$el.append(@caption.render().el) + this.$el.append(@prof_button.render().el) + this + +class Pettanr.Views.Show.HeaderAuthor extends Backbone.View + tagName: 'div' + + initialize: (options) -> + @item = options.item + _this = this + @author = @item.author() + @author.fetch().done -> + name = _this.author.get('name') + author_url = Pettanr.url(_this.author.table_name(), 'show', {id: _this.author.get('id')}) + _this.linked_author = new Tag.A({ + attr: {href: '/' + author_url}, + handler_name: author_url, + content: name + }) + _this.render() + + render: () -> + this.$el.html('') + this.$el.append(Pettanr.AppHelper.t_a(@item.item_name(), 'author_id')) + this.$el.append(@linked_author.render().el) if @linked_author + this + +class Pettanr.Views.Show.OwnerFooter extends Backbone.View + tagName: 'div' + className: 'show-owner-footer' + + initialize: (options) -> + super(options) + @item = options.item + @operators = options.operators + @edit_url = Pettanr.url(@item.table_name(), 'edit', {id: @item.get('id')}) + @edit = new Tag.A({ + attr: {href: '/' + @edit_url}, + handler_name: @edit_url, + content: I18n.t('link.edit') + }) + @destroy_url = Pettanr.url(@item.table_name(), 'destroy', {id: @item.get('id')}) + @destroy = new Tag.A({ + attr: {href: '/' + @destroy_url}, + handler_name: @destroy_url, + content: I18n.t('link.destroy') + }) + + render: () -> + this.$el.html('') + this.$el.append(@edit.render().el) + this.$el.append(@destroy.render().el) + this + +class Pettanr.Views.Show.Owner extends Backbone.View + tagName: 'div' + + initialize: (options) -> + super(options) + @item = options.item + @operators = options.operators + @header = new Tag.H3({ + class_name: 'owner-header', + content: I18n.t('editor') + }) + @footer = new Pettanr.Views.Show.OwnerFooter({item: @item, operators: @operators}) + + render: () -> + this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@footer.render().el) + this + diff --git a/app/assets/javascripts/views/speech_balloons/show.js.coffee b/app/assets/javascripts/views/speech_balloons/show.js.coffee index e07b89f7..ee2ebb4a 100644 --- a/app/assets/javascripts/views/speech_balloons/show.js.coffee +++ b/app/assets/javascripts/views/speech_balloons/show.js.coffee @@ -1,10 +1,36 @@ +class Pettanr.Views.SpeechBalloon.ShowModule +class Pettanr.Views.SpeechBalloon.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + class Pettanr.Views.SpeechBalloon.Show extends Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + 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, + operators: @operators, + caption: @item.get('caption'), + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + _this = this + @panel = @item.panel() + @panel.fetch().done -> + _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel}) + _this.render() render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) this diff --git a/app/assets/javascripts/views/speeches/show.js.coffee b/app/assets/javascripts/views/speeches/show.js.coffee new file mode 100644 index 00000000..87848159 --- /dev/null +++ b/app/assets/javascripts/views/speeches/show.js.coffee @@ -0,0 +1,30 @@ +class Pettanr.Views.Speech.ShowModule +class Pettanr.Views.Speech.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + +class Pettanr.Views.Speech.Show extends Backbone.View + tagName: 'div' + className: 'show' + + initialize: (options) -> + @item = options.item + @operators = options.operators + 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, + operators: @operators, + caption: '', + icon_url: icon_url, + caption_url: caption_url, + prof_url: prof_url + }) + + render: () -> + this.$el.html('') + this.$el.append(@header.render().el) + this + diff --git a/app/assets/javascripts/views/stories/show.js.coffee b/app/assets/javascripts/views/stories/show.js.coffee index 8d6940ed..55bd0c5f 100644 --- a/app/assets/javascripts/views/stories/show.js.coffee +++ b/app/assets/javascripts/views/stories/show.js.coffee @@ -1,10 +1,39 @@ +class Pettanr.Views.Story.ShowModule +class Pettanr.Views.Story.ShowModule.Header extends Pettanr.Views.Show.Header + + 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 Backbone.View tagName: 'div' + className: 'show' initialize: (options) -> + @item = options.item @operators = options.operators + icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) + caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')}) + prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) + @header = new Pettanr.Views.Story.ShowModule.Header({ + item: @item, + caption: @item.get('title'), + operators: @operators, + 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, operators: @operators}) render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@author.render().el) + this.$el.append(@owner.render().el) if @item.is_own(@operators) this diff --git a/app/views/authors/_summary.html.erb b/app/views/authors/_summary.html.erb index d58db9e7..ac709660 100644 --- a/app/views/authors/_summary.html.erb +++ b/app/views/authors/_summary.html.erb @@ -1,2 +1,2 @@ -
+
-
diff --git a/app/views/scroll_panels/_footer.html.erb b/app/views/scroll_panels/_footer.html.erb index 69c54384..02b3cf7f 100644 --- a/app/views/scroll_panels/_footer.html.erb +++ b/app/views/scroll_panels/_footer.html.erb @@ -9,7 +9,7 @@ <%= link_to scroll_panel_icon(:object => scroll_panel, :size => 25), scroll_panel_path(scroll_panel) %> - <%= link_to author_icon(:object => scroll_panel.author, :size => 17), author_path(scroll_panel.author) %> + <%= link_to author_icon(:object => scroll_panel.scroll.author, :size => 17), author_path(scroll_panel.scroll.author) %> <%= l scroll_panel.updated_at %> diff --git a/app/views/story_sheets/_summary.html.erb b/app/views/story_sheets/_summary.html.erb index c3c9cd7c..368e2cb5 100644 --- a/app/views/story_sheets/_summary.html.erb +++ b/app/views/story_sheets/_summary.html.erb @@ -5,5 +5,5 @@ <% end %>
- <%= link_to h(truncate(item.author.name, :length => 12)), author_path(item.author) %> + <%= link_to h(truncate(item.story.author.name, :length => 12)), author_path(item.story.author) %>
diff --git a/app/views/top/index.html.erb b/app/views/top/index.html.erb index c910ab47..bcc7e230 100644 --- a/app/views/top/index.html.erb +++ b/app/views/top/index.html.erb @@ -8,94 +8,3 @@ artist_id = <%= @operators.artist.id -%>; <% end -%>; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/locmare/bucket.rb b/lib/locmare/bucket.rb index e26058cf..211755f0 100644 --- a/lib/locmare/bucket.rb +++ b/lib/locmare/bucket.rb @@ -1,9 +1,6 @@ -require_dependency "locmare/bucket/member" -require_dependency "locmare/bucket/form_field_name" module Locmare class Bucket - include BucketModule attr :manifest, :bucket_name, :item, :mounted, :submit, :operators, :template_dir, :fields diff --git a/lib/locmare/bucket/form_field_name.rb b/lib/locmare/bucket/form_field_name.rb deleted file mode 100644 index fbc2c593..00000000 --- a/lib/locmare/bucket/form_field_name.rb +++ /dev/null @@ -1,65 +0,0 @@ -module Locmare - module BucketModule - class FieldName - attr :bucket, :field_name, :field_manifest, - :label, :tag, :helpers, :options - def initialize bucket, field_name, field_manifest - @bucket = bucket - @field_name = field_name - @field_manifest = field_manifest - @label = LabelFactory.factory self, @field_manifest.label - @tag = TagFactory.factory self, @field_manifest.tag - @helpers = {} - @field_manifest.helpers.each {|helper_name, helper_manifest| - @helpers[helper_name] = HelperFactory.factory self, helper_manifest - } - @options = {'data-model' => @field_manifest.form_name} - end - - def item - @form.item - end - - def form_field_name - self.form_name + '[' + @field_name + ']' - end - - def form_name - @form.form_name - end - - def template_dir - @form.template_dir + 'field/' - end - - def template_file_name - 'default' - end - - def template_name - self.template_dir + self.template_file_name - end - - def template_option - {:field => self} - end - - def row_break_template_dir - @form.template_dir + 'row_break/' - end - - def row_break_template_file_name - if @field_manifest.row_break - 'br' - else - 'no_break' - end - end - - def row_break_template_name - self.row_break_template_dir + self.row_break_template_file_name - end - - end - end -end diff --git a/lib/locmare/bucket/member.rb b/lib/locmare/bucket/member.rb deleted file mode 100644 index ea7dab3b..00000000 --- a/lib/locmare/bucket/member.rb +++ /dev/null @@ -1,81 +0,0 @@ -module Locmare - module BucketModule - class Member - attr :form, :field_name, :field_manifest, - :label, :tag, :helpers, :options - def initialize form, field_name, field_manifest - @form = form - @field_name = field_name - @field_manifest = field_manifest - @label = LabelFactory.factory self, @field_manifest.label - @tag = TagFactory.factory self, @field_manifest.tag - @helpers = {} - @field_manifest.helpers.each {|helper_name, helper_manifest| - @helpers[helper_name] = HelperFactory.factory self, helper_manifest - } - @options = {'data-model' => @field_manifest.form_name} - end - - def mounted - @form.mounted ? 0 : 1 - end - - def mount_option - {'mount' => self.mounted} - end - - def item - @form.item - end - - def value - self.item.attributes[@field_manifest.column_name] - end - - def options tag_options = {} - self.item.field_tag_attributes(@field_manifest.column_name, tag_options).merge(self.mount_option) - end - - def form_field_name - self.form_name + '[' + @field_name + ']' - end - - def form_name - @form.form_name - end - - def template_dir - @form.template_dir + 'field/' - end - - def template_file_name - 'default' - end - - def template_name - self.template_dir + self.template_file_name - end - - def template_option - {:field => self} - end - - def row_break_template_dir - @form.template_dir + 'row_break/' - end - - def row_break_template_file_name - if @field_manifest.row_break - 'br' - else - 'no_break' - end - end - - def row_break_template_name - self.row_break_template_dir + self.row_break_template_file_name - end - - end - end -end -- 2.11.0