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; }