diff --git a/Development/src/components/ParameterRegisters.js b/Development/src/components/ParameterRegisters.js
index a94c67c9..a2556833 100644
--- a/Development/src/components/ParameterRegisters.js
+++ b/Development/src/components/ParameterRegisters.js
@@ -175,4 +175,7 @@ export const TRANSPORTS = {
'urn:x-nmos:transport:websocket': {
label: 'WebSocket',
},
+ 'urn:x-nmos:transport:mxl': {
+ label: 'MXL',
+ },
};
diff --git a/Development/src/components/makeConnection.js b/Development/src/components/makeConnection.js
index abbc53d7..71a99076 100644
--- a/Development/src/components/makeConnection.js
+++ b/Development/src/components/makeConnection.js
@@ -26,6 +26,7 @@ const oneToOneTransportParams = {
'connection_authorization',
'connection_uri',
],
+ 'urn:x-nmos:transport:mxl': ['mxl_domain_id', 'mxl_flow_id'],
};
// create an array mapping receiver leg to sender leg
@@ -140,6 +141,8 @@ const makePatchDataWithTransportParams = (data, options) => {
break;
case 'urn:x-nmos:transport:websocket':
break;
+ case 'urn:x-nmos:transport:mxl':
+ break;
default:
break;
}
diff --git a/Development/src/dataProvider.js b/Development/src/dataProvider.js
index fd525614..2470ad1f 100644
--- a/Development/src/dataProvider.js
+++ b/Development/src/dataProvider.js
@@ -667,8 +667,10 @@ const getConnectionResourceEndpoints = (addresses, resource, id) => {
if (response.ok) {
return response.text();
}
+ return null;
})
.then(text => {
+ if (text === null) return null;
try {
return JSON.parse(text);
} catch (e) {
@@ -680,8 +682,10 @@ const getConnectionResourceEndpoints = (addresses, resource, id) => {
[`$${endpoint.slice(0, -1)}`]: data,
});
})
- .catch(error => {
- throw error;
+ .catch(() => {
+ endpointData.push({
+ [`$${endpoint.slice(0, -1)}`]: null,
+ });
})
)
).then(() => {
diff --git a/Development/src/pages/receivers/ReceiverTransportParams.js b/Development/src/pages/receivers/ReceiverTransportParams.js
index ba201507..9fa6162b 100644
--- a/Development/src/pages/receivers/ReceiverTransportParams.js
+++ b/Development/src/pages/receivers/ReceiverTransportParams.js
@@ -416,6 +416,72 @@ const WebSocketReceiverEdit = ({ record }) => {
);
};
+const MXLReceiver = ({ data }) => (
+
+ {Object.keys(data).map(i => (
+
+
+
+ ))}
+
+);
+
+const MXLReceiverLeg = ({ data }) => {
+ const params_ext = Object.keys(data).filter(x => x.startsWith('ext_'));
+ return (
+
+
+
+ {has(data, 'mxl_domain_id') && (
+
+ )}
+ {has(data, 'mxl_flow_id') && (
+
+ )}
+ {params_ext.length !== 0 && }
+ {params_ext.map(param => (
+
+ ))}
+
+
+
+ );
+};
+
+const MXLReceiverEdit = ({ record }) => {
+ const data = get(record, '$staged.transport_params');
+ const uniqueKeys = Object.keys(
+ data.reduce((result, obj) => Object.assign(result, obj), {})
+ );
+ const params_ext = uniqueKeys.filter(x => x.startsWith('ext_'));
+ return (
+
+
+
+
+ {params_ext.length !== 0 && }
+ {params_ext.map(param => (
+
+ ))}
+
+
+ );
+};
+
const ReceiverTransportParamsCardsGrid = ({ ids, record }) => {
const type = get(record, '$transporttype');
const data = [];
@@ -430,6 +496,8 @@ const ReceiverTransportParamsCardsGrid = ({ ids, record }) => {
return ;
case 'urn:x-nmos:transport:websocket':
return ;
+ case 'urn:x-nmos:transport:mxl':
+ return ;
default:
return Unknown Type;
}
@@ -441,6 +509,8 @@ const ReceiverTransportParamsCardsGrid = ({ ids, record }) => {
return ;
case 'urn:x-nmos:transport:websocket':
return ;
+ case 'urn:x-nmos:transport:mxl':
+ return ;
default:
return Unknown Type;
}
diff --git a/Development/src/pages/senders/SenderTransportParams.js b/Development/src/pages/senders/SenderTransportParams.js
index ed329bf8..33214167 100644
--- a/Development/src/pages/senders/SenderTransportParams.js
+++ b/Development/src/pages/senders/SenderTransportParams.js
@@ -497,6 +497,72 @@ const WebSocketSenderEdit = ({ record }) => {
);
};
+const MXLSender = ({ data }) => (
+
+ {Object.keys(data).map(i => (
+
+
+
+ ))}
+
+);
+
+const MXLSenderLeg = ({ data }) => {
+ const params_ext = Object.keys(data).filter(x => x.startsWith('ext_'));
+ return (
+
+
+
+ {has(data, 'mxl_domain_id') && (
+
+ )}
+ {has(data, 'mxl_flow_id') && (
+
+ )}
+ {params_ext.length !== 0 && }
+ {params_ext.map(param => (
+
+ ))}
+
+
+
+ );
+};
+
+const MXLSenderEdit = ({ record }) => {
+ const data = get(record, '$staged.transport_params');
+ const uniqueKeys = Object.keys(
+ data.reduce((result, obj) => Object.assign(result, obj), {})
+ );
+ const params_ext = uniqueKeys.filter(x => x.startsWith('ext_'));
+ return (
+
+
+
+
+ {params_ext.length !== 0 && }
+ {params_ext.map(param => (
+
+ ))}
+
+
+ );
+};
+
const SenderTransportParamsCardsGrid = ({ ids, record }) => {
const type = get(record, '$transporttype');
const data = [];
@@ -511,6 +577,8 @@ const SenderTransportParamsCardsGrid = ({ ids, record }) => {
return ;
case 'urn:x-nmos:transport:websocket':
return ;
+ case 'urn:x-nmos:transport:mxl':
+ return ;
default:
return Unknown Type;
}
@@ -522,6 +590,8 @@ const SenderTransportParamsCardsGrid = ({ ids, record }) => {
return ;
case 'urn:x-nmos:transport:websocket':
return ;
+ case 'urn:x-nmos:transport:mxl':
+ return ;
default:
return Unknown Type;
}