X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Fcomponents%2FComposerApp.js;h=629f409dc96faad286e7461eb4aad73f8c70797e;hb=78dbf3c771c78bcfac95dcb37d063b4d7b56d299;hp=9e6daa4b4bbe2b45ca556a46d2a6085b0e9daa15;hpb=e29efc315df33d546237e270470916e26df391d6;p=osm%2FUI.git diff --git a/skyquake/plugins/composer/src/src/components/ComposerApp.js b/skyquake/plugins/composer/src/src/components/ComposerApp.js index 9e6daa4b4..629f409dc 100644 --- a/skyquake/plugins/composer/src/src/components/ComposerApp.js +++ b/skyquake/plugins/composer/src/src/components/ComposerApp.js @@ -1,5 +1,5 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -47,11 +47,15 @@ import CatalogDataStore from '../stores/CatalogDataStore' import TooltipManager from '../libraries/TooltipManager' import CatalogItemsActions from '../actions/CatalogItemsActions' import CommonUtils from 'utils/utils.js' +import FileManagerActions from './filemanager/FileManagerActions'; +import {SkyquakeRBAC, isRBACValid} from 'widgets/skyquake_rbac/skyquakeRBAC.jsx'; +import ROLES from 'utils/roleConstants.js'; import 'normalize.css' import '../styles/AppRoot.scss' import 'style/layout.scss' + const resizeManager = new ResizableManager(window); const clearLocalStorage = utils.getSearchParams(window.location).hasOwnProperty('clearLocalStorage'); @@ -59,6 +63,9 @@ const clearLocalStorage = utils.getSearchParams(window.location).hasOwnProperty( const preventDefault = e => e.preventDefault(); const clearDragState = () => ComposerAppActions.setDragState(null); +const PROJECT_ROLES = ROLES.PROJECT; +const PLATFORM = ROLES.PLATFORM; + const ComposerApp = React.createClass({ mixins: [PureRenderMixin], getInitialState() { @@ -67,10 +74,17 @@ const ComposerApp = React.createClass({ getDefaultProps() { return {}; }, + contextTypes: { + router: React.PropTypes.object, + userProfile: React.PropTypes.object + }, componentWillMount() { if (clearLocalStorage) { window.localStorage.clear(); } + if(this.item) { + FileManagerActions.openFileManagerSockets(); + } this.state.isLoading = CatalogDataStore.getState().isLoading; ComposerAppStore.listen(this.onChange); CatalogDataStore.listen(this.onCatalogDataChanged); @@ -88,6 +102,7 @@ const ComposerApp = React.createClass({ window.removeEventListener('dragover', preventDefault); window.removeEventListener('drop', preventDefault); window.removeEventListener('drop', clearDragState); + FileManagerActions.closeFileManagerSockets(); // resizeManager automatically registered its event handlers resizeManager.removeAllEventListeners(); ComposerAppStore.unlisten(this.onChange); @@ -141,6 +156,8 @@ const ComposerApp = React.createClass({ render() { let html = null; let self = this; + const User = this.context.userProfile || {}; + const rbacDisabled = !isRBACValid(User, [PROJECT_ROLES.CAT_ADMIN]); if(this.state.hasModel) { function onClickUpdateSelection(event) { @@ -157,7 +174,7 @@ const ComposerApp = React.createClass({ } } - let cpNumber = 0; + let AppHeader = (