From 3fae267547e67e439e56380099f2c96094a2006b Mon Sep 17 00:00:00 2001 From: zmagod Date: Fri, 5 Jan 2018 15:30:11 +0100 Subject: [PATCH 1/2] fix import protocol preview [fixes SCI-1867] --- .../protocols/import_export/import.js.erb | 22 +++++++++++++++---- app/utilities/protocols_exporter.rb | 7 +++--- app/utilities/protocols_importer.rb | 2 ++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/protocols/import_export/import.js.erb b/app/assets/javascripts/protocols/import_export/import.js.erb index 644eb4130..13a3b8e3d 100644 --- a/app/assets/javascripts/protocols/import_export/import.js.erb +++ b/app/assets/javascripts/protocols/import_export/import.js.erb @@ -230,20 +230,34 @@ function importProtocolFromFile( // display tiny_mce_assets in step description function displayTinyMceAssetInDescription(node, folder, stepGuid) { + debugger; if (node.children('descriptionAssets').length === 0) { var description = node.children('description').html(); - return description.replace(/\[~tiny_mce_id:([0-9a-zA-Z]+)\]/, - 'Can\'t import image'); + return $('
').html( + description.replace(/\[~tiny_mce_id:([0-9a-zA-Z]+)\]/, + 'Can\'t import image') + .replace('','') + .replace(' ]]>', '') + ).html(); } var description = node.children('description').html(); node.find('descriptionAssets > tinyMceAsset').each(function(i, element) { var match = '[~tiny_mce_id:' + element.getAttribute('tokenId') + ']'; - var assetBytes = getAssetBytes(folder, stepGuid, element.getAttribute('fileref')); + var assetBytes = getAssetBytes(folder, + stepGuid, + element.getAttribute('fileref')); var image_tag = "" description = description.replace(match, image_tag); // replace the token with image }).bind(this); // I know is crazy but is the only way I found to pass valid HTML - return $('
').html(description.replace('','') + .replace(' ]]>', '') + ).html(); } /* Navigation functions */ diff --git a/app/utilities/protocols_exporter.rb b/app/utilities/protocols_exporter.rb index 5c4a98ab9..fec668511 100644 --- a/app/utilities/protocols_exporter.rb +++ b/app/utilities/protocols_exporter.rb @@ -66,7 +66,7 @@ module ProtocolsExporter protocol_xml = "\n" protocol_xml << "\n" - protocol_xml << "#{protocol_name}\n" + protocol_xml << "\n" protocol_xml << "#{protocol.authors}\n" protocol_xml << "#{protocol.description}\n" protocol_xml << "#{protocol.created_at.as_json}\n" @@ -80,9 +80,10 @@ module ProtocolsExporter step_xml = "\n" step_xml << "#{step.name}\n" - step_xml << "\n" if tiny_mce_asset_present?(step) step_xml << get_tiny_mce_assets(step.description) diff --git a/app/utilities/protocols_importer.rb b/app/utilities/protocols_importer.rb index bf9292a69..fe9000469 100644 --- a/app/utilities/protocols_importer.rb +++ b/app/utilities/protocols_importer.rb @@ -162,6 +162,7 @@ module ProtocolsImporter tiny_mce_img.save! description.gsub!("[~tiny_mce_id:#{tiny_mce_img_json['tokenId']}]", "[~tiny_mce_id:#{tiny_mce_img.id}]") + .gsub!(' ]]-->', '') end description @@ -171,5 +172,6 @@ module ProtocolsImporter def populate_rte_legacy(step_json) return unless step_json['description'] && step_json['description'].present? step_json['description'].gsub(Constants::TINY_MCE_ASSET_REGEX, '') + .gsub(' ]]-->', '') end end From 7af4816ce8a62571921adcfd9824a01e48469b8a Mon Sep 17 00:00:00 2001 From: zmagod Date: Fri, 5 Jan 2018 17:13:39 +0100 Subject: [PATCH 2/2] removes js brakepoint --- app/assets/javascripts/protocols/import_export/import.js.erb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/javascripts/protocols/import_export/import.js.erb b/app/assets/javascripts/protocols/import_export/import.js.erb index 13a3b8e3d..c76a0155c 100644 --- a/app/assets/javascripts/protocols/import_export/import.js.erb +++ b/app/assets/javascripts/protocols/import_export/import.js.erb @@ -230,7 +230,6 @@ function importProtocolFromFile( // display tiny_mce_assets in step description function displayTinyMceAssetInDescription(node, folder, stepGuid) { - debugger; if (node.children('descriptionAssets').length === 0) { var description = node.children('description').html(); return $('
').html(