First commit
This commit is contained in:
168
application/demo/list/news.list.table.body.js
Normal file
168
application/demo/list/news.list.table.body.js
Normal file
@@ -0,0 +1,168 @@
|
||||
|
||||
|
||||
import renderCollection from '/unify/renderCollection.js';
|
||||
|
||||
import groups from '/user/group/user.group.permission.js';
|
||||
|
||||
import gridViewBody from '/elements/gridView/gridView.body.js';
|
||||
|
||||
import OR from '/unify/sql/OR.js';
|
||||
|
||||
import AND from '/unify/sql/AND.js';
|
||||
|
||||
import LIKE from '/unify/sql/LIKE.js';
|
||||
|
||||
import GREATER from '/unify/sql/GREATER_OR_EQUAL.js';
|
||||
|
||||
import SMALLER from '/unify/sql/SMALLER_OR_EQUAL.js';
|
||||
|
||||
|
||||
export default class newsListTableBody extends renderCollection, gridViewBody {
|
||||
|
||||
debug = true;
|
||||
|
||||
sort = "title";
|
||||
|
||||
page = 0;
|
||||
|
||||
limit = 2;
|
||||
|
||||
async create() {
|
||||
|
||||
//this.update();
|
||||
|
||||
}
|
||||
|
||||
async update( updatePagination = true ) {
|
||||
|
||||
if( updatePagination ) {
|
||||
|
||||
this.page = 0;
|
||||
|
||||
}
|
||||
|
||||
this.numberOfPages = await this.filterSearch( this.searchType, this.searchTerm, this.sort, this.direction, this.limit, this.page );
|
||||
|
||||
await this.sync();
|
||||
|
||||
if( updatePagination ) {
|
||||
|
||||
this.parents("newsItemPage").tableControl.pagination.create();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
node async filterSearch( searchType, searchTerm, order, direction, limit, page ) {
|
||||
|
||||
console.log("searchType", searchType);
|
||||
|
||||
console.log("search input", searchTerm);
|
||||
|
||||
console.log("search order", order);
|
||||
|
||||
console.log("direction", direction);
|
||||
|
||||
console.log("limit", limit);
|
||||
|
||||
console.log("from", page * limit);
|
||||
|
||||
|
||||
|
||||
var filter = this.getFilter();
|
||||
|
||||
switch( searchType ) {
|
||||
|
||||
case 0:
|
||||
|
||||
filter.search = OR( OR( LIKE( filter.title, searchTerm ), LIKE( filter.comments.body, searchTerm ) ), LIKE( filter.body, searchTerm ) );
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
||||
filter.search = GREATER( filter.price, searchTerm );
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
||||
filter.search = SMALLER( filter.price, searchTerm );
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if( !searchTerm ) {
|
||||
|
||||
filter.search = false;
|
||||
|
||||
}
|
||||
|
||||
switch( order ) {
|
||||
|
||||
case "title":
|
||||
|
||||
filter.order = filter.title;
|
||||
|
||||
break;
|
||||
|
||||
case "body":
|
||||
|
||||
filter.order = filter.body;
|
||||
|
||||
break;
|
||||
|
||||
case "price":
|
||||
|
||||
filter.order = filter.price;
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if( direction == "desc" ) {
|
||||
|
||||
filter.direction = "desc";
|
||||
|
||||
} else {
|
||||
|
||||
filter.direction = "asc";
|
||||
|
||||
}
|
||||
|
||||
filter.limit = 1000;
|
||||
|
||||
filter.from = 0;
|
||||
|
||||
// See how many searched rows there are in total
|
||||
this.get();
|
||||
|
||||
filter.limit = parseInt( limit );
|
||||
|
||||
filter.from = parseInt( page * limit );
|
||||
|
||||
var numberOfPages = Math.ceil( this.rows.length / limit );
|
||||
|
||||
console.log("numberOfPages", numberOfPages);
|
||||
|
||||
console.log("this.rows.length", this.rows.length);
|
||||
|
||||
console.log("limit", limit);
|
||||
|
||||
return numberOfPages;
|
||||
|
||||
}
|
||||
|
||||
permission() {
|
||||
|
||||
this.allow( groups.visitor, "READ" );
|
||||
|
||||
this.allow( groups.member, "READ" );
|
||||
|
||||
this.allow( groups.admin, "READ" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user