Project

General

Profile

« Previous | Next » 

Revision 56828

When search field is applied, we count the total rows with this filter on

View differences:

modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/PiWikService.java
18 18

  
19 19
    List<PiwikInfo> getPiwikSitesForRepos(OrderByField orderByField, OrderByType orderByType, int from, int quantity, String searchField);
20 20

  
21
    int getPiwikSitesTotals();
21
    int getPiwikSitesTotals(String searchField);
22 22

  
23 23
    ResponseEntity<Object> approvePiwikSite(String repositoryId);
24 24

  
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/PiWikServiceImpl.java
18 18
import org.springframework.jdbc.core.PreparedStatementSetter;
19 19
import org.springframework.jdbc.core.RowMapper;
20 20
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
21
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
21 22
import org.springframework.security.access.prepost.PreAuthorize;
22 23
import org.springframework.security.core.context.SecurityContextHolder;
23 24
import org.springframework.stereotype.Service;
......
125 126
    }
126 127

  
127 128
    @Override
128
    public int getPiwikSitesTotals(){
129
    public int getPiwikSitesTotals(String searchField){
129 130
        try{
130
            return new JdbcTemplate(dataSource).queryForObject(GET_PIWIK_SITES_TOTAL,Integer.class);
131
            String finalizedQuery = GET_PIWIK_SITES_TOTAL + " where ("+
132
                    " repositoryid ilike ? " +
133
                    " or siteid ilike ?" +
134
                    " or requestorname ilike ?" +
135
                    " or requestoremail ilike ?" +
136
                    " or comment ilike ?" +
137
                    " or repositoryname ilike ?"+
138
                    " or country ilike ?)";
139

  
140
            return new JdbcTemplate(dataSource).query(finalizedQuery, preparedStatement -> {
141
                preparedStatement.setString(1,"%"+searchField+"%");
142
                preparedStatement.setString(2,"%"+searchField+"%");
143
                preparedStatement.setString(3,"%"+searchField+"%");
144
                preparedStatement.setString(4,"%"+searchField+"%");
145
                preparedStatement.setString(5,"%"+searchField+"%");
146
                preparedStatement.setString(6,"%"+searchField+"%");
147
                preparedStatement.setString(7,"%"+searchField+"%");
148
            },rowMapper -> {
149
                rowMapper.next();
150
                return rowMapper.getInt("totals");
151
            });
131 152
        }catch (EmptyResultDataAccessException e){
132 153
            return 0;
133 154
        }
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/controllers/PiWikController.java
59 59
            @ApiImplicitParam(name = "from", dataType = "number", paramType = "query"),
60 60
            @ApiImplicitParam(name = "quantity", dataType = "number", paramType = "query"),
61 61
            @ApiImplicitParam(name = "order", dataType = "eu.dnetlib.repo.manager.domain.OrderByType", paramType = "query"),
62
            @ApiImplicitParam(name = "searchField", dataType = "eu.dnetlib.repo.manager.domain.OrderByField", paramType = "query"),
63
            @ApiImplicitParam(name = "orderField", dataType = "string", paramType = "query"),
62
            @ApiImplicitParam(name = "orderField", dataType = "eu.dnetlib.repo.manager.domain.OrderByField", paramType = "query"),
63
            @ApiImplicitParam(name = "searchField", dataType = "string", paramType = "query"),
64 64
    })
65 65
    public Paging<PiwikInfo> getPiwikSitesForRepos(
66 66
            @RequestParam(value = "from",required=false,defaultValue = "0") int from,
......
74 74
        List<PiwikInfo> returning = piWikService.getPiwikSitesForRepos(orderField,orderType,from,quantity,searchField);
75 75
        results.setFrom(from);
76 76
        results.setTo(from + returning.size());
77
        results.setTotal(piWikService.getPiwikSitesTotals());
77
        results.setTotal(piWikService.getPiwikSitesTotals(searchField));
78 78
        results.setResults(returning);
79 79
        return results;
80 80
    }

Also available in: Unified diff