update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b third try
[osm/UI.git] / skyquake / plugins / composer / src / src / components / CatalogItemDetailsEditor.js
1 /*
2 *
3 * Copyright 2016 RIFT.IO Inc
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 */
18 'use strict';
19
20 import React from 'react'
21 import PureRenderMixin from 'react-addons-pure-render-mixin'
22 import EditDescriptorModelProperties from './EditDescriptorModelProperties'
23 import '../styles/CatalogItemDetailsEditor.scss'
24 import {SkyquakeRBAC, isRBACValid} from 'widgets/skyquake_rbac/skyquakeRBAC.jsx';
25 import ROLES from 'utils/roleConstants.js';
26 const PROJECT_ROLES = ROLES.PROJECT;
27 const PLATFORM = ROLES.PLATFORM;
28
29 const CatalogItemDetailsEditor = React.createClass({
30 mixins: [PureRenderMixin],
31 getInitialState() {
32 return {};
33 },
34 getDefaultProps() {
35 return {
36 container: null,
37 width: 0
38 };
39 },
40 contextTypes: {
41 router: React.PropTypes.object,
42 userProfile: React.PropTypes.object
43 },
44 componentWillMount() {
45 },
46 componentDidMount() {
47 },
48 componentDidUpdate() {
49 },
50 componentWillUnmount() {
51 },
52 render() {
53 const User = this.context.userProfile;
54
55 const container = this.props.container || { model: {}, uiState: {} };
56 if (!(container && container.model && container.uiState)) {
57 return null;
58 }
59 const height = this.props.height;
60 const style = height > 0 ? { height: height + 'px' } : {};
61 return (
62 <div className="CatalogItemDetailsEditor" style={style}>
63 <form name="details-descriptor-editor-form">
64 <div className="properties-group">
65 {
66 isRBACValid(User, [PROJECT_ROLES.PROJECT_ADMIN, PROJECT_ROLES.CATALOG_ADMIN]) ?
67 <EditDescriptorModelProperties
68 container={this.props.container}
69 idMaker={this.props.idMaker}
70 showHelp={this.props.showHelp}
71 collapsePanelsByDefault={this.props.collapsePanelsByDefault}
72 openPanelsWithData={this.props.openPanelsWithData}
73 width={this.props.width} />
74 :<EditDescriptorModelProperties
75 container={this.props.container}
76 idMaker={this.props.idMaker}
77 showHelp={this.props.showHelp}
78 collapsePanelsByDefault={this.props.collapsePanelsByDefault}
79 openPanelsWithData={this.props.openPanelsWithData}
80 width={this.props.width}
81 readOnly={true} />
82 }
83 </div>
84 </form>
85 </div>
86 );
87
88 }
89 });
90 export default CatalogItemDetailsEditor;