Merge pull request #9 from AAVikings/master

Improving clone list and history views
This commit is contained in:
z@tOr authored and GitHub committed 2019-01-30 15:25:27 -03:00
commit e62bd72ed3
5 files changed
+53 -41

No files matched your search

+1 -1
View File
@@ -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": {
+49 -40
View File
@@ -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 &&
+1
View File
@@ -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
+1
View File
@@ -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){