diff options
author | Eric Barboni <skygo@apache.org> | 2014-10-14 02:56:36 +0200 |
---|---|---|
committer | Eric Barboni <skygo@apache.org> | 2014-10-14 02:56:36 +0200 |
commit | 951b9f8ef15abed0fabba2ac38f1cbfd6a52d597 (patch) | |
tree | 06980a758c4e98d42cb77723eb62520523823fa5 /archiva-modules/archiva-web | |
parent | 4e331298e4abdaf9e571cd34c7f31de67ee5a835 (diff) | |
download | archiva-951b9f8ef15abed0fabba2ac38f1cbfd6a52d597.tar.gz archiva-951b9f8ef15abed0fabba2ac38f1cbfd6a52d597.zip |
MRM-1811 add alternative pagination for simplegrid
Diffstat (limited to 'archiva-modules/archiva-web')
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"> |