@manifest = LocalManifest.manifest().filers[@item_name]\r
@header = new Locmare.FilerModule.Header({'filer': this})\r
@body = new Locmare.FilerModule.Body({'filer': this})\r
+ @listenTo(@header, 'click', @click_header)\r
+ @listenTo(@body, 'click:symbol', @click_symbol)\r
+ @listenTo(@body, 'click:caption', @click_caption)\r
+ @listenTo(@body, 'click:prof', @click_prof)\r
+ @listenTo(@body, 'navigate', @navigate)\r
+ @listenTo(@pager, 'navigate', @navigate) if @pager\r
@render()\r
\r
render: () ->\r
image_dir: () ->\r
'/images/'\r
\r
+ click_header: (url) ->\r
+ @trigger('click:header', url)\r
+ window.router.navigate(url, true)\r
+ \r
+ click_symbol: (item_view) ->\r
+ @trigger('click:symbol', item_view)\r
+ \r
+ click_caption: (item_view) ->\r
+ @trigger('click:caption', item_view)\r
+ \r
+ click_prof: (item_view) ->\r
+ @trigger('click:prof', item_view)\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ window.router.navigate(url, true)\r
+ \r
class Locmare.FilerModule\r
\r
@filer = options.filer\r
@file_header = new Locmare.FilerModule.BodyModule.FileHeader({'body': this})\r
@file_body = new Locmare.FilerModule.BodyModule.FileBody({'body': this})\r
+ @listenTo(@file_body, 'click:symbol', @click_symbol)\r
+ @listenTo(@file_body, 'navigate', @navigate)\r
\r
render: () ->\r
this.$el.append(@file_header.render().el)\r
items: () ->\r
@filer.items\r
\r
+ click_symbol: (symbol_view) ->\r
+ @trigger('click:symbol', symbol_view)\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
class Locmare.FilerModule.BodyModule\r
\r
@file_items = []\r
@file_items = _.map @filer().items, (item) =>\r
fi = @file_item_class()\r
- new fi({'file_body': this, 'item': item})\r
+ file_item_view = new fi({'file_body': this, 'item': item})\r
+ @listenTo(file_item_view, 'click:symbol', @click_symbol)\r
+ @listenTo(file_item_view, 'navigate', @navigate)\r
+ file_item_view\r
@render()\r
-\r
+ \r
render: () ->\r
this.$el.html('')\r
_.each @file_items, (file_item) =>\r
items: () ->\r
@filer().items\r
\r
- template_dir: () ->\r
- @filer().template_dir\r
- \r
- template_file_name: () ->\r
- "file_body"\r
+ click_symbol: (symbol_view) ->\r
+ @trigger('click:symbol', symbol_view)\r
\r
- template_name: () ->\r
- @template_dir() + @template_file_name()\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
\r
class Locmare.FilerModule.BodyModule.FileBodyModule\r
@date = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.DateItemColumnFactory.factory this, @manifest().date, @item\r
@edit = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.EditItemColumnFactory.factory this, @manifest().edit, @item\r
@el.className = 'filer-item filer-item-' + @item.item_name()\r
+ @listenTo(@symbol, 'click:symbol', @click_symbol)\r
+ @listenTo(@caption, 'click:caption', @click_caption)\r
+ @listenTo(@icon, 'click:prof', @click_prof)\r
+ @listenTo(@symbol, 'navigate', @navigate)\r
+ @listenTo(@caption, 'navigate', @navigate)\r
+ @listenTo(@summary, 'navigate', @navigate)\r
+ @listenTo(@icon, 'navigate', @navigate)\r
+ @listenTo(@edit, 'navigate', @navigate)\r
\r
render: () ->\r
if @symbol.is_visible()\r
items: () ->\r
@filer().items\r
\r
- template_dir: () ->\r
- @filer().template_dir\r
+ click_symbol: () ->\r
+ @trigger('click:symbol', this)\r
\r
- template_file_name: () ->\r
- "file_item"\r
+ click_caption: () ->\r
+ @trigger('click:caption', this)\r
\r
- template_name: () ->\r
- @template_dir() + @template_file_name()\r
+ click_prof: (url) ->\r
+ @trigger('click:prof', this)\r
+ @trigger('navigate', url)\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
\r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
\r
render: () ->\r
this\r
\r
+ has_link: () ->\r
+ @my_manifest.link.type != 'none'\r
+ \r
filer: () ->\r
@file_item.filer()\r
\r
is_visible: () ->\r
true\r
\r
- template_dir: () ->\r
- @filer().template_dir + @column_name + '-'\r
- \r
- template_name: () ->\r
- @template_dir() + @template_file_name()\r
- \r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnModule.Default extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnModule.Base\r
initialize: (options) ->\r
super(options)\r
- m = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnModule.DefaultModule\r
- @face = m.FaceFactory.factory this, @my_manifest.face, @item\r
- @link = m.LinkFactory.factory this, @my_manifest.link, @item\r
+ @face = @mdl().FaceFactory.factory this, @my_manifest.face, @item\r
+ @link = @mdl().LinkFactory.factory this, @my_manifest.link, @item\r
+ @listenTo(@face, 'ready:caption', @ready_caption)\r
\r
render: () ->\r
- if @has_link()\r
- this.$el.html(@link.render().el)\r
- @delegateEvents({'click .face': 'show'}) \r
+ icon = new Pettanr.Views.Common.LoadIcon()\r
+ this.$el.html(icon.render().el)\r
+ @face.render() # raise fetch\r
+ this\r
+ \r
+ ready_caption: (caption) ->\r
+ el = if @has_link()\r
+ linked_caption = new Tag.A({\r
+ attr: {href: @link.url()}, \r
+ content: caption\r
+ })\r
+ @listenTo(linked_caption, 'click', @click)\r
+ linked_caption.render().el\r
else\r
- this.$el.html(@face.el)\r
+ caption\r
+ this.$el.html(el)\r
this\r
\r
- has_link: () ->\r
- @my_manifest.link.type != 'none'\r
+ click: () ->\r
+ @trigger('click:caption')\r
+ @trigger('navigate', @link.url())\r
+ false\r
\r
- show: () ->\r
- window.router.navigate(@link.url(), true);\r
- return false\r
+ mdl: () ->\r
+ Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnModule.DefaultModule\r
\r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnModule.DefaultModule\r
\r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnModule.DefaultModule.FaceModule.BaseFace extends Backbone.View\r
- tagName: 'div'\r
- className: 'face'\r
\r
initialize: (options) ->\r
@default_caption = options.default_caption\r
@my_manifest = options.my_manifest\r
@item = options.item\r
- @clear()\r
- @listenTo(@item, 'ready:caption', @render)\r
\r
- clear: () ->\r
- icon = new Pettanr.Views.Common.LoadIcon()\r
- this.$el.html(icon.render().el)\r
+ # not render\r
+ # get caption data and send message\r
+ render: () ->\r
this\r
\r
- render: () ->\r
+ replace_empty: () ->\r
if Pettanr.is_blank(@caption())\r
empty = new Pettanr.Views.Common.EmptyCaption()\r
this.$el.html(empty.render().el)\r
\r
initialize: (options) ->\r
super(options)\r
- @render()\r
\r
- face: () ->\r
- @item.escape(@my_manifest.column_name)\r
- \r
- caption: () ->\r
- @face()\r
+ # not render\r
+ # get caption data and send message\r
+ render: () ->\r
+ caption = Pettanr.Views.Common.replace_empty(@item.escape(@my_manifest.column_name))\r
+ @trigger('ready:caption', caption)\r
\r
\r
initialize: (options) ->\r
super(options)\r
+ \r
+ # not render\r
+ # get caption data and send message\r
+ render: () ->\r
if @item[@method_name()]\r
+ @listenTo(@item, 'ready:caption', @ready_caption)\r
+ # fetch caption by manifest method_name\r
@item[@method_name()]()\r
\r
method_name: () ->\r
@my_manifest.method_name\r
\r
- caption: () ->\r
- @item.caption_text\r
+ ready_caption: (caption) ->\r
+ @trigger('ready:caption', Pettanr.Views.Common.replace_empty(caption))\r
\r
\r
initialize: (options) ->\r
super(options)\r
- @edit_icon = new Pettanr.Image.SymbolImg({\r
- attr: {'src': @edit_img_file_name()}, \r
- half: true\r
- })\r
- url = 'home/configure'\r
- @edit_btn = new Tag.A({\r
- attr: {href: '/' + url}, \r
- handler_name: url,\r
- content: @edit_icon.render().el\r
- })\r
\r
render: () ->\r
this.$el.html('')\r
if @is_own()\r
- this.$el.append(@edit_btn.render().el)\r
+ edit_icon = new Pettanr.Image.SymbolImg({\r
+ attr: {'src': @edit_img_file_name()}, \r
+ half: true\r
+ })\r
+ edit_btn = new Tag.A({\r
+ attr: {href: '/' + @edit_url()}, \r
+ content: edit_icon.render().el\r
+ })\r
+ @listenTo(edit_btn, 'click', @click_edit)\r
+ this.$el.append(edit_btn.render().el)\r
this\r
\r
is_own: () ->\r
edit_img_file_name: () ->\r
@image_dir() + 'edit.png'\r
\r
+ edit_url: () ->\r
+ 'home/configure'\r
+ \r
+ click_edit: () ->\r
+ @trigger('navigate', @edit_url())\r
+ \r
is_visible: () ->\r
true\r
\r
- template_dir: () ->\r
- @filer().template_dir + 'edit-'\r
- \r
- template_file_name: () ->\r
- ""\r
- \r
- template_name: () ->\r
- @template_dir() + @template_file_name()\r
- \r
attr: {'src': @edit_img_file_name()}, \r
half: true\r
})\r
- url = Pettanr.url(@item.table_name(), 'edit', {id: @item.get('id')})\r
@edit_btn = new Tag.A({\r
- attr: {href: '/' + url}, \r
- handler_name: url,\r
+ attr: {href: '/' + @item.edit_url()}, \r
content: @edit_icon.render().el\r
})\r
@remove_icon = new Pettanr.Image.SymbolImg({\r
attr: {'src': @remove_img_file_name()}, \r
half: true\r
})\r
- url = Pettanr.url(@item.table_name(), 'destroy', {id: @item.get('id')})\r
@remove_btn = new Tag.A({\r
- attr: {href: '/' + url}, \r
- handler_name: url,\r
+ attr: {href: '/' + @item.destroy_url()}, \r
content: @remove_icon.render().el\r
})\r
+ @listenTo(@edit_btn, 'click', @click_edit)\r
+ @listenTo(@remove_btn, 'click', @click_remove)\r
\r
render: () ->\r
this.$el.html('')\r
remove_img_file_name: () ->\r
@image_dir() + 'remove.png'\r
\r
+ click_edit: () ->\r
+ @trigger('navigate', @item.edit_url())\r
+ \r
+ click_remove: () ->\r
+ @trigger('navigate', @item.destroy_url())\r
+ \r
\r
initialize: (options) ->\r
super(options)\r
+ mdl = Pettanr.Views[@item.singular()]\r
+ templates = mdl.templates()\r
+ template_class = templates[@template_file_name()]\r
+ @view = new template_class(options)\r
\r
- column_template_file_name: () ->\r
- 'show'\r
- \r
- item_template_file_name: () ->\r
- 'template'\r
- \r
- template_dir: () ->\r
- @item.path_name() + '-'\r
+ render: () ->\r
+ @listenTo(@view, 'navigate', @navigate)\r
+ this.$el.html(@view.render().el)\r
+ this\r
\r
template_file_name: () ->\r
- @my_manifest.template_name()\r
+ @my_manifest.template_name\r
\r
- template_name: () ->\r
- @template_dir() + @template_file_name()\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
\r
this.$el.html(template(args))\r
this\r
\r
- profiler: () ->\r
+ url: () ->\r
controller = Manifest.manifest().controllers[@item.table_name()]\r
action = controller.actions['show']\r
params = {\r
id: @item.get('id'),\r
format: 'prof'\r
}\r
- window.router.navigate(action.url(params), true)\r
- return false\r
+ action.url(params)\r
+ \r
+ click: () ->\r
+ @trigger('click:prof', @url())\r
\r
filer: () ->\r
@file_item.filer()\r
}\r
})\r
a = new Tag.A({\r
- attr: {href: @url()}, \r
+ attr: {href: '/' + @url()}, \r
content: icon.render().el\r
})\r
this.$el.html(a.render().el)\r
- @delegateEvents({\r
- 'click .face': 'profiler',\r
- })\r
+ @listenTo(a, 'click', @click)\r
this\r
\r
- url: () ->\r
- controller = Manifest.manifest().controllers[@item.table_name()]\r
- action = controller.actions['show']\r
- params = {\r
- controller: controller,\r
- action: action,\r
- id: @item.get('id'),\r
- format: 'prof'\r
- }\r
- '/' + action.url(params)\r
- \r
icon_file_name: () ->\r
'/images/prof.gif'\r
\r
render: () ->\r
view = Pettanr.Views[@item.singular()]\r
summary = new view[view.summary()]({item: @item})\r
+ @listenTo(summary, 'navigate', @navigate)\r
this.$el.html(summary.el)\r
this\r
- \r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
render: () ->\r
this\r
\r
+ has_link: () ->\r
+ @my_manifest.link.type != 'none'\r
+ \r
filer: () ->\r
@file_item.filer()\r
\r
is_visible: () ->\r
true\r
\r
- template_dir: () ->\r
- @filer().template_dir + @column_name + '-'\r
+ click: () ->\r
+ # trigger click:symbol event with url\r
\r
- template_name: () ->\r
- @template_dir() + @template_file_name()\r
- \r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.Default extends Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.Base\r
initialize: (options) ->\r
super(options)\r
- m = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.DefaultModule\r
- @face = m.FaceFactory.factory this, @my_manifest.face, @item\r
- @link = m.LinkFactory.factory this, @my_manifest.link, @item\r
+ @face = @mdl().FaceFactory.factory this, @my_manifest.face, @item\r
+ @link = @mdl().LinkFactory.factory this, @my_manifest.link, @item\r
+ @listenTo(@face, 'ready:symbol', @ready_symbol)\r
\r
render: () ->\r
- if @has_link()\r
- this.$el.html(@link.render().el)\r
- @delegateEvents({'click .face': 'show'}) \r
- else\r
- this.$el.html(@face.el)\r
+ icon = new Pettanr.Views.Common.LoadIcon()\r
+ this.$el.html(icon.render().el)\r
+ @face.render() # raise fetch\r
this\r
\r
- has_link: () ->\r
- @my_manifest.link.type != 'none'\r
+ ready_symbol: (symbol) ->\r
+ view = if @has_link()\r
+ linked_symbol = new Tag.A({\r
+ attr: {href: @link.url()}, \r
+ content: symbol.render().el\r
+ })\r
+ @listenTo(linked_symbol, 'click', @click)\r
+ linked_symbol\r
+ else\r
+ symbol\r
+ this.$el.html(view.render().el)\r
+ \r
+ click: () ->\r
+ @trigger('click:symbol')\r
+ @trigger('navigate', @link.url())\r
+ false\r
\r
- show: () ->\r
- window.router.navigate(@link.url(), true)\r
- return false\r
+ mdl: () ->\r
+ Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.DefaultModule\r
\r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.DefaultModule\r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.DefaultModule.FaceModule.BaseFace extends Backbone.View\r
- tagName: 'div'\r
- className: 'face'\r
\r
initialize: (options) ->\r
@default_symbol = options.default_symbol\r
@my_manifest = options.my_manifest\r
@item = options.item\r
- @clear()\r
- @listenTo(@item, 'ready:symbol', @render)\r
- \r
- clear: () ->\r
- icon = new Pettanr.Views.Common.LoadIcon()\r
- this.$el.html(icon.render().el)\r
- this\r
\r
+ # not render\r
+ # get symbol data and send message\r
render: () ->\r
this\r
\r
item_name: () ->\r
@filer().item_name\r
\r
- icon_size: () ->\r
- Manifest.manifest().magic_numbers['thumbnail_width']\r
- \r
\r
initialize: (options) ->\r
super(options)\r
- @picture = new Pettanr.Image.SymbolImg({\r
+ \r
+ # not render\r
+ # get symbol data and send message\r
+ render: () ->\r
+ picture = new Pettanr.Image.SymbolImg({\r
attr: {\r
src: @url()\r
}\r
})\r
- @render()\r
- \r
- render: () ->\r
- this.$el.html(@picture.render().el)\r
- this\r
+ @trigger('ready:symbol', picture)\r
\r
url: () ->\r
@my_manifest.url\r
\r
initialize: (options) ->\r
super(options)\r
- if @item[@method_name()]\r
- @item[@method_name()]()\r
\r
+ # not render\r
+ # get symbol data and send message\r
render: () ->\r
- if @item.symbol_picture\r
- this.$el.html(@item.symbol_picture.render().el)\r
- else\r
- picture = new Pettanr.Image.SymbolImg({\r
- attr: {\r
- src: '/images/error.png'\r
- }\r
- })\r
- this.$el.html(picture.render().el)\r
+ if @item[@method_name()]\r
+ @listenTo(@item, 'ready:symbol', @ready_symbol)\r
+ # fetch symbol by symbol_option\r
+ @item[@method_name()]()\r
this\r
\r
method_name: () ->\r
@my_manifest.method_name\r
\r
+ ready_symbol: (symbol) ->\r
+ @trigger('ready:symbol', symbol)\r
+ \r
initialize: (options) ->\r
super(options)\r
\r
- render: () ->\r
- this.$el.attr('href', @url())\r
- this.$el.html(@face.el)\r
- this\r
- \r
url: () ->\r
controller = Manifest.manifest().controllers[@item.table_name()]\r
action = controller.actions[@my_manifest.action_name]\r
class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnModule.DefaultModule.LinkModule.BaseLink extends Backbone.View\r
- tagName: 'a'\r
\r
initialize: (options) ->\r
@default_symbol = options.default_symbol\r
@my_manifest = options.my_manifest\r
@item = options.item\r
- @face = @default_symbol.face\r
\r
url: () ->\r
raise "undefined url\n"\r
initialize: (options) ->\r
super(options)\r
\r
- render: () ->\r
- this.$el.attr('href', @url())\r
- this.$el.html(@face.el)\r
- this\r
- \r
- js_url: () ->\r
- "javascript:void(0)"\r
- \r
url: () ->\r
@item.get(@my_manifest.column_name)\r
\r
\r
initialize: (options) ->\r
super(options)\r
- @face = new Pettanr.Views[@item.singular()].Symbol({\r
- item: @item\r
- })\r
\r
render: () ->\r
- this.$el.html(@face.render().el)\r
- @delegateEvents({\r
- 'click .face': 'show'\r
+ view = new Pettanr.Views[@item.singular()].Symbol({\r
+ item: @item\r
})\r
+ @listenTo(view, 'click', @click)\r
+ this.$el.html(view.render().el)\r
this\r
\r
- show: () ->\r
- # unique template\r
- window.router.navigate(@url(), true)\r
- return false\r
- \r
- url: () ->\r
- Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+ \r
+ click: () ->\r
+ @trigger('click:symbol')\r
+ @trigger('navigate', @item.show_url())\r
\r
this.$el.html('')\r
icon = new Pettanr.Image.Icon({item: @model(), half: true})\r
caption = Pettanr.AppHelper.t_m(@model().singular())\r
- url = Pettanr.url(@model().table_name(), 'index', {})\r
+ url = @model().index_url()\r
linked_icon = new Tag.A({\r
- attr: {href: '/' + url}, handler_name: url, content: icon.render().el\r
+ attr: {href: '/' + url}, content: icon.render().el\r
})\r
linked_caption = new Tag.A({\r
- attr: {href: '/' + url}, handler_name: url, content: caption\r
+ attr: {href: '/' + url}, content: caption\r
})\r
+ @listenTo(linked_icon, 'click', @click)\r
+ @listenTo(linked_caption, 'click', @click)\r
this.$el.append(linked_icon.render().el)\r
this.$el.append(linked_caption.render().el)\r
this\r
human_name: () ->\r
@model.model_name.human\r
\r
+ click: () ->\r
+ @trigger('click', @model().index_url())\r
+ \r
render: () ->\r
this.$el.html('')\r
if @hasPreviousPage()\r
- this.$el.append(\r
- (new Locmare.ListGroupModule.LibModule.PagerModule.FirstPage({\r
- parent: this, page: 1, class_name: 'first'\r
- })).render().el\r
- )\r
+ view = new Locmare.ListGroupModule.LibModule.PagerModule.FirstPage({\r
+ parent: this, page: 1, class_name: 'first'\r
+ })\r
+ @listenTo(view, 'navigate', @navigate)\r
+ @listenTo(view, 'page', @click)\r
+ this.$el.append(view.render().el)\r
if @hasPreviousPage()\r
- this.$el.append(\r
- (new Locmare.ListGroupModule.LibModule.PagerModule.PrevPage({\r
- parent: this, page: @current_page - 1, class_name: 'prev'\r
- })).render().el\r
- )\r
+ view = new Locmare.ListGroupModule.LibModule.PagerModule.PrevPage({\r
+ parent: this, page: @current_page - 1, class_name: 'prev'\r
+ })\r
+ @listenTo(view, 'navigate', @navigate)\r
+ @listenTo(view, 'page', @click)\r
+ this.$el.append(view.render().el)\r
if @hasPreviousPageGap()\r
this.$el.append(\r
(new Locmare.ListGroupModule.LibModule.PagerModule.PageGap()).render().el\r
)\r
_.each @range(), (page) =>\r
- this.$el.append(\r
- (new Locmare.ListGroupModule.LibModule.PagerModule.Page({\r
- parent: this, page: page, class_name: 'page'\r
- })).render().el\r
- )\r
+ view = new Locmare.ListGroupModule.LibModule.PagerModule.Page({\r
+ parent: this, page: page, class_name: 'page'\r
+ })\r
+ @listenTo(view, 'navigate', @navigate)\r
+ @listenTo(view, 'page', @click)\r
+ this.$el.append(view.render().el)\r
if @hasNextPageGap()\r
this.$el.append(\r
(new Locmare.ListGroupModule.LibModule.PagerModule.PageGap()).render().el\r
)\r
if @hasNextPage()\r
- this.$el.append(\r
- (new Locmare.ListGroupModule.LibModule.PagerModule.NextPage({\r
- parent: this, page: @current_page + 1, class_name: 'next'\r
- })).render().el\r
- )\r
+ view = new Locmare.ListGroupModule.LibModule.PagerModule.NextPage({\r
+ parent: this, page: @current_page + 1, class_name: 'next'\r
+ })\r
+ @listenTo(view, 'navigate', @navigate)\r
+ @listenTo(view, 'page', @click)\r
+ this.$el.append(view.render().el)\r
if @hasNextPage()\r
- this.$el.append(\r
- (new Locmare.ListGroupModule.LibModule.PagerModule.LastPage({\r
- parent: this, page: @total_page, class_name: 'last'\r
- })).render().el\r
- )\r
+ view = new Locmare.ListGroupModule.LibModule.PagerModule.LastPage({\r
+ parent: this, page: @total_page, class_name: 'last'\r
+ })\r
+ @listenTo(view, 'navigate', @navigate)\r
+ @listenTo(view, 'page', @click)\r
+ this.$el.append(view.render().el)\r
rb = new Tag.RowBreak()\r
this.$el.append(rb.render().el)\r
this\r
params['page_size'] = @per_page\r
@action.url params\r
\r
+ click: (page) ->\r
+ @trigger('page', page)\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
class Locmare.ListGroupModule.LibModule.PagerModule.Part extends Backbone.View\r
tagName: 'li'\r
\r
@el.className = options.class_name\r
\r
render: () ->\r
- url = @parent.url(@page)\r
if @page == @parent.current_page\r
this.$el.html(@content())\r
else\r
linked_caption = new Tag.A({\r
- attr: {href: '/' + url}, \r
- handler_name: url,\r
+ attr: {href: '/' + @url()}, \r
content: @content()\r
})\r
+ @listenTo(linked_caption, 'click', @click)\r
this.$el.html(linked_caption.render().el)\r
this\r
\r
content: () ->\r
''\r
\r
+ url: () ->\r
+ @parent.url(@page)\r
+ \r
+ click: () ->\r
+ @trigger('page', @page)\r
+ @trigger('navigate', @url())\r
+ \r
class Locmare.ListGroupModule.LibModule.PagerModule.FirstPage extends Locmare.ListGroupModule.LibModule.PagerModule.Part\r
\r
content: () ->\r
'<<'\r
\r
+ click: () ->\r
+ @trigger('page', @page)\r
+ @trigger('navigate', @url())\r
+ \r
class Locmare.ListGroupModule.LibModule.PagerModule.PrevPage extends Locmare.ListGroupModule.LibModule.PagerModule.Part\r
\r
content: () ->\r
caption = new Tag.Div({class_name: 'caption', content: 'belongs_to'})\r
this.$el.append(caption.render().el)\r
_.each @belongs_to, (f) =>\r
+ @listenTo(f, 'navigate', @navigate)\r
this.$el.append(f.render().el)\r
caption = new Tag.Div({class_name: 'caption', content: 'has_many'})\r
this.$el.append(caption.render().el)\r
_.each @has_many, (f) =>\r
+ @listenTo(f, 'navigate', @navigate)\r
this.$el.append(f.render().el)\r
caption = new Tag.Div({class_name: 'caption', content: 'has_one'})\r
this.$el.append(caption.render().el)\r
_.each @has_one, (f) =>\r
+ @listenTo(f, 'navigate', @navigate)\r
this.$el.append(f.render().el)\r
this\r
\r
model_manifest: () ->\r
Manifest.manifest().models[@profiler.item_name]\r
\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
class Locmare.ProfilerModule.AssociationModule\r
\r
pager: null, \r
operators: @profiler().operators\r
})\r
+ @listenTo(@filer, 'navigate', @navigate)\r
@render()\r
\r
render: () ->\r
profiler: () ->\r
@association.profiler\r
\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
pager: @pager, \r
operators: @profiler().operators\r
})\r
+ @listenTo(@filer, 'navigate', @navigate)\r
@render()\r
)\r
\r
\r
profiler: () ->\r
@association.profiler\r
+ \r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
\r
pager: @pager, \r
operators: @profiler().operators\r
})\r
+ @listenTo(@filer, 'navigate', @navigate)\r
@render()\r
)\r
\r
profiler: () ->\r
@association.profiler\r
\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
pager: @pager, \r
operators: @profiler.operators\r
})\r
+ @listenTo(@filer, 'navigate', @navigate)\r
\r
render: () ->\r
this.$el.html(@filer.el)\r
this\r
\r
+ navigate: (url) ->\r
+ @trigger('navigate', url)\r
+ \r
sbt.fetch({cache: true}).done =>\r
sp = sbt.system_picture()\r
sp.fetch({cache: true}).done =>\r
- @symbol_picture = sp.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', sp.tmb_opt_img_tag())\r
\r
initialize: () ->\r
if @id\r
@get('name').replace(/\/$/, '').split('/').pop()\r
\r
filer_caption: () ->\r
- @caption_text = _.escape(@caption())\r
- @trigger('ready:caption')\r
+ caption = _.escape(@caption())\r
+ @trigger('ready:caption', caption)\r
\r
is_remote: () ->\r
if @get('category_id') == 10\r
symbol_option: () ->\r
i = @picture()\r
i.fetch({cache: true}).done =>\r
- @symbol_picture = i.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', i.tmb_opt_img_tag())\r
\r
repeat_text: () ->\r
Pettanr.GroundPicture.repeat_texts()[@get('repeat')]\r
symbol_option: () ->\r
i = @system_picture()\r
i.fetch({cache: true}).done =>\r
- @symbol_picture = i.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', i.tmb_opt_img_tag())\r
\r
caption_with_group: () ->\r
i = @license_group()\r
i.fetch({cache: true}).done =>\r
- @caption_text = i.escape('caption') + '/' + @escape('caption')\r
- @trigger('ready:caption')\r
+ caption = i.escape('caption') + '/' + @escape('caption')\r
+ @trigger('ready:caption', caption)\r
\r
initialize: () ->\r
if @id\r
\r
symbol_option: () ->\r
@fetch({cache: true}).done =>\r
- @symbol_picture = @tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', @tmb_opt_img_tag())\r
\r
filer_caption: () ->\r
history = @history()\r
history.fetch({cache: true}).done =>\r
- @caption_text = if _.isEmpty(history.models)\r
+ caption = if _.isEmpty(history.models)\r
'unpublished'\r
else\r
head = _.first(history.models)\r
Pettanr.to_s(head.get('revision'))\r
- @trigger('ready:caption')\r
+ @trigger('ready:caption', caption)\r
\r
revision: () ->\r
new Pettanr.OriginalPicture.Head({original_picture: this})\r
symbol_option: () ->\r
i = @picture()\r
i.fetch({cache: true}).done =>\r
- @symbol_picture = i.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', i.tmb_opt_img_tag())\r
\r
element_face: () ->\r
new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
\r
symbol_option: () ->\r
@fetch({cache: true}).done =>\r
- @symbol_picture = @tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', @tmb_opt_img_tag())\r
\r
credit_icon_view: () ->\r
new Pettanr.Views.ResourcePicture.CreditIcon({item: this})\r
sbt.fetch({cache: true}).done =>\r
sp = sbt.system_picture()\r
sp.fetch({cache: true}).done =>\r
- @symbol_picture = sp.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', sp.tmb_opt_img_tag())\r
\r
text_align_text: () ->\r
Pettanr.Speech.text_align_texts()[@get('text_align')]\r
sbt.fetch({cache: true}).done =>\r
sp = sbt.system_picture()\r
sp.fetch({cache: true}).done =>\r
- @symbol_picture = sp.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', sp.tmb_opt_img_tag())\r
\r
filer_caption: () ->\r
@fetch({cache: true}).done =>\r
- @caption_text = @escape('caption')\r
- @trigger('ready:caption')\r
+ caption = @escape('caption')\r
+ @trigger('ready:caption', caption)\r
\r
plain_scenario: () ->\r
@get('caption')\r
symbol_option: () ->\r
i = @system_picture()\r
i.fetch({cache: true}).done =>\r
- @symbol_picture = i.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', i.tmb_opt_img_tag())\r
\r
parsed_settings: () ->\r
JSON.parse(@get('settings'))\r
\r
symbol_option: () ->\r
@fetch({cache: true}).done =>\r
- @symbol_picture = @tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', @tmb_opt_img_tag())\r
\r
initialize: () ->\r
if @id\r
symbol_option: () ->\r
i = @system_picture()\r
i.fetch({cache: true}).done =>\r
- @symbol_picture = i.tmb_opt_img_tag()\r
- @trigger('ready:symbol')\r
+ @trigger('ready:symbol', i.tmb_opt_img_tag())\r
\r
initialize: () ->\r
if @id\r
icon_view: (half) ->\r
new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half})\r
\r
+ @index_url: () ->\r
+ Pettanr.url(@table_name(), 'index', {id: null})\r
+ \r
index_url: () ->\r
- Pettanr.url(@table_name(), 'index', {id: @get('id')})\r
+ @my_class().index_url()\r
+ \r
+ list_url: (action_name = 'index') ->\r
+ Pettanr.url(@table_name(), action_name, {id: @get('id')})\r
\r
show_url: () ->\r
Pettanr.url(@table_name(), 'show', {id: @get('id')})\r
}\r
super(opt)\r
\r
+class Pettanr.Image.SymbolImg.Error extends Pettanr.Image.SymbolImg\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ options ||= {}\r
+ options.attr ||= {}\r
+ options.attr.src ||= '/images/error.png'\r
+ \r
# controller only case\r
# ex) scrolls\r
c: (controller, query_string) ->\r
- params = @c_i_params(controller, query_string)\r
+ params = @c_params(controller, query_string)\r
@fire(params)\r
\r
c_params: (controller, query_string) ->\r
class Pettanr.Views.GroundPicture extends Pettanr.Views.Base\r
class Pettanr.Views.GroundColor extends Pettanr.Views.Base\r
class Pettanr.Views.OriginalPicture extends Pettanr.Views.Base\r
+ @templates: () ->\r
+ {publish: Pettanr.Views.OriginalPicture.Publish}\r
class Pettanr.Views.Picture extends Pettanr.Views.Base\r
class Pettanr.Views.ResourcePicture extends Pettanr.Views.Base\r
class Pettanr.Views.OriginalPictureLicenseGroup extends Pettanr.Views.Base\r
panel = @speech_balloon.panel()\r
panel.fetch({cache: true}).done =>\r
@panel_icon = new Pettanr.Views.Common.Icon({item: panel, half: true})\r
+ @listenTo(@panel_icon, 'click', @panel_click)\r
author = panel.author()\r
author.fetch({cache: true}).done =>\r
@author_icon_with_caption = author.icon_with_caption_view(true, 'name', 12)\r
+ @listenTo(@author_icon_with_caption, 'click', @author_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@author_icon_with_caption.render().el)\r
this\r
\r
+ panel_click: () ->\r
+ @trigger('navigate', @panel_icon.url())\r
+ \r
+ author_click: () ->\r
+ @trigger('navigate', @author_icon_with_caption.url())\r
+ \r
class Pettanr.Views.Common\r
+ @replace_empty: (caption) ->\r
+ if Pettanr.is_blank(caption)\r
+ empty = new Pettanr.Views.Common.EmptyCaption()\r
+ empty.render().el\r
+ else\r
+ caption\r
+ \r
class Pettanr.Views.Common.LoadIcon extends Tag.Img\r
\r
initialize: () ->\r
@author = @item.author()\r
@author.fetch({cache: true}).done =>\r
@author_icon_with_caption = @author.icon_with_caption_view(true, 'name', 12)\r
+ @listenTo(@author_icon_with_caption, 'click', @author_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@author_icon_with_caption.render().el)\r
this\r
\r
+ author_click: () ->\r
+ @trigger('navigate', @author_icon_with_caption.url())\r
+ \r
class Pettanr.Views.Common.Leaf\r
class Pettanr.Views.Common.Leaf.Summary extends Pettanr.Views.Common.Summary\r
\r
@item = options.item\r
@binder_item_name = options.binder_item_name\r
@destination_item_name = options.destination_item_name\r
+ @binder_view = new Tag.Span({})\r
+ @destination_view = new Tag.Span({})\r
@load()\r
\r
load: () ->\r
+ @listenTo(this, 'load_binder', @load_destination)\r
+ @listenTo(this, 'load_destination', @ready)\r
+ @load_binder()\r
+ \r
+ ready: () ->\r
+ @trigger('ready')\r
+ \r
+ load_binder: () ->\r
@binder = @item[@binder_item_name]()\r
@binder.fetch({cache: true}).done =>\r
@binder_icon = @binder.icon_view(true)\r
+ @listenTo(@binder_icon, 'click', @binder_click)\r
@binder_author = @binder.author()\r
@binder_author.fetch({cache: true}).done =>\r
@binder_author_icon_with_caption = @binder_author.icon_with_caption_view(true, 'name', 12)\r
- @trigger('ready')\r
+ @listenTo(@binder_author_icon_with_caption, 'click', @binder_author_click)\r
+ @binder_view.$el.append(@binder_icon.render().el)\r
+ @binder_view.$el.append(@binder_author_icon_with_caption.render().el)\r
+ @trigger('load_binder')\r
+ \r
+ load_destination: () ->\r
@destination = @item[@destination_item_name]()\r
@destination.fetch({cache: true}).done =>\r
@destination_icon = @destination.icon_view(true)\r
+ @listenTo(@destination_icon, 'click', @destination_click)\r
@destination_author = @destination.author()\r
@destination_author.fetch({cache: true}).done =>\r
@destination_author_icon_with_caption = @destination_author.icon_with_caption_view(true, 'name', 12)\r
- @trigger('ready')\r
+ @listenTo(@destination_author_icon_with_caption, 'click', @destination_author_click)\r
+ @destination_view.$el.append(@destination_icon.render().el)\r
+ @destination_view.$el.append(@destination_author_icon_with_caption.render().el)\r
+ @trigger('load_destination')\r
\r
render: () ->\r
this.$el.html('')\r
- if @binder_author_icon_with_caption\r
- this.$el.append(@binder_icon.render().el)\r
- this.$el.append(@binder_author_icon_with_caption.render().el)\r
- if @destination_author_icon_with_caption\r
- this.$el.append(@destination_icon.render().el)\r
- this.$el.append(@destination_author_icon_with_caption.render().el)\r
+ this.$el.append(@binder_view.render().el)\r
+ this.$el.append(@destination_view.render().el)\r
this\r
\r
+ binder_click: () ->\r
+ @trigger('navigate', @binder_icon.url())\r
+ \r
+ destination_click: () ->\r
+ @trigger('navigate', @destination_icon.url())\r
+ \r
+ binder_author_click: () ->\r
+ @trigger('navigate', @binder_author_icon_with_caption.url())\r
+ \r
+ destination_author_click: () ->\r
+ @trigger('navigate', @destination_author_icon_with_caption.url())\r
+ \r
panel = @item.panel()\r
panel.fetch({cache: true}).done =>\r
@panel_icon = new Pettanr.Views.Common.Icon({item: panel, half: true})\r
+ @listenTo(@panel_icon, 'click', @panel_click)\r
author = panel.author()\r
author.fetch({cache: true}).done =>\r
@author_icon_with_caption = author.icon_with_caption_view(true, 'name', 12)\r
+ @listenTo(@author_icon_with_caption, 'click', @author_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@author_icon_with_caption.render().el)\r
this\r
\r
+ panel_click: () ->\r
+ @trigger('navigate', @panel_icon.url())\r
+ \r
+ author_click: () ->\r
+ @trigger('navigate', @author_icon_with_caption.url())\r
+ \r
class Pettanr.Views.GroundColor.Symbol extends Backbone.View\r
tagName: 'div'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
\r
initialize: (options) ->\r
@item = options.item\r
@class_name = options.class_name || 'face'\r
\r
+ clear: () ->\r
+ @trigger('ready:symbol', symbol_picture)\r
+ this\r
+ \r
render: () ->\r
this.$el.addClass(@class_name)\r
this.$el.html(@fore_color())\r
'background-color': '#' + @bg_color()\r
}\r
\r
+ click: () ->\r
+ @trigger('click')\r
+ \r
panel = @item.panel()\r
panel.fetch({cache: true}).done =>\r
@panel_icon = new Pettanr.Views.Common.Icon({item: panel, half: true})\r
+ @listenTo(@panel_icon, 'click', @panel_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@panel_icon.render().el)\r
this\r
\r
+ panel_click: () ->\r
+ @trigger('navigate', @panel_icon.url())\r
+ \r
--- /dev/null
+class Pettanr.Views.OriginalPicture.Publish extends Backbone.View\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ @file_item = options.file_item\r
+ @my_manifest = options.my_manifest\r
+ @item = options.item\r
+ # if item.resource_picture\r
+ # @resource_picture.destroy_url()\r
+ @stop_btn = new Tag.A({\r
+ attr: {href: '/' + @item.destroy_url()}, \r
+ content: I18n.t('original_pictures.index.stop')\r
+ })\r
+ @edit_icon = new Pettanr.Image.SymbolImg({\r
+ attr: {'src': @edit_img_file_name()}, \r
+ half: true\r
+ })\r
+ @edit_btn = new Tag.A({\r
+ attr: {href: '/' + @item.edit_url()}, \r
+ content: @edit_icon.render().el\r
+ })\r
+ @remove_icon = new Pettanr.Image.SymbolImg({\r
+ attr: {'src': @remove_img_file_name()}, \r
+ half: true\r
+ })\r
+ @remove_btn = new Tag.A({\r
+ attr: {href: '/' + @item.destroy_url()}, \r
+ content: @remove_icon.render().el\r
+ })\r
+ @listenTo(@edit_btn, 'click', @click_edit)\r
+ @listenTo(@remove_btn, 'click', @click_remove)\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ if @is_own()\r
+ this.$el.append(@stop_btn.render().el)\r
+ this.$el.append(@edit_btn.render().el)\r
+ this.$el.append(@remove_btn.render().el)\r
+ this\r
+ \r
+ is_own: () ->\r
+ if @item.is_own(@filer().operators)\r
+ true\r
+ else\r
+ false\r
+ \r
+ filer: () ->\r
+ @file_item.filer()\r
+ \r
+ manifest: () ->\r
+ @filer().manifest\r
+ \r
+ item_name: () ->\r
+ @filer().item_name\r
+ \r
+ image_dir: () ->\r
+ @filer().image_dir()\r
+ \r
+ edit_img_file_name: () ->\r
+ @image_dir() + 'edit.png'\r
+ \r
+ remove_img_file_name: () ->\r
+ @image_dir() + 'remove.png'\r
+ \r
if ra = @item.get('resource_picture')\r
resource_picture = new Pettanr.ResourcePicture(ra)\r
@credit = resource_picture.credit_view(true)\r
+ @listenTo(@credit, 'click:icon', @resource_picture_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(rb.render().el)\r
this\r
\r
+ # in credit\r
+ resource_picture_click: (resource_picture) ->\r
+ @trigger('navigate', resource_picture.show_url())\r
+ \r
panel = @item.panel()\r
panel.fetch({cache: true}).done =>\r
@panel_icon = new Pettanr.Views.Common.Icon({item: panel, half: true})\r
+ @listenTo(@panel_icon, 'click', @panel_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@panel_icon.render().el)\r
this\r
\r
+ panel_click: () ->\r
+ @trigger('navigate', @panel_icon.url())\r
+ \r
@author = @item.author()\r
@author.fetch({cache: true}).done =>\r
@author_icon_with_caption = @author.icon_with_caption_view(true, 'name', 12)\r
+ @listenTo(@author_icon_with_caption, 'click', @author_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@author_icon_with_caption.render().el)\r
this\r
\r
+ author_click: () ->\r
+ @trigger('navigate', @author_icon_with_caption.url())\r
+ \r
panel = @item.panel()\r
panel.fetch({cache: true}).done =>\r
@panel_icon = new Pettanr.Views.Common.Icon({item: panel, half: true})\r
+ @listenTo(@panel_icon, 'click', @panel_click)\r
author = panel.author()\r
author.fetch({cache: true}).done =>\r
@author_icon_with_caption = author.icon_with_caption_view(true, 'name', 12)\r
+ @listenTo(@author_icon_with_caption, 'click', @author_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@author_icon_with_caption.render().el)\r
this\r
\r
+ panel_click: () ->\r
+ @trigger('navigate', @panel_icon.url())\r
+ \r
+ author_click: () ->\r
+ @trigger('navigate', @author_icon_with_caption.url())\r
+ \r
panel = @speech_balloon.panel()\r
panel.fetch({cache: true}).done =>\r
@panel_icon = new Pettanr.Views.Common.Icon({item: panel, half: true})\r
+ @listenTo(@panel_icon, 'click', @panel_click)\r
author = panel.author()\r
author.fetch({cache: true}).done =>\r
@author_icon_with_caption = author.icon_with_caption_view(true, 'name', 12)\r
+ @listenTo(@author_icon_with_caption, 'click', @author_click)\r
@trigger('ready')\r
\r
render: () ->\r
this.$el.append(@author_icon_with_caption.render().el)\r
this\r
\r
+ panel_click: () ->\r
+ @trigger('navigate', @panel_icon.url())\r
+ \r
+ author_click: () ->\r
+ @trigger('navigate', @author_icon_with_caption.url())\r
+ \r