1 class Pettanr.Views.Common
\r
2 @replace_empty: (caption) ->
\r
3 if Pettanr.is_blank(caption)
\r
4 empty = new Pettanr.Views.Common.EmptyCaption()
\r
9 class Pettanr.Views.Common.Logo extends Tag.Span
\r
13 title = Manifest.manifest().magic_numbers['profile']['users']['caption']
\r
14 @logo_button = new Tag.A({
\r
17 content: _.escape(title)
\r
19 @listenTo(@logo_button, 'click', @click)
\r
22 this.$el.html(@logo_button.render().el)
\r
29 class Pettanr.Views.Common.LoadIcon extends Tag.Img
\r
33 @width = Manifest.manifest().magic_numbers['thumbnail_width']
\r
34 @height = Manifest.manifest().magic_numbers['thumbnail_height']
\r
35 @width = Pettanr.to_i(@width/2)
\r
36 @height = Pettanr.to_i(@height/2)
\r
37 @attr['src'] = '/images/loading.gif'
\r
38 @attr['width'] = @width
\r
39 @attr['height'] = @height
\r
40 @attr['alt'] = 'Loading'
\r
41 @attr['title'] = 'Loading'
\r
47 class Pettanr.Views.Common.EmptyCaption extends Backbone.View
\r
52 this.$el.html('empty')
\r
55 class Pettanr.Views.Common.Icon extends Backbone.View
\r
58 initialize: (options) ->
\r
59 @item = options.item
\r
60 @half = options.half
\r
61 @icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})
\r
62 @icon = new Pettanr.Image.Icon({item: @item, half: @half})
\r
63 @icon_button = new Tag.A({
\r
64 attr: {href: '/' + @icon_url},
\r
66 content: @icon.render().el
\r
68 @listenTo(@icon_button, 'click', @click)
\r
71 this.$el.html(@icon_button.render().el)
\r
80 class Pettanr.Views.Common.Caption extends Backbone.View
\r
83 initialize: (options) ->
\r
84 @item = options.item
\r
85 @column_name = options.column_name
\r
86 @length = options.length
\r
87 @name = Pettanr.truncate(@item.get(@column_name), @length)
\r
88 @url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})
\r
89 @linked_name = new Tag.A({
\r
90 attr: {href: '/' + @url},
\r
91 content: _.escape(@name)
\r
93 @listenTo(@linked_name, 'click', @click)
\r
96 this.$el.html(@linked_name.render().el)
\r
105 class Pettanr.Views.Common.IconWithCaption extends Backbone.View
\r
108 initialize: (options) ->
\r
109 @item = options.item
\r
110 @half = options.half
\r
111 @column_name = options.column_name
\r
112 @length = options.length
\r
113 @icon = new Pettanr.Views.Common.Icon({item: @item, half: @half})
\r
114 @caption = new Pettanr.Views.Common.Caption({item: @item, column_name: @column_name, length: @length})
\r
115 @listenTo(@icon, 'click', @click)
\r
116 @listenTo(@caption, 'click', @click)
\r
120 this.$el.append(@icon.render().el)
\r
121 this.$el.append(@caption.render().el)
\r
130 class Pettanr.Views.Common.Summary extends Backbone.View
\r
132 initialize: (options) ->
\r
134 @listenTo(this, 'ready', @render)
\r
137 icon = new Pettanr.Views.Common.LoadIcon()
\r
138 this.$el.html(icon.render().el)
\r
145 class Pettanr.Views.Common.Binder
\r
146 class Pettanr.Views.Common.Binder.Summary extends Pettanr.Views.Common.Summary
\r
148 initialize: (options) ->
\r
150 @item = options.item
\r
151 @visible_t = options.visible_t
\r
152 @visible_column_name = options.visible_column_name
\r
156 @visible = new Tag.Div({
\r
157 content: Pettanr.AppHelper.t_selected_item(@visible_t, @item.get(@visible_column_name))
\r
159 @author = @item.author()
\r
160 @author.fetch({cache: true}).done =>
\r
161 @author_icon_with_caption = @author.icon_with_caption_view(true, 'name', 12)
\r
162 @listenTo(@author_icon_with_caption, 'click', @author_click)
\r
167 this.$el.append(@visible.render().el)
\r
168 this.$el.append(@author_icon_with_caption.render().el)
\r
171 author_click: () ->
\r
172 @trigger('http_get', @author_icon_with_caption.url())
\r
174 class Pettanr.Views.Common.Leaf
\r
175 class Pettanr.Views.Common.Leaf.Summary extends Pettanr.Views.Common.Summary
\r
177 initialize: (options) ->
\r
179 @item = options.item
\r
180 @binder_item_name = options.binder_item_name
\r
181 @destination_item_name = options.destination_item_name
\r
182 @binder_view = new Tag.Span({})
\r
183 @destination_view = new Tag.Span({})
\r
187 @listenTo(this, 'load_binder', @load_destination)
\r
188 @listenTo(this, 'load_destination', @ready)
\r
195 @binder = @item[@binder_item_name]()
\r
196 @binder.fetch({cache: true}).done =>
\r
197 @binder_icon = @binder.icon_view(true)
\r
198 @listenTo(@binder_icon, 'click', @binder_click)
\r
199 @binder_author = @binder.author()
\r
200 @binder_author.fetch({cache: true}).done =>
\r
201 @binder_author_icon_with_caption = @binder_author.icon_with_caption_view(true, 'name', 12)
\r
202 @listenTo(@binder_author_icon_with_caption, 'click', @binder_author_click)
\r
203 @binder_view.$el.append(@binder_icon.render().el)
\r
204 @binder_view.$el.append(@binder_author_icon_with_caption.render().el)
\r
205 @trigger('load_binder')
\r
207 load_destination: () ->
\r
208 @destination = @item[@destination_item_name]()
\r
209 @destination.fetch({cache: true}).done =>
\r
210 @destination_icon = @destination.icon_view(true)
\r
211 @listenTo(@destination_icon, 'click', @destination_click)
\r
212 @destination_author = @destination.author()
\r
213 @destination_author.fetch({cache: true}).done =>
\r
214 @destination_author_icon_with_caption = @destination_author.icon_with_caption_view(true, 'name', 12)
\r
215 @listenTo(@destination_author_icon_with_caption, 'click', @destination_author_click)
\r
216 @destination_view.$el.append(@destination_icon.render().el)
\r
217 @destination_view.$el.append(@destination_author_icon_with_caption.render().el)
\r
218 @trigger('load_destination')
\r
222 this.$el.append(@binder_view.render().el)
\r
223 this.$el.append(@destination_view.render().el)
\r
226 binder_click: () ->
\r
227 @trigger('http_get', @binder_icon.url())
\r
229 destination_click: () ->
\r
230 @trigger('http_get', @destination_icon.url())
\r
232 binder_author_click: () ->
\r
233 @trigger('http_get', @binder_author_icon_with_caption.url())
\r
235 destination_author_click: () ->
\r
236 @trigger('http_get', @destination_author_icon_with_caption.url())
\r