<% if resource.new_record? %> <p>-</p> <% else %> <form "#"> <div class="tab-content"> <div class="field" id="field_translation_language"> <label for="translation_language"><%=I18n.t("lolita.tabs.translation.fields.language")%> <div class="field-value" id="field_translation_language_value"> <%= select_tag :has_translations_locale, options_for_select([""] + I18n.available_locales.clone.delete_if{|l| l == I18n.default_locale}), :onchange => "switch_has_translations_language($(this))" %> </div> </div> <div id="has_translations_fields" class="field" style="display: none"> <% resource.class.columns_has_translations.each do |column| %> <label for="<%=column.name%>_field"><%=resource.class.human_attribute_name(column.name)%></label> <div class="fl field-value" id="<%=column.name%>_field"> <% if column.type == :string %> <%= text_field_tag 'has_translations_' + column.name, nil, :class => 'txt' %> <% elsif column.type == :text %> <%= text_area_tag 'has_translations_' + column.name, nil, :class => "textarea",:rows=>20, :cols=>40 %> <% end %> </div> <% end %> </div> </div> </form> <% resource.build_nested_translations %> <%= form_for resource, :url => "/" do |form| %> <%= form.fields_for :translations do |tf| %> <div id="object_translation_fields_<%= tf.object.locale %>"> <% resource.class.columns_has_translations.each do |column| %> <%= tf.hidden_field column.name, :class => column.name %> <% end %> <%= tf.hidden_field :id, :class => "id" %> <%= tf.hidden_field tf.object.class.master_id, :value => resource.id %> <%= tf.hidden_field :locale, :class => "locale" %> </div> <% end %> <% end %> <script type="text/javascript"> var columns = [<%= resource.class.columns_has_translations.map{|r| "'#{r.name}'"}.join(",") %>]; var blur = false; function switch_has_translations_language(select){ var locale = select.val(); if(locale == ""){ $('#has_translations_fields').hide() }else{ $.each(columns,function(i,column){ var content = $('#object_translation_fields_'+locale+' .'+column).val(); $('#has_translations_'+column).val(content); if($('#has_translations_'+column).get(0).tagName == 'TEXTAREA'){ tinymce.EditorManager.getInstanceById('has_translations_'+column).setContent(content); } }); $('#has_translations_fields').show() } if(!blur){ $.each($('#has_translations_fields textarea'), function(i,area){ var item = $(area); var tiny_editor = tinymce.EditorManager.getInstanceById(item.attr("id")); tinymce.dom.Event.add(tiny_editor.getWin(), "blur", function(){ var textarea = $(tinymce.EditorManager.getInstanceById(item.attr("id")).getElement()); tiny_editor.save(); textarea.blur(); }); }); blur = true; } } $.each(columns,function(i,column){ $('#has_translations_'+column).blur(function(){ $('#object_translation_fields_'+$("#has_translations_locale").val()+' .'+$(this).attr("name").split("_")[2]).val($(this).val()) }) }) </script> <% end %>