diff --git a/Gruntfile.js b/Gruntfile.js index b4c176d..88c0fbb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,23 +1,26 @@ module.exports = function (grunt) { - - // Project configuration. - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - terser: { - options: { - // Task-specific options go here. - }, - build: { - // Target-specific file lists and/or options go here. - src: 'src/main/resources/static/js/bundle.js', - dest: 'src/main/resources/static/js/bundle.min.js' - }, - chat_worker: { - src: 'src/main/resources/static/js/worker.js', - dest: 'src/main/resources/static/js/worker.js' - }, - }, - banner: ` + // Project configuration. + grunt.initConfig({ + pkg: grunt.file.readJSON("package.json"), + terser: { + options: { + // Task-specific options go here. + }, + build: { + // Target-specific file lists and/or options go here. + src: "src/main/resources/static/js/bundle.js", + dest: "src/main/resources/static/js/bundle.min.js", + }, + chat_worker: { + src: "src/main/resources/static/js/worker.js", + dest: "src/main/resources/static/js/worker.js", + }, + admin_bundle: { + src: "src/main/resources/static/js/adminBundle.js", + dest: "src/main/resources/static/js/adminBundle.min.js", + }, + }, + banner: ` * ----------------------------------------- * @date <%= grunt.template.today("yyyy-mm-dd") %> * @project Chatto @@ -25,73 +28,110 @@ module.exports = function (grunt) { * @license GPL * ----------------------------------------- `, - usebanner: { - dist: { - options: { - position: 'top', - banner: '/*! <%= banner %> */ ' - }, - files: { - src: ['src/main/resources/static/js/bundle.min.js', 'src/main/resources/static/js/worker.js'] - } - } + usebanner: { + dist: { + options: { + position: "top", + banner: "/*! <%= banner %> */ ", }, - browserify: { - chat_worker_dev: { - src: 'src/main/frontend/workers/encryption-worker/main.ts', - dest: 'src/main/resources/static/js/worker.js', - options: { - browserifyOptions: { - debug: true - }, - } - }, - dev: { - src: 'src/main/frontend/chat/main.ts', - dest: 'src/main/resources/static/js/bundle.js', - options: { - browserifyOptions: { - debug: true - }, - } - }, - prod: { - src: 'src/main/frontend/chat/main.ts', - dest: 'src/main/resources/static/js/bundle.js', - banner: '/*! Chat.js <%= grunt.template.today("yyyy-mm-dd") %> */ ', - options: { - browserifyOptions: { - debug: false - }, - } - }, - chat_worker_prod: { - src: 'src/main/frontend/workers/encryption-worker/main.ts', - dest: 'src/main/resources/static/js/worker.min.js', + files: { + src: [ + "src/main/resources/static/js/bundle.min.js", + "src/main/resources/static/js/adminBundle.min.js", + "src/main/resources/static/js/worker.js", + ], + }, + }, + }, + browserify: { + chat_worker_dev: { + src: "src/main/frontend/workers/encryption-worker/main.ts", + dest: "src/main/resources/static/js/worker.js", + options: { + browserifyOptions: { + debug: true, + }, + }, + }, + dev: { + src: "src/main/frontend/chat/main.ts", + dest: "src/main/resources/static/js/bundle.js", + options: { + browserifyOptions: { + debug: true, + }, + }, + }, + prod: { + src: "src/main/frontend/chat/main.ts", + dest: "src/main/resources/static/js/bundle.js", + banner: '/*! Chat.js <%= grunt.template.today("yyyy-mm-dd") %> */ ', + options: { + browserifyOptions: { + debug: false, + }, + }, + }, + chat_worker_prod: { + src: "src/main/frontend/workers/encryption-worker/main.ts", + dest: "src/main/resources/static/js/worker.min.js", + }, + admin_bundle_dev: { + src: "src/main/frontend/admin/main.ts", + dest: "src/main/resources/static/js/adminBundle.js", + options: { + browserifyOptions: { + debug: true, + }, + }, + }, + admin_bundle_prod: { + src: "src/main/frontend/admin/main.ts", + dest: "src/main/resources/static/js/adminBundle.js", + banner: '/*! Chat.js <%= grunt.template.today("yyyy-mm-dd") %> */ ', + options: { + browserifyOptions: { + debug: false, + }, + }, + }, + options: { + plugin: [ + [ + "tsify", + { + target: "ES6", + noImplicitAny: true, + esModuleInterop: true, + allowSyntheticDefaultImports: true, }, - options: { - plugin: [ - ['tsify', { target: 'ES6', noImplicitAny: true, esModuleInterop: true, allowSyntheticDefaultImports: true }], // register plugin by name - ], - - - browserifyOptions: {}, - } - } - }); - - // Load the plugin that provides the "uglify" task. - grunt.loadNpmTasks('grunt-terser'); - - // // Default task(s). - // grunt.registerTask('default', ['uglify']); + ], // register plugin by name + ], - grunt.loadNpmTasks('grunt-browserify') - grunt.loadNpmTasks('grunt-banner'); + browserifyOptions: {}, + }, + }, + }); + // Load the plugin that provides the "uglify" task. + grunt.loadNpmTasks("grunt-terser"); + // // Default task(s). + // grunt.registerTask('default', ['uglify']); - grunt.registerTask('default', ['browserify:dev', 'browserify:chat_worker_dev']) - grunt.registerTask('prod', ["browserify:prod", 'browserify:chat_worker_dev', "terser", 'usebanner']) + grunt.loadNpmTasks("grunt-browserify"); + grunt.loadNpmTasks("grunt-banner"); -}; \ No newline at end of file + grunt.registerTask("default", [ + "browserify:dev", + "browserify:chat_worker_dev", + "browserify:admin_bundle_dev", + ]); + grunt.registerTask("prod", [ + "browserify:prod", + "browserify:chat_worker_dev", + "browserify:admin_bundle_prod", + "terser", + "usebanner", + ]); +}; diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index ce43b11..68a8386 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -6,4 +6,5 @@ logging.level.org.hibernate.type.descriptor.sql.BasicBinder=INFO spring.http.log-request-details=false logging.level.org.springframework.cache = INFO chat-bundle=bundle.min.js +admin-bundle=adminBundle.min.js chatto.frontend.log-level=INFO \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c07868b..ddb0a43 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,6 @@ #spring.datasource.url = jdbc:mysql://localhost:3306/chatto_db?useSSL=false #spring.datasource.username = chatto_user #spring.datasource.password = password - chatto.datasource.username=chatto_user chatto.datasource.password=password chatto.datasource.database-name=chatto_db2 @@ -29,6 +28,7 @@ spring.cache.jcache.config=classpath:ehcache.xml logging.level.org.springframework.cache=DEBUG chatto.token.timeout-duration=30 chat-bundle=bundle.js +admin-bundle=adminBundle.js # spring.devtools.add-properties=false chatto.frontend.log-level=TRACE chatto.frontend.chat-page-size=9 \ No newline at end of file diff --git a/src/main/resources/templates/fragments/admin.html b/src/main/resources/templates/fragments/admin.html index deaffa8..77adf24 100644 --- a/src/main/resources/templates/fragments/admin.html +++ b/src/main/resources/templates/fragments/admin.html @@ -42,11 +42,9 @@ crossorigin="anonymous" /> --> - + - - @@ -73,6 +71,9 @@ href="../../../resources/static/css/dataTables.bootstrap4.min.css"> + +