Merge pull request #9 from AAVikings/master
Improving clone list and history views
This commit is contained in:
5 files changed
+53
-41
No files matched your search
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@superalgos/operations-client",
|
||||
"version": "0.0.4",
|
||||
"version": "0.0.5",
|
||||
"description": "Superalgos Operations client-side web app",
|
||||
"main": "src/index.js",
|
||||
"dependencies": {
|
||||
|
||||
@@ -32,6 +32,7 @@ class ListClones extends Component {
|
||||
render () {
|
||||
const { classes } = this.props
|
||||
const clone = this.props.currentClone
|
||||
console.log(clone)
|
||||
return (
|
||||
<React.Fragment>
|
||||
<ExpansionPanel className={classes.root}>
|
||||
@@ -83,48 +84,56 @@ class ListClones extends Component {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classNames(classes.column3, classes.helper)}>
|
||||
<Typography className={classes.cloneInfoTitle}>Execution Information</Typography>
|
||||
<div className={classes.details}>
|
||||
<div className={classes.column4}>
|
||||
<Typography className={classes.cloneInfoBold}>Last Execution:</Typography>
|
||||
{ (clone.botType === 'Trading' && isDefined(clone.assetA) ) &&
|
||||
<React.Fragment>
|
||||
<Typography className={classes.cloneInfoBold}>Buy Average:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>Sell Average:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>Market Rate:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>ROI {clone.assetA}:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>ROI {clone.assetB}:</Typography>
|
||||
</React.Fragment>
|
||||
}
|
||||
{ isDefined(clone.summaryDate) &&
|
||||
<React.Fragment>
|
||||
<div className={classNames(classes.column3, classes.helper)}>
|
||||
<Typography className={classes.cloneInfoTitle}>Execution Information</Typography>
|
||||
<div className={classes.details}>
|
||||
<div className={classes.column4}>
|
||||
<Typography className={classes.cloneInfoBold}>Last Execution:</Typography>
|
||||
{ (clone.botType === 'TRADER' && isDefined(clone.assetA) ) &&
|
||||
<React.Fragment>
|
||||
<Typography className={classes.cloneInfoBold}>Buy Average:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>Sell Average:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>Market Rate:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>ROI {clone.assetA}:</Typography>
|
||||
<Typography className={classes.cloneInfoBold}>ROI {clone.assetB}:</Typography>
|
||||
</React.Fragment>
|
||||
}
|
||||
</div>
|
||||
<div className={classes.column4}>
|
||||
<Typography className={classes.cloneInfoNormal}>{ toLocalTime(clone.summaryDate) }</Typography>
|
||||
{ (clone.botType === 'TRADER' && isDefined(clone.assetA) ) &&
|
||||
<React.Fragment>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.buyAverage}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.sellAverage}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.marketRate}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.combinedProfitsA}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.combinedProfitsB}</Typography>
|
||||
</React.Fragment>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classes.column4}>
|
||||
<Typography className={classes.cloneInfoNormal}>{isDefined(clone.summaryDate) ? toLocalTime(clone.summaryDate): 'waiting update...'}</Typography>
|
||||
{ ((clone.botType === 'Indicator' || clone.botType === 'Extraction') && isDefined(clone.assetA) ) &&
|
||||
<React.Fragment>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.buyAverage}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.sellAverage}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.marketRate}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.combinedProfitsA}</Typography>
|
||||
<Typography className={classes.cloneInfoNormal}>{clone.combinedProfitsB}</Typography>
|
||||
</React.Fragment>
|
||||
}
|
||||
</React.Fragment>
|
||||
}
|
||||
{ (clone.state !== 'UNPUBLISHED') &&
|
||||
<React.Fragment>
|
||||
<div className={classNames(classes.column3, classes.helper)}>
|
||||
<Typography className={classes.cloneInfoTitle}>Virtual Machine Status</Typography>
|
||||
<TextField
|
||||
id="outlined-state"
|
||||
defaultValue={clone.state}
|
||||
margin="normal"
|
||||
InputProps={{
|
||||
readOnly: true,
|
||||
}}
|
||||
fullWidth
|
||||
multiline
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={classNames(classes.column3, classes.helper)}>
|
||||
<Typography className={classes.cloneInfoTitle}>Virtual Machine Status</Typography>
|
||||
<TextField
|
||||
id="outlined-state"
|
||||
defaultValue={clone.state}
|
||||
margin="normal"
|
||||
InputProps={{
|
||||
readOnly: true,
|
||||
}}
|
||||
fullWidth
|
||||
multiline
|
||||
/>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
}
|
||||
</ExpansionPanelDetails>
|
||||
{
|
||||
!this.props.isHistory &&
|
||||
|
||||
@@ -9,6 +9,7 @@ const cloneDetails = async(authorization, botsByUser, clone) => {
|
||||
let selectedBot = getSelectedBot(botsByUser.data.data.teams_FbByTeamMember, clone.botId)
|
||||
clone.teamId = botsByUser.data.data.teams_FbByTeamMember.id
|
||||
clone.botId = selectedBot.id
|
||||
clone.kind = selectedBot.kind
|
||||
clone.teamSlug = botsByUser.data.data.teams_FbByTeamMember.slug
|
||||
clone.botSlug = selectedBot.slug
|
||||
clone.cloneName = getJobNameFromClone(clone)
|
||||
|
||||
@@ -34,6 +34,7 @@ const resolve = async(parent, args, context) => {
|
||||
|
||||
for (var i = 0; i < clones.length; i++) {
|
||||
clones[i] = await cloneDetails(context.authorization, botsByUser, clones[i])
|
||||
clones[i].botType = clones[i].kind // Only for listing we show the teams value
|
||||
}
|
||||
|
||||
return clones
|
||||
|
||||
@@ -39,6 +39,7 @@ const resolve = async(parent, args, context) => {
|
||||
clones[i].state = state.substring(1, state.length-1)
|
||||
let lastLogs = await getCloneLogs(clones[i].cloneName)
|
||||
clones[i].lastLogs = lastLogs.substring(1, lastLogs.length-1)
|
||||
clones[i].botType = clones[i].kind // Only for listing we show the teams value
|
||||
}
|
||||
return clones
|
||||
} catch (err){
|
||||
|
||||
Reference in new issue
Block a user