Skip to content
This repository has been archived by the owner on Nov 19, 2018. It is now read-only.

Commit

Permalink
Merge branch 'hotfix/2.1.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
rnicholus committed Dec 18, 2015
2 parents 08afbe6 + 2c5f287 commit be08d0e
Show file tree
Hide file tree
Showing 9 changed files with 60 additions and 72 deletions.
5 changes: 2 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@ language: node_js
node_js:
- '0.10'
before_install:
- npm install -g grunt-cli
- npm install
script:
- bower install
- grunt travis
- $(npm bin)/grunt travis
env:
global:
- secure: rvRcNshNze/8zhMJd3Rhiv+N9u46ljNwAuE6MtpNSaNz+jLC5e7LOXV8dyPdb3ROzDql8SztpMscaEInDvqq+JvC3W0hCYd34WAQt0ZkW0udKs0tbnkNN9dFx1gTfQFsDceTiy1D7d8fQepbeSjOn9N5M1uSUCPdTw5vMFhGFEs=
Expand Down
32 changes: 18 additions & 14 deletions ajax-form.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(function() {
var arrayOf = function(pseudoArray) {
return Array.prototype.slice.call(pseudoArray);
return (pseudoArray && [].slice.call(pseudoArray)) || [];
},

// Note that _currentScript is a polyfill-specific convention
Expand Down Expand Up @@ -154,13 +154,18 @@
form._fileInputFieldNames = [];

arrayOf(form.querySelectorAll('*[name]')).forEach(function(el) {
maybeParseCoreDropdownMenu(el, data) ||
maybeParseCustomElementOrFileInput({
customElement: el,
data: data,
form: form,
parseFileInputs: parseFileInputs
});
if (maybeParseCoreDropdownMenu(el, data) ||
maybeParseCustomElementOrFileInput({
customElement: el,
data: data,
form: form,
parseFileInputs: parseFileInputs
})
) {
arrayOf(el.querySelectorAll('[name]')).forEach(function(el) {
el.setAttribute('data-ajaxform-ignore', '');
});
}
});

return data;
Expand Down Expand Up @@ -190,12 +195,11 @@

parseForm = function(form, parseFileInputs) {
var formObj = {},
formElements = form.querySelectorAll('input'),
customElementsData = parseCustomElements(form, parseFileInputs);
customElementsData = parseCustomElements(form, parseFileInputs),
formElements = arrayOf(form.elements).filter(function(el) {
return !el.hasAttribute('data-ajaxform-ignore');
});

formElements = arrayOf(formElements);
formElements = formElements.concat(arrayOf(form.querySelectorAll('select')));
formElements = formElements.concat(arrayOf(form.querySelectorAll('textarea')));

formElements.forEach(function(formElement) {
var key = formElement.name,
Expand Down Expand Up @@ -417,7 +421,7 @@

watchForInvalidFields = function (ajaxForm) {
var config = {attributes: true, childList: true, characterData: false},
initialFields = arrayOf(ajaxForm.querySelectorAll(':invalid, :valid')),
initialFields = arrayOf(ajaxForm.elements),
invalidFields = [],

listenForInvalidEvent = function (field) {
Expand Down
22 changes: 0 additions & 22 deletions bower.json

This file was deleted.

4 changes: 2 additions & 2 deletions demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<title>ajax-form demo</title>

<script src="../webcomponentsjs/webcomponents-lite.js"></script>
<script src="node_modules/webcomponents.js/webcomponents-lite.js"></script>
<link rel="import" href="ajax-form.html">

<!--For nicer-looking dialogs - only used by the demo-->
Expand Down Expand Up @@ -155,4 +155,4 @@ <h3>Validation</h3>
}());
</script>

</html>
</html>
4 changes: 2 additions & 2 deletions gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ module.exports = function(grunt) {
},
wctLocal: {
command: [
'node_modules/.bin/wct --plugin local'
'$(npm bin)/wct --plugin local'
].join('&&')
},
wctSauce: {
command: [
'node_modules/.bin/wct --plugin sauce'
'$(npm bin)/wct --plugin sauce'
].join('&&')
}
}
Expand Down
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
"devDependencies": {
"bower": "1.3.x",
"grunt": "0.4.x",
"grunt-cli": "0.1.13",
"grunt-contrib-copy": ">= 0.7.0",
"grunt-contrib-jshint": "0.10.x",
"grunt-contrib-watch": "^0.6.1",
"grunt-shell": "^0.7.0",
"web-component-tester": "3.3.17"
"web-component-tester": "3.3.22",
"webcomponents.js": "0.7.2"
},
"keywords": ["Polymer", "web-components", "form", "html", "ajax"],
"license": "MIT",
Expand All @@ -20,5 +22,5 @@
"type": "git",
"url": "https://github.com/rnicholus/ajax-form.git"
},
"version": "2.1.2"
"version": "2.1.3"
}
4 changes: 2 additions & 2 deletions test/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
<script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
<script src="../node_modules/webcomponents.js/webcomponents-lite.min.js"></script>
<script src="../node_modules/web-component-tester/browser.js"></script>

</head>
Expand All @@ -16,4 +16,4 @@
</script>

</body>
</html>
</html>
33 changes: 17 additions & 16 deletions test/typical-form-tests.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="UTF-8">

<!-- Import dependencies -->
<script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
<script src="../node_modules/webcomponents.js/webcomponents-lite.min.js"></script>
<script src="../node_modules/web-component-tester/browser.js"></script>
<link rel="import" href="../ajax-form.html">
</head>
Expand All @@ -21,7 +21,7 @@
'<input name="test2" type="text"/>' +
'<input name="test3" type="text"/>' +

'<my-ce1 id="jsonce" name="ce1name"></my-ce1>' +
'<my-ce1 id="jsonce" name="ce1name"><input name="ce1name"></my-ce1>' +
'<my-ce2></my-ce2>' +

'<select name="select1">' +
Expand Down Expand Up @@ -73,7 +73,8 @@
ajaxForm.setAttribute('enctype', spec.enctype);
}

ajaxForm.querySelector('[name="ce1name"]').value = 'ce1value';
ajaxForm.querySelector('my-ce1[name="ce1name"]').value = 'ce1value';
ajaxForm.querySelector('input[name="ce1name"]').value = 'ce1value-input';
ajaxForm.querySelector('[name="files"]').files = [];

document.body.appendChild(container);
Expand Down Expand Up @@ -158,7 +159,7 @@
createForm({method: 'GET'}, function () {
ajaxForm.submit();

expect(requests[0].url).to.have.string('test1=foobar&test2=&test3=&checkboxgroup=foo&checkboxgroup=bar&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value');
expect(requests[0].url).to.have.string('test1=foobar&test2=&test3=&select1=bar&select2=foo&select2=bar&select3=fizz&checkboxgroup=foo&checkboxgroup=bar&ce1name=ce1value');
done();
});
});
Expand All @@ -168,7 +169,7 @@
ajaxForm.submit();

