From 90fae26aa4bd0e0eb3272ff6e6524060e9004fbb Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Mon, 29 Jun 2020 15:47:09 +0200 Subject: Prepare frontend repository for monorepo This change prepares the frontend Git repository for the monorepo residing at https://github.com/atlarge-research.com/opendc. To accomodate for this, we move all files into a frontend subdirectory. --- src/components/app/map/LoadingScreen.js | 11 -- src/components/app/map/MapConstants.js | 29 ----- src/components/app/map/MapStageComponent.js | 126 -------------------- .../app/map/controls/ExportCanvasComponent.js | 13 -- .../app/map/controls/ScaleIndicatorComponent.js | 14 --- .../app/map/controls/ScaleIndicatorComponent.sass | 9 -- .../app/map/controls/ToolPanelComponent.js | 13 -- .../app/map/controls/ToolPanelComponent.sass | 5 - .../app/map/controls/ZoomControlComponent.js | 24 ---- src/components/app/map/elements/Backdrop.js | 16 --- src/components/app/map/elements/GrayLayer.js | 17 --- src/components/app/map/elements/HoverTile.js | 30 ----- src/components/app/map/elements/ImageComponent.js | 48 -------- src/components/app/map/elements/RackFillBar.js | 89 -------------- src/components/app/map/elements/RoomTile.js | 20 ---- src/components/app/map/elements/TileObject.js | 29 ----- src/components/app/map/elements/TilePlusIcon.js | 52 -------- src/components/app/map/elements/WallSegment.js | 39 ------ src/components/app/map/groups/DatacenterGroup.js | 40 ------- src/components/app/map/groups/GridGroup.js | 41 ------- src/components/app/map/groups/RackGroup.js | 43 ------- src/components/app/map/groups/RoomGroup.js | 56 --------- src/components/app/map/groups/TileGroup.js | 43 ------- src/components/app/map/groups/WallGroup.js | 22 ---- .../app/map/layers/HoverLayerComponent.js | 85 ------------- src/components/app/map/layers/MapLayerComponent.js | 22 ---- .../app/map/layers/ObjectHoverLayerComponent.js | 11 -- .../app/map/layers/RoomHoverLayerComponent.js | 6 - src/components/app/sidebars/Sidebar.js | 50 -------- src/components/app/sidebars/Sidebar.sass | 50 -------- .../app/sidebars/elements/LoadBarComponent.js | 22 ---- .../app/sidebars/elements/LoadChartComponent.js | 90 -------------- .../simulation/ExperimentMetadataComponent.js | 23 ---- .../app/sidebars/simulation/LoadMetricComponent.js | 40 ------- .../simulation/SimulationSidebarComponent.js | 22 ---- .../simulation/SimulationSidebarComponent.sass | 8 -- .../app/sidebars/simulation/TaskComponent.js | 58 --------- .../app/sidebars/simulation/TraceComponent.js | 20 ---- .../app/sidebars/topology/NameComponent.js | 13 -- .../sidebars/topology/TopologySidebarComponent.js | 31 ----- .../topology/building/BuildingSidebarComponent.js | 20 ---- .../building/NewRoomConstructionComponent.js | 31 ----- .../topology/machine/BackToRackComponent.js | 10 -- .../topology/machine/DeleteMachineComponent.js | 10 -- .../topology/machine/MachineNameComponent.js | 7 -- .../topology/machine/MachineSidebarComponent.js | 27 ----- .../sidebars/topology/machine/UnitAddComponent.js | 46 ------- .../app/sidebars/topology/machine/UnitComponent.js | 78 ------------ .../sidebars/topology/machine/UnitListComponent.js | 29 ----- .../sidebars/topology/machine/UnitTabsComponent.js | 65 ---------- .../sidebars/topology/rack/BackToRoomComponent.js | 10 -- .../sidebars/topology/rack/DeleteRackComponent.js | 10 -- .../sidebars/topology/rack/EmptySlotComponent.js | 19 --- .../app/sidebars/topology/rack/MachineComponent.js | 78 ------------ .../sidebars/topology/rack/MachineListComponent.js | 26 ---- .../topology/rack/MachineListComponent.sass | 2 - .../sidebars/topology/rack/RackNameComponent.js | 8 -- .../sidebars/topology/rack/RackSidebarComponent.js | 34 ------ .../topology/rack/RackSidebarComponent.sass | 11 -- .../topology/room/BackToBuildingComponent.js | 10 -- .../sidebars/topology/room/DeleteRoomComponent.js | 10 -- .../sidebars/topology/room/EditRoomComponent.js | 27 ----- .../topology/room/RackConstructionComponent.js | 32 ----- .../sidebars/topology/room/RoomNameComponent.js | 8 -- .../sidebars/topology/room/RoomSidebarComponent.js | 38 ------ .../sidebars/topology/room/RoomTypeComponent.js | 8 -- src/components/app/timeline/PlayButtonComponent.js | 30 ----- src/components/app/timeline/Timeline.sass | 116 ------------------ src/components/app/timeline/TimelineComponent.js | 37 ------ .../app/timeline/TimelineControlsComponent.js | 49 -------- .../app/timeline/TimelineLabelsComponent.js | 15 --- .../experiments/ExperimentListComponent.js | 59 --------- .../experiments/ExperimentRowComponent.js | 40 ------- .../experiments/NewExperimentButtonComponent.js | 17 --- src/components/home/ContactSection.js | 64 ---------- src/components/home/ContactSection.sass | 15 --- src/components/home/ContentSection.js | 19 --- src/components/home/ContentSection.sass | 9 -- src/components/home/IntroSection.js | 40 ------- src/components/home/JumbotronHeader.js | 20 ---- src/components/home/JumbotronHeader.sass | 24 ---- src/components/home/ModelingSection.js | 24 ---- src/components/home/ScreenshotSection.js | 32 ----- src/components/home/ScreenshotSection.sass | 5 - src/components/home/SimulationSection.js | 25 ---- src/components/home/StakeholderSection.js | 42 ------- src/components/home/TeamSection.js | 56 --------- src/components/home/TechnologiesSection.js | 42 ------- src/components/modals/ConfirmationModal.js | 37 ------ src/components/modals/Modal.js | 132 --------------------- src/components/modals/TextInputModal.js | 58 --------- .../NewExperimentModalComponent.js | 104 ---------------- src/components/navigation/AppNavbar.js | 56 --------- src/components/navigation/HomeNavbar.js | 24 ---- src/components/navigation/LogoutButton.js | 16 --- src/components/navigation/Navbar.js | 102 ---------------- src/components/navigation/Navbar.sass | 29 ----- src/components/not-found/BlinkingCursor.js | 6 - src/components/not-found/BlinkingCursor.sass | 35 ------ src/components/not-found/CodeBlock.js | 34 ------ src/components/not-found/CodeBlock.sass | 3 - src/components/not-found/TerminalWindow.js | 29 ----- src/components/not-found/TerminalWindow.sass | 70 ----------- src/components/simulations/FilterButton.js | 24 ---- src/components/simulations/FilterPanel.js | 13 -- src/components/simulations/FilterPanel.sass | 5 - .../simulations/NewSimulationButtonComponent.js | 17 --- .../simulations/SimulationActionButtons.js | 37 ------ src/components/simulations/SimulationAuthList.js | 43 ------- src/components/simulations/SimulationAuthRow.js | 32 ----- 110 files changed, 3720 deletions(-) delete mode 100644 src/components/app/map/LoadingScreen.js delete mode 100644 src/components/app/map/MapConstants.js delete mode 100644 src/components/app/map/MapStageComponent.js delete mode 100644 src/components/app/map/controls/ExportCanvasComponent.js delete mode 100644 src/components/app/map/controls/ScaleIndicatorComponent.js delete mode 100644 src/components/app/map/controls/ScaleIndicatorComponent.sass delete mode 100644 src/components/app/map/controls/ToolPanelComponent.js delete mode 100644 src/components/app/map/controls/ToolPanelComponent.sass delete mode 100644 src/components/app/map/controls/ZoomControlComponent.js delete mode 100644 src/components/app/map/elements/Backdrop.js delete mode 100644 src/components/app/map/elements/GrayLayer.js delete mode 100644 src/components/app/map/elements/HoverTile.js delete mode 100644 src/components/app/map/elements/ImageComponent.js delete mode 100644 src/components/app/map/elements/RackFillBar.js delete mode 100644 src/components/app/map/elements/RoomTile.js delete mode 100644 src/components/app/map/elements/TileObject.js delete mode 100644 src/components/app/map/elements/TilePlusIcon.js delete mode 100644 src/components/app/map/elements/WallSegment.js delete mode 100644 src/components/app/map/groups/DatacenterGroup.js delete mode 100644 src/components/app/map/groups/GridGroup.js delete mode 100644 src/components/app/map/groups/RackGroup.js delete mode 100644 src/components/app/map/groups/RoomGroup.js delete mode 100644 src/components/app/map/groups/TileGroup.js delete mode 100644 src/components/app/map/groups/WallGroup.js delete mode 100644 src/components/app/map/layers/HoverLayerComponent.js delete mode 100644 src/components/app/map/layers/MapLayerComponent.js delete mode 100644 src/components/app/map/layers/ObjectHoverLayerComponent.js delete mode 100644 src/components/app/map/layers/RoomHoverLayerComponent.js delete mode 100644 src/components/app/sidebars/Sidebar.js delete mode 100644 src/components/app/sidebars/Sidebar.sass delete mode 100644 src/components/app/sidebars/elements/LoadBarComponent.js delete mode 100644 src/components/app/sidebars/elements/LoadChartComponent.js delete mode 100644 src/components/app/sidebars/simulation/ExperimentMetadataComponent.js delete mode 100644 src/components/app/sidebars/simulation/LoadMetricComponent.js delete mode 100644 src/components/app/sidebars/simulation/SimulationSidebarComponent.js delete mode 100644 src/components/app/sidebars/simulation/SimulationSidebarComponent.sass delete mode 100644 src/components/app/sidebars/simulation/TaskComponent.js delete mode 100644 src/components/app/sidebars/simulation/TraceComponent.js delete mode 100644 src/components/app/sidebars/topology/NameComponent.js delete mode 100644 src/components/app/sidebars/topology/TopologySidebarComponent.js delete mode 100644 src/components/app/sidebars/topology/building/BuildingSidebarComponent.js delete mode 100644 src/components/app/sidebars/topology/building/NewRoomConstructionComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/BackToRackComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/DeleteMachineComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/MachineNameComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/MachineSidebarComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/UnitAddComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/UnitComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/UnitListComponent.js delete mode 100644 src/components/app/sidebars/topology/machine/UnitTabsComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/BackToRoomComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/DeleteRackComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/EmptySlotComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/MachineComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/MachineListComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/MachineListComponent.sass delete mode 100644 src/components/app/sidebars/topology/rack/RackNameComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/RackSidebarComponent.js delete mode 100644 src/components/app/sidebars/topology/rack/RackSidebarComponent.sass delete mode 100644 src/components/app/sidebars/topology/room/BackToBuildingComponent.js delete mode 100644 src/components/app/sidebars/topology/room/DeleteRoomComponent.js delete mode 100644 src/components/app/sidebars/topology/room/EditRoomComponent.js delete mode 100644 src/components/app/sidebars/topology/room/RackConstructionComponent.js delete mode 100644 src/components/app/sidebars/topology/room/RoomNameComponent.js delete mode 100644 src/components/app/sidebars/topology/room/RoomSidebarComponent.js delete mode 100644 src/components/app/sidebars/topology/room/RoomTypeComponent.js delete mode 100644 src/components/app/timeline/PlayButtonComponent.js delete mode 100644 src/components/app/timeline/Timeline.sass delete mode 100644 src/components/app/timeline/TimelineComponent.js delete mode 100644 src/components/app/timeline/TimelineControlsComponent.js delete mode 100644 src/components/app/timeline/TimelineLabelsComponent.js delete mode 100644 src/components/experiments/ExperimentListComponent.js delete mode 100644 src/components/experiments/ExperimentRowComponent.js delete mode 100644 src/components/experiments/NewExperimentButtonComponent.js delete mode 100644 src/components/home/ContactSection.js delete mode 100644 src/components/home/ContactSection.sass delete mode 100644 src/components/home/ContentSection.js delete mode 100644 src/components/home/ContentSection.sass delete mode 100644 src/components/home/IntroSection.js delete mode 100644 src/components/home/JumbotronHeader.js delete mode 100644 src/components/home/JumbotronHeader.sass delete mode 100644 src/components/home/ModelingSection.js delete mode 100644 src/components/home/ScreenshotSection.js delete mode 100644 src/components/home/ScreenshotSection.sass delete mode 100644 src/components/home/SimulationSection.js delete mode 100644 src/components/home/StakeholderSection.js delete mode 100644 src/components/home/TeamSection.js delete mode 100644 src/components/home/TechnologiesSection.js delete mode 100644 src/components/modals/ConfirmationModal.js delete mode 100644 src/components/modals/Modal.js delete mode 100644 src/components/modals/TextInputModal.js delete mode 100644 src/components/modals/custom-components/NewExperimentModalComponent.js delete mode 100644 src/components/navigation/AppNavbar.js delete mode 100644 src/components/navigation/HomeNavbar.js delete mode 100644 src/components/navigation/LogoutButton.js delete mode 100644 src/components/navigation/Navbar.js delete mode 100644 src/components/navigation/Navbar.sass delete mode 100644 src/components/not-found/BlinkingCursor.js delete mode 100644 src/components/not-found/BlinkingCursor.sass delete mode 100644 src/components/not-found/CodeBlock.js delete mode 100644 src/components/not-found/CodeBlock.sass delete mode 100644 src/components/not-found/TerminalWindow.js delete mode 100644 src/components/not-found/TerminalWindow.sass delete mode 100644 src/components/simulations/FilterButton.js delete mode 100644 src/components/simulations/FilterPanel.js delete mode 100644 src/components/simulations/FilterPanel.sass delete mode 100644 src/components/simulations/NewSimulationButtonComponent.js delete mode 100644 src/components/simulations/SimulationActionButtons.js delete mode 100644 src/components/simulations/SimulationAuthList.js delete mode 100644 src/components/simulations/SimulationAuthRow.js (limited to 'src/components') diff --git a/src/components/app/map/LoadingScreen.js b/src/components/app/map/LoadingScreen.js deleted file mode 100644 index 9f379e0b..00000000 --- a/src/components/app/map/LoadingScreen.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from "react"; -import FontAwesome from "react-fontawesome"; - -const LoadingScreen = () => ( -
- - Loading your datacenter... -
-); - -export default LoadingScreen; diff --git a/src/components/app/map/MapConstants.js b/src/components/app/map/MapConstants.js deleted file mode 100644 index 32438b5e..00000000 --- a/src/components/app/map/MapConstants.js +++ /dev/null @@ -1,29 +0,0 @@ -export const MAP_SIZE = 50; -export const TILE_SIZE_IN_PIXELS = 100; -export const TILE_SIZE_IN_METERS = 0.5; -export const MAP_SIZE_IN_PIXELS = MAP_SIZE * TILE_SIZE_IN_PIXELS; - -export const OBJECT_MARGIN_IN_PIXELS = TILE_SIZE_IN_PIXELS / 5; -export const TILE_PLUS_MARGIN_IN_PIXELS = TILE_SIZE_IN_PIXELS / 3; -export const OBJECT_SIZE_IN_PIXELS = - TILE_SIZE_IN_PIXELS - OBJECT_MARGIN_IN_PIXELS * 2; - -export const GRID_LINE_WIDTH_IN_PIXELS = 2; -export const WALL_WIDTH_IN_PIXELS = TILE_SIZE_IN_PIXELS / 8; -export const OBJECT_BORDER_WIDTH_IN_PIXELS = TILE_SIZE_IN_PIXELS / 12; -export const TILE_PLUS_WIDTH_IN_PIXELS = TILE_SIZE_IN_PIXELS / 10; - -export const SIDEBAR_WIDTH = 350; -export const VIEWPORT_PADDING = 50; - -export const RACK_FILL_ICON_WIDTH = OBJECT_SIZE_IN_PIXELS / 3; -export const RACK_FILL_ICON_OPACITY = 0.8; - -export const MAP_MOVE_PIXELS_PER_EVENT = 20; -export const MAP_SCALE_PER_EVENT = 1.1; -export const MAP_MIN_SCALE = 0.5; -export const MAP_MAX_SCALE = 1.5; - -export const MAX_NUM_UNITS_PER_MACHINE = 4; -export const DEFAULT_RACK_SLOT_CAPACITY = 42; -export const DEFAULT_RACK_POWER_CAPACITY = 10000; diff --git a/src/components/app/map/MapStageComponent.js b/src/components/app/map/MapStageComponent.js deleted file mode 100644 index 67b3349c..00000000 --- a/src/components/app/map/MapStageComponent.js +++ /dev/null @@ -1,126 +0,0 @@ -import React from "react"; -import { Stage } from "react-konva"; -import { Shortcuts } from "react-shortcuts"; -import MapLayer from "../../../containers/app/map/layers/MapLayer"; -import ObjectHoverLayer from "../../../containers/app/map/layers/ObjectHoverLayer"; -import RoomHoverLayer from "../../../containers/app/map/layers/RoomHoverLayer"; -import jQuery from "../../../util/jquery"; -import { NAVBAR_HEIGHT } from "../../navigation/Navbar"; -import { MAP_MOVE_PIXELS_PER_EVENT } from "./MapConstants"; -import { Provider } from "react-redux"; -import { store } from "../../../store/configure-store"; - -class MapStageComponent extends React.Component { - state = { - mouseX: 0, - mouseY: 0 - }; - - constructor(props) { - super(props); - - this.updateDimensions = this.updateDimensions.bind(this); - this.updateScale = this.updateScale.bind(this); - } - - componentWillMount() { - this.updateDimensions(); - } - - componentDidMount() { - window.addEventListener("resize", this.updateDimensions); - window.addEventListener("wheel", this.updateScale); - - window["exportCanvasToImage"] = () => { - const download = document.createElement("a"); - download.href = this.stage.getStage().toDataURL(); - download.download = "opendc-canvas-export-" + Date.now() + ".png"; - download.click(); - }; - } - - componentWillUnmount() { - window.removeEventListener("resize", this.updateDimensions); - window.removeEventListener("wheel", this.updateScale); - } - - updateDimensions() { - this.props.setMapDimensions( - jQuery(window).width(), - jQuery(window).height() - NAVBAR_HEIGHT - ); - } - - updateScale(e) { - e.preventDefault(); - this.props.zoomInOnPosition( - e.deltaY < 0, - this.state.mouseX, - this.state.mouseY - ); - } - - updateMousePosition() { - const mousePos = this.stage.getStage().getPointerPosition(); - this.setState({ mouseX: mousePos.x, mouseY: mousePos.y }); - } - - handleShortcuts(action) { - switch (action) { - case "MOVE_LEFT": - this.moveWithDelta(MAP_MOVE_PIXELS_PER_EVENT, 0); - break; - case "MOVE_RIGHT": - this.moveWithDelta(-MAP_MOVE_PIXELS_PER_EVENT, 0); - break; - case "MOVE_UP": - this.moveWithDelta(0, MAP_MOVE_PIXELS_PER_EVENT); - break; - case "MOVE_DOWN": - this.moveWithDelta(0, -MAP_MOVE_PIXELS_PER_EVENT); - break; - default: - break; - } - } - - moveWithDelta(deltaX, deltaY) { - this.props.setMapPositionWithBoundsCheck( - this.props.mapPosition.x + deltaX, - this.props.mapPosition.y + deltaY - ); - } - - render() { - return ( - - { - this.stage = stage; - }} - width={this.props.mapDimensions.width} - height={this.props.mapDimensions.height} - onMouseMove={this.updateMousePosition.bind(this)} - > - - - - - - - - ); - } -} - -export default MapStageComponent; diff --git a/src/components/app/map/controls/ExportCanvasComponent.js b/src/components/app/map/controls/ExportCanvasComponent.js deleted file mode 100644 index ee934f21..00000000 --- a/src/components/app/map/controls/ExportCanvasComponent.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; - -const ExportCanvasComponent = () => ( - -); - -export default ExportCanvasComponent; diff --git a/src/components/app/map/controls/ScaleIndicatorComponent.js b/src/components/app/map/controls/ScaleIndicatorComponent.js deleted file mode 100644 index b7b5cc36..00000000 --- a/src/components/app/map/controls/ScaleIndicatorComponent.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from "react"; -import { TILE_SIZE_IN_METERS, TILE_SIZE_IN_PIXELS } from "../MapConstants"; -import "./ScaleIndicatorComponent.css"; - -const ScaleIndicatorComponent = ({ scale }) => ( -
- {TILE_SIZE_IN_METERS}m -
-); - -export default ScaleIndicatorComponent; diff --git a/src/components/app/map/controls/ScaleIndicatorComponent.sass b/src/components/app/map/controls/ScaleIndicatorComponent.sass deleted file mode 100644 index f2d2b55b..00000000 --- a/src/components/app/map/controls/ScaleIndicatorComponent.sass +++ /dev/null @@ -1,9 +0,0 @@ -.scale-indicator - position: absolute - right: 10px - bottom: 10px - z-index: 50 - - border: solid 2px #212529 - border-top: none - border-left: none diff --git a/src/components/app/map/controls/ToolPanelComponent.js b/src/components/app/map/controls/ToolPanelComponent.js deleted file mode 100644 index 605e9887..00000000 --- a/src/components/app/map/controls/ToolPanelComponent.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import ZoomControlContainer from "../../../../containers/app/map/controls/ZoomControlContainer"; -import ExportCanvasComponent from "./ExportCanvasComponent"; -import "./ToolPanelComponent.css"; - -const ToolPanelComponent = () => ( -
- - -
-); - -export default ToolPanelComponent; diff --git a/src/components/app/map/controls/ToolPanelComponent.sass b/src/components/app/map/controls/ToolPanelComponent.sass deleted file mode 100644 index 996712b3..00000000 --- a/src/components/app/map/controls/ToolPanelComponent.sass +++ /dev/null @@ -1,5 +0,0 @@ -.tool-panel - position: absolute - left: 10px - bottom: 10px - z-index: 50 diff --git a/src/components/app/map/controls/ZoomControlComponent.js b/src/components/app/map/controls/ZoomControlComponent.js deleted file mode 100644 index e1b7491e..00000000 --- a/src/components/app/map/controls/ZoomControlComponent.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; - -const ZoomControlComponent = ({ zoomInOnCenter }) => { - return ( - - - - - ); -}; - -export default ZoomControlComponent; diff --git a/src/components/app/map/elements/Backdrop.js b/src/components/app/map/elements/Backdrop.js deleted file mode 100644 index 57414463..00000000 --- a/src/components/app/map/elements/Backdrop.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from "react"; -import { Rect } from "react-konva"; -import { BACKDROP_COLOR } from "../../../../util/colors"; -import { MAP_SIZE_IN_PIXELS } from "../MapConstants"; - -const Backdrop = () => ( - -); - -export default Backdrop; diff --git a/src/components/app/map/elements/GrayLayer.js b/src/components/app/map/elements/GrayLayer.js deleted file mode 100644 index 28fadd8a..00000000 --- a/src/components/app/map/elements/GrayLayer.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; -import { Rect } from "react-konva"; -import { GRAYED_OUT_AREA_COLOR } from "../../../../util/colors"; -import { MAP_SIZE_IN_PIXELS } from "../MapConstants"; - -const GrayLayer = ({ onClick }) => ( - -); - -export default GrayLayer; diff --git a/src/components/app/map/elements/HoverTile.js b/src/components/app/map/elements/HoverTile.js deleted file mode 100644 index 42e6547c..00000000 --- a/src/components/app/map/elements/HoverTile.js +++ /dev/null @@ -1,30 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Rect } from "react-konva"; -import { - ROOM_HOVER_INVALID_COLOR, - ROOM_HOVER_VALID_COLOR -} from "../../../../util/colors"; -import { TILE_SIZE_IN_PIXELS } from "../MapConstants"; - -const HoverTile = ({ pixelX, pixelY, isValid, scale, onClick }) => ( - -); - -HoverTile.propTypes = { - pixelX: PropTypes.number.isRequired, - pixelY: PropTypes.number.isRequired, - isValid: PropTypes.bool.isRequired, - onClick: PropTypes.func.isRequired -}; - -export default HoverTile; diff --git a/src/components/app/map/elements/ImageComponent.js b/src/components/app/map/elements/ImageComponent.js deleted file mode 100644 index cf41ddfe..00000000 --- a/src/components/app/map/elements/ImageComponent.js +++ /dev/null @@ -1,48 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Image } from "react-konva"; - -class ImageComponent extends React.Component { - static imageCaches = {}; - static propTypes = { - src: PropTypes.string.isRequired, - x: PropTypes.number.isRequired, - y: PropTypes.number.isRequired, - width: PropTypes.number.isRequired, - height: PropTypes.number.isRequired, - opacity: PropTypes.number.isRequired - }; - - state = { - image: null - }; - - componentDidMount() { - if (ImageComponent.imageCaches[this.props.src]) { - this.setState({ image: ImageComponent.imageCaches[this.props.src] }); - return; - } - - const image = new window.Image(); - image.src = this.props.src; - image.onload = () => { - this.setState({ image }); - ImageComponent.imageCaches[this.props.src] = image; - }; - } - - render() { - return ( - - ); - } -} - -export default ImageComponent; diff --git a/src/components/app/map/elements/RackFillBar.js b/src/components/app/map/elements/RackFillBar.js deleted file mode 100644 index 43701d97..00000000 --- a/src/components/app/map/elements/RackFillBar.js +++ /dev/null @@ -1,89 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Group, Rect } from "react-konva"; -import { - RACK_ENERGY_BAR_BACKGROUND_COLOR, - RACK_ENERGY_BAR_FILL_COLOR, - RACK_SPACE_BAR_BACKGROUND_COLOR, - RACK_SPACE_BAR_FILL_COLOR -} from "../../../../util/colors"; -import { - OBJECT_BORDER_WIDTH_IN_PIXELS, - OBJECT_MARGIN_IN_PIXELS, - RACK_FILL_ICON_OPACITY, - RACK_FILL_ICON_WIDTH, - TILE_SIZE_IN_PIXELS -} from "../MapConstants"; -import ImageComponent from "./ImageComponent"; - -const RackFillBar = ({ positionX, positionY, type, fillFraction }) => { - const halfOfObjectBorderWidth = OBJECT_BORDER_WIDTH_IN_PIXELS / 2; - const x = - positionX * TILE_SIZE_IN_PIXELS + - OBJECT_MARGIN_IN_PIXELS + - (type === "space" - ? halfOfObjectBorderWidth - : 0.5 * (TILE_SIZE_IN_PIXELS - 2 * OBJECT_MARGIN_IN_PIXELS)); - const startY = - positionY * TILE_SIZE_IN_PIXELS + - OBJECT_MARGIN_IN_PIXELS + - halfOfObjectBorderWidth; - const width = - 0.5 * (TILE_SIZE_IN_PIXELS - OBJECT_MARGIN_IN_PIXELS * 2) - - halfOfObjectBorderWidth; - const fullHeight = - TILE_SIZE_IN_PIXELS - - OBJECT_MARGIN_IN_PIXELS * 2 - - OBJECT_BORDER_WIDTH_IN_PIXELS; - - const fractionHeight = fillFraction * fullHeight; - const fractionY = - (positionY + 1) * TILE_SIZE_IN_PIXELS - - OBJECT_MARGIN_IN_PIXELS - - halfOfObjectBorderWidth - - fractionHeight; - - return ( - - - - - - ); -}; - -RackFillBar.propTypes = { - positionX: PropTypes.number.isRequired, - positionY: PropTypes.number.isRequired, - type: PropTypes.string.isRequired, - fillFraction: PropTypes.number.isRequired -}; - -export default RackFillBar; diff --git a/src/components/app/map/elements/RoomTile.js b/src/components/app/map/elements/RoomTile.js deleted file mode 100644 index 71c3bf15..00000000 --- a/src/components/app/map/elements/RoomTile.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import { Rect } from "react-konva"; -import Shapes from "../../../../shapes/index"; -import { TILE_SIZE_IN_PIXELS } from "../MapConstants"; - -const RoomTile = ({ tile, color }) => ( - -); - -RoomTile.propTypes = { - tile: Shapes.Tile -}; - -export default RoomTile; diff --git a/src/components/app/map/elements/TileObject.js b/src/components/app/map/elements/TileObject.js deleted file mode 100644 index c1b631db..00000000 --- a/src/components/app/map/elements/TileObject.js +++ /dev/null @@ -1,29 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Rect } from "react-konva"; -import { OBJECT_BORDER_COLOR } from "../../../../util/colors"; -import { - OBJECT_BORDER_WIDTH_IN_PIXELS, - OBJECT_MARGIN_IN_PIXELS, - TILE_SIZE_IN_PIXELS -} from "../MapConstants"; - -const TileObject = ({ positionX, positionY, color }) => ( - -); - -TileObject.propTypes = { - positionX: PropTypes.number.isRequired, - positionY: PropTypes.number.isRequired, - color: PropTypes.string.isRequired -}; - -export default TileObject; diff --git a/src/components/app/map/elements/TilePlusIcon.js b/src/components/app/map/elements/TilePlusIcon.js deleted file mode 100644 index 06377152..00000000 --- a/src/components/app/map/elements/TilePlusIcon.js +++ /dev/null @@ -1,52 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Group, Line } from "react-konva"; -import { TILE_PLUS_COLOR } from "../../../../util/colors"; -import { - TILE_PLUS_MARGIN_IN_PIXELS, - TILE_PLUS_WIDTH_IN_PIXELS, - TILE_SIZE_IN_PIXELS -} from "../MapConstants"; - -const TilePlusIcon = ({ pixelX, pixelY, mapScale }) => { - const linePoints = [ - [ - pixelX + 0.5 * TILE_SIZE_IN_PIXELS * mapScale, - pixelY + TILE_PLUS_MARGIN_IN_PIXELS * mapScale, - pixelX + 0.5 * TILE_SIZE_IN_PIXELS * mapScale, - pixelY + - TILE_SIZE_IN_PIXELS * mapScale - - TILE_PLUS_MARGIN_IN_PIXELS * mapScale - ], - [ - pixelX + TILE_PLUS_MARGIN_IN_PIXELS * mapScale, - pixelY + 0.5 * TILE_SIZE_IN_PIXELS * mapScale, - pixelX + - TILE_SIZE_IN_PIXELS * mapScale - - TILE_PLUS_MARGIN_IN_PIXELS * mapScale, - pixelY + 0.5 * TILE_SIZE_IN_PIXELS * mapScale - ] - ]; - return ( - - {linePoints.map((points, index) => ( - - ))} - - ); -}; - -TilePlusIcon.propTypes = { - pixelX: PropTypes.number, - pixelY: PropTypes.number, - mapScale: PropTypes.number -}; - -export default TilePlusIcon; diff --git a/src/components/app/map/elements/WallSegment.js b/src/components/app/map/elements/WallSegment.js deleted file mode 100644 index c5011656..00000000 --- a/src/components/app/map/elements/WallSegment.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from "react"; -import { Line } from "react-konva"; -import Shapes from "../../../../shapes/index"; -import { WALL_COLOR } from "../../../../util/colors"; -import { TILE_SIZE_IN_PIXELS, WALL_WIDTH_IN_PIXELS } from "../MapConstants"; - -const WallSegment = ({ wallSegment }) => { - let points; - if (wallSegment.isHorizontal) { - points = [ - wallSegment.startPosX * TILE_SIZE_IN_PIXELS, - wallSegment.startPosY * TILE_SIZE_IN_PIXELS, - (wallSegment.startPosX + wallSegment.length) * TILE_SIZE_IN_PIXELS, - wallSegment.startPosY * TILE_SIZE_IN_PIXELS - ]; - } else { - points = [ - wallSegment.startPosX * TILE_SIZE_IN_PIXELS, - wallSegment.startPosY * TILE_SIZE_IN_PIXELS, - wallSegment.startPosX * TILE_SIZE_IN_PIXELS, - (wallSegment.startPosY + wallSegment.length) * TILE_SIZE_IN_PIXELS - ]; - } - - return ( - - ); -}; - -WallSegment.propTypes = { - wallSegment: Shapes.WallSegment -}; - -export default WallSegment; diff --git a/src/components/app/map/groups/DatacenterGroup.js b/src/components/app/map/groups/DatacenterGroup.js deleted file mode 100644 index 51e32db6..00000000 --- a/src/components/app/map/groups/DatacenterGroup.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; -import { Group } from "react-konva"; -import GrayContainer from "../../../../containers/app/map/GrayContainer"; -import RoomContainer from "../../../../containers/app/map/RoomContainer"; -import Shapes from "../../../../shapes/index"; - -const DatacenterGroup = ({ datacenter, interactionLevel }) => { - if (!datacenter) { - return ; - } - - if (interactionLevel.mode === "BUILDING") { - return ( - - {datacenter.roomIds.map(roomId => ( - - ))} - - ); - } - - return ( - - {datacenter.roomIds - .filter(roomId => roomId !== interactionLevel.roomId) - .map(roomId => )} - {interactionLevel.mode === "ROOM" ? : null} - {datacenter.roomIds - .filter(roomId => roomId === interactionLevel.roomId) - .map(roomId => )} - - ); -}; - -DatacenterGroup.propTypes = { - datacenter: Shapes.Datacenter, - interactionLevel: Shapes.InteractionLevel -}; - -export default DatacenterGroup; diff --git a/src/components/app/map/groups/GridGroup.js b/src/components/app/map/groups/GridGroup.js deleted file mode 100644 index bbb1eb68..00000000 --- a/src/components/app/map/groups/GridGroup.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from "react"; -import { Group, Line } from "react-konva"; -import { GRID_COLOR } from "../../../../util/colors"; -import { - GRID_LINE_WIDTH_IN_PIXELS, - MAP_SIZE, - MAP_SIZE_IN_PIXELS, - TILE_SIZE_IN_PIXELS -} from "../MapConstants"; - -const MAP_COORDINATE_ENTRIES = Array.from(new Array(MAP_SIZE), (x, i) => i); -const HORIZONTAL_POINT_PAIRS = MAP_COORDINATE_ENTRIES.map(index => [ - 0, - index * TILE_SIZE_IN_PIXELS, - MAP_SIZE_IN_PIXELS, - index * TILE_SIZE_IN_PIXELS -]); -const VERTICAL_POINT_PAIRS = MAP_COORDINATE_ENTRIES.map(index => [ - index * TILE_SIZE_IN_PIXELS, - 0, - index * TILE_SIZE_IN_PIXELS, - MAP_SIZE_IN_PIXELS -]); - -const GridGroup = () => ( - - {HORIZONTAL_POINT_PAIRS.concat( - VERTICAL_POINT_PAIRS - ).map((points, index) => ( - - ))} - -); - -export default GridGroup; diff --git a/src/components/app/map/groups/RackGroup.js b/src/components/app/map/groups/RackGroup.js deleted file mode 100644 index 69d6ac10..00000000 --- a/src/components/app/map/groups/RackGroup.js +++ /dev/null @@ -1,43 +0,0 @@ -import React from "react"; -import { Group } from "react-konva"; -import RackEnergyFillContainer from "../../../../containers/app/map/RackEnergyFillContainer"; -import RackSpaceFillContainer from "../../../../containers/app/map/RackSpaceFillContainer"; -import Shapes from "../../../../shapes/index"; -import { RACK_BACKGROUND_COLOR } from "../../../../util/colors"; -import { convertLoadToSimulationColor } from "../../../../util/simulation-load"; -import TileObject from "../elements/TileObject"; - -const RackGroup = ({ tile, inSimulation, rackLoad }) => { - let color = RACK_BACKGROUND_COLOR; - if (inSimulation && rackLoad >= 0) { - color = convertLoadToSimulationColor(rackLoad); - } - - return ( - - - - - - - - ); -}; - -RackGroup.propTypes = { - tile: Shapes.Tile -}; - -export default RackGroup; diff --git a/src/components/app/map/groups/RoomGroup.js b/src/components/app/map/groups/RoomGroup.js deleted file mode 100644 index c8f0d3db..00000000 --- a/src/components/app/map/groups/RoomGroup.js +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react"; -import { Group } from "react-konva"; -import GrayContainer from "../../../../containers/app/map/GrayContainer"; -import TileContainer from "../../../../containers/app/map/TileContainer"; -import WallContainer from "../../../../containers/app/map/WallContainer"; -import Shapes from "../../../../shapes/index"; - -const RoomGroup = ({ - room, - interactionLevel, - currentRoomInConstruction, - onClick -}) => { - if (currentRoomInConstruction === room.id) { - return ( - - {room.tileIds.map(tileId => ( - - ))} - - ); - } - - return ( - - {(() => { - if ( - (interactionLevel.mode === "RACK" || - interactionLevel.mode === "MACHINE") && - interactionLevel.roomId === room.id - ) { - return [ - room.tileIds - .filter(tileId => tileId !== interactionLevel.tileId) - .map(tileId => ), - , - room.tileIds - .filter(tileId => tileId === interactionLevel.tileId) - .map(tileId => ) - ]; - } else { - return room.tileIds.map(tileId => ( - - )); - } - })()} - - - ); -}; - -RoomGroup.propTypes = { - room: Shapes.Room -}; - -export default RoomGroup; diff --git a/src/components/app/map/groups/TileGroup.js b/src/components/app/map/groups/TileGroup.js deleted file mode 100644 index 8f3953d7..00000000 --- a/src/components/app/map/groups/TileGroup.js +++ /dev/null @@ -1,43 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Group } from "react-konva"; -import RackContainer from "../../../../containers/app/map/RackContainer"; -import Shapes from "../../../../shapes/index"; -import { - ROOM_DEFAULT_COLOR, - ROOM_IN_CONSTRUCTION_COLOR -} from "../../../../util/colors"; -import { convertLoadToSimulationColor } from "../../../../util/simulation-load"; -import RoomTile from "../elements/RoomTile"; - -const TileGroup = ({ tile, newTile, inSimulation, roomLoad, onClick }) => { - let tileObject; - switch (tile.objectType) { - case "RACK": - tileObject = ; - break; - default: - tileObject = null; - } - - let color = ROOM_DEFAULT_COLOR; - if (newTile) { - color = ROOM_IN_CONSTRUCTION_COLOR; - } else if (inSimulation && roomLoad >= 0) { - color = convertLoadToSimulationColor(roomLoad); - } - - return ( - onClick(tile)}> - - {tileObject} - - ); -}; - -TileGroup.propTypes = { - tile: Shapes.Tile, - newTile: PropTypes.bool -}; - -export default TileGroup; diff --git a/src/components/app/map/groups/WallGroup.js b/src/components/app/map/groups/WallGroup.js deleted file mode 100644 index 43de66e8..00000000 --- a/src/components/app/map/groups/WallGroup.js +++ /dev/null @@ -1,22 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Group } from "react-konva"; -import Shapes from "../../../../shapes/index"; -import { deriveWallLocations } from "../../../../util/tile-calculations"; -import WallSegment from "../elements/WallSegment"; - -const WallGroup = ({ tiles }) => { - return ( - - {deriveWallLocations(tiles).map((wallSegment, index) => ( - - ))} - - ); -}; - -WallGroup.propTypes = { - tiles: PropTypes.arrayOf(Shapes.Tile).isRequired -}; - -export default WallGroup; diff --git a/src/components/app/map/layers/HoverLayerComponent.js b/src/components/app/map/layers/HoverLayerComponent.js deleted file mode 100644 index c39532f1..00000000 --- a/src/components/app/map/layers/HoverLayerComponent.js +++ /dev/null @@ -1,85 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Layer } from "react-konva"; -import HoverTile from "../elements/HoverTile"; -import { TILE_SIZE_IN_PIXELS } from "../MapConstants"; - -class HoverLayerComponent extends React.Component { - static propTypes = { - mouseX: PropTypes.number.isRequired, - mouseY: PropTypes.number.isRequired, - mapPosition: PropTypes.object.isRequired, - mapScale: PropTypes.number.isRequired, - isEnabled: PropTypes.func.isRequired, - onClick: PropTypes.func.isRequired - }; - - state = { - positionX: -1, - positionY: -1, - validity: false - }; - - componentDidUpdate() { - if (!this.props.isEnabled()) { - return; - } - - const positionX = Math.floor( - (this.props.mouseX - this.props.mapPosition.x) / - (this.props.mapScale * TILE_SIZE_IN_PIXELS) - ); - const positionY = Math.floor( - (this.props.mouseY - this.props.mapPosition.y) / - (this.props.mapScale * TILE_SIZE_IN_PIXELS) - ); - - if ( - positionX !== this.state.positionX || - positionY !== this.state.positionY - ) { - this.setState({ - positionX, - positionY, - validity: this.props.isValid(positionX, positionY) - }); - } - } - - render() { - if (!this.props.isEnabled()) { - return ; - } - - const pixelX = - this.props.mapScale * this.state.positionX * TILE_SIZE_IN_PIXELS + - this.props.mapPosition.x; - const pixelY = - this.props.mapScale * this.state.positionY * TILE_SIZE_IN_PIXELS + - this.props.mapPosition.y; - - return ( - - - this.state.validity - ? this.props.onClick(this.state.positionX, this.state.positionY) - : undefined} - /> - {this.props.children - ? React.cloneElement(this.props.children, { - pixelX, - pixelY, - scale: this.props.mapScale - }) - : undefined} - - ); - } -} - -export default HoverLayerComponent; diff --git a/src/components/app/map/layers/MapLayerComponent.js b/src/components/app/map/layers/MapLayerComponent.js deleted file mode 100644 index 6ad3cb88..00000000 --- a/src/components/app/map/layers/MapLayerComponent.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import { Group, Layer } from "react-konva"; -import DatacenterContainer from "../../../../containers/app/map/DatacenterContainer"; -import Backdrop from "../elements/Backdrop"; -import GridGroup from "../groups/GridGroup"; - -const MapLayerComponent = ({ mapPosition, mapScale }) => ( - - - - - - - -); - -export default MapLayerComponent; diff --git a/src/components/app/map/layers/ObjectHoverLayerComponent.js b/src/components/app/map/layers/ObjectHoverLayerComponent.js deleted file mode 100644 index e7342d3c..00000000 --- a/src/components/app/map/layers/ObjectHoverLayerComponent.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from "react"; -import TilePlusIcon from "../elements/TilePlusIcon"; -import HoverLayerComponent from "./HoverLayerComponent"; - -const ObjectHoverLayerComponent = props => ( - - - -); - -export default ObjectHoverLayerComponent; diff --git a/src/components/app/map/layers/RoomHoverLayerComponent.js b/src/components/app/map/layers/RoomHoverLayerComponent.js deleted file mode 100644 index feea5ae5..00000000 --- a/src/components/app/map/layers/RoomHoverLayerComponent.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from "react"; -import HoverLayerComponent from "./HoverLayerComponent"; - -const RoomHoverLayerComponent = props => ; - -export default RoomHoverLayerComponent; diff --git a/src/components/app/sidebars/Sidebar.js b/src/components/app/sidebars/Sidebar.js deleted file mode 100644 index 33dbe011..00000000 --- a/src/components/app/sidebars/Sidebar.js +++ /dev/null @@ -1,50 +0,0 @@ -import classNames from "classnames"; -import React from "react"; -import "./Sidebar.css"; - -class Sidebar extends React.Component { - state = { - collapsed: false - }; - - render() { - const collapseButton = ( -
this.setState({ collapsed: !this.state.collapsed })} - > - {(this.state.collapsed && this.props.isRight) || - (!this.state.collapsed && !this.props.isRight) ? ( - - ) : ( - - )} -
- ); - - if (this.state.collapsed) { - return collapseButton; - } - return ( -
e.stopPropagation()} - > - {this.props.children} - {collapseButton} -
- ); - } -} - -export default Sidebar; diff --git a/src/components/app/sidebars/Sidebar.sass b/src/components/app/sidebars/Sidebar.sass deleted file mode 100644 index 4d0e5f1e..00000000 --- a/src/components/app/sidebars/Sidebar.sass +++ /dev/null @@ -1,50 +0,0 @@ -@import ../../../style-globals/_variables.sass -@import ../../../style-globals/_mixins.sass - -.sidebar-collapse-button - position: absolute - left: 5px - top: 5px - padding: 5px 7px - - background: white - border: solid 1px $gray-semi-light - z-index: 99 - - +clickable - +border-radius(5px) - +transition(background, 200ms) - - &.sidebar-collapse-button-right - left: auto - right: 5px - top: 5px - - &:hover - background: #eeeeee - -.sidebar - position: absolute - top: 0 - left: 0 - width: 350px - - z-index: 100 - background: white - - border-right: $gray-semi-dark 1px solid - - .sidebar-collapse-button - left: auto - right: -25px - -.sidebar-right - left: auto - right: 0 - - border-left: $gray-semi-dark 1px solid - border-right: none - - .sidebar-collapse-button-right - left: -25px - right: auto diff --git a/src/components/app/sidebars/elements/LoadBarComponent.js b/src/components/app/sidebars/elements/LoadBarComponent.js deleted file mode 100644 index 8c9b164b..00000000 --- a/src/components/app/sidebars/elements/LoadBarComponent.js +++ /dev/null @@ -1,22 +0,0 @@ -import classNames from "classnames"; -import React from "react"; - -const LoadBarComponent = ({ percent, disabled }) => ( -
- Current load -
-
- {percent}% -
-
-
-); - -export default LoadBarComponent; diff --git a/src/components/app/sidebars/elements/LoadChartComponent.js b/src/components/app/sidebars/elements/LoadChartComponent.js deleted file mode 100644 index 5f0d40cb..00000000 --- a/src/components/app/sidebars/elements/LoadChartComponent.js +++ /dev/null @@ -1,90 +0,0 @@ -import React from "react"; -import ReactDOM from "react-dom/server"; -import SvgSaver from "svgsaver"; -import { - VictoryAxis, - VictoryChart, - VictoryLabel, - VictoryLine, - VictoryScatter -} from "victory"; -import { convertSecondsToFormattedTime } from "../../../../util/date-time"; - -const LoadChartComponent = ({ data, currentTick }) => { - const onExport = () => { - const div = document.createElement("div"); - div.innerHTML = ReactDOM.renderToString( - - ); - div.firstChild.style = - "font-family: Roboto, Arial, sans-serif; font-size: 10pt;"; - const svgSaver = new SvgSaver(); - svgSaver.asSvg( - div.firstChild, - "opendc-chart-export-" + Date.now() + ".svg" - ); - }; - - return ( -
- Load over time - - -
- ); -}; - -const VictoryChartComponent = ({ data, currentTick, showCurrentTick }) => ( - - convertSecondsToFormattedTime(tick)} - fixLabelOverlap={true} - label="Simulated Time" - /> - - - - {showCurrentTick ? ( - - } - data={[{ x: currentTick + 1, y: 0 }, { x: currentTick + 1, y: 1 }]} - labels={point => - point.y === 1 - ? "Current tick : " + convertSecondsToFormattedTime(currentTick) - : ""} - style={{ - data: { stroke: "#00A6D6", strokeWidth: 4 }, - labels: { fill: "#00A6D6" } - }} - /> - ) : ( - undefined - )} - -); - -const ExportChartComponent = ({ onExport }) => ( - -); - -export default LoadChartComponent; diff --git a/src/components/app/sidebars/simulation/ExperimentMetadataComponent.js b/src/components/app/sidebars/simulation/ExperimentMetadataComponent.js deleted file mode 100644 index bc563dab..00000000 --- a/src/components/app/sidebars/simulation/ExperimentMetadataComponent.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; - -const ExperimentMetadataComponent = ({ - experimentName, - pathName, - traceName, - schedulerName -}) => ( -
-

{experimentName}

-

- Path: {pathName} -

-

- Trace: {traceName} -

-

- Scheduler: {schedulerName} -

-
-); - -export default ExperimentMetadataComponent; diff --git a/src/components/app/sidebars/simulation/LoadMetricComponent.js b/src/components/app/sidebars/simulation/LoadMetricComponent.js deleted file mode 100644 index 3e4cf810..00000000 --- a/src/components/app/sidebars/simulation/LoadMetricComponent.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; -import { - SIM_HIGH_COLOR, - SIM_LOW_COLOR, - SIM_MID_HIGH_COLOR, - SIM_MID_LOW_COLOR -} from "../../../../util/colors"; -import { LOAD_NAME_MAP } from "../../../../util/simulation-load"; - -const LoadMetricComponent = ({ loadMetric }) => ( -
-
- Colors represent {LOAD_NAME_MAP[loadMetric]} -
-
- - - - -
-
-); - -export default LoadMetricComponent; diff --git a/src/components/app/sidebars/simulation/SimulationSidebarComponent.js b/src/components/app/sidebars/simulation/SimulationSidebarComponent.js deleted file mode 100644 index 08dbb29a..00000000 --- a/src/components/app/sidebars/simulation/SimulationSidebarComponent.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import ExperimentMetadataContainer from "../../../../containers/app/sidebars/simulation/ExperimentMetadataContainer"; -import LoadMetricContainer from "../../../../containers/app/sidebars/simulation/LoadMetricContainer"; -import TraceContainer from "../../../../containers/app/sidebars/simulation/TraceContainer"; -import Sidebar from "../Sidebar"; -import "./SimulationSidebarComponent.css"; - -const SimulationSidebarComponent = () => { - return ( - -
- - -
- -
-
-
- ); -}; - -export default SimulationSidebarComponent; diff --git a/src/components/app/sidebars/simulation/SimulationSidebarComponent.sass b/src/components/app/sidebars/simulation/SimulationSidebarComponent.sass deleted file mode 100644 index 82af97fa..00000000 --- a/src/components/app/sidebars/simulation/SimulationSidebarComponent.sass +++ /dev/null @@ -1,8 +0,0 @@ -.simulation-sidebar-container - display: flex - height: 100% - max-height: 100% - -.trace-container - flex: 1 - overflow-y: scroll diff --git a/src/components/app/sidebars/simulation/TaskComponent.js b/src/components/app/sidebars/simulation/TaskComponent.js deleted file mode 100644 index bd917cc9..00000000 --- a/src/components/app/sidebars/simulation/TaskComponent.js +++ /dev/null @@ -1,58 +0,0 @@ -import approx from "approximate-number"; -import classNames from "classnames"; -import React from "react"; -import { convertSecondsToFormattedTime } from "../../../../util/date-time"; - -const TaskComponent = ({ task, flopsLeft }) => { - let icon; - let progressBarContent; - let percent; - let infoTitle; - - if (flopsLeft === task.totalFlopCount) { - icon = "hourglass-half"; - progressBarContent = ""; - percent = 0; - infoTitle = "Not submitted yet"; - } else if (flopsLeft > 0) { - icon = "refresh"; - progressBarContent = approx(task.totalFlopCount - flopsLeft) + " FLOP"; - percent = 100 * (task.totalFlopCount - flopsLeft) / task.totalFlopCount; - infoTitle = - progressBarContent + " (" + Math.round(percent * 10) / 10 + "%)"; - } else { - icon = "check"; - progressBarContent = "Completed"; - percent = 100; - infoTitle = "Completed"; - } - - return ( -
  • -
    -
    {approx(task.totalFlopCount)} FLOP
    - Starts at {convertSecondsToFormattedTime(task.startTick)} -
    -
    - -
    -
    - {progressBarContent} -
    -
    -
    -
  • - ); -}; - -export default TaskComponent; diff --git a/src/components/app/sidebars/simulation/TraceComponent.js b/src/components/app/sidebars/simulation/TraceComponent.js deleted file mode 100644 index 2b6559b4..00000000 --- a/src/components/app/sidebars/simulation/TraceComponent.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import TaskContainer from "../../../../containers/app/sidebars/simulation/TaskContainer"; - -const TraceComponent = ({ jobs }) => ( -
    -

    Trace

    - {jobs.map(job => ( -
    -

    Job: {job.name}

    -
      - {job.taskIds.map(taskId => ( - - ))} -
    -
    - ))} -
    -); - -export default TraceComponent; diff --git a/src/components/app/sidebars/topology/NameComponent.js b/src/components/app/sidebars/topology/NameComponent.js deleted file mode 100644 index 805538b3..00000000 --- a/src/components/app/sidebars/topology/NameComponent.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import FontAwesome from "react-fontawesome"; - -const NameComponent = ({ name, onEdit }) => ( -

    - {name} - -

    -); - -export default NameComponent; diff --git a/src/components/app/sidebars/topology/TopologySidebarComponent.js b/src/components/app/sidebars/topology/TopologySidebarComponent.js deleted file mode 100644 index 81e510a1..00000000 --- a/src/components/app/sidebars/topology/TopologySidebarComponent.js +++ /dev/null @@ -1,31 +0,0 @@ -import React from "react"; -import BuildingSidebarContainer from "../../../../containers/app/sidebars/topology/building/BuildingSidebarContainer"; -import MachineSidebarContainer from "../../../../containers/app/sidebars/topology/machine/MachineSidebarContainer"; -import RackSidebarContainer from "../../../../containers/app/sidebars/topology/rack/RackSidebarContainer"; -import RoomSidebarContainer from "../../../../containers/app/sidebars/topology/room/RoomSidebarContainer"; -import Sidebar from "../Sidebar"; - -const TopologySidebarComponent = ({ interactionLevel }) => { - let sidebarContent; - - switch (interactionLevel.mode) { - case "BUILDING": - sidebarContent = ; - break; - case "ROOM": - sidebarContent = ; - break; - case "RACK": - sidebarContent = ; - break; - case "MACHINE": - sidebarContent = ; - break; - default: - sidebarContent = "Missing Content"; - } - - return {sidebarContent}; -}; - -export default TopologySidebarComponent; diff --git a/src/components/app/sidebars/topology/building/BuildingSidebarComponent.js b/src/components/app/sidebars/topology/building/BuildingSidebarComponent.js deleted file mode 100644 index f16c19f0..00000000 --- a/src/components/app/sidebars/topology/building/BuildingSidebarComponent.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import NewRoomConstructionContainer from "../../../../../containers/app/sidebars/topology/building/NewRoomConstructionContainer"; - -const BuildingSidebarComponent = ({ inSimulation }) => { - return ( -
    -

    Building

    - {inSimulation ? ( -
    - - Click on individual rooms to see their stats! -
    - ) : ( - - )} -
    - ); -}; - -export default BuildingSidebarComponent; diff --git a/src/components/app/sidebars/topology/building/NewRoomConstructionComponent.js b/src/components/app/sidebars/topology/building/NewRoomConstructionComponent.js deleted file mode 100644 index 7b049642..00000000 --- a/src/components/app/sidebars/topology/building/NewRoomConstructionComponent.js +++ /dev/null @@ -1,31 +0,0 @@ -import React from "react"; - -const NewRoomConstructionComponent = ({ - onStart, - onFinish, - onCancel, - currentRoomInConstruction -}) => { - if (currentRoomInConstruction === -1) { - return ( -
    - - Construct a new room -
    - ); - } - return ( -
    -
    - - Finalize new room -
    -
    - - Cancel construction -
    -
    - ); -}; - -export default NewRoomConstructionComponent; diff --git a/src/components/app/sidebars/topology/machine/BackToRackComponent.js b/src/components/app/sidebars/topology/machine/BackToRackComponent.js deleted file mode 100644 index 7f56aca0..00000000 --- a/src/components/app/sidebars/topology/machine/BackToRackComponent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -const BackToRackComponent = ({ onClick }) => ( -
    - - Back to rack -
    -); - -export default BackToRackComponent; diff --git a/src/components/app/sidebars/topology/machine/DeleteMachineComponent.js b/src/components/app/sidebars/topology/machine/DeleteMachineComponent.js deleted file mode 100644 index d8774bf9..00000000 --- a/src/components/app/sidebars/topology/machine/DeleteMachineComponent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -const DeleteMachineComponent = ({ onClick }) => ( -
    - - Delete this machine -
    -); - -export default DeleteMachineComponent; diff --git a/src/components/app/sidebars/topology/machine/MachineNameComponent.js b/src/components/app/sidebars/topology/machine/MachineNameComponent.js deleted file mode 100644 index 0ad8b79c..00000000 --- a/src/components/app/sidebars/topology/machine/MachineNameComponent.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from "react"; - -const MachineNameComponent = ({ position }) => ( -

    Machine at slot {position}

    -); - -export default MachineNameComponent; diff --git a/src/components/app/sidebars/topology/machine/MachineSidebarComponent.js b/src/components/app/sidebars/topology/machine/MachineSidebarComponent.js deleted file mode 100644 index 5ccaf25c..00000000 --- a/src/components/app/sidebars/topology/machine/MachineSidebarComponent.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import LoadBarContainer from "../../../../../containers/app/sidebars/elements/LoadBarContainer"; -import LoadChartContainer from "../../../../../containers/app/sidebars/elements/LoadChartContainer"; -import BackToRackContainer from "../../../../../containers/app/sidebars/topology/machine/BackToRackContainer"; -import DeleteMachineContainer from "../../../../../containers/app/sidebars/topology/machine/DeleteMachineContainer"; -import MachineNameContainer from "../../../../../containers/app/sidebars/topology/machine/MachineNameContainer"; -import UnitTabsContainer from "../../../../../containers/app/sidebars/topology/machine/UnitTabsContainer"; - -const MachineSidebarComponent = ({ inSimulation, machineId }) => { - return ( -
    - - - {inSimulation ? ( -
    - - -
    - ) : ( - - )} - -
    - ); -}; - -export default MachineSidebarComponent; diff --git a/src/components/app/sidebars/topology/machine/UnitAddComponent.js b/src/components/app/sidebars/topology/machine/UnitAddComponent.js deleted file mode 100644 index 0c903228..00000000 --- a/src/components/app/sidebars/topology/machine/UnitAddComponent.js +++ /dev/null @@ -1,46 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; - -class UnitAddComponent extends React.Component { - static propTypes = { - units: PropTypes.array.isRequired, - onAdd: PropTypes.func.isRequired - }; - - render() { - return ( -
    -
    - - -
    -
    - ); - } -} - -export default UnitAddComponent; diff --git a/src/components/app/sidebars/topology/machine/UnitComponent.js b/src/components/app/sidebars/topology/machine/UnitComponent.js deleted file mode 100644 index 7c27043d..00000000 --- a/src/components/app/sidebars/topology/machine/UnitComponent.js +++ /dev/null @@ -1,78 +0,0 @@ -import React from "react"; -import jQuery from "../../../../../util/jquery"; - -class UnitComponent extends React.Component { - componentDidMount() { - jQuery(".unit-info-popover").popover({ - trigger: "focus" - }); - } - - render() { - let unitInfo; - if (this.props.unitType === "cpu" || this.props.unitType === "gpu") { - unitInfo = - "Clockrate: " + - this.props.unit.clockRateMhz + - " MHz
    " + - "Num. Cores: " + - this.props.unit.numberOfCores + - "
    " + - "Energy Cons.: " + - this.props.unit.energyConsumptionW + - " W"; - } else if ( - this.props.unitType === "memory" || - this.props.unitType === "storage" - ) { - unitInfo = - "Speed: " + - this.props.unit.speedMbPerS + - " Mb/s
    " + - "Size: " + - this.props.unit.sizeMb + - " MB
    " + - "Energy Cons.: " + - this.props.unit.energyConsumptionW + - " W"; - } - - return ( -
  • - - {this.props.unit.manufacturer + - " " + - this.props.unit.family + - " " + - this.props.unit.model + - " " + - this.props.unit.generation} - - - - {this.props.inSimulation ? ( - undefined - ) : ( - - - - )} - -
  • - ); - } -} - -export default UnitComponent; diff --git a/src/components/app/sidebars/topology/machine/UnitListComponent.js b/src/components/app/sidebars/topology/machine/UnitListComponent.js deleted file mode 100644 index 38df806b..00000000 --- a/src/components/app/sidebars/topology/machine/UnitListComponent.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from "react"; -import UnitContainer from "../../../../../containers/app/sidebars/topology/machine/UnitContainer"; - -const UnitListComponent = ({ unitType, unitIds, inSimulation }) => ( -
      - {unitIds.length !== 0 ? ( - unitIds.map((unitId, index) => ( - - )) - ) : ( -
      - {inSimulation ? ( - No units of this type in this machine - ) : ( - - No units... Add some with the menu above! - - )} -
      - )} -
    -); - -export default UnitListComponent; diff --git a/src/components/app/sidebars/topology/machine/UnitTabsComponent.js b/src/components/app/sidebars/topology/machine/UnitTabsComponent.js deleted file mode 100644 index 0683c796..00000000 --- a/src/components/app/sidebars/topology/machine/UnitTabsComponent.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from "react"; -import UnitAddContainer from "../../../../../containers/app/sidebars/topology/machine/UnitAddContainer"; -import UnitListContainer from "../../../../../containers/app/sidebars/topology/machine/UnitListContainer"; - -const UnitTabsComponent = ({ inSimulation }) => ( -
    - -
    -
    - {inSimulation ? undefined : } - -
    -
    - {inSimulation ? undefined : } - -
    -
    - {inSimulation ? undefined : } - -
    -
    - {inSimulation ? undefined : } - -
    -
    -
    -); - -export default UnitTabsComponent; diff --git a/src/components/app/sidebars/topology/rack/BackToRoomComponent.js b/src/components/app/sidebars/topology/rack/BackToRoomComponent.js deleted file mode 100644 index 6bcf4088..00000000 --- a/src/components/app/sidebars/topology/rack/BackToRoomComponent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -const BackToRoomComponent = ({ onClick }) => ( -
    - - Back to room -
    -); - -export default BackToRoomComponent; diff --git a/src/components/app/sidebars/topology/rack/DeleteRackComponent.js b/src/components/app/sidebars/topology/rack/DeleteRackComponent.js deleted file mode 100644 index d8aa7634..00000000 --- a/src/components/app/sidebars/topology/rack/DeleteRackComponent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -const DeleteRackComponent = ({ onClick }) => ( -
    - - Delete this rack -
    -); - -export default DeleteRackComponent; diff --git a/src/components/app/sidebars/topology/rack/EmptySlotComponent.js b/src/components/app/sidebars/topology/rack/EmptySlotComponent.js deleted file mode 100644 index d86f9fee..00000000 --- a/src/components/app/sidebars/topology/rack/EmptySlotComponent.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from "react"; - -const EmptySlotComponent = ({ position, onAdd, inSimulation }) => ( -
  • - - {position} - - {inSimulation ? ( - Empty Slot - ) : ( - - )} -
  • -); - -export default EmptySlotComponent; diff --git a/src/components/app/sidebars/topology/rack/MachineComponent.js b/src/components/app/sidebars/topology/rack/MachineComponent.js deleted file mode 100644 index 2521f4a2..00000000 --- a/src/components/app/sidebars/topology/rack/MachineComponent.js +++ /dev/null @@ -1,78 +0,0 @@ -import React from "react"; -import Shapes from "../../../../../shapes"; -import { convertLoadToSimulationColor } from "../../../../../util/simulation-load"; - -const UnitIcon = ({ id, type }) => ( -
    - {"Machine -
    -); - -const MachineComponent = ({ - position, - machine, - inSimulation, - machineLoad, - onClick -}) => { - let color = "white"; - if (inSimulation && machineLoad >= 0) { - color = convertLoadToSimulationColor(machineLoad); - } - const hasNoUnits = - machine.cpuIds.length + - machine.gpuIds.length + - machine.memoryIds.length + - machine.storageIds.length === - 0; - - return ( -
  • - {position} -
    - {machine.cpuIds.length > 0 ? ( - - ) : ( - undefined - )} - {machine.gpuIds.length > 0 ? ( - - ) : ( - undefined - )} - {machine.memoryIds.length > 0 ? ( - - ) : ( - undefined - )} - {machine.storageIds.length > 0 ? ( - - ) : ( - undefined - )} - {hasNoUnits ? ( - - Machine with no units - - ) : ( - undefined - )} -
    -
  • - ); -}; - -MachineComponent.propTypes = { - machine: Shapes.Machine -}; - -export default MachineComponent; diff --git a/src/components/app/sidebars/topology/rack/MachineListComponent.js b/src/components/app/sidebars/topology/rack/MachineListComponent.js deleted file mode 100644 index d5521557..00000000 --- a/src/components/app/sidebars/topology/rack/MachineListComponent.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from "react"; -import EmptySlotContainer from "../../../../../containers/app/sidebars/topology/rack/EmptySlotContainer"; -import MachineContainer from "../../../../../containers/app/sidebars/topology/rack/MachineContainer"; -import "./MachineListComponent.css"; - -const MachineListComponent = ({ machineIds }) => { - return ( -
      - {machineIds.map((machineId, index) => { - if (machineId === null) { - return ; - } else { - return ( - - ); - } - })} -
    - ); -}; - -export default MachineListComponent; diff --git a/src/components/app/sidebars/topology/rack/MachineListComponent.sass b/src/components/app/sidebars/topology/rack/MachineListComponent.sass deleted file mode 100644 index bbcfe696..00000000 --- a/src/components/app/sidebars/topology/rack/MachineListComponent.sass +++ /dev/null @@ -1,2 +0,0 @@ -.machine-list li - min-height: 64px diff --git a/src/components/app/sidebars/topology/rack/RackNameComponent.js b/src/components/app/sidebars/topology/rack/RackNameComponent.js deleted file mode 100644 index 5e095823..00000000 --- a/src/components/app/sidebars/topology/rack/RackNameComponent.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from "react"; -import NameComponent from "../NameComponent"; - -const RackNameComponent = ({ rackName, onEdit }) => ( - -); - -export default RackNameComponent; diff --git a/src/components/app/sidebars/topology/rack/RackSidebarComponent.js b/src/components/app/sidebars/topology/rack/RackSidebarComponent.js deleted file mode 100644 index f832b9b9..00000000 --- a/src/components/app/sidebars/topology/rack/RackSidebarComponent.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import LoadBarContainer from "../../../../../containers/app/sidebars/elements/LoadBarContainer"; -import LoadChartContainer from "../../../../../containers/app/sidebars/elements/LoadChartContainer"; -import BackToRoomContainer from "../../../../../containers/app/sidebars/topology/rack/BackToRoomContainer"; -import DeleteRackContainer from "../../../../../containers/app/sidebars/topology/rack/DeleteRackContainer"; -import MachineListContainer from "../../../../../containers/app/sidebars/topology/rack/MachineListContainer"; -import RackNameContainer from "../../../../../containers/app/sidebars/topology/rack/RackNameContainer"; -import "./RackSidebarComponent.css"; - -const RackSidebarComponent = ({ inSimulation, rackId }) => { - return ( -
    -
    - - - {inSimulation ? ( -
    - - -
    - ) : ( -
    - -
    - )} -
    -
    - -
    -
    - ); -}; - -export default RackSidebarComponent; diff --git a/src/components/app/sidebars/topology/rack/RackSidebarComponent.sass b/src/components/app/sidebars/topology/rack/RackSidebarComponent.sass deleted file mode 100644 index 822804bc..00000000 --- a/src/components/app/sidebars/topology/rack/RackSidebarComponent.sass +++ /dev/null @@ -1,11 +0,0 @@ -.rack-sidebar-container - display: flex - height: 100% - max-height: 100% - -.rack-sidebar-header-container - flex: 0 - -.machine-list-container - flex: 1 - overflow-y: scroll diff --git a/src/components/app/sidebars/topology/room/BackToBuildingComponent.js b/src/components/app/sidebars/topology/room/BackToBuildingComponent.js deleted file mode 100644 index 0409dbdd..00000000 --- a/src/components/app/sidebars/topology/room/BackToBuildingComponent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -const BackToBuildingComponent = ({ onClick }) => ( -
    - - Back to building -
    -); - -export default BackToBuildingComponent; diff --git a/src/components/app/sidebars/topology/room/DeleteRoomComponent.js b/src/components/app/sidebars/topology/room/DeleteRoomComponent.js deleted file mode 100644 index 3e3b3b36..00000000 --- a/src/components/app/sidebars/topology/room/DeleteRoomComponent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; - -const DeleteRoomComponent = ({ onClick }) => ( -
    - - Delete this room -
    -); - -export default DeleteRoomComponent; diff --git a/src/components/app/sidebars/topology/room/EditRoomComponent.js b/src/components/app/sidebars/topology/room/EditRoomComponent.js deleted file mode 100644 index c3b9f0ad..00000000 --- a/src/components/app/sidebars/topology/room/EditRoomComponent.js +++ /dev/null @@ -1,27 +0,0 @@ -import classNames from "classnames"; -import React from "react"; - -const EditRoomComponent = ({ - onEdit, - onFinish, - isEditing, - isInRackConstructionMode -}) => - isEditing ? ( -
    - - Finish editing room -
    - ) : ( -
    (isInRackConstructionMode ? undefined : onEdit())} - > - - Edit the tiles of this room -
    - ); - -export default EditRoomComponent; diff --git a/src/components/app/sidebars/topology/room/RackConstructionComponent.js b/src/components/app/sidebars/topology/room/RackConstructionComponent.js deleted file mode 100644 index 06b8a2aa..00000000 --- a/src/components/app/sidebars/topology/room/RackConstructionComponent.js +++ /dev/null @@ -1,32 +0,0 @@ -import classNames from "classnames"; -import React from "react"; - -const RackConstructionComponent = ({ - onStart, - onStop, - inRackConstructionMode, - isEditingRoom -}) => { - if (inRackConstructionMode) { - return ( -
    - - Stop rack construction -
    - ); - } - - return ( -
    (isEditingRoom ? undefined : onStart())} - > - - Start rack construction -
    - ); -}; - -export default RackConstructionComponent; diff --git a/src/components/app/sidebars/topology/room/RoomNameComponent.js b/src/components/app/sidebars/topology/room/RoomNameComponent.js deleted file mode 100644 index 11b88edd..00000000 --- a/src/components/app/sidebars/topology/room/RoomNameComponent.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from "react"; -import NameComponent from "../NameComponent"; - -const RoomNameComponent = ({ roomName, onEdit }) => ( - -); - -export default RoomNameComponent; diff --git a/src/components/app/sidebars/topology/room/RoomSidebarComponent.js b/src/components/app/sidebars/topology/room/RoomSidebarComponent.js deleted file mode 100644 index 275f9624..00000000 --- a/src/components/app/sidebars/topology/room/RoomSidebarComponent.js +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react"; -import LoadBarContainer from "../../../../../containers/app/sidebars/elements/LoadBarContainer"; -import LoadChartContainer from "../../../../../containers/app/sidebars/elements/LoadChartContainer"; -import BackToBuildingContainer from "../../../../../containers/app/sidebars/topology/room/BackToBuildingContainer"; -import DeleteRoomContainer from "../../../../../containers/app/sidebars/topology/room/DeleteRoomContainer"; -import EditRoomContainer from "../../../../../containers/app/sidebars/topology/room/EditRoomContainer"; -import RackConstructionContainer from "../../../../../containers/app/sidebars/topology/room/RackConstructionContainer"; -import RoomNameContainer from "../../../../../containers/app/sidebars/topology/room/RoomNameContainer"; -import RoomTypeContainer from "../../../../../containers/app/sidebars/topology/room/RoomTypeContainer"; - -const RoomSidebarComponent = ({ roomId, roomType, inSimulation }) => { - let allowedObjects; - if (!inSimulation && roomType === "SERVER") { - allowedObjects = ; - } - - return ( -
    - - - - {inSimulation ? ( -
    - - -
    - ) : ( -
    - {allowedObjects} - - -
    - )} -
    - ); -}; - -export default RoomSidebarComponent; diff --git a/src/components/app/sidebars/topology/room/RoomTypeComponent.js b/src/components/app/sidebars/topology/room/RoomTypeComponent.js deleted file mode 100644 index 46d91c2c..00000000 --- a/src/components/app/sidebars/topology/room/RoomTypeComponent.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from "react"; -import { ROOM_TYPE_TO_NAME_MAP } from "../../../../../util/room-types"; - -const RoomTypeComponent = ({ roomType }) => ( -

    {ROOM_TYPE_TO_NAME_MAP[roomType]}

    -); - -export default RoomTypeComponent; diff --git a/src/components/app/timeline/PlayButtonComponent.js b/src/components/app/timeline/PlayButtonComponent.js deleted file mode 100644 index 1a9b0ced..00000000 --- a/src/components/app/timeline/PlayButtonComponent.js +++ /dev/null @@ -1,30 +0,0 @@ -import React from "react"; - -const PlayButtonComponent = ({ - isPlaying, - currentTick, - lastSimulatedTick, - onPlay, - onPause -}) => ( -
    { - if (isPlaying) { - onPause(); - } else { - if (currentTick !== lastSimulatedTick) { - onPlay(); - } - } - }} - > - {isPlaying ? ( - - ) : ( - - )} -
    -); - -export default PlayButtonComponent; diff --git a/src/components/app/timeline/Timeline.sass b/src/components/app/timeline/Timeline.sass deleted file mode 100644 index 4c99a218..00000000 --- a/src/components/app/timeline/Timeline.sass +++ /dev/null @@ -1,116 +0,0 @@ -@import ../../../style-globals/_variables.sass -@import ../../../style-globals/_mixins.sass - -$container-size: 500px -$play-btn-size: 40px -$border-width: 1px -$timeline-border: $border-width solid $gray-semi-dark - -.timeline-bar - display: block - position: absolute - left: 0 - bottom: 20px - width: 100% - text-align: center - z-index: 2000 - - pointer-events: none - -.timeline-container - display: inline-block - margin: 0 auto - text-align: left - - width: $container-size - -.timeline-labels - display: block - height: 25px - line-height: 25px - - div - display: inline-block - - .start-time-label - margin-left: $play-btn-size - $border-width - padding-left: 4px - - .end-time-label - padding-right: 4px - float: right - -.timeline-controls - display: flex - border: $timeline-border - overflow: hidden - - pointer-events: all - - +border-radius($standard-border-radius) - - .play-btn - width: $play-btn-size - height: $play-btn-size + $border-width - line-height: $play-btn-size + $border-width - text-align: center - float: left - margin-top: -$border-width - - font-size: 16pt - background: #333 - color: #eee - - +transition(background, $transition-length) - +user-select - +clickable - - .play-btn:hover - background: #656565 - - .play-btn:active - background: #000 - - .timeline - position: relative - flex: 1 - height: $play-btn-size - line-height: $play-btn-size - float: right - - background: $blue-light - - z-index: 500 - - div - +transition(all, $transition-length) - - .time-marker - position: absolute - top: 0 - left: 0 - - width: 6px - height: 100% - - background: $blue-very-dark - - +border-radius(2px) - - z-index: 503 - - pointer-events: none - - .section-marker - position: absolute - top: 0 - left: 0 - - width: 3px - height: 100% - - background: #222222 - - z-index: 504 - - pointer-events: none diff --git a/src/components/app/timeline/TimelineComponent.js b/src/components/app/timeline/TimelineComponent.js deleted file mode 100644 index 0f88b8f4..00000000 --- a/src/components/app/timeline/TimelineComponent.js +++ /dev/null @@ -1,37 +0,0 @@ -import React from "react"; -import TimelineControlsContainer from "../../../containers/app/timeline/TimelineControlsContainer"; -import TimelineLabelsContainer from "../../../containers/app/timeline/TimelineLabelsContainer"; -import "./Timeline.css"; - -class TimelineComponent extends React.Component { - componentDidMount() { - this.interval = setInterval(() => { - if (!this.props.isPlaying) { - return; - } - - if (this.props.currentTick < this.props.lastSimulatedTick) { - this.props.incrementTick(); - } else { - this.props.pauseSimulation(); - } - }, 1000); - } - - componentWillUnmount() { - clearInterval(this.interval); - } - - render() { - return ( -
    -
    - - -
    -
    - ); - } -} - -export default TimelineComponent; diff --git a/src/components/app/timeline/TimelineControlsComponent.js b/src/components/app/timeline/TimelineControlsComponent.js deleted file mode 100644 index f3d55154..00000000 --- a/src/components/app/timeline/TimelineControlsComponent.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from "react"; -import PlayButtonContainer from "../../../containers/app/timeline/PlayButtonContainer"; -import { convertTickToPercentage } from "../../../util/timeline"; - -class TimelineControlsComponent extends React.Component { - onTimelineClick(e) { - const percentage = e.nativeEvent.offsetX / this.timeline.clientWidth; - const tick = Math.floor(percentage * (this.props.lastSimulatedTick + 1)); - this.props.goToTick(tick); - } - - render() { - return ( -
    - -
    (this.timeline = timeline)} - onClick={this.onTimelineClick.bind(this)} - > -
    - {this.props.sectionTicks.map(sectionTick => ( -
    - ))} -
    -
    - ); - } -} - -export default TimelineControlsComponent; diff --git a/src/components/app/timeline/TimelineLabelsComponent.js b/src/components/app/timeline/TimelineLabelsComponent.js deleted file mode 100644 index 6943a86f..00000000 --- a/src/components/app/timeline/TimelineLabelsComponent.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react"; -import { convertSecondsToFormattedTime } from "../../../util/date-time"; - -const TimelineLabelsComponent = ({ currentTick, lastSimulatedTick }) => ( -
    -
    - {convertSecondsToFormattedTime(currentTick)} -
    -
    - {convertSecondsToFormattedTime(lastSimulatedTick)} -
    -
    -); - -export default TimelineLabelsComponent; diff --git a/src/components/experiments/ExperimentListComponent.js b/src/components/experiments/ExperimentListComponent.js deleted file mode 100644 index 2f7106e5..00000000 --- a/src/components/experiments/ExperimentListComponent.js +++ /dev/null @@ -1,59 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import ExperimentRowContainer from "../../containers/experiments/ExperimentRowContainer"; - -const ExperimentListComponent = ({ experimentIds, loading }) => { - let alert; - - if (loading) { - alert = ( -
    - - Loading Experiments... -
    - ); - } else if (experimentIds.length === 0 && !loading) { - alert = ( -
    - - No experiments here yet... Add some with the button - below! -
    - ); - } - - return ( -
    - {alert ? ( - alert - ) : ( - - - - - - - - - - - {experimentIds.map(experimentId => ( - - ))} - -
    NamePathTraceScheduler -
    - )} -
    - ); -}; - -ExperimentListComponent.propTypes = { - experimentIds: PropTypes.arrayOf(PropTypes.number).isRequired, - loading: PropTypes.bool -}; - -export default ExperimentListComponent; diff --git a/src/components/experiments/ExperimentRowComponent.js b/src/components/experiments/ExperimentRowComponent.js deleted file mode 100644 index e71c6a00..00000000 --- a/src/components/experiments/ExperimentRowComponent.js +++ /dev/null @@ -1,40 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Link } from "react-router-dom"; -import Shapes from "../../shapes/index"; - -const ExperimentRowComponent = ({ experiment, simulationId, onDelete }) => ( - - {experiment.name} - - {experiment.path.name - ? experiment.path.name - : "Path " + experiment.path.id} - - {experiment.trace.name} - {experiment.scheduler.name} - - - - -
    onDelete(experiment.id)} - > - -
    - - -); - -ExperimentRowComponent.propTypes = { - experiment: Shapes.Experiment.isRequired, - simulationId: PropTypes.number.isRequired -}; - -export default ExperimentRowComponent; diff --git a/src/components/experiments/NewExperimentButtonComponent.js b/src/components/experiments/NewExperimentButtonComponent.js deleted file mode 100644 index 651172e3..00000000 --- a/src/components/experiments/NewExperimentButtonComponent.js +++ /dev/null @@ -1,17 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; - -const NewExperimentButtonComponent = ({ onClick }) => ( -
    -
    - - New Experiment -
    -
    -); - -NewExperimentButtonComponent.propTypes = { - onClick: PropTypes.func.isRequired -}; - -export default NewExperimentButtonComponent; diff --git a/src/components/home/ContactSection.js b/src/components/home/ContactSection.js deleted file mode 100644 index 4e640924..00000000 --- a/src/components/home/ContactSection.js +++ /dev/null @@ -1,64 +0,0 @@ -import React from "react"; -import FontAwesome from "react-fontawesome"; -import "./ContactSection.css"; -import ContentSection from "./ContentSection"; - -const ContactSection = () => ( - -
    -
    - - - - -
    -
    - TU Delft -
    -
    -
    -
    - A project by the   - - @Large Research Group - . -
    -
    -
    -
    - -
    - OpenDC is an experimental tool. Your data may get lost, overwritten, or - otherwise become unavailable. -
    - The OpenDC authors should in no way be liable in the event this happens - (see our{" "} - - - license - - ). Sorry for the inconvenience. -
    -
    - -); - -export default ContactSection; diff --git a/src/components/home/ContactSection.sass b/src/components/home/ContactSection.sass deleted file mode 100644 index 2cde7391..00000000 --- a/src/components/home/ContactSection.sass +++ /dev/null @@ -1,15 +0,0 @@ -.contact-section - background-color: #444 - color: #ddd - - a - color: #ddd - - a:hover - color: #fff - - .tudelft-icon - height: 100px - - .disclaimer - color: #cccccc diff --git a/src/components/home/ContentSection.js b/src/components/home/ContentSection.js deleted file mode 100644 index 2e24ee10..00000000 --- a/src/components/home/ContentSection.js +++ /dev/null @@ -1,19 +0,0 @@ -import classNames from "classnames"; -import PropTypes from "prop-types"; -import React from "react"; -import "./ContentSection.css"; - -const ContentSection = ({ name, title, children }) => ( -
    -
    -

    {title}

    - {children} -
    -
    -); - -ContentSection.propTypes = { - name: PropTypes.string.isRequired -}; - -export default ContentSection; diff --git a/src/components/home/ContentSection.sass b/src/components/home/ContentSection.sass deleted file mode 100644 index 67541179..00000000 --- a/src/components/home/ContentSection.sass +++ /dev/null @@ -1,9 +0,0 @@ -@import ../../style-globals/_variables.sass - -.content-section - padding-top: 50px - padding-bottom: 100px - text-align: center - - h1 - margin-bottom: 30px diff --git a/src/components/home/IntroSection.js b/src/components/home/IntroSection.js deleted file mode 100644 index 59f5face..00000000 --- a/src/components/home/IntroSection.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; - -const IntroSection = () => ( -
    -
    -
    -
    -

    The datacenter (DC) industry...

    -
      -
    • Is worth over $15 bn, and growing
    • -
    • Has many hard-to-grasp concepts
    • -
    • Needs to become accessible to many
    • -
    -
    - -
    -

    OpenDC provides...

    -
      -
    • Collaborative online DC modeling
    • -
    • Diverse and effective DC simulation
    • -
    • Exploratory DC performance feedback
    • -
    -
    -
    -
    -
    -); - -export default IntroSection; diff --git a/src/components/home/JumbotronHeader.js b/src/components/home/JumbotronHeader.js deleted file mode 100644 index 8a5312b3..00000000 --- a/src/components/home/JumbotronHeader.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import "./JumbotronHeader.css"; - -const JumbotronHeader = () => ( -
    -
    -
    -

    - OpenDC -

    -

    - Collaborative Datacenter Simulation and Exploration for Everybody -

    - OpenDC -
    -
    -
    -); - -export default JumbotronHeader; diff --git a/src/components/home/JumbotronHeader.sass b/src/components/home/JumbotronHeader.sass deleted file mode 100644 index b88b79f7..00000000 --- a/src/components/home/JumbotronHeader.sass +++ /dev/null @@ -1,24 +0,0 @@ -.jumbotron-header - background: #00A6D6 - -.jumbotron - background-color: inherit - margin-bottom: 0 - - padding-top: 120px - padding-bottom: 120px - - img - max-width: 110px - - h1 - color: #fff - font-size: 4.5em - - .dc - color: #fff - font-weight: bold - - .lead - color: #fff - font-size: 1.4em diff --git a/src/components/home/ModelingSection.js b/src/components/home/ModelingSection.js deleted file mode 100644 index 17834b0b..00000000 --- a/src/components/home/ModelingSection.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; -import ScreenshotSection from "./ScreenshotSection"; - -const ModelingSection = () => ( - -

    Collaboratively...

    -
      -
    • Model DC layout, and room locations and types
    • -
    • Place racks in rooms and nodes in racks
    • -
    • - Add real-world CPU, GPU, memory, storage and network units to each node -
    • -
    • Select from diverse scheduling policies
    • -
    -
    -); - -export default ModelingSection; diff --git a/src/components/home/ScreenshotSection.js b/src/components/home/ScreenshotSection.js deleted file mode 100644 index 42b8ac77..00000000 --- a/src/components/home/ScreenshotSection.js +++ /dev/null @@ -1,32 +0,0 @@ -import classNames from "classnames"; -import React from "react"; -import ContentSection from "./ContentSection"; -import "./ScreenshotSection.css"; - -const ScreenshotSection = ({ - name, - title, - imageUrl, - caption, - imageIsRight, - children -}) => ( - -
    -
    - {children} -
    -
    - {caption} -
    {caption}
    -
    -
    -
    -); - -export default ScreenshotSection; diff --git a/src/components/home/ScreenshotSection.sass b/src/components/home/ScreenshotSection.sass deleted file mode 100644 index a349ad48..00000000 --- a/src/components/home/ScreenshotSection.sass +++ /dev/null @@ -1,5 +0,0 @@ -.screenshot - outline: 2px black solid - padding-left: 0 - padding-right: 0 - margin-bottom: 5px diff --git a/src/components/home/SimulationSection.js b/src/components/home/SimulationSection.js deleted file mode 100644 index 3961e549..00000000 --- a/src/components/home/SimulationSection.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import ScreenshotSection from "./ScreenshotSection"; - -const ModelingSection = () => ( - -

    Working with OpenDC:

    -
      -
    • Seamlessly switch between construction and simulation modes
    • -
    • - Choose one of several predefined workloads (Big Data, Bag of Tasks, - Hadoop, etc.) -
    • -
    • Play, pause, and skip around the informative simulation timeline
    • -
    • Visualize and demo live
    • -
    -
    -); - -export default ModelingSection; diff --git a/src/components/home/StakeholderSection.js b/src/components/home/StakeholderSection.js deleted file mode 100644 index 6d25fd86..00000000 --- a/src/components/home/StakeholderSection.js +++ /dev/null @@ -1,42 +0,0 @@ -import React from "react"; -import ContentSection from "./ContentSection"; - -const Stakeholder = ({ name, title, subtitle }) => ( -
    - {title} -
    -

    {title}

    -

    {subtitle}

    -
    -
    -); - -const StakeholderSection = () => ( - -
    - - - - - -
    -
    -); - -export default StakeholderSection; diff --git a/src/components/home/TeamSection.js b/src/components/home/TeamSection.js deleted file mode 100644 index b86655b4..00000000 --- a/src/components/home/TeamSection.js +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react"; -import ContentSection from "./ContentSection"; - -const TeamMember = ({ photoId, name, description }) => ( -
    - {name} -
    -

    {name}

    -
    {description}
    -
    -
    -); - -const TeamSection = () => ( - -
    - - - - -
    -
    - See{" "} - - atlarge.science/opendc - {" "} - for the full team! -
    -
    -); - -export default TeamSection; diff --git a/src/components/home/TechnologiesSection.js b/src/components/home/TechnologiesSection.js deleted file mode 100644 index fdcfc522..00000000 --- a/src/components/home/TechnologiesSection.js +++ /dev/null @@ -1,42 +0,0 @@ -import React from "react"; -import FontAwesome from "react-fontawesome"; -import ContentSection from "./ContentSection"; - -const TechnologiesSection = () => ( - -
      -
    • - - - Browser - - JavaScript, React, Redux, Konva -
    • -
    • - - - Server - - - Python, Flask, FlaskSocketIO, OpenAPI - -
    • -
    • - - - Database - - MariaDB -
    • -
    • - - - Simulator - - Kotlin -
    • -
    -
    -); - -export default TechnologiesSection; diff --git a/src/components/modals/ConfirmationModal.js b/src/components/modals/ConfirmationModal.js deleted file mode 100644 index abdce5ac..00000000 --- a/src/components/modals/ConfirmationModal.js +++ /dev/null @@ -1,37 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import Modal from "./Modal"; - -class ConfirmationModal extends React.Component { - static propTypes = { - title: PropTypes.string.isRequired, - message: PropTypes.string.isRequired, - show: PropTypes.bool.isRequired, - callback: PropTypes.func.isRequired - }; - - onConfirm() { - this.props.callback(true); - } - - onCancel() { - this.props.callback(false); - } - - render() { - return ( - - {this.props.message} - - ); - } -} - -export default ConfirmationModal; diff --git a/src/components/modals/Modal.js b/src/components/modals/Modal.js deleted file mode 100644 index 19337db8..00000000 --- a/src/components/modals/Modal.js +++ /dev/null @@ -1,132 +0,0 @@ -import classNames from "classnames"; -import PropTypes from "prop-types"; -import React from "react"; -import jQuery from "../../util/jquery"; - -class Modal extends React.Component { - static propTypes = { - title: PropTypes.string.isRequired, - show: PropTypes.bool.isRequired, - onSubmit: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - submitButtonType: PropTypes.string, - submitButtonText: PropTypes.string - }; - static defaultProps = { - submitButtonType: "primary", - submitButtonText: "Save" - }; - static idCounter = 0; - - // Local, up-to-date copy of modal visibility for time between close event and a props update (to prevent duplicate - // 'close' triggers) - visible = false; - - constructor(props) { - super(props); - this.id = "modal-" + Modal.idCounter++; - } - - componentDidMount() { - this.visible = this.props.show; - this.openOrCloseModal(); - - // Trigger auto-focus - jQuery("#" + this.id) - .on("shown.bs.modal", function() { - jQuery(this) - .find("input") - .first() - .focus(); - }) - .on("hide.bs.modal", () => { - if (this.visible) { - this.props.onCancel(); - } - }) - .on("keydown", e => { - e.stopPropagation(); - }); - } - - componentDidUpdate() { - this.visible = this.props.show; - this.openOrCloseModal(); - } - - onSubmit() { - if (this.visible) { - this.props.onSubmit(); - this.visible = false; - this.closeModal(); - } - } - - onCancel() { - if (this.visible) { - this.props.onCancel(); - this.visible = false; - this.closeModal(); - } - } - - openModal() { - jQuery("#" + this.id).modal("show"); - } - - closeModal() { - jQuery("#" + this.id).modal("hide"); - } - - openOrCloseModal() { - if (this.visible) { - this.openModal(); - } else { - this.closeModal(); - } - } - - render() { - return ( - - ); - } -} - -export default Modal; diff --git a/src/components/modals/TextInputModal.js b/src/components/modals/TextInputModal.js deleted file mode 100644 index cc16f8e1..00000000 --- a/src/components/modals/TextInputModal.js +++ /dev/null @@ -1,58 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import Modal from "./Modal"; - -class TextInputModal extends React.Component { - static propTypes = { - title: PropTypes.string.isRequired, - label: PropTypes.string.isRequired, - show: PropTypes.bool.isRequired, - callback: PropTypes.func.isRequired, - initialValue: PropTypes.string - }; - - componentDidUpdate() { - if (this.props.initialValue) { - this.textInput.value = this.props.initialValue; - } - } - - onSubmit() { - this.props.callback(this.textInput.value); - this.textInput.value = ""; - } - - onCancel() { - this.props.callback(undefined); - this.textInput.value = ""; - } - - render() { - return ( - -
    { - e.preventDefault(); - this.onSubmit(); - }} - > -
    - - (this.textInput = textInput)} - /> -
    -
    -
    - ); - } -} - -export default TextInputModal; diff --git a/src/components/modals/custom-components/NewExperimentModalComponent.js b/src/components/modals/custom-components/NewExperimentModalComponent.js deleted file mode 100644 index e356fe96..00000000 --- a/src/components/modals/custom-components/NewExperimentModalComponent.js +++ /dev/null @@ -1,104 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import Shapes from "../../../shapes"; -import Modal from "../Modal"; - -class NewExperimentModalComponent extends React.Component { - static propTypes = { - show: PropTypes.bool.isRequired, - paths: PropTypes.arrayOf(Shapes.Path), - schedulers: PropTypes.arrayOf(Shapes.Scheduler), - traces: PropTypes.arrayOf(Shapes.Trace), - callback: PropTypes.func.isRequired - }; - - reset() { - this.textInput.value = ""; - this.pathSelect.selectedIndex = 0; - this.traceSelect.selectedIndex = 0; - this.schedulerSelect.selectedIndex = 0; - } - - onSubmit() { - this.props.callback( - this.textInput.value, - parseInt(this.pathSelect.value, 10), - parseInt(this.traceSelect.value, 10), - this.schedulerSelect.value - ); - this.reset(); - } - - onCancel() { - this.props.callback(undefined); - this.reset(); - } - - render() { - return ( - -
    { - e.preventDefault(); - this.onSubmit(); - }} - > -
    - - (this.textInput = textInput)} - /> -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    - ); - } -} - -export default NewExperimentModalComponent; diff --git a/src/components/navigation/AppNavbar.js b/src/components/navigation/AppNavbar.js deleted file mode 100644 index 1a35f85d..00000000 --- a/src/components/navigation/AppNavbar.js +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react"; -import FontAwesome from "react-fontawesome"; -import { Link } from "react-router-dom"; -import Navbar, { NavItem } from "./Navbar"; -import "./Navbar.css"; - -const AppNavbar = ({ simulationId, inSimulation, fullWidth }) => ( - - {inSimulation ? ( - - - - Construction - - - ) : ( - undefined - )} - {inSimulation ? ( - - - - Experiments - - - ) : ( - undefined - )} - - - - My Simulations - - - - - - Support - - - -); - -export default AppNavbar; diff --git a/src/components/navigation/HomeNavbar.js b/src/components/navigation/HomeNavbar.js deleted file mode 100644 index 5d08bf3c..00000000 --- a/src/components/navigation/HomeNavbar.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; -import Navbar from "./Navbar"; -import "./Navbar.css"; - -const ScrollNavItem = ({ id, name }) => ( -
  • - - {name} - -
  • -); - -const HomeNavbar = () => ( - - - - - - - - -); - -export default HomeNavbar; diff --git a/src/components/navigation/LogoutButton.js b/src/components/navigation/LogoutButton.js deleted file mode 100644 index 800a3da8..00000000 --- a/src/components/navigation/LogoutButton.js +++ /dev/null @@ -1,16 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import FontAwesome from "react-fontawesome"; -import { Link } from "react-router-dom"; - -const LogoutButton = ({ onLogout }) => ( - - - -); - -LogoutButton.propTypes = { - onLogout: PropTypes.func.isRequired -}; - -export default LogoutButton; diff --git a/src/components/navigation/Navbar.js b/src/components/navigation/Navbar.js deleted file mode 100644 index 44458949..00000000 --- a/src/components/navigation/Navbar.js +++ /dev/null @@ -1,102 +0,0 @@ -import classNames from "classnames"; -import React from "react"; -import { Link, withRouter } from "react-router-dom"; -import { userIsLoggedIn } from "../../auth/index"; -import Login from "../../containers/auth/Login"; -import Logout from "../../containers/auth/Logout"; -import ProfileName from "../../containers/auth/ProfileName"; -import "./Navbar.css"; - -export const NAVBAR_HEIGHT = 60; - -export const NavItem = withRouter(props => ); -export const LoggedInSection = withRouter(props => ( - -)); - -const GitHubLink = () => ( - - - -); - -const NavItemWithoutRoute = ({ route, location, children }) => ( -
  • - {children} -
  • -); - -const LoggedInSectionWithoutRoute = ({ location }) => ( -
      - {userIsLoggedIn() ? ( - [ - location.pathname === "/" ? ( - - - My Simulations - - - ) : ( - - - - - - ), - - - - ] - ) : ( - - - - - )} -
    -); - -const Navbar = ({ fullWidth, children }) => ( - -); - -export default Navbar; diff --git a/src/components/navigation/Navbar.sass b/src/components/navigation/Navbar.sass deleted file mode 100644 index 94c52936..00000000 --- a/src/components/navigation/Navbar.sass +++ /dev/null @@ -1,29 +0,0 @@ -@import ../../style-globals/_mixins.sass -@import ../../style-globals/_variables.sass - -.navbar - border-top: $blue 3px solid - border-bottom: $gray-semi-dark 1px solid - color: $gray-very-dark - background: #fafafb - -.opendc-brand - display: inline-block - color: $gray-very-dark - - +transition(background, $transition-length) - - img - position: relative - bottom: 3px - display: inline-block - width: 30px - -.login - height: 40px - background: $blue - border: none - +clickable - - &:hover - background: $blue-dark diff --git a/src/components/not-found/BlinkingCursor.js b/src/components/not-found/BlinkingCursor.js deleted file mode 100644 index eea89e7b..00000000 --- a/src/components/not-found/BlinkingCursor.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from "react"; -import "./BlinkingCursor.css"; - -const BlinkingCursor = () => _; - -export default BlinkingCursor; diff --git a/src/components/not-found/BlinkingCursor.sass b/src/components/not-found/BlinkingCursor.sass deleted file mode 100644 index 6be1476d..00000000 --- a/src/components/not-found/BlinkingCursor.sass +++ /dev/null @@ -1,35 +0,0 @@ -.blinking-cursor - -webkit-animation: 1s blink step-end infinite - -moz-animation: 1s blink step-end infinite - -o-animation: 1s blink step-end infinite - animation: 1s blink step-end infinite - -@keyframes blink - from, to - color: #eeeeee - 50% - color: #333333 - -@-moz-keyframes blink - from, to - color: #eeeeee - 50% - color: #333333 - -@-webkit-keyframes blink - from, to - color: #eeeeee - 50% - color: #333333 - -@-ms-keyframes blink - from, to - color: #eeeeee - 50% - color: #333333 - -@-o-keyframes blink - from, to - color: #eeeeee - 50% - color: #333333 diff --git a/src/components/not-found/CodeBlock.js b/src/components/not-found/CodeBlock.js deleted file mode 100644 index 46dc4402..00000000 --- a/src/components/not-found/CodeBlock.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import "./CodeBlock.css"; - -const CodeBlock = () => { - const textBlock = - " oo oooo oo
    " + - " oo oo oo oo
    " + - " oo oo oo oo
    " + - " oooooo oo oo oooooo
    " + - " oo oo oo oo
    " + - " oo oooo oo
    "; - const charList = textBlock.split(""); - - // Binary representation of the string "OpenDC!" ;) - const binaryString = - "01001111011100000110010101101110010001000100001100100001"; - - let binaryIndex = 0; - for (let i = 0; i < charList.length; i++) { - if (charList[i] === "o") { - charList[i] = binaryString[binaryIndex]; - binaryIndex++; - } - } - - return ( -
    - ); -}; - -export default CodeBlock; diff --git a/src/components/not-found/CodeBlock.sass b/src/components/not-found/CodeBlock.sass deleted file mode 100644 index 51a3d3d0..00000000 --- a/src/components/not-found/CodeBlock.sass +++ /dev/null @@ -1,3 +0,0 @@ -.code-block - white-space: pre-wrap - margin-top: 60px diff --git a/src/components/not-found/TerminalWindow.js b/src/components/not-found/TerminalWindow.js deleted file mode 100644 index c6b8b78b..00000000 --- a/src/components/not-found/TerminalWindow.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from "react"; -import { Link } from "react-router-dom"; -import BlinkingCursor from "./BlinkingCursor"; -import CodeBlock from "./CodeBlock"; -import "./TerminalWindow.css"; - -const TerminalWindow = () => ( -
    -
    Terminal -- bash
    -
    -
    - $ status
    - opendc[4264]: segfault at 0000051497be459d1 err 12 in libopendc.9.0.4
    - opendc[4269]: segfault at 000004234855fc2db err 3 in libopendc.9.0.4
    - opendc[4270]: STDERR Page does not exist
    -
    - -
    - Got lost? -
    - - GET ME BACK TO OPENDC - -
    -
    -); - -export default TerminalWindow; diff --git a/src/components/not-found/TerminalWindow.sass b/src/components/not-found/TerminalWindow.sass deleted file mode 100644 index 4f51a77f..00000000 --- a/src/components/not-found/TerminalWindow.sass +++ /dev/null @@ -1,70 +0,0 @@ -.terminal-window - width: 600px - height: 400px - display: block - - position: absolute - top: 0 - bottom: 0 - left: 0 - right: 0 - - margin: auto - - -webkit-user-select: none - -moz-user-select: none - -ms-user-select: none - user-select: none - cursor: default - - overflow: hidden - - box-shadow: 5px 5px 20px #444444 - -.terminal-header - font-family: monospace - background: #cccccc - color: #444444 - height: 30px - line-height: 30px - padding-left: 10px - - border-top-left-radius: 7px - border-top-right-radius: 7px - -.terminal-body - font-family: monospace - text-align: center - background-color: #333333 - color: #eeeeee - padding: 10px - - height: 100% - -.segfault - text-align: left - -.sub-title - margin-top: 20px - -.home-btn - margin-top: 10px - padding: 5px - display: inline-block - border: 1px solid #eeeeee - color: #eeeeee - text-decoration: none - cursor: pointer - - -webkit-transition: all 200ms - -moz-transition: all 200ms - -o-transition: all 200ms - transition: all 200ms - -.home-btn:hover - background: #eeeeee - color: #333333 - -.home-btn:active - background: #333333 - color: #eeeeee diff --git a/src/components/simulations/FilterButton.js b/src/components/simulations/FilterButton.js deleted file mode 100644 index aa41f180..00000000 --- a/src/components/simulations/FilterButton.js +++ /dev/null @@ -1,24 +0,0 @@ -import classNames from "classnames"; -import PropTypes from "prop-types"; -import React from "react"; - -const FilterButton = ({ active, children, onClick }) => ( - -); - -FilterButton.propTypes = { - active: PropTypes.bool.isRequired, - children: PropTypes.node.isRequired, - onClick: PropTypes.func.isRequired -}; - -export default FilterButton; diff --git a/src/components/simulations/FilterPanel.js b/src/components/simulations/FilterPanel.js deleted file mode 100644 index 836c0842..00000000 --- a/src/components/simulations/FilterPanel.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import FilterLink from "../../containers/simulations/FilterLink"; -import "./FilterPanel.css"; - -const FilterPanel = () => ( -
    - All Simulations - My Simulations - Shared with me -
    -); - -export default FilterPanel; diff --git a/src/components/simulations/FilterPanel.sass b/src/components/simulations/FilterPanel.sass deleted file mode 100644 index e10e4746..00000000 --- a/src/components/simulations/FilterPanel.sass +++ /dev/null @@ -1,5 +0,0 @@ -.filter-panel - display: flex - - button - flex: 1 !important diff --git a/src/components/simulations/NewSimulationButtonComponent.js b/src/components/simulations/NewSimulationButtonComponent.js deleted file mode 100644 index 7e12d30f..00000000 --- a/src/components/simulations/NewSimulationButtonComponent.js +++ /dev/null @@ -1,17 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; - -const NewSimulationButtonComponent = ({ onClick }) => ( -
    -
    - - New Simulation -
    -
    -); - -NewSimulationButtonComponent.propTypes = { - onClick: PropTypes.func.isRequired -}; - -export default NewSimulationButtonComponent; diff --git a/src/components/simulations/SimulationActionButtons.js b/src/components/simulations/SimulationActionButtons.js deleted file mode 100644 index 46f4f159..00000000 --- a/src/components/simulations/SimulationActionButtons.js +++ /dev/null @@ -1,37 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import { Link } from "react-router-dom"; - -const SimulationActionButtons = ({ simulationId, onViewUsers, onDelete }) => ( - - - - -
    onViewUsers(simulationId)} - > - -
    -
    onDelete(simulationId)} - > - -
    - -); - -SimulationActionButtons.propTypes = { - simulationId: PropTypes.number.isRequired, - onViewUsers: PropTypes.func, - onDelete: PropTypes.func -}; - -export default SimulationActionButtons; diff --git a/src/components/simulations/SimulationAuthList.js b/src/components/simulations/SimulationAuthList.js deleted file mode 100644 index f29dc96d..00000000 --- a/src/components/simulations/SimulationAuthList.js +++ /dev/null @@ -1,43 +0,0 @@ -import PropTypes from "prop-types"; -import React from "react"; -import Shapes from "../../shapes/index"; -import SimulationAuthRow from "./SimulationAuthRow"; - -const SimulationAuthList = ({ authorizations }) => { - return ( -
    - {authorizations.length === 0 ? ( -
    - - No simulations here yet... Add some with the 'New - Simulation' button! -
    - ) : ( - - - - - - - - - - {authorizations.map(authorization => ( - - ))} - -
    Simulation nameLast editedAccess rights -
    - )} -
    - ); -}; - -SimulationAuthList.propTypes = { - authorizations: PropTypes.arrayOf(Shapes.Authorization).isRequired -}; - -export default SimulationAuthList; diff --git a/src/components/simulations/SimulationAuthRow.js b/src/components/simulations/SimulationAuthRow.js deleted file mode 100644 index b638fbce..00000000 --- a/src/components/simulations/SimulationAuthRow.js +++ /dev/null @@ -1,32 +0,0 @@ -import classNames from "classnames"; -import React from "react"; -import SimulationActions from "../../containers/simulations/SimulationActions"; -import Shapes from "../../shapes/index"; -import { AUTH_DESCRIPTION_MAP, AUTH_ICON_MAP } from "../../util/authorizations"; -import { parseAndFormatDateTime } from "../../util/date-time"; - -const SimulationAuthRow = ({ simulationAuth }) => ( - - {simulationAuth.simulation.name} - - {parseAndFormatDateTime(simulationAuth.simulation.datetimeLastEdited)} - - - - {AUTH_DESCRIPTION_MAP[simulationAuth.authorizationLevel]} - - - -); - -SimulationAuthRow.propTypes = { - simulationAuth: Shapes.Authorization.isRequired -}; - -export default SimulationAuthRow; -- cgit v1.2.3