@glitchr/transparent 1.0.36 → 1.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glitchr/transparent",
3
- "version": "1.0.36",
3
+ "version": "1.0.38",
4
4
  "description": "Transparent SPA Application",
5
5
  "main": "src/index.js",
6
6
  "access": "public",
@@ -1437,7 +1437,18 @@
1437
1437
  var form = target != undefined && target.tagName == "FORM" ? target : undefined;
1438
1438
  if (form) {
1439
1439
 
1440
- data = new FormData(form);
1440
+ data = new FormData();
1441
+ var formInput = $("[name^='"+form.name+"\[']");
1442
+ formInput.each(function() {
1443
+
1444
+ if(this.type == "file") {
1445
+
1446
+ for(var i = 0; i < this.files.length; i++)
1447
+ data.append(this.name, field.files[i]);
1448
+
1449
+ } else data.append(this.name, this.value);
1450
+ });
1451
+
1441
1452
  $(form).find(':submit').attr('disabled', 'disabled');
1442
1453
  }
1443
1454
 
@@ -1562,11 +1573,15 @@
1562
1573
  if(xhr)
1563
1574
  history.pushState({uuid: uuid, status:status, method: method, data: {}, href: responseURL}, '', responseURL);
1564
1575
 
1576
+ // Invalid html page returned
1577
+ if(!responseText.includes("<html>") || !responseText.includes("<body>") || !responseText.includes("<head>"))
1578
+ return Transparent.rescue(dom);
1579
+
1565
1580
  var dom = new DOMParser().parseFromString(responseText, "text/html");
1566
1581
  if(status != 200) // Blatant error received..
1567
1582
  return Transparent.rescue(dom);
1568
1583
 
1569
- // Page not recognized.. just go there.. no POST information transmitted..
1584
+ // Page not recognized.. just go fetch by yourself.. no POST information transmitted..
1570
1585
  if(!Transparent.isPage(dom))
1571
1586
  return window.location.href = url;
1572
1587
 
@@ -1675,10 +1690,20 @@
1675
1690
  formDataBefore = {};
1676
1691
  $("form").each(function() {
1677
1692
 
1678
- var formData = new FormData(this);
1679
- for (var [fieldName,fieldValue] of formData.entries()) {
1693
+ var formData = new FormData();
1694
+ var formInput = $("[name^='"+this.name+"\[']");
1695
+ formInput.each(function() {
1696
+
1697
+ if(this.type == "file") {
1698
+
1699
+ for(var i = 0; i < this.files.length; i++)
1700
+ formData.append(this.name, field.files[i]);
1701
+
1702
+ } else formData.append(this.name, this.value);
1703
+ });
1704
+
1705
+ for (var [fieldName,fieldValue] of formData.entries())
1680
1706
  formDataBefore[fieldName] = fieldValue;
1681
- }
1682
1707
  });
1683
1708
  });
1684
1709
 
@@ -1688,7 +1713,18 @@
1688
1713
  var formDataAfter = [];
1689
1714
  $("form").each(function() {
1690
1715
 
1691
- var formData = new FormData(this);
1716
+ var formData = new FormData();
1717
+ var formInput = $("[name^='"+this.name+"\[']");
1718
+ formInput.each(function() {
1719
+
1720
+ if(this.type == "file") {
1721
+
1722
+ for(var i = 0; i < this.files.length; i++)
1723
+ formData.append(this.name, field.files[i]);
1724
+
1725
+ } else formData.append(this.name, this.value);
1726
+ });
1727
+
1692
1728
  for (var [fieldName,fieldValue] of formData.entries()) {
1693
1729
  formDataAfter[fieldName] = fieldValue;
1694
1730
  }
@@ -1712,8 +1748,14 @@
1712
1748
  }
1713
1749
  }
1714
1750
 
1715
- if(Settings.debug || preventDefault)
1751
+ if(Settings.debug || preventDefault) {
1752
+
1753
+ if(preventDefault) Transparent.html.addClass(Transparent.state.READY);
1754
+ if(preventDefault) Transparent.activeOut();
1755
+ if(preventDefault) dispatchEvent(new Event('load'));
1756
+
1716
1757
  return "Dude, are you sure you want to leave? Think of the kittens!";
1758
+ }
1717
1759
  }
1718
1760
 
1719
1761
  document.addEventListener('click', __main__, false);