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.EmptyIcon extends Tag.Img
\r
31 initialize: (options) ->
\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'] = @file_name()
\r
38 @attr['width'] = @width
\r
39 @attr['height'] = @height
\r
40 @attr['alt'] = 'Loading'
\r
41 @attr['title'] = 'Loading'
\r
50 class Pettanr.Views.Common.LoadIcon extends Pettanr.Views.Common.EmptyIcon
\r
53 '/images/loading.gif'
\r
55 class Pettanr.Views.Common.RootIcon extends Pettanr.Views.Common.EmptyIcon
\r
60 class Pettanr.Views.Common.EmptyCaption extends Backbone.View
\r
65 this.$el.html('empty')
\r
68 class Pettanr.Views.Common.Icon extends Backbone.View
\r
71 initialize: (options) ->
\r
72 @item = options.item
\r
73 @half = options.half
\r
74 @icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})
\r
75 @icon = new Pettanr.Image.Icon({item: @item, half: @half})
\r
76 @icon_button = new Tag.A({
\r
77 attr: {href: '/' + @icon_url},
\r
79 content: @icon.render().el
\r
81 @listenTo(@icon_button, 'click', @click)
\r
84 this.$el.html(@icon_button.render().el)
\r
93 class Pettanr.Views.Common.Caption extends Backbone.View
\r
96 initialize: (options) ->
\r
97 @item = options.item
\r
98 @column_name = options.column_name
\r
99 @length = options.length
\r
100 @name = Pettanr.truncate(@item.get(@column_name), @length)
\r
101 @url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})
\r
102 @linked_name = new Tag.A({
\r
103 attr: {href: '/' + @url},
\r
104 content: _.escape(@name)
\r
106 @listenTo(@linked_name, 'click', @click)
\r
109 this.$el.html(@linked_name.render().el)
\r
118 class Pettanr.Views.Common.IconWithCaption extends Backbone.View
\r
121 initialize: (options) ->
\r
122 @item = options.item
\r
123 @half = options.half
\r
124 @column_name = options.column_name
\r
125 @length = options.length
\r
126 @icon = new Pettanr.Views.Common.Icon({item: @item, half: @half})
\r
127 @caption = new Pettanr.Views.Common.Caption({item: @item, column_name: @column_name, length: @length})
\r
128 @listenTo(@icon, 'click', @click)
\r
129 @listenTo(@caption, 'click', @click)
\r
133 this.$el.append(@icon.render().el)
\r
134 this.$el.append(@caption.render().el)
\r
143 class Pettanr.Views.Common.Summary extends Backbone.View
\r
145 initialize: (options) ->
\r
147 @listenTo(this, 'ready', @render)
\r
150 icon = new Pettanr.Views.Common.LoadIcon()
\r
151 this.$el.html(icon.render().el)
\r
158 class Pettanr.Views.Common.Binder
\r
159 class Pettanr.Views.Common.Binder.Summary extends Pettanr.Views.Common.Summary
\r
161 initialize: (options) ->
\r
163 @item = options.item
\r
164 @visible_t = options.visible_t
\r
165 @visible_column_name = options.visible_column_name
\r
169 @visible = new Tag.Div({
\r
170 content: Pettanr.AppHelper.t_selected_item(@visible_t, @item.get(@visible_column_name))
\r
172 @empty_author = @item.author()
\r
173 @author = Pettanr.cache.restore(@empty_author)
\r
175 # got cached author
\r
178 # built empty author
\r
179 @author = @empty_author
\r
180 @author.fetch({cache: true}).done =>
\r
181 Pettanr.cache.store(@author)
\r
186 this.$el.append(@visible.render().el)
\r
187 this.$el.append(@author_icon_with_caption.render().el)
\r
190 render_author: () ->
\r
191 @author_icon_with_caption = @author.icon_with_caption_view(true, 'name', 12)
\r
192 @listenTo(@author_icon_with_caption, 'click', @author_click)
\r
195 author_click: () ->
\r
196 @trigger('http_get', @author_icon_with_caption.url())
\r
198 class Pettanr.Views.Common.Leaf
\r
199 class Pettanr.Views.Common.Leaf.Summary extends Pettanr.Views.Common.Summary
\r
201 initialize: (options) ->
\r
203 @item = options.item
\r
204 @binder_item_name = options.binder_item_name
\r
205 @destination_item_name = options.destination_item_name
\r
206 @binder_view = new Tag.Span({})
\r
207 @destination_view = new Tag.Span({})
\r
211 @listenTo(this, 'load_binder', @load_destination)
\r
212 @listenTo(this, 'load_destination', @ready)
\r
219 @binder = @item[@binder_item_name]()
\r
220 @binder.fetch({cache: true}).done =>
\r
221 @binder_icon = @binder.icon_view(true)
\r
222 @listenTo(@binder_icon, 'click', @binder_click)
\r
223 @binder_author = @binder.author()
\r
224 @binder_author.fetch({cache: true}).done =>
\r
225 @binder_author_icon_with_caption = @binder_author.icon_with_caption_view(true, 'name', 12)
\r
226 @listenTo(@binder_author_icon_with_caption, 'click', @binder_author_click)
\r
227 @binder_view.$el.append(@binder_icon.render().el)
\r
228 @binder_view.$el.append(@binder_author_icon_with_caption.render().el)
\r
229 @trigger('load_binder')
\r
231 load_destination: () ->
\r
232 @destination = @item[@destination_item_name]()
\r
233 @destination.fetch({cache: true}).done =>
\r
234 @destination_icon = @destination.icon_view(true)
\r
235 @listenTo(@destination_icon, 'click', @destination_click)
\r
236 @destination_author = @destination.author()
\r
237 @destination_author.fetch({cache: true}).done =>
\r
238 @destination_author_icon_with_caption = @destination_author.icon_with_caption_view(true, 'name', 12)
\r
239 @listenTo(@destination_author_icon_with_caption, 'click', @destination_author_click)
\r
240 @destination_view.$el.append(@destination_icon.render().el)
\r
241 @destination_view.$el.append(@destination_author_icon_with_caption.render().el)
\r
242 @trigger('load_destination')
\r
246 this.$el.append(@binder_view.render().el)
\r
247 this.$el.append(@destination_view.render().el)
\r
250 binder_click: () ->
\r
251 @trigger('http_get', @binder_icon.url())
\r
253 destination_click: () ->
\r
254 @trigger('http_get', @destination_icon.url())
\r
256 binder_author_click: () ->
\r
257 @trigger('http_get', @binder_author_icon_with_caption.url())
\r
259 destination_author_click: () ->
\r
260 @trigger('http_get', @destination_author_icon_with_caption.url())
\r