Skip to content

Commit

Permalink
Merge branch 'master' into 354-violations-change-sort-order
Browse files Browse the repository at this point in the history
  • Loading branch information
prayerslayer committed Nov 10, 2015
2 parents 0b80324 + f136d95 commit a8b8b87
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 41 deletions.
3 changes: 0 additions & 3 deletions client/lib/common/src/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ function merge(dest, src) {
.keys(src)
.forEach(k => {
result[k] = src[k];
if (typeof src[k] !== 'number' && !src[k]) {
delete result[k];
}
});

return result;
Expand Down
4 changes: 2 additions & 2 deletions client/lib/violation/src/router.react.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ ViolationHandler.fetchData = function(router) {
FULLSTOP_ACTIONS.fetchViolationCount(searchParams);
// tab 2
FULLSTOP_ACTIONS.fetchViolationCountIn(
searchParams.cross ? searchParams.cross.inspectedAccount : searchParams.accounts[0],
searchParams.cross_inspectedAccount ? searchParams.cross_inspectedAccount : searchParams.accounts[0],
searchParams);
// tab 3
FULLSTOP_ACTIONS.fetchViolations(searchParams);
Expand Down Expand Up @@ -170,7 +170,7 @@ class ViolationShortUrlHandler extends React.Component {
}

render() {
return <div><Icon name='circle-o-noth' spin /> Redirecting...</div>;
return <div><Icon name='circle-o-notch' spin /> Redirecting...</div>;
}
}
ViolationShortUrlHandler.displayName = 'ViolationShortUrlHandler';
Expand Down
27 changes: 9 additions & 18 deletions client/lib/violation/src/violation-analysis/violation-analysis.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,11 @@ class ViolationAnalysis extends React.Component {
});
}

