parent
							
								
									8309486a8a
								
							
						
					
					
						commit
						578b8daa32
					
				
					 11 changed files with 131 additions and 8 deletions
				
			
		
							
								
								
									
										41
									
								
								app/components/ccdb-pagination.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								app/components/ccdb-pagination.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | |||
| import Ember from 'ember'; | ||||
| 
 | ||||
| const { Component, computed: { alias }, computed } = Ember; | ||||
| 
 | ||||
| export default Component.extend({ | ||||
|   // ARGS
 | ||||
|   model: null, | ||||
| 
 | ||||
|   // COMPUTED
 | ||||
|   meta: alias('model.meta'), | ||||
|   links: alias('model.links'), | ||||
| 
 | ||||
|   currentPage: alias('meta.pagination.page'), | ||||
|   totalRecords: alias('meta.pagination.count'), | ||||
| 
 | ||||
|   firstLink: alias('links.first'), | ||||
|   lastLink: alias('links.last'), | ||||
|   nextLink: alias('links.next'), | ||||
|   prevLink: alias('links.prev'), | ||||
| 
 | ||||
|   _getPage(link) { | ||||
|     link = this.get(link); | ||||
|     if (link === null) { | ||||
|       return null; | ||||
|     } | ||||
|     const url = new URL(link); | ||||
|     return parseInt(url.searchParams.get('page')); | ||||
|   }, | ||||
| 
 | ||||
|   _notEqual(a, b) { | ||||
|     return this.get(a) !== this.get(b); | ||||
|   }, | ||||
| 
 | ||||
|   first: computed('firstLink', function() { return this._getPage('firstLink'); }), | ||||
|   last: computed('lastLink', function() { return this._getPage('lastLink'); }), | ||||
|   next: computed('nextLink', function() { return this._getPage('nextLink'); }), | ||||
|   prev: computed('prevLink', function() { return this._getPage('prevLink'); }), | ||||
| 
 | ||||
|   notOnFirst: computed('first', 'currentPage', function() { return this._notEqual('first', 'currentPage'); }), | ||||
|   notOnLast: computed('last', 'currentPage', function() { return this._notEqual('last', 'currentPage'); }), | ||||
| }); | ||||
|  | @ -4,10 +4,11 @@ import Table from 'ember-light-table'; | |||
| const { Component } = Ember; | ||||
| 
 | ||||
| export default Component.extend({ | ||||
|   // ARGS
 | ||||
|   model: null, | ||||
|   columns: null, | ||||
|   table: null, | ||||
| 
 | ||||
|   table: null, | ||||
|   init() { | ||||
|     this._super(...arguments); | ||||
|     const table = new Table(this.get('columns'), this.get('model')); | ||||
|  |  | |||
|  | @ -3,6 +3,9 @@ import Ember from 'ember'; | |||
| const { Component } = Ember; | ||||
| 
 | ||||
| export default Component.extend({ | ||||
|   // ARGS
 | ||||
|   model: null, | ||||
| 
 | ||||
|   columns: [ | ||||
|     { label: 'Project', valuePath: 'project.name', }, | ||||
|     { label: 'Study Location', valuePath: 'studyLocation.code', }, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 GitHub
							GitHub