attr = {style: Pettanr.to_style(style)}\r
this.$el.attr(attr)\r
\r
+ class Pettanr.Views.Scroll.PlayModule.EmptyNotice extends Tag.H2\r
+ \r
+ clear: () ->\r
+ this.$el.html('')\r
+ @hide()\r
+ @render()\r
+ this\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 Pettanr.View\r
tagName: 'ul'\r
className: 'player'\r
\r
render: () ->\r
this.$el.html('')\r
+ @empty_notice = new Pettanr.Views.Scroll.PlayModule.EmptyNotice({content: I18n.t('scrolls.play.empty')})\r
+ this.$el.append(@empty_notice.clear().el)\r
_.each @items, (scroll_panel) =>\r
@append_scroll_panel(scroll_panel)\r
+ @refresh_empty_notice()\r
+ this\r
+ \r
+ refresh_empty_notice: () ->\r
+ if @views.length < 1\r
+ @empty_notice.show()\r
+ else\r
+ @empty_notice.hide()\r
this\r
\r
append_scroll_panel: (scroll_panel) ->\r
return if not scroll_panel.has_panel()\r
panel_view = @create_panel_view(scroll_panel)\r
this.$el.append(panel_view.clear().el)\r
+ @refresh_empty_notice()\r
\r
create_panel_view: (scroll_panel) ->\r
panel_view = new Pettanr.Views.Scroll.PlayModule.Panel({\r
scroll: @binder, scroll_panel: scroll_panel,\r
})\r
@listenTo(panel_view, 'ready', @ready)\r
+ @listenTo(panel_view, 'http_get', @http_get)\r
@listenTo(panel_view, 'click:insert', @click_insert)\r
@listenTo(panel_view, 'click:move', @click_move)\r
@listenTo(panel_view, 'click:destroy', @click_destroy)\r
ready: (panel) ->\r
this.credits.push(panel.licensed_pictures())\r
\r
+ http_get: (url) ->\r
+ @trigger('http_get', url)\r
+ \r
click_insert: (panel_view = null) ->\r
@dialog = new Editor.Player.PanelInsertDialog({\r
parent: this, binder: @binder, target_model: Pettanr.ScrollPanel,\r
success = (model, response) =>\r
@remove_panel_view(panel_view)\r
panel_view.remove()\r
+ @refresh_empty_notice()\r
@refresh_views()\r
@trigger('click:destroy')\r
Pettanr.Proxy.destroy(panel_view.scroll_panel, {success: success})\r
@pager = options.pager\r
@items = @list.items()\r
\r
- render_empty: () ->\r
+ render: () ->\r
this.$el.html('')\r
- this.$el.append((new Tag.H2({content: I18n.t('scrolls.play.empty')})).render().el)\r
+ # paginate(@pager)\r
+ credits = new Pettanr.View.Credits(this, {icon: true})\r
+ @panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
+ parent: this,\r
+ binder: @binder,\r
+ items: @items,\r
+ credits: credits,\r
+ })\r
+ @listenTo(credits, 'click:credit:icon', @click_credit_icon)\r
+ @listenTo(@panels, 'click:insert', @click_insert)\r
+ @listenTo(@panels, 'click:move', @click_move)\r
+ @listenTo(@panels, 'dialog:close', @close_dialog)\r
+ this.$el.append(@panels.render().el)\r
+ @append_rb()\r
+ @appender = new Pettanr.Views.Scroll.PlayModule.Append({\r
+ })\r
+ @listenTo(@appender, 'click', @click_append)\r
+ this.$el.append(@appender.render().el)\r
+ if @is_appendable()\r
+ @appender.enable()\r
+ if @pager\r
+ @listenTo(@pager, 'page', @continue)\r
+ this.$el.append(@pager.render().el)\r
+ this.$el.append(credits.render().el)\r
+ @append_rb()\r
this\r
\r
- render: () ->\r
- if @items.length < 1\r
- @render_empty()\r
+ is_appendable: () ->\r
+ return true if _.isEmpty(@items)\r
+ if @pager and @pager.hasNextPage()\r
+ false\r
else\r
- this\r
+ this.$el.html('')\r
+ # paginate(@pager)\r
+ credits = new Pettanr.View.Credits(this, {icon: true})\r
+ @panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
+ parent: this,\r
+ binder: @binder,\r
+ items: @items,\r
+ credits: credits,\r
+ })\r
+ @listenTo(credits, 'click:credit:icon', @click_credit_icon)\r
+ @listenTo(@panels, 'http_get', @http_get)\r
+ @listenTo(@panels, 'click:insert', @click_insert)\r
+ @listenTo(@panels, 'click:move', @click_move)\r
+ @listenTo(@panels, 'dialog:close', @close_dialog)\r
+ @listenTo(@pager, 'page', @continue)\r
+ this.$el.append(@panels.render().el)\r
+ @append_rb()\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
+ @append_rb()\r
+ true\r
\r
click_credit_icon: (item) ->\r
@trigger('http_get', item.show_url())\r
click_append: () ->\r
@panels.click_insert()\r
\r
+ http_get: (url) ->\r
+ @trigger('http_get', url)\r
+ \r
click_insert: (dialog) ->\r
@appender.hide()\r
@trigger('click:insert', dialog)\r