class Pettanr.Views.Scroll.PlayModule\r
-class Pettanr.Views.Scroll.PlayModule.Header extends Pettanr.Views.Show.Header\r
- \r
- initialize: (options) ->\r
- super(options)\r
- \r
-class Pettanr.Views.Scroll.PlayModule.Owner extends Pettanr.Views.Show.Owner\r
- \r
- initialize: (options) ->\r
- super(options)\r
- \r
class Pettanr.Views.Scroll.PlayModule.FooterSwitch extends Pettanr.View\r
tagName: 'div'\r
className: 'player-item-switch'\r
@hide()\r
@panel.get_parent('author', this, {\r
success: (@author) =>\r
- @panel_icon = new Pettanr.Views.Panel.Icon({item: @panel, half: true})\r
- @author_icon = new Pettanr.Views.Author.Icon({item: @author, half: true})\r
- @new_scroll_panel = new Pettanr.ScrollPanel()\r
- @insert_button = new Pettanr.Views.Show.LinkedNewButton({item: @new_scroll_panel, dic_name: 'scroll_panels.player.before_insert'})\r
- @move_button = new Pettanr.Views.Show.LinkedEditButton({item: @scroll_panel, dic_name: 'scroll_panels.player.move'})\r
- @destroy_button = new Pettanr.Views.Show.LinkedDestroyButton({item: @scroll_panel, dic_name: 'scroll_panels.player.destroy'})\r
- @listenTo(@panel_icon, 'click', @click_panel)\r
- @listenTo(@author_icon, 'click', @click_author)\r
- @listenTo(@insert_button, 'click', @click_insert)\r
- @listenTo(@move_button, 'click', @click_move)\r
- @listenTo(@destroy_button, 'click', @click_destroy)\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
content: Pettanr.AppHelper.t_m('ScrollPanel')\r
})\r
this.$el.append(l1.render().el)\r
- this.$el.append(@panel_icon.render().el)\r
- this.$el.append(@author_icon.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
- @rb()\r
+ @append_rb()\r
this.$el.append(@move_button.render().el)\r
- @rb()\r
+ @append_rb()\r
this.$el.append(@destroy_button.render().el)\r
})\r
this\r
}\r
this.$el.attr(attr)\r
\r
- click_panel: () ->\r
- @trigger('click:panel')\r
- \r
- click_author: () ->\r
- @trigger('click:author')\r
- \r
- click_insert: () ->\r
- @trigger('click:insert')\r
- \r
- click_move: () ->\r
- @trigger('click:move')\r
- \r
- click_destroy: () ->\r
- @trigger('click:destroy')\r
- \r
class Pettanr.Views.Scroll.PlayModule.PanelBody extends Pettanr.View\r
tagName: 'div'\r
className: 'player-item-panel'\r
\r
render: () ->\r
this.$el.html('')\r
- @panel = @panel.with_elements() # retake panel for 'with_elements' mode\r
- @panel.fetch({cache: true}).done =>\r
- @panel.attributes = @panel.replaced_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
- @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
+ @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
click_show: () ->\r
@trigger('http_get', @panel.show_url())\r
\r
- click_author: () ->\r
- @trigger('http_get', @panel.author().show_url())\r
+ click_author: (author) ->\r
+ @trigger('http_get', author.show_url())\r
\r
click_insert: () ->\r
@trigger('click:insert', this)\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
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
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.$el.html('')\r
- # paginate(@pager)\r
- credits = new Pettanr.View.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
- @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
- @rb()\r
- this\r
+ true\r
\r
click_credit_icon: (item) ->\r
@trigger('http_get', item.show_url())\r
\r
class Pettanr.Views.Scroll.Play extends Pettanr.View.Show\r
\r
- initialize: (@item, options) ->\r
+ initialize: (options) ->\r
@list = options.list\r
@pager = options.pager\r
@header = new Pettanr.View.Show.Header(@item, this, @binder_header_options())\r