else\r
@item_name()\r
\r
- _label: (label_column_name, shorten_length = null) ->\r
- shorten_length ||= @constructor.default_label_shorten_length\r
- Pettanr.truncate(@get(label_column_name), shorten_length)\r
+ _label: (label_column_name, options) ->\r
+ shorten = options.shorten\r
+ l = if _.isBoolean(shorten)\r
+ if shorten\r
+ # supply default shorten_length\r
+ @constructor.default_label_shorten_length\r
+ else\r
+ # False be no shorten\r
+ null\r
+ else\r
+ # numeric\r
+ shorten\r
+ Pettanr.truncate(@get(label_column_name), l)\r
\r
- label: (shorten_length = null) ->\r
+ label: (options) ->\r
''\r
\r
get_association: (routes, context, options) ->\r
@listenTo(retriever, 'retrieve', (item) =>\r
options.success.call(context, item)\r
)\r
+ @listenTo(retriever, 'fail', (response, opt) =>\r
+ options.fail.call(context, response, opt)\r
+ )\r
retriever.retrieve()\r
\r
get_child: (has_one_name, context, options = null) ->\r
callback = options.success\r
callback.call(context, item)\r
)\r
+ @listenTo(retriever, 'fail', (response, opt) =>\r
+ callback = options.fail\r
+ callback.call(context, response, opt)\r
+ )\r
retriever.retrieve(options.force)\r
\r
@pick_item_name: () ->\r
options.success.call(context, symbol_item.symbol_file())\r
})\r
\r
- face_file: () ->\r
+ @face_file: () ->\r
new Pettanr.ImageFile('/images/' + @item_name() + '.gif')\r
\r
+ face_file: () ->\r
+ @my_class().face_file()\r
+ \r
# thumbnail size picture\r
symbol_file: (subdir) ->\r
new Pettanr.PictureFile(this, subdir)\r
mini_symbol_button: (options) ->\r
Pettanr.View.mini_face_button(this, @symbol_file(), options)\r
\r
- label_button: (options) ->\r
- url = options.url || @show_url()\r
- new Pettanr.View.Button(url, _.escape(@label()), options)\r
- \r
- faced_label: (options) ->\r
- new Pettanr.View.FacedLabel(this, options)\r
- \r
- mini_faced_label: (options) ->\r
- new Pettanr.View.MiniFacedLabel(this, options)\r
+ # pencil button\r
+ edit_button: (options) ->\r
+ icon = new Pettanr.View.Icon(Pettanr.View.Image.icon_edit_file())\r
+ Pettanr.View.any_button(this, @edit_url(), icon, options)\r
+ \r
+ mini_edit_button: (options) ->\r
+ icon = new Pettanr.View.Minicon(Pettanr.View.Image.icon_edit_file())\r
+ Pettanr.View.mini_any_button(this, @edit_url(), icon, options)\r
+ \r
+ # x button\r
+ destroy_button: (options) ->\r
+ icon = new Pettanr.View.Icon(Pettanr.View.Image.icon_destroy_file())\r
+ Pettanr.View.any_button(this, @destroy_url(), icon, options)\r
+ \r
+ mini_destroy_button: (options) ->\r
+ icon = new Pettanr.View.Minicon(Pettanr.View.Image.icon_destroy_file())\r
+ Pettanr.View.mini_any_button(this, @destroy_url(), icon, options)\r
+ \r
+ label_button: (label_options, button_options) ->\r
+ url = button_options.url || @show_url()\r
+ new Pettanr.View.Button(url, _.escape(@label(label_options)), button_options)\r
+ \r
+ # faced_label_button({\r
+ # shorten: true\r
+ # }, {\r
+ # url: @show_url(),\r
+ # context: this,\r
+ # click: () =>\r
+ # # ...\r
+ # })\r
+ faced_label_button: (label_options, button_options) ->\r
+ new Pettanr.View.FacedLabelButton(this, label_options, button_options)\r
+ \r
+ mini_faced_label_button: (label_options, button_options) ->\r
+ new Pettanr.View.MiniFacedLabelButton(this, label_options, button_options)\r
+ \r
+ summary: (context, options) ->\r
+ klass = Pettanr.Views[@singular()].Summary\r
+ new klass(this, context, options)\r
\r
@index_url: () ->\r
Pettanr.url(@table_name(), 'index', {id: null})\r
release: () ->\r
Pettanr.cache.release(this)\r
\r
+ free: () ->\r
+ Pettanr.cache.free(this)\r
+ \r
save: (model_attr) ->\r
super(model_attr || @attributes, {\r
success: (model, response, options) =>\r
destroy: () ->\r
super({\r
success: (model, response, options) =>\r
+ @free()\r
@trigger('destroy:success', model, response)\r
error: (model, response, options) =>\r
@trigger('destroy:fail', model, response)\r