attr = {style: Pettanr.to_style(style)}\r
this.$el.attr(attr)\r
\r
-class Pettanr.Views.Scroll.PlayModule.Append extends Tag.Div\r
- \r
- hide: () ->\r
- @set_style({display: 'none'})\r
- \r
- show: () ->\r
- @set_style({display: 'inline'})\r
- \r
- set_style: (style) ->\r
- attr = {style: Pettanr.to_style(style)}\r
- this.$el.attr(attr)\r
- \r
class Pettanr.Views.Scroll.PlayModule.Panels extends Backbone.View\r
tagName: 'ul'\r
className: 'player'\r
this.$el.html('')\r
_.each @items, (scroll_panel) =>\r
@append_scroll_panel(scroll_panel)\r
- rb = new Tag.RowBreak()\r
- this.$el.append(rb.render().el)\r
- link = new Tag.A({\r
- attr: {href: '/scroll_panels/new'},\r
- content: I18n.t('scroll_panels.player.append')\r
- })\r
- @listenTo(link, 'click', @click_append)\r
- @appender = new Pettanr.Views.Scroll.PlayModule.Append({\r
- content: link.render().el\r
- })\r
- this.$el.append(@appender.render().el)\r
this\r
\r
append_scroll_panel: (scroll_panel) ->\r
ready: (panel) ->\r
this.credits.push(panel.licensed_pictures())\r
\r
- click_insert: (panel_view) ->\r
+ click_insert: (panel_view = null) ->\r
@dialog = new Editor.Player.PanelInsertDialog({\r
parent: this, binder: @binder, target_model: Pettanr.ScrollPanel,\r
insert_point: panel_view\r
@dialog.start()\r
@trigger('click:insert', @dialog)\r
\r
- click_append: () ->\r
- @click_insert(@appender)\r
- \r
pick: (new_item, insert_point) ->\r
+ @parent.appender.show()\r
panel_view = @create_panel_view(new_item)\r
ul = this.$el[0]\r
- li = insert_point.$el[0]\r
- ul.insertBefore(panel_view.clear().el, li)\r
+ if insert_point\r
+ # insert before insert_point\r
+ li = insert_point.$el[0]\r
+ ul.insertBefore(panel_view.clear().el, li)\r
+ else\r
+ # append\r
+ this.$el.append(panel_view.clear().el)\r
@refresh_views()\r
+ @dialog.stop()\r
\r
open_dialog: () ->\r
@trigger('dialog:open', dialog)\r
\r
close_dialog: () ->\r
- @appender.show()\r
@trigger('dialog:close', @dialog)\r
+ if @dialog.is_catch()\r
+ # stored panel back to player\r
+ @back()\r
\r
click_move: (panel_view) ->\r
@dialog = new Editor.Player.PanelMoveDialog({\r
@listenTo(@dialog, 'open', @open_dialog)\r
@listenTo(@dialog, 'close', @close_dialog)\r
this.$el.append(@dialog.render().el)\r
- @appender.hide()\r
@disable_footer_switch()\r
@dialog.start(panel_view.panel)\r
panel_view.hide()\r
\r
move_success: (model, response) ->\r
from_panel_view = @create_panel_view(@dialog.from.scroll_panel)\r
+ @dialog.release()\r
@listenTo(from_panel_view, 'ready', @ready_from_panel_view)\r
ul = this.$el[0]\r
li = @dialog.to.$el[0]\r
\r
ready_from_panel_view: (panel) ->\r
@remove_panel_view(@dialog.from)\r
+ @dialog.stop()\r
@hide_insert_point()\r
@refresh_views()\r
\r
+ back: () ->\r
+ @hide_insert_point()\r
+ @enable_footer_switch()\r
+ @dialog.from.show()\r
+ \r
click_destroy: (panel_view) ->\r
success = (model, response) =>\r
@remove_panel_view(panel_view)\r
@views = _.without(@views, panel_view)\r
panel_view.remove()\r
\r
+class Pettanr.Views.Scroll.PlayModule.Append extends Tag.Div\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ @enabled = false\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ if @enabled\r
+ @link = new Tag.A({\r
+ attr: {href: '/scroll_panels/new'},\r
+ content: I18n.t('scroll_panels.player.append')\r
+ })\r
+ @listenTo(@link, 'click', @click)\r
+ @content = @link.render().el\r
+ super()\r
+ this\r
+ \r
+ enable: () ->\r
+ @enabled = true\r
+ @show()\r
+ \r
+ disable: () ->\r
+ @enabled = false\r
+ @hide()\r
+ \r
+ hide: () ->\r
+ @set_style({display: 'none'})\r
+ \r
+ show: () ->\r
+ if @enabled\r
+ @set_style({display: 'inline'})\r
+ else\r
+ @hide()\r
+ \r
+ set_style: (style) ->\r
+ attr = {style: Pettanr.to_style(style)}\r
+ this.$el.attr(attr)\r
+ @render()\r
+ \r
+ click: () ->\r
+ @trigger('click')\r
+ \r
class Pettanr.Views.Scroll.PlayModule.Body extends Backbone.View\r
tagName: 'div'\r
\r
@listenTo(@panels, 'dialog:close', @close_dialog)\r
@listenTo(@pager, 'page', @continue)\r
this.$el.append(@panels.render().el)\r
+ rb = new Tag.RowBreak()\r
+ this.$el.append(rb.render().el)\r
+ @appender = new Pettanr.Views.Scroll.PlayModule.Append({\r
+ })\r
+ @listenTo(@appender, 'click', @click_append)\r
+ this.$el.append(@appender.render().el)\r
+ if !@pager.hasNextPage()\r
+ @appender.enable()\r
this.$el.append(@pager.render().el)\r
this.$el.append(credits.render().el)\r
rb = new Tag.RowBreak()\r
click_credit_icon: (item) ->\r
@trigger('http_get', item.show_url())\r
\r
+ click_append: () ->\r
+ @panels.click_insert()\r
+ \r
click_insert: (dialog) ->\r
+ @appender.hide()\r
@trigger('click:insert', dialog)\r
\r
click_move: (dialog) ->\r
+ @appender.hide()\r
@trigger('click:move', dialog)\r
\r
close_dialog: (dialog) ->\r
+ @appender.show()\r
@trigger('dialog:close', dialog)\r
\r
continue: (page) ->\r
@listenTo(continue_pager, 'page', @continue)\r
@pager.$el.replaceWith(continue_pager.render().el)\r
@pager = continue_pager\r
+ if !@pager.hasNextPage()\r
+ @appender.enable()\r
)\r
\r
class Pettanr.Views.Scroll.Play extends Backbone.View\r