speech_trace = '#panel' + $(@).attr('panel_id') + 'speech_balloon' + $(@).attr('element_id') + 'speech' + $(@).attr('element_part_id')\r
v = escapeHTML($(@).val())\r
$(speech_trace).html(v)\r
+ $('textarea').map ->\r
+ if $(@).attr('element_type') and $(@).attr('element_type') == 'speech_balloon'\r
+ switch $(@).attr('column')\r
+ when 'content'\r
+ $(@).bind('textchange', (event, previousText) ->\r
+ trace = element_tag_id($(@))\r
+ wf_sel = $(trace + 'writing_format_id')\r
+ wf_id = parseInt(wf_sel.val())\r
+ speech_trace = '#panel' + $(@).attr('panel_id') + 'speech_balloon' + $(@).attr('element_id') + 'speech' + $(@).attr('element_part_id')\r
+ confirm( writing_formats[wf_id].toString() + '_render')\r
+ v = escapeHTML($(@).val())\r
+ $(speech_trace).html(v)\r
+ )\r
+\r
\r
# ground-picture\r
# sync view \r
--- /dev/null
+/*!\r
+ * jQuery TextChange Plugin\r
+ * http://www.zurb.com/playground/jquery-text-change-custom-event\r
+ *\r
+ * Copyright 2010, ZURB\r
+ * Released under the MIT License\r
+ */\r
+ (function(a){a.event.special.textchange={setup:function(){a(this).data("lastValue",this.contentEditable==="true"?a(this).html():a(this).val());a(this).bind("keyup.textchange",a.event.special.textchange.handler);a(this).bind("cut.textchange paste.textchange input.textchange",a.event.special.textchange.delayedHandler)},teardown:function(){a(this).unbind(".textchange")},handler:function(){a.event.special.textchange.triggerIfChanged(a(this))},delayedHandler:function(){var c=a(this);setTimeout(function(){a.event.special.textchange.triggerIfChanged(c)},\r
+ 25)},triggerIfChanged:function(a){var b=a[0].contentEditable==="true"?a.html():a.val();b!==a.data("lastValue")&&(a.trigger("textchange",[a.data("lastValue")]),a.data("lastValue",b))}};a.event.special.hastext={setup:function(){a(this).bind("textchange",a.event.special.hastext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.hastext.handler)},handler:function(c,b){b===""&&b!==a(this).val()&&a(this).trigger("hastext")}};a.event.special.notext={setup:function(){a(this).bind("textchange",\r
+ a.event.special.notext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.notext.handler)},handler:function(c,b){a(this).val()===""&&a(this).val()!==b&&a(this).trigger("notext")}}})(jQuery);
\ No newline at end of file
icon_tag :Panel, opt
end
+ def panel_editor_javascript_include_tags
+ WritingFormat.list().map {|wf|
+ javascript_include_tag wf.engine_name + "/application"
+ }.join("\n")
+ end
+
end
</title>\r
<%= stylesheet_link_tag "application" %>\r
<%= javascript_include_tag "application" %>\r
+ <%= raw panel_editor_javascript_include_tags %>\r
<%= csrf_meta_tags %>\r
</head>\r
<body>\r
<script>
<!--
var pettanr_current_panel_id = <%= @panel.tag_panel_id -%>;
+var writing_formats = {};
+<% WritingFormat.list().each do |wf| %>
+ writing_formats[<%= wf.id -%>] = '<%= wf.engine_name -%>';
+<% end %>
// -->
</script>
factory :speech, :class => Speech do |speech|
speech.speech_balloon_id 1
+ speech.writing_format_id 1
speech.content 'test'
speech.x 10
speech.y 100