Merge pull request #3202 from dpalou/MOBILE-3833

Mobile 3833
main
Pau Ferrer Ocaña 2022-03-24 11:29:30 +01:00 committed by GitHub
commit 275111e8ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 345 additions and 328 deletions

349
package-lock.json generated
View File

@ -9,40 +9,40 @@
"version": "4.0.0-dev",
"license": "Apache-2.0",
"dependencies": {
"@angular/animations": "~10.0.14",
"@angular/common": "~10.0.14",
"@angular/core": "~10.0.14",
"@angular/forms": "~10.0.14",
"@angular/platform-browser": "~10.0.14",
"@angular/platform-browser-dynamic": "~10.0.14",
"@angular/router": "~10.0.14",
"@ionic-native/badge": "^5.33.0",
"@ionic-native/camera": "^5.33.0",
"@ionic-native/chooser": "^5.33.0",
"@ionic-native/clipboard": "^5.33.0",
"@ionic-native/core": "^5.33.0",
"@ionic-native/device": "^5.33.0",
"@ionic-native/diagnostic": "^5.33.0",
"@ionic-native/file": "^5.33.0",
"@ionic-native/file-opener": "^5.33.0",
"@ionic-native/file-transfer": "^5.33.0",
"@ionic-native/geolocation": "^5.33.0",
"@ionic-native/http": "^5.33.0",
"@ionic-native/in-app-browser": "^5.33.0",
"@ionic-native/ionic-webview": "^5.33.0",
"@ionic-native/keyboard": "^5.33.0",
"@ionic-native/local-notifications": "^5.33.0",
"@ionic-native/media": "^5.33.0",
"@ionic-native/media-capture": "^5.33.0",
"@ionic-native/network": "^5.33.0",
"@ionic-native/push": "^5.33.0",
"@ionic-native/qr-scanner": "^5.33.0",
"@ionic-native/splash-screen": "^5.33.0",
"@ionic-native/sqlite": "^5.33.0",
"@ionic-native/status-bar": "^5.33.0",
"@ionic-native/web-intent": "^5.33.0",
"@ionic-native/zip": "^5.33.0",
"@ionic/angular": "^5.9.2",
"@angular/animations": "10.0.14",
"@angular/common": "10.0.14",
"@angular/core": "10.0.14",
"@angular/forms": "10.0.14",
"@angular/platform-browser": "10.0.14",
"@angular/platform-browser-dynamic": "10.0.14",
"@angular/router": "10.0.14",
"@ionic-native/badge": "5.33.0",
"@ionic-native/camera": "5.33.0",
"@ionic-native/chooser": "5.33.0",
"@ionic-native/clipboard": "5.33.0",
"@ionic-native/core": "5.33.0",
"@ionic-native/device": "5.33.0",
"@ionic-native/diagnostic": "5.33.0",
"@ionic-native/file": "5.33.0",
"@ionic-native/file-opener": "5.33.0",
"@ionic-native/file-transfer": "5.33.0",
"@ionic-native/geolocation": "5.33.0",
"@ionic-native/http": "5.33.0",
"@ionic-native/in-app-browser": "5.33.0",
"@ionic-native/ionic-webview": "5.33.0",
"@ionic-native/keyboard": "5.33.0",
"@ionic-native/local-notifications": "5.33.0",
"@ionic-native/media": "5.33.0",
"@ionic-native/media-capture": "5.33.0",
"@ionic-native/network": "5.33.0",
"@ionic-native/push": "5.33.0",
"@ionic-native/qr-scanner": "5.33.0",
"@ionic-native/splash-screen": "5.33.0",
"@ionic-native/sqlite": "5.33.0",
"@ionic-native/status-bar": "5.33.0",
"@ionic-native/web-intent": "5.33.0",
"@ionic-native/zip": "5.33.0",
"@ionic/angular": "5.9.2",
"@moodlehq/cordova-plugin-file-transfer": "1.7.1-moodle.5",
"@moodlehq/cordova-plugin-inappbrowser": "5.0.0-moodle.3",
"@moodlehq/cordova-plugin-ionic-webview": "5.0.0-moodle.1",
@ -50,105 +50,105 @@
"@moodlehq/cordova-plugin-qrscanner": "3.0.1-moodle.2",
"@moodlehq/cordova-plugin-zip": "3.1.0-moodle.1",
"@moodlehq/phonegap-plugin-push": "2.0.0-moodle.2",
"@ngx-translate/core": "^13.0.0",
"@ngx-translate/http-loader": "^6.0.0",
"@types/chart.js": "^2.9.31",
"@ngx-translate/core": "13.0.0",
"@ngx-translate/http-loader": "6.0.0",
"@types/chart.js": "2.9.31",
"@types/cordova": "0.0.34",
"@types/dom-mediacapture-record": "^1.0.7",
"chart.js": "^2.9.4",
"com-darryncampbell-cordova-plugin-intent": "^2.2.0",
"cordova": "^11.0.0",
"cordova-android": "^10.1.1",
"cordova-clipboard": "^1.3.0",
"cordova-ios": "^6.2.0",
"cordova-plugin-add-swift-support": "^2.0.2",
"cordova-plugin-advanced-http": "^3.2.2",
"cordova-plugin-badge": "^0.8.8",
"cordova-plugin-camera": "^6.0.0",
"cordova-plugin-chooser": "^1.3.2",
"cordova-plugin-customurlscheme": "^5.0.2",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-file-opener2": "^3.0.5",
"cordova-plugin-geolocation": "^4.1.0",
"cordova-plugin-globalization": "^1.11.0",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-media": "^5.0.4",
"cordova-plugin-media-capture": "^3.0.3",
"cordova-plugin-network-information": "^3.0.0",
"cordova-plugin-prevent-override": "^1.0.1",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-statusbar": "^3.0.0",
"cordova-plugin-wkuserscript": "^1.0.1",
"cordova-plugin-wkwebview-cookies": "^1.0.1",
"cordova-sqlite-storage": "^6.0.0",
"cordova.plugins.diagnostic": "^6.1.1",
"core-js": "^3.9.1",
"es6-promise-plugin": "^4.2.2",
"hammerjs": "^2.0.8",
"jszip": "^3.5.0",
"@types/dom-mediacapture-record": "1.0.7",
"chart.js": "2.9.4",
"com-darryncampbell-cordova-plugin-intent": "2.2.0",
"cordova": "11.0.0",
"cordova-android": "10.1.1",
"cordova-clipboard": "1.3.0",
"cordova-ios": "6.2.0",
"cordova-plugin-add-swift-support": "2.0.2",
"cordova-plugin-advanced-http": "3.2.2",
"cordova-plugin-badge": "0.8.8",
"cordova-plugin-camera": "6.0.0",
"cordova-plugin-chooser": "1.3.2",
"cordova-plugin-customurlscheme": "5.0.2",
"cordova-plugin-device": "2.0.3",
"cordova-plugin-file": "6.0.2",
"cordova-plugin-file-opener2": "3.0.5",
"cordova-plugin-geolocation": "4.1.0",
"cordova-plugin-globalization": "1.11.0",
"cordova-plugin-ionic-keyboard": "2.2.0",
"cordova-plugin-media": "5.0.4",
"cordova-plugin-media-capture": "3.0.3",
"cordova-plugin-network-information": "3.0.0",
"cordova-plugin-prevent-override": "1.0.1",
"cordova-plugin-splashscreen": "6.0.0",
"cordova-plugin-statusbar": "3.0.0",
"cordova-plugin-wkuserscript": "1.0.1",
"cordova-plugin-wkwebview-cookies": "1.0.1",
"cordova-sqlite-storage": "6.0.0",
"cordova.plugins.diagnostic": "6.1.1",
"core-js": "3.9.1",
"es6-promise-plugin": "4.2.2",
"hammerjs": "2.0.8",
"jszip": "3.5.0",
"mathjax": "2.7.7",
"moment": "^2.29.0",
"nl.kingsquare.cordova.background-audio": "^1.0.1",
"rxjs": "~6.5.5",
"ts-md5": "^1.2.7",
"tslib": "^2.3.1",
"zone.js": "~0.10.3"
"moment": "2.29.0",
"nl.kingsquare.cordova.background-audio": "1.0.1",
"rxjs": "6.5.5",
"ts-md5": "1.2.7",
"tslib": "2.3.1",
"zone.js": "0.10.3"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^10.0.1",
"@angular-devkit/architect": "^0.1202.7",
"@angular-devkit/build-angular": "~0.1000.8",
"@angular-eslint/builder": "^4.2.0",
"@angular-eslint/eslint-plugin": "^4.2.0",
"@angular-eslint/eslint-plugin-template": "^4.2.0",
"@angular-eslint/schematics": "^4.2.0",
"@angular-eslint/template-parser": "^4.2.0",
"@angular/cli": "~10.0.8",
"@angular/compiler": "~10.0.14",
"@angular/compiler-cli": "~10.0.14",
"@angular/language-service": "~10.0.14",
"@ionic/angular-toolkit": "^2.3.3",
"@ionic/cli": "^6.14.1",
"@types/faker": "^5.1.3",
"@types/node": "^12.12.64",
"@types/resize-observer-browser": "^0.1.5",
"@types/webpack-env": "^1.16.0",
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0",
"check-es-compat": "^1.1.1",
"cordova-plugin-androidx-adapter": "^1.1.3",
"eslint": "^7.25.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest": "^24.3.6",
"eslint-plugin-jsdoc": "^32.3.3",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-promise": "^5.1.0",
"faker": "^5.1.0",
"fs-extra": "^9.1.0",
"@angular-builders/custom-webpack": "10.0.1",
"@angular-devkit/architect": "0.1202.7",
"@angular-devkit/build-angular": "0.1000.8",
"@angular-eslint/builder": "4.2.0",
"@angular-eslint/eslint-plugin": "4.2.0",
"@angular-eslint/eslint-plugin-template": "4.2.0",
"@angular-eslint/schematics": "4.2.0",
"@angular-eslint/template-parser": "4.2.0",
"@angular/cli": "10.0.8",
"@angular/compiler": "10.0.14",
"@angular/compiler-cli": "10.0.14",
"@angular/language-service": "10.0.14",
"@ionic/angular-toolkit": "2.3.3",
"@ionic/cli": "6.14.1",
"@types/faker": "5.1.3",
"@types/node": "12.12.64",
"@types/resize-observer-browser": "0.1.5",
"@types/webpack-env": "1.16.0",
"@typescript-eslint/eslint-plugin": "4.22.0",
"@typescript-eslint/parser": "4.22.0",
"check-es-compat": "1.1.1",
"cordova-plugin-androidx-adapter": "1.1.3",
"eslint": "7.25.0",
"eslint-config-prettier": "8.3.0",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jest": "24.3.6",
"eslint-plugin-jsdoc": "32.3.3",
"eslint-plugin-prefer-arrow": "1.2.3",
"eslint-plugin-promise": "5.1.0",
"faker": "5.1.0",
"fs-extra": "9.1.0",
"gulp": "4.0.2",
"gulp-clip-empty-files": "^0.1.2",
"gulp-concat": "^2.6.1",
"gulp-flatten": "^0.4.0",
"gulp-htmlmin": "^5.0.1",
"gulp-rename": "^2.0.0",
"gulp-slash": "^1.1.3",
"jest": "^26.5.2",
"jest-preset-angular": "^8.3.1",
"jsonc-parser": "^2.3.1",
"native-run": "^1.4.0",
"terser-webpack-plugin": "^4.2.3",
"ts-jest": "^26.4.1",
"ts-node": "~8.3.0",
"typescript": "^3.9.9"
"gulp-clip-empty-files": "0.1.2",
"gulp-concat": "2.6.1",
"gulp-flatten": "0.4.0",
"gulp-htmlmin": "5.0.1",
"gulp-rename": "2.0.0",
"gulp-slash": "1.1.3",
"jest": "26.5.2",
"jest-preset-angular": "8.3.1",
"jsonc-parser": "2.3.1",
"native-run": "1.4.0",
"terser-webpack-plugin": "4.2.3",
"ts-jest": "26.4.1",
"ts-node": "8.3.0",
"typescript": "3.9.9"
},
"engines": {
"node": ">=14.15.0 <15"
},
"optionalDependencies": {
"keytar": "^7.2.0"
"keytar": "7.2.0"
}
},
"node_modules/@angular-builders/custom-webpack": {
@ -7987,9 +7987,23 @@
}
},
"node_modules/base64-js": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/batch": {
"version": "0.6.1",
@ -14880,9 +14894,9 @@
}
},
"node_modules/follow-redirects": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz",
"integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==",
"version": "1.14.8",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
"dev": true,
"funding": [
{
@ -14892,6 +14906,11 @@
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/for-in": {
@ -23128,9 +23147,9 @@
}
},
"node_modules/path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-root": {
"version": "0.1.1",
@ -23369,13 +23388,12 @@
}
},
"node_modules/plist": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
"integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
"integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
"dependencies": {
"base64-js": "^1.2.3",
"xmlbuilder": "^9.0.7",
"xmldom": "0.1.x"
"base64-js": "^1.5.1",
"xmlbuilder": "^9.0.7"
},
"engines": {
"node": ">=6"
@ -29575,9 +29593,9 @@
}
},
"node_modules/url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
"integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dev": true,
"dependencies": {
"querystringify": "^2.1.1",
@ -31206,15 +31224,6 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
"node_modules/xmldom": {
"version": "0.1.31",
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
"integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
"deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0",
"engines": {
"node": ">=0.1"
}
},
"node_modules/xregexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
@ -37446,9 +37455,9 @@
}
},
"base64-js": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"batch": {
"version": "0.6.1",
@ -42810,9 +42819,9 @@
}
},
"follow-redirects": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz",
"integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==",
"version": "1.14.8",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
"dev": true
},
"for-in": {
@ -49379,9 +49388,9 @@
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"path-root": {
"version": "0.1.1",
@ -49558,13 +49567,12 @@
}
},
"plist": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
"integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
"integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
"requires": {
"base64-js": "^1.2.3",
"xmlbuilder": "^9.0.7",
"xmldom": "0.1.x"
"base64-js": "^1.5.1",
"xmlbuilder": "^9.0.7"
}
},
"plugin-error": {
@ -54564,9 +54572,9 @@
}
},
"url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
"integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dev": true,
"requires": {
"querystringify": "^2.1.1",
@ -55888,11 +55896,6 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
"xmldom": {
"version": "0.1.31",
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
"integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
},
"xregexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",

View File

@ -38,40 +38,40 @@
"ionic:build:before": "gulp"
},
"dependencies": {
"@angular/animations": "~10.0.14",
"@angular/common": "~10.0.14",
"@angular/core": "~10.0.14",
"@angular/forms": "~10.0.14",
"@angular/platform-browser": "~10.0.14",
"@angular/platform-browser-dynamic": "~10.0.14",
"@angular/router": "~10.0.14",
"@ionic-native/badge": "^5.33.0",
"@ionic-native/camera": "^5.33.0",
"@ionic-native/chooser": "^5.33.0",
"@ionic-native/clipboard": "^5.33.0",
"@ionic-native/core": "^5.33.0",
"@ionic-native/device": "^5.33.0",
"@ionic-native/diagnostic": "^5.33.0",
"@ionic-native/file": "^5.33.0",
"@ionic-native/file-opener": "^5.33.0",
"@ionic-native/file-transfer": "^5.33.0",
"@ionic-native/geolocation": "^5.33.0",
"@ionic-native/http": "^5.33.0",
"@ionic-native/in-app-browser": "^5.33.0",
"@ionic-native/ionic-webview": "^5.33.0",
"@ionic-native/keyboard": "^5.33.0",
"@ionic-native/local-notifications": "^5.33.0",
"@ionic-native/media": "^5.33.0",
"@ionic-native/media-capture": "^5.33.0",
"@ionic-native/network": "^5.33.0",
"@ionic-native/push": "^5.33.0",
"@ionic-native/qr-scanner": "^5.33.0",
"@ionic-native/splash-screen": "^5.33.0",
"@ionic-native/sqlite": "^5.33.0",
"@ionic-native/status-bar": "^5.33.0",
"@ionic-native/web-intent": "^5.33.0",
"@ionic-native/zip": "^5.33.0",
"@ionic/angular": "^5.9.2",
"@angular/animations": "10.0.14",
"@angular/common": "10.0.14",
"@angular/core": "10.0.14",
"@angular/forms": "10.0.14",
"@angular/platform-browser": "10.0.14",
"@angular/platform-browser-dynamic": "10.0.14",
"@angular/router": "10.0.14",
"@ionic-native/badge": "5.33.0",
"@ionic-native/camera": "5.33.0",
"@ionic-native/chooser": "5.33.0",
"@ionic-native/clipboard": "5.33.0",
"@ionic-native/core": "5.33.0",
"@ionic-native/device": "5.33.0",
"@ionic-native/diagnostic": "5.33.0",
"@ionic-native/file": "5.33.0",
"@ionic-native/file-opener": "5.33.0",
"@ionic-native/file-transfer": "5.33.0",
"@ionic-native/geolocation": "5.33.0",
"@ionic-native/http": "5.33.0",
"@ionic-native/in-app-browser": "5.33.0",
"@ionic-native/ionic-webview": "5.33.0",
"@ionic-native/keyboard": "5.33.0",
"@ionic-native/local-notifications": "5.33.0",
"@ionic-native/media": "5.33.0",
"@ionic-native/media-capture": "5.33.0",
"@ionic-native/network": "5.33.0",
"@ionic-native/push": "5.33.0",
"@ionic-native/qr-scanner": "5.33.0",
"@ionic-native/splash-screen": "5.33.0",
"@ionic-native/sqlite": "5.33.0",
"@ionic-native/status-bar": "5.33.0",
"@ionic-native/web-intent": "5.33.0",
"@ionic-native/zip": "5.33.0",
"@ionic/angular": "5.9.2",
"@moodlehq/cordova-plugin-file-transfer": "1.7.1-moodle.5",
"@moodlehq/cordova-plugin-inappbrowser": "5.0.0-moodle.3",
"@moodlehq/cordova-plugin-ionic-webview": "5.0.0-moodle.1",
@ -79,99 +79,99 @@
"@moodlehq/cordova-plugin-qrscanner": "3.0.1-moodle.2",
"@moodlehq/cordova-plugin-zip": "3.1.0-moodle.1",
"@moodlehq/phonegap-plugin-push": "2.0.0-moodle.2",
"@ngx-translate/core": "^13.0.0",
"@ngx-translate/http-loader": "^6.0.0",
"@types/chart.js": "^2.9.31",
"@ngx-translate/core": "13.0.0",
"@ngx-translate/http-loader": "6.0.0",
"@types/chart.js": "2.9.31",
"@types/cordova": "0.0.34",
"@types/dom-mediacapture-record": "^1.0.7",
"chart.js": "^2.9.4",
"com-darryncampbell-cordova-plugin-intent": "^2.2.0",
"cordova": "^11.0.0",
"cordova-android": "^10.1.1",
"cordova-clipboard": "^1.3.0",
"cordova-ios": "^6.2.0",
"cordova-plugin-add-swift-support": "^2.0.2",
"cordova-plugin-advanced-http": "^3.2.2",
"cordova-plugin-badge": "^0.8.8",
"cordova-plugin-camera": "^6.0.0",
"cordova-plugin-chooser": "^1.3.2",
"cordova-plugin-customurlscheme": "^5.0.2",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-file-opener2": "^3.0.5",
"cordova-plugin-geolocation": "^4.1.0",
"cordova-plugin-globalization": "^1.11.0",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-media": "^5.0.4",
"cordova-plugin-media-capture": "^3.0.3",
"cordova-plugin-network-information": "^3.0.0",
"cordova-plugin-prevent-override": "^1.0.1",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-statusbar": "^3.0.0",
"cordova-plugin-wkuserscript": "^1.0.1",
"cordova-plugin-wkwebview-cookies": "^1.0.1",
"cordova-sqlite-storage": "^6.0.0",
"cordova.plugins.diagnostic": "^6.1.1",
"core-js": "^3.9.1",
"es6-promise-plugin": "^4.2.2",
"hammerjs": "^2.0.8",
"jszip": "^3.5.0",
"@types/dom-mediacapture-record": "1.0.7",
"chart.js": "2.9.4",
"com-darryncampbell-cordova-plugin-intent": "2.2.0",
"cordova": "11.0.0",
"cordova-android": "10.1.1",
"cordova-clipboard": "1.3.0",
"cordova-ios": "6.2.0",
"cordova-plugin-add-swift-support": "2.0.2",
"cordova-plugin-advanced-http": "3.2.2",
"cordova-plugin-badge": "0.8.8",
"cordova-plugin-camera": "6.0.0",
"cordova-plugin-chooser": "1.3.2",
"cordova-plugin-customurlscheme": "5.0.2",
"cordova-plugin-device": "2.0.3",
"cordova-plugin-file": "6.0.2",
"cordova-plugin-file-opener2": "3.0.5",
"cordova-plugin-geolocation": "4.1.0",
"cordova-plugin-globalization": "1.11.0",
"cordova-plugin-ionic-keyboard": "2.2.0",
"cordova-plugin-media": "5.0.4",
"cordova-plugin-media-capture": "3.0.3",
"cordova-plugin-network-information": "3.0.0",
"cordova-plugin-prevent-override": "1.0.1",
"cordova-plugin-splashscreen": "6.0.0",
"cordova-plugin-statusbar": "3.0.0",
"cordova-plugin-wkuserscript": "1.0.1",
"cordova-plugin-wkwebview-cookies": "1.0.1",
"cordova-sqlite-storage": "6.0.0",
"cordova.plugins.diagnostic": "6.1.1",
"core-js": "3.9.1",
"es6-promise-plugin": "4.2.2",
"hammerjs": "2.0.8",
"jszip": "3.5.0",
"mathjax": "2.7.7",
"moment": "^2.29.0",
"nl.kingsquare.cordova.background-audio": "^1.0.1",
"rxjs": "~6.5.5",
"ts-md5": "^1.2.7",
"tslib": "^2.3.1",
"zone.js": "~0.10.3"
"moment": "2.29.0",
"nl.kingsquare.cordova.background-audio": "1.0.1",
"rxjs": "6.5.5",
"ts-md5": "1.2.7",
"tslib": "2.3.1",
"zone.js": "0.10.3"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^10.0.1",
"@angular-devkit/architect": "^0.1202.7",
"@angular-devkit/build-angular": "~0.1000.8",
"@angular-eslint/builder": "^4.2.0",
"@angular-eslint/eslint-plugin": "^4.2.0",
"@angular-eslint/eslint-plugin-template": "^4.2.0",
"@angular-eslint/schematics": "^4.2.0",
"@angular-eslint/template-parser": "^4.2.0",
"@angular/cli": "~10.0.8",
"@angular/compiler": "~10.0.14",
"@angular/compiler-cli": "~10.0.14",
"@angular/language-service": "~10.0.14",
"@ionic/angular-toolkit": "^2.3.3",
"@ionic/cli": "^6.14.1",
"@types/faker": "^5.1.3",
"@types/node": "^12.12.64",
"@types/resize-observer-browser": "^0.1.5",
"@types/webpack-env": "^1.16.0",
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0",
"check-es-compat": "^1.1.1",
"cordova-plugin-androidx-adapter": "^1.1.3",
"eslint": "^7.25.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest": "^24.3.6",
"eslint-plugin-jsdoc": "^32.3.3",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-promise": "^5.1.0",
"faker": "^5.1.0",
"fs-extra": "^9.1.0",
"@angular-builders/custom-webpack": "10.0.1",
"@angular-devkit/architect": "0.1202.7",
"@angular-devkit/build-angular": "0.1000.8",
"@angular-eslint/builder": "4.2.0",
"@angular-eslint/eslint-plugin": "4.2.0",
"@angular-eslint/eslint-plugin-template": "4.2.0",
"@angular-eslint/schematics": "4.2.0",
"@angular-eslint/template-parser": "4.2.0",
"@angular/cli": "10.0.8",
"@angular/compiler": "10.0.14",
"@angular/compiler-cli": "10.0.14",
"@angular/language-service": "10.0.14",
"@ionic/angular-toolkit": "2.3.3",
"@ionic/cli": "6.14.1",
"@types/faker": "5.1.3",
"@types/node": "12.12.64",
"@types/resize-observer-browser": "0.1.5",
"@types/webpack-env": "1.16.0",
"@typescript-eslint/eslint-plugin": "4.22.0",
"@typescript-eslint/parser": "4.22.0",
"check-es-compat": "1.1.1",
"cordova-plugin-androidx-adapter": "1.1.3",
"eslint": "7.25.0",
"eslint-config-prettier": "8.3.0",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-jest": "24.3.6",
"eslint-plugin-jsdoc": "32.3.3",
"eslint-plugin-prefer-arrow": "1.2.3",
"eslint-plugin-promise": "5.1.0",
"faker": "5.1.0",
"fs-extra": "9.1.0",
"gulp": "4.0.2",
"gulp-clip-empty-files": "^0.1.2",
"gulp-concat": "^2.6.1",
"gulp-flatten": "^0.4.0",
"gulp-htmlmin": "^5.0.1",
"gulp-rename": "^2.0.0",
"gulp-slash": "^1.1.3",
"jest": "^26.5.2",
"jest-preset-angular": "^8.3.1",
"jsonc-parser": "^2.3.1",
"native-run": "^1.4.0",
"terser-webpack-plugin": "^4.2.3",
"ts-jest": "^26.4.1",
"ts-node": "~8.3.0",
"typescript": "^3.9.9"
"gulp-clip-empty-files": "0.1.2",
"gulp-concat": "2.6.1",
"gulp-flatten": "0.4.0",
"gulp-htmlmin": "5.0.1",
"gulp-rename": "2.0.0",
"gulp-slash": "1.1.3",
"jest": "26.5.2",
"jest-preset-angular": "8.3.1",
"jsonc-parser": "2.3.1",
"native-run": "1.4.0",
"terser-webpack-plugin": "4.2.3",
"ts-jest": "26.4.1",
"ts-node": "8.3.0",
"typescript": "3.9.9"
},
"engines": {
"node": ">=14.15.0 <15"
@ -242,6 +242,6 @@
}
},
"optionalDependencies": {
"keytar": "^7.2.0"
"keytar": "7.2.0"
}
}

