From 810b67011df66ced6300f0891d38c8db0ed12803 Mon Sep 17 00:00:00 2001 From: yasushiito Date: Sun, 29 Mar 2015 09:16:33 +0900 Subject: [PATCH] fix: --- .../addons/circle_speech_balloons/init.js.coffee | 33 ++++++++-- .../addons/plain_speech_balloons/init.js.coffee | 22 ++++++- .../addons/square_speech_balloons/init.js.coffee | 19 +++++- app/assets/javascripts/controllers.js.coffee | 1 - .../filer/body/file_body/file_item.js.coffee | 75 ++-------------------- .../locmare/form/field/helper/tail_angle.js.coffee | 70 ++++---------------- .../javascripts/models/ground_color.js.coffee | 9 --- .../javascripts/models/ground_picture.js.coffee | 6 -- .../javascripts/models/panel_picture.js.coffee | 6 -- .../javascripts/models/speech_balloon.js.coffee | 6 -- app/assets/javascripts/peta/item.js.coffee | 47 +++++++++----- .../javascripts/views/balloons/element.js.coffee | 2 +- .../javascripts/views/balloons/form.js.coffee | 11 ++++ .../javascripts/views/balloons/show.js.coffee | 10 +++ app/assets/javascripts/views/comics/show.js.coffee | 10 +++ app/assets/javascripts/views/common.js.coffee | 34 ++++++++++ .../javascripts/views/ground_colors/show.js.coffee | 11 ++++ .../views/ground_pictures/show.js.coffee | 11 ++++ .../views/panel_pictures/show.js.coffee | 11 ++++ app/assets/javascripts/views/panels/show.js.coffee | 19 ++++++ .../javascripts/views/scrolls/play.js.coffee | 1 + .../javascripts/views/scrolls/show.js.coffee | 10 +++ app/assets/javascripts/views/sheets/show.js.coffee | 10 +++ app/assets/javascripts/views/show.js.coffee | 12 ++++ .../views/speech_balloons/show.js.coffee | 11 ++++ .../javascripts/views/speeches/show.js.coffee | 10 +++ .../javascripts/views/stories/show.js.coffee | 10 +++ 27 files changed, 297 insertions(+), 180 deletions(-) create mode 100644 app/assets/javascripts/views/balloons/form.js.coffee diff --git a/app/assets/javascripts/addons/circle_speech_balloons/init.js.coffee b/app/assets/javascripts/addons/circle_speech_balloons/init.js.coffee index 51e22d8c..1110032a 100644 --- a/app/assets/javascripts/addons/circle_speech_balloons/init.js.coffee +++ b/app/assets/javascripts/addons/circle_speech_balloons/init.js.coffee @@ -110,6 +110,20 @@ class Pettanr.CircleSpeechBalloon.BalloonModule }) @select_system_picture() + hoge_templates: () -> + if !@templates.speech_balloon_template + empty_item = new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')}) + item = Pettanr.cache.restore(empty_item) + if item + # got cached item + @templates.speech_balloon_template = item + else + # built empty item + item = empty_item + item.fetch().done => + Pettanr.cache.store(item) + @templates.speech_balloon_template = item + balloon_extend: () -> @new_balloon() if not @bex @bex @@ -128,17 +142,26 @@ class Pettanr.CircleSpeechBalloon.BalloonModule @parsed = @templates.speech_balloon_template.parsed_settings() select_system_picture: () -> - tr = @get('r') % 360 - tr = 360 + tr if tr < 0 - offset = @r_step() / 2.0 - idx = Pettanr.to_i(((tr + offset) % 360) / @r_step()) + idx = @r_to_index(@round_r(@get('r'))) sid = @parsed_settings()[Pettanr.to_s(idx)]['balloon']['system_picture_id'] - @set('system_picture_id', sid) + @set({system_picture_id: sid}, {silent: true}) sid r_step: () -> @parsed_settings()['speech_balloon']['r_step'] + # round 0 ~ 359 + round_r: (r) -> + tr = r % 360 + tr = 360 + tr if tr < 0 + tr + + r_to_index: (round_r) -> + # 0 ~ 45 -> 22.5 ~ 66.5 + offset = @r_step() / 2.0 + # rounded index + Math.floor(((round_r + offset) % 360) / @r_step()) + class Pettanr.CircleSpeechBalloon.SpeechModule supply_default: (templates) -> @templates = templates diff --git a/app/assets/javascripts/addons/plain_speech_balloons/init.js.coffee b/app/assets/javascripts/addons/plain_speech_balloons/init.js.coffee index 37a8de01..529a4878 100644 --- a/app/assets/javascripts/addons/plain_speech_balloons/init.js.coffee +++ b/app/assets/javascripts/addons/plain_speech_balloons/init.js.coffee @@ -109,6 +109,20 @@ class Pettanr.PlainSpeechBalloon.BalloonModule }) @select_system_picture() + hoge_templates: () -> + if !@templates.speech_balloon_template + empty_item = new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')}) + item = Pettanr.cache.restore(empty_item) + if item + # got cached item + @templates.speech_balloon_template = item + else + # built empty item + item = empty_item + item.fetch().done => + Pettanr.cache.store(item) + @templates.speech_balloon_template = item + balloon_extend: () -> @new_balloon() if not @bex @bex @@ -129,9 +143,15 @@ class Pettanr.PlainSpeechBalloon.BalloonModule select_system_picture: () -> s = @parsed_settings()['all']['balloon'] sid = s['system_picture_id'] - @set('system_picture_id', sid) + @set({system_picture_id: sid}, {silent: true}) sid + # + # yasapp only methods + # + r_step: () -> + 0 + class Pettanr.PlainSpeechBalloon.SpeechModule supply_default: (templates) -> @templates = templates diff --git a/app/assets/javascripts/addons/square_speech_balloons/init.js.coffee b/app/assets/javascripts/addons/square_speech_balloons/init.js.coffee index 07669f63..a9625a9c 100644 --- a/app/assets/javascripts/addons/square_speech_balloons/init.js.coffee +++ b/app/assets/javascripts/addons/square_speech_balloons/init.js.coffee @@ -110,6 +110,20 @@ class Pettanr.SquareSpeechBalloon.BalloonModule }) @select_system_picture() + hoge_templates: () -> + if !@templates.speech_balloon_template + empty_item = new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')}) + item = Pettanr.cache.restore(empty_item) + if item + # got cached item + @templates.speech_balloon_template = item + else + # built empty item + item = empty_item + item.fetch().done => + Pettanr.cache.store(item) + @templates.speech_balloon_template = item + balloon_extend: () -> @new_balloon() if not @bex @bex @@ -130,9 +144,12 @@ class Pettanr.SquareSpeechBalloon.BalloonModule select_system_picture: () -> s = @parsed_settings()['all']['balloon'] sid = s['system_picture_id'] - @set('system_picture_id', sid) + @set({system_picture_id: sid}, {silent: true}) sid + r_step: () -> + 0 + class Pettanr.SquareSpeechBalloon.SpeechModule supply_default: (templates) -> @templates = templates diff --git a/app/assets/javascripts/controllers.js.coffee b/app/assets/javascripts/controllers.js.coffee index c9723251..28a6879a 100644 --- a/app/assets/javascripts/controllers.js.coffee +++ b/app/assets/javascripts/controllers.js.coffee @@ -88,7 +88,6 @@ class Pettanr.AppController set_new: () -> @set_model() @item = new @my_model_class({id: @params['id']}) - @item.boosts 'post' # Backbone.Model has defaults property #@item.supply_default() diff --git a/app/assets/javascripts/locmare/filer/body/file_body/file_item.js.coffee b/app/assets/javascripts/locmare/filer/body/file_body/file_item.js.coffee index 86884b47..7e8a0343 100644 --- a/app/assets/javascripts/locmare/filer/body/file_body/file_item.js.coffee +++ b/app/assets/javascripts/locmare/filer/body/file_body/file_item.js.coffee @@ -56,9 +56,8 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItem extends Backbone.Vi @filer().items add_pick: (target_model) -> - @pick = new Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.Pick.factory({ - parent: this, - target_model: target_model + @pick = new Pettanr.Views.Common.PickIcon({ + name: target_model.pick_type(@item_name()), class_name: 'filer-item-pick' }) @listenTo(@pick, 'click', @click_pick) @render() @@ -90,34 +89,14 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItem extends Backbone.Vi class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule - -class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.Pick extends Backbone.View - tagName: 'div' - - @factory: (options) -> - @target_model = options.target_model - @parent = options.parent - filer = @parent.filer() - klass = if filer.item_name == @target_model.item_name() - Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Inspire - else if @target_model.is_traceable(filer.item_name) - Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Trace - else if filer.item_name == @target_model.pick_item_name() - Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Pick - else - Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.None - new klass({ - target_model: @target_model - }) - class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule -class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base extends Backbone.View +class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Icon extends Backbone.View tagName: 'div' initialize: (options) -> - @target_model = options.target_model + @name = options.name @el.className = 'filer-item-pick' - @button = @set_button() + @button = new Pettanr.Views.Common.PickIcon({name: @name}) render: () -> this.$el.html('') @@ -125,50 +104,6 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Ba this.$el.append(@button.render().el) this - name: () -> - 'none' - - icon: () -> - new Pettanr.Image.SymbolImg({attr: {src: '/images/' + @name() + '.gif'}}) - - linked_icon: () -> - new Tag.A({ - attr: {href: '#'}, - content: @icon().render().el - }) - click: () -> @trigger('click', this) -class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.None extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base - - set_button: () -> - @button = @icon() - - name: () -> - 'none' - -class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Pick extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base - - set_button: () -> - @button = @linked_icon() - - name: () -> - 'pick' - -class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Inspire extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base - - set_button: () -> - @button = @linked_icon() - - name: () -> - 'inspire' - -class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Trace extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Base - - set_button: () -> - @button = @linked_icon() - - name: () -> - 'trace' - diff --git a/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee b/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee index 47d71767..b06b7983 100644 --- a/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee @@ -10,11 +10,6 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.Form @listenTo(this, 'down', @down_click) @listenTo(this, 'up', @up_click) @listenTo(this, 'reset', @reset_click) - @speech_balloon_template = new Pettanr.SpeechBalloonTemplate({ - id: @field.item().get('speech_balloon_template_id') - }) - @speech_balloon_template.fetch({cache: true}).done => - @r_step = @_r_step() render: () -> @attr = { @@ -28,70 +23,27 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.Form this refresh: () -> - @set_system_picture_id(@balloon_index()) - settings: () -> - @speech_balloon_template.parsed_settings() - - _r_step: () -> - settings = @settings() - settings['speech_balloon']['r_step'] - - system_picture_id: (idx) -> - settings = @settings() - settings[idx]['balloon']['system_picture_id'] + r_step: () -> + @field.item().r_step() # balloon r helper - balloon_next_index: (d) -> - r_val = @field.val() - v = parseInt(r_val) + @r_step * d - tr = v % 360 - tr = 360 + tr if tr < 0 - offset = @r_step / 2.0 - idx = Math.floor(((tr + offset) % 360) / @r_step) - if idx == 0 - ir = 0 - else - if v < 0 - ir = Math.floor(idx * @r_step) - 360 - else - ir = Math.floor(idx * @r_step) - @field.set(ir) - @field.tag.$el.val(ir) - idx - - balloon_index: () -> - v = parseInt(@field.val()) - tr = v % 360 - tr = 360 + tr if tr < 0 - offset = @r_step / 2.0 - idx = Math.floor(((tr + offset) % 360) / @r_step) - idx - - refresh_balloon: (idx) -> - @set_system_picture_id(idx) - - set_system_picture_id: (idx) -> - sp_id = @system_picture_id(idx) - @field.item().set({ - system_picture_id: sp_id - }, {silent: true}) - sp_id + set_r: (r) -> + @field.tag.$el.val(r) + @field.change() + + r: () -> + parseInt(@field.val()) down_click: () -> - idx = @balloon_next_index(-1) - @refresh_balloon(idx) - @field.item().trigger('input:r') + @set_r(Math.floor(@r() - @r_step())) up_click: () -> - idx = @balloon_next_index(1) - @refresh_balloon(idx) - @field.item().trigger('input:r') + @set_r(Math.floor(@r() + @r_step())) reset_click: () -> - @refresh_balloon(0) - @field.item().trigger('input:r') + @set_r(0) class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Down extends Backbone.View diff --git a/app/assets/javascripts/models/ground_color.js.coffee b/app/assets/javascripts/models/ground_color.js.coffee index fc7ba8d4..c4b8cd09 100644 --- a/app/assets/javascripts/models/ground_color.js.coffee +++ b/app/assets/javascripts/models/ground_color.js.coffee @@ -18,15 +18,6 @@ class Pettanr.GroundColor extends Peta.Element @pick_item_name: () -> '' - @pick_model: () -> - Manifest.item_name_to_model(@pick_item_name()) - - @traceable_item_names: () -> - [] - - @is_traceable: (item_name) -> - _.contains(@traceable_item_names(), item_name) - panel: (options = {}) -> new Pettanr.Panel({id: @get('panel_id')}, options) diff --git a/app/assets/javascripts/models/ground_picture.js.coffee b/app/assets/javascripts/models/ground_picture.js.coffee index aba7d5e1..2031d585 100644 --- a/app/assets/javascripts/models/ground_picture.js.coffee +++ b/app/assets/javascripts/models/ground_picture.js.coffee @@ -20,15 +20,9 @@ class Pettanr.GroundPicture extends Peta.Element @pick_item_name: () -> 'resource_picture' - @pick_model: () -> - Manifest.item_name_to_model(@pick_item_name()) - @traceable_item_names: () -> ['panel_picture', 'picture'] - @is_traceable: (item_name) -> - _.contains(@traceable_item_names(), item_name) - trace_from_panel_picture: () -> trace_from_picture: () -> diff --git a/app/assets/javascripts/models/panel_picture.js.coffee b/app/assets/javascripts/models/panel_picture.js.coffee index 52b1fd03..db473bdc 100644 --- a/app/assets/javascripts/models/panel_picture.js.coffee +++ b/app/assets/javascripts/models/panel_picture.js.coffee @@ -14,15 +14,9 @@ class Pettanr.PanelPicture extends Peta.Element @pick_item_name: () -> 'resource_picture' - @pick_model: () -> - Manifest.item_name_to_model(@pick_item_name()) - @traceable_item_names: () -> ['ground_picture', 'picture'] - @is_traceable: (item_name) -> - _.contains(@traceable_item_names(), item_name) - trace_from_ground_picture: () -> trace_from_picture: () -> diff --git a/app/assets/javascripts/models/speech_balloon.js.coffee b/app/assets/javascripts/models/speech_balloon.js.coffee index 4d8e84b3..ff3fc2c8 100644 --- a/app/assets/javascripts/models/speech_balloon.js.coffee +++ b/app/assets/javascripts/models/speech_balloon.js.coffee @@ -16,15 +16,9 @@ class Pettanr.SpeechBalloon extends Peta.Element @pick_item_name: () -> 'speech_balloon_template' - @pick_model: () -> - Manifest.item_name_to_model(@pick_item_name()) - @traceable_item_names: () -> ['speech', 'balloon'] - @is_traceable: (item_name) -> - _.contains(@traceable_item_names(), item_name) - trace_from_speech: () -> trace_from_balloon: () -> diff --git a/app/assets/javascripts/peta/item.js.coffee b/app/assets/javascripts/peta/item.js.coffee index 22fe57af..3737f2e4 100644 --- a/app/assets/javascripts/peta/item.js.coffee +++ b/app/assets/javascripts/peta/item.js.coffee @@ -4,6 +4,7 @@ class Peta.Item extends Backbone.Model super(attr, options) @expire_time = options.expire_time @boosters = {} + @templates = {} @child_models: () -> @my_manifest().child_models() @@ -67,12 +68,6 @@ class Peta.Item extends Backbone.Model @path_name: (with_engine = false) -> @table_name() - @pickup_item_name: () -> - @item_name() - - @pickup_column_name: () -> - 'id' - @find_boost_name: (column_name) -> @my_peta().find_boost_name column_name @@ -105,15 +100,6 @@ class Peta.Item extends Backbone.Model path_name: (with_engine = false) -> @my_class().path_name(with_engine) - pickup_item_name: () -> - @my_class().pickup_item_name() - - pickup_column_name: () -> - @my_class().pickup_column_name() - - pickup_id: () -> - @get(pickup_column_name()) - form_template: (with_engine = false) -> @path_name(with_engine) + '/form' @@ -144,6 +130,37 @@ class Peta.Item extends Backbone.Model return false if not operators.is_resource_reader() true + @pick_item_name: () -> + null + + @pick_model: () -> + Manifest.item_name_to_model(@pick_item_name()) + + @traceable_item_names: () -> + [] + + @is_traceable: (item_name) -> + _.contains(@traceable_item_names(), item_name) + + @is_picker_inspire: (item_name) -> + item_name == @item_name() + + @is_picker_trace: (item_name) -> + @is_traceable(item_name) + + @is_picker_pick: (item_name) -> + item_name == @pick_item_name() + + @pick_type: (item_name) -> + if @is_picker_inspire(item_name) + 'inspire' + else if @is_picker_trace(item_name) + 'trace' + else if @is_picker_pick(item_name) + 'pick' + else + 'none' + icon_view: (half) -> new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half}) diff --git a/app/assets/javascripts/views/balloons/element.js.coffee b/app/assets/javascripts/views/balloons/element.js.coffee index 91202803..e2e77a20 100644 --- a/app/assets/javascripts/views/balloons/element.js.coffee +++ b/app/assets/javascripts/views/balloons/element.js.coffee @@ -43,7 +43,7 @@ class Pettanr.Views.Balloon.Element.Edit extends Pettanr.Views.Balloon.Element initialize: (options) -> super(options) - @listenTo(@element, 'input:r', @input_r) + @listenTo(@element, 'input:system_picture_id', @input_r) @listenTo(@element, 'input:width', @resize) @listenTo(@element, 'input:height', @resize) diff --git a/app/assets/javascripts/views/balloons/form.js.coffee b/app/assets/javascripts/views/balloons/form.js.coffee new file mode 100644 index 00000000..dba310ed --- /dev/null +++ b/app/assets/javascripts/views/balloons/form.js.coffee @@ -0,0 +1,11 @@ +class Pettanr.Views.Balloon.Form extends Locmare.Form + + initialize: (options) -> + super(options) + @listenTo(@item, 'input:r', @input_r) + @item.hoge_templates() + + input_r: () -> + @item.select_system_picture() + @item.trigger('input:system_picture_id') + diff --git a/app/assets/javascripts/views/balloons/show.js.coffee b/app/assets/javascripts/views/balloons/show.js.coffee index 246054c3..10a520c7 100644 --- a/app/assets/javascripts/views/balloons/show.js.coffee +++ b/app/assets/javascripts/views/balloons/show.js.coffee @@ -36,6 +36,7 @@ class Pettanr.Views.Balloon.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -68,3 +69,12 @@ class Pettanr.Views.Balloon.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/comics/show.js.coffee b/app/assets/javascripts/views/comics/show.js.coffee index b7c95136..8b5ad411 100644 --- a/app/assets/javascripts/views/comics/show.js.coffee +++ b/app/assets/javascripts/views/comics/show.js.coffee @@ -29,6 +29,7 @@ class Pettanr.Views.Comic.Show extends Backbone.View }) @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) @owner = new Pettanr.Views.Comic.ShowModule.Owner({item: @item, operators: @operators}) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -58,3 +59,12 @@ class Pettanr.Views.Comic.Show extends Backbone.View click_destroy: () -> @trigger('http_get', @item.destroy_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/common.js.coffee b/app/assets/javascripts/views/common.js.coffee index c34e9082..c5c960b0 100644 --- a/app/assets/javascripts/views/common.js.coffee +++ b/app/assets/javascripts/views/common.js.coffee @@ -57,6 +57,40 @@ class Pettanr.Views.Common.RootIcon extends Pettanr.Views.Common.EmptyIcon file_name: () -> '/images/root.png' +class Pettanr.Views.Common.PickIcon extends Backbone.View + + initialize: (options) -> + @class_name = options.class_name + @name = options.name + @half = options.half + @button = if @is_button() + @linked_icon() + else + @icon() + + render: () -> + this.$el.html('') + @el.className = @class_name if @class_name + if @is_button() + @listenTo(@button, 'click', @click) + this.$el.append(@button.render().el) + this + + is_button: () -> + @name != 'none' + + icon: () -> + new Pettanr.Image.SymbolImg({attr: {src: '/images/' + @name + '.gif'}, half: @half}) + + linked_icon: () -> + new Tag.A({ + attr: {href: '#'}, + content: @icon().render().el + }) + + click: () -> + @trigger('click', this) + class Pettanr.Views.Common.EmptyCaption extends Backbone.View tagName: 'div' className: 'empty' diff --git a/app/assets/javascripts/views/ground_colors/show.js.coffee b/app/assets/javascripts/views/ground_colors/show.js.coffee index 5ff3fbb0..22a8416c 100644 --- a/app/assets/javascripts/views/ground_colors/show.js.coffee +++ b/app/assets/javascripts/views/ground_colors/show.js.coffee @@ -25,6 +25,7 @@ class Pettanr.Views.GroundColor.Show extends Backbone.View @listenTo(this, 'ready', @ready) @panel = @item.panel().with_elements() @panel.fetch({cache: false}).done => # with elements + @panel.attributes = @panel.replaced_attributes() @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) @body = new Pettanr.Views.Panel.Body({ panel: @panel, @@ -34,6 +35,7 @@ class Pettanr.Views.GroundColor.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -66,3 +68,12 @@ class Pettanr.Views.GroundColor.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/ground_pictures/show.js.coffee b/app/assets/javascripts/views/ground_pictures/show.js.coffee index e4b193b5..fd902c1f 100644 --- a/app/assets/javascripts/views/ground_pictures/show.js.coffee +++ b/app/assets/javascripts/views/ground_pictures/show.js.coffee @@ -25,6 +25,7 @@ class Pettanr.Views.GroundPicture.Show extends Backbone.View @listenTo(this, 'ready', @ready) @panel = @item.panel().with_elements() @panel.fetch({cache: false}).done => # with elements + @panel.attributes = @panel.replaced_attributes() @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) @body = new Pettanr.Views.Panel.Body({ panel: @panel, @@ -34,6 +35,7 @@ class Pettanr.Views.GroundPicture.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -66,3 +68,12 @@ class Pettanr.Views.GroundPicture.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/panel_pictures/show.js.coffee b/app/assets/javascripts/views/panel_pictures/show.js.coffee index e4b32b92..5e425e2b 100644 --- a/app/assets/javascripts/views/panel_pictures/show.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/show.js.coffee @@ -25,6 +25,7 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View @listenTo(this, 'ready', @ready) @panel = @item.panel().with_elements() @panel.fetch({cache: false}).done => # with elements + @panel.attributes = @panel.replaced_attributes() @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) @body = new Pettanr.Views.Panel.Body({ panel: @panel, @@ -34,6 +35,7 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -66,3 +68,12 @@ class Pettanr.Views.PanelPicture.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/panels/show.js.coffee b/app/assets/javascripts/views/panels/show.js.coffee index 11bbc537..afe7bd39 100644 --- a/app/assets/javascripts/views/panels/show.js.coffee +++ b/app/assets/javascripts/views/panels/show.js.coffee @@ -29,6 +29,7 @@ class Pettanr.Views.Panel.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -62,6 +63,15 @@ class Pettanr.Views.Panel.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + class Pettanr.Views.Panel.ShowModule class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header @@ -96,3 +106,12 @@ class Pettanr.Views.Panel.ShowModule.Credits extends Backbone.View click_credit_icon: (item) -> @trigger('click:credit:icon', item) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/scrolls/play.js.coffee b/app/assets/javascripts/views/scrolls/play.js.coffee index 43f13a49..03602d37 100644 --- a/app/assets/javascripts/views/scrolls/play.js.coffee +++ b/app/assets/javascripts/views/scrolls/play.js.coffee @@ -75,6 +75,7 @@ class Pettanr.Views.Scroll.PlayModule.Panels extends Backbone.View return if not scroll_panel.has_panel() panel = scroll_panel.panel() panel.fetch({cache: true}).done => + panel.attributes = panel.replaced_attributes() body = new Pettanr.Views.Panel.Body({ panel: panel, operators: @operators, diff --git a/app/assets/javascripts/views/scrolls/show.js.coffee b/app/assets/javascripts/views/scrolls/show.js.coffee index 1507f460..cd25122e 100644 --- a/app/assets/javascripts/views/scrolls/show.js.coffee +++ b/app/assets/javascripts/views/scrolls/show.js.coffee @@ -26,6 +26,7 @@ class Pettanr.Views.Scroll.Show extends Backbone.View }) @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) @owner = new Pettanr.Views.Scroll.ShowModule.Owner({item: @item, operators: @operators}) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_play) @listenTo(@header, 'click:prof', @click_prof) @@ -58,3 +59,12 @@ class Pettanr.Views.Scroll.Show extends Backbone.View click_destroy: () -> @trigger('http_get', @item.destroy_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/sheets/show.js.coffee b/app/assets/javascripts/views/sheets/show.js.coffee index 358e81c3..f4cf5b25 100644 --- a/app/assets/javascripts/views/sheets/show.js.coffee +++ b/app/assets/javascripts/views/sheets/show.js.coffee @@ -29,6 +29,7 @@ class Pettanr.Views.Sheet.Show extends Backbone.View }) @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) @owner = new Pettanr.Views.Sheet.ShowModule.Owner({item: @item, operators: @operators}) + @listenTo(@header, 'click:pick', @click_pick) render: () -> this.$el.html('') @@ -37,3 +38,12 @@ class Pettanr.Views.Sheet.Show extends Backbone.View this.$el.append(@owner.render().el) if @item.is_own(@operators) 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/show.js.coffee b/app/assets/javascripts/views/show.js.coffee index 69160ac9..b5f98f11 100644 --- a/app/assets/javascripts/views/show.js.coffee +++ b/app/assets/javascripts/views/show.js.coffee @@ -11,6 +11,7 @@ class Pettanr.Views.Show.Header extends Backbone.View @caption_url = options.caption_url @prof_url = options.prof_url + @pick = null @icon = new Pettanr.Image.Icon({item: @item, half: true}) @icon_button = new Tag.A({ attr: {href: '/' + @icon_url}, @@ -34,11 +35,15 @@ class Pettanr.Views.Show.Header extends Backbone.View render: () -> this.$el.html('') + this.$el.append(@pick.render().el) if @pick this.$el.append(@icon_button.render().el) this.$el.append(@caption.render().el) this.$el.append(@prof_button.render().el) this + click_pick: () -> + @trigger('click:pick') + click_icon: () -> @trigger('click:icon') @@ -48,6 +53,13 @@ class Pettanr.Views.Show.Header extends Backbone.View click_prof: () -> @trigger('click:prof') + add_pick: (target_model) -> + @pick = new Pettanr.Views.Common.PickIcon({ + name: target_model.pick_type(@item.item_name()), half: true + }) + @listenTo(@pick, 'click', @click_pick) + @render() + class Pettanr.Views.Show.HeaderAuthor extends Backbone.View tagName: 'div' diff --git a/app/assets/javascripts/views/speech_balloons/show.js.coffee b/app/assets/javascripts/views/speech_balloons/show.js.coffee index a2fe35eb..ca62cc1b 100644 --- a/app/assets/javascripts/views/speech_balloons/show.js.coffee +++ b/app/assets/javascripts/views/speech_balloons/show.js.coffee @@ -25,6 +25,7 @@ class Pettanr.Views.SpeechBalloon.Show extends Backbone.View @listenTo(this, 'ready', @ready) @panel = @item.panel().with_elements() @panel.fetch({cache: false}).done => # with elements + @panel.attributes = @panel.replaced_attributes() @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) @body = new Pettanr.Views.Panel.Body({ panel: @panel, @@ -34,6 +35,7 @@ class Pettanr.Views.SpeechBalloon.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -66,3 +68,12 @@ class Pettanr.Views.SpeechBalloon.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/speeches/show.js.coffee b/app/assets/javascripts/views/speeches/show.js.coffee index 7bb259ef..ea9d3758 100644 --- a/app/assets/javascripts/views/speeches/show.js.coffee +++ b/app/assets/javascripts/views/speeches/show.js.coffee @@ -36,6 +36,7 @@ class Pettanr.Views.Speech.Show extends Backbone.View @credits = new Pettanr.Views.Panel.ShowModule.Credits({ pictures: @panel.licensed_pictures() }) + @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:caption', @click_show) @listenTo(@header, 'click:prof', @click_prof) @@ -68,3 +69,12 @@ class Pettanr.Views.Speech.Show extends Backbone.View click_credit_icon: (item) -> @trigger('http_get', item.show_url()) + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + diff --git a/app/assets/javascripts/views/stories/show.js.coffee b/app/assets/javascripts/views/stories/show.js.coffee index 55bd0c5f..730c386f 100644 --- a/app/assets/javascripts/views/stories/show.js.coffee +++ b/app/assets/javascripts/views/stories/show.js.coffee @@ -29,6 +29,7 @@ class Pettanr.Views.Story.Show extends Backbone.View }) @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) @owner = new Pettanr.Views.Story.ShowModule.Owner({item: @item, operators: @operators}) + @listenTo(@header, 'click:pick', @click_pick) render: () -> this.$el.html('') @@ -37,3 +38,12 @@ class Pettanr.Views.Story.Show extends Backbone.View this.$el.append(@owner.render().el) if @item.is_own(@operators) this + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + -- 2.11.0