blob: 2890b527cebb3037ccd4ed27bc92e8ad927a62cc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
/*
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
* Copyright © 2017-2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
*/
import React from 'react';
import ModelRelationships from './ModelRelationships.jsx';
import { Link } from 'react-router-dom';
import {ExportExcel} from 'utils/ExportExcel.js';
let buildAttrList = ExportExcel.buildAttrList;
const modelCard = (props) => {
var propKey = '';
var navigateQueryBuilder = '';
var editModalIcon = '';
var requiredParams = buildAttrList(props.nodeType,[],'mandatory');
const properties = Object.keys(props.nodeProps).map((prop, idx) => {
let description='';
for(var a in requiredParams){
if(requiredParams[a].value === prop){
description=requiredParams[a].description;
if(propKey === ''){
propKey = prop + ':' + btoa('<pre>' + props.nodeProps[prop].toString() + '</pre>');
}else{
propKey = propKey + ';' + prop + ':' + btoa('<pre>' + props.nodeProps[prop].toString() + '</pre>');
}
}
}
return (
<p className='pre-wrap-text' key={idx}><strong title={description}>{prop}:</strong> {props.nodeProps[prop].toString()}</p>
);
});
let pathNameStr = '/customDslBuilder/' + props.nodeType + '/' + propKey;
editModalIcon = <a className={props.isWriteAllowed ? 'show' : 'hidden'} onClick={e => {props.openEditNodeModal(props.nodeUrl)}}><i style={{cursor: 'pointer'}} className="pull-right fa fa-pencil-square-o" aria-hidden="true"></i></a>;
navigateQueryBuilder = <Link
to={{
pathname: pathNameStr
}}>
<i className={'icon-misc-operationsL pull-right'} role="img"></i>
</Link>;
return (
<div className='card model-card'>
<div className='card-header'>
<h4 className='card-title'>{props['nodeType']}{editModalIcon}{navigateQueryBuilder}</h4>
</div>
<div className='card-header'>
{props.nodeUrl}
</div>
<div className='card-content model-card-content'>
{properties}
</div>
<div className='card-footer'>
<ModelRelationships historyStackString={props.historyStackString} relatives={props} openHistoryModal={props.openHistoryModal} />
</div>
</div>
);
};
export default modelCard;
|