diff --git a/demos/app.js b/demos/app.js
index 02c4a55..db6881e 100644
--- a/demos/app.js
+++ b/demos/app.js
@@ -26,6 +26,14 @@ app.get('/', (req, res) => {
});
});
+app.get('/simple', (req, res) => {
+ res.render('demo-simple', {
+ title: 'Test App',
+ question: 'How was your visit today?',
+ type: 'radio-buttons'
+ });
+});
+
function runPa11yTests () {
const spawn = require('child_process').spawn;
const pa11y = spawn('pa11y-ci');
diff --git a/demos/demo-old.html b/demos/demo-simple.html
similarity index 92%
rename from demos/demo-old.html
rename to demos/demo-simple.html
index 484c997..fee8848 100644
--- a/demos/demo-old.html
+++ b/demos/demo-simple.html
@@ -9,7 +9,7 @@
Demo of n-feedback
- {{> template }}
+ {{> demos/feedback-partial }}
diff --git a/index.js b/index.js
index 6bd055b..74e393c 100644
--- a/index.js
+++ b/index.js
@@ -3,12 +3,11 @@ const surveyBuilder = require('./src/survey-builder');
const postResponse = require('./src/post-response');
const getAdditionalInfo = require('./src/get-additional-info');
const dictionary = require('./src/dictionary');
-require('formdata-polyfill');
function getSurveyData ( surveyId ){
- // const surveyDataURL = 'http://local.ft.com:5005/public/survey.json';
- // const surveyDataURL = `http://local.ft.com:3002/v1/survey/${surveyId}`;
- const surveyDataURL = `https://www.ft.com/__feedback-api/v1/survey/${surveyId}`;
+ // const surveyDataURL = 'http://local.ft.com:5005/public/survey.json'; // for local development
+ // const surveyDataURL = `http://local.ft.com:3002/v1/survey/${surveyId}`; // for local development via npm linking
+ const surveyDataURL = `https://www.ft.com/__feedback-api/v1/survey/${surveyId}`; // production link
return fetch(surveyDataURL, {
headers: {
'Accept': 'application/json',
@@ -121,12 +120,27 @@ function validate (block){
function generateResponse (overlay){
const context = overlay.content;
const form = document.querySelector('.n-feedback__survey__wrapper-form', context);
- const response = {};
- (new FormData(form)).forEach((val, key) => {
- response[key] = val;
+ const data = {};
+
+ form.querySelectorAll('input,textarea').forEach((element) => {
+ if (element.type === 'radio') {
+ if (element.checked) {
+ data[element.name] = element.value;
+ }
+ }
+
+ else if (element.type === 'checkbox') {
+ if (element.checked) {
+ data[element.name] = (data[element.name] || []).concat(element.value);
+ }
+ }
+
+ else {
+ data[element.name] = element.value;
+ }
});
- return response;
+ return data;
}
function toggleOverlay (overlay){
diff --git a/package.json b/package.json
index 4f18655..510b8ec 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,6 @@
"webpack-cli": "^3.1.2"
},
"dependencies": {
- "formdata-polyfill": "^3.0.12",
"handlebars": "^4.1.2"
}
}