OSDN Git Service

conflict
[pettanr/pettanr.git] / app / assets / javascripts / views / scrolls / play.js.coffee
index b9e62fd..5dfdd63 100644 (file)
@@ -258,6 +258,24 @@ class Pettanr.Views.Scroll.PlayModule.InsertPoint extends Tag.Div
     attr = {style: Pettanr.to_style(style)}\r
     this.$el.attr(attr)\r
   \r
     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
 class Pettanr.Views.Scroll.PlayModule.Panels extends Pettanr.View\r
   tagName: 'ul'\r
   className: 'player'\r
@@ -271,20 +289,32 @@ class Pettanr.Views.Scroll.PlayModule.Panels extends Pettanr.View
   \r
   render: () ->\r
     this.$el.html('')\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
     _.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
     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
   \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
     @listenTo(panel_view, 'click:insert', @click_insert)\r
     @listenTo(panel_view, 'click:move', @click_move)\r
     @listenTo(panel_view, 'click:destroy', @click_destroy)\r
@@ -295,6 +325,9 @@ class Pettanr.Views.Scroll.PlayModule.Panels extends Pettanr.View
   ready: (panel) ->\r
     this.credits.push(panel.licensed_pictures())\r
   \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
   click_insert: (panel_view = null) ->\r
     @dialog = new Editor.Player.PanelInsertDialog({\r
       parent: this, binder: @binder, target_model: Pettanr.ScrollPanel,\r
@@ -392,6 +425,7 @@ class Pettanr.Views.Scroll.PlayModule.Panels extends Pettanr.View
     success = (model, response) =>\r
       @remove_panel_view(panel_view)\r
       panel_view.remove()\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
       @refresh_views()\r
       @trigger('click:destroy')\r
     Pettanr.Proxy.destroy(panel_view.scroll_panel, {success: success})\r
@@ -453,18 +487,43 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View
     @pager = options.pager\r
     @items = @list.items()\r
   \r
     @pager = options.pager\r
     @items = @list.items()\r
   \r
-  render_empty: () ->\r
+  render: () ->\r
     this.$el.html('')\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
     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.$el.html('')\r
       # paginate(@pager)\r
     else\r
       this.$el.html('')\r
       # paginate(@pager)\r
-      credits = new Pettanr.View.Credits({parent: this})\r
+      credits = new Pettanr.View.Credits(this, {icon: true})\r
       @panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
         parent: this,\r
         binder: @binder,\r
       @panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
         parent: this,\r
         binder: @binder,\r
@@ -472,6 +531,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View
         credits: credits,\r
       })\r
       @listenTo(credits, 'click:credit:icon', @click_credit_icon)\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(@panels, 'click:insert', @click_insert)\r
       @listenTo(@panels, 'click:move', @click_move)\r
       @listenTo(@panels, 'dialog:close', @close_dialog)\r
@@ -487,7 +547,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View
       this.$el.append(@pager.render().el)\r
       this.$el.append(credits.render().el)\r
       @append_rb()\r
       this.$el.append(@pager.render().el)\r
       this.$el.append(credits.render().el)\r
       @append_rb()\r
-      this\r
+      true\r
   \r
   click_credit_icon: (item) ->\r
     @trigger('http_get', item.show_url())\r
   \r
   click_credit_icon: (item) ->\r
     @trigger('http_get', item.show_url())\r
@@ -495,6 +555,9 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View
   click_append: () ->\r
     @panels.click_insert()\r
   \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
   click_insert: (dialog) ->\r
     @appender.hide()\r
     @trigger('click:insert', dialog)\r