accountCellRenderer(accountIdOrName) {
var account;

if (/^[0-9]+$/.test(accountIdOrName)) {
account = accountIdOrName;
} else {
account = Object
.keys(this.props.accounts)
.filter(acc => this.props.accounts[acc].name === accountIdOrName)
.reduce(acc => acc.id, '');
}
accountCellRenderer(a, b, data) {
return <span
title={accountIdOrName}
title={data.accountName}
className='sortable-table-highlight'
onClick={this.selectAccount.bind(this, account)}>{accountIdOrName}</span>;
onClick={this.selectAccount.bind(this, data.account)}>{data.accountName}</span>;
}

violationTypeCellRenderer(violationType) {
Expand All @@ -53,8 +43,9 @@ class ViolationAnalysis extends React.Component {
}

render() {
let {violationCount, violationTypes} = this.props,
let {violationCount, violationTypes, groupByAccount} = this.props,
chartData = [];
groupByAccount = groupByAccount === undefined ? true : groupByAccount;
if (!violationCount.length) {
return <div><Icon name='smile-o' /> <span>No violations!</span></div>;
}
Expand All @@ -66,7 +57,7 @@ class ViolationAnalysis extends React.Component {
accountName: this.props.accounts[c.account] ? this.props.accounts[c.account].name : '?',
quantity: c.quantity
}));
chartData = this.props.groupByAccount ?
chartData = groupByAccount ?
violationCount.filter(c => c.account === this.props.account) :
violationCount.filter(c => c.type === this.props.violationType);

Expand All @@ -81,15 +72,15 @@ class ViolationAnalysis extends React.Component {
{chartData.length ?
<AutoWidth className='violation-analysis-chart'>
<strong>
{this.props.groupByAccount ?
{groupByAccount ?
<span>Account {this.props.accounts[this.props.account] ? this.props.accounts[this.props.account].name : '?'}</span> :
<span>Violation {this.props.violationType}</span>}
</strong>
<Charts.BarChart
data={{
label: 'Violation Count',
values: _.sortByOrder(chartData, ['quantity'], ['desc'])
.map(c => ({ x: this.props.groupByAccount ? c.type : c.accountName, y: c.quantity }))
.map(c => ({ x: groupByAccount ? c.type : c.accountName, y: c.quantity }))
}}
tooltipHtml={(x, y0, y) => y.toString()}
tooltipMode='element'
Expand All @@ -109,7 +100,7 @@ class ViolationAnalysis extends React.Component {
<Table.Column
label='ID'
width={160}
cellRenderer={this.accountCellRenderer.bind(this)}
cellRenderer={account => <span className='sortable-table-highlight' onClick={this.selectAccount.bind(this, account)}>{account}</span>}
dataKey={'account'} />
<Table.Column
label='Account'
Expand Down
11 changes: 2 additions & 9 deletions client/lib/violation/src/violation-card/violation-card.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ import React from 'react';
import {Link} from 'react-router';
import Icon from 'react-fa';
import Timestamp from 'react-time';
import FetchResult from 'common/src/fetch-result';
import DefaultError from 'common/src/error.jsx';
import {DATE_FORMAT} from 'common/src/config';
import 'common/asset/less/violation/violation-card.less';

Expand Down Expand Up @@ -34,13 +32,8 @@ class ViolationCard extends React.Component {
}

render() {
let {violation} = this.props;
if (violation instanceof FetchResult) {
return violation.isPending() ?
<Icon name='circle-o-notch u-spinner' spin /> :
<DefaultError error={violation.getResult()} />;
}
let {violation_type} = violation;
let {violation} = this.props,
{violation_type} = violation;
return <div
data-block='violation-card'
className={'violationCard ' +
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import React from 'react';
import Icon from 'react-fa';
import FetchResult from 'common/src/fetch-result';
import DefaultError from 'common/src/error.jsx';
import Violation from 'violation/src/violation-card/violation-card.jsx';
import 'common/asset/less/violation/violation-detail.less';

Expand All @@ -22,6 +25,11 @@ class ViolationDetail extends React.Component {
let {violationId} = this.props,
accounts = this.stores.user.getUserCloudAccounts().map(a => a.id),
violation = this.stores.fullstop.getViolation(violationId);
if (violation instanceof FetchResult) {
return violation.isPending() ?
<Icon name='circle-o-notch u-spinner' spin /> :
<DefaultError error={violation.getResult()} />;
}
return <div className='violationDetail'>
<Violation
flux={this.props.flux}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ class ViolationOverviewAccount extends React.Component {
if (!this.props.violationCount.length) {
return <div><Icon name='smile-o' /> <span>No violations!</span></div>;
}

let violationCount = this.props
let groupByApplication = typeof this.props.groupByApplication === 'undefined' ? true : this.props.groupByApplication,
violationCount = this.props
.violationCount
.map(v => ({
application: v.application || '',
Expand All @@ -46,10 +46,10 @@ class ViolationOverviewAccount extends React.Component {
.domain([0, maxQuantity])
.range([225, 0])
.nice(),
chartData = this.props.groupByApplication ?
chartData = groupByApplication ?
violationCount.filter(v => v.application === this.props.application) :
violationCount.filter(v => v.type === this.props.violationType),
subject = this.props.groupByApplication ?
subject = groupByApplication ?
<strong>{this.props.application ? 'App ' + this.props.application : ''}</strong> :
<strong>Violation {this.props.violationType}</strong>;
return <div className='violation-account-overview'>
Expand All @@ -60,7 +60,7 @@ class ViolationOverviewAccount extends React.Component {
label: 'Violation Count',
values: _.sortByOrder(chartData, ['quantity'], ['desc'])
.map(c => ({
x: this.props.groupByApplication ? c.type : c.application || '',
x: groupByApplication ? c.type : c.application || '',
y: c.quantity
}))
}}
Expand Down
7 changes: 4 additions & 3 deletions client/lib/violation/src/violation/violation.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,9 @@ class Violation extends React.Component {
activeAccountIds = searchParams.accounts,
showingSince = searchParams.from.toDate(),
showingUntil = searchParams.to.toDate(),
// violations are sorted by id, kind of, if at all
// violations are sorted by id, kind of, if at all, by default
violations = this.stores.fullstop.getViolations()
.filter(v => !!v.id) // remove fetch results
.sort(searchParams.sortAsc ? sortAsc : sortDesc)
.map(v => v.id),
pagingInfo = this.stores.fullstop.getPagingInfo(),
Expand Down Expand Up @@ -251,7 +252,7 @@ class Violation extends React.Component {
</Tabs.TabList>
<Tabs.TabPanel>
<ViolationAnalysis
groupByAccount={searchParams.cross_groupByAccount || true}
groupByAccount={searchParams.cross_groupByAccount}
account={searchParams.cross_inspectedAccount || activeAccountIds[0]}
violationType={searchParams.cross_violationType || null}
accounts={allAccounts}
Expand All @@ -264,7 +265,7 @@ class Violation extends React.Component {
onConfigurationChange={this._updateSearch.bind(this, 'single')}
account={searchParams.cross_inspectedAccount || activeAccountIds[0]}
accounts={allAccounts}
groupByApplication={searchParams.single_groupByApplication || true}
groupByApplication={searchParams.single_groupByApplication}
application={searchParams.single_application || ''}
violationType={searchParams.single_violationType || ''}
violationTypes={violationTypes}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "yourturn",
"version": "0.69.0",
"version": "0.70.0",
"description": "",
"scripts": {
"start": "cd client && node server.js",
Expand Down

0 comments on commit a8b8b87

Please sign in to comment.