├── .gitattributes ├── .gitignore ├── travis ├── configstore │ ├── insight-yo.json │ └── insight-generator-jhipster.json ├── scripts │ ├── 03-generate-audit.sh │ ├── 04-tests.sh │ ├── 01-generate-project.sh │ ├── 05-run.sh │ └── 02-generate-entities.sh ├── install │ ├── 03-checkVersion.sh │ ├── 04-cache.sh │ └── 02-install-jhipster-stack.sh └── samples │ ├── .jhipster │ ├── EntityWithDTO.json │ ├── EntityWithPagination.json │ ├── EntityWithServiceImpl.json │ ├── EntityWithServiceClass.json │ ├── EntityWithPaginationAndDTO.json │ ├── EntityWithServiceClassAndDTO.json │ ├── EntityWithServiceImplAndDTO.json │ ├── EntityWithServiceClassAndPagination.json │ ├── EntityWithServiceImplAndPagination.json │ ├── EntityWithServiceImplPaginationAndDTO.json │ ├── EntityWithServiceClassPaginationAndDTO.json │ ├── Label.json │ ├── Operation.json │ ├── TestPager.json │ ├── TestMapstruct.json │ ├── TestPagination.json │ ├── TestServiceImpl.json │ ├── TestServiceClass.json │ ├── TestInfiniteScroll.json │ ├── TestManyToOne.json │ ├── TestEntity.json │ ├── TestCustomTableName.json │ ├── TestManyToMany.json │ ├── BankAccount.json │ ├── TestOneToOne.json │ ├── FieldTestEntity.json │ ├── FieldTestPagerEntity.json │ ├── FieldTestMapstructEntity.json │ ├── FieldTestPaginationEntity.json │ ├── FieldTestServiceClassEntity.json │ ├── FieldTestServiceImplEntity.json │ └── FieldTestInfiniteScrollEntity.json │ ├── app-psql-es-noi18n │ └── .yo-rc.json │ ├── app-gateway │ └── .yo-rc.json │ ├── app-mysql │ └── .yo-rc.json │ ├── app-default-from-scratch │ └── .yo-rc.json │ └── app-gradle │ └── .yo-rc.json ├── doc ├── new.png └── old.png ├── .editorconfig ├── generators └── app │ ├── templates │ └── src │ │ └── main │ │ └── webapp │ │ └── app │ │ ├── entities │ │ ├── tpl │ │ │ ├── _entity-header-template.ejs │ │ │ └── _entity-box-header-template.ejs │ │ ├── _entity-management-template.ejs │ │ ├── _entity-management.controller.ejs │ │ ├── _entity-management.ejs │ │ ├── no-pagination-template.ejs │ │ ├── pagination-template.ejs │ │ └── infinite-scroll-template.ejs │ │ └── components │ │ └── udt │ │ └── _gui.service.js │ └── index.js ├── LICENSE ├── package.json ├── .travis.yml ├── README.md ├── .eslintrc └── gulpfile.js /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | npm-debug.log 4 | .idea/ 5 | -------------------------------------------------------------------------------- /travis/configstore/insight-yo.json: -------------------------------------------------------------------------------- 1 | { 2 | "clientId": 495049364328, 3 | "optOut": true 4 | } 5 | -------------------------------------------------------------------------------- /doc/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hermeslm/generator-jhipster-angular-datatables/HEAD/doc/new.png -------------------------------------------------------------------------------- /doc/old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hermeslm/generator-jhipster-angular-datatables/HEAD/doc/old.png -------------------------------------------------------------------------------- /travis/configstore/insight-generator-jhipster.json: -------------------------------------------------------------------------------- 1 | { 2 | "clientId": 495049364328, 3 | "optOut": true 4 | } 5 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/tpl/_entity-header-template.ejs: -------------------------------------------------------------------------------- 1 |
2 |

<%_ if (useTemplate) { _%>{{vm.title}}<%_ }else{_%><%= entityClassPluralHumanized %><%_ }_%>

3 | 4 |
5 | -------------------------------------------------------------------------------- /travis/scripts/03-generate-audit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #------------------------------------------------------------------------------- 4 | # Generate the default audit behaviour 5 | #------------------------------------------------------------------------------- 6 | cd "$HOME"/app 7 | yo jhipster-angular-datatables default --force --no-insight 8 | -------------------------------------------------------------------------------- /travis/scripts/04-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #-------------------------------------------------- 4 | # Launch tests 5 | #-------------------------------------------------- 6 | cd "$HOME"/app 7 | if [ -f "mvnw" ]; then 8 | ./mvnw test 9 | elif [ -f "gradlew" ]; then 10 | ./gradlew test 11 | fi 12 | if [ -f "gulpfile.js" ]; then 13 | gulp test --no-notification 14 | fi 15 | -------------------------------------------------------------------------------- /travis/install/03-checkVersion.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #------------------------------------------------------------------------------- 4 | # Check all versions 5 | #------------------------------------------------------------------------------- 6 | java -version 7 | git --version 8 | node -v 9 | npm -v 10 | bower -v 11 | yo --version 12 | gulp -v 13 | docker version 14 | docker-compose version 15 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithDTO.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123735", 11 | "entityTableName": "entity_with_dto", 12 | "dto": "mapstruct", 13 | "pagination": "no", 14 | "service": "no" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithPagination.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123738", 11 | "entityTableName": "entity_with_pagination", 12 | "dto": "no", 13 | "pagination": "pagination", 14 | "service": "no" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceImpl.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123737", 11 | "entityTableName": "entity_with_service_impl", 12 | "dto": "no", 13 | "pagination": "no", 14 | "service": "serviceImpl" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceClass.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123736", 11 | "entityTableName": "entity_with_service_class", 12 | "dto": "no", 13 | "pagination": "no", 14 | "service": "serviceClass" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithPaginationAndDTO.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123743", 11 | "entityTableName": "entity_with_pagination_and_dto", 12 | "dto": "mapstruct", 13 | "pagination": "pagination", 14 | "service": "no" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceClassAndDTO.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123741", 11 | "entityTableName": "entity_with_service_class_and_dto", 12 | "dto": "mapstruct", 13 | "pagination": "no", 14 | "service": "serviceClass" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceImplAndDTO.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123742", 11 | "entityTableName": "entity_with_service_impl_and_dto", 12 | "dto": "mapstruct", 13 | "pagination": "no", 14 | "service": "serviceImpl" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceClassAndPagination.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123739", 11 | "entityTableName": "entity_with_service_class_and_pagination", 12 | "dto": "no", 13 | "pagination": "pagination", 14 | "service": "serviceClass" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceImplAndPagination.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123740", 11 | "entityTableName": "entity_with_service_impl_and_pagination", 12 | "dto": "no", 13 | "pagination": "pagination", 14 | "service": "serviceImpl" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceImplPaginationAndDTO.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123745", 11 | "entityTableName": "entity_with_service_impl_pagination_and_dto", 12 | "dto": "mapstruct", 13 | "pagination": "pagination", 14 | "service": "serviceImpl" 15 | } 16 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/EntityWithServiceClassPaginationAndDTO.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "name", 7 | "fieldType": "String" 8 | } 9 | ], 10 | "changelogDate": "20160806123744", 11 | "entityTableName": "entity_with_service_class_pagination_and_dto", 12 | "dto": "mapstruct", 13 | "pagination": "pagination", 14 | "service": "serviceClass" 15 | } 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Licensed under the Apache License, Version 2.0 (the "License"); 2 | you may not use this file except in compliance with the License. 3 | You may obtain a copy of the License at 4 | 5 | http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software 8 | distributed under the License is distributed on an "AS IS" BASIS, 9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | See the License for the specific language governing permissions and 11 | limitations under the License. 12 | -------------------------------------------------------------------------------- /travis/install/04-cache.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #------------------------------------------------------------------------------- 4 | # Check the cache from Travis 5 | #------------------------------------------------------------------------------- 6 | if [ ! -f "$HOME"/.m2/cache.txt ]; then 7 | echo "No cache.txt, generate one for the next time" 8 | echo "[$(date)] $JHIPSTER" > "$HOME"/.m2/cache.txt 9 | else 10 | echo "Found cache.txt" 11 | cat "$HOME"/.m2/cache.txt 12 | fi 13 | 14 | # no cache for first build 15 | if [ "$JHIPSTER_NODE_CACHE" == 0 ]; then 16 | rm -Rf $HOME/app/node_modules 17 | rm -Rf $HOME/app/node 18 | fi 19 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/_entity-management-template.ejs: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | 7 |
8 | 11 |
12 |
13 |
14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /travis/scripts/01-generate-project.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #------------------------------------------------------------------------------- 4 | # Force no insight 5 | #------------------------------------------------------------------------------- 6 | mkdir -p "$HOME"/.config/configstore/ 7 | mv "$JHIPSTER_TRAVIS"/configstore/*.json "$HOME"/.config/configstore/ 8 | 9 | #------------------------------------------------------------------------------- 10 | # Generate the project with yo jhipster 11 | #------------------------------------------------------------------------------- 12 | mkdir -p "$HOME"/app 13 | mv -f "$JHIPSTER_SAMPLES"/"$JHIPSTER"/.yo-rc.json "$HOME"/app/ 14 | cd "$HOME"/app 15 | yo jhipster --force --no-insight 16 | ls -al "$HOME"/app 17 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/Label.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "operation", 6 | "otherEntityName": "operation", 7 | "relationshipType": "many-to-many", 8 | "ownerSide": false, 9 | "otherEntityRelationshipName": "label" 10 | } 11 | ], 12 | "fields": [ 13 | { 14 | "fieldName": "label", 15 | "fieldType": "String", 16 | "fieldValidateRules": [ 17 | "required", 18 | "minlength" 19 | ], 20 | "fieldValidateRulesMinlength": "3" 21 | } 22 | ], 23 | "changelogDate": "20150805124936", 24 | "dto": "no", 25 | "pagination": "pagination", 26 | "service": "serviceClass" 27 | } 28 | -------------------------------------------------------------------------------- /travis/install/02-install-jhipster-stack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #------------------------------------------------------------------------------- 4 | # Update npm 5 | #------------------------------------------------------------------------------- 6 | npm install -g npm 7 | #------------------------------------------------------------------------------- 8 | # Install yeoman, bower and gulp 9 | #------------------------------------------------------------------------------- 10 | npm install -g yo 11 | npm install -g bower 12 | npm install -g gulp-cli 13 | npm install -g generator-jhipster 14 | #------------------------------------------------------------------------------- 15 | # Install the latest version of JHipster 16 | #------------------------------------------------------------------------------- 17 | cd "$TRAVIS_BUILD_DIR"/ 18 | npm install 19 | npm link 20 | -------------------------------------------------------------------------------- /travis/samples/app-psql-es-noi18n/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-jhipster": { 3 | "applicationType": "monolith", 4 | "baseName": "travisPsqlEsNoi18n", 5 | "packageName": "com.mycompany.myapp", 6 | "packageFolder": "com/mycompany/myapp", 7 | "authenticationType": "session", 8 | "hibernateCache": "ehcache", 9 | "clusteredHttpSession": "no", 10 | "websocket": "no", 11 | "databaseType": "sql", 12 | "devDatabaseType": "postgresql", 13 | "prodDatabaseType": "postgresql", 14 | "searchEngine": "elasticsearch", 15 | "useSass": true, 16 | "buildTool": "maven", 17 | "enableTranslation": false, 18 | "enableSocialSignIn": false, 19 | "rememberMeKey": "f19f0827c622eb9b81f5227a869ccd44932d78eb", 20 | "testFrameworks": [ 21 | "gatling", 22 | "protractor" 23 | ], 24 | "serverPort": "8080", 25 | "jhiPrefix": "jhi", 26 | "travis": true 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /travis/samples/app-gateway/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-jhipster": { 3 | "applicationType": "gateway", 4 | "baseName": "travisDefault", 5 | "packageName": "io.github.jhipster.travis", 6 | "packageFolder": "io/github/jhipster/travis", 7 | "authenticationType": "jwt", 8 | "hibernateCache": "ehcache", 9 | "clusteredHttpSession": "no", 10 | "websocket": "no", 11 | "databaseType": "sql", 12 | "devDatabaseType": "h2Disk", 13 | "prodDatabaseType": "mysql", 14 | "searchEngine": "no", 15 | "useSass": false, 16 | "buildTool": "maven", 17 | "enableTranslation": true, 18 | "nativeLanguage": "en", 19 | "languages": ["en", "fr"], 20 | "enableSocialSignIn": false, 21 | "rememberMeKey": "f19f0827c622eb9b81f5227a869ccd44932d78eb", 22 | "testFrameworks": [ 23 | "gatling" 24 | ], 25 | "serverPort": "8080", 26 | "jhiPrefix": "jhi", 27 | "travis": true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /travis/samples/app-mysql/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-jhipster": { 3 | "applicationType": "monolith", 4 | "baseName": "travisMysql", 5 | "packageName": "io.github.jhipster.travis", 6 | "packageFolder": "io/github/jhipster/travis", 7 | "authenticationType": "session", 8 | "hibernateCache": "ehcache", 9 | "clusteredHttpSession": "no", 10 | "websocket": "no", 11 | "databaseType": "sql", 12 | "devDatabaseType": "mysql", 13 | "prodDatabaseType": "mysql", 14 | "searchEngine": "no", 15 | "useSass": false, 16 | "buildTool": "maven", 17 | "enableTranslation": true, 18 | "nativeLanguage": "en", 19 | "languages": ["en", "fr"], 20 | "enableSocialSignIn": false, 21 | "rememberMeKey": "f19f0827c622eb9b81f5227a869ccd44932d78eb", 22 | "testFrameworks": [ 23 | "gatling", 24 | "protractor" 25 | ], 26 | "serverPort": "8080", 27 | "jhiPrefix": "jhi", 28 | "travis": true 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /travis/samples/app-default-from-scratch/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-jhipster": { 3 | "applicationType": "monolith", 4 | "baseName": "jhipsterSampleApplication", 5 | "packageName": "io.github.jhipster.sample", 6 | "packageFolder": "io/github/jhipster/sample", 7 | "authenticationType": "session", 8 | "hibernateCache": "ehcache", 9 | "clusteredHttpSession": "no", 10 | "websocket": "no", 11 | "databaseType": "sql", 12 | "devDatabaseType": "h2Disk", 13 | "prodDatabaseType": "mysql", 14 | "searchEngine": "no", 15 | "useSass": false, 16 | "buildTool": "maven", 17 | "enableTranslation": true, 18 | "nativeLanguage": "en", 19 | "languages": ["en", "fr"], 20 | "enableSocialSignIn": false, 21 | "rememberMeKey": "f19f0827c622eb9b81f5227a869ccd44932d78eb", 22 | "testFrameworks": [ 23 | "gatling" 24 | ], 25 | "serverPort": "8080", 26 | "jhiPrefix": "jhi", 27 | "travis": true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /travis/samples/app-gradle/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-jhipster": { 3 | "applicationType": "monolith", 4 | "baseName": "travisGradle", 5 | "packageName": "io.github.jhipster.travis", 6 | "packageFolder": "io/github/jhipster/travis", 7 | "authenticationType": "session", 8 | "hibernateCache": "ehcache", 9 | "clusteredHttpSession": "no", 10 | "websocket": "no", 11 | "databaseType": "sql", 12 | "devDatabaseType": "h2Disk", 13 | "prodDatabaseType": "mysql", 14 | "searchEngine": "no", 15 | "useSass": false, 16 | "buildTool": "gradle", 17 | "enableTranslation": true, 18 | "nativeLanguage": "en", 19 | "languages": ["en", "fr"], 20 | "enableSocialSignIn": false, 21 | "rememberMeKey": "f19f0827c622eb9b81f5227a869ccd44932d78eb", 22 | "testFrameworks": [ 23 | "gatling", 24 | "protractor" 25 | ], 26 | "serverPort": "8080", 27 | "jhiPrefix": "jhi", 28 | "travis": true 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/tpl/_entity-box-header-template.ejs: -------------------------------------------------------------------------------- 1 | <%_ var keyPrefix = angularAppName + '.'+ entityTranslationKey + '.'; _%> 2 |
3 | 8 | 17 |
18 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/Operation.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "bankAccount", 6 | "otherEntityName": "bankAccount", 7 | "relationshipType": "many-to-one", 8 | "otherEntityField": "name" 9 | }, 10 | { 11 | "relationshipName": "label", 12 | "otherEntityName": "label", 13 | "relationshipType": "many-to-many", 14 | "otherEntityField": "label", 15 | "ownerSide": true, 16 | "otherEntityRelationshipName": "operation" 17 | } 18 | ], 19 | "fields": [ 20 | { 21 | "fieldName": "date", 22 | "fieldType": "ZonedDateTime", 23 | "fieldValidateRules": [ 24 | "required" 25 | ] 26 | }, 27 | { 28 | "fieldName": "description", 29 | "fieldType": "String" 30 | }, 31 | { 32 | "fieldName": "amount", 33 | "fieldType": "BigDecimal", 34 | "fieldValidateRules": [ 35 | "required" 36 | ] 37 | } 38 | ], 39 | "changelogDate": "20150805125054", 40 | "dto": "no", 41 | "service": "no", 42 | "pagination": "infinite-scroll" 43 | } 44 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "generator-jhipster-angular-datatables", 3 | "version": "1.3.11", 4 | "description": "JHipster module to change default grid with Angular DataTables", 5 | "homepage": "https://github.com/hermeslm/generator-jhipster-angular-datatables", 6 | "author": { 7 | "name": "Hermes Lorenzo", 8 | "email": "hermeslm@gmail.com", 9 | "url": "https://www.linkedin.com/in/hermeslm" 10 | }, 11 | "files": [ 12 | "generators/app" 13 | ], 14 | "main": "generators/app/index.js", 15 | "keywords": [ 16 | "yeoman-generator", 17 | "jhipster-module", 18 | "Jhipster", 19 | "Entity", 20 | "Angular", 21 | "DataTables", 22 | "angular-datatables" 23 | ], 24 | "dependencies": { 25 | "chalk": "1.1.1", 26 | "generator-jhipster": "^3.6.0", 27 | "glob": "^7.0.3", 28 | "semver": "5.1.0", 29 | "yeoman-generator": "^0.22.5" 30 | }, 31 | "devDependencies": { 32 | "gulp": "^3.9.0", 33 | "gulp-bump": "2.0.1", 34 | "gulp-eslint": "2.0.0", 35 | "gulp-exclude-gitignore": "1.0.0", 36 | "gulp-git": "1.7.0", 37 | "gulp-istanbul": "0.10.3", 38 | "gulp-mocha": "2.2.0", 39 | "gulp-nsp": "2.3.1", 40 | "gulp-plumber": "1.1.0", 41 | "gulp-rename": "^1.2.0", 42 | "gulp-sequence": "0.4.5", 43 | "gulp-shell": "^0.5.1", 44 | "yeoman-assert": "2.1.1" 45 | }, 46 | "repository": { 47 | "type": "git", 48 | "url": "git+https://github.com/hermeslm/generator-jhipster-angular-datatables" 49 | }, 50 | "license": "Apache-2.0", 51 | "bugs": { 52 | "url": "https://github.com/hermeslm/generator-jhipster-angular-datatables/issues" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | os: 2 | - linux 3 | services: 4 | - docker 5 | language: node_js 6 | node_js: 7 | - "4.5.0" 8 | jdk: 9 | - oraclejdk8 10 | cache: 11 | directories: 12 | - node_modules 13 | - $HOME/.m2 14 | - $HOME/.gradle 15 | - $HOME/app/node_modules 16 | - $HOME/app/node 17 | env: 18 | global: 19 | - PROFILE=dev 20 | - RUN_APP=1 21 | - PROTRACTOR=0 22 | - JHIPSTER_TRAVIS=$TRAVIS_BUILD_DIR/travis 23 | - JHIPSTER_INSTALL=$JHIPSTER_TRAVIS/install 24 | - JHIPSTER_SAMPLES=$JHIPSTER_TRAVIS/samples 25 | - JHIPSTER_SCRIPTS=$JHIPSTER_TRAVIS/scripts 26 | matrix: 27 | - JHIPSTER=app-default-from-scratch JHIPSTER_NODE_CACHE=0 PROFILE=prod RUN_APP=0 28 | - JHIPSTER=app-gradle PROTRACTOR=1 29 | - JHIPSTER=app-mysql PROFILE=prod PROTRACTOR=1 30 | - JHIPSTER=app-psql-es-noi18n PROFILE=prod PROTRACTOR=1 31 | - JHIPSTER=app-gateway 32 | before_install: 33 | - sudo /etc/init.d/postgresql stop 34 | - export DISPLAY=:99.0 35 | - sh -e /etc/init.d/xvfb start 36 | - chmod +x $JHIPSTER_INSTALL/02-install-jhipster-stack.sh 37 | - chmod +x $JHIPSTER_INSTALL/03-checkVersion.sh 38 | - chmod +x $JHIPSTER_INSTALL/04-cache.sh 39 | install: 40 | - $JHIPSTER_INSTALL/02-install-jhipster-stack.sh 41 | - $JHIPSTER_INSTALL/03-checkVersion.sh 42 | - $JHIPSTER_INSTALL/04-cache.sh 43 | before_script: 44 | - chmod +x $JHIPSTER_SCRIPTS/01-generate-project.sh 45 | - chmod +x $JHIPSTER_SCRIPTS/02-generate-entities.sh 46 | - chmod +x $JHIPSTER_SCRIPTS/03-generate-audit.sh 47 | - chmod +x $JHIPSTER_SCRIPTS/04-tests.sh 48 | - chmod +x $JHIPSTER_SCRIPTS/05-run.sh 49 | script: 50 | - $JHIPSTER_SCRIPTS/01-generate-project.sh 51 | - $JHIPSTER_SCRIPTS/02-generate-entities.sh 52 | - $JHIPSTER_SCRIPTS/03-generate-audit.sh 53 | - $JHIPSTER_SCRIPTS/04-tests.sh 54 | - $JHIPSTER_SCRIPTS/05-run.sh 55 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestPager.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testPager" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testPager" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testPager" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | } 45 | ], 46 | "fields": [], 47 | "changelogDate": "20160208210109", 48 | "dto": "no", 49 | "service": "no", 50 | "pagination": "pager" 51 | } 52 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestMapstruct.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testMapstruct" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testMapstruct" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testMapstruct" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | } 45 | ], 46 | "fields": [], 47 | "changelogDate": "20160208210109", 48 | "dto": "mapstruct", 49 | "service": "no", 50 | "pagination": "no" 51 | } 52 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestPagination.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testPagination" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testPagination" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testPagination" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | } 45 | ], 46 | "fields": [], 47 | "changelogDate": "20160208210109", 48 | "dto": "no", 49 | "service": "no", 50 | "pagination": "pagination" 51 | } 52 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestServiceImpl.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testServiceImpl" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testServiceImpl" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testServiceImpl" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | } 45 | ], 46 | "fields": [], 47 | "changelogDate": "20160208210109", 48 | "dto": "no", 49 | "service": "serviceImpl", 50 | "pagination": "no" 51 | } 52 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestServiceClass.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testServiceClass" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testServiceClass" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testServiceClass" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | } 45 | ], 46 | "fields": [], 47 | "changelogDate": "20160208210109", 48 | "dto": "no", 49 | "service": "serviceClass", 50 | "pagination": "no" 51 | } 52 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestInfiniteScroll.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testInfiniteScroll" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testInfiniteScroll" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testInfiniteScroll" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | } 45 | ], 46 | "fields": [], 47 | "changelogDate": "20160208210109", 48 | "dto": "no", 49 | "service": "no", 50 | "pagination": "infinite-scroll" 51 | } 52 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/_entity-management.controller.ejs: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | angular 5 | .module('<%=angularAppName%>') 6 | .controller('<%= entityAngularJSName %>Controller', <%= entityAngularJSName %>Controller); 7 | 8 | <%= entityAngularJSName %>Controller.$inject = ['$scope', '$state'<% if (fieldsContainBlob) { %>, 'DataUtils'<% } %>, '<%= entityClass %>'<% if (searchEngine == 'elasticsearch') { %>, '<%= entityClass %>Search'<% } %><% if (pagination != 'no') { %>, 'ParseLinks', 'AlertService', 'paginationConstants'<% } %> <%_ if (pagination == 'pager' || pagination == 'pagination'){ %>, 'pagingParams'<% } %>, '$q', 'DTColumnBuilder' , 'DTOptionsBuilder', 'GUIUtils', '$filter', '$compile']; 9 | 10 | function <%= entityAngularJSName %>Controller ($scope, $state<% if (fieldsContainBlob) { %>, DataUtils<% } %>, <%= entityClass %><% if (searchEngine == 'elasticsearch') { %>, <%= entityClass %>Search<% } %><% if (pagination != 'no') { %>, ParseLinks, AlertService, paginationConstants<% } %> <%_ if (pagination == 'pager' || pagination == 'pagination'){ %>, pagingParams<% } %>, $q, DTColumnBuilder, DTOptionsBuilder, GUIUtils, $filter, $compile ) { 11 | var vm = this; 12 | <%_ if (useTemplate) { _%> 13 | vm.title = '<%= entityClassPluralHumanized %>'; 14 | vm.entityClassHumanized = '<%= entityClassHumanized %>'; 15 | vm.entityStateName = '<%= entityStateName %>'; 16 | <% if (enableTranslation) { %> 17 | vm.searchPlaceHolder = '<%=angularAppName%>.<%= entityInstance %>.home.search'; 18 | <% } %> 19 | <%_ }_%> 20 | <%_ if (pagination == 'pagination' || pagination == 'pager') { _%> 21 | <%- include('pagination-template'); -%> 22 | <%_ } else if (pagination == 'infinite-scroll') { _%> 23 | <%- include('infinite-scroll-template'); -%> 24 | <%_ } else { _%> 25 | <%- include('no-pagination-template'); -%> 26 | <%_ } _%> 27 | 28 | } 29 | })(); 30 | -------------------------------------------------------------------------------- /travis/scripts/05-run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #------------------------------------------------------------------------------- 4 | # Functions 5 | #------------------------------------------------------------------------------- 6 | launchProtractor() { 7 | retryCount=1 8 | maxRetry=10 9 | httpUrl="http://localhost:8080" 10 | 11 | rep=$(curl -v "$httpUrl") 12 | status=$? 13 | while [ "$status" -ne 0 ] && [ "$retryCount" -le "$maxRetry" ]; do 14 | echo "[$(date)] Application not reachable yet. Sleep and retry - retryCount =" $retryCount "/" $maxRetry 15 | retryCount=$((retryCount+1)) 16 | sleep 10 17 | rep=$(curl -v "$httpUrl") 18 | status=$? 19 | done 20 | 21 | if [ "$status" -ne 0 ]; then 22 | echo "[$(date)] Not connected after" $retryCount " retries. Abort protractor tests." 23 | exit 0 24 | fi 25 | 26 | echo "[$(date)] Connected to application. Start protractor tests." 27 | gulp itest --no-notification 28 | } 29 | 30 | #------------------------------------------------------------------------------- 31 | # Start the application 32 | #------------------------------------------------------------------------------- 33 | cd "$HOME"/app 34 | 35 | if [ -f "mvnw" ]; then 36 | ./mvnw package -DskipTests=true -P"$PROFILE" 37 | mv target/*.war app.war 38 | elif [ -f "gradlew" ]; then 39 | ./gradlew bootRepackage -P"$PROFILE" -x test 40 | mv build/libs/*.war app.war 41 | else 42 | echo "No mvnw or gradlew" 43 | exit 0 44 | fi 45 | if [ $? -ne 0 ]; then 46 | echo "Error when packaging" 47 | exit 1 48 | fi 49 | 50 | if [ "$RUN_APP" == 1 ]; then 51 | java -jar app.war --spring.profiles.active="$PROFILE" & 52 | sleep 20 53 | #------------------------------------------------------------------------------- 54 | # Launch protractor tests 55 | #------------------------------------------------------------------------------- 56 | if [ "$PROTRACTOR" == 1 ]; then 57 | launchProtractor 58 | fi 59 | fi 60 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestManyToOne.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testEntity", 6 | "otherEntityName": "testEntity", 7 | "relationshipType": "many-to-one", 8 | "otherEntityField": "id" 9 | }, 10 | { 11 | "relationshipName": "testMapstruct", 12 | "otherEntityName": "testMapstruct", 13 | "relationshipType": "many-to-one", 14 | "otherEntityField": "id" 15 | }, 16 | { 17 | "relationshipName": "testServiceClass", 18 | "otherEntityName": "testServiceClass", 19 | "relationshipType": "many-to-one", 20 | "otherEntityField": "id" 21 | }, 22 | { 23 | "relationshipName": "testServiceImpl", 24 | "otherEntityName": "testServiceImpl", 25 | "relationshipType": "many-to-one", 26 | "otherEntityField": "id" 27 | }, 28 | { 29 | "relationshipName": "testInfiniteScroll", 30 | "otherEntityName": "testInfiniteScroll", 31 | "relationshipType": "many-to-one", 32 | "otherEntityField": "id" 33 | }, 34 | { 35 | "relationshipName": "testPager", 36 | "otherEntityName": "testPager", 37 | "relationshipType": "many-to-one", 38 | "otherEntityField": "id" 39 | }, 40 | { 41 | "relationshipName": "testPagination", 42 | "otherEntityName": "testPagination", 43 | "relationshipType": "many-to-one", 44 | "otherEntityField": "id" 45 | }, 46 | { 47 | "relationshipName": "testCustomTableName", 48 | "otherEntityName": "testCustomTableName", 49 | "relationshipType": "many-to-one", 50 | "otherEntityField": "id" 51 | } 52 | ], 53 | "fields": [], 54 | "changelogDate": "20160208211440", 55 | "dto": "no", 56 | "service": "no", 57 | "pagination": "no" 58 | } 59 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testEntity" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testEntity" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testEntity" 23 | }, 24 | { 25 | "relationshipName": "userOneToMany", 26 | "otherEntityName": "user", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "login" 29 | }, 30 | { 31 | "relationshipName": "userManyToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-many", 34 | "otherEntityField": "login", 35 | "ownerSide": true 36 | }, 37 | { 38 | "relationshipName": "userOneToOne", 39 | "otherEntityName": "user", 40 | "relationshipType": "one-to-one", 41 | "otherEntityField": "login", 42 | "ownerSide": true, 43 | "otherEntityRelationshipName": "parent" 44 | }, 45 | { 46 | "relationshipName": "testCustomTableName", 47 | "otherEntityName": "testCustomTableName", 48 | "relationshipType": "one-to-many", 49 | "otherEntityRelationshipName": "testEntity" 50 | } 51 | ], 52 | "fields": [], 53 | "changelogDate": "20160208210109", 54 | "dto": "no", 55 | "service": "no", 56 | "pagination": "no" 57 | } 58 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestCustomTableName.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testManyToOne", 6 | "otherEntityName": "testManyToOne", 7 | "relationshipType": "one-to-many", 8 | "otherEntityRelationshipName": "testCustomTableName" 9 | }, 10 | { 11 | "relationshipName": "testManyToMany", 12 | "otherEntityName": "testManyToMany", 13 | "relationshipType": "many-to-many", 14 | "ownerSide": false, 15 | "otherEntityRelationshipName": "testCustomTableName" 16 | }, 17 | { 18 | "relationshipName": "testOneToOne", 19 | "otherEntityName": "testOneToOne", 20 | "relationshipType": "one-to-one", 21 | "ownerSide": false, 22 | "otherEntityRelationshipName": "testCustomTableName" 23 | }, 24 | { 25 | "relationshipName": "testEntity", 26 | "otherEntityName": "testEntity", 27 | "relationshipType": "many-to-one", 28 | "otherEntityField": "id" 29 | }, 30 | { 31 | "relationshipName": "userOneToMany", 32 | "otherEntityName": "user", 33 | "relationshipType": "many-to-one", 34 | "otherEntityField": "login" 35 | }, 36 | { 37 | "relationshipName": "userManyToMany", 38 | "otherEntityName": "user", 39 | "relationshipType": "many-to-many", 40 | "otherEntityField": "login", 41 | "ownerSide": true 42 | }, 43 | { 44 | "relationshipName": "userOneToOne", 45 | "otherEntityName": "user", 46 | "relationshipType": "one-to-one", 47 | "otherEntityField": "login", 48 | "ownerSide": true, 49 | "otherEntityRelationshipName": "parent" 50 | } 51 | ], 52 | "fields": [], 53 | "changelogDate": "20160208210109", 54 | "dto": "no", 55 | "service": "no", 56 | "entityTableName": "test_custom_table_name_entity", 57 | "pagination": "no" 58 | } 59 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/_entity-management.ejs: -------------------------------------------------------------------------------- 1 | <%_ var keyPrefix = angularAppName + '.'+ entityTranslationKey + '.'; _%> 2 |
3 |

