From 3813a8968eee060d67b522d1e29af6e5142aab22 Mon Sep 17 00:00:00 2001
From: Jaden Diefenbaugh <blakcap@users.noreply.github.com>
Date: Fri, 3 Mar 2017 16:31:28 +0100
Subject: [PATCH] added precision to tables

---
 .../app/directives/groupAddItemsMenu.js       |  5 +++-
 .../app/directives/groupItemContainer.js      |  2 +-
 .../reports/app/directives/groupTableItem.js  | 24 ++++++++++++++++---
 3 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/beat/web/reports/static/reports/app/directives/groupAddItemsMenu.js b/beat/web/reports/static/reports/app/directives/groupAddItemsMenu.js
index 6909978c7..5c2fc9b63 100644
--- a/beat/web/reports/static/reports/app/directives/groupAddItemsMenu.js
+++ b/beat/web/reports/static/reports/app/directives/groupAddItemsMenu.js
@@ -50,7 +50,10 @@ angular.module('reportApp')
 			scope.addNewTable = function() {
 				return () => {
 					let id = getNextItemId('table');
-					scope.group.addReportItem(id, Array.from(scope.newTable.data));
+					scope.group.addReportItem(id, {
+						fields: Array.from(scope.newTable.data),
+						precision: 10
+					});
 					scope.newTable.data.length = 0;
 				};
 			};
diff --git a/beat/web/reports/static/reports/app/directives/groupItemContainer.js b/beat/web/reports/static/reports/app/directives/groupItemContainer.js
index 85af840e6..62cd16e4a 100644
--- a/beat/web/reports/static/reports/app/directives/groupItemContainer.js
+++ b/beat/web/reports/static/reports/app/directives/groupItemContainer.js
@@ -49,7 +49,7 @@ angular.module('reportApp')
 			id='item.id'
 			show-serialized='showSerialized'
 			serialize-func-obj='serializeFuncObj'
-			fields='item.content'
+			content='item.content'
 			>
 		</div>
 		<div
diff --git a/beat/web/reports/static/reports/app/directives/groupTableItem.js b/beat/web/reports/static/reports/app/directives/groupTableItem.js
index d1eb1d734..16215ecf4 100644
--- a/beat/web/reports/static/reports/app/directives/groupTableItem.js
+++ b/beat/web/reports/static/reports/app/directives/groupTableItem.js
@@ -31,17 +31,21 @@ angular.module('reportApp')
 		scope: {
 			group: '=',
 			id: '=',
-			fields: '=',
+			content: '=',
 			showSerialized: '=',
 			serializeFuncObj: '='
 		},
 		link: function(scope){
+			scope.fields = scope.content.fields;
 			// add 'expName' to the beginning of the fields to show in the table
 			// if it isnt already there
 			if(scope.fields.length === 0 || scope.fields[0] !== 'Experiment'){
 				scope.fields.unshift('Experiment');
 			}
 
+			// 1 - 10
+			scope.floatingPointRange = [...(new Array(10)).keys()].map(i => i + 1);
+
 			console.log(scope.fields);
 			scope.tableables = ExperimentsService.tableables || {};
 			scope.getFieldType = (field) => {
@@ -76,7 +80,12 @@ angular.module('reportApp')
 				} else if(!fVal){
 					val = '-';
 				} else if(fVal.value){
-					val = fVal.value;
+					let tmp = fVal.value;
+					if(Number.isInteger(tmp)){
+						val = tmp;
+					} else {
+						val = tmp.toFixed(parseInt(scope.content.precision));
+					}
 				} else if (fVal){
 					val = fVal;
 				}
@@ -163,6 +172,15 @@ angular.module('reportApp')
 				button-text="Save Column Choices"
 				>
 			</div>
+			<div class='btn-group' role='group'>
+				<button class='btn btn-default' id="{{domId}}-precision" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+					Precision: {{ content.precision }}
+					<span class="caret"></span>
+				</button>
+				<ul class="dropdown-menu" aria-labelledby="{{domId}}-precision">
+					<li ng-click='content.precision = i' ng-repeat='i in floatingPointRange'><a>{{ i }}</a></li>
+				</ul>
+			</div>
 			<button class='btn btn-default' ng-click='showSerialized.val = !showSerialized.val'>
 				Toggle Serialize View
 			</button>
@@ -199,7 +217,7 @@ angular.module('reportApp')
 			<tbody>
 				<tr ng-repeat="exp in group.experiments | orderBy:sortFunc:sortField.isReversed">
 					<td ng-repeat='field in fields'>
-						{{ tableables[exp] ? getFieldVal(exp, field) : '' }}
+						{{ getFieldVal(exp, field) }}
 					</td>
 				</tr>
 			</tbody>
-- 
GitLab