expect(requests[0].requestHeaders['Content-Type']).to.have.string('application/x-www-form-urlencoded');
expect(requests[0].requestBody).to.equal('test1=foobar&test2=&test3=&checkboxgroup=foo&checkboxgroup=bar&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value');
expect(requests[0].requestBody).to.equal('test1=foobar&test2=&test3=&select1=bar&select2=foo&select2=bar&select3=fizz&checkboxgroup=foo&checkboxgroup=bar&ce1name=ce1value');
done();
});
});
Expand All @@ -182,7 +183,7 @@
ajaxForm.querySelector('[name="checkboxname"]').click();
ajaxForm.submit();

expect(requests[0].requestBody).to.equal('test1=foobar&test2=&test3=&checkboxname=checkboxvalue&checkboxgroup=foo&checkboxgroup=bar&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value&customcheckboxname=customcheckboxvalue');
expect(requests[0].requestBody).to.equal('test1=foobar&test2=&test3=&select1=bar&select2=foo&select2=bar&select3=fizz&checkboxname=checkboxvalue&checkboxgroup=foo&checkboxgroup=bar&ce1name=ce1value&customcheckboxname=customcheckboxvalue');
done();
});
});
Expand Down Expand Up @@ -215,10 +216,10 @@
test1: 'foobar',
test2: '',
test3: '',
checkboxgroup: [['foo'], ['bar']],
select1: ['bar'],
select2: ['foo', 'bar'],
select3: ['fizz'],
checkboxgroup: [['foo'], ['bar']],
ce1name: 'ce1value'
}));
done();
Expand Down Expand Up @@ -253,12 +254,12 @@
test1: 'foobar',
test2: '',
test3: '',
checkboxgroup: ['foo'],
checkboxgroup_series: ['bar'],
select1: 'bar',
'select2': 'foo',
'select2_series': 'bar',
select3: 'fizz',
checkboxgroup: ['foo'],
checkboxgroup_series: ['bar'],
ce1name: 'ce1value',
files: {}
}));
Expand All @@ -276,12 +277,12 @@
test1: 'foobar',
test2: '',
test3: '',
checkboxgroup: ['foo'],
checkboxgroup_series: ['bar'],
select1: 'bar',
'select2': 'foo',
'select2_series': 'bar',
select3: 'fizz',
checkboxgroup: ['foo'],
checkboxgroup_series: ['bar'],
ce1name: 'ce1value',
files: 'placeholder-file'
}));
Expand All @@ -299,12 +300,12 @@
test1: 'foobar',
test2: '',
test3: '',
checkboxgroup: ['foo'],
checkboxgroup_series: ['bar'],
select1: 'bar',
'select2': 'foo',
'select2_series': 'bar',
select3: 'fizz',
checkboxgroup: ['foo'],
checkboxgroup_series: ['bar'],
ce1name: 'ce1value',
files: 'placeholder-file1',
files_series: 'placeholder-file2'
Expand Down Expand Up @@ -332,10 +333,10 @@
test1: 'changedval',
test2: '',
test3: '',
checkboxgroup: [['foo'], ['bar']],
select1: ['bar'],
select2: ['foo', 'bar'],
select3: ['fizz'],
checkboxgroup: [['foo'], ['bar']],
ce1name: 'ce1value',
newfield: 'newval'
}));
Expand Down Expand Up @@ -381,7 +382,7 @@

ajaxForm.submit();

expect(requests[0].url).to.have.string('test1=changedval&test2=&test3=&checkboxgroup=foo&checkboxgroup=newcbgroupval&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value&newfield=newval');
expect(requests[0].url).to.have.string('test1=changedval&test2=&test3=&select1=bar&select2=foo&select2=bar&select3=fizz&checkboxgroup=foo&checkboxgroup=newcbgroupval&ce1name=ce1value&newfield=newval');
done();
});
});
Expand All @@ -395,7 +396,7 @@

ajaxForm.submit();

expect(requests[0].requestBody).to.equal('test1=changedval&test2=&test3=&checkboxgroup=foo&checkboxgroup=bar&select1=bar&select2=foo&select2=bar&select3=fizz&ce1name=ce1value&newfield=newval');
expect(requests[0].requestBody).to.equal('test1=changedval&test2=&test3=&select1=bar&select2=foo&select2=bar&select3=fizz&checkboxgroup=foo&checkboxgroup=bar&ce1name=ce1value&newfield=newval');
done();
});
});
Expand Down
22 changes: 13 additions & 9 deletions wct.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module.exports = {
plugins: {
local: {
disabled: true,
browsers: ['chrome', 'firefox', 'safari']
browsers: ['chrome', 'safari']
},
sauce: {
disabled: true,
Expand All @@ -27,24 +27,28 @@ module.exports = {
{
"browserName": "chrome",
"platform": "Windows 8.1",
"version": "beta"
"version": ""
},
{
"browserName": "chrome",
"platform": "Linux",
"version": ""
},

{
"browserName": "firefox",
"platform": "Windows 8.1",
"version": ""
"platform": "OS X 10.10",
"version": "37"
},
//{
// {
// "browserName": "firefox",
// "platform": "Windows 8.1",
// "version": ""
// },
// {
// "browserName": "firefox",
// "platform": "Linux",
// "version": "beta"
//},
// "version": "39"
// },
//
//{
// "browserName": "safari",
Expand All @@ -59,4 +63,4 @@ module.exports = {
]
}
}
};
};

0 comments on commit be08d0e

Please sign in to comment.