This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository coselmar. See http://git.codelutin.com/coselmar.git commit cfe61da0d121cb4c5e5dfcb533f6ac55e6f3bc62 Author: Yannick Martel <martel@©odelutin.com> Date: Tue Jan 27 18:19:18 2015 +0100 review advanced search part on users --- .../persistence/entity/CoselmarUserTopiaDao.java | 11 +-- .../src/main/webapp/views/users/adminUsers.html | 27 +----- .../src/main/webapp/views/users/searchPart.html | 97 ++++++++++++++++++++++ .../main/webapp/views/users/supervisorUsers.html | 62 +------------- 4 files changed, 107 insertions(+), 90 deletions(-) diff --git a/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/CoselmarUserTopiaDao.java b/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/CoselmarUserTopiaDao.java index 458da7d..45e81e1 100644 --- a/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/CoselmarUserTopiaDao.java +++ b/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/CoselmarUserTopiaDao.java @@ -30,6 +30,7 @@ import java.util.Map; import fr.ifremer.coselmar.persistence.DaoUtils; import fr.ifremer.coselmar.persistence.SearchRequestBean; +import org.apache.commons.lang3.StringUtils; import org.nuiton.util.pagination.PaginationParameter; public class CoselmarUserTopiaDao extends AbstractCoselmarUserTopiaDao<CoselmarUser> { @@ -134,35 +135,35 @@ public class CoselmarUserTopiaDao extends AbstractCoselmarUserTopiaDao<CoselmarU } // Search on FirstName ? - if (example.getFirstname() != null) { + if (StringUtils.isNotBlank(example.getFirstname())) { String firstNameCondition = DaoUtils.andAttributeLike("CU", CoselmarUser.PROPERTY_FIRSTNAME, args, example.getFirstname()); hqlBuilder.append(firstNameCondition); } // Search on Name ? - if (example.getName() != null) { + if (StringUtils.isNotBlank(example.getName())) { String nameCondition = DaoUtils.andAttributeLike("CU", CoselmarUser.PROPERTY_NAME, args, example.getName()); hqlBuilder.append(nameCondition); } // Search on Mail ? - if (example.getMail() != null) { + if (StringUtils.isNotBlank(example.getMail())) { String mailCondition = DaoUtils.andAttributeLike("CU", CoselmarUser.PROPERTY_MAIL, args, example.getMail()); hqlBuilder.append(mailCondition); } // Search on Organization ? - if (example.getOrganization() != null) { + if (StringUtils.isNotBlank(example.getOrganization())) { String organizationCondition = DaoUtils.andAttributeLike("CU", CoselmarUser.PROPERTY_ORGANIZATION, args, example.getOrganization()); hqlBuilder.append(organizationCondition); } // Search on Qualification ? - if (example.getQualification() != null) { + if (StringUtils.isNotBlank(example.getQualification())) { String qualificationCondition = DaoUtils.andAttributeLike("CU", CoselmarUser.PROPERTY_QUALIFICATION, args, example.getQualification()); hqlBuilder.append(qualificationCondition); diff --git a/coselmar-ui/src/main/webapp/views/users/adminUsers.html b/coselmar-ui/src/main/webapp/views/users/adminUsers.html index 26dd36c..e336b3a 100644 --- a/coselmar-ui/src/main/webapp/views/users/adminUsers.html +++ b/coselmar-ui/src/main/webapp/views/users/adminUsers.html @@ -23,31 +23,8 @@ --> <div class="table-responsive" ng-if="currentUser.role == 'ADMIN'"> - <div class="row"> - <div class="form-group col-md-5"> - <a href="#/users/new" class="form-inline navbar-left btn btn-primary">{{ 'user.button.add' | translate }}</a> - </div> - <form class="form-inline cold-md-7" name="userOptions" role="userOptions" ng-submit="searchUsers()" ng-if="!advanced"> - <div class="form-group"> - <input type="checkbox" class="form-control" ng-model="search.showDisable" /> - <span>{{ 'user.button.showDisable' | translate }}</span> - </div> - <div class="form-group"> - <input type="search" class="form-control" placeholder="Search an user" ng-model="search.searchKeyword" /> - </div> - <div class="form-group"> - <button type="submit" class="btn btn-default glyphicon glyphicon-search"></button> - </div> - </form> - </div> - <div class="row"> - <div class="form-group col-md-5" ng-show="!advanced"> - <a ng-click="advanced=true" class="fa fa-sort-down">{{ 'common.button.advanceSearch' | translate }}</a> - </div> - <div class="form-group col-md-5" ng-show="advanced"> - <a ng-click="advanced=false" class="fa fa-sort-up">{{ 'common.button.simpleSearch' | translate }}</a> - </div> - </div> + + <div class="row" ng-include="src='views/users/searchPart.html'" /> <br/> <table class="table"> diff --git a/coselmar-ui/src/main/webapp/views/users/searchPart.html b/coselmar-ui/src/main/webapp/views/users/searchPart.html new file mode 100644 index 0000000..56e6592 --- /dev/null +++ b/coselmar-ui/src/main/webapp/views/users/searchPart.html @@ -0,0 +1,97 @@ + +<!-- Simple search part --> +<div class="row"> + <div class="form-group col-md-5"> + <a href="#/users/new" class="form-inline navbar-left btn btn-primary" ng-if="currentUser.role == 'ADMIN'"> + {{ 'user.button.add' | translate }} + </a> + + <a href="#/users/new" class="form-inline navbar-left btn btn-primary" ng-if="currentUser.role == 'SUPERVISOR'"> + {{ 'user.button.add.client' | translate }} + </a> + </div> + + <form class="form-inline cold-md-7" name="userOptions" role="userOptions" ng-submit="searchUsers()" ng-if="!advanced"> + <div class="form-group"> + <input type="checkbox" class="form-control" ng-model="search.showDisable" /> + <span>{{ 'user.button.showDisable' | translate }}</span> + </div> + <div class="form-group"> + <input type="search" class="form-control" placeholder="Search an user" ng-model="search.searchKeyword" /> + </div> + <div class="form-group"> + <button type="submit" class="btn btn-default glyphicon glyphicon-search"></button> + </div> + </form> +</div> + +<div class="row"> + <div class="form-group col-md-5" ng-show="!advanced"> + <a ng-click="advanced=true" class="fa fa-sort-down">{{ 'common.button.advanceSearch' | translate }}</a> + </div> + <div class="form-group col-md-5" ng-show="advanced"> + <a ng-click="advanced=false" class="fa fa-sort-up">{{ 'common.button.simpleSearch' | translate }}</a> + </div> +</div> + +<!-- Advanced Search part --> + +<div ng-if="advanced" > + <form class="form-horizontal" name="userFullOption" role="userFullOptions" ng-submit="advancedSearchUsers()"> + + <div class="form-group row"> + + <label class="col-md-1 control-label">{{ 'user.metadata.name' | translate }}</label> + <div class="col-md-2"> + <input class="form-control" type="search" class="form-control" placeholder="Bond" ng-model="example.name" /> + </div> + + <label class="col-md-1 control-label">{{ 'user.metadata.firstName' | translate }}</label> + <div class="col-md-2"> + <input class="form-control" type="search" class="form-control" placeholder="James" ng-model="example.firstName" /> + </div> + + <label class="col-md-1 control-label">{{ 'user.metadata.mail' | translate }}</label> + <div class="col-md-2"> + <input class="form-control" type="search" class="form-control" placeholder="james.bond@mi6.org" ng-model="example.mail" /> + </div> + + <label class="col-md-1 control-label">{{ 'user.metadata.role' | translate }}</label> + <div class="col-md-2"> + <select class="form-control" name="role" ng-model="example.role" title="role" > + <option value="ALL">{{ 'user.metadata.role.all' | translate }}</option> + <option value="ADMIN">{{ 'user.metadata.role.admin' | translate }}</option> + <option value="SUPERVISOR">{{ 'user.metadata.role.supervisor' | translate }}</option> + <option value="EXPERT">{{ 'user.metadata.role.expert' | translate }}</option> + <option value="MEMBER">{{ 'user.metadata.role.member' | translate }}</option> + <option value="CLIENT">{{ 'user.metadata.role.client' | translate }}</option> + </select> + </div> + + </div> + + <div class="form-group row"> + + <label class="col-md-1 control-label">{{ 'user.metadata.organization' | translate }}</label> + <div class="col-md-2"> + <input class="form-control" type="search" class="form-control" placeholder="MI-6" ng-model="example.organization" /> + </div> + + <label class="col-md-1 control-label">{{ 'user.metadata.qualification' | translate }}</label> + <div class="col-md-2"> + <input class="form-control" type="search" class="form-control" placeholder="007" ng-model="example.qualification" /> + </div> + + <label class="col-md-1 control-label">{{ 'user.metadata.status' | translate }}</label> + <div class="col-md-2"> + <select class="form-control" name="active" ng-model="example.active" title="active" > + <option value="true">{{ 'user.metadata.status.enable' | translate }}</option> + <option value="false">{{ 'user.metadata.status.disable' | translate }}</option> + </select> + </div> + + <button type="submit" class="btn btn-default fa fa-search" ng-click="advancedSearchUsers()">Search</button> + + </div> + </form> +</div> \ No newline at end of file diff --git a/coselmar-ui/src/main/webapp/views/users/supervisorUsers.html b/coselmar-ui/src/main/webapp/views/users/supervisorUsers.html index 69834a3..3542ea7 100644 --- a/coselmar-ui/src/main/webapp/views/users/supervisorUsers.html +++ b/coselmar-ui/src/main/webapp/views/users/supervisorUsers.html @@ -23,69 +23,11 @@ --> <div class="table-responsive" ng-if="currentUser.role == 'SUPERVISOR'"> - <div class="row"> - <div class="form-group col-md-5"> - <a href="#/users/new" class="form-inline navbar-left btn btn-primary">{{ 'user.button.add.client' | translate }}</a> - </div> - <form class="form-inline cold-md-7" name="userOptions" role="userOptions" ng-submit="searchUsers()" ng-if="!advanced"> - <div class="form-group"> - <input type="checkbox" class="form-control" ng-model="search.showDisable" /> - <span>{{ 'user.button.showDisable' | translate }}</span> - </div> - <div class="form-group"> - <input type="search" class="form-control" placeholder="Search an user" ng-model="search.searchKeyword" /> - </div> - <div class="form-group"> - <button type="submit" class="btn btn-default glyphicon glyphicon-search"></button> - </div> - </form> - </div> - <div class="row"> - <div class="form-group col-md-5" ng-show="!advanced"> - <a ng-click="advanced=true" class="fa fa-sort-down">{{ 'common.button.advanceSearch' | translate }}</a> - </div> - <div class="form-group col-md-5" ng-show="advanced"> - <a ng-click="advanced=false" class="fa fa-sort-up">{{ 'common.button.simpleSearch' | translate }}</a> - </div> - </div> + + <div ng-include="src='views/users/searchPart.html'" /> <br/> <table class="table"> - <tr ng-if="advanced"> - <form class="form-inline" name="userFullOption" role="userFullOptions" ng-submit="advancedSearchUsers()"> - <td class="form-group"> - <input type="search" class="form-control" placeholder="Name" ng-model="example.name" /> - </td> - <td class="form-group"> - <input type="search" class="form-control" placeholder="Mail" ng-model="example.mail" /> - </td> - <td class="form-group"> - <input type="search" class="form-control" placeholder="Qualification" ng-model="example.qualification" /> - </td> - <td class="form-group"> - <input type="search" class="form-control" placeholder="Organization" ng-model="example.organization" /> - </td> - <td class="form-group"> - <select class="form-control" name="role" ng-model="example.role" title="role" > - <option value="ALL">{{ 'user.metadata.role.all' | translate }}</option> - <option value="ADMIN">{{ 'user.metadata.role.admin' | translate }}</option> - <option value="SUPERVISOR">{{ 'user.metadata.role.supervisor' | translate }}</option> - <option value="EXPERT">{{ 'user.metadata.role.expert' | translate }}</option> - <option value="MEMBER">{{ 'user.metadata.role.member' | translate }}</option> - <option value="CLIENT">{{ 'user.metadata.role.client' | translate }}</option> - </select> - </td> - <td class="form-group"> - <select class="form-control" name="active" ng-model="example.active" title="active" > - <option value="true">{{ 'user.metadata.status.enable' | translate }}</option> - <option value="false">{{ 'user.metadata.status.disable' | translate }}</option> - </select> - </td> - <td class="form-group text-center"> - <button type="submit" class="btn btn-default fa fa-search" ng-click="advancedSearchUsers()">Search</button> - </td> - </form> - </tr> <tr> <th class="col-md-2">{{ 'user.metadata.name' | translate }}</th> <th class="col-md-2">{{ 'user.metadata.mail' | translate }}</th> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.