From 7e667057ba3027b67c145a04a0598e3176371d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Palcs=C3=B3?= Date: Wed, 28 Nov 2018 14:49:10 +0100 Subject: [PATCH 1/7] PageScroll.js keeps replacing the content of the previous page. --- .../resources/META-INF/modules/tjq/PageScroll.js | 10 +++++++++- .../org/got5/tapestry5/jquery/PageScrollTest.java | 12 ++++++++++++ .../org/got5/tapestry5/jquery/pages/PageScroll.tml | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/resources/META-INF/modules/tjq/PageScroll.js b/src/main/resources/META-INF/modules/tjq/PageScroll.js index d1073fcb..f02c4ec6 100644 --- a/src/main/resources/META-INF/modules/tjq/PageScroll.js +++ b/src/main/resources/META-INF/modules/tjq/PageScroll.js @@ -21,9 +21,17 @@ define([ "t5/core/dom", "t5/core/zone", "t5/core/events", "tjq/vendor/components return; } + var pageZoneId = specs.zoneId + pageIndex; element = dom.wrap(specs.scroller); - element.attr("data-update-zone", specs.zoneId); + element.attr("data-update-zone", pageZoneId); activeZone = zone.findZone(element); + + var newPageZone = dom.wrap(activeZone.$.clone()); + var nextPageIndex = pageIndex + 1; + var nextPageZoneId = specs.zoneId + nextPageIndex; + newPageZone.attr("id", nextPageZoneId); + activeZone.insertAfter(newPageZone); + element.attr("data-update-zone", nextPageZoneId); this.disable = true; scroller.addClass("scrollExtend-loading"); diff --git a/src/test/java/org/got5/tapestry5/jquery/PageScrollTest.java b/src/test/java/org/got5/tapestry5/jquery/PageScrollTest.java index e86d6629..0e78f382 100644 --- a/src/test/java/org/got5/tapestry5/jquery/PageScrollTest.java +++ b/src/test/java/org/got5/tapestry5/jquery/PageScrollTest.java @@ -22,6 +22,18 @@ public void page_scroll_works(){ assertTrue(isTextPresent("Element#300")); assertTrue(isTextPresent("Element#302")); + + assertFalse(isTextPresent("Element#500")); + assertFalse(isTextPresent("Element#502")); + + this.runScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight," + + "document.body.scrollHeight,document.documentElement.clientHeight));"); + + sleep(1500); + + assertTrue(isTextPresent("Element#500")); + assertTrue(isTextPresent("Element#502")); + } } diff --git a/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml b/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml index 87503794..2623c4f6 100644 --- a/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml +++ b/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml @@ -27,7 +27,7 @@ scroller='scroller' zone='zone'>
  • Element#${value}
  • -
  • +
  • From 1fd2fbc8c5555d9229e0b3797660dec939327474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Palcs=C3=B3?= Date: Sat, 1 Dec 2018 13:31:09 +0100 Subject: [PATCH 2/7] Set SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER to "jquery" in test AppModule to not to include prototype.js included and such make the PageScroll component test work --- src/test/java/org/got5/tapestry5/jquery/services/AppModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/got5/tapestry5/jquery/services/AppModule.java b/src/test/java/org/got5/tapestry5/jquery/services/AppModule.java index 9c743847..aa1aacfd 100644 --- a/src/test/java/org/got5/tapestry5/jquery/services/AppModule.java +++ b/src/test/java/org/got5/tapestry5/jquery/services/AppModule.java @@ -56,7 +56,7 @@ public static void contributeApplicationDefaults(MappedConfiguration Date: Sat, 1 Dec 2018 17:43:29 +0100 Subject: [PATCH 3/7] List PageScroller component in README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3f2b8210..2e8341bb 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ Exclusive jQuery components : - based on [https://github.com/woothemes/FlexSlider](https://github.com/woothemes/FlexSlider) - **InPlaceEditor** - based on [http://www.appelsiini.net/projects/jeditable](http://www.appelsiini.net/projects/jeditable) +- **PageScroller** + - Infinite Scrolling Pagination. [Example on how to use it](/repo/blob/master/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml) - **RangeSlider** - based on [http://jqueryui.com/demos/slider/#range](http://jqueryui.com/demos/slider/#range) - **Slider** From 05e55b7798920b12250e8fb53d1895c87f242c26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Palcs=C3=B3?= Date: Sat, 1 Dec 2018 17:46:21 +0100 Subject: [PATCH 4/7] fix link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e8341bb..d3b8c350 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Exclusive jQuery components : - **InPlaceEditor** - based on [http://www.appelsiini.net/projects/jeditable](http://www.appelsiini.net/projects/jeditable) - **PageScroller** - - Infinite Scrolling Pagination. [Example on how to use it](/repo/blob/master/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml) + - Infinite Scrolling Pagination. [Example on how to use it](/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml) - **RangeSlider** - based on [http://jqueryui.com/demos/slider/#range](http://jqueryui.com/demos/slider/#range) - **Slider** From f724a2bf8cbe305c512881969463045b6992c97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Palcs=C3=B3?= Date: Sat, 1 Dec 2018 17:51:17 +0100 Subject: [PATCH 5/7] Add link to Java file too. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3b8c350..ecca520d 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Exclusive jQuery components : - **InPlaceEditor** - based on [http://www.appelsiini.net/projects/jeditable](http://www.appelsiini.net/projects/jeditable) - **PageScroller** - - Infinite Scrolling Pagination. [Example on how to use it](/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml) + - Infinite Scrolling Pagination. Example on how to use it: [TML](/src/test/resources/org/got5/tapestry5/jquery/pages/PageScroll.tml) & [Java](/src/test/java/org/got5/tapestry5/jquery/pages/PageScroll.java) - **RangeSlider** - based on [http://jqueryui.com/demos/slider/#range](http://jqueryui.com/demos/slider/#range) - **Slider** From bc648f065eda1a13b09fd981f923da8240fd553e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Palcs=C3=B3?= Date: Sat, 1 Dec 2018 17:51:56 +0100 Subject: [PATCH 6/7] Use constant in @OnEvent --- src/test/java/org/got5/tapestry5/jquery/pages/PageScroll.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/got5/tapestry5/jquery/pages/PageScroll.java b/src/test/java/org/got5/tapestry5/jquery/pages/PageScroll.java index f9574e77..7a861bfa 100644 --- a/src/test/java/org/got5/tapestry5/jquery/pages/PageScroll.java +++ b/src/test/java/org/got5/tapestry5/jquery/pages/PageScroll.java @@ -2,8 +2,10 @@ import java.util.ArrayList; import java.util.List; + import org.apache.tapestry5.annotations.OnEvent; import org.apache.tapestry5.annotations.Property; +import org.got5.tapestry5.jquery.JQueryEventConstants; public class PageScroll { @@ -15,7 +17,7 @@ public class PageScroll { private static final int PAGE_SIZE = 100; - @OnEvent("nextPage") + @OnEvent(JQueryEventConstants.NEXT_PAGE) List moreValues(int multiplyBy) throws InterruptedException { List values = new ArrayList(); for (int i = pageNumber * PAGE_SIZE; From 88796a0441ae7504f3e4c593f700b64fd419c872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Palcs=C3=B3?= Date: Wed, 30 Jan 2019 11:41:47 +0100 Subject: [PATCH 7/7] PageScroll - Be able to start from any we pass in pageNumber --- .../org/got5/tapestry5/jquery/components/PageScroll.java | 5 +---- src/main/resources/META-INF/modules/tjq/PageScroll.js | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/got5/tapestry5/jquery/components/PageScroll.java b/src/main/java/org/got5/tapestry5/jquery/components/PageScroll.java index 5a1e4cc0..49b1dad5 100644 --- a/src/main/java/org/got5/tapestry5/jquery/components/PageScroll.java +++ b/src/main/java/org/got5/tapestry5/jquery/components/PageScroll.java @@ -25,7 +25,6 @@ import org.apache.tapestry5.internal.util.CaptureResultCallback; import org.apache.tapestry5.ioc.services.TypeCoercer; import org.apache.tapestry5.json.JSONObject; -import org.apache.tapestry5.services.Request; import org.apache.tapestry5.services.javascript.JavaScriptSupport; import org.got5.tapestry5.jquery.JQueryEventConstants; @@ -107,9 +106,6 @@ public class PageScroll implements ClientElement { @Inject private TypeCoercer typeCoercer; - @Inject - private Request request; - private EventContext eventContext; @BeginRender @@ -124,6 +120,7 @@ void addJavaScript() { .put("scroller", scroller) .put("scrollURI", getScrollURI()) .put("zoneId", zone) + .put("firstPageNumber", pageNumber) .put("params", params); javaScriptSupport.require("tjq/PageScroll").with(specs); diff --git a/src/main/resources/META-INF/modules/tjq/PageScroll.js b/src/main/resources/META-INF/modules/tjq/PageScroll.js index f02c4ec6..12d52fd1 100644 --- a/src/main/resources/META-INF/modules/tjq/PageScroll.js +++ b/src/main/resources/META-INF/modules/tjq/PageScroll.js @@ -14,7 +14,7 @@ define([ "t5/core/dom", "t5/core/zone", "t5/core/events", "tjq/vendor/components activeZone; if (typeof (this.pageIndex) == "undefined") { - this.pageIndex = 0; + this.pageIndex = specs.firstPageNumber >= 0 ? specs.firstPageNumber : 0; } if (this.pageIndex === -1 || this.disable) {