commit
275111e8ad
|
@ -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",
|
||||
|
|
246
package.json
246
package.json
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -243,6 +243,8 @@ export class AddonModDataIndexComponent extends CoreCourseModuleMainActivityComp
|
|||
|
||||
this.isEmpty = true;
|
||||
this.groupInfo = undefined;
|
||||
|
||||
return;
|
||||
} else {
|
||||
canSearch = true;
|
||||
canAdd = this.access.canaddentry;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 };
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue