1 class Editor.PanelEditor extends Backbone.View
\r
3 className: 'panel-editor'
\r
5 initialize: (options) ->
\r
6 @panel = options.root_item
\r
7 @operators = options.operators
\r
9 @dialog = new Editor.PanelEditor.Dialog({
\r
10 parent: this, operators: @operators
\r
12 @body = new Pettanr.Views.Panel.Body.Edit({
\r
13 panel: @root_item(),
\r
14 operators: @operators,
\r
17 @dock = new Editor.PanelEditor.Dock({parent: this})
\r
18 @credits = new Pettanr.Views.Panel.ShowModule.Credits({pictures: {}})
\r
20 @body.on('panel:resize', @panel_resize)
\r
21 @listenTo(@dock, 'http_post', @http_post)
\r
22 @listenTo(@dock, 'add:credit', @add_credit)
\r
24 add_credit: (element) ->
\r
25 @credits.add_picture(element.picture())
\r
27 remove_element: (element) ->
\r
32 this.$el.append(@dialog.render().el)
\r
33 @dialog.$el.dialog({
\r
38 this.$el.append(@body.render().el)
\r
39 this.$el.append(@dock.render().el)
\r
40 this.$el.append(@credits.render().el)
\r
41 rb = new Tag.RowBreak()
\r
42 this.$el.append(rb.render().el)
\r
49 w = parseInt(my.width())
\r
50 h = parseInt(my.height())
\r
51 #$(trace + 'width').val(w)
\r
52 #$(trace + 'height').val(h)
\r
55 @dialog.$el.dialog('destroy')
\r
57 http_post: (url, dock) ->
\r
58 @trigger('http_post', url, this) # send editor
\r
61 @listenTo(@panel, 'save:success', @post_success)
\r
62 @listenTo(@panel, 'save:fail', @post_fail)
\r
63 @panel.save(@dock.save_data())
\r
66 post_success: (model, response) ->
\r
67 Pettanr.History.lock_url = null # release editor
\r
68 @trigger('success', model, response)
\r
70 post_fail: (model, response) ->
\r
71 @trigger('fail', response)
\r
77 'editor-' + Pettanr.to_s(@root_item().get('id'))
\r
82 class Editor.PanelEditor.Dialog extends Backbone.View
\r
84 className: 'panel-editor-dialog'
\r
86 initialize: (options) ->
\r
87 @parent = options.parent
\r
88 @operators = options.operators
\r
89 @target_model = options.target_model
\r
90 @history = new Pettanr.Views.History({parent: this})
\r
91 @listenTo(@history, 'http_get', @http_get)
\r
92 @listenTo(@history, 'get', @get)
\r
94 start: (@target_model, params, form) ->
\r
105 this.$el.append(@history.render().el)
\r
106 rb = new Tag.RowBreak()
\r
107 this.$el.append(rb.render().el)
\r
108 this.$el.append(view.el)
\r
110 getter_proxy: () ->
\r
111 proxy = new Pettanr.PickerProxy({operators: @operators})
\r
112 @listenTo(proxy, 'ready', @ready)
\r
113 @listenTo(proxy, 'title', @title)
\r
114 @listenTo(proxy, 'title', @push_history)
\r
115 @listenTo(proxy, 'done', @done)
\r
116 @listenTo(proxy, 'deny', @deny)
\r
119 http_get: (url, form) ->
\r
120 @getter_proxy().http_get(url, form)
\r
122 get: (params, form) ->
\r
123 @getter_proxy().get(params, form)
\r
126 @listenTo(view, 'http_get', @http_get)
\r
127 # @listenTo(view, 'http_post', @http_post)
\r
128 @listenTo(view, 'pick', @pick)
\r
129 if view['is_pickable'] and view.is_pickable()
\r
130 view.add_pick(@target_model)
\r
134 this.$el.dialog('open')
\r
136 deny: (params, form, safe_url) ->
\r
137 @getter_proxy().http_get(safe_url, params, form)
\r
139 push_history: (params, str = null) ->
\r
140 @history.push(params, str)
\r
142 title: (params, str = null) ->
\r
143 t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')
\r
144 this.$el.dialog({title: t})
\r
147 @trigger('pick', item)
\r