Skip to content

Instantly share code, notes, and snippets.

@fhrbek
Last active April 1, 2016 00:36
Show Gist options
  • Save fhrbek/da41bb87e0bb974b2c8bf7e4501fb29b to your computer and use it in GitHub Desktop.
Save fhrbek/da41bb87e0bb974b2c8bf7e4501fb29b to your computer and use it in GitHub Desktop.
PE Radiator
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
import Ember from 'ember';
export default Ember.Controller.extend({
});
import Ember from 'ember';
const nodeCounts = [
{
id: 'enforcement',
counts: {
failed: 1,
changed: 5,
unchanged: 994
}
},
{
id: 'noop',
counts: {
failed: 1,
changed: 2,
unchanged: 3
}
},
];
export default Ember.Route.extend({
model: function () {
return nodeCounts;
}
});
{{#each content as |stats|}}
{{radiator-log stats=stats}}
{{/each}}
import Ember from 'ember';
export default Ember.Component.extend({
});
<div class="bar-wrapper {{category}}">
<div class="bar-left-wrapper">
<div class="bar-label">{{label}}</div>
<div class="bar-total">{{total}}</div>
</div>
<div class="bar-inner-wrapper">
<div class="bar-value" style="width: {{percentLog}}%"/>
</div>
</div>
import Ember from 'ember';
export default Ember.Component.extend({
logConvert: function (per) {
return Math.log10(per * 999 / 1000 + 1) * 100 / 2;
},
label: Ember.computed('stats.id', function() {
return this.get('stats.id').capitalize();
}),
total: Ember.computed('stats.counts.failed',
'stats.counts.changed',
'stats.counts.unchanged',
function () {
return this.get('stats.counts.failed') +
this.get('stats.counts.changed') +
this.get('stats.counts.unchanged');
}),
failedPer: Ember.computed('total', 'stats.counts.failed', function () {
return this.get('stats.counts.failed') / this.get('total') * 100;
}),
changedPer: Ember.computed('total', 'stats.counts.changed', function () {
return this.get('stats.counts.changed') / this.get('total') * 100;
}),
unchangedPer: Ember.computed('total', 'stats.counts.unchanged', function () {
return this.get('stats.counts.unchanged') / this.get('total') * 100;
}),
failedLog: Ember.computed('failedPer', function () {
return this.logConvert(this.get('failedPer'));
}),
changedLog: Ember.computed('changedPer', function () {
return this.logConvert(this.get('changedPer'));
}),
unchangedLog: Ember.computed('unchangedPer', function () {
return this.logConvert(this.get('unchangedPer'));
})
});
<div class="heading">
<span class="total">{{total}}</span> Nodes run in <span class="label">{{label}}</span>
</div>
{{radiator-log-bar label="Failed" category="failed"
total=stats.counts.failed percent=failedPer percentLog=failedLog}}
{{radiator-log-bar label="Changed" category="changed"
total=stats.counts.changed percent=changedPer percentLog=changedLog}}
{{radiator-log-bar label="Unchanged" category="unchanged"
total=stats.counts.unchanged percent=unchangedPer percentLog=unchangedLog}}
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'hash'
});
Router.map(function() {
this.route('log');
this.route('minw');
});
export default Router;
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.heading {
margin-bottom: 10px;
}
.total {
font-size: 2em;
}
.label {
font-size: 1.5em;
}
.bar-wrapper {
height: 30px;
width: 100%;
margin-bottom: 20px;
position: relative;
}
.bar-label,
.bar-total {
display: inline-block;
font-size: 1.5em;
height: 100%;
text-align: right;
position: absolute;
}
.bar-label {
width: 60%;
}
.bar-total {
left: 60%;
right: 0.3em;
}
.bar-left-wrapper {
width: 20%;
height: 100%;
display: inline-block;
position: absolute;
}
.bar-inner-wrapper {
width: 80%;
height: 100%;
display: inline-block;
overflow: hidden;
position: absolute;
left: 20%;
border: 1px solid #000;
box-sizing: border-box;
}
.bar-value {
height: 100%;
display: inline-block;
}
.failed .bar-value {
background-color: #f88;
}
.changed .bar-value {
background-color: #88f;
}
.unchanged .bar-value {
background-color: #8f8;
}
{
"version": "0.7.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": true,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.4.3/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.4.3/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.4.3/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment