var getItemLocalStorage = global.getItemLocalStorage;
var setItemLocalStorage = global.setItemLocalStorage;
var p5WFS_GetFeature = global.p5WFS_GetFeature;
var renderGraph = global.renderGraph; // @from sankey-init
var DBG = DBG || 0;
var DBG1 = 1;
var globalGraphStore = null;
function graphStore(state, action) {
var prevState = state || {
isLoading: false,
sentRequestId: 0,
receivedRequestId: 0,
items: [],
};
DBG && console.log('DBG: graph store', { prevState, action });
switch (action.type) {
case 'SET_SENT_REQUEST_ID': return Object.assign(prevState, {
sentRequestId: action.sentRequestId,
isLoading: true
});
case 'SET_RESPONSE': return Object.assign(prevState, {
receivedRequestId: action.requestId,
items: action.items,
isLoading: (prevState.sentRequestId > action.requestId) ? true : false,
});
default: return prevState;
}
}
var createGraphActions = function () {
var setSentRequestId = function (sentRequestId) {
return { type: 'SET_SENT_REQUEST_ID', sentRequestId: sentRequestId };
}
var setResponse = function (obj) {
return Object.assign(obj, { type: 'SET_RESPONSE' });
}
var fetchData = function (nameSection) {
return function (dispatch, getState) {
var state = getState();
var this__requestId = state.sentRequestId + 1;
dispatch(setSentRequestId(this__requestId));
var reqPromise = graphFetchData(nameSection);
return reqPromise.then(function (response) {
var items = response;
var state = getState();
if (state.receivedRequestId > this__requestId) {
DBG && console.log('DBG: skiped response', { 'state.receivedRequestId': state.receivedRequestId, this__requestId });
return;
}
dispatch(
setResponse({
requestId: this__requestId,
msg: "Pobrano dane",
typeName: ('pracownicy' === nameSection) ? 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY' : 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
items: items
})
);
}).catch(function (e) {
p5UI__notifyAjaxCallback({type: 'error', msg: 'Wystąpił błąd #GS1: ' + e});
// dispatch( setErrorMsg(e) ); // TODO: show error with msg and refresh button
});
}
}
return {
fetchData: fetchData,
}
}
var globalGraphActions = ''; // createGraphActions();
var createReactClass = global.p5VendorJs.createReactClass;
var h = global.p5VendorJs.React.createElement;
var ReactDOM = global.p5VendorJs.ReactDOM;
var Redux = global.p5VendorJs.Redux;
var ReduxThunk = global.p5VendorJs.ReduxThunk;
var createStoreWithThunkMiddleware = Redux.applyMiddleware(ReduxThunk)(Redux.createStore); // TODO: to vendor.js
global['P5UI__Anton1GraphView'] = createReactClass({
// props.nameSection: PropTypes.string.isRequired
// props.store: Redux store with state: { isLoading: false, sentRequestId: 0, receivedRequestId: 0, items: [] }
// props.actions: Redux store actions { }
getStateFromStore: function () {
var state = this.props.store.getState();
return {
isLoading: state.isLoading,
items: state.items,
sentRequestId: state.sentRequestId,
receivedRequestId: state.receivedRequestId,
};
},
getInitialState: function () {
return this.getStateFromStore();
},
componentDidMount: function () {
DBG && console.log('DBG::P5UI__Anton1GraphView::componentDidMount');
this.unsubscribe = this.props.store.subscribe(this.storeUpdated)
},
componentWillUnmount: function () {
this.unsubscribe()
},
storeUpdated: function () {
DBG && console.log('DBG::P5UI__Anton1GraphView::storeUpdated');
this.setState(this.getStateFromStore())
},
shouldComponentUpdate: function (nextProps, nextState) {
DBG && console.log('DBG::P5UI__Anton1GraphView::shouldComponentUpdate', { state: this.state, nextState});
// return (
// this.state.isLoading !== nextState.isLoading
// || this.state.sentRequestId !== nextState.sentRequestId
// || this.state.receivedRequestId !== nextState.receivedRequestId
// );
if (nextState.receivedRequestId > this.state.receivedRequestId) {
var htmlId = 'p5_graphView_' + this.props.nameSection; // #smad-'+nameSection+'-graph-view
graphRaportRender({
msg: "Pobrano dane",
typeName: ('pracownicy' === this.props.nameSection) ? 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY' : 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
items: nextState.items
}, document.getElementById(htmlId))
}
return (
this.state.isLoading !== nextState.isLoading
);
},
render: function () {
DBG && console.log('DBG::P5UI__Anton1GraphView::render', { props: this.props, state: this.state });
var htmlId = 'p5_graphView_' + this.props.nameSection; // #smad-'+nameSection+'-graph-view
var msg = (this.state.isLoading) ? "Pobieranie danych..." : null;
return h('div', {}, [
msg && h('div', {
className: 'alert alert-info',
style: {
maxWidth: '600px',
margin: '0 auto',
padding: '3px 24px',
}
}, msg),
h('div', { id: htmlId })
]);
}
});
var btnRefresh = null;
var btnHide = null;
function graphShowHide(btnNode, nameSection) {
var node = $('#smad-'+nameSection+'-graph-view')
if (!node || !node.length) {
console.log("Missing dom node '#smad-"+nameSection+"-graph-view'")
return;
}
var btnJqNode = jQuery(btnNode);
if ('block' == node.css('display')) {
DBG && console.warn("DBG:graphShowHide: hide");
node.hide()
btnRefresh.remove();
btnHide.remove();
return;
}
node.show()
btnRefresh = jQuery('').appendTo(btnJqNode.parent());
btnRefresh.on('click', function () {
globalGraphStore.dispatch(globalGraphActions.fetchData(nameSection));
})
btnHide = jQuery('').appendTo(btnJqNode.parent());
btnHide.on('click', function () {
node.hide()
btnRefresh.remove();
btnHide.remove();
})
var graphResultNode = node.get(0)
if (!globalGraphStore) {
globalGraphStore = createStoreWithThunkMiddleware(graphStore);
globalGraphActions = createGraphActions();
ReactDOM.render(
h(P5UI__Anton1GraphView, {
nameSection: nameSection,
store: globalGraphStore,
actions: globalGraphActions,
}),
graphResultNode
);
}
globalGraphStore.dispatch(globalGraphActions.fetchData(nameSection));
}
function graphFetchData(nameSection) { // @return Promise
var page = page || getItemLocalStorage('Anton1.biAuditForm.'+nameSection+'.pagination.page');
if ( page === 1) {
setItemLocalStorage('Anton1.biAuditForm.'+nameSection+'.pagination.page', 1);
}
var filterIdGroup = getItemLocalStorage('Anton1.biAuditForm.'+nameSection+'.filterIdGroup');
var filterIdRaport = getItemLocalStorage('Anton1.biAuditForm.'+nameSection+'.filterIdRaport');
var frm = document.getElementById('filtersFieldRemoveBtn-' + nameSection.toUpperCase()).form
var fieldNameList = ('pracownicy' === nameSection) ? FIELD_LIST_PRACOWNICY : FIELD_LIST_KONTRAHENCI
var filterFields = fieldNameList.filter(function (fieldName) {
if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"')
return (frm[fieldName]) ? true : false
}).map(function (fieldName) {
return [ fieldName, frm[fieldName].value ]
}).filter(function (filter) {
return ( filter[1].length > 0 )
})
// filterFields = (filterFields.length > 0) ? '&' + filterFields : ''
//
//
//
// A_STATUS
// *O%23MA*
//
//
// A_STATUS
// *ARNING
//
//
//
var ogcFilterFields = (filterFields.length > 0)
? '' + filterFields.map(function(filter) {
if ('ID' === filter[0].substr(2)) return '' +
'' + filter[0].substr(2) + '' +
'' + filter[1] + '' +
'';
return '' +
'' + filter[0].substr(2) + '' +
'*' + filter[1] + '*' +
'';
}) + ''
: ''
var paginationLimit = 20;
DBG && console.log('graphFetchData...', {
paginationLimit: paginationLimit,
page: page,
filterIdGroup: filterIdGroup,
filterIdRaport: filterIdRaport,
filterFields: filterFields,
ogcFilterFields: ogcFilterFields,
});
function refFieldsOnPathToList(typeName, fields) {
var fields = fields || []
var flatList = []
var refPathBase = [
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object'
]
flatList.push(refPathBase.concat(typeName).join('/'))
fields.forEach(function (fieldName) {
flatList.push(refPathBase.concat(typeName, fieldName).join('/'))
})
return flatList;
}
return p5WFS_GetFeature(('pracownicy' === nameSection) ? 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY' : 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
Object.assign({
sortBy: 'ID+D',
maxFeatures: paginationLimit,
startIndex: (page - 1) * paginationLimit,
// TODO: backRefNS, backRefPK, backRefField - TODO: from groups
// resolve: 'all',
// resolveDepth: 2
// 'ogc:Filter': '' + '\n' + [
// 'ID',
// 'imiona',
// 'nazwisko',
// 'miejscowosc'
// ]
'ogc:Filter': '' + '\n' + [].concat(
('pracownicy' === nameSection)
? [
'ID',
'imiona',
'nazwisko',
'miejscowosc'
] : [
'ID',
'Pelna_nazwa_kontrahenta'
]
)
.concat(refFieldsOnPathToList('default_db__x3A__BI_audit_KRS:BI_audit_KRS', [ 'ID', 'nazwa', 'krs', 'S_miejscowosc' ]))
.concat(refFieldsOnPathToList('default_db__x3A__BI_audit_MSIG:BI_audit_MSIG', [ 'ID', 'nazwa' ]))
.concat(refFieldsOnPathToList('default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG', [ 'ID', 'nazwisko', 'firma' ]))
.concat(refFieldsOnPathToList('default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI', [ 'ID', 'Pelna_nazwa_kontrahenta' ]))
.concat(
('pracownicy' === nameSection)
? []
: refFieldsOnPathToList('default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY', [ 'ID', 'imiona', 'nazwisko', 'miejscowosc' ])
)
.concat([
// '*',
// 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy/*',
[
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
'ID'
].join('/'),
[
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
'ID'
].join('/'),
[
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
'ID'
].join('/')
]).map(function (fieldName) {
return '' + fieldName + '';
}).join('\n') + '\n' +
( ogcFilterFields ? ogcFilterFields : '' ) +
''
}, ('pracownicy' === nameSection && filterIdRaport > 0)
? {
backRefNS: 'default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
backRefPK: filterIdRaport,
backRefField: 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
}
: {}
, ('kontrahenci' === nameSection && filterIdRaport > 0)
? {
backRefNS: 'default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
backRefPK: filterIdRaport,
backRefField: 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
}
: {}
, ('pracownicy' === nameSection && filterIdGroup > 0)
? {
backRefNS: 'default_db/BI_audit_ENERGA_PRACOWNICY_group/BI_audit_ENERGA_PRACOWNICY_group',
backRefPK: filterIdGroup,
backRefField: 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
}
: {}
, ('kontrahenci' === nameSection && filterIdGroup > 0)
? {
backRefNS: 'default_db/BI_audit_ENERGA_PRACOWNICY_group/BI_audit_ENERGA_PRACOWNICY_group',
backRefPK: filterIdGroup,
backRefField: 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
}
: {}
)
);
}
function graphRender(props, wrapNode) {
throw "TODO: graphRender..."
}
function graphRaportRender(props, wrapNode) {
var svgNode = jQuery(wrapNode).children('svg')
svgNode = (svgNode.length) ? d3.select(svgNode.get(0)) : d3.select(wrapNode).append("svg")
// svg.append("rect").attr("x",0).attr("y",0).attr("width","100%").attr("height","100%").attr("fill","white").attr('class','background').on('mouseup', () => redraw())
// svgNode.attr("width", '100%')
// .attr("height", '300px')
// .append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
// var data = parseGraphRec(props.items, props.nameSection)
var _todoGraphData = [];
parseResponseRec(_todoGraphData, props.items, props.typeName)
DBG && console.log('_todoGraphData', _todoGraphData)
var _nodes = [];
var _links = [];
var mapNodeIdToIdx = {};
_todoGraphData.forEach(function (levelData, levelIdx) {
if (levelData.nodes && levelData.nodes.length) {
levelData.nodes.forEach(function (node) {
try {
if (node.id in mapNodeIdToIdx) return;
_nodes.push(node) // _nodes.add(node)
mapNodeIdToIdx[node.id] = _nodes.length - 1
} catch (e) {
DBG && console.log('_graphData.nodes.add [level='+levelIdx+'] error:', e);
}
})
}
})
var linkIdsAdded = []
_todoGraphData.forEach(function (levelData, levelIdx) {
if (levelData.edges && levelData.edges.length) {
levelData.edges.forEach(function (edge) {
DBG && console.log('_graphData.edges.add [level='+levelIdx+']:', {edge, source:mapNodeIdToIdx[edge.source], target:mapNodeIdToIdx[edge.target], mapNodeIdToIdx});
// try {
// var source = mapNodeIdToIdx[edge.source]
// var target = mapNodeIdToIdx[edge.target]
// if (!source || !target) { // && !== 0
// console.warn('(!source || !target)', {source, target, edge, mapNodeIdToIdx})
// }
if (-1 !== linkIdsAdded.indexOf(edge.id)) return
// _links.push({
// id: edge.id,
// source: mapNodeIdToIdx[edge.source],
// target: mapNodeIdToIdx[edge.target],
// value: 1
// })
_links.push({
id: edge.id,
source: edge.source,
target: edge.target,
value: 1
}) // _edges.add(edge)
linkIdsAdded.push(edge.id)
// } catch (e) {
// DBG && console.log('_graphData.edges.add [level='+levelIdx+'] error:', e);
// }
})
}
})
var totalLinks = _links.length
// console.log('DBG:0: _links', _links)
DBG && console.log('DBG:1: _nodes', _nodes)
_nodes = _nodes.filter(function (node, idx) {
if (node.typeName !== props.typeName) return true
for (var i=0; iBrak powiązań
')
return;
}
var rightSideNodes = _nodes.filter(function (node, idx) {
for (var i=0; i 20) {
// TODO: increase height
}
var graphData = {
nodes: _nodes,
links: _links.filter(function (link) {
DBG && console.log('DBG loop link', { link, source: link.source, target: link.target, filtered: (link.source && link.target) });
return (link.source && link.target);
})
};
DBG && console.warn('render graphData', graphData);
var graf = renderGraph(svgNode, graphData, {
width: jQuery(wrapNode).width(),
height: (rightSideNodes.length > 20) ? rightSideNodes.length * 22 : 500
})
graf.on('click', (event) => {
DBG && console.log('event', event)
// event = {
// nativeEvent: d3.event,
// node: a,
// element: d3.event.srcElement
// }
// TODO: !a.expanded && redraw({type: a.name, criteria: 'ID'})
})
}
/**
* Response format:
* NOTE: every object could be xlink if found before
* lvl1 > lvl2 > lvl3 > lvl4 > lvl5
* Pracownik > *_row_object > *_row > *_row_object > Podmiot
* Pracownik > *_row_object > *_row > *_row_object > ( KRS | CEIDG | ... )
* Pracownik > *_row_object > *_row > *_row_object > Pracownik
*
* Podmiot > *_row_object > *_row > *_row_object > Pracownik
* Podmiot > *_row_object > *_row > *_row_object > ( KRS | CEIDG | ... )
* Podmiot > *_row_object > *_row > *_row_object > Podmiot
*
* TODO: make connections only: Pracownik -> ( KRS | CEIDG | ... )* -> Podmiot
* NOTE: lvl4 last `_row_object` is (wfs xlink cache system) xlink to lvl2 `_row_object` - ref to lvl1 object
* NOTE: lvl3 is always 1 because it is from __backRef
*/
var TN_PRACOWNICY = 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY';
var TN_KONTRAHENCI = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI';
var TN_ROW_OBJ = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object';
var TN_ROW = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row';
var TN_KRS = 'default_db__x3A__BI_audit_KRS:BI_audit_KRS';
var TN_CEIDG = 'default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG';
var TN_MSIG = 'default_db__x3A__BI_audit_MSIG:BI_audit_MSIG';
function parseResponseRec__Helper__addTodoNode(_todoGraphData, level, json, typeName) { // @return string - node id
if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
var nodeObject = dataMakeNode({
typeName: typeName,
primaryKey: (json['ID']) ? json['ID'] : null, // TODO: get primaryKey from object
row: json,
})
_todoGraphData[level].nodes.push(nodeObject)
// if (parentNodeId) {
// _todoGraphData[level].edges.push(dataMakeEdge(parentNodeId, nodeObject))
// }
return nodeObject.id;
}
function parseResponseRec__Helper__addTodoEdge(_todoGraphData, level, parentNodeId, newNodeId) {
if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
_todoGraphData[level].edges.push(
// dataMakeEdge(parentNodeId, nodeObject)
{
id: parentNodeId + newNodeId,
source: parentNodeId,
target: newNodeId,
}
)
}
function parseResponseRec(_todoGraphData, json, typeName) {
DBG = 1;
var parentNodeId = null
DBG && console.log('DBG::parseResponseRec', {json:json, typeName:typeName, parentNodeId:parentNodeId, isString: p5Utils__isString(json), isArray: p5Utils__isArray(json), isObject: p5Utils__isObject(json)});
switch (typeName) {
case TN_PRACOWNICY: parseResponseRec__lvl1__Pracownik(_todoGraphData, json, typeName); break;
case TN_KONTRAHENCI: parseResponseRec__lvl1__Kontrahent(_todoGraphData, json, typeName); break;
default: throw "Not implemented root element typeName '" + typeName + "'";
}
}
function parseResponseRec__lvl1__Pracownik(_todoGraphData, jsonList, typeName) {
if (!p5Utils__isArray(jsonList)) throw "Not implemented root element - expected list of elements";
var isXlinkList = (jsonList.length > 0 && p5Utils__isString(jsonList[0]))
DBG && console.log('DBG::parseResponseRec__lvl1__Pracownik', {jsonList:jsonList, typeName:typeName, isString: p5Utils__isString(jsonList), isArray: p5Utils__isArray(jsonList), isObject: p5Utils__isObject(jsonList), isXlinkList});
jsonList.forEach(function (jsonPracownik) {
if (isXlinkList) {
DBG && console.warn('DBG::parseResponseRec__lvl1__Pracownik', {jsonPracownik:jsonPracownik, typeName:typeName, isString: p5Utils__isString(jsonPracownik), isArray: p5Utils__isArray(jsonPracownik), isObject: p5Utils__isObject(jsonPracownik), isXlinkList});
// parseResponseXlinkListRec(_todoGraphData, jsonPracownik, typeName)
throw "Not implemented xlink in Pracownik child";
} else {
var idNode = parseResponseRec__Helper__addTodoNode(_todoGraphData, level = 1, jsonPracownik, typeName);
if (jsonPracownik[TN_ROW_OBJ] && jsonPracownik[TN_ROW_OBJ].length) {
parseResponseRec__lvl2__Pracownik_RowObj(_todoGraphData, idNode, jsonPracownik[TN_ROW_OBJ]);
}
}
})
}
function parseResponseRec__lvl2__Pracownik_RowObj(_todoGraphData, parentIdNode, rowObjList) {
DBG && console.log('DBG::parseResponseRec__lvl2__Pracownik_RowObj rec...', { parentIdNode, rowObjList });
rowObjList.forEach(function (jsonRowObj) {
if (!p5Utils__isObject(jsonRowObj)) {
DBG && console.warn('DBG::parseResponseRec__lvl2__Pracownik_RowObj SKIP non object element', { jsonRowObj });
// skip non object elements
return;
}
if (isP5LinkObject(jsonRowObj)) {
DBG && console.log('DBG::parseResponseRec__lvl2__Pracownik_RowObj SKIP xlink', { jsonRowObj });
// skip p5 link object (type: "next")
return;
}
DBG && console.log('DBG::parseResponseRec__lvl2__Pracownik_RowObj row obj', { jsonRowObj });
if (jsonRowObj[TN_ROW] && jsonRowObj[TN_ROW].length) {
// NOTE: jsonRowObj[TN_ROW] is array(1) - always 1 because it is from __backRef
parseResponseRec__lvl3__Pracownik_RowObj_Row(_todoGraphData, parentIdNode, jsonRowObj[TN_ROW][0]);
}
})
}
function parseResponseRec__lvl3__Pracownik_RowObj_Row(_todoGraphData, parentIdNode, jsonRow) {
DBG && console.log('DBG::parseResponseRec__lvl3__Pracownik_RowObj_Row', { jsonRow, parentIdNode });
if (jsonRow[TN_ROW_OBJ] && jsonRow[TN_ROW_OBJ].length) {
var jsonListRowObj = jsonRow[TN_ROW_OBJ];
DBG && console.log('DBG::parseResponseRec__lvl3__Pracownik_RowObj_Row row obj', { jsonListRowObj, parentIdNode });
// NOTE: RowObj on list is a connection path in reverse order
// NOTE: last element is Pracownik (parentIdNode)
// NOTE: first element is Kontrahent - TODO: or another element defines in Raport.od.* or Raport.do.*
// var TN_PRACOWNICY = 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY';
// var TN_KONTRAHENCI = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI';
// var TN_ROW_OBJ = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object';
// var TN_ROW = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row';
// var TN_KRS = 'default_db__x3A__BI_audit_KRS:BI_audit_KRS';
// var TN_CEIDG = 'default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG';
// var TN_MSIG = 'default_db__x3A__BI_audit_MSIG:BI_audit_MSIG';
var pathPoints = jsonListRowObj.reverse().slice(1).map(function (jsonRowObj) {
if (jsonRowObj[TN_KONTRAHENCI]) return Object.assign(jsonRowObj[TN_KONTRAHENCI][0], { typeName: TN_KONTRAHENCI });
if (jsonRowObj[TN_PRACOWNICY]) return Object.assign(jsonRowObj[TN_PRACOWNICY][0], { typeName: TN_PRACOWNICY });
if (jsonRowObj[TN_KRS]) return Object.assign(jsonRowObj[TN_KRS][0], { typeName: TN_KRS });
if (jsonRowObj[TN_CEIDG]) return Object.assign(jsonRowObj[TN_CEIDG][0], { typeName: TN_CEIDG });
if (jsonRowObj[TN_MSIG]) return Object.assign(jsonRowObj[TN_MSIG][0], { typeName: TN_MSIG });
return null;
}).filter(function (jsonRowObj) {
return !!jsonRowObj;
}).map(function (jsonRowObj) {
DBG && console.warn('DBG::parseResponseRec__lvl3__Pracownik_RowObj_Row path', { parentIdNode, fid: (jsonRowObj ? jsonRowObj.typeName + '.' + jsonRowObj.ID : null), jsonRowObj });
return jsonRowObj;
})
for (var i = 0, prevNodeId = parentIdNode, newNodeId; i < pathPoints.length; i++) {
jsonObject = pathPoints[i];
newNodeId = parseResponseRec__Helper__addTodoNode(_todoGraphData, level = 4, jsonObject, jsonObject.typeName);
parseResponseRec__Helper__addTodoEdge(_todoGraphData, level = 4, prevNodeId, newNodeId);
prevNodeId = newNodeId;
}
}
}
function parseResponseRec__lvl1__Kontrahent(_todoGraphData, jsonList, typeName) {
if (!p5Utils__isArray(jsonList)) throw "Not implemented root element - expected list of elements";
var isXlinkList = (jsonList.length > 0 && p5Utils__isString(jsonList[0]))
DBG && console.log('DBG::parseResponseRec__lvl1__Kontrahent', {jsonList:jsonList, typeName:typeName, isString: p5Utils__isString(jsonList), isArray: p5Utils__isArray(jsonList), isObject: p5Utils__isObject(jsonList), isXlinkList});
jsonList.forEach(function (jsonPracownik) {
if (isXlinkList) {
DBG && console.warn('DBG::parseResponseRec__lvl1__Kontrahent', {jsonPracownik:jsonPracownik, typeName:typeName, isString: p5Utils__isString(jsonPracownik), isArray: p5Utils__isArray(jsonPracownik), isObject: p5Utils__isObject(jsonPracownik), isXlinkList});
// parseResponseXlinkListRec(_todoGraphData, jsonPracownik, typeName)
throw "Not implemented xlink in Pracownik child";
} else {
var idNode = parseResponseRec__Helper__addTodoNode(_todoGraphData, level = 1, jsonPracownik, typeName);
if (jsonPracownik[TN_ROW_OBJ] && jsonPracownik[TN_ROW_OBJ].length) {
parseResponseRec__lvl2__Kontrahent_RowObj(_todoGraphData, idNode, jsonPracownik[TN_ROW_OBJ]);
}
}
})
}
function parseResponseRec__lvl2__Kontrahent_RowObj(_todoGraphData, parentIdNode, rowObjList) {
DBG && console.log('DBG::parseResponseRec__lvl2__Kontrahent_RowObj rec...', { parentIdNode, rowObjList });
rowObjList.forEach(function (jsonRowObj) {
if (!p5Utils__isObject(jsonRowObj)) {
DBG && console.warn('DBG::parseResponseRec__lvl2__Kontrahent_RowObj SKIP non object element', { jsonRowObj });
// skip non object elements
return;
}
if (isP5LinkObject(jsonRowObj)) {
DBG && console.log('DBG::parseResponseRec__lvl2__Kontrahent_RowObj SKIP xlink', { jsonRowObj });
// skip p5 link object (type: "next")
return;
}
DBG && console.log('DBG::parseResponseRec__lvl2__Kontrahent_RowObj row obj', { jsonRowObj });
if (jsonRowObj[TN_ROW] && jsonRowObj[TN_ROW].length) {
// NOTE: jsonRowObj[TN_ROW] is array(1) - always 1 because it is from __backRef
parseResponseRec__lvl3__Kontrahent_RowObj_Row(_todoGraphData, parentIdNode, jsonRowObj[TN_ROW][0]);
}
})
}
function parseResponseRec__lvl3__Kontrahent_RowObj_Row(_todoGraphData, parentIdNode, jsonRow) {
DBG && console.log('DBG::parseResponseRec__lvl3__Pracownik_RowObj_Row', { jsonRow, parentIdNode });
if (jsonRow[TN_ROW_OBJ] && jsonRow[TN_ROW_OBJ].length) {
var jsonListRowObj = jsonRow[TN_ROW_OBJ];
DBG && console.log('DBG::parseResponseRec__lvl3__Kontrahent_RowObj_Row row obj', { jsonListRowObj, parentIdNode });
// NOTE: RowObj on list is a connection path in reverse order
// NOTE: last element is Pracownik (parentIdNode)
// NOTE: first element is Kontrahent - TODO: or another element defines in Raport.od.* or Raport.do.*
// var TN_PRACOWNICY = 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY';
// var TN_KONTRAHENCI = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI';
// var TN_ROW_OBJ = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object';
// var TN_ROW = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row';
// var TN_KRS = 'default_db__x3A__BI_audit_KRS:BI_audit_KRS';
// var TN_CEIDG = 'default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG';
// var TN_MSIG = 'default_db__x3A__BI_audit_MSIG:BI_audit_MSIG';
var pathPoints = jsonListRowObj.slice(1).reverse().map(function (jsonRowObj) {
if (jsonRowObj[TN_KONTRAHENCI]) return Object.assign(jsonRowObj[TN_KONTRAHENCI][0], { typeName: TN_KONTRAHENCI });
if (jsonRowObj[TN_PRACOWNICY]) return Object.assign(jsonRowObj[TN_PRACOWNICY][0], { typeName: TN_PRACOWNICY });
if (jsonRowObj[TN_KRS]) return Object.assign(jsonRowObj[TN_KRS][0], { typeName: TN_KRS });
if (jsonRowObj[TN_CEIDG]) return Object.assign(jsonRowObj[TN_CEIDG][0], { typeName: TN_CEIDG });
if (jsonRowObj[TN_MSIG]) return Object.assign(jsonRowObj[TN_MSIG][0], { typeName: TN_MSIG });
return null;
}).filter(function (jsonRowObj) {
return !!jsonRowObj;
}).map(function (jsonRowObj) {
DBG && console.warn('DBG::parseResponseRec__lvl3__Kontrahent_RowObj_Row path', { parentIdNode, fid: (jsonRowObj ? jsonRowObj.typeName + '.' + jsonRowObj.ID : null), jsonRowObj });
return jsonRowObj;
})
for (var i = 0, prevNodeId, newNodeId; i < pathPoints.length; i++) {
jsonObject = pathPoints[i];
newNodeId = parseResponseRec__Helper__addTodoNode(_todoGraphData, level = 4, jsonObject, jsonObject.typeName);
if (prevNodeId) parseResponseRec__Helper__addTodoEdge(_todoGraphData, level = 4, prevNodeId, newNodeId);
prevNodeId = newNodeId;
}
{
parseResponseRec__Helper__addTodoEdge(_todoGraphData, level = 4, prevNodeId, parentIdNode);
}
}
}
function parseResponseRec__OLD(_todoGraphData, json, typeName, parentNodeId, level) {
var level = level || 0
var parentNodeId = parentNodeId || null
DBG && console.log('DBG::parseResponseRec', {json:json, typeName:typeName, parentNodeId:parentNodeId, isString: p5Utils__isString(json), isArray: p5Utils__isArray(json), isObject: p5Utils__isObject(json)});
if (p5Utils__isArray(json)) {
// TODO: create named group
var isXlinkList = (json.length > 0 && p5Utils__isString(json[0]))
json.forEach(function (subJson) {
if (isXlinkList) {
parseResponseXlinkListRec(_todoGraphData, subJson, typeName, parentNodeId, level)
} else {
parseResponseRec(_todoGraphData, subJson, typeName, parentNodeId, level)
}
})
} else if (p5Utils__isObject(json) && isP5LinkObject(json)) {
DBG && console.log('DBG::parseResponseRec isP5LinkObject');
parseResponseP5Link(_todoGraphData, json, typeName, parentNodeId, level)
} else if (p5Utils__isObject(json)) {
// _todoGraphData.nodes.add({ id: nodeId, label: nodeId })
if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
var nodeObject = dataMakeNode({
typeName: typeName,
primaryKey: (json['ID']) ? json['ID'] : null, // TODO: get primaryKey from object
row: json,
})
var nodeId = nodeObject.id
if ("default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row" === typeName) {
parseResponseRec__row(_todoGraphData, json, typeName, parentNodeId, level)
}
else if ("default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object" === typeName) {
// parseResponseRec__row_object(_todoGraphData, json, typeName, parentNodeId, level)
Object.keys(json).filter(function (fieldName) {
return (fieldName.indexOf(':') > -1)
})
.forEach(function (fieldName) {
var value = json[fieldName]
parseResponseRec(_todoGraphData, value, fieldName, parentNodeId, level + 1)
})
}
else {
DBG && console.warn('DBG::parseResponseRec: obj node.push', { id: nodeObject.id, parentNodeId, typeName, nodeObject });
_todoGraphData[level].nodes.push(nodeObject)
if (parentNodeId) {
_todoGraphData[level].edges.push(dataMakeEdge(parentNodeId, nodeObject))
}
Object.keys(json).filter(function (fieldName) {
return (fieldName.indexOf(':') > -1)
})
.forEach(function (fieldName) {
var value = json[fieldName]
parseResponseRec(_todoGraphData, value, fieldName, nodeId, level + 1)
})
}
} else if (p5Utils__isString(json)) {
DBG && console.log('TODO: Not implemented - parseResponseRec isString');
} else {
DBG && console.log('TODO: Not implemented - parseResponseRec is not string, not array and not object');
}
}
function parseResponseXlinkListRec(_todoGraphData, json, typeName, parentNodeId, level) {
DBG && console.log('DBG::parseResponseRec:XlinkList', {json:json, typeName:typeName, parentNodeId:parentNodeId, isString: p5Utils__isString(json), isArray: p5Utils__isArray(json), isObject: p5Utils__isObject(json)});
if (p5Utils__isString(json)) { // xlink "https://biuro.biall-net.pl/wfs/default_db/BI_audit_ENERGA_RUM_KONTRAHENCI#BI_audit_ENERGA_RUM_KONTRAHENCI.9233",
if ("default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object" === typeName) return;
if ("default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row" === typeName) return;
var nodeId = json.substr(json.indexOf('#') + 1)
{
// _graphData.nodes.add({ id: nodeId, label: nodeId })
if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
var nodeObject = dataMakeXlinkNode({
xlink: json,
typeName: typeName,
})
DBG && console.warn('DBG::parseResponseRec: xlink node.push', { id: nodeObject.id, parentNodeId, typeName, nodeObject });
_todoGraphData[level].nodes.push(nodeObject)
if (parentNodeId) {
_todoGraphData[level].edges.push(dataMakeEdge(parentNodeId, nodeObject))
}
}
} else if (p5Utils__isObject(json) && isP5LinkObject(json)) {
parseResponseP5Link(_todoGraphData, json, typeName, parentNodeId, level)
} else if (p5Utils__isObject(json)) {
DBG && console.warn('TODO: Not implemented - parseResponseRec:XlinkList is object', {json:json, typeName:typeName, parentNodeId:parentNodeId, isString: p5Utils__isString(json), isArray: p5Utils__isArray(json), isObject: p5Utils__isObject(json)});
parseResponseRec(_todoGraphData, json, typeName, parentNodeId, level + 1)
} else {
DBG && console.warn('TODO: Not implemented - parseResponseRec:XlinkList is not string and not object');
}
}
function parseResponseP5Link(_todoGraphData, json, typeName, parentNodeId, level) {
DBG && console.log('parseResponseRec isObject and P5Link - fetch more xlink object');
// example json: { type: "next",
// @backRefNS: "default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA",
// @backRefPK: "42",
// @typeName: "default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_P…ow:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row",
// @startIndex: "10" }
if (!parentNodeId) throw "Missing parentNodeId for ref link object";
var objectName = typeName.substr(typeName.indexOf(':') + 1)
{
// _graphData.nodes.add({ id: nodeId, label: nodeId })
if (!_todoGraphData[level]) _todoGraphData[level] = { nodes: [], edges: [] }
switch (json.type) {
case 'next': {
// TODO: add fetch next node
// var nodeObject = dataMakeFetchMoreNode({
// parentNodeId: parentNodeId,
// type: json.type,
// objectName: objectName,
// ref: json,
// })
// _todoGraphData[level].nodes.push(nodeObject)
// _todoGraphData[level].edges.push(dataMakeFetchMoreEdge(parentNodeId, nodeObject))
} break;
default: {
DBG && console.log('TODO: Not implemented - parseResponseRec isObject with type "'+json.type+'" - fetch more xlink object');
}
}
}
}
function parseResponseRec__row(_todoGraphData, json, typeName, parentNodeId, level) {
var nodeObject = dataMakeNode({
typeName: typeName,
primaryKey: (json['ID']) ? json['ID'] : null, // TODO: get primaryKey from object
})
var nodeId = nodeObject.id
// 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
// 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
// 'default_db__x3A__BI_audit_KRS:BI_audit_KRS' --> Kontrahenci
var rowObjectChildrens = []
var rowTN = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row'
var rowObjTN = 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object'
// { row: row_obj: [ { ID, kontr: [ "http...kontr.ID" ] }, { ID, kontr: [ "http...krs.ID" ] } ], ... }
var rowJson = json
if (rowJson[rowObjTN] && rowJson[rowObjTN].length > 1) {
var pathItems = []
rowJson[rowObjTN].forEach(function (rowObjJson) {
Object.keys(rowObjJson)
.filter(function (rowObjFld) { return (-1 !== rowObjFld.indexOf(':')); })
.filter(function (rowObjRefFld) { return (rowObjJson[rowObjRefFld] && rowObjJson[rowObjRefFld].length); })
.forEach(function (rowObjRefFld) {
pathItems.push([ rowObjRefFld, rowObjJson[rowObjRefFld][0] ])
})
})
}
// console.log('node('+nodeId+') pathItems:', pathItems);
var lastParentFid = null
pathItems.reverse().forEach(function (pathItem) {
var nodeObject = ('string' === typeof pathItem[1])
? dataMakeXlinkNode({
xlink: pathItem[1],
typeName: pathItem[0]
})
: dataMakeNode({
typeName: pathItem[0],
primaryKey: (pathItem[1]['ID']) ? pathItem[1]['ID'] : null,
row: pathItem[1]
})
;
// _todoGraphData[todoLevel].nodes.push(nodeObject) // already added below
if (lastParentFid) _todoGraphData[level].edges.push(dataMakeEdge(lastParentFid, nodeObject))
lastParentFid = nodeObject.id
})
Object.keys(json).filter(function (fieldName) {
return (fieldName.indexOf(':') > -1)
})
.forEach(function (fieldName) {
var value = json[fieldName]
parseResponseRec(_todoGraphData, value, fieldName, parentNodeId, level + 1)
})
}
function parseGraphRec(items, featureType, parentFeatureId) { // TODO: not used
var parentFeatureId = parentFeatureId || null
var nodesArray = []
var linksArray = []
if (!items) return;
items.forEach(function (item) {
if ('string' === typeof item) {
DBG && console.log('TODO: xlink "'+item+'": ', {item:item, parentFeatureId:parentFeatureId})
return;
}
if (!item['ID']) {
DBG && console.log('TODO: SKIP item('+featureType+') - missing ID: ', {item:item, parentFeatureId:parentFeatureId})
return;
}
var id = item['ID']
console.log('item('+featureType+'): ', {item:item, parentFeatureId:parentFeatureId})
var featureId = featureType + '.' + id
Object.keys(item).filter(function (fieldName) { return ('ID' !== fieldName); })
.forEach(function (fieldName) {
parseGraphRec(item[fieldName], fieldName, featureId)
})
})
// items.forEach(element => {
// const rowObject = hasTargetArray(element);
// if (rowObject)
// rowObject.array.forEach(objectElement => {
// const trackNode = hasTargetArray(objectElement);
// if (trackNode) {
// let group = trackNode.name;
// let expanded = false;
// if (expansion && expansion.type && group === expansion.type) {
// group = trackNode.array[0][expansion.criteria];
// expanded = true;
// }
// nodes[group] = {expanded: expanded, type: trackNode.name};
// instanceTypes[trackNode.array[0].ID] = group;
// }
// });
// });
return {
nodes: nodesArray,
links: linksArray
}
}
function isP5LinkObject(json) {
if ( !('type' in json) || !json['type'] ) return false;
if ( !('value' in json) || !json['value'] ) return false;
if ( !('@typeName' in json) || !json['@typeName'] ) return false;
if ( !('@startIndex' in json) || !json['@startIndex'] ) return false;
if ( !('@backRefPK' in json) || !json['@backRefPK'] ) return false;
if ( !('@backRefNS' in json) || !json['@backRefNS'] ) return false;
return true;
}
function dataMakeNode(params) {
var objectName = params.typeName.substr(params.typeName.indexOf(':') + 1)
var nodeId = objectName + '.' + params.primaryKey // TODO: primaryKey?
var graphNode = {
id: nodeId,
name: nodeId,
group: objectName,
_loaded: true,
typeName: params.typeName,
primaryKey: params.primaryKey // TODO: _primaryKey
}
if (params.row) graphNode.row = params.row
return graphAddNodeLabel(graphNode)
}
function dataMakeEdge(parentNodeId, nodeObject) {
return {
id: parentNodeId + nodeObject.id,
source: parentNodeId,
target: nodeObject.id,
}
}
function dataMakeXlinkNode(params) {
var objectName = params.typeName.substr(params.typeName.indexOf(':') + 1)
var nodeId = params.xlink.substr(params.xlink.indexOf('#') + 1)
var primaryKey = nodeId.substr(nodeId.lastIndexOf('.') + 1)
var graphNode = {
id: nodeId,
name: nodeId,
group: objectName,
_loaded: false,
typeName: params.typeName,
primaryKey: primaryKey
}
return graphAddNodeLabel(graphNode)
}
function dataMakeFetchMoreNode(params) {
// params = {
// parentNodeId: parentNodeId,
// type: json.type,
// objectName: objectName,
// ref: json,
// }
DBG && console.log('DBG dataMakeFetchMoreNode(params)', params)
var nodeId = params.parentNodeId+'fetch-more-features-'+params.type+'-on-' + params.objectName;
return {
id: nodeId,
label: 'Pobierz więcej (+)',
group: 'fetch-more-data', // params.objectName,
_loaded: false,
_type: 'ref',
parentNodeId: params.parentNodeId,
ref: params.ref,
// typeName: typeName,
// primaryKey: nodeId.substr(nodeId.lastIndexOf('.') + 1)
};
}
function dataMakeFetchMoreEdge(parentNodeId, fetchMoreNode) {
// @param parentNodeId - from node id
// @param fetchMoreNode - from dataMakeFetchMoreNode
DBG && console.log('DBG dataMakeFetchMoreEdge(parentNodeId, fetchMoreNode)', {parentNodeId:parentNodeId, fetchMoreNode:fetchMoreNode})
return {
id: fetchMoreNode.id,
from: parentNodeId,
to: fetchMoreNode.id
}
}
function makeShortLabel(label) { // TODO: shorter name
// BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object.1234567
if (label.length < 30) return label;
var exLabel = label.split('.')
if (exLabel.length !== 2) return label;
return exLabel[0].substr(0, 24) + '...' + exLabel[0].substr(-10) + '.' + exLabel[1];
}
function graphAddNodeLabel(graphNode) {
// var graphNode = {
// id: nodeId,
// name: nodeId,
// group: objectName,
// _loaded: true,
// typeName: params.typeName,
// primaryKey: params.primaryKey // TODO: _primaryKey
// }
var label = graphNode.id // TODO: get from schema assert @label attribute
label = makeShortLabel(graphNode.id)
switch (graphNode.typeName) {
case 'default_db__x3A__BI_audit_KRS:BI_audit_KRS': {
//
if (graphNode.row) label = [graphNode.row.nazwa, graphNode.row.krs, graphNode.row.S_miejscowosc].filter(function (val) { return val; }).join(' ');
label = (label) ? label : makeShortLabel(graphNode.id)
label = label + ' (krs)'
} break;
case 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY': {
//
if (graphNode.row) label = [graphNode.row.imiona, graphNode.row.nazwisko, graphNode.row.miejscowosc].filter(function (val) { return val; }).join(' ');
label = (label) ? label : makeShortLabel(graphNode.id)
label = label + ' (pracownicy)'
} break;
case 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI': {
//
if (graphNode.row) label = [graphNode.row.Pelna_nazwa_kontrahenta].filter(function (val) { return val; }).join(' ');
label = (label) ? label : makeShortLabel(graphNode.id)
label = label + ' (kontrahent)'
} break;
case 'default_db__x3A__BI_audit_CEIDG:BI_audit_CEIDG': {
//
if (graphNode.row) label = [graphNode.row.nazwisko, graphNode.row.firma].filter(function (val) { return val; }).join(' ');
label = (label) ? label : makeShortLabel(graphNode.id)
label = label + ' (ceidg)'
} break;
case 'default_db__x3A__BI_audit_MSIG:BI_audit_MSIG': {
//
if (graphNode.row) label = [graphNode.row.nazwa].filter(function (val) { return val; }).join(' ');
label = (label) ? label : makeShortLabel(graphNode.id)
label = label + ' (msig)'
} break;
}
return Object.assign(graphNode, {
label: label,
})
}
module.exports = {
graphShowHide: graphShowHide,
graphRender: graphRender,
graphRaportRender: graphRaportRender,
/** @example: graphRaportRender({
* msg: "Pobrano dane",
* typeName: ('pracownicy' === nameSection) ? 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY' : 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
* items: items
* }, graphResultNode)
*/
}