From e5eb98cbc0943b1c10e2a6f62e85f0ed9bb3a928 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Wed, 31 Aug 2016 08:09:27 -0300 Subject: [PATCH] LT-67: Migrating DIMSE inputs to components --- .../serverInformationDicomWeb.js | 4 +-- .../serverInformationDimse.html | 34 ++++++++++--------- .../serverInformationDimse.js | 24 ++++++------- .../client/components/base/mixins/group.js | 20 +++++++---- .../components/base/mixins/schemaData.js | 9 +++-- Packages/worklist/both/schema.js | 4 +-- 6 files changed, 54 insertions(+), 41 deletions(-) diff --git a/Packages/lesiontracker/client/components/serverInformation/serverInformationDicomWeb/serverInformationDicomWeb.js b/Packages/lesiontracker/client/components/serverInformation/serverInformationDicomWeb/serverInformationDicomWeb.js index 270811222..09c315466 100644 --- a/Packages/lesiontracker/client/components/serverInformation/serverInformationDicomWeb/serverInformationDicomWeb.js +++ b/Packages/lesiontracker/client/components/serverInformation/serverInformationDicomWeb/serverInformationDicomWeb.js @@ -1,5 +1,5 @@ -Template.serverInformationDicomWeb.onRendered(function() { - var instance = Template.instance(); +Template.serverInformationDicomWeb.onRendered(() => { + const instance = Template.instance(); instance.autorun(function() { const mode = instance.data.mode.get(); if (mode === 'edit') { diff --git a/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.html b/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.html index c5caeabc5..34eade647 100644 --- a/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.html +++ b/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.html @@ -5,39 +5,41 @@
-
+ {{#group class='row' key='peers' arrayValues=true}} {{#each peer in instance.peers.get}} -
+ {{#group class='col-lg-6'}}
- {{>serverInformationFormField name=(concat "peers[]." @index ".aeTitle") label="AE title"}} - {{>serverInformationFormField name=(concat "peers[]." @index ".hostAE") label="AE host"}} - {{>serverInformationFormField name=(concat "peers[]." @index ".host") label="Host"}} - {{>serverInformationFormField name=(concat "peers[]." @index ".port") label="Port"}} +
+ {{>inputText class='form-control' key='aeTitle'}} +
+
+ {{>inputText class='form-control' key='hostAE'}} +
+
+ {{>inputText class='form-control' key='host'}} +
+
+ {{>inputText class='form-control' key='port'}} +
Settings
- + {{>inputCheckbox key='default'}}
- + {{>inputCheckbox key='server'}}
-
+ {{/group}} {{/each}} -
+ {{/group}}
diff --git a/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.js b/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.js index 29b32aa1b..0249b580c 100644 --- a/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.js +++ b/Packages/lesiontracker/client/components/serverInformation/serverInformationDimse/serverInformationDimse.js @@ -1,29 +1,29 @@ -Template.serverInformationDimse.onCreated(function() { - var instance = Template.instance(); +Template.serverInformationDimse.onCreated(() => { + const instance = Template.instance(); instance.peers = new ReactiveVar([]); - instance.autorun(function() { - var currentItem = instance.data.currentItem.get(); + instance.autorun(() => { + const currentItem = instance.data.currentItem.get(); if (currentItem) { instance.peers.set(currentItem.peers || []); } }); }); -Template.serverInformationDimse.onRendered(function() { - var instance = Template.instance(); - instance.autorun(function() { - var mode = instance.data.mode.get(); +Template.serverInformationDimse.onRendered(() => { + const instance = Template.instance(); + instance.autorun(() => { + const mode = instance.data.mode.get(); if (mode === 'edit') { - var data = instance.data.currentItem.get(); - FormUtils.setFormData(instance.data.$form, data); + const data = instance.data.currentItem.get(); + instance.data.form.value(data); } }); }); Template.serverInformationDimse.events({ - 'click .js-new-peer': function(event, instance) { + 'click .js-new-peer'(event, instance) { event.preventDefault(); - var peers = instance.peers.get(); + const peers = instance.peers.get(); peers.push({}); instance.peers.set(peers); } diff --git a/Packages/ohif-core/client/components/base/mixins/group.js b/Packages/ohif-core/client/components/base/mixins/group.js index ffb1235cf..79450cd7e 100644 --- a/Packages/ohif-core/client/components/base/mixins/group.js +++ b/Packages/ohif-core/client/components/base/mixins/group.js @@ -29,22 +29,30 @@ OHIF.mixins.group = new OHIF.Mixin({ // Get or set the child components values component.value = value => { const isGet = _.isUndefined(value); + const isArray = instance.data.arrayValues; + const result = isArray ? [] : {}; + if (isGet) { - const result = {}; component.registeredItems.forEach(child => { - const key = child.templateInstance.data.key; - if (key) { - result[key] = child.value(); + if (!isArray) { + const key = child.templateInstance.data.key; + if (key) { + result[key] = child.value(); + } + } else { + result.push(child.value()); } }); return result; } - const groupValue = typeof value === 'object' ? value : {}; + const groupValue = typeof value === 'object' ? value : result; + let i = 0; component.registeredItems.forEach(child => { - const key = child.templateInstance.data.key; + const key = isArray ? i : child.templateInstance.data.key; const childValue = _.isUndefined(groupValue[key]) ? null : groupValue[key]; child.value(childValue); + i++; }); component.$element.trigger('change'); }; diff --git a/Packages/ohif-core/client/components/base/mixins/schemaData.js b/Packages/ohif-core/client/components/base/mixins/schemaData.js index 15f9de7dc..c7518ee4b 100644 --- a/Packages/ohif-core/client/components/base/mixins/schemaData.js +++ b/Packages/ohif-core/client/components/base/mixins/schemaData.js @@ -52,10 +52,13 @@ OHIF.mixins.schemaData = new OHIF.Mixin({ const parent = OHIF.blaze.getParentComponent(Blaze.currentView); // Get he parent component key - let parentKey = parent && parent.templateInstance.data.pathKey; + const parentKey = parent && parent.templateInstance.data.pathKey; + + // Check if the parent is an array group + const isParentArray = parent && parent.templateInstance.data.arrayValues; // Set the path key for this component - data.pathKey = data.key || ''; + data.pathKey = data.key || (isParentArray ? '$' : ''); if (data.pathKey && typeof parentKey === 'string') { const prefix = parentKey ? `${parentKey}.` : ''; data.pathKey = `${prefix}${data.pathKey}`; @@ -107,7 +110,7 @@ OHIF.mixins.schemaData = new OHIF.Mixin({ const component = instance.component; // Get the current schema data using component's key - const currentSchema = getCurrentSchema(component.parent, instance.data.key); + const currentSchema = getCurrentSchema(component.parent, instance.data.pathKey); // Stop here if there's no schema data for current key if (!currentSchema) { diff --git a/Packages/worklist/both/schema.js b/Packages/worklist/both/schema.js index 30edd1ade..9ac6846e6 100644 --- a/Packages/worklist/both/schema.js +++ b/Packages/worklist/both/schema.js @@ -81,11 +81,11 @@ export const DICOMWebServer = new SimpleSchema({ export const DIMSEPeer = new SimpleSchema({ aeTitle: { type: String, - label: 'Application Entity (AE) Title', + label: 'AE Title', }, hostAE: { type: String, - label: 'Application Entity (AE) Host', + label: 'AE Host', optional: true }, host: {