Merge pull request #1147 from tomaswolf/disabled_pager_links

Fix disabled links in PagerPanel
diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.html b/src/main/java/com/gitblit/wicket/pages/BasePage.html
index b998428..4dbc2e5 100644
--- a/src/main/java/com/gitblit/wicket/pages/BasePage.html
+++ b/src/main/java/com/gitblit/wicket/pages/BasePage.html
@@ -17,6 +17,7 @@
 		<link rel="stylesheet" href="fontawesome/css/font-awesome.min.css"/>

         <link rel="stylesheet" href="octicons/octicons.css"/>

 		<link rel="stylesheet" type="text/css" href="gitblit.css"/>

+		<link rel="stylesheet" type="text/css" href="bootstrap-fixes.css"/>

 	</wicket:head>

 

 	<body>

diff --git a/src/main/java/com/gitblit/wicket/panels/PagerPanel.java b/src/main/java/com/gitblit/wicket/panels/PagerPanel.java
index 2d774c4..d1214ca 100644
--- a/src/main/java/com/gitblit/wicket/panels/PagerPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/PagerPanel.java
@@ -48,7 +48,7 @@
 			deltas = new int[] { -2, -1, 0, 1, 2 };

 		}

 

-		if (totalPages > 0) {

+		if (totalPages > 0 && currentPage > 1) {

 			pages.add(new PageObject("\u2190", currentPage - 1));

 		}

 		for (int delta : deltas) {

@@ -57,7 +57,7 @@
 				pages.add(new PageObject("" + page, page));

 			}

 		}

-		if (totalPages > 0) {

+		if (totalPages > 0 && currentPage < totalPages) {

 			pages.add(new PageObject("\u2192", currentPage + 1));

 		}

 

@@ -75,6 +75,7 @@
 				item.add(link);

 				if (pageItem.page == currentPage || pageItem.page < 1 || pageItem.page > totalPages) {

 					WicketUtils.setCssClass(item, "disabled");

+					link.setEnabled(false);

 				}

 			}

 		};

diff --git a/src/main/resources/bootstrap-fixes.css b/src/main/resources/bootstrap-fixes.css
new file mode 100644
index 0000000..c9b6154
--- /dev/null
+++ b/src/main/resources/bootstrap-fixes.css
@@ -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;
+}