@engine_name() + '/speeches'\r
\r
class Pettanr.CircleSpeechBalloon.SpeechBalloonModule\r
- supply_default: () ->\r
- super()\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @speech_balloon_template_module_name = sbt.get('module_name')\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
\r
speech_balloon_extend: () ->\r
@new_speech_balloon() if not @sbex\r
@sbex.supply_default()\r
\r
class Pettanr.CircleSpeechBalloon.BalloonModule\r
- supply_default: () ->\r
- super()\r
- s = @parsed_settings()['all']['balloon']\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
@set({\r
x: 0,\r
y: 0,\r
eight: @parsed_settings()['speech_balloon']['default_height'],\r
r: @parsed_settings()['speech_balloon']['default_r']\r
})\r
+ @select_system_picture()\r
\r
balloon_extend: () ->\r
@new_balloon() if not @bex\r
\r
parsed_settings: () ->\r
return @parsed if @parsed\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @parsed = sbt.parsed_settings()\r
+ @parsed = @templates.speech_balloon_template.parsed_settings()\r
\r
select_system_picture: () ->\r
tr = @get('r') % 360\r
@parsed_settings()['speech_balloon']['r_step']\r
\r
class Pettanr.CircleSpeechBalloon.SpeechModule\r
- supply_default: () ->\r
- super()\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
s = @parsed_settings()['0']['speech']\r
@set({\r
x: s['x_rate'],\r
\r
parsed_settings: () ->\r
return @parsed if @parsed\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @parsed = sbt.parsed_settings()\r
+ @parsed = @templates.speech_balloon_template.parsed_settings()\r
\r
arrayed_quotes: () ->\r
q = if Pettanr.is_blank(@get('quotes'))\r
@engine_name() + '/speeches'\r
\r
class Pettanr.PlainSpeechBalloon.SpeechBalloonModule\r
- supply_default: () ->\r
- super()\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @speech_balloon_template_module_name = sbt.get('module_name')\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
\r
speech_balloon_extend: () ->\r
@new_speech_balloon() if not @sbex\r
\r
new_speech_balloon: (params = {}) -> \r
@sbex = new Pettanr.PlainSpeechBalloon.SpeechBalloon(params)\r
- @sbex.supply_default()\r
\r
class Pettanr.PlainSpeechBalloon.BalloonModule\r
- supply_default: () ->\r
- super()\r
- s = @parsed_settings()['all']['balloon']\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
@set({\r
x: 0,\r
y: 0,\r
eight: @parsed_settings()['speech_balloon']['default_height'],\r
r: 0\r
})\r
+ @select_system_picture()\r
\r
balloon_extend: () ->\r
@new_balloon() if not @bex\r
\r
parsed_settings: () ->\r
return @parsed if @parsed\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @parsed = sbt.parsed_settings()\r
+ @parsed = @templates.speech_balloon_template.parsed_settings()\r
\r
select_system_picture: () ->\r
s = @parsed_settings()['all']['balloon']\r
sid\r
\r
class Pettanr.PlainSpeechBalloon.SpeechModule\r
- supply_default: () ->\r
- super()\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
s = @parsed_settings()['all']['speech']\r
@set({\r
x: s['x_rate'],\r
\r
parsed_settings: () ->\r
return @parsed if @parsed\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @parsed = sbt.parsed_settings()\r
+ @parsed = @templates.speech_balloon_template.parsed_settings()\r
\r
arrayed_quotes: () ->\r
q = if Pettanr.is_blank(@get('quotes'))\r
@engine_name() + '/speeches'\r
\r
class Pettanr.SquareSpeechBalloon.SpeechBalloonModule\r
- supply_default: () ->\r
- super()\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @speech_balloon_template_module_name = sbt.get('module_name')\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
\r
speech_balloon_extend: () ->\r
@new_speech_balloon() if not @sbex\r
@sbex.supply_default()\r
\r
class Pettanr.SquareSpeechBalloon.BalloonModule\r
- supply_default: () ->\r
- super()\r
- s = @parsed_settings()['all']['balloon']\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
@set({\r
x: 0,\r
y: 0,\r
eight: @parsed_settings()['speech_balloon']['default_height'],\r
r: 0\r
})\r
+ @select_system_picture()\r
\r
balloon_extend: () ->\r
@new_balloon() if not @bex\r
\r
parsed_settings: () ->\r
return @parsed if @parsed\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @parsed = sbt.parsed_settings()\r
+ @parsed = @templates.speech_balloon_template.parsed_settings()\r
\r
select_system_picture: () ->\r
s = @parsed_settings()['all']['balloon']\r
sid\r
\r
class Pettanr.SquareSpeechBalloon.SpeechModule\r
- supply_default: () ->\r
- super()\r
+ supply_default: (templates) ->\r
+ @templates = templates\r
s = @parsed_settings()['all']['speech']\r
@set({\r
x: s['x_rate'],\r
\r
parsed_settings: () ->\r
return @parsed if @parsed\r
- sbt = @speech_balloon_template()\r
- sbt.fetch({cache: true}).done =>\r
- @parsed = sbt.parsed_settings()\r
+ @parsed = @templates.speech_balloon_template.parsed_settings()\r
\r
arrayed_quotes: () ->\r
q = if Pettanr.is_blank(@get('quotes'))\r
\r
@body.on('panel:resize', @panel_resize)\r
@listenTo(@dock, 'http_post', @http_post)\r
+ @listenTo(@dock, 'add:element', @add_element)\r
@listenTo(@dock, 'add:credit', @add_credit)\r
\r
+ add_element: (element) ->\r
+ @body.add_element(element)\r
+ \r
add_credit: (element) ->\r
@credits.add_picture(element.picture())\r
\r
remove_element: (element) ->\r
- \r
+ @body.remove_element(element)\r
\r
render: () ->\r
this.$el.html('')\r
@get(params, form)\r
\r
stop: () ->\r
+ @dialog().$el.dialog('close')\r
\r
render: () ->\r
this.$el.html('')\r
if view['is_pickable'] and view.is_pickable()\r
view.add_pick(@target_model)\r
@refresh(view)\r
+ this.$el.dialog('open')\r
\r
done: (params) ->\r
- this.$el.dialog('open')\r
\r
lock: (params) ->\r
console.log('_lock')\r
\r
pick: (new_item) ->\r
t = @scenario_bay.length()\r
- new_item.set({t: t}, {silent: true})\r
+ z = @element_bay.new_tab.label.z() + 1\r
+ new_item.set({z: z, t: t}, {silent: true})\r
@scenario_bay.add_element(new_item)\r
+ @trigger('add:element', new_item)\r
\r
res[tab.label.z()] = tab.label\r
res\r
\r
- add_label: (label) ->\r
- #z = label.z\r
- @labels.push(label) # insert array\r
- @render() # sorting\r
- label.add_label()\r
- \r
bay: () ->\r
@parent.parent\r
\r
@init_fields()\r
\r
render: () ->\r
- if @item.isNew()\r
- method_type = 'post'\r
- action_url = @item.create_url()\r
- else\r
- method_type = 'put'\r
- action_url = @item.edit_url()\r
@attr = {\r
- method: method_type,\r
- action: action_url\r
+ method: @method_type(),\r
+ action: @action_url()\r
}\r
this.$el.attr(@attr)\r
this.$el.html('')\r
c = @submit_class()\r
@div_submit = new c({form: this})\r
this.$el.append(@div_submit.render().el)\r
- @delegateEvents({'submit': method_type})\r
+ @delegateEvents({'submit': @method_type()})\r
this\r
\r
refresh: () ->\r
_.each @child_forms, (child_form, name) =>\r
child_form.refresh()\r
\r
+ method_type: () ->\r
+ if @item.isNew()\r
+ 'post'\r
+ else\r
+ 'put'\r
+ \r
+ action_url: () ->\r
+ return null if !@submit # element has not create actions\r
+ if @item.isNew()\r
+ @item.create_url()\r
+ else\r
+ @item.edit_url()\r
+ \r
add_element: (element) ->\r
form = Locmare.Form.factory({\r
form_name: element.item_name(), \r
r: 0\r
} \r
\r
+ pick: (templates) ->\r
+ # \r
+ speech_balloon_template = templates.speech_balloon_template\r
+ {\r
+ speech_balloon_template_id: speech_balloon_template.get('id'),\r
+ speech_balloon_template_module_name: speech_balloon_template.get('module_name'),\r
+ speech_balloon_template_settings: speech_balloon_template.get('settings')\r
+ }\r
+ \r
speech_balloon: () ->\r
new Pettanr.SpeechBalloon({id: @get('speech_balloon_id')})\r
\r
sp.fetch({cache: true}).done =>\r
@trigger('ready:symbol', sp.tmb_opt_img_tag())\r
\r
- initialize: () ->\r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
@bind('change:width', () ->\r
@has_picture: () ->\r
false\r
\r
+ @pick_item_name: () ->\r
+ ''\r
+ \r
+ @pick_model: () ->\r
+ Manifest.item_name_to_model(@pick_item_name())\r
+ \r
+ @traceable_item_names: () ->\r
+ []\r
+ \r
+ @is_traceable: (item_name) ->\r
+ _.contains(@traceable_item_names(), item_name)\r
+ \r
panel: (options = {}) ->\r
new Pettanr.Panel({id: @get('panel_id')}, options)\r
\r
element_face: () ->\r
new Pettanr.Views.GroundColor.ElementFace({element: this})\r
\r
- initialize: () ->\r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
\r
@repeat_texts: () -> \r
['repeat', 'repeat-x', 'repeat-y', 'no-repeat']\r
\r
+ @pick_item_name: () ->\r
+ 'resource_picture'\r
+ \r
+ @pick_model: () ->\r
+ Manifest.item_name_to_model(@pick_item_name())\r
+ \r
+ @traceable_item_names: () ->\r
+ ['panel_picture', 'picture']\r
+ \r
+ @is_traceable: (item_name) ->\r
+ _.contains(@traceable_item_names(), item_name)\r
+ \r
+ trace_from_panel_picture: () ->\r
+ \r
+ trace_from_picture: () ->\r
+ \r
+ pick: (picked_item) ->\r
+ {picture_id: picked_item.get('picture_id')}\r
+ \r
panel: (options = {}) ->\r
new Pettanr.Panel({id: @get('panel_id')}, options)\r
\r
element_face: () ->\r
new Pettanr.Views.GroundPicture.ElementFace({element: this})\r
\r
- initialize: () ->\r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
\r
id: null\r
} \r
\r
- @pick: () ->\r
- \r
@pick_item_name: () ->\r
'resource_picture'\r
\r
\r
trace_from_picture: () ->\r
\r
+ pick: (picked_item) ->\r
+ {\r
+ picture_id: picked_item.get('picture_id'),\r
+ width: picked_item.get('width'),\r
+ height: picked_item.get('height')\r
+ }\r
+ \r
picture: () ->\r
new Pettanr.Picture({id: @get('picture_id')})\r
\r
element_face: () ->\r
new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
\r
- initialize: () ->\r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
@bind('change:width', () ->\r
height: 100\r
} \r
\r
+ pick: (templates) ->\r
+ # \r
+ speech_balloon_template = templates.speech_balloon_template\r
+ writing_format = templates.writing_format\r
+ {\r
+ speech_balloon_template_id: speech_balloon_template.get('id'),\r
+ speech_balloon_template_module_name: speech_balloon_template.get('module_name'),\r
+ speech_balloon_template_settings: speech_balloon_template.get('settings')\r
+ writing_format_id: writing_format.get('id'),\r
+ writing_format_module_name: writing_format.get('module_name'),\r
+ writing_format_template_settings: writing_format.get('settings')\r
+ }\r
+ \r
speech_balloon: () ->\r
new Pettanr.SpeechBalloon({id: @get('speech_balloon_id')})\r
\r
+ writing_format: () ->\r
+ new Pettanr.WritingFormat({id: @get('writing_format_id')})\r
+ \r
@text_align_texts: () -> \r
['left', 'left', 'right', 'center']\r
\r
@render(@escape('content'))\r
\r
\r
- initialize: () ->\r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
\r
t: null\r
} \r
\r
+ @pick_item_name: () ->\r
+ 'speech_balloon_template'\r
+ \r
+ @pick_model: () ->\r
+ Manifest.item_name_to_model(@pick_item_name())\r
+ \r
+ @traceable_item_names: () ->\r
+ ['speech', 'balloon']\r
+ \r
+ @is_traceable: (item_name) ->\r
+ _.contains(@traceable_item_names(), item_name)\r
+ \r
+ trace_from_speech: () ->\r
+ \r
+ trace_from_balloon: () ->\r
+ \r
+ pick: (templates) ->\r
+ # \r
+ speech_balloon_template = templates.speech_balloon_template\r
+ {\r
+ speech_balloon_template_id: speech_balloon_template.get('id'),\r
+ speech_balloon_template_module_name: speech_balloon_template.get('module_name'),\r
+ speech_balloon_template_settings: speech_balloon_template.get('settings')\r
+ }\r
+ \r
panel: (options = {}) ->\r
new Pettanr.Panel({id: @get('panel_id')}, options)\r
\r
element_face: () ->\r
new Pettanr.Views.SpeechBalloon.ElementFace({element: this})\r
\r
- initialize: () ->\r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
\r
initialize: (attr = {}, options = {}) ->\r
super(attr, options)\r
@expire_time = options.expire_time\r
+ @boosters = {}\r
\r
@child_models: () ->\r
@my_manifest().child_models()\r
@boost boost_manifest\r
\r
boost: (boost_manifest) ->\r
- @boosters ||= {}\r
@boosters[boost_manifest.name] = new Locmare.Booster(boost_manifest, this)\r
# fetched item is not cleared . force write booster\r
#@boosters[boost_manifest.name] ||= new Locmare.Booster(boost_manifest, this)\r
\r
- boosters: () ->\r
- @boosters ||= {}\r
- \r
is_extend_column: (column_name) ->\r
@is_extend_column column_name\r
\r
\r
initialize: (options) ->\r
@parent = options.parent\r
- @model = options.model\r
- params = {\r
- controller: @model.path_name(), action: 'index',\r
- page_size: 6, format: 'pick'\r
- }\r
- @dialog().get(params, null)\r
- \r
- render: () ->\r
- this.$el.html(@img.clear().el)\r
+ @target_model = options.target_model\r
+ @pick_model = @target_model.pick_model()\r
+ \r
+ clear: () ->\r
+ this.$el.html('new or inspire')\r
+ this\r
+ \r
+ render: (form) ->\r
+ this.$el.html('')\r
+ this.$el.append(@form.render().el)\r
this\r
\r
+ pick: (item) ->\r
+ if item.item_name() == @target_model.item_name()\r
+ # Inspire\r
+ new_item = new @target_model(item.attributes)\r
+ else if @target_model.is_traceable(item.item_name())\r
+ # Trace\r
+ n = @target_model['trace_from_' + item.item_name()]\r
+ n()\r
+ else if item.item_name() == @target_model.pick_item_name()\r
+ # Pick\r
+ model = @target_model.pick_model()\r
+ new_item = new model()\r
+ @dialog().stop()\r
+ @set_form(new_item)\r
+ @trigger('pick', new_item)\r
+ \r
+ set_form: (item) ->\r
+ @form = Locmare.Form.factory({\r
+ form_name: item.item_name(), \r
+ use_name: 'default' \r
+ item: item, \r
+ element_form: true, \r
+ submit: null, \r
+ operators: @editor().operators,\r
+ })\r
+ \r
dock: () ->\r
@parent.dock()\r
\r
\r
initialize: (options) ->\r
@parent = options.parent\r
- @model = options.model\r
+ @target_model = options.target_model\r
+ @pick_model = @target_model.pick_model()\r
+ \r
+ clear: () ->\r
+ this.$el.html('')\r
params = {\r
- controller: @model.path_name(), action: 'index',\r
- page_size: 6, format: 'pick'\r
+ controller: @pick_model.path_name(), action: 'index',\r
+ page_size: 6, format: 'html'\r
}\r
- @dialog().get(params, null)\r
+ @dialog().start(@target_model, params, null)\r
+ @listenTo(@dialog(), 'pick', @pick)\r
+ this\r
\r
render: () ->\r
- this.$el.html(@img.clear().el)\r
+ this.$el.html('')\r
this\r
\r
+ pick: (item) ->\r
+ if item.item_name() == @target_model.item_name()\r
+ # Inspire\r
+ new_item = new @target_model(item.attributes)\r
+ else if @target_model.is_traceable(item.item_name())\r
+ # Trace\r
+ n = @target_model['trace_from_' + item.item_name()]\r
+ n()\r
+ else if item.item_name() == @target_model.pick_item_name()\r
+ # Pick resource_picture to ground_picture\r
+ new_item = new @target_model()\r
+ new_item.set(new_item.pick(item), {silent: true})\r
+ @dialog().stop()\r
+ @trigger('pick', new_item)\r
+ \r
dock: () ->\r
@parent.dock()\r
\r
clear: () ->\r
this.$el.html('')\r
params = {\r
- controller: @target_model.path_name(), action: 'index',\r
+ controller: @pick_model.path_name(), action: 'index',\r
page_size: 6, format: 'html'\r
}\r
@dialog().start(@target_model, params, null)\r
@listenTo(@dialog(), 'pick', @pick)\r
this\r
\r
- render: (form) ->\r
+ render: () ->\r
this.$el.html('')\r
- this.$el.append(@form.render().el)\r
this\r
\r
pick: (item) ->\r
n = @target_model['trace_from_' + item.item_name()]\r
n()\r
else if item.item_name() == @target_model.pick_item_name()\r
- # Pick\r
- model = @target_model.pick_model()\r
- new_item = new model()\r
- @dialog().$el.dialog('option', 'hide')\r
+ # Pick resource_picture to panel_picture\r
+ new_item = new @target_model()\r
+ new_item.set(new_item.pick(item), {silent: true})\r
@dialog().stop()\r
- @set_form(new_item)\r
@trigger('pick', new_item)\r
\r
- set_form: (item) ->\r
- @form = Locmare.Form.factory({\r
- form_name: item.item_name(), \r
- use_name: 'default' \r
- item: item, \r
- element_form: true, \r
- submit: null, \r
- operators: @editor().operators,\r
- })\r
- \r
dock: () ->\r
@parent.dock()\r
\r
\r
initialize: (options) ->\r
@parent = options.parent\r
- @model = options.model\r
+ @target_model = options.target_model\r
+ @pick_model = @target_model.pick_model()\r
+ \r
+ clear: () ->\r
+ this.$el.html('')\r
params = {\r
- controller: @model.path_name(), action: 'index',\r
- page_size: 6, format: 'pick'\r
+ controller: @pick_model.path_name(), action: 'index',\r
+ page_size: 6, format: 'html'\r
}\r
- @dialog().get(params, null)\r
+ @dialog().start(@target_model, params, null)\r
+ @listenTo(@dialog(), 'pick', @pick)\r
+ this\r
\r
render: () ->\r
- this.$el.html(@img.clear().el)\r
+ this.$el.html('')\r
this\r
\r
+ pick: (item) ->\r
+ @listenTo(this, 'ready', @ready)\r
+ if item.item_name() == @target_model.item_name()\r
+ # Inspire\r
+ new_item = new @target_model(item.attributes)\r
+ @trigger('ready', new_item)\r
+ else if @target_model.is_traceable(item.item_name())\r
+ # Trace\r
+ n = @target_model['trace_from_' + item.item_name()]\r
+ n()\r
+ else if item.item_name() == @target_model.pick_item_name()\r
+ # Pick\r
+ speech_balloon_template = item\r
+ writing_format = new Pettanr.WritingFormat({id: 1})\r
+ writing_format.fetch({cache: true}).done =>\r
+ templates = {\r
+ speech_balloon_template: speech_balloon_template,\r
+ writing_format: writing_format\r
+ }\r
+ new_item = new @target_model()\r
+ new_item.set(new_item.pick(templates), {silent: true})\r
+ new_item.boosts 'post'\r
+ new_item.supply_default(templates)\r
+ # prepare balloon\r
+ balloon = new Pettanr.Balloon()\r
+ balloon.set(balloon.pick(templates), {silent: true})\r
+ balloon.boosts 'post'\r
+ balloon.supply_default(templates)\r
+ # prepare speech\r
+ speech = new Pettanr.Speech()\r
+ speech.set(speech.pick(templates), {silent: true})\r
+ speech.boosts 'post'\r
+ speech.supply_default(templates)\r
+ # join elements\r
+ new_item.set({balloon: balloon, speech: speech}, {silent: true})\r
+ @trigger('ready', new_item)\r
+ \r
+ ready: (new_item) ->\r
+ @dialog().stop()\r
+ @trigger('pick', new_item)\r
+ \r
dock: () ->\r
@parent.dock()\r
\r
self.y = 0
self.width = 100
self.height = 100
+ self.fore_color = 0
end
def symbol_option