Skip to content

Commit

Permalink
[feature] complete design overhaul
Browse files Browse the repository at this point in the history
  • Loading branch information
gabrielcsapo committed May 19, 2020
1 parent c9b6f15 commit db9ec2e
Show file tree
Hide file tree
Showing 53 changed files with 1,531 additions and 1,073 deletions.
33 changes: 23 additions & 10 deletions .storybook/preview-head.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,24 @@
<!-- This file is auto-generated by ember-cli-storybook -->
<meta name="broccoli-inspector/config/environment" content="%7B%22ember-websockets%22%3A%7B%22socketIO%22%3Atrue%7D%2C%22apollo%22%3A%7B%22apiURL%22%3A%22http%3A%2F%2Flocalhost%3A4200%2Fbroccoli-inspector%2Fapi%2Fgraphql%22%7D%2C%22modulePrefix%22%3A%22broccoli-inspector%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%2F_broccoli-inspector%2F%22%2C%22locationType%22%3A%22auto%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22appVersion%22%3A%223.0.1%22%2C%22name%22%3A%22broccoli-inspector%22%2C%22version%22%3A%220.1.2%2Bc7ab4c66%22%7D%2C%22exportApplicationGlobal%22%3Afalse%7D" />
<link rel="apple-touch-icon" href="./assets/favicon/apple-touch-icon-46d49475781a4e8ffacd9d757b2b2af3.png" />
<link rel="icon" href="./assets/favicon/favicon-32x32-73910b61c8ca8f3b038c58161a86322d.png" />
<link rel="icon" href="./assets/favicon/favicon-16x16-5a05f8998791ee6ee2471d3871e8de03.png" />
<link rel="manifest" href="./assets/favicon/site.webmanifest" />
<link rel="mask-icon" href="./assets/favicon/safari-pinned-tab.svg" />
<link rel="stylesheet" href="./assets/vendor-558fdb8794418b304cee5b65ea10dae0.css" />
<link rel="stylesheet" href="./assets/broccoli-inspector-de58c4fa294726a9ca8a4343f2f285e8.css" />
<script src="./assets/vendor-1175ec6ad13fedef872d501ebd1d07e9.js"></script>
<script src="./assets/broccoli-inspector-311f4faf10ba2a9a4a329908bf1b28bb.js"></script>
<meta name="broccoli-inspector/config/environment" content="%7B%22ember-websockets%22%3A%7B%22socketIO%22%3Atrue%7D%2C%22apollo%22%3A%7B%22apiURL%22%3A%22http%3A%2F%2Flocalhost%3A4200%2Fbroccoli-inspector%2Fapi%2Fgraphql%22%7D%2C%22modulePrefix%22%3A%22broccoli-inspector%22%2C%22environment%22%3A%22test%22%2C%22rootURL%22%3A%22%2F_broccoli-inspector%2F%22%2C%22locationType%22%3A%22none%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22LOG_ACTIVE_GENERATION%22%3Afalse%2C%22LOG_VIEW_LOOKUPS%22%3Afalse%2C%22rootElement%22%3A%22%23ember-testing%22%2C%22autoboot%22%3Afalse%2C%22appVersion%22%3A%223.0.1%22%2C%22name%22%3A%22broccoli-inspector%22%2C%22version%22%3A%220.1.2%2Bc9b6f150%22%7D%2C%22ember-paper%22%3A%7B%22insertFontLinks%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Atrue%7D" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="./assets/vendor-78fca8282395a1b28c7d1bbb0dbb9d78.css" />
<link rel="stylesheet" href="./assets/broccoli-inspector-aa19d6fbee090aa49a24e6845ab002e4.css" />
<script>
(function() {
var srcUrl = null;
var host = location.hostname || 'localhost';
var defaultPort = location.protocol === 'https:' ? 443 : 80;
var port = 4200;
var path = '';
var prefixURL = '';
var src = srcUrl || prefixURL + '/_lr/livereload.js?port=' + port + '&host=' + host + path;
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = location.protocol + '//' + host + ':4200' + src;
document.getElementsByTagName('head')[0].appendChild(script);
}());
</script>
<script src="/testem.js"></script>
<script src="./assets/vendor-1e15a8cb1f3d21f07d07ad1f8e5444af.js"></script>
<script src="./assets/broccoli-inspector-dd09579da1a62c2164b8ae6af32d8fb7.js"></script>
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 0.2.0
- fixes places where ms wasn't sorting correctly

