aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-web
diff options
context:
space:
mode:
authorEric Barboni <skygo@apache.org>2014-10-14 02:56:36 +0200
committerEric Barboni <skygo@apache.org>2014-10-14 02:56:36 +0200
commit951b9f8ef15abed0fabba2ac38f1cbfd6a52d597 (patch)
tree06980a758c4e98d42cb77723eb62520523823fa5 /archiva-modules/archiva-web
parent4e331298e4abdaf9e571cd34c7f31de67ee5a835 (diff)
downloadarchiva-951b9f8ef15abed0fabba2ac38f1cbfd6a52d597.tar.gz
archiva-951b9f8ef15abed0fabba2ac38f1cbfd6a52d597.zip
MRM-1811 add alternative pagination for simplegrid
Diffstat (limited to 'archiva-modules/archiva-web')
-rw-r--r--archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties5
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/knockout.simpleGrid.js10
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/users.js2
-rw-r--r--archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/generics.html53
4 files changed, 66 insertions, 4 deletions
diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
index fd6a5b91d..75cbd772c 100644
--- a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
+++ b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
@@ -711,4 +711,9 @@ version.delete.missing.repoId=You must select a Repository
+# navigation
+navigation.previous=Previous
+navigation.next=Next
+navigation.first=First
+navigation.last=Last
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/knockout.simpleGrid.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/knockout.simpleGrid.js
index 90a0ff502..99f0c6eb5 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/knockout.simpleGrid.js
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/knockout.simpleGrid.js
@@ -29,7 +29,9 @@
this.currentPageIndex = ko.observable(0);
this.pageSize = configuration.pageSize || 5;
this.columns = configuration.columns;
-
+ // true for prev next nav
+ this.innerNavigation = configuration.innerNavigation;
+ this.navsize = configuration.navsize || 10;
this.itemsOnCurrentPage = ko.computed(function () {
var startIndex = this.pageSize * this.currentPageIndex();
var items = this.data.slice(startIndex, startIndex + this.pageSize);
@@ -67,14 +69,16 @@
// Allow the default templates to be overridden
var gridTemplateName = allBindings.simpleGridTemplate || "ko_usersGrid_grid",
pageLinksTemplateName = allBindings.simpleGridPagerTemplate || "ko_simpleGrid_pageLinks";
-
+//ko_simpleGrid_pageLinksinnernav
+ if (viewModel.innerNavigation) {
+ pageLinksTemplateName = "ko_simpleGrid_pageLinksinnernav";
+ }
// Render the main grid
var gridContainer = element.appendChild(document.createElement("DIV"));
ko.renderTemplate(gridTemplateName, viewModel, { templateEngine: templateEngine }, gridContainer, "replaceNode")
.subscribe(viewModel.gridUpdateCallBack?viewModel.gridUpdateCallBack:function(){});
if (viewModel.gridUpdateCallBack) viewModel.gridUpdateCallBack();
-
// Render the page links
var pageLinksContainer = $("#"+allBindings.pageLinksId).get(0);
var renderedTemplate = ko.renderTemplate(pageLinksTemplateName, viewModel, { templateEngine: templateEngine }, pageLinksContainer, "replaceNode");
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/users.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/users.js
index d9cc59d90..9510feed0 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/users.js
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/users.js
@@ -48,7 +48,7 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,typeahead) {
filter: true
}
],
- pageSize: 10,
+ pageSize: 10,innerNavigation : true,
gridUpdateCallBack: function(){
$.log("gridUpdateCallBack users result");
applyAutocompleteOnUsersHeaders(self);
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/generics.html b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/generics.html
index 118265db8..0fd1753cb 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/generics.html
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/generics.html
@@ -65,6 +65,59 @@
</div>
</script>
+<script id="ko_simpleGrid_pageLinksinnernav" type="text/html">
+ <div class="pagination">
+ <ul>
+ <li data-bind="css: { active: 0 == currentPageIndex() }">
+ <a href="#" data-bind="click: function() { currentPageIndex(0) }">
+ ${$.i18n.prop('navigation.first')}
+ </a>
+ </li>
+ <li data-bind="css: { active: 0 == currentPageIndex() }">
+ <a href="#" data-bind="click: function() { currentPageIndex(currentPageIndex()-1) }">
+ ${$.i18n.prop('navigation.previous')}
+ </a>
+ </li>
+ {{if currentPageIndex() < navsize }}
+ {{each(i) ko.utils.range(1, Math.min( navsize, maxPageIndex()-1))}}
+ <li data-bind="css: {active: i == currentPageIndex() }">
+ <a href="#" data-bind="click: function() { currentPageIndex( i + 1 ) }">
+ ${ 1 + i }
+ </a>
+ </li>
+ {{/each}}
+ {{else currentPageIndex() > maxPageIndex() - navsize }}
+ {{each(i) ko.utils.range(1,navsize)}}
+ <li data-bind="css: {active: currentPageIndex() == maxPageIndex() - navsize + i }">
+ <a href="#" data-bind="click: function() { currentPageIndex( maxPageIndex() - navsize + i ) }">
+ ${ maxPageIndex() - navsize + i + 1 }
+ </a>
+ </li>
+ {{/each}}
+ {{else}}
+ {{each(i) ko.utils.range(currentPageIndex(), Math.min( currentPageIndex() + navsize, maxPageIndex()-1))}}
+ <li data-bind="css: {active: i == 0 }">
+ <a href="#" data-bind="click: function() { currentPageIndex( i + currentPageIndex() ) }">
+ ${ currentPageIndex() + 1 + i}
+ </a>
+ </li>
+ {{/each}}
+ {{/if}}
+
+ <li data-bind="css: { active: maxPageIndex()-1 == currentPageIndex() }">
+ <a href="#" data-bind="click: function() { currentPageIndex(currentPageIndex()+1) }">
+ ${$.i18n.prop('navigation.next')}
+ </a>
+ </li>
+ <li data-bind="css: { active: maxPageIndex()-1 == currentPageIndex() }">
+ <a href="#" data-bind="click: function() { currentPageIndex(maxPageIndex()-1) }">
+ ${$.i18n.prop('navigation.last')}
+ </a>
+ </li>
+ </ul>
+ </div>
+</script>
+
<script id="welcome" type="text/html">
<div class="row-fluid">
<div class="row">