digirati-annotation-bridge
Advanced tools
Comparing version
@@ -11,2 +11,8 @@ import { ID, OMEKA_LABEL } from './vocab'; | ||
export function labelId(res) { | ||
if (!res) { | ||
return { | ||
id: null, | ||
label: 'unknown' | ||
}; | ||
} | ||
if (Object.prototype.toString.call(res) === '[object Array]') { | ||
@@ -13,0 +19,0 @@ return res.map(labelId); |
@@ -6,3 +6,3 @@ import { addCaptureModel, addInteractiveResource, addResourceTemplate } from 'digirati-annotation-redux/es/actions/resourceTemplate'; | ||
import { BODY_TYPE, COMBINE, CONFORMS_TO, DESCRIPTION, EXTERNALISE, FORM_FIELDS, HAS_PART, HUMAN_READABLE, ID, INPUT_TYPE, MOTIVATED_BY, MULTIPLE, PURPOSE, RDFS_LABEL, SELECTOR, SERIALIZE, TITLE, TYPE, UI_CHOICE, UI_GROUP, LABEL_PARTS } from './vocab'; | ||
import { BODY_TYPE, COMBINE, CONFORMS_TO, DESCRIPTION, EXTERNALISE, FORM_FIELDS, HAS_PART, HUMAN_READABLE, ID, INPUT_TYPE, LABEL_PARTS, MOTIVATED_BY, MULTIPLE, PURPOSE, RDFS_LABEL, SELECTOR, SERIALIZE, TITLE, TYPE, UI_CHOICE, UI_GROUP } from './vocab'; | ||
@@ -101,7 +101,13 @@ import { castBool, labelId } from './helpers'; | ||
function get(value) { | ||
return function (prop, defaultValue) { | ||
return value ? value[prop] : defaultValue; | ||
}; | ||
} | ||
export function omekaImportResourceTemplate(dispatch, resourceTemplate) { | ||
var resourceTemplateValues = get(resourceTemplate); | ||
// Recurse all the things. | ||
if (resourceTemplate[UI_CHOICE] === 'True' && Array.isArray(resourceTemplate[HAS_PART])) { | ||
return resourceTemplate[HAS_PART].map(function (template) { | ||
if (resourceTemplateValues(UI_CHOICE) === 'True' && Array.isArray(resourceTemplateValues(HAS_PART))) { | ||
return resourceTemplateValues(HAS_PART).map(function (template) { | ||
return omekaImportResourceTemplate(dispatch, template); | ||
@@ -111,33 +117,38 @@ }); | ||
// Set the resource template | ||
dispatch(addResourceTemplate(resourceTemplate[ID], resourceTemplate[DESCRIPTION], resourceTemplate[TITLE], { | ||
type: resourceTemplate[TYPE], | ||
conformsTo: labelId(resourceTemplate[CONFORMS_TO]), | ||
rdfsLabel: resourceTemplate[RDFS_LABEL] | ||
dispatch(addResourceTemplate(resourceTemplateValues(ID), resourceTemplateValues(DESCRIPTION), resourceTemplateValues(TITLE), { | ||
type: resourceTemplateValues(TYPE), | ||
conformsTo: labelId(resourceTemplateValues(CONFORMS_TO)), | ||
rdfsLabel: resourceTemplateValues(RDFS_LABEL) | ||
})); | ||
// Set the capture model | ||
if (resourceTemplate[UI_GROUP]) { | ||
dispatch(addCaptureModel(resourceTemplate[ID], resourceTemplate[UI_GROUP][ID], { | ||
combine: castBool(resourceTemplate[COMBINE]), | ||
externalise: castBool(resourceTemplate[EXTERNALISE]), | ||
humanReadable: castBool(resourceTemplate[HUMAN_READABLE]), | ||
serialize: castBool(resourceTemplate[SERIALIZE]), | ||
multiple: castBool(resourceTemplate[MULTIPLE]), | ||
var _resourceTemplateValu; | ||
dispatch(addCaptureModel(resourceTemplateValues(ID), resourceTemplateValues(UI_GROUP, (_resourceTemplateValu = {}, _resourceTemplateValu[ID] = null, _resourceTemplateValu))[ID], { | ||
combine: castBool(resourceTemplateValues(COMBINE, true)), | ||
externalise: castBool(resourceTemplateValues(EXTERNALISE, true)), | ||
humanReadable: castBool(resourceTemplateValues(HUMAN_READABLE, true)), | ||
serialize: castBool(resourceTemplateValues(SERIALIZE)), | ||
multiple: castBool(resourceTemplateValues(MULTIPLE)), | ||
selector: resourceTemplate[SELECTOR] ? resourceTemplate[SELECTOR][ID] : null, | ||
motivatedBy: motivationFromForm(labelId(resourceTemplate[MOTIVATED_BY])), | ||
labelParts: labelId(resourceTemplate[LABEL_PARTS]) | ||
motivatedBy: motivationFromForm(labelId(resourceTemplateValues(MOTIVATED_BY))), | ||
labelParts: labelId(resourceTemplateValues(LABEL_PARTS)) | ||
})); | ||
if (resourceTemplate[FORM_FIELDS]) { | ||
resourceTemplate[FORM_FIELDS].map(function (field) { | ||
dispatch(addInteractiveResource(resourceTemplate[ID], resourceTemplate[UI_GROUP][ID], field[ID], field[INPUT_TYPE][ID], { | ||
if (resourceTemplateValues(FORM_FIELDS)) { | ||
resourceTemplateValues(FORM_FIELDS).map(function (field) { | ||
var _resourceTemplateValu2, _fieldValues; | ||
var fieldValues = get(field); | ||
dispatch(addInteractiveResource(resourceTemplateValues(ID), resourceTemplateValues(UI_GROUP, (_resourceTemplateValu2 = {}, _resourceTemplateValu2[ID] = null, _resourceTemplateValu2))[ID], fieldValues(ID), fieldValues(INPUT_TYPE, (_fieldValues = {}, _fieldValues[ID] = null, _fieldValues))[ID], { | ||
annotationMetaData: {}, | ||
omekaMetaData: { | ||
type: field[TYPE], | ||
bodyType: labelId(field[BODY_TYPE]), | ||
purpose: labelId(field[PURPOSE]) | ||
type: fieldValues(TYPE), | ||
bodyType: labelId(fieldValues(BODY_TYPE)), | ||
purpose: labelId(fieldValues(PURPOSE)) | ||
}, | ||
metaData: { | ||
title: field[TITLE], | ||
description: field[DESCRIPTION], | ||
conformsTo: labelId(field[CONFORMS_TO]) | ||
title: fieldValues(TITLE), | ||
description: fieldValues(DESCRIPTION), | ||
conformsTo: labelId(fieldValues(CONFORMS_TO)) | ||
} | ||
@@ -144,0 +155,0 @@ })); |
@@ -18,2 +18,8 @@ 'use strict'; | ||
function labelId(res) { | ||
if (!res) { | ||
return { | ||
id: null, | ||
label: 'unknown' | ||
}; | ||
} | ||
if (Object.prototype.toString.call(res) === '[object Array]') { | ||
@@ -20,0 +26,0 @@ return res.map(labelId); |
@@ -116,7 +116,13 @@ 'use strict'; | ||
function get(value) { | ||
return function (prop, defaultValue) { | ||
return value ? value[prop] : defaultValue; | ||
}; | ||
} | ||
function omekaImportResourceTemplate(dispatch, resourceTemplate) { | ||
var resourceTemplateValues = get(resourceTemplate); | ||
// Recurse all the things. | ||
if (resourceTemplate[_vocab.UI_CHOICE] === 'True' && Array.isArray(resourceTemplate[_vocab.HAS_PART])) { | ||
return resourceTemplate[_vocab.HAS_PART].map(function (template) { | ||
if (resourceTemplateValues(_vocab.UI_CHOICE) === 'True' && Array.isArray(resourceTemplateValues(_vocab.HAS_PART))) { | ||
return resourceTemplateValues(_vocab.HAS_PART).map(function (template) { | ||
return omekaImportResourceTemplate(dispatch, template); | ||
@@ -126,33 +132,38 @@ }); | ||
// Set the resource template | ||
dispatch((0, _resourceTemplate.addResourceTemplate)(resourceTemplate[_vocab.ID], resourceTemplate[_vocab.DESCRIPTION], resourceTemplate[_vocab.TITLE], { | ||
type: resourceTemplate[_vocab.TYPE], | ||
conformsTo: (0, _helpers.labelId)(resourceTemplate[_vocab.CONFORMS_TO]), | ||
rdfsLabel: resourceTemplate[_vocab.RDFS_LABEL] | ||
dispatch((0, _resourceTemplate.addResourceTemplate)(resourceTemplateValues(_vocab.ID), resourceTemplateValues(_vocab.DESCRIPTION), resourceTemplateValues(_vocab.TITLE), { | ||
type: resourceTemplateValues(_vocab.TYPE), | ||
conformsTo: (0, _helpers.labelId)(resourceTemplateValues(_vocab.CONFORMS_TO)), | ||
rdfsLabel: resourceTemplateValues(_vocab.RDFS_LABEL) | ||
})); | ||
// Set the capture model | ||
if (resourceTemplate[_vocab.UI_GROUP]) { | ||
dispatch((0, _resourceTemplate.addCaptureModel)(resourceTemplate[_vocab.ID], resourceTemplate[_vocab.UI_GROUP][_vocab.ID], { | ||
combine: (0, _helpers.castBool)(resourceTemplate[_vocab.COMBINE]), | ||
externalise: (0, _helpers.castBool)(resourceTemplate[_vocab.EXTERNALISE]), | ||
humanReadable: (0, _helpers.castBool)(resourceTemplate[_vocab.HUMAN_READABLE]), | ||
serialize: (0, _helpers.castBool)(resourceTemplate[_vocab.SERIALIZE]), | ||
multiple: (0, _helpers.castBool)(resourceTemplate[_vocab.MULTIPLE]), | ||
var _resourceTemplateValu; | ||
dispatch((0, _resourceTemplate.addCaptureModel)(resourceTemplateValues(_vocab.ID), resourceTemplateValues(_vocab.UI_GROUP, (_resourceTemplateValu = {}, _resourceTemplateValu[_vocab.ID] = null, _resourceTemplateValu))[_vocab.ID], { | ||
combine: (0, _helpers.castBool)(resourceTemplateValues(_vocab.COMBINE, true)), | ||
externalise: (0, _helpers.castBool)(resourceTemplateValues(_vocab.EXTERNALISE, true)), | ||
humanReadable: (0, _helpers.castBool)(resourceTemplateValues(_vocab.HUMAN_READABLE, true)), | ||
serialize: (0, _helpers.castBool)(resourceTemplateValues(_vocab.SERIALIZE)), | ||
multiple: (0, _helpers.castBool)(resourceTemplateValues(_vocab.MULTIPLE)), | ||
selector: resourceTemplate[_vocab.SELECTOR] ? resourceTemplate[_vocab.SELECTOR][_vocab.ID] : null, | ||
motivatedBy: motivationFromForm((0, _helpers.labelId)(resourceTemplate[_vocab.MOTIVATED_BY])), | ||
labelParts: (0, _helpers.labelId)(resourceTemplate[_vocab.LABEL_PARTS]) | ||
motivatedBy: motivationFromForm((0, _helpers.labelId)(resourceTemplateValues(_vocab.MOTIVATED_BY))), | ||
labelParts: (0, _helpers.labelId)(resourceTemplateValues(_vocab.LABEL_PARTS)) | ||
})); | ||
if (resourceTemplate[_vocab.FORM_FIELDS]) { | ||
resourceTemplate[_vocab.FORM_FIELDS].map(function (field) { | ||
dispatch((0, _resourceTemplate.addInteractiveResource)(resourceTemplate[_vocab.ID], resourceTemplate[_vocab.UI_GROUP][_vocab.ID], field[_vocab.ID], field[_vocab.INPUT_TYPE][_vocab.ID], { | ||
if (resourceTemplateValues(_vocab.FORM_FIELDS)) { | ||
resourceTemplateValues(_vocab.FORM_FIELDS).map(function (field) { | ||
var _resourceTemplateValu2, _fieldValues; | ||
var fieldValues = get(field); | ||
dispatch((0, _resourceTemplate.addInteractiveResource)(resourceTemplateValues(_vocab.ID), resourceTemplateValues(_vocab.UI_GROUP, (_resourceTemplateValu2 = {}, _resourceTemplateValu2[_vocab.ID] = null, _resourceTemplateValu2))[_vocab.ID], fieldValues(_vocab.ID), fieldValues(_vocab.INPUT_TYPE, (_fieldValues = {}, _fieldValues[_vocab.ID] = null, _fieldValues))[_vocab.ID], { | ||
annotationMetaData: {}, | ||
omekaMetaData: { | ||
type: field[_vocab.TYPE], | ||
bodyType: (0, _helpers.labelId)(field[_vocab.BODY_TYPE]), | ||
purpose: (0, _helpers.labelId)(field[_vocab.PURPOSE]) | ||
type: fieldValues(_vocab.TYPE), | ||
bodyType: (0, _helpers.labelId)(fieldValues(_vocab.BODY_TYPE)), | ||
purpose: (0, _helpers.labelId)(fieldValues(_vocab.PURPOSE)) | ||
}, | ||
metaData: { | ||
title: field[_vocab.TITLE], | ||
description: field[_vocab.DESCRIPTION], | ||
conformsTo: (0, _helpers.labelId)(field[_vocab.CONFORMS_TO]) | ||
title: fieldValues(_vocab.TITLE), | ||
description: fieldValues(_vocab.DESCRIPTION), | ||
conformsTo: (0, _helpers.labelId)(fieldValues(_vocab.CONFORMS_TO)) | ||
} | ||
@@ -159,0 +170,0 @@ })); |
{ | ||
"name": "digirati-annotation-bridge", | ||
"version": "0.2.18", | ||
"version": "0.2.19", | ||
"description": "Describe annotation-bridge here", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
34797
4.91%793
4.2%