View File

@ -203,6 +203,15 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
await this.invalidateCourses(courseIds);
}
/**
* Invalidate list of courses.
*
* @return Promise resolved when done.
*/
protected invalidateCourseList(): Promise<void> {
return CoreCourses.invalidateUserCourses();
}
/**
* Helper function to invalidate only selected courses.
*
@ -213,7 +222,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
const promises: Promise<void>[] = [];
// Invalidate course completion data.
promises.push(CoreCourses.invalidateUserCourses().finally(() =>
promises.push(this.invalidateCourseList().finally(() =>
CoreUtils.allPromises(courseIds.map((courseId) =>
AddonCourseCompletion.invalidateCourseCompletion(courseId)))));
@ -397,7 +406,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
course.hidden = !!data.value;
}
await this.invalidateCourses([course.id]);
await this.invalidateCourseList();
await this.filterCourses();
}
@ -409,7 +418,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
course.lastaccess = CoreTimeUtils.timestamp();
await this.invalidateCourses([course.id]);
await this.invalidateCourseList();
await this.filterCourses();
}
}

View File

@ -85,6 +85,17 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom
await this.invalidateCourses(courseIds);
}
/**
* Invalidate list of courses.
*
* @return Promise resolved when done.
*/
protected async invalidateCourseList(): Promise<void> {
return this.site.isVersionGreaterEqualThan('3.8')
? CoreCourses.invalidateRecentCourses()
: CoreCourses.invalidateUserCourses();
}
/**
* Helper function to invalidate only selected courses.
*
@ -94,12 +105,8 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom
protected async invalidateCourses(courseIds: number[]): Promise<void> {
const promises: Promise<void>[] = [];
const invalidateCoursePromise = this.site.isVersionGreaterEqualThan('3.8')
? CoreCourses.invalidateRecentCourses()
: CoreCourses.invalidateUserCourses();
// Invalidate course completion data.
promises.push(invalidateCoursePromise.finally(() =>
promises.push(this.invalidateCourseList().finally(() =>
CoreUtils.allPromises(courseIds.map((courseId) =>
AddonCourseCompletion.invalidateCourseCompletion(courseId)))));
@ -179,13 +186,13 @@ export class AddonBlockRecentlyAccessedCoursesComponent extends CoreBlockBaseCom
this.courses.splice(courseIndex, 1);
this.courses.unshift(course);
await this.invalidateCourses([course.id]);
await this.invalidateCourseList();
}
if (data.action == CoreCoursesProvider.ACTION_STATE_CHANGED &&
data.state == CoreCoursesProvider.STATE_FAVOURITE && course) {
course.isfavourite = !!data.value;
await this.invalidateCourses([course.id]);
await this.invalidateCourseList();
}
}

View File

@ -81,6 +81,15 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im
await this.invalidateCourses(courseIds);
}
/**
* Invalidate list of courses.
*
* @return Promise resolved when done.
*/
protected async invalidateCourseList(): Promise<void> {
return AddonBlockStarredCourses.invalidateStarredCourses();
}
/**
* Helper function to invalidate only selected courses.
*
@ -91,7 +100,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im
const promises: Promise<void>[] = [];
// Invalidate course completion data.
promises.push(AddonBlockStarredCourses.invalidateStarredCourses().finally(() =>
promises.push(this.invalidateCourseList().finally(() =>
CoreUtils.allPromises(courseIds.map((courseId) =>
AddonCourseCompletion.invalidateCourseCompletion(courseId)))));
@ -172,7 +181,7 @@ export class AddonBlockStarredCoursesComponent extends CoreBlockBaseComponent im
this.courses.unshift(course);
}
await this.invalidateCourses([course.id]);
await this.invalidateCourseList();
}
}

View File

@ -243,6 +243,8 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
this.isEmpty = true;
this.groupInfo = undefined;
return;
} else {
canSearch = true;
canAdd = this.access.canaddentry;

View File

@ -325,7 +325,7 @@ export class CoreCompileProvider {
// Inject the provider to the instance. We use the class name as the property name.
instance[providerDef.name.replace(/DelegateService$/, 'Delegate')] = this.injector.get(providerDef);
} catch (ex) {
this.logger.warn('Error injecting provider', providerDef.name, ex);
this.logger.error('Error injecting provider', providerDef.name, ex);
}
}
}

View File

@ -20,6 +20,7 @@ import { CoreStatusWithWarningsWSResponse, CoreWarningsWSResponse, CoreWSExterna
import { CoreEvents } from '@singletons/events';
import { CoreWSError } from '@classes/errors/wserror';
import { CoreCourseAnyCourseDataWithExtraInfoAndOptions, CoreCourseWithImageAndColor } from './courses-helper';
import { CoreUtils } from '@services/utils/utils';
const ROOT_CACHE_KEY = 'mmCourses:';
@ -625,25 +626,13 @@ export class CoreCoursesProvider {
// Get the list of courseIds to use based on the param.
courseIds = await this.getCourseIdsForAdminAndNavOptions(courseIds, siteId);
let navOptions: CoreCourseUserAdminOrNavOptionCourseIndexed;
let admOptions: CoreCourseUserAdminOrNavOptionCourseIndexed;
// Get user navigation and administration options.
try {
navOptions = await this.getUserNavigationOptions(courseIds, siteId);
} catch {
// Couldn't get it, return empty options.
navOptions = {};
}
const [navOptions, admOptions] = await Promise.all([
CoreUtils.ignoreErrors(this.getUserNavigationOptions(courseIds, siteId), {}),
CoreUtils.ignoreErrors(this.getUserAdministrationOptions(courseIds, siteId), {}),
]);
try {
admOptions = await this.getUserAdministrationOptions(courseIds, siteId);
} catch {
// Couldn't get it, return empty options.
admOptions = {};
}
return ({ navOptions: navOptions, admOptions: admOptions });
return { navOptions: navOptions, admOptions: admOptions };
}
/**

View File

@ -29,8 +29,6 @@ import { CoreFileHelper } from './file-helper';
@Injectable({ providedIn: 'root' })
export class CorePluginFileDelegateService extends CoreDelegate<CorePluginFileHandler> {
protected handlerNameProperty = 'component';
constructor() {
super('CorePluginFileDelegate', true);
}