<%= entityClassPluralHumanized %>

4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 15 |
16 |
17 |
18 |
19 | 21 | 22 | 25 | 26 | 27 | 30 | 31 |
32 |
33 |
34 |
35 |
36 | 39 |
40 |
41 |
42 |
43 |
44 |
45 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestManyToMany.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testEntity", 6 | "otherEntityName": "testEntity", 7 | "relationshipType": "many-to-many", 8 | "otherEntityField": "id", 9 | "ownerSide": true 10 | }, 11 | { 12 | "relationshipName": "testMapstruct", 13 | "otherEntityName": "testMapstruct", 14 | "relationshipType": "many-to-many", 15 | "otherEntityField": "id", 16 | "ownerSide": true 17 | }, 18 | { 19 | "relationshipName": "testServiceClass", 20 | "otherEntityName": "testServiceClass", 21 | "relationshipType": "many-to-many", 22 | "otherEntityField": "id", 23 | "ownerSide": true 24 | }, 25 | { 26 | "relationshipName": "testServiceImpl", 27 | "otherEntityName": "testServiceImpl", 28 | "relationshipType": "many-to-many", 29 | "otherEntityField": "id", 30 | "ownerSide": true 31 | }, 32 | { 33 | "relationshipName": "testInfiniteScroll", 34 | "otherEntityName": "testInfiniteScroll", 35 | "relationshipType": "many-to-many", 36 | "otherEntityField": "id", 37 | "ownerSide": true 38 | }, 39 | { 40 | "relationshipName": "testPager", 41 | "otherEntityName": "testPager", 42 | "relationshipType": "many-to-many", 43 | "otherEntityField": "id", 44 | "ownerSide": true 45 | }, 46 | { 47 | "relationshipName": "testPagination", 48 | "otherEntityName": "testPagination", 49 | "relationshipType": "many-to-many", 50 | "otherEntityField": "id", 51 | "ownerSide": true 52 | }, 53 | { 54 | "relationshipName": "testCustomTableName", 55 | "otherEntityName": "testCustomTableName", 56 | "relationshipType": "many-to-many", 57 | "otherEntityField": "id", 58 | "ownerSide": true 59 | } 60 | ], 61 | "fields": [], 62 | "changelogDate": "20160208210534", 63 | "dto": "no", 64 | "service": "no", 65 | "pagination": "no" 66 | } 67 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/BankAccount.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "user", 6 | "otherEntityName": "user", 7 | "relationshipType": "many-to-one", 8 | "otherEntityField": "login" 9 | }, 10 | { 11 | "relationshipName": "operation", 12 | "otherEntityName": "operation", 13 | "relationshipType": "one-to-many", 14 | "otherEntityRelationshipName": "bankAccount" 15 | } 16 | ], 17 | "fields": [ 18 | { 19 | "fieldName": "name", 20 | "fieldType": "String", 21 | "fieldValidateRules": [ 22 | "required" 23 | ] 24 | }, 25 | { 26 | "fieldName": "bankNumber", 27 | "fieldType": "Integer" 28 | }, 29 | { 30 | "fieldName": "agencyNumber", 31 | "fieldType": "Long" 32 | }, 33 | { 34 | "fieldName": "lastOperationDuration", 35 | "fieldType": "Float" 36 | }, 37 | { 38 | "fieldName": "meanOperationDuration", 39 | "fieldType": "Double" 40 | }, 41 | { 42 | "fieldName": "balance", 43 | "fieldType": "BigDecimal", 44 | "fieldValidateRules": [ 45 | "required" 46 | ] 47 | }, 48 | { 49 | "fieldName": "openingDay", 50 | "fieldType": "LocalDate" 51 | }, 52 | { 53 | "fieldName": "lastOperationDate", 54 | "fieldType": "ZonedDateTime" 55 | }, 56 | { 57 | "fieldName": "active", 58 | "fieldType": "Boolean" 59 | }, 60 | { 61 | "fieldName": "accountType", 62 | "fieldType": "BankAccountType", 63 | "fieldValues": "CHECKING,SAVINGS,LOAN" 64 | }, 65 | { 66 | "fieldName": "attachment", 67 | "fieldType": "byte[]", 68 | "fieldTypeBlobContent": "any" 69 | }, 70 | { 71 | "fieldName": "description", 72 | "fieldType": "byte[]", 73 | "fieldTypeBlobContent": "text" 74 | } 75 | ], 76 | "changelogDate": "20150805124838", 77 | "dto": "mapstruct", 78 | "pagination": "no", 79 | "service": "serviceImpl" 80 | } 81 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/no-pagination-template.ejs: -------------------------------------------------------------------------------- 1 | vm.<%= entityInstancePlural %> = []; 2 | <%_ if (fieldsContainBlob) { _%> 3 | vm.openFile = DataUtils.openFile; 4 | vm.byteSize = DataUtils.byteSize; 5 | <%_ } _%> 6 | <%_ if (searchEngine == 'elasticsearch') { _%> 7 | vm.search = search; 8 | vm.loadAll = loadAll; 9 | vm.dtInstance = {}; 10 | 11 | <%_ } _%> 12 | 13 | loadAll(); 14 | 15 | vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() { 16 | var defer = $q.defer(); 17 | if (!vm.searchQuery || vm.searchQuery == '') { 18 | <%= entityClass %>.query(function(result) { 19 | vm.<%= entityInstancePlural %> = result; 20 | defer.resolve(result); 21 | }); 22 | }else { 23 | defer.resolve($filter('filter')(vm.<%= entityInstancePlural %>, vm.searchQuery, undefined)); 24 | } 25 | return defer.promise; 26 | }).withPaginationType('full_numbers').withBootstrap().withDOM('tip')/*.withOption('scrollX', '100%')*/ 27 | .withOption('fnRowCallback', function (nRow, aData, iDisplayIndex, iDisplayIndexFull) { 28 | $compile(nRow)($scope); 29 | }); 30 | 31 | vm.dtColumns = [ 32 | <%_ 33 | for (idx in fields) { 34 | var fieldName = fields[idx].fieldName; 35 | var fieldNameCapitalized = fields[idx].fieldNameCapitalized; 36 | if(idx > 4){ 37 | _%> 38 | //DTColumnBuilder.newColumn('<%= fieldName %>').withTitle('<%= fieldNameCapitalized %>'), 39 | <%_ 40 | }else{ _%> 41 | DTColumnBuilder.newColumn('<%= fieldName %>').withTitle('<%= fieldNameCapitalized %>'), 42 | <%_ } 43 | } _%> 44 | DTColumnBuilder.newColumn(null).withTitle('Actions').withOption('width', '155px').notSortable() 45 | .renderWith(actionsHtml) 46 | ]; 47 | 48 | function loadAll() { 49 | <%= entityClass %>.query(function(result) { 50 | vm.<%= entityInstancePlural %> = result; 51 | vm.searchQuery = null; 52 | }); 53 | } 54 | 55 | function actionsHtml(data, type, full, meta){ 56 | return GUIUtils.getActionsTemplate(data, $state.current.name, ['all']); 57 | } 58 | 59 | function search() { 60 | vm.dtInstance.reloadData(); 61 | } 62 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/TestOneToOne.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [ 4 | { 5 | "relationshipName": "testEntity", 6 | "otherEntityName": "testEntity", 7 | "relationshipType": "one-to-one", 8 | "otherEntityField": "id", 9 | "ownerSide": true, 10 | "otherEntityRelationshipName": "testOneToOne" 11 | }, 12 | { 13 | "relationshipName": "testMapstruct", 14 | "otherEntityName": "testMapstruct", 15 | "relationshipType": "one-to-one", 16 | "otherEntityField": "id", 17 | "ownerSide": true, 18 | "otherEntityRelationshipName": "testOneToOne" 19 | }, 20 | { 21 | "relationshipName": "testServiceClass", 22 | "otherEntityName": "testServiceClass", 23 | "relationshipType": "one-to-one", 24 | "otherEntityField": "id", 25 | "ownerSide": true, 26 | "otherEntityRelationshipName": "testOneToOne" 27 | }, 28 | { 29 | "relationshipName": "testServiceImpl", 30 | "otherEntityName": "testServiceImpl", 31 | "relationshipType": "one-to-one", 32 | "otherEntityField": "id", 33 | "ownerSide": true, 34 | "otherEntityRelationshipName": "testOneToOne" 35 | }, 36 | { 37 | "relationshipName": "testInfiniteScroll", 38 | "otherEntityName": "testInfiniteScroll", 39 | "relationshipType": "one-to-one", 40 | "otherEntityField": "id", 41 | "ownerSide": true, 42 | "otherEntityRelationshipName": "testOneToOne" 43 | }, 44 | { 45 | "relationshipName": "testPager", 46 | "otherEntityName": "testPager", 47 | "relationshipType": "one-to-one", 48 | "otherEntityField": "id", 49 | "ownerSide": true, 50 | "otherEntityRelationshipName": "testOneToOne" 51 | }, 52 | { 53 | "relationshipName": "testPagination", 54 | "otherEntityName": "testPagination", 55 | "relationshipType": "one-to-one", 56 | "otherEntityField": "id", 57 | "ownerSide": true, 58 | "otherEntityRelationshipName": "testOneToOne" 59 | }, 60 | { 61 | "relationshipName": "testCustomTableName", 62 | "otherEntityName": "testCustomTableName", 63 | "relationshipType": "one-to-one", 64 | "otherEntityField": "id", 65 | "ownerSide": true, 66 | "otherEntityRelationshipName": "testOneToOne" 67 | } 68 | ], 69 | "fields": [], 70 | "changelogDate": "20160208211541", 71 | "dto": "no", 72 | "service": "no", 73 | "pagination": "no" 74 | } 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # generator-jhipster-angular-datatables 2 | > JHipster module to change default grid(table) for all or selected entities with angular-datatables. 3 | 4 | ## Usage 5 | 6 | This is a [JHipster](http://jhipster.github.io/) module, that is meant to be used in a JHipster application. 7 | 8 | You can choose to change default grid(table) for all or selected entities with [angular-datatables](https://l-lin.github.io/angular-datatables). 9 | 10 | ### Installation 11 | 12 | As this is a [JHipster](http://jhipster.github.io/) module, we expect you have [JHipster and its related tools already installed](http://jhipster.github.io/installation.html). 13 | 14 | This module requires Jhipster version greater than 3.0 in order to work, and I fixed errors for compatibility and tested with the new Jhipster v4.* but only valid for Angular1.x. 15 | 16 | ```bash 17 | npm install -g generator-jhipster-angular-datatables 18 | ``` 19 | 20 | Then run the module on a JHipster generated application: 21 | 22 | ```bash 23 | yo jhipster-angular-datatables 24 | ``` 25 | 26 | If you want don't want to answer each question you can use 27 | 28 | ```bash 29 | yo jhipster-angular-datatables default 30 | ``` 31 | 32 | ### Style 33 | 34 | All css class used in generator template are based in AdminLTE Template [AdminLTE]. 35 | 36 | ```bash 37 |
38 |
39 |
40 |
41 | ``` 42 | 43 | ## Example 44 | 45 | Old view ![Old view][old-image] 46 | 47 | New view ![New view][new-image] 48 | 49 | - Added functionality if count more than 5 fields will be commented. It add all fields but if fields count is more than 5 will be added as commented lines. 50 | - Added template functionality, you can choose if you want to use templates or a single html. 51 | 52 | 53 | ## Todo 54 | 55 | 1 - Resolve problems in entities with paging. 56 | 2 - Done. Actions buttons service used as dependency. 57 | 58 | 59 | ## License 60 | 61 | Apache-2.0 © [Hermes Lorenzo](https://www.linkedin.com/in/hermeslm) 62 | 63 | [npm-image]: https://badge.fury.io/js/generator-jhipster-entity-audit.svg 64 | [npm-url]: https://www.npmjs.com/package/generator-jhipster-angular-datatables 65 | [travis-image]: https://travis-ci.org/deepu105/generator-jhipster-entity-audit.svg?branch=master 66 | [project-url]: https://github.com/hermeslm/generator-jhipster-angular-datatables 67 | [project-build]: 1.3.0 68 | [daviddm-image]: https://david-dm.org/hipster-labs/generator-jhipster-entity-audit.svg?theme=shields.io 69 | [daviddm-url]: https://david-dm.org/hipster-labs/generator-jhipster-entity-audit 70 | [old-image]: https://github.com/hermeslm/generator-jhipster-angular-datatables/blob/master/doc/old.png?raw=true 71 | [new-image]: https://github.com/hermeslm/generator-jhipster-angular-datatables/blob/master/doc/new.png?raw=true 72 | [adminLTE]: https://almsaeedstudio.com/themes/AdminLTE/index.html 73 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "eslint:recommended", 3 | "env": { 4 | "node": true, 5 | "mocha": true 6 | }, 7 | "rules": { 8 | "array-bracket-spacing": [ 9 | 2, 10 | "never" 11 | ], 12 | "brace-style": [ 13 | 2, 14 | "1tbs" 15 | ], 16 | "consistent-return": 0, 17 | "indent": [ 18 | 2, 19 | 2 20 | ], 21 | "no-multiple-empty-lines": [ 22 | 2, 23 | { 24 | "max": 2 25 | } 26 | ], 27 | "no-use-before-define": [ 28 | 2, 29 | "nofunc" 30 | ], 31 | "one-var": [ 32 | 2, 33 | "never" 34 | ], 35 | "quote-props": [ 36 | 2, 37 | "as-needed" 38 | ], 39 | "quotes": [ 40 | 2, 41 | "single" 42 | ], 43 | "space-after-keywords": [ 44 | 2, 45 | "always" 46 | ], 47 | "space-before-function-paren": [ 48 | 2, 49 | { 50 | "anonymous": "always", 51 | "named": "never" 52 | } 53 | ], 54 | "space-in-parens": [ 55 | 2, 56 | "never" 57 | ], 58 | "strict": [ 59 | 2, 60 | "global" 61 | ], 62 | "curly": [ 63 | 2, 64 | "all" 65 | ], 66 | "eol-last": 2, 67 | "key-spacing": [ 68 | 2, 69 | { 70 | "beforeColon": false, 71 | "afterColon": true 72 | } 73 | ], 74 | "no-eval": 2, 75 | "no-with": 2, 76 | "space-infix-ops": 2, 77 | "dot-notation": [ 78 | 2, 79 | { 80 | "allowKeywords": true 81 | } 82 | ], 83 | "eqeqeq": 2, 84 | "no-alert": 2, 85 | "no-caller": 2, 86 | "no-empty-label": 2, 87 | "no-extend-native": 2, 88 | "no-extra-bind": 2, 89 | "no-implied-eval": 2, 90 | "no-iterator": 2, 91 | "no-label-var": 2, 92 | "no-labels": 2, 93 | "no-lone-blocks": 2, 94 | "no-loop-func": 2, 95 | "no-multi-spaces": 2, 96 | "no-multi-str": 2, 97 | "no-native-reassign": 2, 98 | "no-new": 2, 99 | "no-new-func": 2, 100 | "no-new-wrappers": 2, 101 | "no-octal-escape": 2, 102 | "no-proto": 2, 103 | "no-return-assign": 2, 104 | "no-script-url": 2, 105 | "no-sequences": 2, 106 | "no-unused-expressions": 2, 107 | "yoda": 2, 108 | "no-shadow": 2, 109 | "no-shadow-restricted-names": 2, 110 | "no-undef-init": 2, 111 | "camelcase": 2, 112 | "comma-spacing": 2, 113 | "new-cap": 2, 114 | "new-parens": 2, 115 | "no-array-constructor": 2, 116 | "no-extra-parens": 2, 117 | "no-new-object": 2, 118 | "no-spaced-func": 2, 119 | "no-trailing-spaces": 2, 120 | "no-underscore-dangle": 2, 121 | "semi": 2, 122 | "semi-spacing": [ 123 | 2, 124 | { 125 | "before": false, 126 | "after": true 127 | } 128 | ], 129 | "space-return-throw-case": 2 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | var gulp = require('gulp'); 5 | var bumper = require('gulp-bump'); 6 | var git = require('gulp-git'); 7 | var shell = require('gulp-shell'); 8 | var rename = require('gulp-rename'); 9 | var fs = require('fs'); 10 | var sequence = require('gulp-sequence'); 11 | var path = require('path'); 12 | var eslint = require('gulp-eslint'); 13 | var excludeGitignore = require('gulp-exclude-gitignore'); 14 | var mocha = require('gulp-mocha'); 15 | var istanbul = require('gulp-istanbul'); 16 | var nsp = require('gulp-nsp'); 17 | var plumber = require('gulp-plumber'); 18 | 19 | gulp.task('static', function () { 20 | return gulp.src('**/*.js') 21 | .pipe(excludeGitignore()) 22 | .pipe(eslint()) 23 | .pipe(eslint.format()) 24 | .pipe(eslint.failAfterError()); 25 | }); 26 | 27 | gulp.task('nsp', function (cb) { 28 | nsp({package: path.resolve('package.json')}, cb); 29 | }); 30 | 31 | gulp.task('pre-test', function () { 32 | return gulp.src('generators/**/*.js') 33 | .pipe(istanbul({ 34 | includeUntested: true 35 | })) 36 | .pipe(istanbul.hookRequire()); 37 | }); 38 | 39 | gulp.task('test', function (cb) { 40 | var mochaErr; 41 | 42 | gulp.src('test/**/*.js') 43 | .pipe(plumber()) 44 | .pipe(mocha({reporter: 'spec'})) 45 | .on('error', function (err) { 46 | mochaErr = err; 47 | }) 48 | .pipe(istanbul.writeReports()) 49 | .on('end', function () { 50 | cb(mochaErr); 51 | }); 52 | }); 53 | 54 | gulp.task('bump-patch', bump('patch')); 55 | gulp.task('bump-minor', bump('minor')); 56 | gulp.task('bump-major', bump('major')); 57 | 58 | gulp.task('git-commit', function() { 59 | var v = 'update to version ' + version(); 60 | gulp.src(['./generators/**/*','./README.md', './package.json', './gulpfile.js', './.travis.yml', './travis/**/*']) 61 | .pipe(git.add()) 62 | .pipe(git.commit(v)); 63 | }); 64 | 65 | gulp.task('git-push', function(cb) { 66 | var v = 'v' + version(); 67 | git.push('origin', 'master', function(err) { 68 | if (err) return cb(err); 69 | git.tag(v, v, function(err) { 70 | if (err) return cb(err); 71 | git.push('origin', 'master', { 72 | args: '--tags' 73 | }, cb); 74 | }); 75 | }); 76 | }); 77 | 78 | gulp.task('npm', shell.task([ 79 | 'npm publish' 80 | ])); 81 | 82 | function bump(level) { 83 | return function() { 84 | return gulp.src(['./package.json']) 85 | .pipe(bumper({ 86 | type: level 87 | })) 88 | .pipe(gulp.dest('./')); 89 | }; 90 | } 91 | 92 | function version() { 93 | return JSON.parse(fs.readFileSync('package.json', 'utf8')).version; 94 | } 95 | 96 | gulp.task('prepublish', ['nsp']); 97 | gulp.task('default', ['static', 'test']); 98 | gulp.task('deploy-patch', sequence('test', 'bump-patch', 'git-commit', 'git-push', 'npm')); 99 | gulp.task('deploy-minor', sequence('test', 'bump-minor', 'git-commit', 'git-push', 'npm')); 100 | gulp.task('deploy-major', sequence('test', 'bump-major', 'git-commit', 'git-push', 'npm')); 101 | 102 | })(); 103 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/components/udt/_gui.service.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | 4 | angular 5 | .module('udt', []) 6 | .factory('GUIUtils', GUIUtils); 7 | 8 | function GUIUtils () { 9 | 10 | var service = { 11 | getActionsTemplate: getActionsTemplate 12 | }; 13 | 14 | return service; 15 | 16 | /** 17 | * Return a Action Template for grid bootstrap based 18 | * @param data 19 | * @param entity 20 | * @param buttons 21 | * @returns {string} 22 | */ 23 | function getActionsTemplate (data, entity, buttons) { 24 | var stButtons = ''; 25 | for (var i = 0, len = buttons.length; i < len; i++) { 26 | switch(buttons[i]) { 27 | case 'view': { 28 | stButtons += '' + 29 | '  '; 30 | // stButtons += '' + 31 | // ' '; 32 | break; 33 | } 34 | case 'update': { 35 | // if (stButtons.length != 0) 36 | // stButtons += ' ' 37 | 38 | // stButtons += '' + 39 | // ' '; 40 | stButtons += '' + 41 | ''; 42 | break; 43 | } 44 | case 'delete': { 45 | if (stButtons.length != 0) 46 | stButtons += ' ' 47 | 48 | stButtons += '' + 49 | ''; 50 | // stButtons += '' + 51 | // ' '; 52 | break; 53 | } 54 | case 'all' : { 55 | stButtons += '' + 56 | '  '; 57 | stButtons += '' + 58 | '  '; 59 | stButtons += '' + 60 | ' '; 61 | } 62 | } 63 | } 64 | 65 | return stButtons; 66 | } 67 | } 68 | })(); 69 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/pagination-template.ejs: -------------------------------------------------------------------------------- 1 | vm.loadPage = loadPage; 2 | vm.predicate = pagingParams.predicate; 3 | vm.reverse = pagingParams.ascending; 4 | vm.transition = transition; 5 | vm.itemsPerPage = paginationConstants.itemsPerPage; 6 | <%_ if (searchEngine == 'elasticsearch') { _%> 7 | vm.clear = clear; 8 | vm.search = search; 9 | vm.loadAll = loadAll; 10 | vm.searchQuery = pagingParams.search; 11 | vm.currentSearch = pagingParams.search; 12 | <%_ } _%> 13 | <%_ if (fieldsContainBlob) { _%> 14 | vm.openFile = DataUtils.openFile; 15 | vm.byteSize = DataUtils.byteSize; 16 | <%_ } _%> 17 | 18 | loadAll(); 19 | 20 | function loadAll () { 21 | <%_ if (searchEngine != 'elasticsearch') { _%> 22 | <%= entityClass %>.query({ 23 | page: pagingParams.page - 1, 24 | size: vm.itemsPerPage, 25 | sort: sort() 26 | }, onSuccess, onError); 27 | <%_ } else { _%> 28 | if (pagingParams.search) { 29 | <%= entityClass %>Search.query({ 30 | query: pagingParams.search, 31 | page: pagingParams.page - 1, 32 | size: vm.itemsPerPage, 33 | sort: sort() 34 | }, onSuccess, onError); 35 | } else { 36 | <%= entityClass %>.query({ 37 | page: pagingParams.page - 1, 38 | size: vm.itemsPerPage, 39 | sort: sort() 40 | }, onSuccess, onError); 41 | } 42 | <%_ } _%> 43 | function sort() { 44 | var result = [vm.predicate + ',' + (vm.reverse ? 'asc' : 'desc')]; 45 | if (vm.predicate !== 'id') { 46 | result.push('id'); 47 | } 48 | return result; 49 | } 50 | function onSuccess(data, headers) { 51 | vm.links = ParseLinks.parse(headers('link')); 52 | vm.totalItems = headers('X-Total-Count'); 53 | vm.queryCount = vm.totalItems; 54 | vm.<%= entityInstancePlural %> = data; 55 | vm.page = pagingParams.page; 56 | } 57 | function onError(error) { 58 | AlertService.error(error.data.message); 59 | } 60 | } 61 | 62 | function loadPage(page) { 63 | vm.page = page; 64 | vm.transition(); 65 | } 66 | 67 | function transition() { 68 | $state.transitionTo($state.$current, { 69 | page: vm.page, 70 | sort: vm.predicate + ',' + (vm.reverse ? 'asc' : 'desc'), 71 | search: vm.currentSearch 72 | }); 73 | } 74 | <%_ if (searchEngine == 'elasticsearch') { _%> 75 | 76 | function search(searchQuery) { 77 | if (!searchQuery){ 78 | return vm.clear(); 79 | } 80 | vm.links = null; 81 | vm.page = 1; 82 | vm.predicate = '_score'; 83 | vm.reverse = false; 84 | vm.currentSearch = searchQuery; 85 | vm.transition(); 86 | } 87 | 88 | function clear() { 89 | vm.links = null; 90 | vm.page = 1; 91 | vm.predicate = 'id'; 92 | vm.reverse = true; 93 | vm.currentSearch = null; 94 | vm.transition(); 95 | } 96 | <%_ } _%> 97 | -------------------------------------------------------------------------------- /generators/app/templates/src/main/webapp/app/entities/infinite-scroll-template.ejs: -------------------------------------------------------------------------------- 1 | vm.<%= entityInstancePlural %> = []; 2 | vm.loadPage = loadPage; 3 | vm.itemsPerPage = paginationConstants.itemsPerPage; 4 | vm.page = 0; 5 | vm.links = { 6 | last: 0 7 | }; 8 | vm.predicate = 'id'; 9 | vm.reset = reset; 10 | vm.reverse = true; 11 | <%_ if (searchEngine == 'elasticsearch') { _%> 12 | vm.clear = clear; 13 | vm.loadAll = loadAll; 14 | vm.search = search; 15 | <%_ } _%> 16 | <%_ if (fieldsContainBlob) { _%> 17 | vm.openFile = DataUtils.openFile; 18 | vm.byteSize = DataUtils.byteSize; 19 | <%_ } _%> 20 | 21 | loadAll(); 22 | 23 | function loadAll () { 24 | <%_ if (searchEngine != 'elasticsearch') { _%> 25 | <%= entityClass %>.query({ 26 | page: vm.page, 27 | size: vm.itemsPerPage, 28 | sort: sort() 29 | }, onSuccess, onError); 30 | <%_ } else { _%> 31 | if (vm.currentSearch) { 32 | <%= entityClass %>Search.query({ 33 | query: vm.currentSearch, 34 | page: vm.page, 35 | size: vm.itemsPerPage, 36 | sort: sort() 37 | }, onSuccess, onError); 38 | } else { 39 | <%= entityClass %>.query({ 40 | page: vm.page, 41 | size: vm.itemsPerPage, 42 | sort: sort() 43 | }, onSuccess, onError); 44 | } 45 | <%_ } _%> 46 | function sort() { 47 | var result = [vm.predicate + ',' + (vm.reverse ? 'asc' : 'desc')]; 48 | if (vm.predicate !== 'id') { 49 | result.push('id'); 50 | } 51 | return result; 52 | } 53 | 54 | function onSuccess(data, headers) { 55 | vm.links = ParseLinks.parse(headers('link')); 56 | vm.totalItems = headers('X-Total-Count'); 57 | for (var i = 0; i < data.length; i++) { 58 | vm.<%= entityInstancePlural %>.push(data[i]); 59 | } 60 | } 61 | 62 | function onError(error) { 63 | AlertService.error(error.data.message); 64 | } 65 | } 66 | 67 | function reset () { 68 | vm.page = 0; 69 | vm.<%= entityInstancePlural %> = []; 70 | loadAll(); 71 | } 72 | 73 | function loadPage(page) { 74 | vm.page = page; 75 | loadAll(); 76 | } 77 | <%_ if (searchEngine == 'elasticsearch') { _%> 78 | 79 | function clear () { 80 | vm.<%= entityInstancePlural %> = []; 81 | vm.links = { 82 | last: 0 83 | }; 84 | vm.page = 0; 85 | vm.predicate = 'id'; 86 | vm.reverse = true; 87 | vm.searchQuery = null; 88 | vm.currentSearch = null; 89 | vm.loadAll(); 90 | } 91 | 92 | function search (searchQuery) { 93 | if (!searchQuery){ 94 | return vm.clear(); 95 | } 96 | vm.<%= entityInstancePlural %> = []; 97 | vm.links = { 98 | last: 0 99 | }; 100 | vm.page = 0; 101 | vm.predicate = '_score'; 102 | vm.reverse = false; 103 | vm.currentSearch = searchQuery; 104 | vm.loadAll(); 105 | } 106 | <%_ } _%> 107 | -------------------------------------------------------------------------------- /travis/scripts/02-generate-entities.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | #------------------------------------------------------------------------------- 4 | # Functions 5 | #------------------------------------------------------------------------------- 6 | moveEntity() { 7 | local entity="$1" 8 | mv "$JHIPSTER_SAMPLES"/.jhipster/"$entity".json "$HOME"/app/.jhipster/ 9 | } 10 | 11 | generateEntity() { 12 | local entity="$1" 13 | if [ -a .jhipster/"$entity".json ]; then 14 | yo jhipster:entity "$entity" --force --no-insight 15 | fi 16 | } 17 | 18 | #------------------------------------------------------------------------------- 19 | # Copy entities json 20 | #------------------------------------------------------------------------------- 21 | mkdir -p "$HOME"/app/.jhipster/ 22 | 23 | if [[ ("$JHIPSTER" == "app-mysql") || ("$JHIPSTER" == "app-psql-es-noi18n") ]]; then 24 | moveEntity BankAccount 25 | moveEntity Label 26 | moveEntity Operation 27 | 28 | moveEntity FieldTestEntity 29 | moveEntity FieldTestMapstructEntity 30 | moveEntity FieldTestServiceClassEntity 31 | moveEntity FieldTestServiceImplEntity 32 | moveEntity FieldTestInfiniteScrollEntity 33 | moveEntity FieldTestPagerEntity 34 | moveEntity FieldTestPaginationEntity 35 | 36 | moveEntity TestEntity 37 | moveEntity TestMapstruct 38 | moveEntity TestServiceClass 39 | moveEntity TestServiceImpl 40 | moveEntity TestInfiniteScroll 41 | moveEntity TestPager 42 | moveEntity TestPagination 43 | moveEntity TestManyToOne 44 | moveEntity TestManyToMany 45 | moveEntity TestOneToOne 46 | moveEntity TestCustomTableName 47 | 48 | moveEntity EntityWithDTO 49 | moveEntity EntityWithPagination 50 | moveEntity EntityWithPaginationAndDTO 51 | moveEntity EntityWithServiceClass 52 | moveEntity EntityWithServiceClassAndDTO 53 | moveEntity EntityWithServiceClassAndPagination 54 | moveEntity EntityWithServiceClassPaginationAndDTO 55 | moveEntity EntityWithServiceImpl 56 | moveEntity EntityWithServiceImplAndDTO 57 | moveEntity EntityWithServiceImplAndPagination 58 | moveEntity EntityWithServiceImplPaginationAndDTO 59 | 60 | else 61 | moveEntity BankAccount 62 | moveEntity Label 63 | moveEntity Operation 64 | 65 | moveEntity FieldTestEntity 66 | moveEntity FieldTestMapstructEntity 67 | moveEntity FieldTestServiceClassEntity 68 | moveEntity FieldTestServiceImplEntity 69 | moveEntity FieldTestInfiniteScrollEntity 70 | moveEntity FieldTestPagerEntity 71 | moveEntity FieldTestPaginationEntity 72 | 73 | moveEntity EntityWithDTO 74 | moveEntity EntityWithPagination 75 | moveEntity EntityWithPaginationAndDTO 76 | moveEntity EntityWithServiceClass 77 | moveEntity EntityWithServiceClassAndDTO 78 | moveEntity EntityWithServiceClassAndPagination 79 | moveEntity EntityWithServiceClassPaginationAndDTO 80 | moveEntity EntityWithServiceImpl 81 | moveEntity EntityWithServiceImplAndDTO 82 | moveEntity EntityWithServiceImplAndPagination 83 | moveEntity EntityWithServiceImplPaginationAndDTO 84 | fi 85 | 86 | ls -l "$HOME"/app/.jhipster/ 87 | 88 | #------------------------------------------------------------------------------- 89 | # Generate the entities with yo jhipster:entity 90 | #------------------------------------------------------------------------------- 91 | cd "$HOME"/app 92 | generateEntity BankAccount 93 | generateEntity Label 94 | generateEntity Operation 95 | 96 | generateEntity FieldTestEntity 97 | generateEntity FieldTestMapstructEntity 98 | generateEntity FieldTestServiceClassEntity 99 | generateEntity FieldTestServiceImplEntity 100 | generateEntity FieldTestInfiniteScrollEntity 101 | generateEntity FieldTestPagerEntity 102 | generateEntity FieldTestPaginationEntity 103 | 104 | generateEntity TestEntity 105 | generateEntity TestMapstruct 106 | generateEntity TestServiceClass 107 | generateEntity TestServiceImpl 108 | generateEntity TestInfiniteScroll 109 | generateEntity TestPager 110 | generateEntity TestPagination 111 | generateEntity TestManyToOne 112 | generateEntity TestManyToMany 113 | generateEntity TestOneToOne 114 | generateEntity TestCustomTableName 115 | 116 | generateEntity EntityWithDTO 117 | generateEntity EntityWithPagination 118 | generateEntity EntityWithPaginationAndDTO 119 | generateEntity EntityWithServiceClass 120 | generateEntity EntityWithServiceClassAndDTO 121 | generateEntity EntityWithServiceClassAndPagination 122 | generateEntity EntityWithServiceClassPaginationAndDTO 123 | generateEntity EntityWithServiceImpl 124 | generateEntity EntityWithServiceImplAndDTO 125 | generateEntity EntityWithServiceImplAndPagination 126 | generateEntity EntityWithServiceImplPaginationAndDTO 127 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "no", 310 | "service": "no", 311 | "pagination": "no" 312 | } 313 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestPagerEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "no", 310 | "service": "no", 311 | "pagination": "pager" 312 | } 313 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestMapstructEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "mapstruct", 310 | "service": "no", 311 | "pagination": "no" 312 | } 313 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestPaginationEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "no", 310 | "service": "no", 311 | "pagination": "pagination" 312 | } 313 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestServiceClassEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "no", 310 | "service": "serviceClass", 311 | "pagination": "no" 312 | } 313 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestServiceImplEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "no", 310 | "service": "serviceImpl", 311 | "pagination": "no" 312 | } 313 | -------------------------------------------------------------------------------- /travis/samples/.jhipster/FieldTestInfiniteScrollEntity.json: -------------------------------------------------------------------------------- 1 | { 2 | "fluentMethods": true, 3 | "relationships": [], 4 | "fields": [ 5 | { 6 | "fieldName": "stringField", 7 | "fieldType": "String" 8 | }, 9 | { 10 | "fieldName": "stringRequiredField", 11 | "fieldType": "String", 12 | "fieldValidateRules": [ 13 | "required" 14 | ] 15 | }, 16 | { 17 | "fieldName": "stringMinlengthField", 18 | "fieldType": "String", 19 | "fieldValidateRules": [ 20 | "minlength" 21 | ], 22 | "fieldValidateRulesMinlength": 0 23 | }, 24 | { 25 | "fieldName": "stringMaxlengthField", 26 | "fieldType": "String", 27 | "fieldValidateRules": [ 28 | "maxlength" 29 | ], 30 | "fieldValidateRulesMaxlength": 20 31 | }, 32 | { 33 | "fieldName": "stringPatternField", 34 | "fieldType": "String", 35 | "fieldValidateRules": [ 36 | "pattern" 37 | ], 38 | "fieldValidateRulesPattern": "^[a-zA-Z0-9]*$", 39 | "fieldValidateRulesPatternJava": "^[a-zA-Z0-9]*$" 40 | }, 41 | { 42 | "fieldName": "integerField", 43 | "fieldType": "Integer" 44 | }, 45 | { 46 | "fieldName": "integerRequiredField", 47 | "fieldType": "Integer", 48 | "fieldValidateRules": [ 49 | "required" 50 | ] 51 | }, 52 | { 53 | "fieldName": "integerMinField", 54 | "fieldType": "Integer", 55 | "fieldValidateRules": [ 56 | "min" 57 | ], 58 | "fieldValidateRulesMin": 0 59 | }, 60 | { 61 | "fieldName": "integerMaxField", 62 | "fieldType": "Integer", 63 | "fieldValidateRules": [ 64 | "max" 65 | ], 66 | "fieldValidateRulesMax": 100 67 | }, 68 | { 69 | "fieldName": "longField", 70 | "fieldType": "Long" 71 | }, 72 | { 73 | "fieldName": "longRequiredField", 74 | "fieldType": "Long", 75 | "fieldValidateRules": [ 76 | "required" 77 | ] 78 | }, 79 | { 80 | "fieldName": "longMinField", 81 | "fieldType": "Long", 82 | "fieldValidateRules": [ 83 | "min" 84 | ], 85 | "fieldValidateRulesMin": 0 86 | }, 87 | { 88 | "fieldName": "longMaxField", 89 | "fieldType": "Long", 90 | "fieldValidateRules": [ 91 | "max" 92 | ], 93 | "fieldValidateRulesMax": 100 94 | }, 95 | { 96 | "fieldName": "floatField", 97 | "fieldType": "Float" 98 | }, 99 | { 100 | "fieldName": "floatRequiredField", 101 | "fieldType": "Float", 102 | "fieldValidateRules": [ 103 | "required" 104 | ] 105 | }, 106 | { 107 | "fieldName": "floatMinField", 108 | "fieldType": "Float", 109 | "fieldValidateRules": [ 110 | "min" 111 | ], 112 | "fieldValidateRulesMin": 0 113 | }, 114 | { 115 | "fieldName": "floatMaxField", 116 | "fieldType": "Float", 117 | "fieldValidateRules": [ 118 | "max" 119 | ], 120 | "fieldValidateRulesMax": 100 121 | }, 122 | { 123 | "fieldName": "doubleRequiredField", 124 | "fieldType": "Double", 125 | "fieldValidateRules": [ 126 | "required" 127 | ] 128 | }, 129 | { 130 | "fieldName": "doubleMinField", 131 | "fieldType": "Double", 132 | "fieldValidateRules": [ 133 | "min" 134 | ], 135 | "fieldValidateRulesMin": 0 136 | }, 137 | { 138 | "fieldName": "doubleMaxField", 139 | "fieldType": "Double", 140 | "fieldValidateRules": [ 141 | "max" 142 | ], 143 | "fieldValidateRulesMax": 100 144 | }, 145 | { 146 | "fieldName": "bigDecimalRequiredField", 147 | "fieldType": "BigDecimal", 148 | "fieldValidateRules": [ 149 | "required" 150 | ] 151 | }, 152 | { 153 | "fieldName": "bigDecimalMinField", 154 | "fieldType": "BigDecimal", 155 | "fieldValidateRules": [ 156 | "min" 157 | ], 158 | "fieldValidateRulesMin": 0 159 | }, 160 | { 161 | "fieldName": "bigDecimalMaxField", 162 | "fieldType": "BigDecimal", 163 | "fieldValidateRules": [ 164 | "max" 165 | ], 166 | "fieldValidateRulesMax": 100 167 | }, 168 | { 169 | "fieldName": "localDateField", 170 | "fieldType": "LocalDate" 171 | }, 172 | { 173 | "fieldName": "localDateRequiredField", 174 | "fieldType": "LocalDate", 175 | "fieldValidateRules": [ 176 | "required" 177 | ] 178 | }, 179 | { 180 | "fieldName": "zonedDateTimeField", 181 | "fieldType": "ZonedDateTime" 182 | }, 183 | { 184 | "fieldName": "zonedDateTimeRequiredField", 185 | "fieldType": "ZonedDateTime", 186 | "fieldValidateRules": [ 187 | "required" 188 | ] 189 | }, 190 | { 191 | "fieldName": "booleanField", 192 | "fieldType": "Boolean" 193 | }, 194 | { 195 | "fieldName": "booleanRequiredField", 196 | "fieldType": "Boolean", 197 | "fieldValidateRules": [ 198 | "required" 199 | ] 200 | }, 201 | { 202 | "fieldName": "enumField", 203 | "fieldType": "EnumFieldClass", 204 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3" 205 | }, 206 | { 207 | "fieldName": "enumRequiredField", 208 | "fieldType": "EnumRequiredFieldClass", 209 | "fieldValues": "ENUM_VALUE_1,ENUM_VALUE_2,ENUM_VALUE_3", 210 | "fieldValidateRules": [ 211 | "required" 212 | ] 213 | }, 214 | { 215 | "fieldName": "byteImageField", 216 | "fieldType": "byte[]", 217 | "fieldTypeBlobContent": "image" 218 | }, 219 | { 220 | "fieldName": "byteImageRequiredField", 221 | "fieldType": "byte[]", 222 | "fieldTypeBlobContent": "image", 223 | "fieldValidateRules": [ 224 | "required" 225 | ] 226 | }, 227 | { 228 | "fieldName": "byteImageMinbytesField", 229 | "fieldType": "byte[]", 230 | "fieldTypeBlobContent": "image", 231 | "fieldValidateRules": [ 232 | "minbytes" 233 | ], 234 | "fieldValidateRulesMinbytes": 0 235 | }, 236 | { 237 | "fieldName": "byteImageMaxbytesField", 238 | "fieldType": "byte[]", 239 | "fieldTypeBlobContent": "image", 240 | "fieldValidateRules": [ 241 | "maxbytes" 242 | ], 243 | "fieldValidateRulesMaxbytes": 10000 244 | }, 245 | { 246 | "fieldName": "byteAnyField", 247 | "fieldType": "byte[]", 248 | "fieldTypeBlobContent": "any" 249 | }, 250 | { 251 | "fieldName": "byteAnyRequiredField", 252 | "fieldType": "byte[]", 253 | "fieldTypeBlobContent": "any", 254 | "fieldValidateRules": [ 255 | "required" 256 | ] 257 | }, 258 | { 259 | "fieldName": "byteAnyMinbytesField", 260 | "fieldType": "byte[]", 261 | "fieldTypeBlobContent": "any", 262 | "fieldValidateRules": [ 263 | "minbytes" 264 | ], 265 | "fieldValidateRulesMinbytes": 0 266 | }, 267 | { 268 | "fieldName": "byteAnyMaxbytesField", 269 | "fieldType": "byte[]", 270 | "fieldTypeBlobContent": "any", 271 | "fieldValidateRules": [ 272 | "maxbytes" 273 | ], 274 | "fieldValidateRulesMaxbytes": 10000 275 | }, 276 | { 277 | "fieldName": "byteTextField", 278 | "fieldType": "byte[]", 279 | "fieldTypeBlobContent": "text" 280 | }, 281 | { 282 | "fieldName": "byteTextRequiredField", 283 | "fieldType": "byte[]", 284 | "fieldTypeBlobContent": "text", 285 | "fieldValidateRules": [ 286 | "required" 287 | ] 288 | }, 289 | { 290 | "fieldName": "byteTextMinbytesField", 291 | "fieldType": "byte[]", 292 | "fieldTypeBlobContent": "text", 293 | "fieldValidateRules": [ 294 | "minbytes" 295 | ], 296 | "fieldValidateRulesMinbytes": 0 297 | }, 298 | { 299 | "fieldName": "byteTextMaxbytesField", 300 | "fieldType": "byte[]", 301 | "fieldTypeBlobContent": "text", 302 | "fieldValidateRules": [ 303 | "maxbytes" 304 | ], 305 | "fieldValidateRulesMaxbytes": 10000 306 | } 307 | ], 308 | "changelogDate": "20160208184031", 309 | "dto": "no", 310 | "service": "no", 311 | "pagination": "infinite-scroll" 312 | } 313 | -------------------------------------------------------------------------------- /generators/app/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path'), 3 | util = require('util'), 4 | yeoman = require('yeoman-generator'), 5 | chalk = require('chalk'), 6 | _ = require('lodash'), 7 | pluralize = require('pluralize'), 8 | packagejs = require(__dirname + '/../../package.json'), 9 | fs = require('fs'), 10 | semver = require('semver'), 11 | glob = require("glob"); 12 | 13 | // Stores JHipster variables 14 | var jhipsterVar = {moduleName: 'angular-datatables'}; 15 | 16 | // Stores JHipster functions 17 | var jhipsterFunc = {}; 18 | 19 | var STRIP_HTML = 'stripHtml', 20 | STRIP_JS = 'stripJs', 21 | COPY = 'copy', 22 | TPL = 'template'; 23 | 24 | const SERVER_MAIN_SRC_DIR = 'src/main/java/'; 25 | const JHIPSTER_USER_TABLE_NAME = 'jhi_user'; 26 | const INTERPOLATE_REGEX = '/<%:([\s\S]+?)%>/g'; // so that tags in templates do not get mistreated as _ templates 27 | 28 | module.exports = yeoman.Base.extend({ 29 | 30 | initializing: { 31 | compose: function (args) { 32 | this.composeWith('jhipster:modules', { 33 | options: { 34 | jhipsterVar: jhipsterVar, 35 | jhipsterFunc: jhipsterFunc 36 | } 37 | }); 38 | 39 | if (args == 'default') { 40 | this.updateType = 'all'; 41 | this.useTemplate = true; 42 | } 43 | }, 44 | 45 | displayLogo: function () { 46 | this.log(chalk.white('Welcome to the ' + chalk.bold('JHipster-Angular-DataTables') + ' Generator! ' + chalk.yellow('v' + packagejs.version + '\n'))); 47 | this.log(chalk.white('This will change JHipster Entity list component with Angular-DataTables') + '\n'); 48 | }, 49 | 50 | checkJHVersion: function () { 51 | var supportedJHVersion = packagejs.dependencies['generator-jhipster']; 52 | // if (jhipsterVar.jhipsterVersion && !semver.satisfies(jhipsterVar.jhipsterVersion, supportedJHVersion)) { 53 | // this.env.error(chalk.red.bold('ERROR!') + ' I support only JHipster versions greater than ' + supportedJHVersion + 54 | // '... If you want to use JHipster-Angular-DataTables with an older JHipster version, download a previous version that supports the required JHipster version.'); 55 | // } 56 | }, 57 | 58 | getEntitityNames: function () { 59 | var existingEntities = [], 60 | existingEntityChoices = [], 61 | existingEntityNames = []; 62 | try { 63 | existingEntityNames = fs.readdirSync('.jhipster'); 64 | } catch (e) { 65 | this.log(chalk.red.bold('ERROR!') + ' Could not read entities, you might not have generated any entities yet. I will continue to install audit files, entities will not be updated...\n'); 66 | } 67 | 68 | existingEntityNames.forEach(function (entry) { 69 | if (entry.indexOf('.json') !== -1) { 70 | var entityName = entry.replace('.json', ''); 71 | existingEntities.push(entityName); 72 | existingEntityChoices.push({name: entityName, value: entityName}); 73 | } 74 | }); 75 | this.existingEntities = existingEntities; 76 | this.existingEntityChoices = existingEntityChoices; 77 | } 78 | }, 79 | 80 | prompting: function () { 81 | var done = this.async(); 82 | var prompts = [ 83 | { 84 | type: 'list', 85 | name: 'useTemplate', 86 | message: '(1/2) Do you want to use template based or the default views?', 87 | choices: [ 88 | {name: 'Yes, use templates based', value: true}, 89 | {name: 'No, use default views', value: false} 90 | ], 91 | default: true 92 | }, { 93 | type: 'list', 94 | name: 'updateType', 95 | message: '(2/2) Do you want to change all existing entities, all your custom code will be overwritten?', 96 | choices: [ 97 | {name: 'Yes, update all', value: 'all'}, 98 | {name: 'No, let me choose the entities to update', value: 'selected'} 99 | ], 100 | default: 'all' 101 | }, 102 | { 103 | when: function (response) { 104 | return response.updateType != 'all'; 105 | }, 106 | type: 'checkbox', 107 | name: 'entitiesToUpdate', 108 | message: 'Please choose the entities to be updated', 109 | choices: this.existingEntityChoices, 110 | default: 'none' 111 | } 112 | ]; 113 | 114 | if (this.updateType == 'all') { 115 | this.updateType = 'all'; 116 | done(); 117 | } else { 118 | this.prompt(prompts, function (props) { 119 | 120 | this.props = props; 121 | // To access props later use this.props.someOption; 122 | this.useTemplate = props.useTemplate; 123 | this.updateType = props.updateType; 124 | this.entitiesToUpdate = props.entitiesToUpdate; 125 | done(); 126 | }.bind(this)); 127 | } 128 | }, 129 | 130 | writing: { 131 | updateYeomanConfig: function () { 132 | // this.config.set('auditFramework', this.auditFramework); 133 | // this.config.set('changeDeleteBehavior', this.changeDeleteBehavior); 134 | }, 135 | 136 | setupGlobalVar: function () { 137 | this.baseName = jhipsterVar.baseName; 138 | this.packageName = jhipsterVar.packageName; 139 | this.angularAppName = jhipsterVar.angularAppName; 140 | this.frontendBuilder = jhipsterVar.frontendBuilder; 141 | this.buildTool = jhipsterVar.buildTool; 142 | this.databaseType = jhipsterVar.databaseType; 143 | this.devDatabaseType = jhipsterVar.devDatabaseType; 144 | this.prodDatabaseType = jhipsterVar.prodDatabaseType; 145 | this.enableTranslation = jhipsterVar.enableTranslation; 146 | this.changelogDate = jhipsterFunc.dateFormatForLiquibase(); 147 | this.searchEngine = jhipsterVar.searchEngine; 148 | this.webappDir = jhipsterVar.webappDir; 149 | // this.javaTemplateDir = 'src/main/java/package'; 150 | this.webTemplateDir = 'src/main/webapp'; 151 | this.resourcesTemplateDir = 'src/main/resources'; 152 | this.javaDir = jhipsterVar.javaDir; 153 | this.resourceDir = jhipsterVar.resourceDir; 154 | this.interpolateRegex = /<%=([\s\S]+?)%>/g; // so that thymeleaf tags in templates do not get mistreated as _ templates 155 | this.jhipsterConfigDirectory = '.jhipster'; 156 | this.copyFiles = function (files) { 157 | files.forEach(function (file) { 158 | jhipsterFunc.copyTemplate(file.from, file.to, file.type ? file.type : TPL, this, file.interpolate ? {'interpolate': file.interpolate} : undefined); 159 | }, this); 160 | }; 161 | }, 162 | 163 | writeBaseFiles: function () { 164 | 165 | //Add bower dependencies 166 | jhipsterFunc.addBowerDependency('angular-datatables', '0.5.5'); 167 | jhipsterFunc.addBowerDependency('ods-lib', 'https://github.com/hermeslm/ods-lib.git#1.1.8'); 168 | 169 | //Add Angular-Datatables module dependencies 170 | jhipsterFunc.addAngularJsModule('datatables'); 171 | jhipsterFunc.addAngularJsModule('datatables.factory'); 172 | jhipsterFunc.addAngularJsModule('datatables.bootstrap'); 173 | jhipsterFunc.addAngularJsModule('datatables.colreorder'); 174 | jhipsterFunc.addAngularJsModule('datatables.columnfilter'); 175 | jhipsterFunc.addAngularJsModule('ods-lib'); 176 | 177 | //Copy components services 178 | // var filesToCopy = [ 179 | // { 180 | // from: this.webappDir + 'app/admin/entity-audit/_entity-audits.html', 181 | // to: this.webappDir + 'app/admin/entity-audit/entity-audits.html'}, 182 | // { 183 | // from: this.webTemplateDir + '/app/components/udt/_gui.service.js', 184 | // to: this.webappDir + 'app/components/udt/gui.service.js' 185 | // } 186 | // ]; 187 | // this.copy(this.webTemplateDir + '/app/components/UDT/GUI.service.js', this.webappDir + 'app/components/UDT/GUI.service.js'); 188 | // this.copyFiles(filesToCopy); 189 | }, 190 | 191 | updateEntityFiles: function () { 192 | // Update existing entities to enable audit 193 | if (this.updateType == 'all') { 194 | this.entitiesToUpdate = this.existingEntities; 195 | } 196 | if (this.entitiesToUpdate && this.entitiesToUpdate.length > 0 && this.entitiesToUpdate != 'none') { 197 | this.log('\n' + chalk.bold.green('I\'m Updating selected entities ') + chalk.bold.yellow(this.entitiesToUpdate)); 198 | var jsonObj = null; 199 | // this.auditedEntities = []; 200 | 201 | this.entitiesToUpdate.forEach(function (entityName) { 202 | // this.auditedEntities.push("\"" + entityName + "\"") 203 | // We read configuration from file 204 | var fileName = this.jhipsterConfigDirectory + '/' + entityName + ".json"; 205 | this.fileData = this.fs.readJSON(fileName); 206 | this.entityNameCapitalized = _.upperFirst(entityName); 207 | //Config Entity data 208 | this.dto = this.fileData.dto; 209 | if (this.dto != undefined) { 210 | this.log(chalk.red.bold('WARN!') + ' dto is missing in .jhipster/' + this.entityNameCapitalized + '.json, using no as fallback\n'); 211 | this.dto = 'no'; 212 | } 213 | 214 | this.entityAngularJSSuffix = ''; 215 | 216 | if (this.fileData.angularJSSuffix !== undefined) { 217 | this.entityAngularJSSuffix = this.fileData.angularJSSuffix; 218 | } 219 | 220 | var entityNameSpinalCased = _.kebabCase(_.lowerFirst(entityName)); 221 | var entityNamePluralizedAndSpinalCased = _.kebabCase(_.lowerFirst(pluralize(entityName))); 222 | this.entityPluralFileName = entityNamePluralizedAndSpinalCased + this.entityAngularJSSuffix; 223 | this.entityStateName = entityNameSpinalCased + this.entityAngularJSSuffix; 224 | this.entityFolderName = entityNameSpinalCased; 225 | this.entityFileName = entityNameSpinalCased + this.entityAngularJSSuffix; 226 | this.entityClass = this.entityNameCapitalized; 227 | this.entityAngularJSName = this.entityClass + _.upperFirst(_.camelCase(this.entityAngularJSSuffix)); 228 | this.entityInstance = _.lowerFirst(entityName); 229 | this.entityClassPlural = pluralize(entityName); 230 | this.entityClassPluralHumanized = _.startCase(this.entityClassPlural); 231 | this.entityClassHumanized = _.startCase(this.entityNameCapitalized); 232 | this.pagination = this.fileData.pagination; 233 | this.entityInstancePlural = pluralize(this.entityInstance); 234 | this.entityTranslationKey = this.entityInstance; 235 | this.fieldsContainBlob = false; 236 | this.relationships = this.fileData.relationships; 237 | this.fields = this.fileData.fields; 238 | if (this.databaseType === 'cassandra' || this.databaseType === 'mongodb') { 239 | this.pkType = 'String'; 240 | } else { 241 | this.pkType = 'Long'; 242 | } 243 | //load relationship 244 | this.fieldsContainOwnerManyToMany = false; 245 | this.fieldsContainNoOwnerOneToOne = false; 246 | this.fieldsContainOwnerOneToOne = false; 247 | this.fieldsContainOneToMany = false; 248 | this.fieldsContainManyToOne = false; 249 | this.differentTypes = [this.entityClass]; 250 | 251 | 252 | if (!this.relationships) { 253 | this.relationships = []; 254 | } 255 | 256 | 257 | if (this.useTemplate) { 258 | jhipsterFunc.copyHtml(this.webTemplateDir + '/app/entities/tpl/_entity-box-header-template.ejs', 259 | this.webappDir + 'app/entities/tpl/list-box-header-tpl.html', 260 | this, {}, true); 261 | jhipsterFunc.copyHtml(this.webTemplateDir + '/app/entities/tpl/_entity-header-template.ejs', 262 | this.webappDir + 'app/entities/tpl/list-header-tpl.html', 263 | this, {}, true); 264 | } 265 | 266 | // Load in-memory data for fields 267 | this.fields && this.fields.forEach(function (field) { 268 | // Migration from JodaTime to Java Time 269 | if (field.fieldType === 'DateTime' || field.fieldType === 'Date') { 270 | field.fieldType = 'ZonedDateTime'; 271 | } 272 | var fieldType = field.fieldType; 273 | 274 | var nonEnumType = _.includes(['String', 'Integer', 'Long', 'Float', 'Double', 'BigDecimal', 275 | 'LocalDate', 'ZonedDateTime', 'Boolean', 'byte[]', 'ByteBuffer'], fieldType); 276 | if ((this.databaseType === 'sql' || this.databaseType === 'mongodb') && !nonEnumType) { 277 | field.fieldIsEnum = true; 278 | } else { 279 | field.fieldIsEnum = false; 280 | } 281 | 282 | if (_.isUndefined(field.fieldNameCapitalized)) { 283 | field.fieldNameCapitalized = _.upperFirst(field.fieldName); 284 | } 285 | 286 | if (_.isUndefined(field.fieldNameUnderscored)) { 287 | field.fieldNameUnderscored = _.snakeCase(field.fieldName); 288 | } 289 | 290 | if (_.isUndefined(field.fieldNameHumanized)) { 291 | field.fieldNameHumanized = _.startCase(field.fieldName); 292 | } 293 | 294 | if (_.isUndefined(field.fieldInJavaBeanMethod)) { 295 | // Handle the specific case when the second letter is capitalized 296 | // See http://stackoverflow.com/questions/2948083/naming-convention-for-getters-setters-in-java 297 | if (field.fieldName.length > 1) { 298 | var firstLetter = field.fieldName.charAt(0); 299 | var secondLetter = field.fieldName.charAt(1); 300 | if (firstLetter === firstLetter.toLowerCase() && secondLetter === secondLetter.toUpperCase()) { 301 | field.fieldInJavaBeanMethod = firstLetter.toLowerCase() + field.fieldName.slice(1); 302 | } else { 303 | field.fieldInJavaBeanMethod = _.upperFirst(field.fieldName); 304 | } 305 | } else { 306 | field.fieldInJavaBeanMethod = _.upperFirst(field.fieldName); 307 | } 308 | } 309 | 310 | if (_.isUndefined(field.fieldValidateRulesPatternJava)) { 311 | field.fieldValidateRulesPatternJava = field.fieldValidateRulesPattern ? 312 | field.fieldValidateRulesPattern.replace(/\\/g, '\\\\') : field.fieldValidateRulesPattern; 313 | } 314 | 315 | if (_.isArray(field.fieldValidateRules) && field.fieldValidateRules.length >= 1) { 316 | field.fieldValidate = true; 317 | } else { 318 | field.fieldValidate = false; 319 | } 320 | 321 | if (fieldType === 'ZonedDateTime') { 322 | this.fieldsContainZonedDateTime = true; 323 | } else if (fieldType === 'LocalDate') { 324 | this.fieldsContainLocalDate = true; 325 | } else if (fieldType === 'BigDecimal') { 326 | this.fieldsContainBigDecimal = true; 327 | } else if (fieldType === 'byte[]' || fieldType === 'ByteBuffer') { 328 | this.fieldsContainBlob = true; 329 | } 330 | 331 | if (field.fieldValidate) { 332 | this.validation = true; 333 | } 334 | }, this); 335 | 336 | this.relationships && this.relationships.forEach(function (relationship) { 337 | 338 | if (_.isUndefined(relationship.relationshipNameCapitalized)) { 339 | relationship.relationshipNameCapitalized = _.upperFirst(relationship.relationshipName); 340 | } 341 | 342 | if (_.isUndefined(relationship.relationshipNameCapitalizedPlural)) { 343 | if (relationship.relationshipName.length > 1) { 344 | relationship.relationshipNameCapitalizedPlural = pluralize(_.upperFirst(relationship.relationshipName)); 345 | } else { 346 | relationship.relationshipNameCapitalizedPlural = _.upperFirst(pluralize(relationship.relationshipName)); 347 | } 348 | } 349 | 350 | if (_.isUndefined(relationship.relationshipNameHumanized)) { 351 | relationship.relationshipNameHumanized = _.startCase(relationship.relationshipName); 352 | } 353 | 354 | if (_.isUndefined(relationship.relationshipNamePlural)) { 355 | relationship.relationshipNamePlural = pluralize(relationship.relationshipName); 356 | } 357 | 358 | if (_.isUndefined(relationship.relationshipFieldName)) { 359 | relationship.relationshipFieldName = _.lowerFirst(relationship.relationshipName); 360 | } 361 | 362 | if (_.isUndefined(relationship.relationshipFieldNamePlural)) { 363 | relationship.relationshipFieldNamePlural = pluralize(_.lowerFirst(relationship.relationshipName)); 364 | } 365 | 366 | if (_.isUndefined(relationship.otherEntityRelationshipNamePlural) && (relationship.relationshipType === 'one-to-many' || (relationship.relationshipType === 'many-to-many' && relationship.ownerSide === false) || (relationship.relationshipType === 'one-to-one' && relationship.otherEntityName.toLowerCase() !== 'user'))) { 367 | relationship.otherEntityRelationshipNamePlural = pluralize(relationship.otherEntityRelationshipName); 368 | } 369 | 370 | if (_.isUndefined(relationship.otherEntityRelationshipNameCapitalized)) { 371 | relationship.otherEntityRelationshipNameCapitalized = _.upperFirst(relationship.otherEntityRelationshipName); 372 | } 373 | 374 | if (_.isUndefined(relationship.otherEntityRelationshipNameCapitalizedPlural)) { 375 | relationship.otherEntityRelationshipNameCapitalizedPlural = pluralize(_.upperFirst(relationship.otherEntityRelationshipName)); 376 | } 377 | 378 | if (_.isUndefined(relationship.otherEntityNamePlural)) { 379 | relationship.otherEntityNamePlural = pluralize(relationship.otherEntityName); 380 | } 381 | 382 | if (_.isUndefined(relationship.otherEntityNameCapitalized)) { 383 | relationship.otherEntityNameCapitalized = _.upperFirst(relationship.otherEntityName); 384 | } 385 | 386 | if (_.isUndefined(relationship.otherEntityNameCapitalizedPlural)) { 387 | relationship.otherEntityNameCapitalizedPlural = pluralize(_.upperFirst(relationship.otherEntityName)); 388 | } 389 | 390 | if (_.isUndefined(relationship.otherEntityFieldCapitalized)) { 391 | relationship.otherEntityFieldCapitalized = _.upperFirst(relationship.otherEntityField); 392 | } 393 | 394 | if (_.isUndefined(relationship.otherEntityStateName)) { 395 | relationship.otherEntityStateName = _.trim(_.kebabCase(relationship.otherEntityName), '-') + this.entityAngularJSSuffix; 396 | } 397 | // Load in-memory data for root 398 | if (relationship.relationshipType === 'many-to-many' && relationship.ownerSide) { 399 | this.fieldsContainOwnerManyToMany = true; 400 | } else if (relationship.relationshipType === 'one-to-one' && !relationship.ownerSide) { 401 | this.fieldsContainNoOwnerOneToOne = true; 402 | } else if (relationship.relationshipType === 'one-to-one' && relationship.ownerSide) { 403 | this.fieldsContainOwnerOneToOne = true; 404 | } else if (relationship.relationshipType === 'one-to-many') { 405 | this.fieldsContainOneToMany = true; 406 | } else if (relationship.relationshipType === 'many-to-one') { 407 | this.fieldsContainManyToOne = true; 408 | } 409 | 410 | if (relationship.relationshipValidateRules && relationship.relationshipValidateRules.indexOf('required') !== -1) { 411 | relationship.relationshipValidate = relationship.relationshipRequired = this.validation = true; 412 | } 413 | 414 | var entityType = relationship.otherEntityNameCapitalized; 415 | if (this.differentTypes.indexOf(entityType) === -1) { 416 | this.differentTypes.push(entityType); 417 | } 418 | }, this); 419 | 420 | this.service = this.fileData.service; 421 | //Update the entity list view 422 | if (this.useTemplate) { 423 | jhipsterFunc.copyHtml(this.webTemplateDir + '/app/entities/_entity-management-template.ejs', 424 | this.webappDir + 'app/entities/' + this.entityFolderName + '/' + this.entityPluralFileName + '.html', 425 | this, {}, true); 426 | }else{ 427 | jhipsterFunc.copyHtml(this.webTemplateDir + '/app/entities/_entity-management.ejs', 428 | this.webappDir + 'app/entities/' + this.entityFolderName + '/' + this.entityPluralFileName + '.html', 429 | this, {}, true); 430 | } 431 | //Update the entity controller file 432 | this.template(this.webTemplateDir + '/app/entities/_entity-management.controller.ejs', 433 | this.webappDir + 'app/entities/' + this.entityFolderName + '/' + this.entityFileName + '.controller' + '.js', 434 | this, {}); 435 | }, this); 436 | } 437 | }, 438 | 439 | registering: function () { 440 | try { 441 | jhipsterFunc.registerModule("generator-jhipster-angular-datatables", "entity", "post"/*, "entity", "Change entity grid with angular-tables"*/); 442 | } catch (err) { 443 | this.log(chalk.red.bold('WARN!') + ' Could not register as a jhipster post entity creation hook...\n'); 444 | } 445 | }, 446 | }, 447 | 448 | install: function () { 449 | var injectDependenciesAndConstants = function () { 450 | this.spawnCommand('gulp', ['install']); 451 | }; 452 | 453 | this.installDependencies({ 454 | bower: true, 455 | npm: false, 456 | callback: injectDependenciesAndConstants.bind(this) 457 | }); 458 | } 459 | , 460 | 461 | end: function () { 462 | this.log('\n' + chalk.bold.green('Angular Datatables are enabled for entities, you will have an option to enable audit while creating new entities as well')); 463 | this.log('\n' + chalk.bold.green('I\'m running gulp install now')); 464 | } 465 | 466 | 467 | }) 468 | ; 469 | --------------------------------------------------------------------------------