Unverified Commit b0bcde86 authored by Lijiaoa's avatar Lijiaoa Committed by GitHub
Browse files

Refine webui (#4548)

parent b4d8aebb
import React, { useState, useCallback, useContext } from 'react'; import React, { useState, useCallback, useContext } from 'react';
import axios from 'axios'; import axios from 'axios';
import { Dropdown } from '@fluentui/react'; import { Dropdown } from '@fluentui/react';
import { EXPERIMENT } from '../../../static/datamodel'; import { AppContext } from '@/App';
import { toSeconds } from '../../../static/experimentConfig'; import { MANAGER_IP, MAX_TRIAL_NUMBERS } from '@static/const';
import { AppContext } from '../../../App'; import { EXPERIMENT } from '@static/datamodel';
import { toSeconds } from '@static/experimentConfig';
import { EditExpeParamContext } from './context'; import { EditExpeParamContext } from './context';
import { durationUnit } from '../overviewConst'; import { durationUnit } from '../overviewConst';
import { MANAGER_IP, MAX_TRIAL_NUMBERS } from '../../../static/const'; import { Edit, CheckMark, Cancel } from '@components/fluent/Icon';
import { Edit, CheckMark, Cancel } from '../../buttons/Icon'; import MessageInfo from '@components/common/MessageInfo';
import MessageInfo from '../../modals/MessageInfo'; import '@style/experiment/overview/count.scss';
import '../../../static/style/overview/count.scss';
const DurationInputRef = React.createRef<HTMLInputElement>(); const DurationInputRef = React.createRef<HTMLInputElement>();
......
import React from 'react'; import React from 'react';
import { Stack, ProgressIndicator, TooltipHost, DirectionalHint } from '@fluentui/react'; import { Stack, ProgressIndicator, TooltipHost, DirectionalHint } from '@fluentui/react';
import { EXPERIMENT } from '../../../static/datamodel'; import { EXPERIMENT } from '@static/datamodel';
import { CONTROLTYPE, TOOLTIP_BACKGROUND_COLOR } from '../../../static/const'; import { CONTROLTYPE, TOOLTIP_BACKGROUND_COLOR } from '@static/const';
import { convertDuration, convertTimeAsUnit } from '../../../static/function'; import { convertDuration, convertTimeAsUnit } from '@static/function';
import { EditExperimentParam } from './EditExperimentParam'; import { EditExperimentParam } from './EditExperimentParam';
import { ExpDurationContext } from './ExpDurationContext'; import { ExpDurationContext } from './ExpDurationContext';
import { EditExpeParamContext } from './context'; import { EditExpeParamContext } from './context';
import { leftProgress, rightEidtParam, progressHeight } from './commonStyle'; import { leftProgress, rightEidtParam, progressHeight } from './commonStyle';
import '../../../static/style/overview/count.scss'; import '@style/experiment/overview/count.scss';
export const ExpDuration = (): any => ( export const ExpDuration = (): any => (
<ExpDurationContext.Consumer> <ExpDurationContext.Consumer>
......
import * as React from 'react'; import * as React from 'react';
import { Stack, TooltipHost, ProgressIndicator, DirectionalHint, IStackTokens } from '@fluentui/react'; import { Stack, TooltipHost, ProgressIndicator, DirectionalHint, IStackTokens } from '@fluentui/react';
import { EXPERIMENT, TRIALS } from '../../../static/datamodel'; import { EXPERIMENT, TRIALS } from '@static/datamodel';
import { CONTROLTYPE, TOOLTIP_BACKGROUND_COLOR, MAX_TRIAL_NUMBERS } from '../../../static/const'; import { CONTROLTYPE, TOOLTIP_BACKGROUND_COLOR, MAX_TRIAL_NUMBERS } from '@static/const';
import { EditExperimentParam } from './EditExperimentParam'; import { EditExperimentParam } from './EditExperimentParam';
import { EditExpeParamContext } from './context'; import { EditExpeParamContext } from './context';
import { ExpDurationContext } from './ExpDurationContext'; import { ExpDurationContext } from './ExpDurationContext';
......
import React, { useState, useCallback } from 'react'; import React, { useState, useCallback } from 'react';
import { Stack, Callout, Link, IconButton } from '@fluentui/react'; import { Stack, Callout, Link, IconButton } from '@fluentui/react';
import LogDrawer from '../../modals/LogPanel';
import { EXPERIMENT } from '../../../static/datamodel';
import { formatTimestamp } from '../../../static/function';
import { useId } from '@uifabric/react-hooks'; import { useId } from '@uifabric/react-hooks';
import { BestMetricContext } from '../../Overview'; import { EXPERIMENT } from '@static/datamodel';
import { formatTimestamp } from '@static/function';
import LogPanel from '@components/nav/slideNav/LogPanel';
import { BestMetricContext } from '../Overview';
import { styles } from './basicInfoStyles'; import { styles } from './basicInfoStyles';
import '../../../static/style/overview/probar.scss'; import '@style/common/experimentStatusColor.scss';
import '../../../static/style/overview/basic.scss'; import '@style/experiment/overview/basic.scss';
export const BasicInfo = (): any => { export const BasicInfo = (): any => {
const labelId: string = useId('callout-label'); const labelId: string = useId('callout-label');
...@@ -92,7 +92,7 @@ export const BasicInfo = (): any => { ...@@ -92,7 +92,7 @@ export const BasicInfo = (): any => {
</div> </div>
</Stack> </Stack>
{/* learn about click -> default active key is dispatcher. */} {/* learn about click -> default active key is dispatcher. */}
{isShowLogDrawer ? <LogDrawer closeDrawer={closeLogDrawer} activeTab='dispatcher' /> : null} {isShowLogDrawer ? <LogPanel closePanel={closeLogDrawer} activeTab='dispatcher' /> : null}
</div> </div>
); );
}; };
...@@ -48,5 +48,10 @@ export const styles = mergeStyleSets({ ...@@ -48,5 +48,10 @@ export const styles = mergeStyleSets({
{ {
color: theme.palette.neutralPrimary color: theme.palette.neutralPrimary
} }
] ],
buttons: {
display: 'flex',
justifyContent: 'flex-end',
padding: '0 24px 24px'
}
}); });
import * as React from 'react'; import * as React from 'react';
import { TRIALS } from '../../static/datamodel'; import { TRIALS } from '@static/datamodel';
import { formatAccuracy } from '../../static/function'; import { formatAccuracy } from '@static/function';
// oview page table: default metric column render // oview page table: default metric column render
interface DefaultMetricProps { interface DefaultMetricProps {
......
...@@ -13,16 +13,16 @@ import { ...@@ -13,16 +13,16 @@ import {
ScrollablePane, ScrollablePane,
ScrollbarVisibility ScrollbarVisibility
} from '@fluentui/react'; } from '@fluentui/react';
import DefaultMetric from '../../public-child/DefaultMetric'; import DefaultMetric from './DefaultMetric';
import OpenRow from '../../public-child/OpenRow'; import OpenRow from '@components/common/OpenRow';
import CopyButton from '../../public-child/CopyButton'; import CopyButton from '@components/common/CopyButton';
import { convertDuration, copyAndSort } from '../../../static/function'; import { convertDuration, copyAndSort } from '@static/function';
import { TRIALS } from '../../../static/datamodel'; import { TRIALS } from '@static/datamodel';
import { SortInfo } from '../../../static/interface'; import { SortInfo } from '@static/interface';
import { DETAILTABS } from '../../stateless-component/NNItabs'; import { DETAILTABS } from '@components/nav/slideNav/NNItabs';
import '../../../static/style/succTable.scss'; import '@style/experiment/overview/succTable.scss';
import '../../../static/style/tableStatus.css'; import '@style/common/trialStatus.css';
import '../../../static/style/openRow.scss'; import '@style/openRow.scss';
interface SuccessTableProps { interface SuccessTableProps {
trialIds: string[]; trialIds: string[];
......
import * as React from 'react'; import * as React from 'react';
import { Dialog, DialogType, DialogFooter, Checkbox, PrimaryButton, DefaultButton } from '@fluentui/react'; import { Dialog, DialogType, DialogFooter, Checkbox, PrimaryButton, DefaultButton } from '@fluentui/react';
/**
* changeColumnComponent file is for [customized table column, customized hyper-parameter graph yAxis]
* and currently it uses localstorage to store the customized results
*/
interface ChangeColumnState { interface ChangeColumnState {
// buffer, not saved yet // buffer, not saved yet
currentSelected: string[]; currentSelected: string[];
......
import * as React from 'react'; import * as React from 'react';
import { Stack, Pivot, PivotItem } from '@fluentui/react'; import { Stack, Pivot, PivotItem } from '@fluentui/react';
import { EXPERIMENT, TRIALS } from '../static/datamodel'; import { EXPERIMENT, TRIALS } from '@static/datamodel';
import { AppContext } from '../App'; import { AppContext } from '@/App';
import DefaultPoint from './trial-detail/DefaultMetricPoint'; import DefaultPoint from './chart/DefaultMetricPoint';
import Duration from './trial-detail/Duration'; import Duration from './chart/Duration';
import Para from './trial-detail/Para'; import Para from './chart/Para';
import Intermediate from './trial-detail/Intermediate'; import Intermediate from './chart/Intermediate';
import TableList from './trial-detail/TableList'; import TableList from './table/TableList';
import '../static/style/search.scss'; import '@style/button.scss';
import '@style/logPath.scss';
import '@style/openRow.scss';
import '@style/pagination.scss';
import '@style/experiment/overview/overviewTitle.scss';
import '@style/experiment/trialdetail/search.scss';
import '@style/experiment/trialdetail/tensorboard.scss';
import '@style/table.scss';
import '@style/common/trialStatus.css';
/**
* single experiment
* trial detail page
*/
interface TrialDetailState { interface TrialDetailState {
whichChart: string; whichChart: string;
......
import * as React from 'react'; import * as React from 'react';
import { Toggle, Stack } from '@fluentui/react'; import { Toggle, Stack } from '@fluentui/react';
import ReactEcharts from 'echarts-for-react'; import ReactEcharts from 'echarts-for-react';
import { EXPERIMENT, TRIALS } from '../../static/datamodel'; import { Trial } from '@model/trial';
import { Trial } from '../../static/model/trial'; import { EXPERIMENT, TRIALS } from '@static/datamodel';
import { TooltipForAccuracy, EventMap } from '../../static/interface'; import { TooltipForAccuracy, EventMap } from '@static/interface';
import { reformatRetiariiParameter } from '../../static/function'; import { reformatRetiariiParameter } from '@static/function';
import 'echarts/lib/chart/scatter'; import 'echarts/lib/chart/scatter';
import 'echarts/lib/component/tooltip'; import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title'; import 'echarts/lib/component/title';
......
import * as React from 'react'; import * as React from 'react';
import ReactEcharts from 'echarts-for-react'; import ReactEcharts from 'echarts-for-react';
import { TableObj, EventMap } from '../../static/interface'; import { TableObj, EventMap } from '@static/interface';
import { filterDuration, convertDuration } from '../../static/function'; import { filterDuration, convertDuration } from '@static/function';
import 'echarts/lib/chart/bar'; import 'echarts/lib/chart/bar';
import 'echarts/lib/component/tooltip'; import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title'; import 'echarts/lib/component/title';
......
import * as React from 'react'; import * as React from 'react';
import { Stack, PrimaryButton, Toggle, IStackTokens } from '@fluentui/react'; import { Stack, PrimaryButton, Toggle, IStackTokens } from '@fluentui/react';
import { TooltipForIntermediate, TableObj, Intermedia, EventMap } from '../../static/interface'; import { TooltipForIntermediate, TableObj, Intermedia, EventMap } from '@static/interface';
import { reformatRetiariiParameter } from '../../static/function'; import { reformatRetiariiParameter } from '@static/function';
import ReactEcharts from 'echarts-for-react'; import ReactEcharts from 'echarts-for-react';
import 'echarts/lib/component/tooltip'; import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title'; import 'echarts/lib/component/title';
......
import * as React from 'react';
import * as d3 from 'd3'; import * as d3 from 'd3';
import { Dropdown, IDropdownOption, Stack, DefaultButton } from '@fluentui/react'; import { Dropdown, IDropdownOption, Stack, DefaultButton } from '@fluentui/react';
import ParCoords from 'parcoord-es'; import ParCoords from 'parcoord-es';
import { SearchSpace } from '@model/searchspace';
import { filterByStatus } from '@static/function';
import { EXPERIMENT, TRIALS } from '@static/datamodel';
import { TableObj, SingleAxis, MultipleAxes } from '@static/interface';
import ChangeColumnComponent from '../ChangeColumnComponent';
import 'parcoord-es/dist/parcoords.css'; import 'parcoord-es/dist/parcoords.css';
import * as React from 'react'; import '@style/button.scss';
import { EXPERIMENT, TRIALS } from '../../static/datamodel'; import '@style/experiment/trialdetail/para.scss';
import { SearchSpace } from '../../static/model/searchspace';
import { filterByStatus } from '../../static/function';
import { TableObj, SingleAxis, MultipleAxes } from '../../static/interface';
import '../../static/style/button.scss';
import '../../static/style/para.scss';
import ChangeColumnComponent from '../modals/ChangeColumnComponent';
interface ParaState { interface ParaState {
dimName: string[]; dimName: string[];
......
...@@ -10,31 +10,22 @@ import { ...@@ -10,31 +10,22 @@ import {
DirectionalHint, DirectionalHint,
Checkbox Checkbox
} from '@fluentui/react'; } from '@fluentui/react';
import { EXPERIMENT, TRIALS } from '../../static/datamodel'; import { EXPERIMENT, TRIALS } from '@static/datamodel';
import { TOOLTIP_BACKGROUND_COLOR } from '../../static/const'; import { TOOLTIP_BACKGROUND_COLOR } from '@static/const';
import { convertDuration, formatTimestamp, copyAndSort, parametersType, parseMetrics } from '../../static/function'; import { convertDuration, formatTimestamp, copyAndSort, parametersType, parseMetrics } from '@static/function';
import { TableObj, SortInfo, SearchItems } from '../../static/interface'; import { TableObj, SortInfo, SearchItems } from '@static/interface';
import { getTrialsBySearchFilters } from './search/searchFunction'; import { getTrialsBySearchFilters } from './tableFunction/search/searchFunction';
import { blocked, copy, LineChart, tableListIcon } from '../buttons/Icon'; import { blocked, copy, LineChart, tableListIcon } from '@components/fluent/Icon';
import ChangeColumnComponent from '../modals/ChangeColumnComponent'; import ChangeColumnComponent from '../ChangeColumnComponent';
import Compare from '../modals/Compare'; import Compare from './tableFunction/Compare';
import Customize from '../modals/CustomizedTrial'; import Customize from './tableFunction/CustomizedTrial';
import TensorboardUI from '../modals/tensorboard/TensorboardUI'; import TensorboardUI from './tableFunction/tensorboard/TensorboardUI';
import Search from './search/Search'; import Search from './tableFunction/search/Search';
import KillJob from '../modals/Killjob'; import KillJob from './tableFunction/killTrial/Killjob';
import ExpandableDetails from '../public-child/ExpandableDetails'; import ExpandableDetails from '@components/common/ExpandableDetails';
import PaginationTable from '../public-child/PaginationTable'; import PaginationTable from '@components/common/PaginationTable';
import CopyButton from '../public-child/CopyButton'; import CopyButton from '@components/common/CopyButton';
import { Trial } from '../../static/model/trial'; import { Trial } from '@model/trial';
import '../../static/style/button.scss';
import '../../static/style/logPath.scss';
import '../../static/style/openRow.scss';
import '../../static/style/pagination.scss';
import '../../static/style/search.scss';
import '../../static/style/table.scss';
import '../../static/style/tableStatus.css';
import '../../static/style/tensorboard.scss';
import '../../static/style/overview/overviewTitle.scss';
require('echarts/lib/chart/line'); require('echarts/lib/chart/line');
require('echarts/lib/component/tooltip'); require('echarts/lib/component/tooltip');
......
...@@ -2,15 +2,16 @@ import * as React from 'react'; ...@@ -2,15 +2,16 @@ import * as React from 'react';
import { renderToString } from 'react-dom/server'; import { renderToString } from 'react-dom/server';
import { Stack, Modal, IconButton, IDragOptions, ContextualMenu, Dropdown, IDropdownOption } from '@fluentui/react'; import { Stack, Modal, IconButton, IDragOptions, ContextualMenu, Dropdown, IDropdownOption } from '@fluentui/react';
import ReactEcharts from 'echarts-for-react'; import ReactEcharts from 'echarts-for-react';
import { TooltipForIntermediate, TableObj, SingleAxis } from '../../static/interface'; import { TooltipForIntermediate, TableObj, SingleAxis } from '@static/interface';
import { contentStyles, iconButtonStyles } from '../buttons/ModalTheme'; import { contentStyles, iconButtonStyles } from '@components/fluent/ModalTheme';
import { convertDuration, parseMetrics } from '../../static/function'; import { convertDuration, parseMetrics } from '@static/function';
import { EXPERIMENT, TRIALS } from '../../static/datamodel'; import { EXPERIMENT, TRIALS } from '@static/datamodel';
import '../../static/style/compare.scss'; import '@style/experiment/trialdetail/compare.scss';
/*** /***
* Compare file is design for [each trial intermediate result and trials compare function] * Compare file is designed for [each trial intermediate result, trials compare model]
* if trial has dict intermediate result, graph support shows all keys that type is number * if trial has dict intermediate result,
* graph only supports to show all keys that type is number
*/ */
function _getWebUIWidth(): number { function _getWebUIWidth(): number {
......
...@@ -2,10 +2,16 @@ import * as React from 'react'; ...@@ -2,10 +2,16 @@ import * as React from 'react';
import axios from 'axios'; import axios from 'axios';
import { Stack, StackItem, PrimaryButton, DefaultButton } from '@fluentui/react'; import { Stack, StackItem, PrimaryButton, DefaultButton } from '@fluentui/react';
import { Dialog, DialogType, DialogFooter } from '@fluentui/react/lib/Dialog'; import { Dialog, DialogType, DialogFooter } from '@fluentui/react/lib/Dialog';
import { MANAGER_IP } from '../../static/const'; import { MANAGER_IP } from '@static/const';
import { EXPERIMENT, TRIALS } from '../../static/datamodel'; import { EXPERIMENT, TRIALS } from '@static/datamodel';
import { warining, errorBadge, completed } from '../buttons/Icon'; import { warining, errorBadge, completed } from '@components/fluent/Icon';
import './customized.scss'; import '@style/experiment/trialdetail/customized.scss';
/**
* customized trial file is for
* [rerun failed trial,
* change trial parameters and add this customized trial into the experiment]
*/
interface CustomizeProps { interface CustomizeProps {
visible: boolean; visible: boolean;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment