diff --git a/NEWS b/NEWS index d08a558e6..f7df48a24 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ Enhancements - [web] add rel="noopener" to external links (#4764) - [web] add Indonesian (id) translation - [web] updated Angular Material to version 1.1.19 + - [web] replaced bower packages by npm packages Bug fixes - [web] fixed wrong translation of custom calendar categories diff --git a/UI/WebServerResources/GNUmakefile b/UI/WebServerResources/GNUmakefile index af3389e2f..84c686f94 100644 --- a/UI/WebServerResources/GNUmakefile +++ b/UI/WebServerResources/GNUmakefile @@ -10,16 +10,11 @@ CSS_FILES = css/styles.css css/styles.css.map css/no-animation.css css/no-anima .DEFAULT_GOAL := all dev: - npm install --production + npm install @if [ ! -e angular-material/src ]; then \ git submodule init; \ fi git submodule update - @if [ -d bower_components ]; then \ - bower update --allow-root; \ - else \ - bower install --allow-root; \ - fi grunt --stack build prod: diff --git a/UI/WebServerResources/Gruntfile.js b/UI/WebServerResources/Gruntfile.js index 0c6a46bab..037ebdbfa 100644 --- a/UI/WebServerResources/Gruntfile.js +++ b/UI/WebServerResources/Gruntfile.js @@ -17,8 +17,8 @@ module.exports = function(grunt) { }; var custom_vendor_files = { - 'js/vendor/angular-file-upload.min.js': ['bower_components/angular-file-upload/dist/angular-file-upload.js', 'js/Common/angular-file-upload.trump.js'], - 'js/vendor/FileSaver.min.js': ['bower_components/FileSaver/dist/FileSaver.js'] + 'js/vendor/angular-file-upload.min.js': ['node_modules/angular-file-upload/dist/angular-file-upload.js', 'js/Common/angular-file-upload.trump.js'], + 'js/vendor/FileSaver.min.js': ['node_modules/file-saver/dist/FileSaver.js'] }; require('time-grunt')(grunt); @@ -32,7 +32,7 @@ module.exports = function(grunt) { outFile: 'css/styles.css', noCache: true, includePaths: ['scss/', - 'bower_components/breakpoint-sass/stylesheets/' + 'node_modules/breakpoint-sass/stylesheets/' ] }, target: { @@ -48,15 +48,8 @@ module.exports = function(grunt) { map: true, processors: [ // See angular-material/gulp/util.js - require('autoprefixer')({ - browsers: [ - 'last 2 versions', - 'not ie <= 10', - 'not ie_mob <= 10', - 'last 4 Android versions', - 'Safari >= 8' - ] - }) + // See browserslist in package.json + require('autoprefixer')() ] }, src: ['css/styles.css', 'css/no-animation.css'] @@ -127,7 +120,7 @@ module.exports = function(grunt) { // Register Grunt tasks grunt.task.registerTask('static', function() { var options = { - 'src': 'bower_components', + 'src': 'node_modules', 'js_dest': 'js/vendor/', 'fonts_dest': 'fonts/', 'css_dest': 'css/' diff --git a/UI/WebServerResources/bower.json b/UI/WebServerResources/bower.json deleted file mode 100644 index 38a77557c..000000000 --- a/UI/WebServerResources/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "sogo-web", - "private": true, - "devDependencies": { - "angular": "1.7.x", - "angular-animate": "1.7.x", - "angular-aria": "1.7.x", - "angular-cookies": "1.7.x", - "angular-messages": "1.7.x", - "angular-sanitize": "1.7.x", - "angular-ui-router": "1.0.20", - "angular-file-upload": "latest", - "angular-material": "1.1.19", - "FileSaver": "latest", - "lodash": "latest", - "ng-sortable": "1.3.7", - "breakpoint-sass": ">=2.4.2" - } -} diff --git a/UI/WebServerResources/js/Scheduler/Attendees.service.js b/UI/WebServerResources/js/Scheduler/Attendees.service.js index 67d050413..ab47799c5 100644 --- a/UI/WebServerResources/js/Scheduler/Attendees.service.js +++ b/UI/WebServerResources/js/Scheduler/Attendees.service.js @@ -631,7 +631,7 @@ _this.currentEntries = _.flatMap(_this.component.organizer.freebusy[startDay]); for (i = 0; i < _this.component.attendees.length; i++) { attendee = _this.component.attendees[i]; - if (attendee.role !== Attendees.ROLES.NON_PARTICIPANT) { + if (attendee.freebusy && attendee.role !== Attendees.ROLES.NON_PARTICIPANT) { attendeeEntries = _.flatMap(attendee.freebusy[startDay]); for (j = 0; j < _this.currentEntries.length; j++) { _this.currentEntries[j] += attendeeEntries[j]; diff --git a/UI/WebServerResources/package.json b/UI/WebServerResources/package.json index 6ccd6bc4c..293100d12 100644 --- a/UI/WebServerResources/package.json +++ b/UI/WebServerResources/package.json @@ -1,21 +1,41 @@ { "name": "sogo-web", - "version": "3.0.0", - "homepage": "http://sogo.nu", - "bugs": "http://sogo.nu/bugs", + "homepage": "https://sogo.nu", + "bugs": "https://sogo.nu/bugs", + "dependencies": { + "angular": "1.7.x", + "angular-animate": "1.7.x", + "angular-aria": "1.7.x", + "angular-cookies": "1.7.x", + "angular-file-upload": "latest", + "angular-material": "1.1.19", + "angular-messages": "1.7.x", + "angular-sanitize": "1.7.x", + "angular-ui-router": "1.0.20", + "file-saver": "latest", + "lodash": "latest", + "ng-sortable": "1.3.7" + }, "devDependencies": { "autoprefixer": ">=6.0.3", - "bower": ">=1.3.8", + "breakpoint-sass": ">=2.4.2", "csswring": ">=3.0.0", "grunt": ">=0.4.1", + "grunt-contrib-cssmin": ">=1.0.0", "grunt-contrib-jshint": ">=0.11.2", "grunt-contrib-uglify": ">=0.9", "grunt-contrib-watch": ">=0.5.3", - "grunt-contrib-cssmin": ">=1.0.0", "grunt-ng-annotate": ">=0.10.0", "grunt-postcss": ">=0.6.0", "grunt-sass": "^2.0.0", - "time-grunt": "latest", - "kss": ">=2.1.0" - } + "kss": ">=2.1.0", + "time-grunt": "latest" + }, + "browserslist": [ + "last 2 versions", + "not ie <= 10", + "not ie_mob <= 10", + "last 4 Android versions", + "Safari >= 8" + ] }