diff --git a/app/assets/javascripts/components/export_case/_modal.html b/app/assets/javascripts/components/export_case/_modal.html index d899129c2..cd21e263e 100644 --- a/app/assets/javascripts/components/export_case/_modal.html +++ b/app/assets/javascripts/components/export_case/_modal.html @@ -17,7 +17,7 @@
Team Name,Case Name,Case ID,Query Text,Score,Date Last Scored,Count,Information Need,Notes
+ CSV file with Team Name,Case Name,Case ID,Query Text,Score,Date Last Scored,Count,Information Need,Notes,Options
diff --git a/app/assets/javascripts/components/export_case/export_case_controller.js b/app/assets/javascripts/components/export_case/export_case_controller.js
index 3d1c3b874..3d53534e1 100644
--- a/app/assets/javascripts/components/export_case/export_case_controller.js
+++ b/app/assets/javascripts/components/export_case/export_case_controller.js
@@ -47,10 +47,14 @@ angular.module('QuepidApp')
if ( options.which === 'general' ) {
$log.info('Selected "general" as export option.');
-
+
// Go back to the API in case other users have updates that we should include.
caseSvc.get(ctrl.theCase.caseNo, false).then(function(acase) {
- csv = caseCSVSvc.stringify(acase, true);
+ csv = caseCSVSvc.stringify(
+ acase,
+ queriesSvc.queries,
+ true
+ );
blob = new Blob([csv], {
type: 'text/csv'
});
@@ -61,10 +65,9 @@ angular.module('QuepidApp')
} else if ( options.which === 'detailed' ) {
$log.info('Selected "detailed" as export option.');
- var queries = queriesSvc.queries;
csv = caseCSVSvc.stringifyQueriesDetailed(
ctrl.theCase,
- queries,
+ queriesSvc.queries,
true
);
blob = new Blob([csv], {
diff --git a/app/assets/javascripts/services/caseCSVSvc.js b/app/assets/javascripts/services/caseCSVSvc.js
index f64ee6c84..871281b29 100644
--- a/app/assets/javascripts/services/caseCSVSvc.js
+++ b/app/assets/javascripts/services/caseCSVSvc.js
@@ -51,7 +51,8 @@
'Date Last Scored',
'Count',
'Information Need',
- 'Notes'
+ 'Notes',
+ 'Options'
];
var headerString = header.join(',');
@@ -116,7 +117,9 @@
* @param aCase
*
*/
- function stringify (aCase, withHeader) {
+ function stringify (aCase, queries, withHeader) {
+ // queries is sourced from queriesSvc.queries for query info and
+ // aCase.lastScore.queries has the scoring info for the queries.
var csvContent = '';
if (withHeader) {
@@ -134,22 +137,35 @@
var count = data.numFound;
id = parseInt(id,10); // Convert from string
+
+ var query = null;
+ angular.forEach(queries, function (data, queryId) {
+ if (parseInt(queryId,10) === id){
+ query = data;
+ return false;
+ }
+ });
- var query = aCase.queries.filter(function(q) { return q.queryId === id; })[0];
- var notes = query ? query.notes || null : null;
- var informationNeed = query ? query.information_need || null : null;
+ var notes = query.notes || null;
+ var informationNeed = query.informationNeed || null;
+ var options = query.options || null;
+
+ if (Object.keys(options).length === 0){
+ options = null; // blank out boiler plate options json.
+ }
infoArray = [];
infoArray.push(stringifyField(aCase.teamNames()));
infoArray.push(stringifyField(aCase.caseName));
- infoArray.push(stringifyField(aCase.lastScore.case_id));
+ infoArray.push(stringifyField(aCase.caseNo));
infoArray.push(stringifyField(text));
infoArray.push(stringifyField(score));
infoArray.push(stringifyField(aCase.lastScore.updated_at));
infoArray.push(stringifyField(count));
infoArray.push(stringifyField(informationNeed));
infoArray.push(stringifyField(notes));
+ infoArray.push(stringifyField(options));
dataString = infoArray.join(',');
csvContent += dataString + EOL;