mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-04 19:53:19 +08:00
Merge pull request #8131 from andrej-scinote/aj_SCI_11411
Add import/export logic for eln file [SCI-11411]
This commit is contained in:
commit
b648f99215
3 changed files with 26 additions and 0 deletions
|
@ -641,6 +641,12 @@ function importProtocolFromFile(
|
|||
return json;
|
||||
}
|
||||
|
||||
function formJson(formNode) {
|
||||
return {
|
||||
id: formNode.attr('id')
|
||||
};
|
||||
}
|
||||
|
||||
function stepElementJson(stepElementNode, folderIndex, stepGuid) {
|
||||
var json = {
|
||||
type: stepElementNode.attr('type')
|
||||
|
@ -656,6 +662,9 @@ function importProtocolFromFile(
|
|||
case 'StepText':
|
||||
json.stepText = stepTextJson(stepElementNode.find('stepText'), folderIndex, stepGuid);
|
||||
break;
|
||||
case 'FormResponse':
|
||||
json.form = formJson(stepElementNode.find('form'));
|
||||
break;
|
||||
default:
|
||||
// nothing to do
|
||||
break;
|
||||
|
|
|
@ -72,6 +72,8 @@ module ProtocolsExporterV2
|
|||
xml << table_xml(element.table)
|
||||
when Checklist
|
||||
xml << checklist_xml(element)
|
||||
when FormResponse
|
||||
xml << form_xml(element.form)
|
||||
end
|
||||
|
||||
xml << "</stepElement>\n"
|
||||
|
@ -135,4 +137,8 @@ module ProtocolsExporterV2
|
|||
"<fileMetadata><!--[CDATA[ #{asset.file.metadata.except('version', 'restored_from_version').to_json} ]]--></fileMetadata>\n" \
|
||||
"</asset>\n"
|
||||
end
|
||||
|
||||
def form_xml(form)
|
||||
"<form id=\"#{form.id}\" guid=\"#{get_guid(form.id)}\"> </form>\n" \
|
||||
end
|
||||
end
|
||||
|
|
|
@ -85,6 +85,8 @@ class ProtocolsImporterV2
|
|||
create_step_table(step, element_params['elnTable'])
|
||||
when 'Checklist'
|
||||
create_checklist(step, element_params['checklist'])
|
||||
when 'FormResponse'
|
||||
create_form(step, element_params['form'])
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -183,6 +185,15 @@ class ProtocolsImporterV2
|
|||
end
|
||||
end
|
||||
|
||||
def create_form(step, params)
|
||||
form = @team.forms.find_by(id: params['id'])
|
||||
|
||||
if form.present?
|
||||
form_response = FormResponse.create!(form: form, created_by: @user)
|
||||
create_in_step!(step, form_response)
|
||||
end
|
||||
end
|
||||
|
||||
def remove_empty_inputs(obj)
|
||||
obj.each_key do |key|
|
||||
case obj[key]
|
||||
|
|
Loading…
Reference in a new issue