OSDN Git Service

conflict
authoryasushiito <yas@pen-chan.jp>
Thu, 1 Oct 2015 01:11:27 +0000 (10:11 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 1 Oct 2015 01:11:27 +0000 (10:11 +0900)
1  2 
app/assets/javascripts/views/scrolls/play.js.coffee

@@@ -258,6 -258,24 +258,24 @@@ class Pettanr.Views.Scroll.PlayModule.I
      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
@@@ -457,42 -483,41 +487,67 @@@ class Pettanr.Views.Scroll.PlayModule.B
      @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