Skip to content

Commit

Permalink
feat: Adds firstPageUrlTemplate option (#40)
Browse files Browse the repository at this point in the history
* [FEATURE] Adds firstPageUrlTemplate option

* Forgot to compute previousUrl as well

* Renames baseUrlTemplate to firstPageUrlTemplate

* Fix hardcoded firstPage as 1

* Updates firstUrl to use firstPageUrlTemplate
  • Loading branch information
marcemira authored and knownasilya committed Sep 28, 2017
1 parent 5f61dd8 commit 8cf402b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
6 changes: 6 additions & 0 deletions addon/components/page-item.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ export default Ember.Component.extend({
url: computed('urlTemplate', 'page', function () {
var urlTemplate = this.get('urlTemplate');
var current = this.get('page');
var firstPage = this.get('firstPage');
var firstPageUrlTemplate = this.get('firstPageUrlTemplate');

if(firstPageUrlTemplate && (current === firstPage)){
return firstPageUrlTemplate;
}

urlTemplate = urlTemplate.replace('{current}', current);

Expand Down
11 changes: 11 additions & 0 deletions addon/components/pagination-pager.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,18 @@ export default Ember.Component.extend({
firstPage: 1,
current: 1,
urlTemplate: '#',
firstPageUrlTemplate: null,
lastPage: alias('count'),

previousUrl: computed('urlTemplate', 'current', 'firstPage', function () {
var urlTemplate = this.get('urlTemplate');
var current = this.get('current');
var firstPage = this.get('firstPage');
var firstPageUrlTemplate = this.get('firstPageUrlTemplate');

if(firstPageUrlTemplate && (((current - 1) === firstPage) || current === firstPage)) {
return firstPageUrlTemplate;
}

urlTemplate = urlTemplate.replace('{current}', current > firstPage ? current - 1 : current);

Expand All @@ -46,6 +52,11 @@ export default Ember.Component.extend({
firstUrl: computed('urlTemplate', 'current', 'firstPage', function () {
var urlTemplate = this.get('urlTemplate');
var firstPage = this.get('firstPage');
var firstPageUrlTemplate = this.get('firstPageUrlTemplate');

if(firstPageUrlTemplate) {
return firstPageUrlTemplate;
}

urlTemplate = urlTemplate.replace('{current}', firstPage);

Expand Down
11 changes: 10 additions & 1 deletion app/templates/components/pagination-pager.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,16 @@
</li>

{{#each pages key="@index" as |page|}}
{{page-item disabled=disabled page=page selected=this.current seperator=seperator urlTemplate=urlTemplate pageSet='pageChanged'}}
{{page-item
disabled=disabled
page=page
selected=this.current
seperator=seperator
urlTemplate=urlTemplate
firstPage=firstPage
firstPageUrlTemplate=firstPageUrlTemplate
pageSet='pageChanged'
}}
{{/each}}

<li class="next {{if isLastDisabled 'disabled'}}">
Expand Down

0 comments on commit 8cf402b

Please sign in to comment.