--- /dev/null
+class Locmare.ListGroupModule.LibModule.PlayPager extends Locmare.ListGroupModule.LibModule.Pager\r
+ \r
+ @pagers: () ->\r
+ {\r
+ default: Locmare.ListGroupModule.LibModule.PlayPagerModule.Default,\r
+ offset: Locmare.ListGroupModule.LibModule.PlayPagerModule.Offset,\r
+ unlimited: Locmare.ListGroupModule.LibModule.PlayPagerModule.Unlimited,\r
+ more: Locmare.ListGroupModule.LibModule.PlayPagerModule.More\r
+ }\r
+\r
+class Locmare.ListGroupModule.LibModule.PlayPagerModule\r
+class Locmare.ListGroupModule.LibModule.PlayPagerModule.Default extends Locmare.ListGroupModule.LibModule.PagerModule.Default\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ if @hasNextPage()\r
+ view = new Locmare.ListGroupModule.LibModule.PlayPagerModule.NextPage({\r
+ parent: this, page: @current_page + 1, class_name: 'continue'\r
+ })\r
+ @listenTo(view, 'navigate', @navigate)\r
+ @listenTo(view, 'page', @click)\r
+ this.$el.append(view.render().el)\r
+ rb = new Tag.RowBreak()\r
+ this.$el.append(rb.render().el)\r
+ this\r
+ \r
+class Locmare.ListGroupModule.LibModule.PlayPagerModule.NextPage extends Locmare.ListGroupModule.LibModule.PagerModule.Part\r
+ \r
+ content: () ->\r
+ 'Continue'\r
+ \r
@panel = options.panel\r
@visible = false\r
@enabled = true\r
+ @listenTo(@scroll_panel, 'sync', @render)\r
\r
render: () ->\r
this.$el.html('')\r
render: () ->\r
this.$el.html('')\r
_.each @items, (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
+ @append_scroll_panel(scroll_panel)\r
rb = new Tag.RowBreak()\r
this.$el.append(rb.render().el)\r
link = new Tag.A({\r
this.$el.append(@appender.render().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
+ \r
create_panel_view: (scroll_panel) ->\r
panel_view = new Pettanr.Views.Scroll.PlayModule.Panel({\r
scroll: @binder, scroll_panel: scroll_panel,\r
ul = this.$el[0]\r
li = insert_point.$el[0]\r
ul.insertBefore(panel_view.clear().el, li)\r
+ @refresh_views()\r
\r
open_dialog: () ->\r
@trigger('dialog:open', dialog)\r
_.each @views, (panel_view) =>\r
panel_view.hide_insert_point()\r
\r
+ refresh_views: () ->\r
+ _.each @views, (panel_view) =>\r
+ Pettanr.cache.refresh(panel_view.scroll_panel)\r
+ \r
click_move_to: (to_panel_view) ->\r
+ @enable_footer_switch()\r
@listenTo(@dialog, 'success', @move_success)\r
@dialog.save(to_panel_view)\r
\r
ready_from_panel_view: (panel) ->\r
@remove_panel_view(@dialog.from)\r
@hide_insert_point()\r
+ @refresh_views()\r
\r
click_destroy: (panel_view) ->\r
success = (model, response) =>\r
@remove_panel_view(panel_view)\r
panel_view.remove()\r
+ @refresh_views()\r
@trigger('click:destroy')\r
Pettanr.Proxy.destroy(panel_view.scroll_panel, {success: success})\r
\r
@parent = options.parent\r
@binder = options.binder\r
@list = options.list\r
+ @pager = options.pager\r
@items = @list.items()\r
- if @items.length < 1\r
- @render_empty()\r
- else\r
- @render()\r
\r
render_empty: () ->\r
this.$el.html('')\r
this\r
\r
render: () ->\r
- this.$el.html('')\r
- # paginate(@pager)\r
- credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this})\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
- this.$el.append(credits.render().el)\r
- rb = new Tag.RowBreak()\r
- this.$el.append(rb.render().el)\r
- # paginate(@pager)\r
- this\r
+ if @items.length < 1\r
+ @render_empty()\r
+ else\r
+ this.$el.html('')\r
+ # paginate(@pager)\r
+ credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this})\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
+ @listenTo(@pager, 'page', @continue)\r
+ this.$el.append(@panels.render().el)\r
+ this.$el.append(@pager.render().el)\r
+ this.$el.append(credits.render().el)\r
+ rb = new Tag.RowBreak()\r
+ this.$el.append(rb.render().el)\r
+ this\r
\r
click_credit_icon: (item) ->\r
@trigger('http_get', item.show_url())\r
close_dialog: (dialog) ->\r
@trigger('dialog:close', dialog)\r
\r
+ continue: (page) ->\r
+ params = _.clone(@pager.params)\r
+ params['page'] = page\r
+ continue_list = Locmare.ListGroup.list(\r
+ @list.list_group_name, @list.list_name, params\r
+ )\r
+ continue_list.open(() =>\r
+ _.each continue_list.items(), (scroll_panel) =>\r
+ @items.push(scroll_panel)\r
+ @panels.append_scroll_panel(scroll_panel)\r
+ @list = continue_list\r
+ continue_pager = Locmare.ListGroupModule.LibModule.PlayPager.factory(@list.page_status, params)\r
+ @listenTo(continue_pager, 'page', @continue)\r
+ @pager.$el.replaceWith(continue_pager.render().el)\r
+ @pager = continue_pager\r
+ )\r
+ \r
class Pettanr.Views.Scroll.Play extends Backbone.View\r
tagName: 'div'\r
className: 'show'\r
initialize: (options) ->\r
@item = options.item\r
@list = options.list\r
+ @pager = options.pager\r
icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
parent: this,\r
binder: @item,\r
list: @list, \r
+ pager: @pager\r
})\r
# @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item})\r
@listenTo(@header, 'click:pick', @click_pick)\r