class Pettanr.Views.Scroll.PlayModule\r
-class Pettanr.Views.Scroll.PlayModule.Header extends Pettanr.Views.Show.Header\r
+class Pettanr.Views.Scroll.PlayModule.FooterSwitch extends Pettanr.View\r
+ tagName: 'div'\r
+ className: 'player-item-switch'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
\r
initialize: (options) ->\r
- super(options)\r
+ @scroll_panel = options.scroll_panel\r
+ @panel = options.panel\r
+ @visible = false\r
+ @enabled = true\r
+ @listenTo(@scroll_panel, 'sync', @render)\r
\r
-class Pettanr.Views.Scroll.PlayModule.Owner extends Pettanr.Views.Show.Owner\r
+ render: () ->\r
+ this.$el.html('')\r
+ attr = {\r
+ style: Pettanr.to_style({height: Pettanr.to_s(@panel.get('height')) + 'px'})\r
+ }\r
+ this.$el.attr(attr)\r
+ face = if @visible\r
+ '<'\r
+ else\r
+ '>'\r
+ caption = new Tag.Span({content: face})\r
+ this.$el.append(@scroll_panel.get('t') + 1)\r
+ this.$el.append(caption.render().el) if @enabled\r
+ this\r
\r
- initialize: (options) ->\r
- super(options)\r
+ click: () ->\r
+ return false if !@enabled\r
+ @visible = !@visible\r
+ @render()\r
+ @trigger('click', @visible)\r
+ \r
+ enable: () ->\r
+ @enabled = true\r
+ @render()\r
\r
-class Pettanr.Views.Scroll.PlayModule.Footer extends Backbone.View\r
- tagName: 'table'\r
- className: 'no-border'\r
+ disable: () ->\r
+ @enabled = false\r
+ @visible = false\r
+ @render()\r
+ \r
+class Pettanr.Views.Scroll.PlayModule.Footer extends Pettanr.View\r
+ tagName: 'div'\r
+ className: 'player-item-footer'\r
\r
initialize: (options) ->\r
- @panel = options.panel\r
+ @scroll = options.scroll\r
@scroll_panel = options.scroll_panel\r
- @operators = options.operators\r
+ @panel = options.panel\r
\r
render: () ->\r
this.$el.html('')\r
- this.$el.append(\r
- (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el\r
- )\r
- this.$el.append(\r
- (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
- )\r
- this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))\r
- #\r
- this.$el.append(\r
- (new Pettanr.Views.Panel.Icon({item: @scroll_panel, half: true})).render().el\r
- )\r
- this.$el.append(\r
- (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
- )\r
- this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@scroll_panel.get('updated_at')))\r
- #\r
- if @panel.is_own(@operators)\r
- this.$el.append('')\r
+ @hide()\r
+ @panel.get_parent('author', this, {\r
+ success: (@author) =>\r
+ @panel_face_button = @panel.mini_face_button({\r
+ context: this,\r
+ click: () ->\r
+ @trigger('click:panel')\r
+ })\r
+ @author_face_button = @author.mini_face_button({\r
+ context: this,\r
+ click: () ->\r
+ @trigger('click:author', @author)\r
+ })\r
+ l1 = new Tag.H3({\r
+ content: Pettanr.AppHelper.t_m('Panel')\r
+ })\r
+ l2 = new Tag.H3({\r
+ content: Pettanr.AppHelper.t_m('ScrollPanel')\r
+ })\r
+ this.$el.append(l1.render().el)\r
+ this.$el.append(@panel_face_button.render().el)\r
+ this.$el.append(@author_face_button.render().el)\r
+ this.$el.append(\r
+ Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at'))\r
+ )\r
+ this.$el.append(l2.render().el)\r
+ if @scroll.is_own()\r
+ @new_scroll_panel = new Pettanr.ScrollPanel()\r
+ @insert_button = new Pettanr.View.Button.ItemAction(@new_scroll_panel, 'new', 'scroll_panels.player.before_insert', {\r
+ context: this,\r
+ click: () ->\r
+ @trigger('click:insert')\r
+ })\r
+ @move_button = new Pettanr.View.Button.ItemAction(@scroll_panel, 'edit', 'scroll_panels.player.move', {\r
+ context: this,\r
+ click: () ->\r
+ @trigger('click:move')\r
+ })\r
+ @destroy_button = new Pettanr.View.Button.ItemAction(@scroll_panel, 'destroy', 'scroll_panels.player.destroy', {\r
+ context: this,\r
+ click: () ->\r
+ @trigger('click:destroy')\r
+ })\r
+ this.$el.append(@insert_button.render().el)\r
+ @append_rb()\r
+ this.$el.append(@move_button.render().el)\r
+ @append_rb()\r
+ this.$el.append(@destroy_button.render().el)\r
+ })\r
this\r
\r
-class Pettanr.Views.Scroll.PlayModule.Credits extends Backbone.View\r
+ hide: () ->\r
+ attr = {\r
+ style: Pettanr.to_style({display: 'none'})\r
+ }\r
+ this.$el.attr(attr)\r
+ \r
+ show: () ->\r
+ attr = {\r
+ style: Pettanr.to_style({display: 'inline'})\r
+ }\r
+ this.$el.attr(attr)\r
+ \r
+class Pettanr.Views.Scroll.PlayModule.PanelBody extends Pettanr.View\r
tagName: 'div'\r
- className: 'credits'\r
+ className: 'player-item-panel'\r
\r
initialize: (options) ->\r
- @parent = options.parent\r
- @licensed_pictures = {}\r
+ @panel = options.panel\r
\r
render: () ->\r
this.$el.html('')\r
+ body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: null\r
+ })\r
+ this.$el.append(body.render().el)\r
this\r
\r
- push: (append_pictures) ->\r
- _this = this\r
- _.each append_pictures, (picture, pid) ->\r
- return if _this.licensed_pictures[pid]\r
- _this.licensed_pictures[pid] = picture\r
- picture.fetch({cache: true}).done ->\r
- credit = picture.credit_view()\r
- _this.$el.append(credit.render().el)\r
+class Pettanr.Views.Scroll.PlayModule.Panel extends Pettanr.View\r
+ tagName: 'li'\r
+ className: 'player-item'\r
\r
-class Pettanr.Views.Scroll.PlayModule.Panels extends Backbone.View\r
- tagName: 'div'\r
+ initialize: (options) ->\r
+ @scroll = options.scroll\r
+ @scroll_panel = options.scroll_panel\r
+ \r
+ clear: () ->\r
+ this.$el.html('')\r
+ @scroll_panel.get_parent('panel', this, {\r
+ success: (@panel) =>\r
+ @render()\r
+ })\r
+ this\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ @panel = @panel.play() # retake panel for 'with_elements' mode\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ body = new Pettanr.Views.Scroll.PlayModule.PanelBody({\r
+ panel: @panel\r
+ })\r
+ @footer_switch = new Pettanr.Views.Scroll.PlayModule.FooterSwitch({\r
+ scroll_panel: @scroll_panel,\r
+ panel: @panel\r
+ })\r
+ @listenTo(@footer_switch, 'click', @click_footer_switch)\r
+ move_to = new Tag.A({\r
+ attr: {href: '/' + @scroll_panel.edit_url()},\r
+ content: I18n.t('scroll_panels.player.move_to')\r
+ })\r
+ @insert_point = new Pettanr.Views.Scroll.PlayModule.InsertPoint({\r
+ class_name: 'insert-point', content: move_to.render().el\r
+ })\r
+ @footer = new Pettanr.Views.Scroll.PlayModule.Footer({\r
+ scroll: @scroll,\r
+ scroll_panel: @scroll_panel,\r
+ panel: @panel,\r
+ })\r
+ @listenTo(move_to, 'click', @click_move_to)\r
+ @listenTo(@footer, 'click:panel', @click_show)\r
+ @listenTo(@footer, 'click:author', @click_author)\r
+ @listenTo(@footer, 'click:insert', @click_insert)\r
+ @listenTo(@footer, 'click:move', @click_move)\r
+ @listenTo(@footer, 'click:edit', @click_edit)\r
+ @listenTo(@footer, 'click:destroy', @click_destroy)\r
+ this.$el.append(@insert_point.clear().el)\r
+ @append_rb()\r
+ this.$el.append(body.render().el)\r
+ this.$el.append(@footer_switch.render().el)\r
+ this.$el.append(@footer.render().el)\r
+ @trigger('ready', @panel)\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\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
+ enable_footer_switch: () ->\r
+ @footer_switch.enable()\r
+ \r
+ disable_footer_switch: () ->\r
+ @footer_switch.disable()\r
+ @footer.hide()\r
+ \r
+ show_insert_point: () ->\r
+ @insert_point.show()\r
+ \r
+ hide_insert_point: () ->\r
+ @insert_point.hide()\r
+ \r
+ click_footer_switch: (visible) ->\r
+ if visible\r
+ @footer.show()\r
+ else\r
+ @footer.hide()\r
+ \r
+ click_show: () ->\r
+ @trigger('http_get', @panel.show_url())\r
+ \r
+ click_author: (author) ->\r
+ @trigger('http_get', author.show_url())\r
+ \r
+ click_insert: () ->\r
+ @trigger('click:insert', this)\r
+ \r
+ click_move: () ->\r
+ @trigger('click:move', this)\r
+ \r
+ click_destroy: () ->\r
+ @trigger('click:destroy', this)\r
+ \r
+ click_move_to: () ->\r
+ @trigger('click:move_to', this)\r
+ \r
+class Pettanr.Views.Scroll.PlayModule.InsertPoint extends Tag.Div\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.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
initialize: (options) ->\r
@parent = options.parent\r
+ @binder = options.binder\r
@items = options.items\r
@credits = options.credits\r
- @operators = options.operators\r
+ @views = []\r
\r
render: () ->\r
this.$el.html('')\r
- _this = this\r
- _.each @items, (scroll_panel) ->\r
- return if not scroll_panel.has_panel()\r
- panel = scroll_panel.panel()\r
- panel.fetch({cache: true}).done ->\r
- body = new Pettanr.Views.Panel.Body({\r
- panel: panel,\r
- operators: _this.operators,\r
- spot: null\r
- })\r
- _this.$el.append(body.render().el)\r
- footer = new Pettanr.Views.Panel.Footer({\r
- scroll_panel: scroll_panel,\r
- panel: panel,\r
- operators: _this.operators\r
- })\r
- _this.$el.append(footer.render().el)\r
- _this.credits.push(panel.licensed_pictures())\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
+ @listenTo(panel_view, 'click:move_to', @click_move_to)\r
+ @views.push(panel_view)\r
+ panel_view\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
+ insert_point: panel_view\r
+ })\r
+ @listenTo(@dialog, 'pick', @pick)\r
+ @listenTo(@dialog, 'open', @open_dialog)\r
+ @listenTo(@dialog, 'close', @close_dialog)\r
+ this.$el.append(@dialog.render().el)\r
+ @dialog.start()\r
+ @trigger('click:insert', @dialog)\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
+ 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
+ @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
+ parent: this, binder: @binder, target_model: Pettanr.ScrollPanel,\r
+ from: panel_view\r
+ })\r
+ @listenTo(@dialog, 'open', @open_dialog)\r
+ @listenTo(@dialog, 'close', @close_dialog)\r
+ this.$el.append(@dialog.render().el)\r
+ @disable_footer_switch()\r
+ @dialog.start(panel_view.panel)\r
+ panel_view.hide()\r
+ @show_insert_point()\r
+ @trigger('click:move', @dialog)\r
+ \r
+ enable_footer_switch: () ->\r
+ _.each @views, (panel_view) =>\r
+ panel_view.enable_footer_switch()\r
+ \r
+ disable_footer_switch: () ->\r
+ _.each @views, (panel_view) =>\r
+ panel_view.disable_footer_switch()\r
+ \r
+ show_insert_point: () ->\r
+ _.each @views, (panel_view) =>\r
+ panel_view.show_insert_point()\r
+ \r
+ hide_insert_point: () ->\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
+ 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
+ ul.insertBefore(from_panel_view.clear().el, li)\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
+ 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
+ \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
-class Pettanr.Views.Scroll.PlayModule.Body extends Backbone.View\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 Pettanr.View\r
tagName: 'div'\r
\r
initialize: (options) ->\r
@parent = options.parent\r
+ @binder = options.binder\r
@list = options.list\r
- @operators = options.operators\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.$el.append((new Tag.H2({content: I18n.t('scrolls.play.empty')})).render().el)\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
+ 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
- operators: @operators\r
})\r
- this.$el.append(panels.render().el)\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
- rb = new Tag.RowBreak()\r
- this.$el.append(rb.render().el)\r
- # paginate(@pager)\r
+ @append_rb()\r
this\r
\r
-class Pettanr.Views.Scroll.Play extends Backbone.View\r
- tagName: 'div'\r
- className: 'show'\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
+ 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
+ \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
+ \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
+ 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(this, {\r
+ success: (next_page_items) =>\r
+ _.each next_page_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
+ if !@pager.hasNextPage()\r
+ @appender.enable()\r
+ })\r
+ \r
+class Pettanr.Views.Scroll.Play extends Pettanr.View.Show\r
\r
initialize: (options) ->\r
- @item = options.item\r
@list = options.list\r
- @operators = options.operators\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
- @header = new Pettanr.Views.Scroll.PlayModule.Header({\r
- item: @item, \r
- operators: @operators,\r
- caption: @item.get('title'), \r
- icon_url: icon_url,\r
- caption_url: caption_url,\r
- prof_url: prof_url\r
- })\r
- @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
+ @pager = options.pager\r
+ @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options())\r
+ @authored_by = @item.authored_by()\r
@body = new Pettanr.Views.Scroll.PlayModule.Body({\r
parent: this,\r
+ binder: @item,\r
list: @list, \r
- operators: @operators\r
+ pager: @pager\r
})\r
- @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item, operators: @operators})\r
+ # @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item})\r
+ @listenTo(@header, 'click:pick', @click_pick)\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ @listenTo(@body, 'http_get', @http_get)\r
+ @listenTo(@body, 'click:insert', @click_insert)\r
+ @listenTo(@body, 'click:move', @click_move)\r
+ @listenTo(@body, 'dialog:close', @close_dialog)\r
\r
render: () ->\r
this.$el.html('')\r
this.$el.append(@header.render().el)\r
- this.$el.append(@author.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
this.$el.append(@body.render().el)\r
- this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
+ # this.$el.append(@owner.render().el) if @item.is_own()\r
this\r
\r
+ click_pick: () ->\r
+ @trigger('pick', @item)\r
+ \r
+ http_get: (url) ->\r
+ @trigger('http_get', url)\r
+ \r
+ click_insert: (dialog) ->\r
+ @trigger('insert', dialog)\r
+ \r
+ click_move: (dialog) ->\r
+ @trigger('move', dialog)\r
+ \r
+ close_dialog: (dialog) ->\r
+ @trigger('dialog:close', dialog)\r
+ \r