[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / components / monitoring / SoftwareProductComponentsMonitoringView.jsx
index ca090c5..329cc70 100644 (file)
@@ -1,3 +1,18 @@
+/*!
+ * Copyright (C) 2017 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.
+ */
 import React, {Component, PropTypes} from 'react';
 import Dropzone from 'react-dropzone';
 import ButtonGroup from 'react-bootstrap/lib/ButtonGroup.js';
@@ -46,7 +61,7 @@ class SoftwareProductComponentsMonitoringView extends Component {
                return (
                        <Dropzone
                                className={`snmp-dropzone ${this.state.dragging ? 'active-dragging' : ''}`}
-                               onDrop={files => this.handleImport(files, {isReadOnlyMode, type, refAndName})}
+                               onDrop={(acceptedFiles, rejectedFiles) => this.handleImport(acceptedFiles, rejectedFiles, {isReadOnlyMode, type, refAndName})}
                                onDragEnter={() => this.handleOnDragEnter(isReadOnlyMode)}
                                onDragLeave={() => this.setState({dragging:false})}
                                multiple={false}
@@ -70,7 +85,7 @@ class SoftwareProductComponentsMonitoringView extends Component {
                                className={`software-product-landing-view-top-block-col-upl${isReadOnlyMode ? ' disabled' : ''}`}>
                                <div className='drag-text'>{i18n('Drag & drop for upload')}</div>
                                <div className='or-text'>{i18n('or')}</div>
-                               <div className='upload-btn primary-btn' onClick={() => this.refs[refAndName].open()}>
+                               <div className='upload-btn primary-btn' data-test-id={`monitoring-upload-${refAndName}`} onClick={() => this.refs[refAndName].open()}>
                                        <span className='primary-btn-text'>{i18n('Select file')}</span>
                                </div>
                        </div>
@@ -95,17 +110,21 @@ class SoftwareProductComponentsMonitoringView extends Component {
                }
        }
 
-       handleImport(files, {isReadOnlyMode, type, refAndName}) {
+       handleImport(files, rejectedFiles, {isReadOnlyMode, type, refAndName}) {
                if (isReadOnlyMode) {
                        return;
                }
-
-               this.setState({dragging: false});
-               let file = files[0];
-               let formData = new FormData();
-               formData.append('upload', file);
-               this.refs[refAndName].value = '';
-               this.props.onDropMibFileToUpload(formData, type);
+               if (files.length > 0) {
+                       this.setState({dragging: false});
+                       let file = files[0];
+                       let formData = new FormData();
+                       formData.append('upload', file);
+                       this.refs[refAndName].value = '';
+                       this.props.onDropMibFileToUpload(formData, type);
+               } else if (rejectedFiles.length > 0) {
+                       this.setState({dragging: false});
+                       this.props.onFileUploadError();
+               }
        }
 
        getFileTypeDisplayName(type) {