/* * * Copyright 2016 RIFT.IO Inc * * 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. * */ //https://raw.githubusercontent.com/RIFTIO/RIFT.ware/master/rift-shell import _cloneDeep from 'lodash/cloneDeep' import _findIndex from 'lodash/findIndex' import React from 'react'; import ReactDOM from 'react-dom'; import TreeView from 'react-treeview'; import TextInput from 'widgets/form_controls/textInput.jsx'; import Button from '../Button'; import './FileMananger.scss'; import FileManagerActions from './FileManagerActions.js'; import imgSave from '../../../../node_modules/open-iconic/svg/data-transfer-upload.svg' import {Panel, PanelWrapper} from 'widgets/panel/panel'; import SkyquakeComponent from 'widgets/skyquake_container/skyquakeComponent.jsx'; import LoadingIndicator from 'widgets/loading-indicator/loadingIndicator.jsx'; import DropZone from 'dropzone' import Utils from '../../libraries/utils' import FileManagerUploadDropZone from '../../libraries/FileManagerUploadDropZone'; let API_SERVER = require('utils/rw.js').getSearchParams(window.location).api_server; const createDropZone = function (action, clickable, type, id, path, dropTarget) { const dropZone = new FileManagerUploadDropZone(ReactDOM.findDOMNode(dropTarget), [clickable], action, type, id, path); // dropZone.on('dragover', this.onDragOver); // dropZone.on('dragend', this.onDragEnd); // dropZone.on('addedfile', this.onFileAdded); return dropZone; }; //updateFileLocationInput class FileManager extends React.Component { constructor(props) { super(props) } componentWillMount() { // FileManagerActions.openFileManagerSockets() } componentWillUnmount() { // FileManagerActions.closeFileManagerSockets(); } generateFolder(data, nesting) { let nestingLevel = nesting || 1; } deleteFile(name) { return function(e) { FileManagerActions.deletePackageFile(name); } } updateFileLocationInput(name) { return function(e) { FileManagerActions.updateFileLocationInput({ name: name, value: e.target.value }); } } sendDownloadFileRequst = (url, path) => { let self = this; return function(e) { if(!url || url == "") { return self.props.actions.showNotification.defer({type: 'error', msg: 'Value missing in download request'});; } let files = self.props.files.data; let folder = path.split('/'); let splitUrl = url.split('/'); let fileName = splitUrl[splitUrl.length - 1]; folder.pop; let fullPath = _cloneDeep(folder); fullPath.push(fileName); fullPath = fullPath.join('/'); folder = folder.join('/'); let fileIndex = _findIndex(files[folder], function(f) { return f.name == fullPath; }) if (fileIndex == -1) { FileManagerActions.sendDownloadFileRequst({ url: url, path: path }); } else { self.props.actions.showNotification('It seems you\'re attempting to upload a file with a duplicate file name'); } } } render() { let self = this; let html = (