From 71eae2c531419274a1ec085f6a6485038e98c9f3 Mon Sep 17 00:00:00 2001
From: Max Tobias Weber
Date: Wed, 9 May 2012 16:25:56 +0300
Subject: [PATCH 01/94] Update src/jquery.columnizer.js
---
src/jquery.columnizer.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index bb67d3d..0d7876d 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -251,6 +251,8 @@
}
function columnizeIt() {
+ //reset adjustment var
+ adjustment = 0;
if(lastWidth == $inBox.width()) return;
lastWidth = $inBox.width();
From 657482eeabd9c072cfabc92dc1ba1b5d10dbbaaf Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Fri, 27 Jul 2012 14:12:51 -0500
Subject: [PATCH 02/94] removed attr and prop confusion
---
src/jquery.columnizer.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index 51a0c0c..eaca2b9 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -192,8 +192,7 @@
//
// need to support both .prop and .attr if .prop doesn't exist.
// this is for backwards compatibility with older versions of jquery.
- if(($clone.prop && $clone.prop("nodeType") == 1 && !$clone.hasClass("dontend")) ||
- ($clone.attr("nodeType") == 1 && !$clone.hasClass("dontend"))){
+ if($clone.get(0).nodeType == 1 && !$clone.hasClass("dontend")){
$putInHere.append($clone);
if($clone.is("img") && $parentColumn.height() < targetHeight + 20){
//
From 7d47836641471987d60de0634b60d1e0c713c2fd Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Fri, 27 Jul 2012 14:25:55 -0500
Subject: [PATCH 03/94] working on duplicating text bug
---
src/jquery.columnizer.js | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index eaca2b9..02a6f80 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -144,7 +144,8 @@
var columnText;
var latestTextNode = null;
while($parentColumn.height() < targetHeight && oText.length){
- if (oText.indexOf(' ', counter2) != '-1') {
+ var indexOfSpace = oText.indexOf(' ', counter2);
+ if (indexOfSpace != -1) {
columnText = oText.substring(0, oText.indexOf(' ', counter2));
} else {
columnText = oText;
@@ -152,8 +153,8 @@
latestTextNode = document.createTextNode(columnText);
$putInHere.append(latestTextNode);
- if(oText.length > counter2){
- oText = oText.substring(oText.indexOf(' ', counter2));
+ if(oText.length > counter2 && indexOfSpace != -1){
+ oText = oText.substring(indexOfSpace);
}else{
oText = "";
}
From e24edc66e4783fe9fd2ccfac77f2ab2df00b66e2 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Fri, 27 Jul 2012 14:34:36 -0500
Subject: [PATCH 04/94] added test case
---
samples/issue_49.html | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 samples/issue_49.html
diff --git a/samples/issue_49.html b/samples/issue_49.html
new file mode 100644
index 0000000..2627cf3
--- /dev/null
+++ b/samples/issue_49.html
@@ -0,0 +1,20 @@
+
+
+
+
+Columnizer 23 Character Bug
+
+
+
+
+
+
+This test case should show the alphabet up to w. the bug used to duplicate the string.
+
+abcdefghijklmnopqrstuvw
+
+
\ No newline at end of file
From e1da87d3537d4ca71d604cc5b4ffd31c0d238d54 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Fri, 27 Jul 2012 15:03:39 -0500
Subject: [PATCH 05/94] makes sure that split works only on elements
---
samples/index.html | 1 +
src/jquery.columnizer.js | 8 ++++++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/samples/index.html b/samples/index.html
index cc203c5..121c6d5 100644
--- a/samples/index.html
+++ b/samples/index.html
@@ -24,3 +24,4 @@ About
GitHub Issues
Issues 51, 24 - missing content when columnizer is called from script in body below content.
Issue 45 - don't re-indent the first line of a split paragraph.
+Issue 49 - make sure columnizer doesn't duplicate text nodes.
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index 02a6f80..b69e546 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -185,8 +185,12 @@
* two copies of the element with it's contents divided between each
*/
function split($putInHere, $pullOutHere, $parentColumn, targetHeight){
- if($pullOutHere.children().length){
- var $cloneMe = $pullOutHere.children(":first");
+ if($pullOutHere.contents().length){
+ var $cloneMe = $pullOutHere.contents(":first");
+ //
+ // make sure we're splitting an element
+ if($cloneMe.get(0).nodeType != 1) return;
+
//
// clone the node with all data and events
var $clone = $cloneMe.clone(true);
From 86d65c8ec79bd20417458f11b712f1f155fda2f3 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Fri, 27 Jul 2012 15:10:34 -0500
Subject: [PATCH 06/94] added test case for issue 30
---
samples/issue_30.html | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 samples/issue_30.html
diff --git a/samples/issue_30.html b/samples/issue_30.html
new file mode 100644
index 0000000..97fe1da
--- /dev/null
+++ b/samples/issue_30.html
@@ -0,0 +1,20 @@
+
+
+
+
+Columnizer 23 Character Bug
+
+
+
+
+
+
+This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop. This test case is for double spaces. hopefully this will not cause an infinite loop.
+
+
+
+
\ No newline at end of file
From 31f4049587e54fb1dd182bb6e4541f58f0d755d4 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Fri, 27 Jul 2012 15:28:52 -0500
Subject: [PATCH 07/94] added link to sample file
---
samples/index.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/samples/index.html b/samples/index.html
index 121c6d5..4bbb95f 100644
--- a/samples/index.html
+++ b/samples/index.html
@@ -25,3 +25,4 @@ About
Issues 51, 24 - missing content when columnizer is called from script in body below content.
Issue 45 - don't re-indent the first line of a split paragraph.
Issue 49 - make sure columnizer doesn't duplicate text nodes.
+Issue 30 - fix infinite loop with double spaces in text.
From cff9396e5ee0f18cfa6d69f6aee25808f8821437 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Sat, 28 Jul 2012 14:15:56 -0500
Subject: [PATCH 08/94] fixed infinite loop of tall dontsplit items
---
src/jquery.columnizer.js | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index fda276e..b4646be 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -1,4 +1,4 @@
-// version 1.5.0
+// version 1.6.0
// http://welcome.totheinter.net/columnizer-jquery-plugin/
// created by: Adam Wulf @adamwulf, adam.wulf@gmail.com
@@ -301,7 +301,6 @@
if(dom.childNodes.length == 0) return false;
return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);
}
-
function columnizeIt() {
//reset adjustment var
adjustment = 0;
@@ -384,6 +383,27 @@
$destroyable.prepend($lastKid);
}
i++;
+
+ //
+ // https://github.com/adamwulf/Columnizer-jQuery-Plugin/issues/47
+ //
+ // check for infinite loop.
+ //
+ // this could happen when a dontsplit item is taller than the column
+ // we're trying to build, and its never actually added to a column.
+ //
+ // this results in empty columns being added with the dontsplit item
+ // perpetually waiting to get put into a column. lets force the issue here
+ if($col.contents().length == 0 && $destroyable.contents().length){
+ //
+ // ok, we're building zero content columns. this'll happen forever
+ // since nothing can ever get taken out of destroyable.
+ //
+ // to fix, lets put 1 item from destroyable into the empty column
+ // before we iterate
+ $col.append($destroyable.contents(":first"));
+ }
+
}
if(options.overflow && !scrollHorizontally){
var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
From 739b70931d225c41e74f6ee2a3c83c4358454085 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Sat, 28 Jul 2012 14:22:39 -0500
Subject: [PATCH 09/94] new tests
---
samples/index.html | 6 ++--
samples/issue_46.html | 73 +++++++++++++++++++++++++++++++++++++++++
samples/issue_47.html | 35 ++++++++++++++++++++
samples/issue_47_2.html | 35 ++++++++++++++++++++
4 files changed, 147 insertions(+), 2 deletions(-)
create mode 100644 samples/issue_46.html
create mode 100644 samples/issue_47.html
create mode 100644 samples/issue_47_2.html
diff --git a/samples/index.html b/samples/index.html
index 4bbb95f..2b7cd25 100644
--- a/samples/index.html
+++ b/samples/index.html
@@ -22,7 +22,9 @@ About
GitHub Issues
-Issues 51, 24 - missing content when columnizer is called from script in body below content.
+Issue 30 - fix infinite loop with double spaces in text.
Issue 45 - don't re-indent the first line of a split paragraph.
+Issue 47 - fix infinite loop when using dontsplit and specifying a height.
+Issue 47 (2) - fix infinite loop when using dontsplit without specifying a height.
Issue 49 - make sure columnizer doesn't duplicate text nodes.
-Issue 30 - fix infinite loop with double spaces in text.
+Issues 51, 24 - missing content when columnizer is called from script in body below content.
diff --git a/samples/issue_46.html b/samples/issue_46.html
new file mode 100644
index 0000000..926fed4
--- /dev/null
+++ b/samples/issue_46.html
@@ -0,0 +1,73 @@
+
+
+
+
+ Columnizer JQuery Plugin sample page
+
+
+
+
+
+
+
+
+
+
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+
+
+
+
+
diff --git a/samples/issue_47.html b/samples/issue_47.html
new file mode 100644
index 0000000..900ec75
--- /dev/null
+++ b/samples/issue_47.html
@@ -0,0 +1,35 @@
+
+
+
+
+ Columnizer JQuery Plugin sample page
+
+
+
+
+
+
+
+
+
+
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
+
+
diff --git a/samples/issue_47_2.html b/samples/issue_47_2.html
new file mode 100644
index 0000000..5220ecd
--- /dev/null
+++ b/samples/issue_47_2.html
@@ -0,0 +1,35 @@
+
+
+
+
+ Columnizer JQuery Plugin sample page
+
+
+
+
+
+
+
+
+
+
+
asdfasfd
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
+
+
From c4114352f8f4b6e11e1470ea5d84023d748475aa Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Sat, 28 Jul 2012 14:24:35 -0500
Subject: [PATCH 10/94] test for infinite loop and dontend
---
samples/issue_12.html | 35 +++++++++++++++++++++++++++++++++++
src/jquery.columnizer.js | 2 +-
2 files changed, 36 insertions(+), 1 deletion(-)
create mode 100644 samples/issue_12.html
diff --git a/samples/issue_12.html b/samples/issue_12.html
new file mode 100644
index 0000000..e0d16d1
--- /dev/null
+++ b/samples/issue_12.html
@@ -0,0 +1,35 @@
+
+
+
+
+ Columnizer JQuery Plugin sample page
+
+
+
+
+
+
+
+
+
+
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
+
+
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index b4646be..bbac983 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -389,7 +389,7 @@
//
// check for infinite loop.
//
- // this could happen when a dontsplit item is taller than the column
+ // this could happen when a dontsplit or dontend item is taller than the column
// we're trying to build, and its never actually added to a column.
//
// this results in empty columns being added with the dontsplit item
From ad77a44d9e6ed8e96a05a081a280128ecaf606bd Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Sat, 28 Jul 2012 15:11:13 -0500
Subject: [PATCH 11/94] added support for manual column breaks
---
samples/index.html | 1 +
samples/sample12.html | 72 +++++++++++++++++++++++++++++++++++++++
samples/sample13.html | 73 ++++++++++++++++++++++++++++++++++++++++
src/jquery.columnizer.js | 62 +++++++++++++++++++++++++++-------
4 files changed, 195 insertions(+), 13 deletions(-)
create mode 100644 samples/sample12.html
create mode 100644 samples/sample13.html
diff --git a/samples/index.html b/samples/index.html
index 2b7cd25..c75c469 100644
--- a/samples/index.html
+++ b/samples/index.html
@@ -22,6 +22,7 @@ About
GitHub Issues
+Issue 12 - fix infinite loop when using dontend and specifying a height.
Issue 30 - fix infinite loop with double spaces in text.
Issue 45 - don't re-indent the first line of a split paragraph.
Issue 47 - fix infinite loop when using dontsplit and specifying a height.
diff --git a/samples/sample12.html b/samples/sample12.html
new file mode 100644
index 0000000..243331a
--- /dev/null
+++ b/samples/sample12.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+ Columnizer JQuery Plugin sample page 3
+
+
+
+
+
+
+
+
+
+
+
+
+
manual column breaks
+
This example shows content that has manual column breaks. It will try out layout other columns while respecting manual column breaks. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+
diff --git a/samples/sample13.html b/samples/sample13.html
new file mode 100644
index 0000000..459da63
--- /dev/null
+++ b/samples/sample13.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Columnizer JQuery Plugin sample page 3
+
+
+
+
+
+
+
+
+
+
+
+
+
only manual column breaks
+
This example shows content that has manual column breaks. This will only create as many columns as there are breaks. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index bbac983..b110272 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -33,7 +33,9 @@
// (int) the minimum number of characters to jump when splitting
// text nodes. smaller numbers will result in higher accuracy
// column widths, but will take slightly longer
- accuracy : false
+ accuracy : false,
+ // don't automatically layout columns, only use manual columnbreak
+ manualbreaks : false
};
var options = $.extend(defaults, options);
@@ -50,6 +52,7 @@
var $cache = $(''); // this is where we'll put the real content
var lastWidth = 0;
var columnizing = false;
+ var manualbreaks = options.manualbreaks;
var adjustment = 0;
@@ -117,12 +120,16 @@
//
// add as many nodes to the column as we can,
// but stop once our height is too tall
- while($parentColumn.height() < targetHeight &&
+ while((manualbreaks || $parentColumn.height() < targetHeight) &&
$pullOutHere[0].childNodes.length){
+ var node = $pullOutHere[0].childNodes[0]
//
// Because we're not cloning, jquery will actually move the element"
// http://welcome.totheinter.net/2009/03/19/the-undocumented-life-of-jquerys-append/
- $putInHere.append($pullOutHere[0].childNodes[0]);
+ if($(node).andSelf().find(".columnbreak").length){
+ return;
+ }
+ $putInHere.append(node);
}
if($putInHere[0].childNodes.length == 0) return;
@@ -185,6 +192,11 @@
* two copies of the element with it's contents divided between each
*/
function split($putInHere, $pullOutHere, $parentColumn, targetHeight){
+ if($putInHere.contents(":last").andSelf().find(".columnbreak").length){
+ //
+ // our column is on a column break, so just end here
+ return;
+ }
if($pullOutHere.contents().length){
var $cloneMe = $pullOutHere.contents(":first");
//
@@ -197,7 +209,17 @@
//
// need to support both .prop and .attr if .prop doesn't exist.
// this is for backwards compatibility with older versions of jquery.
- if($clone.get(0).nodeType == 1 && !$clone.hasClass("dontend")){
+ if($cloneMe.hasClass("columnbreak")){
+ //
+ // ok, we have a columnbreak, so add it into
+ // the column and exit
+ $putInHere.append($clone);
+ $cloneMe.remove();
+ }else if (manualbreaks){
+ // keep adding until we hit a manual break
+ $putInHere.append($clone);
+ $cloneMe.remove();
+ }else if($clone.get(0).nodeType == 1 && !$clone.hasClass("dontend")){
$putInHere.append($clone);
if($clone.is("img") && $parentColumn.height() < targetHeight + 20){
//
@@ -309,6 +331,9 @@
var numCols = Math.round($inBox.width() / options.width);
if(options.columns) numCols = options.columns;
+ if(manualbreaks){
+ numCols = $cache.find(".columnbreak").length + 1;
+ }
// if ($inBox.data("columnized") && numCols == $inBox.children().length) {
// return;
// }
@@ -437,19 +462,30 @@
var min = 10000000;
var max = 0;
var lastIsMax = false;
+ var numberOfColumnsThatDontEndInAColumnBreak = 0;
$inBox.children().each(function($inBox){ return function($item){
- var h = $inBox.children().eq($item).height();
- lastIsMax = false;
- totalH += h;
- if(h > max) {
- max = h;
- lastIsMax = true;
+ var $col = $inBox.children().eq($item);
+ var endsInBreak = $col.children(":last").find(".columnbreak").length;
+ if(!endsInBreak){
+ var h = $col.height();
+ lastIsMax = false;
+ totalH += h;
+ if(h > max) {
+ max = h;
+ lastIsMax = true;
+ }
+ if(h < min) min = h;
+ numberOfColumnsThatDontEndInAColumnBreak++;
}
- if(h < min) min = h;
}}($inBox));
- var avgH = totalH / numCols;
- if(options.lastNeverTallest && lastIsMax){
+ var avgH = totalH / numberOfColumnsThatDontEndInAColumnBreak;
+ if(totalH == 0){
+ //
+ // all columns end in a column break,
+ // so we're done here
+ loopCount = maxLoops;
+ }else if(options.lastNeverTallest && lastIsMax){
// the last column is the tallest
// so allow columns to be taller
// and retry
From 9f6fc3f9103dd97afe98c60d391ef2a42293fb95 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Sat, 28 Jul 2012 15:15:40 -0500
Subject: [PATCH 12/94] added test for columnbreak that's not nested
---
samples/sample13.html | 2 +-
src/jquery.columnizer.js | 16 ++++++++++++++--
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/samples/sample13.html b/samples/sample13.html
index 459da63..2581625 100644
--- a/samples/sample13.html
+++ b/samples/sample13.html
@@ -56,7 +56,7 @@ Soleat civibus in pri
Lorem ipsum ne justo
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
-
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
Tempor essent appetere
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index b110272..96b05f8 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -126,7 +126,14 @@
//
// Because we're not cloning, jquery will actually move the element"
// http://welcome.totheinter.net/2009/03/19/the-undocumented-life-of-jquerys-append/
- if($(node).andSelf().find(".columnbreak").length){
+ if($(node).find(".columnbreak").length){
+ //
+ // our column is on a column break, so just end here
+ return;
+ }
+ if($(node).hasClass("columnbreak")){
+ //
+ // our column is on a column break, so just end here
return;
}
$putInHere.append(node);
@@ -192,7 +199,12 @@
* two copies of the element with it's contents divided between each
*/
function split($putInHere, $pullOutHere, $parentColumn, targetHeight){
- if($putInHere.contents(":last").andSelf().find(".columnbreak").length){
+ if($putInHere.contents(":last").find(".columnbreak").length){
+ //
+ // our column is on a column break, so just end here
+ return;
+ }
+ if($putInHere.contents(":last").hasClass("columnbreak")){
//
// our column is on a column break, so just end here
return;
From 211519852796b808271d2e7a37e253c560307620 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Sat, 28 Jul 2012 15:19:09 -0500
Subject: [PATCH 13/94] added new columnbreak examples
---
samples/index.html | 3 ++
samples/sample14.html | 74 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 77 insertions(+)
create mode 100644 samples/sample14.html
diff --git a/samples/index.html b/samples/index.html
index c75c469..3e12ddb 100644
--- a/samples/index.html
+++ b/samples/index.html
@@ -19,6 +19,9 @@ About
sample 9 - Uses columnizer to paginate content into a multi-page newsletter layout.
sample 10 - Shows zero padding between columns.
sample 11 - Shows CSS specified padding between columns.
+sample 12 - shows mix of automatic columns and manual column breaks.
+sample 13 - shows only manual column breaks.
+sample 14 - shows column break inside of a dontsplit item.
GitHub Issues
diff --git a/samples/sample14.html b/samples/sample14.html
new file mode 100644
index 0000000..119fa6a
--- /dev/null
+++ b/samples/sample14.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+ Columnizer JQuery Plugin sample page 3
+
+
+
+
+
+
+
+
+
+
+
+
+
column break inside dontsplit
+
This example shows columns breaking when the columnbreak is inside of a dontsplit item. This will only create as many columns as there are breaks. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Test Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
+ Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum. Test
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+
From 29577dda6035c32c6e3d09d7c80f31b6f637f097 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 14:54:10 -0500
Subject: [PATCH 14/94] fixed whitespace text nodes preventing dontend from
working correctly.
---
src/jquery.columnizer.js | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index 96b05f8..d8abce3 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -329,12 +329,28 @@
}
+ /**
+ * returns true if the input dom node
+ * should not end a column.
+ * returns false otherwise
+ */
function checkDontEndColumn(dom){
+ if(dom.nodeType == 3){
+ // text node. ensure that the text
+ // is not 100% whitespace
+ if(/^\s+$/.test(dom.nodeValue)){
+ return true;
+ }
+ return false;
+ }
if(dom.nodeType != 1) return false;
if($(dom).hasClass("dontend")) return true;
if(dom.childNodes.length == 0) return false;
return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);
}
+
+
+
function columnizeIt() {
//reset adjustment var
adjustment = 0;
From 6b200c705f35cab2417b0689c146e405a334e506 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 14:54:54 -0500
Subject: [PATCH 15/94] added test for dont end
---
samples/issue_36.html | 82 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 samples/issue_36.html
diff --git a/samples/issue_36.html b/samples/issue_36.html
new file mode 100644
index 0000000..ffb8754
--- /dev/null
+++ b/samples/issue_36.html
@@ -0,0 +1,82 @@
+
+
+
+
+ Columnizer JQuery Plugin sample page
+
+
+
+
+
+
+
+
+
+
+
Lorem ipsum ne justo
+
This test makes sure that whitespace text nodes do not prevent dontend from working correctly. a header should never end a column in this test.
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu. Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+
+
+
+
+
From 5473df5fd829164a071815bda8267eda178cca20 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 15:07:55 -0500
Subject: [PATCH 16/94] updated readme
---
README | 3 ---
README.md | 10 ++++++++++
2 files changed, 10 insertions(+), 3 deletions(-)
delete mode 100644 README
create mode 100644 README.md
diff --git a/README b/README
deleted file mode 100644
index 5dfee55..0000000
--- a/README
+++ /dev/null
@@ -1,3 +0,0 @@
-To compress into a zip file, run compress.sh
-
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d287968
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+### Minimize
+To compress into a zip file, run compress.sh
+
+
+### Questions?
+Check out the [Wiki](https://github.com/adamwulf/Columnizer-jQuery-Plugin/wiki)
+
+
+### Bug report?
+Check the issues on the [GitHub page](https://github.com/adamwulf/Columnizer-jQuery-Plugin/issues)
From e1130c103f739c42926638ba5de1909e4ab8d7f0 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 15:20:17 -0500
Subject: [PATCH 17/94] ignore width, height, columns input when setting manual
breaks
---
samples/sample14.html | 5 ++++-
src/jquery.columnizer.js | 22 +++++++++++++---------
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/samples/sample14.html b/samples/sample14.html
index 119fa6a..a3d4748 100644
--- a/samples/sample14.html
+++ b/samples/sample14.html
@@ -27,7 +27,10 @@
$(function(){
$('#hidden-wrapper a').click(function(){ alert("boo!"); });
$('#hidden-wrapper').columnize({
- manualbreaks:true,
+ width:1,
+ height:1,
+ columns:1000,
+ manualBreaks:true,
target: "#target"
});
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index d8abce3..e078f81 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -35,7 +35,7 @@
// column widths, but will take slightly longer
accuracy : false,
// don't automatically layout columns, only use manual columnbreak
- manualbreaks : false
+ manualBreaks : false
};
var options = $.extend(defaults, options);
@@ -52,7 +52,7 @@
var $cache = $(''); // this is where we'll put the real content
var lastWidth = 0;
var columnizing = false;
- var manualbreaks = options.manualbreaks;
+ var manualBreaks = options.manualBreaks;
var adjustment = 0;
@@ -120,7 +120,7 @@
//
// add as many nodes to the column as we can,
// but stop once our height is too tall
- while((manualbreaks || $parentColumn.height() < targetHeight) &&
+ while((manualBreaks || $parentColumn.height() < targetHeight) &&
$pullOutHere[0].childNodes.length){
var node = $pullOutHere[0].childNodes[0]
//
@@ -227,7 +227,7 @@
// the column and exit
$putInHere.append($clone);
$cloneMe.remove();
- }else if (manualbreaks){
+ }else if (manualBreaks){
// keep adding until we hit a manual break
$putInHere.append($clone);
$cloneMe.remove();
@@ -358,9 +358,13 @@
lastWidth = $inBox.width();
var numCols = Math.round($inBox.width() / options.width);
+ var optionWidth = options.width;
+ var optionHeight = options.height;
if(options.columns) numCols = options.columns;
- if(manualbreaks){
+ if(manualBreaks){
numCols = $cache.find(".columnbreak").length + 1;
+ optionWidth = false;
+
}
// if ($inBox.data("columnized") && numCols == $inBox.children().length) {
// return;
@@ -386,9 +390,9 @@
if(options.overflow){
maxLoops = 1;
targetHeight = options.overflow.height;
- }else if(options.height && options.width){
+ }else if(optionHeight && optionWidth){
maxLoops = 1;
- targetHeight = options.height;
+ targetHeight = optionHeight;
scrollHorizontally = true;
}
@@ -538,7 +542,7 @@
// it's scrolling horizontally, fix the width/classes of the columns
$inBox.children().each(function(i){
$col = $inBox.children().eq(i);
- $col.width(options.width + "px");
+ $col.width(optionWidth + "px");
if(i==0){
$col.addClass("first");
}else if(i==$inBox.children().length-1){
@@ -548,7 +552,7 @@
$col.removeClass("last");
}
});
- $inBox.width($inBox.children().length * options.width + "px");
+ $inBox.width($inBox.children().length * optionWidth + "px");
}
$inBox.append($("
"));
}
From 8da469ce87eccb77d6d5bb81bac39558dc7199b3 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 15:57:38 -0500
Subject: [PATCH 18/94] fixed columnbreak to work even if its in the last
column
---
samples/issue_54.html | 73 ++++++++++++++++++++++++++++++++++++++++
samples/sample13.html | 2 +-
src/jquery.columnizer.js | 12 ++++++-
3 files changed, 85 insertions(+), 2 deletions(-)
create mode 100644 samples/issue_54.html
diff --git a/samples/issue_54.html b/samples/issue_54.html
new file mode 100644
index 0000000..2d7997a
--- /dev/null
+++ b/samples/issue_54.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Columnizer JQuery Plugin sample page 3
+
+
+
+
+
+
+
+
+
+
+
+
+
only manual column breaks
+
This example shows content that has manual column breaks. This will only create as many columns as there are breaks. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+
diff --git a/samples/sample13.html b/samples/sample13.html
index 2581625..a820d2c 100644
--- a/samples/sample13.html
+++ b/samples/sample13.html
@@ -27,7 +27,7 @@
$(function(){
$('#hidden-wrapper a').click(function(){ alert("boo!"); });
$('#hidden-wrapper').columnize({
- manualbreaks:true,
+ manualBreaks:true,
target: "#target"
});
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index e078f81..df54887 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -364,8 +364,8 @@
if(manualBreaks){
numCols = $cache.find(".columnbreak").length + 1;
optionWidth = false;
-
}
+
// if ($inBox.data("columnized") && numCols == $inBox.children().length) {
// return;
// }
@@ -459,6 +459,16 @@
// to fix, lets put 1 item from destroyable into the empty column
// before we iterate
$col.append($destroyable.contents(":first"));
+ }else if(i == numCols - (options.overflow ? 0 : 1) && !options.overflow){
+ //
+ // ok, we're about to exit the while loop because we're done with all
+ // columns except the last column.
+ //
+ // if $destroyable still has columnbreak nodes in it, then we need to keep
+ // looping and creating more columns.
+ if($destroyable.find(".columnbreak").length){
+ numCols ++;
+ }
}
}
From b30b8f20b7ceee77929704aadf4e752a28c0e6d8 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 18:19:43 -0500
Subject: [PATCH 19/94] fixed bug where a node could be re-ordered around text
nodes when the columnized content is wrapped in a div
---
src/jquery.columnizer.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/jquery.columnizer.js b/src/jquery.columnizer.js
index df54887..0df7ce2 100644
--- a/src/jquery.columnizer.js
+++ b/src/jquery.columnizer.js
@@ -185,7 +185,7 @@
}
}
- if($pullOutHere.children().length){
+ if($pullOutHere.contents().length){
$pullOutHere.prepend($item);
}else{
$pullOutHere.append($item);
From 6eba191b3b2a46d1c64da513db41ada7767c1d2d Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Mon, 30 Jul 2012 18:19:57 -0500
Subject: [PATCH 20/94] added test file for issue 44
---
samples/issue_44.html | 53 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 samples/issue_44.html
diff --git a/samples/issue_44.html b/samples/issue_44.html
new file mode 100644
index 0000000..c9362b6
--- /dev/null
+++ b/samples/issue_44.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+ Columnizer JQuery Plugin sample page 3
+
+
+
+
+
+
+
+
+
+
+
+
Dos decisiones trascendentales se tomaron durante la última cumbre de mandatarios en la ciudad de Mendoza. Por un lado, se resolvió la suspensión del Paraguay, en protesta a la destitución del presidente constitucional, Fernando Lugo. Por otro lado, se fijó la fecha de la incorporación de Venezuela como un miembro pleno. De esta manera se abre un nuevo panorama político en la región.
+
El 31 de julio será el día en el que se incorpore Venezuela como miembro pleno del Mercosur, con todos los derechos y obligaciones. Si bien los mandatarios de los países del bloque ya habían dado el visto bueno, la decisión pudo hacerse efectiva luego de la suspensión de Paraguay, ya que el Senado guaraní se oponía a la incorporación del país de Hugo Chávez. Con la destitución del presidente Fernando Lugo, luego de un golpe de estado maquillado por un juicio político, los guaraníes quedaron sin voz ni voto dentro del bloque, hasta que se celebren las elecciones en abril próximo.
+
+
Venezuela, el nuevo miembro
+
La consolidación de la república bolivariana como quinto integrante del bloque es una idea que se viene gestando desde 2003, cuando Lula Da Silva y Néstor Kirchner ocupaban la presidencia de Brasil y Argentina, respectivamente. Junto con Hugo Chávez promovieron la integración de la región, que se materializó en la creación de la Unión de Naciones Suramericanas (UNASUR) en 2011. La presión continuó para que Venezuela se sume también al bloque del Mercosur con el objetivo de aumentar la unión política de la región y además sumar un aliado comercial fuerte, como lo es el país bolivariano.
+
Venezuela es la tercera economía de América del Sur, por detrás de Argentina y Brasil, y es además la potencia energética de la región. Como principal productor de petróleo del continente, la incorporación al bloque es una alianza económica fundamental para los países miembros. De efectivizarse la asociación de la venezolana Pdvsa y la brasileña Petrobras, la región tendría la empresa más grande de petróleo del mundo, que además podría incluir a la argentina YPF.
+
Sin embargo, no todos los países miembros alientan la entrada de Venezuela. Durante un tiempo Uruguay se opuso a la incorporación del país bolivariano y, pese a que Mujica defendió públicamente la decisión del Mercosur, el partido opositor, el Frente Amplio de Tabaré Vázquez se opuso abiertamente a esta posición alegando que profundiza las asimetrías entre las economías de los países miembros. El senado paraguayo también se había manifestado en contra de la inclusión de Venezuela en el bloque, debido a oponerse a las políticas de Hugo Chávez. Los países miembros aprovecharon la suspensión de los guaraníes para votar la inclusión de Venezuela, que se hará efectiva el 31 de éste mes.
+
Políticamente el gobierno de Chávez obtiene muchas ventajas a partir de su incorporación al Mercosur. A nivel estratégico logra mayor integración con los demás países y se posiciona como una potencia dentro de la región. Por otro lado, Chávez se encuentra en plena campaña electoral y la incorporación al bloque refuta la principal crítica de los partidos de la oposición: el supuesto aislamiento de Venezuela respecto al resto del mundo. También la incorporación al Mercosur le da al presidente venezolano un apoyo muy fuerte que necesita al faltar sólo tres meses de la campaña electoral.
+
+
Paraguay, suspendido
+
La destitución del presidente Fernando Lugo, mediante un golpe de estado de carácter institucional, provocó el repudio de los mandatarios de la región que decidieron suspender los derechos y las obligaciones del país guaraní en el Mercosur hasta que se restituya el orden democrático o se celebren las elecciones presidenciales, previstas para abril próximo. La caída de Lugo es el resultado de una larga crisis institucional, que culminó en un juicio político promovido por el Partido Colorado y apoyado por la oligarquía terrateniente paraguaya, la jerarquía de la Iglesia y las empresas agroquímicas multinacionales.
+
El conflicto de fondo es la complicada situación agraria que se vive en Paraguay, en dónde el 2 por ciento de los propietarios posee el 80 por ciento de las tierras cultivables. Estos grandes terratenientes contaron con el apoyo del tradicional Partido Colorado que ocupó el gobierno durante 61 años, hasta que Fernando Lugo llegó al poder en el 2008 con un fuerte apoyo de las agrupaciones campesinas. Si bien Lugo logró acceder a la presidencia, a nivel político era bastante débil, ya que no contaba con un apoyo significativo en el senado y además tenía en contra a los grupos económicos más fuertes. A esto se le agregó la enfermedad que padeció durante el año pasado y las críticas de la opinión pública por los escándalos sobre sus hijos no reconocidos.
+
La falta de apoyo y la debilidad del gobierno de Lugo hicieron que no pueda cumplir con su promesa de campaña de realizar una reforma agraria en beneficio de los pequeños campesinos. Estos se organizaron y realizaron distintas protestas, entre las cuales se encuentra la toma de una finca en Curuguaty donde, luego de un desalojo, murieron 11 campesinos y 6 policías. Este hecho fue el que desencadenó el pedido de la oposición para someter al presidente a un juicio político, en cual el senado decidió su destitución sin tener en cuenta los plazos estipulados por la ley para este tipo de procedimientos. El vicepresidente, Federico Franco, que defiende a los intereses de la oligarquía paraguaya, ocupa hoy el lugar de Lugo, a la espera de que se celebren las elecciones en abril.
+
En defensa de Lugo salieron los mandatarios de los países miembros de Mercosur que calificaron la destitución del presidente como un golpe de Estado encubierto. La suspensión del Paraguay del bloque es una sanción a esta estrategia política llevada a cabo por la oligarquía agraria que atenta contra la democracia y los derechos del pueblo guaraní.
+
Los dos grandes cambios que se dieron en la última cumbre, la defensa del presidente constitucional de Paraguay y la incorporación de Venezuela al bloque económico, son dos acciones que representan un avance en la unión entre los países de nuestra región.
+
+
+
+
From 18372ce29fce63488e1ce126e240ac7466960ec0 Mon Sep 17 00:00:00 2001
From: Adam Wulf
Date: Tue, 31 Jul 2012 14:26:24 -0500
Subject: [PATCH 21/94] fixed whitespace text node causing fake dontend when it
was nested deeply in what would be the last node of a column
---
samples/issue_36.html | 3 ++-
samples/issue_44.html | 4 +++-
src/jquery.columnizer.js | 19 +++++++++++++------
3 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/samples/issue_36.html b/samples/issue_36.html
index ffb8754..67eb4ee 100644
--- a/samples/issue_36.html
+++ b/samples/issue_36.html
@@ -12,6 +12,7 @@
body { font-size: 9pt; }
#wrapper { margin: 0px 100px; }
.wide, .thin { clear:both; }
+ #overflow { clear:both; }
@@ -74,7 +75,7 @@ Soleat civibus in pri
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
-
diff --git a/samples/issue_44.html b/samples/issue_44.html
index c9362b6..5cd53d6 100644
--- a/samples/issue_44.html
+++ b/samples/issue_44.html
@@ -9,7 +9,9 @@
+
+
+
+
+
+
+
+
+
column break inside dontsplit
+
This example shows columns breaking when the columnbreak is inside of a dontsplit item. This will only create as many columns as there are breaks. Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
+
Eu eleifend repudiandae has. Mea eu ridens aliquam.
Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Lorem ipsum ne justo
+
Bonorum has. His ut cibo quas tantas, vis ut probo adhuc definiebas, has at meis debet vulputate. No sed velit essent suavitate, in pro decore ceteros temporibus, usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.
+
Test Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum.
+
+ Eu eleifend repudiandae has. Mea eu ridens aliquam. Nisl aeque sit ut, posse dolor utinam cum in. Ad timeam sapientem eos, et eripuit inermis nam. Eos integre voluptaria ne, iriure concludaturque ut eum. Test
+
Vis erant intellegat in. Soleat legere no ius, usu ex laoreet molestie. Sit eu sint inermis. Ea zzril scribentur pro.
+
Tempor essent appetere
+
Ius mutat commune expetendis in. Nam et quas sensibus reprimique, vix no erat soluta suavitate. At mel eius dictas latine. Corrumpit inciderint reformidans sed no, no usu omnis utinam noluisse.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
Probo debet quaestio an eos, no mel assum iracundia delicatissimi, rebum facete utroque sed ex. Eu melius invidunt repudiandae vix, eu paulo reformidans deterruisset duo, solum voluptaria efficiantur ea mel. Qui summo zzril alienum et. Eu est ferri iuvaret, mazim epicurei sententiae ut cum, modo reque intellegat ex vix. Vim eu tibique accusamus, quot electram at qui.
+
Ex iisque eleifend periculis has. Sit aeterno virtute partiendo ei, eam nonumy bonorum adolescens ad. Ut nec suas vocent ornatus, cetero legendos constituam mea ea, pri cu delenit iracundia. Mundi decore nec te.
+
Soleat civibus in pri
+
In petentium erroribus percipitur per. Takimata accommodare ius ut, eam no postulant urbanitas. Qui ei tantas consectetuer, quis dictas euripidis duo ei. Quaeque democritum concludaturque has ne.
+
Blandit insolens constituto vix an. Has diam wisi in, eum unum repudiare no. Sit at virtute rationibus, qui vitae explicari cu.
Vim ne singulis voluptatum, sed puto accusata salutandi ei. Ad mel civibus adversarium.
+
Per ne solum vivendo, fabulas dolorem vivendo in pro. Nec duis ignota cotidieque no, an per possit nostrum. Pro detraxit definitionem eu. Vivendo officiis no nam, eu has reque maiestatis percipitur, dolore reprimique accommodare cum ad. No utinam voluptua oportere pri, augue sonet dicant ei sea.
+
Sit et, an ius nihil apeirian. Eu posse tempor iuvaret cum. No diam dolor sea, postea mnesarchum ne ius, vel no utinam ignota dolores. Malis suscipit accusamus his ne, utinam assentior prodesset ea eam, facer partem antiopam et cum.
+
+
+