@set_model()\r
retriever = new Pettanr.Cache.Retriever(@my_model_class, @params['id'])\r
@listenTo(retriever, 'retrieve', @render_edit)\r
+ @listenTo(retriever, 'fail', (response, opt) =>\r
+ @trigger('fail', response, opt)\r
+ )\r
retriever.edit(options)\r
\r
render_edit: (@item) ->\r
})\r
show.render()\r
@trigger('ready', show)\r
+ fail: (response, opt) =>\r
+ @trigger('fail', response, opt)\r
})\r
@trigger('done', @params)\r
\r
Pettanr.Folder.Root.retrieve(null, this, {\r
success: (@item) => \r
@children_html()\r
+ fail: (response, opt) => \r
+ @trigger('fail', response, opt)\r
force: true\r
})\r
\r
folder.retrieve(this, {\r
success: (@item) => \r
@render_show()\r
+ fail: (response, opt) => \r
+ @trigger('fail', response, opt)\r
force: true\r
})\r
\r
children_html: () -> \r
@trigger('title', @params, @item.get('name'))\r
collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
- collection.fetch({cache: true}).done =>\r
- filer = new Locmare.Filer({\r
- item_name: 'folder', \r
- items: collection.models, \r
- pager: null, \r
- })\r
- filer.render()\r
- @trigger('ready', filer)\r
- @trigger('done', @params)\r
+ collection.fetch({\r
+ success: (models, response, opt) =>\r
+ filer = new Locmare.Filer({\r
+ item_name: 'folder', \r
+ items: collection.models, \r
+ pager: null, \r
+ })\r
+ filer.render()\r
+ @trigger('ready', filer)\r
+ @trigger('done', @params)\r
+ error: (item, response, opt) =>\r
+ @trigger('fail', response, opt)\r
+ })\r
\r
count: () ->\r
\r
\r
show_html: () -> \r
@item = @item.play() # retake panel for 'with_elements' mode\r
- @item.fetch({cache: false}).done =>\r
- @item.attributes = @item.decoded_attributes()\r
- @trigger('title', @params, @item.get('caption'))\r
- show = new Pettanr.Views.Panel.Show(@item, {\r
- spot: null\r
- })\r
- show.render()\r
- @trigger('ready', show)\r
- @trigger('done', @params)\r
+ @item.fetch({\r
+ cache: false\r
+ success: (@parent_item, response, opt) =>\r
+ @item.attributes = @item.decoded_attributes()\r
+ @trigger('title', @params, @item.get('caption'))\r
+ show = new Pettanr.Views.Panel.Show(@item, {\r
+ spot: null\r
+ })\r
+ show.render()\r
+ @trigger('ready', show)\r
+ @trigger('done', @params)\r
+ error: (item, response, opt) =>\r
+ @trigger('fail', response, opt)\r
+ })\r
\r
count: () ->\r
\r
success: (@item) ->\r
@item.boosts 'post'\r
@render_form()\r
+ fail: (response, opt) ->\r
+ @trigger('fail', response, opt)\r
})\r
\r
render_form: () ->\r
@listenTo(show, 'dialog:close', @close_dialog)\r
show.render()\r
@trigger('ready', show)\r
+ fail: (response, opt) =>\r
+ @trigger('fail', response, opt)\r
})\r
@trigger('done', @params)\r
\r
})\r
show.render()\r
@trigger('ready', show)\r
+ fail: (response, opt) =>\r
+ @trigger('fail', response, opt)\r
})\r
@trigger('done', @params)\r
\r
})\r
show.render()\r
@trigger('ready', show)\r
+ fail: (response, opt) =>\r
+ @trigger('fail', response, opt)\r
})\r
@trigger('done', @params)\r
\r
success: (@parent_item) =>\r
@set_filer()\r
@render()\r
+ fail: (response, opt) =>\r
+ @open_error_dialog(response, opt)\r
})\r
this\r
\r
class Pettanr.Panel.Edit extends Pettanr.Panel.Play\r
\r
load: (options) ->\r
- @fetch().done =>\r
- @attributes = @decoded_attributes()\r
- @load_elements(options)\r
+ @fetch({\r
+ success: (model, response, opt) => \r
+ @attributes = @decoded_attributes()\r
+ @load_elements(options)\r
+ error: (item, response, opt) =>\r
+ options.fail.call(options.context, response, opt)\r
+ })\r
\r
save: (attrs) ->\r
@url = @default_url()\r
options.success.call(options.context, this)\r
return\r
item = items.shift()\r
- item.fetch().done =>\r
- @_load_elements(items, options)\r
+ item.fetch({\r
+ success: (model, response, opt) => \r
+ @_load_elements(items, options)\r
+ error: (item, response, opt) =>\r
+ options.fail.call(options.context, response, opt)\r
+ })\r
\r
decoded_attributes: () ->\r
attributes = {}\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
)\r
@listenTo(retriever, 'fail', (response, opt) =>\r
callback = options.fail\r
- callback.call(context, response, options)\r
+ callback.call(context, response, opt)\r
)\r
retriever.retrieve(options.force)\r
\r
#item\r
\r
sync: (item) ->\r
- item.fetch().done =>\r
- item.expire_time.setTime(Date.now() + 10 * 60 * 1000)\r
+ item.fetch({\r
+ success: (model, response, opt) =>\r
+ item.expire_time.setTime(Date.now() + 10 * 60 * 1000)\r
+ error: (model, response, opt) =>\r
+ @trigger('fail', response, opt)\r
+ })\r
\r
class Pettanr.Cache.Retriever\r
\r
@trigger('retrieve', empty_item)\r
\r
retrieve_force: (item) ->\r
- item.fetch().done =>\r
- @trigger('retrieve', item)\r
+ item.fetch({\r
+ success: (model, response, opt) =>\r
+ @trigger('retrieve', item)\r
+ error: (model, response, opt) =>\r
+ @trigger('fail', response, opt)\r
+ })\r
\r
edit: (options = {}) ->\r
empty_item = new @model({id: @id})\r
item = empty_item.hold()\r
- if options.with_elements\r
- item = item.with_elements()\r
- item.fetch().done =>\r
- if options.with_elements\r
- item.attributes = item.replaced_attributes({hold: true})\r
- @trigger('retrieve', item)\r
+ item.fetch({\r
+ success: (model, response, opt) =>\r
+ @trigger('retrieve', item)\r
+ error: (model, response, opt) =>\r
+ @trigger('fail', response, opt)\r
+ })\r
\r
options.content = content\r
new Tag.Span(options)\r
\r
+ open_error_dialog: (response, options) ->\r
+ error_dialog = new Editor.Error.Dialog({parent: this})\r
+ this.$el.append(error_dialog.render().el)\r
+ error_dialog.$el.dialog({\r
+ autoOpen: false,\r
+ resizable: false,\r
+ width: 500, \r
+ height: 600,\r
+ modal: true,\r
+ buttons: {\r
+ close: () ->\r
+ $(@).dialog('close')\r
+ }\r
+ })\r
+ error_dialog.start(response, options)\r
+ \r
@replace_empty: (caption) ->\r
if Pettanr.is_blank(caption)\r
empty = new Pettanr.View.EmptyDiv()\r
})\r
this\r
\r
- error_dialog_close: () ->\r
- @error_dialog.stop()\r
- \r
init_operators: (user) ->\r
author = new Pettanr.Author(user.get('author')) if user.get('author')\r
artist = new Pettanr.Artist(user.get('artist')) if user.get('artist')\r
pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
_.each items, (panel) =>\r
panel = panel.play() # retake panel for 'with_elements' mode\r
- panel.fetch({cache: false}).done =>\r
- panel.attributes = panel.decoded_attributes()\r
- body = new Pettanr.Views.Panel.Body({\r
- panel: panel,\r
- spot: null\r
- })\r
- @trigger('ready', panel)\r
- this.$el.append(body.render().el)\r
+ panel.fetch({\r
+ success: (model, response, opt) => \r
+ panel.attributes = panel.decoded_attributes()\r
+ body = new Pettanr.Views.Panel.Body({\r
+ panel: panel,\r
+ spot: null\r
+ })\r
+ @trigger('ready', panel)\r
+ this.$el.append(body.render().el)\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
})\r
this\r
\r
@speech_balloon.get_parent('panel', this, {\r
success: (item) =>\r
@panel = item.play()\r
- @panel.fetch().done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- @authored_by = @panel.authored_by()\r
- @body = new Pettanr.Views.Panel.Body({\r
- panel: @panel,\r
- spot: @item\r
- })\r
- @listenTo(@header, 'click:pick', @click_pick)\r
- @listenTo(@authored_by, 'click', @click_authored_by)\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@authored_by.render().el)\r
- this.$el.append(@body.render().el)\r
- @add_credits()\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ @authored_by = @panel.authored_by()\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: @item\r
+ })\r
+ @listenTo(@header, 'click:pick', @click_pick)\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
+ this.$el.append(@body.render().el)\r
+ @add_credits()\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
})\r
})\r
this\r
@item.get_parent('panel', this, {\r
success: (item) =>\r
@panel = item.play()\r
- @panel.fetch().done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- @authored_by = @panel.authored_by()\r
- @body = new Pettanr.Views.Panel.Body({\r
- panel: @panel,\r
- spot: @item\r
- })\r
- @listenTo(@header, 'click:pick', @click_pick)\r
- @listenTo(@authored_by, 'click', @click_authored_by)\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@authored_by.render().el)\r
- this.$el.append(@body.render().el)\r
- @add_credits()\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ @authored_by = @panel.authored_by()\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: @item\r
+ })\r
+ @listenTo(@header, 'click:pick', @click_pick)\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
+ this.$el.append(@body.render().el)\r
+ @add_credits()\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
})\r
this\r
\r
@item.get_parent('panel', this, {\r
success: (item) =>\r
@panel = item.play()\r
- @panel.fetch().done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- @authored_by = @panel.authored_by()\r
- @body = new Pettanr.Views.Panel.Body({\r
- panel: @panel,\r
- spot: @item\r
- })\r
- @listenTo(@header, 'click:pick', @click_pick)\r
- @listenTo(@authored_by, 'click', @click_authored_by)\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@authored_by.render().el)\r
- this.$el.append(@body.render().el)\r
- @add_credits()\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ @authored_by = @panel.authored_by()\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: @item\r
+ })\r
+ @listenTo(@header, 'click:pick', @click_pick)\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
+ this.$el.append(@body.render().el)\r
+ @add_credits()\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
})\r
this\r
\r
@item.get_parent('panel', this, {\r
success: (item) =>\r
@panel = item.play()\r
- @panel.fetch().done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- @authored_by = @panel.authored_by()\r
- @body = new Pettanr.Views.Panel.Body({\r
- panel: @panel,\r
- spot: @item\r
- })\r
- @listenTo(@header, 'click:pick', @click_pick)\r
- @listenTo(@authored_by, 'click', @click_authored_by)\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@authored_by.render().el)\r
- this.$el.append(@body.render().el)\r
- @add_credits()\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ @authored_by = @panel.authored_by()\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: @item\r
+ })\r
+ @listenTo(@header, 'click:pick', @click_pick)\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
+ this.$el.append(@body.render().el)\r
+ @add_credits()\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
})\r
this\r
\r
render: () ->\r
this.$el.html('')\r
@panel = @panel.play() # retake panel for 'with_elements' mode\r
- @panel.fetch({cache: true}).done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- body = new Pettanr.Views.Scroll.PlayModule.PanelBody({\r
- panel: @panel\r
- })\r
- @footer_switch = new Pettanr.Views.Scroll.PlayModule.FooterSwitch({\r
- scroll_panel: @scroll_panel,\r
- panel: @panel\r
- })\r
- @listenTo(@footer_switch, 'click', @click_footer_switch)\r
- move_to = new Tag.A({\r
- attr: {href: '/' + @scroll_panel.edit_url()},\r
- content: I18n.t('scroll_panels.player.move_to')\r
- })\r
- @insert_point = new Pettanr.Views.Scroll.PlayModule.InsertPoint({\r
- class_name: 'insert-point', content: move_to.render().el\r
- })\r
- @footer = new Pettanr.Views.Scroll.PlayModule.Footer({\r
- scroll: @scroll,\r
- scroll_panel: @scroll_panel,\r
- panel: @panel,\r
- })\r
- @listenTo(move_to, 'click', @click_move_to)\r
- @listenTo(@footer, 'click:panel', @click_show)\r
- @listenTo(@footer, 'click:author', @click_author)\r
- @listenTo(@footer, 'click:insert', @click_insert)\r
- @listenTo(@footer, 'click:move', @click_move)\r
- @listenTo(@footer, 'click:edit', @click_edit)\r
- @listenTo(@footer, 'click:destroy', @click_destroy)\r
- this.$el.append(@insert_point.clear().el)\r
- @append_rb()\r
- this.$el.append(body.render().el)\r
- this.$el.append(@footer_switch.render().el)\r
- this.$el.append(@footer.render().el)\r
- @trigger('ready', @panel)\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ body = new Pettanr.Views.Scroll.PlayModule.PanelBody({\r
+ panel: @panel\r
+ })\r
+ @footer_switch = new Pettanr.Views.Scroll.PlayModule.FooterSwitch({\r
+ scroll_panel: @scroll_panel,\r
+ panel: @panel\r
+ })\r
+ @listenTo(@footer_switch, 'click', @click_footer_switch)\r
+ move_to = new Tag.A({\r
+ attr: {href: '/' + @scroll_panel.edit_url()},\r
+ content: I18n.t('scroll_panels.player.move_to')\r
+ })\r
+ @insert_point = new Pettanr.Views.Scroll.PlayModule.InsertPoint({\r
+ class_name: 'insert-point', content: move_to.render().el\r
+ })\r
+ @footer = new Pettanr.Views.Scroll.PlayModule.Footer({\r
+ scroll: @scroll,\r
+ scroll_panel: @scroll_panel,\r
+ panel: @panel,\r
+ })\r
+ @listenTo(move_to, 'click', @click_move_to)\r
+ @listenTo(@footer, 'click:panel', @click_show)\r
+ @listenTo(@footer, 'click:author', @click_author)\r
+ @listenTo(@footer, 'click:insert', @click_insert)\r
+ @listenTo(@footer, 'click:move', @click_move)\r
+ @listenTo(@footer, 'click:edit', @click_edit)\r
+ @listenTo(@footer, 'click:destroy', @click_destroy)\r
+ this.$el.append(@insert_point.clear().el)\r
+ @append_rb()\r
+ this.$el.append(body.render().el)\r
+ this.$el.append(@footer_switch.render().el)\r
+ this.$el.append(@footer.render().el)\r
+ @trigger('ready', @panel)\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
this\r
\r
hide: () ->\r
@item.get_parent('panel', this, {\r
success: (item) =>\r
@panel = item.play()\r
- @panel.fetch().done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- @authored_by = @panel.authored_by()\r
- @body = new Pettanr.Views.Panel.Body({\r
- panel: @panel,\r
- spot: @item\r
- })\r
- @listenTo(@authored_by, 'click', @click_authored_by)\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@authored_by.render().el)\r
- this.$el.append(@body.render().el)\r
- @add_credits()\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ @authored_by = @panel.authored_by()\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: @item\r
+ })\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
+ this.$el.append(@body.render().el)\r
+ @add_credits()\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
})\r
this\r
\r
@speech_balloon.get_parent('panel', this, {\r
success: (item) =>\r
@panel = item.play()\r
- @panel.fetch().done =>\r
- @panel.attributes = @panel.decoded_attributes()\r
- @authored_by = @panel.authored_by()\r
- @body = new Pettanr.Views.Panel.Body({\r
- panel: @panel,\r
- spot: @item\r
- })\r
- @listenTo(@header, 'click:pick', @click_pick)\r
- @listenTo(@authored_by, 'click', @click_authored_by)\r
- this.$el.append(@header.render().el)\r
- this.$el.append(@authored_by.render().el)\r
- this.$el.append(@body.render().el)\r
- @add_credits()\r
+ @panel.fetch({\r
+ success: (model, response, opt) => \r
+ @panel.attributes = @panel.decoded_attributes()\r
+ @authored_by = @panel.authored_by()\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ spot: @item\r
+ })\r
+ @listenTo(@header, 'click:pick', @click_pick)\r
+ @listenTo(@authored_by, 'click', @click_authored_by)\r
+ this.$el.append(@header.render().el)\r
+ this.$el.append(@authored_by.render().el)\r
+ this.$el.append(@body.render().el)\r
+ @add_credits()\r
+ error: (item, response, opt) =>\r
+ @open_error_dialog(response, opt)\r
+ })\r
+ fail: (response, opt) =>\r
+ @open_error_dialog(response, opt)\r
})\r
})\r
this\r