class Pettanr.Views.Story.PlayModule class Pettanr.Views.Story.PlayModule.Footer extends Pettanr.View tagName: 'table' className: 'no-border' initialize: (options) -> @panel = options.panel @scroll_panel = options.scroll_panel render: () -> this.$el.html('') this.$el.append( (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el ) this.$el.append( (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el ) this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at'))) # this.$el.append( (new Pettanr.Views.Panel.Icon({item: @scroll_panel, half: true})).render().el ) this.$el.append( (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el ) this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@scroll_panel.get('updated_at'))) # if @panel.is_own() this.$el.append('') this class Pettanr.Views.Story.PlayModule.Sheet extends Pettanr.View tagName: 'div' initialize: (options) -> @story_sheet = options.story_sheet @story_sheet.get_parent('sheet', this, { success: (@sheet) => @render() }) render: () -> this.$el.html('') @sheet.get_children('panel', this, { success: (panels) => body = new Pettanr.Views.Sheet.PlayModule.Body({ parent: this, list: [], # list of sheets/by_story/1 }) this.$el.append(body.render().el) }) this class Pettanr.Views.Story.PlayModule.Sheets extends Pettanr.View tagName: 'div' initialize: (options) -> @parent = options.parent @items = options.items render: () -> this.$el.html('') _.each @items, (story_sheet) => return if not story_sheet.has_sheet() sheet_view = new Pettanr.Views.Story.PlayModule.Sheet({ story_sheet: story_sheet, }) this.$el.append(sheet_view.render().el) this class Pettanr.Views.Story.PlayModule.Body extends Pettanr.View tagName: 'div' initialize: (options) -> @parent = options.parent @list = options.list @items = @list.items() if @items.length < 1 @render_empty() else @render() render_empty: () -> this.$el.html('') this.$el.append((new Tag.H2({content: I18n.t('stories.play.empty')})).render().el) this render: () -> this.$el.html('') # paginate(@pager) sheets = new Pettanr.Views.Story.PlayModule.Sheets({ parent: this, items: @items, }) this.$el.append(sheets.render().el) # paginate(@pager) this class Pettanr.Views.Story.Play extends Pettanr.View tagName: 'div' className: 'show' initialize: (options) -> @item = options.item @list = options.list icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')}) prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) @header = new Pettanr.Views.Story.PlayModule.Header({ item: @item, caption: @item.get('title'), icon_url: icon_url, caption_url: caption_url, prof_url: prof_url }) @author = new Pettanr.Views.Show.HeaderAuthor({item: @item}) @body = new Pettanr.Views.Story.PlayModule.Body({ parent: this, list: @list, }) @owner = new Pettanr.Views.Story.PlayModule.Owner({item: @item}) render: () -> this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@author.render().el) this.$el.append(@body.render().el) this.$el.append(@owner.render().el) if @item.is_own() this