# 0.1.2 (05/11/2020)

- Surfaces monitors in the heimdall custom tab section as well
Expand Down
29 changes: 29 additions & 0 deletions app/components/build-plugins.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<PaperCard as |card|>
<card.title as |title|>
<title.text as |text|>
<text.headline>Plugin Information</text.headline>
<text.subhead>This shows plugins that were run for this specific build.</text.subhead>
</title.text>
</card.title>
<PaperTabs @stretch={{true}} @borderBottom={{true}} @selected={{this.selectedTab}} @onChange={{action (mut this.selectedTab)}} as |tabs|>
<tabs.tab>
Chart
</tabs.tab>
<tabs.tab>
Table
</tabs.tab>
</PaperTabs>
{{#if (eq selectedTab 0)}}
<C3Chart
@data={{this.data}}
@axis={{this.axis}}
@c3chart={{this.chart}}
/>
{{else}}
<Table
@title=""
@data={{this.nodes}}
@empty="No Plugin information"
/>
{{/if}}
</PaperCard>
68 changes: 68 additions & 0 deletions app/components/build-plugins.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import Component from "@glimmer/component";
import { bind, later } from "@ember/runloop";
import { action, computed } from "@ember/object";
import { tracked } from '@glimmer/tracking';

export default class BuildPlugins extends Component {
@tracked
selectedTab = 0;

chart = null;

get nodes() {
const nodes = this.args?.nodes;

const body = nodes
.filter((node) => {
return node.buildState.selfTime !== 0 && node.buildState.selfTime > 50;
})
.map((node) => {
return [node.id, {
text: node.label,
linkModel: node.id,
linkRoute: 'node'
}, { raw: node.buildState.selfTime, text: `${node.buildState.selfTime}ms` }];
});

return {
header: [
`ID`,
`Label`,
`Time`
],
body
}
}

get axis() {
return {
x: {
type: 'category'
}
}
}

get data() {
const nodes = this.args?.nodes || [];

const json = nodes
.filter((node) => {
return node.buildState.selfTime !== 0 && node.buildState.selfTime > 50;
})
.map((node) => {
return {
label: node.label,
selfTime: node.buildState.selfTime
};
});

return {
json,
keys: {
x: 'label',
value: ['selfTime'],
},
type: 'bar'
}
}
}
49 changes: 49 additions & 0 deletions app/components/builds-list.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<PaperContent>
<div class="paper-content--block">
<div class="layout-row layout-align-start-center h-100">
<div>
<b>Builds</b>
</div>
</div>
</div>
<PaperDivider />
<PaperList>
{{#if this.builds}}
{{#each this.builds key="@index" as |build idx|}}
{{#if (and this.isCollapsed (lt idx 10))}}
<PaperItem @class="md-3-line" @href={{href-to "build" build.id}}>
<PaperButton @raised={{true}} @mini={{true}} @primary={{true}} @disabled={{true}}>
{{build.id}}
</PaperButton>
<div class="md-list-item-text">
<h3>{{build.time}}ms</h3>
<h4>{{build.filePath}}</h4>
<h4>{{build.amountOfNodes}} nodes run</h4>
</div>
</PaperItem>
{{/if}}

{{#unless this.isCollapsed}}
<PaperItem @class="md-3-line" @href={{href-to "build" build.id}}>
<PaperButton @raised={{true}} @mini={{true}} @primary={{true}} @disabled={{true}}>
{{build.id}}
</PaperButton>
<div class="md-list-item-text">
<h3>{{build.time}}ms</h3>
<h4>{{build.filePath}}</h4>
<h4>{{build.amountOfNodes}} nodes run</h4>
</div>
</PaperItem>
{{/unless}}
{{/each}}

{{#if (and this.isCollapsed (gt this.builds.length 10))}}
<PaperButton @onClick={{this.uncollapse}}>Show {{sub this.builds.length 10}} more builds</PaperButton>
{{/if}}
{{else}}
<PaperItem>
No builds found
</PaperItem>
{{/if}}
</PaperList>
</PaperContent>
17 changes: 17 additions & 0 deletions app/components/builds-list.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import Component from "@glimmer/component";
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';

export default class BuildsList extends Component {
@tracked
isCollapsed = true;

get builds() {
return this.args.builds;
}

@action
uncollapse() {
this.isCollapsed = false;
}
}
9 changes: 0 additions & 9 deletions app/components/charts/fs-count.hbs

This file was deleted.

16 changes: 0 additions & 16 deletions app/components/charts/plugin-time-breakdown.hbs

This file was deleted.

16 changes: 9 additions & 7 deletions app/components/empty-state.hbs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
<div class="empty-state text-center">
<div class="empty-state--icon">
<FaIcon @icon={{@iconType}} @size={{@iconSize}} @spin={{@spin}}/>
</div>
<h2 class="empty-state--title">{{@title}}</h2>
<p class="empty-state--subtitle">{{@subtitle}}</p>
</div>
<PaperCard as |card|>
<card.title as |title|>
<title.text as |text|>
<text.headline>{{@title}}</text.headline>
<text.subhead>{{@subtitle}}</text.subhead>
</title.text>
<PaperIcon @icon={{@iconType}} />
</card.title>
</PaperCard>
74 changes: 45 additions & 29 deletions app/components/instantiation-stack-explorer.hbs
Original file line number Diff line number Diff line change
@@ -1,38 +1,54 @@
<div class="card">
{{#if this.filePath}}
<div class="card-header">
{{this.filePath}} {{this.line}}:{{this.column}}
</div>
{{/if}}
<div class="container-fluid overflow-auto m-0 p-0" style="height: 400px;">
<div class="row">
<div class="col-9 pt-0 pb-0 pr-0 pl-2 m-0">
<PaperCard as |card|>
<card.content @class="p-0">
<PaperSidenavContainer>
<PaperCardContent @class="flex p-0">
{{#if loading}}
<EmptyState
@iconType="spinner"
@iconSize="4x"
@spin={{true}}
@title="Loading file to view"
/>
<PaperCard as |card|>
<card.title as |title|>
<title.text as |text|>
<text.headline>Currently loading file</text.headline>
<text.subhead>Please do not refresh, this page will refresh when data is loaded</text.subhead>
</title.text>
<PaperProgressCircular @accent={{true}} @class="md-hue-1" @diameter={{60}} />
</card.title>
</PaperCard>
{{else}}
{{#if this.file}}
<CodeBlock class="line-numbers mt-0" @code={{this.file}} @language="javascript" data-line={{this.line}}/>
<div style="height:700px;">
<PaperToolbar>
<PaperToolbarTools>
{{this.filePath}} {{this.line}}:{{this.column}}
</PaperToolbarTools>
</PaperToolbar>

<CodeBlock style="overflow:scroll;height:100%;" class="line-numbers mb-0 mt-0" @code={{this.file}} @language="javascript" data-line={{this.line}}/>
</div>
{{else}}
<EmptyState
@iconType="file-code"
@iconSize="4x"
@iconType="code"
@title="Click stack line on the right to see file"
/>
{{/if}}
{{/if}}
</div>
<div class="col-3 p-0 m-0">
<ul class="list-group">
{{#each this.instantiationStack as |instantiationStackLine index|}}
<li data-index={{index}} class="list-group-item list-group-item-action {{if (eq this.selectedIndex index) "list-group-item-action-active"}}" {{on "click" this.onStackClick}}>{{html instantiationStackLine}}</li>
{{/each}}
</ul>
</div>
</div>
</div>
</div>
</PaperCardContent>

<PaperSidenav @class="md-whiteframe-z2" @lockedOpen={{true}}>
<PaperContent>
<PaperList>
{{#each this.instantiationStack as |instantiationStackLine|}}
{{#if instantiationStackLine.filePath}}
<PaperItem @onClick={{fn (action "onStackClick") instantiationStackLine.filePath instantiationStackLine.line instantiationStackLine.column}} @class={{if (eq this.selectedIndex index) "active"}}>
{{instantiationStackLine.stackLine}}
</PaperItem>
{{else}}
<PaperItem @class={{if (eq this.selectedIndex index) "active"}}>
{{instantiationStackLine.stackLine}}
</PaperItem>
{{/if}}
{{/each}}
</PaperList>
</PaperContent>
</PaperSidenav>
</PaperSidenavContainer>
</card.content>
</PaperCard>
Loading

0 comments on commit db9ec2e

Please sign in to comment.