]> source.dussan.org Git - gitblit.git/commitdiff
Fix disabled links in PagerPanel 1147/head
authorTom <tw201207@gmail.com>
Mon, 31 Oct 2016 06:50:26 +0000 (07:50 +0100)
committerTom <tw201207@gmail.com>
Mon, 31 Oct 2016 06:50:26 +0000 (07:50 +0100)
Disabled links in the PagerPanel (used on the LuceneSearchPage to page
through search results) were only rendered as "disabled". The links
themselves remained active, which gives strange effects when clicked.
For instance it was possible to move to result pages -1, -2, and so on.

Really disable the links. Add missing CSS rules to have correct styling
as Wicket renders disabled links as spans, not anchors. Include the new
CSS file in BasePage.html. And add the left/right arrows only if not on
the first/last page.

src/main/java/com/gitblit/wicket/pages/BasePage.html
src/main/java/com/gitblit/wicket/panels/PagerPanel.java
src/main/resources/bootstrap-fixes.css [new file with mode: 0644]

index b998428c53f923e6b855b853dff3334e874aeabf..4dbc2e5743f1312e741ca05aa5ba3d9f32221754 100644 (file)
@@ -17,6 +17,7 @@
                <link rel="stylesheet" href="fontawesome/css/font-awesome.min.css"/>\r
         <link rel="stylesheet" href="octicons/octicons.css"/>\r
                <link rel="stylesheet" type="text/css" href="gitblit.css"/>\r
+               <link rel="stylesheet" type="text/css" href="bootstrap-fixes.css"/>\r
        </wicket:head>\r
 \r
        <body>\r
index 2d774c414d0dfb8a6d98374bc0f56ae5157a0ff5..d1214cae897a43fc5f97a1ce57d229695d911d22 100644 (file)
@@ -48,7 +48,7 @@ public class PagerPanel extends Panel {
                        deltas = new int[] { -2, -1, 0, 1, 2 };\r
                }\r
 \r
-               if (totalPages > 0) {\r
+               if (totalPages > 0 && currentPage > 1) {\r
                        pages.add(new PageObject("\u2190", currentPage - 1));\r
                }\r
                for (int delta : deltas) {\r
@@ -57,7 +57,7 @@ public class PagerPanel extends Panel {
                                pages.add(new PageObject("" + page, page));\r
                        }\r
                }\r
-               if (totalPages > 0) {\r
+               if (totalPages > 0 && currentPage < totalPages) {\r
                        pages.add(new PageObject("\u2192", currentPage + 1));\r
                }\r
 \r
@@ -75,6 +75,7 @@ public class PagerPanel extends Panel {
                                item.add(link);\r
                                if (pageItem.page == currentPage || pageItem.page < 1 || pageItem.page > totalPages) {\r
                                        WicketUtils.setCssClass(item, "disabled");\r
+                                       link.setEnabled(false);\r
                                }\r
                        }\r
                };\r
diff --git a/src/main/resources/bootstrap-fixes.css b/src/main/resources/bootstrap-fixes.css
new file mode 100644 (file)
index 0000000..c9b6154
--- /dev/null
@@ -0,0 +1,25 @@
+/**
+ * Disabled links in a PagerPanel. Bootstrap 2.0.4 only handles <a>, but not <span>. Wicket renders disabled links as spans.
+ * The .pagination rules here are identical to the ones for <a> in bootstrap.css, but for <span>.
+ */
+.pagination span {
+  float: left;
+  padding: 0 14px;
+  line-height: 34px;
+  text-decoration: none;
+  border: 1px solid #ddd;
+  border-left-width: 0;
+}
+
+.pagination li:first-child span {
+  border-left-width: 1px;
+  -webkit-border-radius: 3px 0 0 3px;
+     -moz-border-radius: 3px 0 0 3px;
+          border-radius: 3px 0 0 3px;
+}
+
+.pagination li:last-child span {
+  -webkit-border-radius: 0 3px 3px 0;
+     -moz-border-radius: 0 3px 3px 0;
+          border-radius: 0 3px 3px 0;
+}