Ssmith has uploaded a new change for review.
https://gerrit.wikimedia.org/r/171982
Change subject: make gauge range selection more clear
......................................................................
make gauge range selection more clear
WIP - add button functionality
Change-Id: I9079383ca715951a1bc3240f33210a22ac402316
---
M src/components/widgets/fraud-gauge/fraud-gauge.html
M src/components/widgets/fraud-gauge/fraud-gauge.js
M src/css/style.css
3 files changed, 80 insertions(+), 26 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/dash
refs/changes/82/171982/1
diff --git a/src/components/widgets/fraud-gauge/fraud-gauge.html
b/src/components/widgets/fraud-gauge/fraud-gauge.html
index 514b80b..e3ae2d0 100644
--- a/src/components/widgets/fraud-gauge/fraud-gauge.html
+++ b/src/components/widgets/fraud-gauge/fraud-gauge.html
@@ -1,3 +1,4 @@
+
<div class="panel panel-purple" id="fraudGaugeWidget">
<div class="panel-heading">
Fraud Rejections
@@ -43,12 +44,12 @@
<div class="form-group">
<label
for="fraudPercentSlider">Fraud Percent Ranges</label>
<p>set up the colors as they'll
appear in the gauge.</p>
- <div id="fraudPercentSlider"></div>
+ <canvas id="fraudPercentSlider"
width="350"></canvas>
<table class="table sliderTable
text-center">
<tr>
- <td data-bind="attr: {
width: lowRange() + '%' }">0 - <span data-bind="text: lowRange"></span>%</td>
- <td data-bind="attr: {
width: ( highRange() - lowRange() ) + '%' }"><span data-bind="text:
lowRange"></span> - <span data-bind="text: highRange"></span>%</td>
- <td data-bind="attr: {
width: ( 100 - highRange()) + '%' }"><span data-bind="text: highRange"></span>
- 100%</td>
+ <td><button class="btn
btn-success">0 - <span data-bind="text: greenRange"></span>%</button></td>
+ <td><button class="btn
btn-warning"><span data-bind="text: greenRange"></span> - <span
data-bind="text: yellowRange"></span>%</button></td>
+ <td><button class="btn
btn-danger"><span data-bind="text: yellowRange"></span> - 100%</button></td>
</tr>
</table>
</div>
diff --git a/src/components/widgets/fraud-gauge/fraud-gauge.js
b/src/components/widgets/fraud-gauge/fraud-gauge.js
index 78b840a..44db97a 100644
--- a/src/components/widgets/fraud-gauge/fraud-gauge.js
+++ b/src/components/widgets/fraud-gauge/fraud-gauge.js
@@ -2,12 +2,10 @@
'knockout',
'text!components/widgets/fraud-gauge/fraud-gauge.html',
'gauge',
- 'noUISlider',
'c3',
- 'selectize',
- 'bootstrap-datepicker'
+ 'chartjs'
],
-function( ko, template, datePickersTemplate, noUISlider, c3 ){
+function( ko, template, datePickersTemplate, c3, chartjs ){
function FraudGaugeViewModel( params ){
@@ -40,23 +38,71 @@
});
//default range slider settings
- self.lowRange = ko.observable(33);
- self.highRange = ko.observable(66);
- $('#fraudPercentSlider').noUiSlider({
- start: [ self.lowRange(), self.highRange() ],
- range: {
- 'min': [0],
- 'max': [100]
- },
- step: 1,
- connect: true
+ self.greenRange = ko.observable(12);
+ self.yellowRange = ko.observable(70);
+ self.redRange = ko.computed( function(){
+ return 100 - self.yellowRange();
});
- $('#fraudPercentSlider').on({
- slide: function(){
- var sliderValArray = $('#fraudPercentSlider').val();
- self.lowRange(parseInt(sliderValArray[0]));
- self.highRange(parseInt(sliderValArray[1]));
- },
+
+ //color selection inside modal
+ var canvas = $('#fraudPercentSlider')[0];
+ var ctx = canvas.getContext('2d');
+
+ var placeholder = document.createElement('canvas');
+ placeholder.width = 200;
+ placeholder.height = placeholder.width;
+ var placeholderctx = placeholder.getContext('2d');
+
+ var ddata = [{
+ value: self.greenRange(),
+ color: '#4cae4c'
+ }, {
+ value: self.yellowRange(),
+ color: '#eea236'
+ }, {
+ value: self.redRange(),
+ color: '#c9302c'
+ }];
+
+ new Chart(placeholderctx).Doughnut(ddata, {
+ animation: false,
+ segmentShowStroke: false,
+ onAnimationComplete: function() {
+ function drawLine(color,left,top,bottom){
+ placeholderctx.strokeStyle = color;
+ placeholderctx.lineWidth = 1;
+
+ placeholderctx.beginPath();
+
+ placeholderctx.moveTo(left, top);
+ placeholderctx.lineTo(left,bottom);
+
+ placeholderctx.stroke();
+ placeholderctx.closePath();
+ }
+
+ var center = Math.round($(placeholder).width() / 2);
+ var offset1 = center / 40;
+ var offset2 = center / 80;
+
+ drawLine('white',center,offset1,center / 2+offset2);
+ drawLine('white',center,0,offset1);
+ drawLine('white',center,center / 2+offset2,center /
2+offset1+offset2);
+
+ var cropHeight = Math.round(placeholder.height/2);
+ ctx.clearRect(0,0,canvas.width,canvas.height);
+ ctx.drawImage(
+ placeholder,
+ 0,
+ 0,
+ placeholder.width,
+ cropHeight,
+ 0,
+ 0,
+ placeholder.width,
+ cropHeight
+ );
+ }
});
self.validateSubmission = function( times, filters ){
@@ -213,7 +259,7 @@
}
});
});
- };
+ }
};
diff --git a/src/css/style.css b/src/css/style.css
index 86d896a..acd85ae 100644
--- a/src/css/style.css
+++ b/src/css/style.css
@@ -207,7 +207,8 @@
}
#fraudPercentSlider {
- margin: 10px 0;
+ margin: 0 auto;
+ padding-left:40px;
}
#queryButton {
@@ -341,6 +342,12 @@
width: 100px;
}
+.sliderTable {
+ width: 50%;
+ margin-top: -30px;
+ font-weight: bold;
+}
+
.sliderTable > tbody > tr > td {
border-top: none;
}
--
To view, visit https://gerrit.wikimedia.org/r/171982
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9079383ca715951a1bc3240f33210a22ac402316
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/dash
Gerrit-Branch: master
Gerrit-Owner: Ssmith <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits