diff --git a/.eslintrc.js b/.eslintrc.js index c39053bf4..260d9cef7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -96,14 +96,14 @@ const appConfig = { 'error', { selector: [ - 'classProperty', - 'objectLiteralProperty', - 'typeProperty', - 'classMethod', - 'objectLiteralMethod', - 'typeMethod', - 'accessor', - 'enumMember' + 'classProperty', + 'objectLiteralProperty', + 'typeProperty', + 'classMethod', + 'objectLiteralMethod', + 'typeMethod', + 'accessor', + 'enumMember' ], modifiers: ['requiresQuotes'], format: null, @@ -332,10 +332,11 @@ module.exports = { '@angular-eslint/template/alt-text': 'error', '@angular-eslint/template/elements-content': 'error', '@angular-eslint/template/label-has-associated-control': 'error', - '@angular-eslint/template/table-scope': 'error', - '@angular-eslint/template/valid-aria': 'error', '@angular-eslint/template/no-duplicate-attributes': 'error', '@angular-eslint/template/no-positive-tabindex': 'error', + '@angular-eslint/template/prefer-self-closing-tags': 'error', + '@angular-eslint/template/table-scope': 'error', + '@angular-eslint/template/valid-aria': 'error', 'max-len': ['warn', { code: 140 }], }, }, diff --git a/jest.config.js b/jest.config.js index cae628ad0..fd6c50807 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,7 +12,7 @@ module.exports = { transform: { '^.+\\.(ts|html)$': 'ts-jest', }, - transformIgnorePatterns: ['node_modules/(?!@ionic-native|@ionic|@moodlehq/ionic-native-push)'], + transformIgnorePatterns: ['node_modules/(?!@awesome-cordova-plugins|@ionic/core|@stencil/core|ionicons|@moodlehq/ionic-native-push)'], moduleNameMapper: { ...pathsToModuleNameMapper(compilerOptions.paths, { prefix: '/src/' }), '^!raw-loader!.*': 'jest-raw-loader', diff --git a/package-lock.json b/package-lock.json index 94b5a6400..7d74f0f81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,29 @@ "@angular/platform-browser": "^16.2.0", "@angular/platform-browser-dynamic": "^16.2.0", "@angular/router": "^16.2.0", + "@awesome-cordova-plugins/badge": "^6.3.0", + "@awesome-cordova-plugins/camera": "^6.3.0", + "@awesome-cordova-plugins/chooser": "^6.3.0", + "@awesome-cordova-plugins/clipboard": "^6.3.0", + "@awesome-cordova-plugins/core": "^6.3.0", + "@awesome-cordova-plugins/device": "^6.3.0", + "@awesome-cordova-plugins/diagnostic": "^6.3.0", + "@awesome-cordova-plugins/file": "^6.3.0", + "@awesome-cordova-plugins/file-opener": "^6.3.0", + "@awesome-cordova-plugins/file-transfer": "^6.3.0", + "@awesome-cordova-plugins/geolocation": "^6.3.0", + "@awesome-cordova-plugins/http": "^6.3.0", + "@awesome-cordova-plugins/in-app-browser": "^6.3.0", + "@awesome-cordova-plugins/ionic-webview": "^6.3.0", + "@awesome-cordova-plugins/keyboard": "^6.3.0", + "@awesome-cordova-plugins/local-notifications": "^6.3.0", + "@awesome-cordova-plugins/media-capture": "^6.3.0", + "@awesome-cordova-plugins/network": "^6.3.0", + "@awesome-cordova-plugins/splash-screen": "^6.3.0", + "@awesome-cordova-plugins/sqlite": "^6.3.0", + "@awesome-cordova-plugins/status-bar": "^6.3.0", + "@awesome-cordova-plugins/web-intent": "^6.3.0", + "@awesome-cordova-plugins/zip": "^6.3.0", "@ionic/angular": "^7.0.0", "@ionic/cordova-builders": "^10.0.0", "@moodlehq/cordova-plugin-advanced-http": "3.3.1-moodle.1", @@ -71,6 +94,7 @@ "nl.kingsquare.cordova.background-audio": "^1.0.1", "ogv": "^1.8.9", "rxjs": "~7.8.0", + "swiper": "^11.0.3", "ts-md5": "^1.2.7", "tslib": "^2.3.0", "video.js": "^7.21.1", @@ -758,6 +782,281 @@ "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==" }, + "node_modules/@awesome-cordova-plugins/badge": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/badge/-/badge-6.4.0.tgz", + "integrity": "sha512-4Fy1ykRH6hfSVTbVOX98g+MiJlhc3ozjEePTl7z2FsJ4kkfUT9lVPM6TdBo1PVNn+PePNR2gKCKOIMJK4BJ+jw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/camera": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/camera/-/camera-6.4.0.tgz", + "integrity": "sha512-ApkGm5DaRet1XVTZEk2flhFqPaxbI2Ymj3I7FjqfjR+oP5GvVj0MQ17Oo8gVGRIHZIde6ifks0xn/NfdiT9ySg==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/chooser": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/chooser/-/chooser-6.4.0.tgz", + "integrity": "sha512-/0Tei8A9Ms2sE9VyWKtt0pVC9r+d9hURQxFnVmtZfKX3nM5fdYRRfzh5BBIrJzn4YMV+TIOv6g3EE1YAhvYTpA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/clipboard": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/clipboard/-/clipboard-6.4.0.tgz", + "integrity": "sha512-oDPQ/vJe8wQi/GeqHt7bCydeiReRMQ1lcmC9EvH0GoQUa/M3MOb4dWcSAAz23CxdGY6ePeeCS+727+Hc7xpakA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/core/-/core-6.4.0.tgz", + "integrity": "sha512-06I5JdTgAgKTby+VG+3sQF5+z4RNCEyVl6y7tz2rICx8MURL1biuh3oGGN1rCQQjsuMZcX5siMBr0NF/OHqxLQ==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/device": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/device/-/device-6.4.0.tgz", + "integrity": "sha512-uGwlkNH7siiMvgC6PijCDySn59JY0qwxXLvOvhhumX1Lh8VjCEUfVRjkrgJEPEcJGY6lHjw4jChCWY2Tr1g/UQ==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/diagnostic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/diagnostic/-/diagnostic-6.4.0.tgz", + "integrity": "sha512-XvYYviet10nRLeNDLcYkO9EdWxxTKWKt4XFHscmhP1Nyg7QFi2vJS8FwZj6u4y/u3JBlCe+/4s3xXC/6jpQTbg==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/file": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/file/-/file-6.4.0.tgz", + "integrity": "sha512-KOpYpUYA9PU37qiNS1QsTwtms1bX6YsOY2ASxwCqhD+gOqpCfkFHW0kJ9yFmO68gRR2vK3k6PgUimwJXkG6RgA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/file-opener": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/file-opener/-/file-opener-6.4.0.tgz", + "integrity": "sha512-1IIFvnz8gPL4mQNqkA1LOUQeWoF8aUAbFGSVLfcvEwJlgXvzT6yC/t8F3Czf0se2TX4tbaoqCiAtxnwBaoIItA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/file-transfer": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/file-transfer/-/file-transfer-6.4.0.tgz", + "integrity": "sha512-0FCtWSJQh62tlRu6GZdila6Yz5Z4D538zoIDvbmPNJfH8Urhops5ihscatebYHjNAt2UF8WmxzVjDyGOljcCbQ==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/geolocation": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/geolocation/-/geolocation-6.4.0.tgz", + "integrity": "sha512-Jyn3pB1sPBqpZrv6/6A1gT7/FIDSYOaGbYNEeF9EHm9hz2maLXIVVdwYY8Hp9vggZ2g2mDpRLRNbXRfSo+R9Gw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/http": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/http/-/http-6.4.0.tgz", + "integrity": "sha512-nv8Az1bYnEm/MQSA6Oec0FFAGFu5bmubQXypp08ZUJA4uGkps3IJS02F0451PF/vM0Jcpnb+W6ZRqRCNJ34ZJA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/in-app-browser": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/in-app-browser/-/in-app-browser-6.4.0.tgz", + "integrity": "sha512-AaHg/hpXrfKtX+HCzENJDjR9z2wYyNe86o2VeKZlQQP/teuo8SleOIsmN4yTVI1nqnGrQTuD4sKQIhiNeS836g==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/ionic-webview": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/ionic-webview/-/ionic-webview-6.4.0.tgz", + "integrity": "sha512-w45CjIn/CqZ3D5pXG5t+QyXwdUnBskFmbdN/A6Tv0NVu6uYl3cz0ZWFN+4bK2X/5IPlSC1orQAHaEHrGFomvpw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/keyboard": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/keyboard/-/keyboard-6.4.0.tgz", + "integrity": "sha512-9CNRYlnqbi47FyRPzcPGUkW8kQNv0nowxPAmBFkda51GNXvtw+BQ7YLDQSkthyBZr5RlU3GmtGibyYIMeOlLkQ==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/local-notifications": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/local-notifications/-/local-notifications-6.4.0.tgz", + "integrity": "sha512-q6oeVqLx6SSOkeSCu46PvX6twdY3GevRz5aIlOtroNhqmCmeDmIq2OppDnL3DmnqOY0VVO3spYdQEuo2uYRCwQ==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/media-capture": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/media-capture/-/media-capture-6.4.0.tgz", + "integrity": "sha512-HP6OsvIDr1V76UgBfNvhoy9dM1IC7Eo0ACisbPoJECZKVSNfTwWoVZonyCvp76U0xaoXuF10GRN6WlQisoWXIw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/network": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/network/-/network-6.4.0.tgz", + "integrity": "sha512-opEQo8c/KeGH2bSqJ6F7jOxgC2lMkTZD2PxIsN5jId4KsbOMfvB4cE5ljVcx8TCmeKwHj7pGPlLcR9Eze1BawA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/splash-screen": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/splash-screen/-/splash-screen-6.4.0.tgz", + "integrity": "sha512-0JlJysmxOPiU+wCMfo4ocHTPBWrhyTsh34Kig6t+lgO5fLUUtrLXW3LCOxx0TaXJt5XjYdfXXQciLYGXcQ4gww==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/sqlite": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/sqlite/-/sqlite-6.4.0.tgz", + "integrity": "sha512-2CXSZxp0pQUabSv4kLzCMpicNjuKmwraJ3xCP3+6QVvZr0kZ10Xh8cgIU5nPL/x9G2zzG9fVubLewh3hEgR8Zg==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/status-bar": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/status-bar/-/status-bar-6.4.0.tgz", + "integrity": "sha512-BQ0Nip16YFQ7PvQvu5+SJASDl8Uomxm1wn9tZpk+8NcQGLKTf8fL94Z2MA5HjFsHaAlzw+fFo7UJ9+9qfd1hPA==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/web-intent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/web-intent/-/web-intent-6.4.0.tgz", + "integrity": "sha512-JJJpQ/viDCCkdhvq0A3ZnY5mmnNPd1IHGlB8tDR0jfunWzh2wK5EbETt0RVAF7zYxRnHKltx6Ep3FAd7JIY0Kw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/zip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/zip/-/zip-6.4.0.tgz", + "integrity": "sha512-s6Bg+sBepwhVvN+8fdns8QOOY5Mo5pg9Iy1aJiFDBUipuQOLaO++zw5u+no0igObnYcaQAdSO2XyEBX/h0T59g==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^6.0.1", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", @@ -27268,6 +27567,24 @@ "es6-symbol": "^3.1.1" } }, + "node_modules/swiper": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.5.tgz", + "integrity": "sha512-rhCwupqSyRnWrtNzWzemnBLMoyYuoDgGgspAm/8iBD3jCvAWycPLH4Z3TB0O5520DHLzMx94yUMH/B9Efpa48w==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", diff --git a/package.json b/package.json index 11f19e95b..7eb597346 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,29 @@ "@angular/platform-browser": "^16.2.0", "@angular/platform-browser-dynamic": "^16.2.0", "@angular/router": "^16.2.0", + "@awesome-cordova-plugins/badge": "^6.3.0", + "@awesome-cordova-plugins/camera": "^6.3.0", + "@awesome-cordova-plugins/chooser": "^6.3.0", + "@awesome-cordova-plugins/clipboard": "^6.3.0", + "@awesome-cordova-plugins/core": "^6.3.0", + "@awesome-cordova-plugins/device": "^6.3.0", + "@awesome-cordova-plugins/diagnostic": "^6.3.0", + "@awesome-cordova-plugins/file": "^6.3.0", + "@awesome-cordova-plugins/file-opener": "^6.3.0", + "@awesome-cordova-plugins/file-transfer": "^6.3.0", + "@awesome-cordova-plugins/geolocation": "^6.3.0", + "@awesome-cordova-plugins/http": "^6.3.0", + "@awesome-cordova-plugins/in-app-browser": "^6.3.0", + "@awesome-cordova-plugins/ionic-webview": "^6.3.0", + "@awesome-cordova-plugins/keyboard": "^6.3.0", + "@awesome-cordova-plugins/local-notifications": "^6.3.0", + "@awesome-cordova-plugins/media-capture": "^6.3.0", + "@awesome-cordova-plugins/network": "^6.3.0", + "@awesome-cordova-plugins/splash-screen": "^6.3.0", + "@awesome-cordova-plugins/sqlite": "^6.3.0", + "@awesome-cordova-plugins/status-bar": "^6.3.0", + "@awesome-cordova-plugins/web-intent": "^6.3.0", + "@awesome-cordova-plugins/zip": "^6.3.0", "@ionic/angular": "^7.0.0", "@ionic/cordova-builders": "^10.0.0", "@moodlehq/cordova-plugin-advanced-http": "3.3.1-moodle.1", @@ -106,6 +129,7 @@ "nl.kingsquare.cordova.background-audio": "^1.0.1", "ogv": "^1.8.9", "rxjs": "~7.8.0", + "swiper": "^11.0.3", "ts-md5": "^1.2.7", "tslib": "^2.3.0", "video.js": "^7.21.1", diff --git a/src/addons/badges/pages/issued-badge/issued-badge.html b/src/addons/badges/pages/issued-badge/issued-badge.html index 7a609db0b..0cb85f6c7 100644 --- a/src/addons/badges/pages/issued-badge/issued-badge.html +++ b/src/addons/badges/pages/issued-badge/issued-badge.html @@ -1,7 +1,7 @@ - +

{{ badge.name }}

@@ -11,7 +11,7 @@
- + @@ -122,8 +122,7 @@

{{ 'core.course' | translate}}

- - +

diff --git a/src/addons/badges/pages/user-badges/user-badges.html b/src/addons/badges/pages/user-badges/user-badges.html index d91a5e0e8..edc263c99 100644 --- a/src/addons/badges/pages/user-badges/user-badges.html +++ b/src/addons/badges/pages/user-badges/user-badges.html @@ -1,7 +1,7 @@ - +

{{ 'addon.badges.badges' | translate }}

@@ -11,11 +11,10 @@ - + - - + - - + {{ entry.name }} diff --git a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html index 1a1f2e148..1c55aafb3 100644 --- a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -7,16 +7,14 @@
- + {{prefetchCoursesData.badge}} - - +
@@ -26,8 +24,7 @@ - + (ionCancel)="filterTextChanged($event.target)" [placeholder]="'core.courses.filtermycourses' | translate" /> @@ -70,8 +67,7 @@ - + (ionCancel)="filterTextChanged($event.target)" [placeholder]="'core.courses.filtermycourses' | translate" /> - + - + @@ -114,8 +110,7 @@ {{'addon.block_myoverview.nocoursesenrolleddescription' | translate}}

- + @@ -128,8 +123,7 @@ - + [layout]="layout" /> diff --git a/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html b/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html index ea4e9891a..1b76456b0 100644 --- a/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html +++ b/src/addons/block/recentlyaccessedcourses/components/recentlyaccessedcourses/addon-block-recentlyaccessedcourses.html @@ -3,21 +3,19 @@

{{ 'addon.block_recentlyaccessedcourses.pluginname' | translate }}

- - +
+ [message]="'addon.block_recentlyaccessedcourses.nocourses' | translate" />
- - +
diff --git a/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html b/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html index 9d157d6d1..c72044e87 100644 --- a/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html +++ b/src/addons/block/recentlyaccesseditems/components/recentlyaccesseditems/addon-block-recentlyaccesseditems.html @@ -3,8 +3,7 @@

{{ 'addon.block_recentlyaccesseditems.pluginname' | translate }}

- - +
@@ -16,18 +15,16 @@ - + [componentId]="item.cmid" [showAlt]="false" [purpose]="item.purpose" /> {{ item.iconTitle }}

+ [courseId]="item.courseid" />

- - +

@@ -38,6 +35,6 @@
+ [message]="'addon.block_recentlyaccesseditems.noitems' | translate" />
diff --git a/src/addons/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html b/src/addons/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html index 4b6d5b6ba..6885e5146 100644 --- a/src/addons/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html +++ b/src/addons/block/sitemainmenu/components/sitemainmenu/addon-block-sitemainmenu.html @@ -8,10 +8,10 @@ + [contextInstanceId]="siteHomeId" /> - +
diff --git a/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html b/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html index debe61210..f022f3e2c 100644 --- a/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html +++ b/src/addons/block/starredcourses/components/starredcourses/addon-block-starredcourses.html @@ -3,21 +3,19 @@

{{ 'addon.block_starredcourses.pluginname' | translate }}

- - +
+ [message]="'addon.block_starredcourses.nocourses' | translate" />
- - +
diff --git a/src/addons/block/timeline/components/events/addon-block-timeline-events.html b/src/addons/block/timeline/components/events/addon-block-timeline-events.html index d84981b96..8e31ce4ba 100644 --- a/src/addons/block/timeline/components/events/addon-block-timeline-events.html +++ b/src/addons/block/timeline/components/events/addon-block-timeline-events.html @@ -2,8 +2,7 @@

{{ 'core.courses.aria:coursename' | translate }} - - +

@@ -23,15 +22,13 @@ {{event.timesort * 1000 | coreFormatDate:"strftimetime24" }} - + [modname]="event.modulename" [purpose]="event.purpose" />

- + [contextInstanceId]="event.id" [courseId]="event.course?.id" /> {{ 'addon.block_timeline.overdue' | translate }} @@ -39,15 +36,13 @@

- + [contextInstanceId]="event.course.id" />

- + [contextInstanceId]="event.id" />

@@ -72,5 +67,5 @@ {{ 'core.loadmore' | translate }} - +
diff --git a/src/addons/block/timeline/components/timeline/addon-block-timeline.html b/src/addons/block/timeline/components/timeline/addon-block-timeline.html index b20b7952d..a5bc3a312 100644 --- a/src/addons/block/timeline/components/timeline/addon-block-timeline.html +++ b/src/addons/block/timeline/components/timeline/addon-block-timeline.html @@ -9,7 +9,7 @@ + searchArea="AddonBlockTimeline" /> @@ -31,7 +31,7 @@ + searchArea="AddonBlockTimeline" /> + [loadingMore]="data.loadingMore" (loadMore)="section.loadMore()" [course]="section.course" /> + [message]="'addon.block_timeline.noevents' | translate" />
diff --git a/src/addons/blog/pages/entries/entries.html b/src/addons/blog/pages/entries/entries.html index df97ac484..9fac4dfb2 100644 --- a/src/addons/blog/pages/entries/entries.html +++ b/src/addons/blog/pages/entries/entries.html @@ -1,37 +1,35 @@ - +

{{ title | translate }}

- +
- + {{ 'addon.blog.showonlyyourentries' | translate }} - + - - + - +

- + [contextInstanceId]="contextInstanceId" />

{{ 'addon.blog.' + entry.publishTranslated! | translate}} @@ -49,35 +47,32 @@ - + [contextLevel]="contextLevel" [contextInstanceId]="contextInstanceId" />
{{ 'core.tag.tags' | translate }}:
- +
- + [instanceId]="entry.userid" contextLevel="user" [showItem]="true" /> - + [componentId]="entry.id" /> {{ 'addon.blog.linktooriginalentry' | translate }}
- {{entry.lastmodified + {{entry.lastmodified | coreTimeAgo}}
- + diff --git a/src/addons/calendar/components/calendar/addon-calendar-calendar.html b/src/addons/calendar/components/calendar/addon-calendar-calendar.html index 02bab4b3b..2d543551b 100644 --- a/src/addons/calendar/components/calendar/addon-calendar-calendar.html +++ b/src/addons/calendar/components/calendar/addon-calendar-calendar.html @@ -2,8 +2,7 @@ - + [content]="'addon.calendar.currentmonth' | translate" iconAction="fas-calendar-day" (action)="goToCurrentMonth()" /> @@ -14,19 +13,18 @@ - +

{{ periodName }} - - +

- +
@@ -50,8 +48,7 @@ - - + + [attr.aria-label]="'core.notsent' | translate" /> + [attr.aria-label]="'core.deletedoffline' | translate" /> {{ event.timestart * 1000 | coreFormatDate: timeFormat }} @@ -98,8 +95,7 @@
- - + diff --git a/src/addons/calendar/components/calendar/calendar.scss b/src/addons/calendar/components/calendar/calendar.scss index f3d27322f..2403bf1a1 100644 --- a/src/addons/calendar/components/calendar/calendar.scss +++ b/src/addons/calendar/components/calendar/calendar.scss @@ -142,7 +142,7 @@ } } - ion-slide { + swiper-slide { display: block; font-size: inherit; justify-content: start; diff --git a/src/addons/calendar/components/calendar/calendar.ts b/src/addons/calendar/components/calendar/calendar.ts index 1d9c2eea9..3561366a8 100644 --- a/src/addons/calendar/components/calendar/calendar.ts +++ b/src/addons/calendar/components/calendar/calendar.ts @@ -64,7 +64,7 @@ import { Translate } from '@singletons'; }) export class AddonCalendarCalendarComponent implements OnInit, DoCheck, OnDestroy { - @ViewChild(CoreSwipeSlidesComponent) slides?: CoreSwipeSlidesComponent; + @ViewChild(CoreSwipeSlidesComponent) swipeSlidesComponent?: CoreSwipeSlidesComponent; @Input() initialYear?: number; // Initial year to load. @Input() initialMonth?: number; // Initial month to load. @@ -185,7 +185,7 @@ export class AddonCalendarCalendarComponent implements OnInit, DoCheck, OnDestro this.hiddenDiffer = this.hidden; if (!this.hidden) { - this.slides?.slides?.getSwiper().then(swipper => swipper.update()); + this.swipeSlidesComponent?.updateSlidesComponent(); } } } @@ -248,14 +248,14 @@ export class AddonCalendarCalendarComponent implements OnInit, DoCheck, OnDestro * Load next month. */ loadNext(): void { - this.slides?.slideNext(); + this.swipeSlidesComponent?.slideNext(); } /** * Load previous month. */ loadPrevious(): void { - this.slides?.slidePrev(); + this.swipeSlidesComponent?.slidePrev(); } /** @@ -343,8 +343,7 @@ export class AddonCalendarCalendarComponent implements OnInit, DoCheck, OnDestro */ async viewMonth(month: number, year: number): Promise { const manager = this.manager; - const slides = this.slides; - if (!manager || !slides) { + if (!manager || !this.swipeSlidesComponent) { return; } @@ -360,7 +359,7 @@ export class AddonCalendarCalendarComponent implements OnInit, DoCheck, OnDestro // Make sure the day is loaded. await manager.getSource().loadItem(item); - slides.slideToItem(item); + this.swipeSlidesComponent.slideToItem(item); } catch (error) { CoreDomUtils.showErrorModalDefault(error, 'addon.calendar.errorloadevents', true); } finally { diff --git a/src/addons/calendar/components/filter/filter.html b/src/addons/calendar/components/filter/filter.html index 65dee4fd4..365e7e72f 100644 --- a/src/addons/calendar/components/filter/filter.html +++ b/src/addons/calendar/components/filter/filter.html @@ -2,7 +2,7 @@ - + @@ -10,18 +10,18 @@ - + - + - + - + diff --git a/src/addons/calendar/components/upcoming-events/addon-calendar-upcoming-events.html b/src/addons/calendar/components/upcoming-events/addon-calendar-upcoming-events.html index c16291fdc..1224e95ef 100644 --- a/src/addons/calendar/components/upcoming-events/addon-calendar-upcoming-events.html +++ b/src/addons/calendar/components/upcoming-events/addon-calendar-upcoming-events.html @@ -1,6 +1,6 @@ - - + @@ -8,9 +8,8 @@ - + [componentId]="event.instance" [showAlt]="false" [purpose]="event.purpose" /> + diff --git a/src/addons/calendar/pages/day/day.html b/src/addons/calendar/pages/day/day.html index acdb94351..373e65cdd 100644 --- a/src/addons/calendar/pages/day/day.html +++ b/src/addons/calendar/pages/day/day.html @@ -1,30 +1,28 @@ - +

{{ 'addon.calendar.calendarevents' | translate }}

- + - + iconAction="fas-calendar-day" (action)="goToCurrentDay()" /> - + [closeOnClick]="false" />
- + @@ -34,7 +32,7 @@ - + @@ -42,7 +40,7 @@ - + @@ -54,14 +52,13 @@ - + - + [message]="'addon.calendar.noevents' | translate" /> @@ -70,11 +67,9 @@ (click)="gotoEvent(event.id, day)" [class.item-dimmed]="event.ispast" [ngClass]="['addon-calendar-eventtype-'+event.eventtype]" button [detail]="false"> - + [modname]="event.modulename" [componentId]="event.instance" [purpose]="event.purpose" /> + aria-hidden="true" /> @@ -84,18 +79,18 @@

+ [contextInstanceId]="event.contextInstanceId" />

- +

- + - +
@@ -111,7 +106,7 @@ - + diff --git a/src/addons/calendar/pages/day/day.ts b/src/addons/calendar/pages/day/day.ts index 83c8e41a8..6097d8af7 100644 --- a/src/addons/calendar/pages/day/day.ts +++ b/src/addons/calendar/pages/day/day.ts @@ -60,7 +60,7 @@ import { CoreTime } from '@singletons/time'; }) export class AddonCalendarDayPage implements OnInit, OnDestroy { - @ViewChild(CoreSwipeSlidesComponent) slides?: CoreSwipeSlidesComponent; + @ViewChild(CoreSwipeSlidesComponent) swipeSlidesComponent?: CoreSwipeSlidesComponent; protected currentSiteId: string; @@ -434,8 +434,7 @@ export class AddonCalendarDayPage implements OnInit, OnDestroy { */ async goToCurrentDay(): Promise { const manager = this.manager; - const slides = this.slides; - if (!manager || !slides) { + if (!manager || !this.swipeSlidesComponent) { return; } @@ -448,7 +447,7 @@ export class AddonCalendarDayPage implements OnInit, OnDestroy { // Make sure the day is loaded. await manager.getSource().loadItem(currentDay); - slides.slideToItem(currentDay); + this.swipeSlidesComponent.slideToItem(currentDay); } catch (error) { CoreDomUtils.showErrorModalDefault(error, 'addon.calendar.errorloadevents', true); } finally { @@ -460,14 +459,14 @@ export class AddonCalendarDayPage implements OnInit, OnDestroy { * Load next day. */ async loadNext(): Promise { - this.slides?.slideNext(); + this.swipeSlidesComponent?.slideNext(); } /** * Load previous day. */ async loadPrevious(): Promise { - this.slides?.slidePrev(); + this.swipeSlidesComponent?.slidePrev(); } /** diff --git a/src/addons/calendar/pages/edit-event/edit-event.html b/src/addons/calendar/pages/edit-event/edit-event.html index 09a702814..f949796e8 100644 --- a/src/addons/calendar/pages/edit-event/edit-event.html +++ b/src/addons/calendar/pages/edit-event/edit-event.html @@ -1,7 +1,7 @@ - +

{{ title | translate }}

@@ -10,7 +10,7 @@
- + @@ -20,9 +20,8 @@

{{ 'addon.calendar.eventname' | translate }}

- - - + + @@ -31,9 +30,8 @@

{{ 'core.date' | translate }}

- - + [max]="maxDate" [min]="minDate" [displayTimezone]="displayTimezone" /> + @@ -108,7 +106,7 @@ - +
@@ -121,7 +119,7 @@ - + @@ -129,7 +127,7 @@

{{ reminder.label }}

- +
@@ -146,31 +144,30 @@

{{ 'addon.calendar.durationnone' | translate }}

- +

{{ 'addon.calendar.durationuntil' | translate }}

- +
- + - + [displayTimezone]="displayTimezone" />

{{ 'addon.calendar.durationminutes' | translate }}

- +
{{ 'addon.calendar.durationminutes' | translate }} + [placeholder]="'addon.calendar.durationminutes' | translate" formControlName="timedurationminutes" /> @@ -181,14 +178,13 @@

{{ 'addon.calendar.repeatevent' | translate }}

- +

{{ 'addon.calendar.repeatweeksl' | translate }}

- - +
@@ -204,13 +200,13 @@

{{ 'addon.calendar.repeateditall' | translate:{$a: otherEventsCount} }}

- +

{{ 'addon.calendar.repeateditthis' | translate }}

- +
@@ -222,7 +218,7 @@ + [autoSave]="false" /> @@ -230,8 +226,7 @@

{{ 'core.location' | translate }}

- - +
diff --git a/src/addons/calendar/pages/event/event.html b/src/addons/calendar/pages/event/event.html index 81a83d325..1af4abd75 100644 --- a/src/addons/calendar/pages/event/event.html +++ b/src/addons/calendar/pages/event/event.html @@ -1,42 +1,38 @@ - +

- - +

- + [iconAction]="syncIcon" [closeOnClick]="false" /> - + [content]="'core.edit' | translate" (action)="openEdit()" iconAction="fas-pen" /> + [content]="'core.delete' | translate" (action)="deleteEvent()" iconAction="fas-trash" /> + (action)="undoDelete()" iconAction="fas-rotate-left" />
- + - + [componentId]="event.instance" slot="start" [purpose]="event.purpose" /> + - +

{{ 'addon.calendar.when' | translate }}

- +
- {{ 'core.deletedoffline' | translate }} +
@@ -76,8 +71,7 @@

{{ 'core.course' | translate}}

- - +

@@ -85,8 +79,7 @@

{{ 'core.group' | translate}}

- - +

@@ -94,8 +87,7 @@

{{ 'core.category' | translate}}

- - +

@@ -104,7 +96,7 @@

{{ 'core.description' | translate}}

+ [contextInstanceId]="event.contextInstanceId" />

@@ -114,7 +106,7 @@

+ [contextInstanceId]="event.contextInstanceId" />

@@ -142,7 +134,7 @@ - + diff --git a/src/addons/calendar/pages/index/index.html b/src/addons/calendar/pages/index/index.html index 39f929563..6e3c382bb 100644 --- a/src/addons/calendar/pages/index/index.html +++ b/src/addons/calendar/pages/index/index.html @@ -1,55 +1,52 @@ - +

{{ (showCalendar ? 'addon.calendar.calendarevents' : 'addon.calendar.upcomingevents') | translate }}

- + + iconAction="fas-table-list" (action)="toggleDisplay()" /> + iconAction="fas-calendar-days" (action)="toggleDisplay()" /> - + iconAction="fas-gears" /> + [iconAction]="syncIcon" [closeOnClick]="false" /> - +
- + - + - + [displayNavButtons]="showCalendar" (onEventClicked)="gotoEvent($event)" (onDayClicked)="gotoDay($event)" /> - - + - + diff --git a/src/addons/calendar/pages/settings/settings.html b/src/addons/calendar/pages/settings/settings.html index d8982f79b..7ca79cf28 100644 --- a/src/addons/calendar/pages/settings/settings.html +++ b/src/addons/calendar/pages/settings/settings.html @@ -1,7 +1,7 @@ - +

{{ 'core.settings.settings' | translate }}

diff --git a/src/addons/competency/pages/competencies/competencies.html b/src/addons/competency/pages/competencies/competencies.html index 33b3afe43..9a4b264c5 100644 --- a/src/addons/competency/pages/competencies/competencies.html +++ b/src/addons/competency/pages/competencies/competencies.html @@ -1,12 +1,11 @@ - +

- - +

@@ -14,7 +13,7 @@ - + @@ -24,8 +23,7 @@

- {{competency.competency.idnumber}} + [contextInstanceId]="contextInstanceId" /> {{competency.competency.idnumber}}

- +

- {{ competency.competency.competency.idnumber }} + [contextInstanceId]="contextInstanceId" /> {{ competency.competency.competency.idnumber }}

- + - +

{{ user.fullname }}

@@ -30,8 +29,7 @@ - + [contextInstanceId]="contextInstanceId" /> @@ -40,26 +38,22 @@

- + [contextInstanceId]="contextInstanceId" /> - + [contextInstanceId]="contextInstanceId" />  /  - + [contextInstanceId]="contextInstanceId" />  /  @@ -76,8 +70,7 @@

@@ -91,12 +84,10 @@

- - + - + [courseId]="courseId" /> @@ -136,7 +127,7 @@ - +

{{ evidence.actionuser.fullname }}

{{ evidence.timemodified * 1000 | coreFormatDate }}

diff --git a/src/addons/competency/pages/competencysummary/competencysummary.html b/src/addons/competency/pages/competencysummary/competencysummary.html index 3c354f39f..7271d983c 100644 --- a/src/addons/competency/pages/competencysummary/competencysummary.html +++ b/src/addons/competency/pages/competencysummary/competencysummary.html @@ -1,28 +1,26 @@ - +

- {{ competency.competency.idnumber }} + [contextInstanceId]="contextInstanceId" /> {{ competency.competency.idnumber }}

- + - + [contextInstanceId]="contextInstanceId" /> @@ -30,14 +28,12 @@

{{ 'addon.competency.path' | translate }}

- + [contextInstanceId]="contextInstanceId" />  / 

diff --git a/src/addons/competency/pages/coursecompetencies/coursecompetencies.html b/src/addons/competency/pages/coursecompetencies/coursecompetencies.html index 687d8f88c..1547cbb80 100644 --- a/src/addons/competency/pages/coursecompetencies/coursecompetencies.html +++ b/src/addons/competency/pages/coursecompetencies/coursecompetencies.html @@ -1,7 +1,7 @@ - +

{{ 'addon.competency.coursecompetencies' | translate }}

@@ -10,7 +10,7 @@
- + @@ -29,8 +29,7 @@ {x: courseCompetencies.statistics.proficientcompetencycount, y: courseCompetencies.statistics.competencycount} } }} - + ariaDescribedBy="addon-competency-course-{{courseId}}-progress" />
{{ 'addon.competency.competenciesmostoftennotproficientincourse' | translate }}

@@ -52,15 +51,14 @@ - +

{{ user.fullname }}

- + message="{{ 'addon.competency.nocompetenciesincourse' | translate }}" />
@@ -68,8 +66,8 @@ [attr.aria-label]="competency.competency.shortname" [detail]="true" button>

- - {{competency.competency.idnumber}} + {{competency.competency.idnumber}}

- + [contextInstanceId]="courseId" />

{{ 'addon.competency.path' | translate }}

@@ -90,24 +87,20 @@ - + [contextInstanceId]="courseId" /> - + [contextInstanceId]="courseId" />  /  - - +  /  @@ -126,12 +119,10 @@

- - + - + [courseId]="courseId" />
@@ -143,8 +134,7 @@ - - +
diff --git a/src/addons/competency/pages/plan/plan.html b/src/addons/competency/pages/plan/plan.html index 8bbcd992d..be91b266e 100644 --- a/src/addons/competency/pages/plan/plan.html +++ b/src/addons/competency/pages/plan/plan.html @@ -1,25 +1,24 @@ - +

- - +

- + - +

{{ user.fullname }}

@@ -29,8 +28,7 @@

- - +

@@ -50,8 +48,7 @@

{{ 'addon.competency.template' | translate }}

- - +

@@ -64,8 +61,7 @@

- + ariaDescribedBy="addon-competency-plan-{{plan.plan.id}}-progress" />
@@ -85,8 +81,7 @@

- {{competency.competency.idnumber}} + [contextInstanceId]="plan.plan.userid" /> {{competency.competency.idnumber}}

- +

{{ 'addon.competency.userplans' | translate }}

@@ -11,19 +11,16 @@ - + - - - +

- - +

{{ 'addon.competency.duedate' | translate }}:  diff --git a/src/addons/coursecompletion/pages/report/report.html b/src/addons/coursecompletion/pages/report/report.html index d31d01da6..b94dd4763 100644 --- a/src/addons/coursecompletion/pages/report/report.html +++ b/src/addons/coursecompletion/pages/report/report.html @@ -1,7 +1,7 @@ - +

{{ 'addon.coursecompletion.coursecompletion' | translate }}

@@ -10,11 +10,11 @@ - + - +

{{user.fullname}}

@@ -44,10 +44,10 @@

- +

- +

{{ 'core.yes' | translate }} @@ -65,23 +65,23 @@ - + - + - + - + {{ 'core.yes' | translate }} {{ 'core.no' | translate }} {{ criteria.timecompleted * 1000 | coreFormatDate :'strftimedatetimeshort' }} - +
@@ -103,7 +103,7 @@ - + diff --git a/src/addons/filter/mathjaxloader/services/handlers/mathjaxloader.ts b/src/addons/filter/mathjaxloader/services/handlers/mathjaxloader.ts index 7589f5be8..7ca996ae7 100644 --- a/src/addons/filter/mathjaxloader/services/handlers/mathjaxloader.ts +++ b/src/addons/filter/mathjaxloader/services/handlers/mathjaxloader.ts @@ -411,7 +411,7 @@ type MathJaxWindow = Window & { _configured: boolean; // eslint-disable-line @typescript-eslint/naming-convention // Add the configuration to the head and set the lang. configure: (params: Record) => void; - _setLocale: () => void; // eslint-disable-line @typescript-eslint/naming-convention + _setLocale: () => void; typeset: (container: HTMLElement) => void; }; }; diff --git a/src/addons/messageoutput/airnotifier/pages/devices/devices.html b/src/addons/messageoutput/airnotifier/pages/devices/devices.html index 2a84773ea..ffecacf69 100644 --- a/src/addons/messageoutput/airnotifier/pages/devices/devices.html +++ b/src/addons/messageoutput/airnotifier/pages/devices/devices.html @@ -1,7 +1,7 @@ - +

{{ 'addon.messageoutput_airnotifier.processorsettingsdesc' | translate }}

@@ -10,7 +10,7 @@
- + @@ -33,8 +33,7 @@

- - +
diff --git a/src/addons/messages/components/conversation-info/conversation-info.html b/src/addons/messages/components/conversation-info/conversation-info.html index 8d53b3dce..1e8b058d3 100644 --- a/src/addons/messages/components/conversation-info/conversation-info.html +++ b/src/addons/messages/components/conversation-info/conversation-info.html @@ -5,14 +5,14 @@
- +
- + @@ -23,12 +23,11 @@ onError="this.src='assets/img/group-avatar.svg'">

- +

- + [contextInstanceId]="0" />

{{ 'addon.messages.numparticipants' | translate:{$a: conversation.membercount} }}

@@ -36,19 +35,16 @@ - - +

{{ member.fullname }} - + [attr.aria-label]="'addon.messages.contactblocked' | translate" />

- - +
diff --git a/src/addons/messages/pages/contacts-35/contacts.html b/src/addons/messages/pages/contacts-35/contacts.html index 4086c4c08..209e28930 100644 --- a/src/addons/messages/pages/contacts-35/contacts.html +++ b/src/addons/messages/pages/contacts-35/contacts.html @@ -1,32 +1,32 @@ - +

{{ 'addon.messages.contacts' | translate }}

- +
- + + autocorrect="off" spellcheck="false" lengthCheck="2" [disabled]="!loaded" searchArea="AddonMessagesContacts" /> + [message]="'addon.messages.contactlistempty' | translate" /> + [message]="'addon.messages.nousersfound' | translate" /> @@ -44,7 +44,7 @@ *ngIf="contact.profileimageurl || contact.profileimageurlsmall" [attr.aria-label]="contact.fullname" (click)="gotoDiscussion(contact.id)" [detail]="true" button [attr.aria-current]="contact.id === discussionUserId ? 'page' : 'false'"> - +

{{ contact.fullname }}

diff --git a/src/addons/messages/pages/contacts/contacts.html b/src/addons/messages/pages/contacts/contacts.html index 5903b00ee..613d674f0 100644 --- a/src/addons/messages/pages/contacts/contacts.html +++ b/src/addons/messages/pages/contacts/contacts.html @@ -1,17 +1,17 @@ - +

{{ 'addon.messages.contacts' | translate }}

- + - +
@@ -23,7 +23,7 @@ - + @@ -31,27 +31,22 @@ *ngFor="let contact of confirmedContacts" [attr.aria-label]="contact.fullname" [detail]="true" [attr.aria-current]="contact.id === selectedUserId ? 'page' : 'false'"> - + [linkProfile]="false" />

- - + - + [attr.aria-label]="'addon.messages.contactblocked' | translate" />

- + [message]="'addon.messages.nocontactsgetstarted' | translate" /> - + position="bottom" />
@@ -61,17 +56,16 @@ badgeA11yText="addon.messages.pendingcontactrequests"> - + - + - - +

{{ 'addon.messages.wouldliketocontactyou' | translate }}

@@ -79,11 +73,9 @@
- + [message]="'addon.messages.nocontactrequests' | translate" /> - + position="bottom" />
diff --git a/src/addons/messages/pages/discussion/discussion.html b/src/addons/messages/pages/discussion/discussion.html index 3a6610ec0..db3c27112 100644 --- a/src/addons/messages/pages/discussion/discussion.html +++ b/src/addons/messages/pages/discussion/discussion.html @@ -1,67 +1,57 @@ - +

- - + [checkOnline]="otherMember.showonlinestatus" /> + - + [attr.aria-label]="'core.favourites' | translate" /> - + [attr.aria-label]="'addon.messages.mutedconversation' | translate" />

- +
+ [content]="'addon.messages.info' | translate" (action)="viewInfo()" iconAction="fas-circle-info" /> - + [content]="'addon.messages.groupinfo' | translate" (action)="viewInfo()" iconAction="fas-circle-info" /> - + 'addon.messages.addtofavourites') | translate" [iconAction]="favouriteIcon" [iconSlash]="favouriteIconSlash" /> - + [content]="'addon.messages.blockuser' | translate" (action)="blockUser()" [iconAction]="blockIcon" /> - + [content]="'addon.messages.unblockuser' | translate" (action)="unblockUser()" [iconAction]="blockIcon" /> + 'addon.messages.muteconversation') | translate" [iconAction]="muteIcon" /> - + [content]="'addon.messages.showdeletemessages' | translate" iconAction="toggle" [(toggle)]="showDelete" /> + [closeOnClick]="false" [iconAction]="deleteIcon" /> - + [content]="'addon.messages.addtoyourcontacts' | translate" (action)="createContactRequest()" [iconAction]="addRemoveIcon" /> + [iconSlash]="true" />
- - +

{{ 'addon.messages.selfconversation' | translate }}

@@ -78,25 +68,23 @@ {{ 'addon.messages.newmessages' | translate }} - + - + [time]="message.timecreated" />
- + [message]="'addon.messages.nomessagesfound' | translate" />
- + {{ newMessages }} @@ -138,6 +126,6 @@

+ [placeholder]="'addon.messages.newmessage' | translate" />
diff --git a/src/addons/messages/pages/discussions-35/discussions.html b/src/addons/messages/pages/discussions-35/discussions.html index a778f18f2..8995fb3cd 100644 --- a/src/addons/messages/pages/discussions-35/discussions.html +++ b/src/addons/messages/pages/discussions-35/discussions.html @@ -1,27 +1,27 @@ - +

{{ 'addon.messages.messages' | translate }}

- - + +
- + + [autoFocus]="false" /> @@ -29,7 +29,7 @@ - + diff --git a/src/addons/messages/pages/group-conversations/group-conversations.html b/src/addons/messages/pages/group-conversations/group-conversations.html index 7a9af7157..de0dd6db5 100644 --- a/src/addons/messages/pages/group-conversations/group-conversations.html +++ b/src/addons/messages/pages/group-conversations/group-conversations.html @@ -1,34 +1,34 @@ - +

{{ 'addon.messages.messages' | translate }}

- + - + - - + +
- + - +
- - + + [error]="favourites.loadMoreError" />

{{ 'addon.messages.nofavourites' | translate }}

@@ -68,7 +66,7 @@
- + @@ -77,8 +75,7 @@ [attr.aria-label]="(group.expanded ? 'core.collapse' : 'core.expand') | translate" [attr.aria-expanded]="group.expanded" aria-controls="addon-messages-groupconversations-group" role="heading" [detail]="false"> + [class.expandable-status-icon-expanded]="group.expanded" />

{{ 'addon.messages.groupconversations' | translate }} ({{ group.count }})

@@ -89,11 +86,10 @@
- - + + [error]="group.loadMoreError" />

{{ 'addon.messages.nogroupconversations' | translate }}

@@ -102,7 +98,7 @@
- + @@ -111,8 +107,7 @@ [attr.aria-expanded]="individual.expanded" aria-controls="addon-messages-groupconversations-individual" role="heading" [detail]="false"> + [class.expandable-status-icon-expanded]="individual.expanded" />

{{ 'addon.messages.individualconversations' | translate }} ({{ individual.count }})

@@ -123,11 +118,10 @@
- - + + [error]="individual.loadMoreError" />

{{ 'addon.messages.noindividualconversations' | translate }}

@@ -136,7 +130,7 @@
- + @@ -148,9 +142,9 @@ @@ -161,16 +155,15 @@ + [checkOnline]="conversation.showonlinestatus" slot="start" />

- - - - - + + +

@@ -183,7 +176,7 @@

- +

@@ -192,7 +185,7 @@ {{ conversation.members[0].fullname + ':' }} + contextLevel="system" [contextInstanceId]="0" />

diff --git a/src/addons/messages/pages/search/search.html b/src/addons/messages/pages/search/search.html index 933c0b2bb..60fa3c1ca 100644 --- a/src/addons/messages/pages/search/search.html +++ b/src/addons/messages/pages/search/search.html @@ -1,35 +1,34 @@ - +

{{ 'addon.messages.searchcombined' | translate }}

- +
+ [spellcheck]="false" [autoFocus]="true" [lengthCheck]="1" searchArea="AddonMessagesSearch" /> - - - + + + + [error]="messages.loadMoreError" /> - + icon="fas-magnifying-glass" [message]="'core.noresults' | translate" /> @@ -46,13 +45,11 @@ - +

- - - - + +

{{result.lastmessagedate | coreDateDayOrTime}} @@ -62,7 +59,7 @@ {{ 'addon.messages.you' | translate }} + contextLevel="system" [contextInstanceId]="0" class="addon-message-last-message-text" />

@@ -75,7 +72,7 @@
- +
diff --git a/src/addons/messages/pages/settings/settings.html b/src/addons/messages/pages/settings/settings.html index fe58ac796..c5c8a9c40 100644 --- a/src/addons/messages/pages/settings/settings.html +++ b/src/addons/messages/pages/settings/settings.html @@ -1,7 +1,7 @@ - +

{{ 'addon.messages.messages' | translate }}

@@ -10,7 +10,7 @@
- + @@ -25,7 +25,7 @@

{{ 'addon.messages.useentertosend' | translate }}

- +
@@ -36,8 +36,7 @@

{{ 'addon.messages.blocknoncontacts' | translate }}

- - + @@ -51,19 +50,19 @@

{{ 'addon.messages.contactableprivacy_onlycontacts' | translate }}

- +

{{ 'addon.messages.contactableprivacy_coursemember' | translate }}

- +

{{ 'addon.messages.contactableprivacy_site' | translate }}

- +
@@ -72,10 +71,10 @@ - + - +
@@ -109,8 +108,7 @@ - + (ngModelChange)="changePreferenceLegacy(notification, processor, state)" /> {{'core.settings.forced' | translate }} @@ -145,8 +143,7 @@ - - + {{ processor.lockedmessage }} diff --git a/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html b/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html index 38aa16a83..174c766bd 100644 --- a/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html +++ b/src/addons/mod/assign/components/edit-feedback-modal/edit-feedback-modal.html @@ -5,15 +5,14 @@ - +
- - + {{ 'core.done' | translate }}
diff --git a/src/addons/mod/assign/components/feedback-plugin/addon-mod-assign-feedback-plugin.html b/src/addons/mod/assign/components/feedback-plugin/addon-mod-assign-feedback-plugin.html index 3a61b78e2..81d2f09e0 100644 --- a/src/addons/mod/assign/components/feedback-plugin/addon-mod-assign-feedback-plugin.html +++ b/src/addons/mod/assign/components/feedback-plugin/addon-mod-assign-feedback-plugin.html @@ -9,12 +9,10 @@

- + contextLevel="module" [contextInstanceId]="assign.cmid" [courseId]="assign.course" />

- + [alwaysDownload]="true" />
diff --git a/src/addons/mod/assign/components/index/addon-mod-assign-index.html b/src/addons/mod/assign/components/index/addon-mod-assign-index.html index 3f65bb593..cef082331 100644 --- a/src/addons/mod/assign/components/index/addon-mod-assign-index.html +++ b/src/addons/mod/assign/components/index/addon-mod-assign-index.html @@ -1,7 +1,7 @@ - + @@ -12,8 +12,7 @@
- - +
@@ -21,8 +20,7 @@ - - + @@ -115,19 +113,17 @@ - +
- - +
- + [moduleId]="module.id" /> diff --git a/src/addons/mod/assign/components/submission-plugin/addon-mod-assign-submission-plugin.html b/src/addons/mod/assign/components/submission-plugin/addon-mod-assign-submission-plugin.html index 29818a878..389c7ed53 100644 --- a/src/addons/mod/assign/components/submission-plugin/addon-mod-assign-submission-plugin.html +++ b/src/addons/mod/assign/components/submission-plugin/addon-mod-assign-submission-plugin.html @@ -9,12 +9,10 @@

- + contextLevel="module" [contextInstanceId]="assign.cmid" [courseId]="assign.course" />

- + [alwaysDownload]="true" /> diff --git a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html index fc5a16654..a0f9a4e70 100644 --- a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html +++ b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html @@ -3,7 +3,7 @@ - + @@ -136,8 +135,7 @@ - + [submission]="userSubmission" [plugin]="plugin" /> @@ -149,7 +147,7 @@ - +

{{ user.fullname }}

@@ -213,7 +211,7 @@ {{ 'core.openinbrowser' | translate }} - +
@@ -229,10 +227,9 @@ - + - - + @@ -253,8 +250,7 @@ - - + @@ -268,12 +264,12 @@

{{ 'addon.mod_assign.currentgrade' | translate }}

- +

- + @@ -285,8 +281,7 @@

{{ 'addon.mod_assign.gradeoutof' | translate: {$a: gradeInfo!.grade} }}

- + [lang]="grade.lang" />

{{ 'addon.mod_assign.gradelocked' | translate }}

@@ -345,8 +340,7 @@ - + [submission]="userSubmission" [userId]="submitId" [plugin]="plugin" [canEdit]="canSaveGrades" /> @@ -363,7 +357,7 @@

{{ 'addon.mod_assign.groupsubmissionsettings' | translate }}

{{ 'addon.mod_assign.applytoteam' | translate }}

- + @@ -387,14 +381,14 @@ {{ 'addon.mod_assign.addattempt' | translate }} - + - +

{{ 'addon.mod_assign.gradedby' | translate }}

{{ grader!.fullname }}

@@ -413,12 +407,12 @@ - + @@ -434,8 +428,7 @@

- + [wsNotFiltered]="true" />

- + [contextInstanceId]="assign.cmid" [courseId]="assign.course" />

- +
- {{ 'core.notsent' | translate }} +
@@ -25,6 +24,5 @@ {{ plugin.name }} - + elementId="assignfeedbackcomments_editor" [draftExtraParams]="{userid: userId, action: 'grade'}" /> diff --git a/src/addons/mod/assign/feedback/editpdf/component/addon-mod-assign-feedback-editpdf.html b/src/addons/mod/assign/feedback/editpdf/component/addon-mod-assign-feedback-editpdf.html index d50b9ae85..e3facd7a1 100644 --- a/src/addons/mod/assign/feedback/editpdf/component/addon-mod-assign-feedback-editpdf.html +++ b/src/addons/mod/assign/feedback/editpdf/component/addon-mod-assign-feedback-editpdf.html @@ -3,8 +3,8 @@

{{plugin.name}}

- - +
diff --git a/src/addons/mod/assign/feedback/file/component/addon-mod-assign-feedback-file.html b/src/addons/mod/assign/feedback/file/component/addon-mod-assign-feedback-file.html index d50b9ae85..e3facd7a1 100644 --- a/src/addons/mod/assign/feedback/file/component/addon-mod-assign-feedback-file.html +++ b/src/addons/mod/assign/feedback/file/component/addon-mod-assign-feedback-file.html @@ -3,8 +3,8 @@

{{plugin.name}}

- - +
diff --git a/src/addons/mod/assign/pages/edit/edit.html b/src/addons/mod/assign/pages/edit/edit.html index 9b1cecbaa..a05415641 100644 --- a/src/addons/mod/assign/pages/edit/edit.html +++ b/src/addons/mod/assign/pages/edit/edit.html @@ -1,12 +1,11 @@ - +

- - +

@@ -22,38 +21,33 @@ - + [underTimeClassThresholds]="[300, 900]" /> - + [contextInstanceId]="moduleId" [courseId]="courseId" /> - - +
- - + - + - + [submission]="userSubmission" [plugin]="plugin" [edit]="true" [allowOffline]="allowOffline" />
diff --git a/src/addons/mod/assign/pages/index/index.html b/src/addons/mod/assign/pages/index/index.html index 0ee3bc5a8..4bcdb2e52 100644 --- a/src/addons/mod/assign/pages/index/index.html +++ b/src/addons/mod/assign/pages/index/index.html @@ -1,24 +1,21 @@ - +

- - +

- - - +
- + - + diff --git a/src/addons/mod/assign/pages/submission-list/submission-list.html b/src/addons/mod/assign/pages/submission-list/submission-list.html index dfc608421..2dc9b43e2 100644 --- a/src/addons/mod/assign/pages/submission-list/submission-list.html +++ b/src/addons/mod/assign/pages/submission-list/submission-list.html @@ -1,35 +1,33 @@ - +

- - +

- +
- + - + [courseId]="courseId" /> - +

{{submission.userfullname}}

@@ -37,8 +35,7 @@

- - + @@ -68,8 +65,7 @@ - + [message]="'addon.mod_assign.submissionstatus_' | translate" /> diff --git a/src/addons/mod/assign/pages/submission-review/submission-review.html b/src/addons/mod/assign/pages/submission-review/submission-review.html index 370086cb0..fe477e715 100644 --- a/src/addons/mod/assign/pages/submission-review/submission-review.html +++ b/src/addons/mod/assign/pages/submission-review/submission-review.html @@ -1,16 +1,15 @@ - +

- - +

- +
@@ -21,10 +20,9 @@
- + - - + diff --git a/src/addons/mod/assign/services/assign-helper.ts b/src/addons/mod/assign/services/assign-helper.ts index 36691cf68..49384adee 100644 --- a/src/addons/mod/assign/services/assign-helper.ts +++ b/src/addons/mod/assign/services/assign-helper.ts @@ -15,7 +15,7 @@ import { Injectable } from '@angular/core'; import { CoreFileUploader, CoreFileUploaderStoreFilesResult } from '@features/fileuploader/services/fileuploader'; import { CoreSites, CoreSitesCommonWSOptions } from '@services/sites'; -import { FileEntry, DirectoryEntry } from '@ionic-native/file/ngx'; +import { FileEntry, DirectoryEntry } from '@awesome-cordova-plugins/file/ngx'; import { AddonModAssignProvider, AddonModAssignAssign, diff --git a/src/addons/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html b/src/addons/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html index 912151506..aeb861c11 100644 --- a/src/addons/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html +++ b/src/addons/mod/assign/submission/comments/component/addon-mod-assign-submission-comments.html @@ -2,7 +2,6 @@

{{plugin.name}}

- + area="submission_comments" [title]="plugin.name" [courseId]="assign.course" />
diff --git a/src/addons/mod/assign/submission/file/component/addon-mod-assign-submission-file.html b/src/addons/mod/assign/submission/file/component/addon-mod-assign-submission-file.html index 9dff2e4d5..5e4e45293 100644 --- a/src/addons/mod/assign/submission/file/component/addon-mod-assign-submission-file.html +++ b/src/addons/mod/assign/submission/file/component/addon-mod-assign-submission-file.html @@ -3,7 +3,7 @@

{{ plugin.name }}

- +
@@ -16,6 +16,5 @@
- + [component]="component" [componentId]="assign.cmid" [acceptedTypes]="acceptedTypes" [allowOffline]="allowOffline" /> diff --git a/src/addons/mod/assign/submission/file/component/file.ts b/src/addons/mod/assign/submission/file/component/file.ts index 560757263..dd43def99 100644 --- a/src/addons/mod/assign/submission/file/component/file.ts +++ b/src/addons/mod/assign/submission/file/component/file.ts @@ -20,7 +20,7 @@ import { CoreFileUploaderStoreFilesResult } from '@features/fileuploader/service import { CoreFileSession } from '@services/file-session'; import { CoreUtils } from '@services/utils/utils'; import { AddonModAssignSubmissionFileHandlerService } from '../services/handler'; -import { FileEntry } from '@ionic-native/file/ngx'; +import { FileEntry } from '@awesome-cordova-plugins/file/ngx'; import { AddonModAssignSubmissionPluginBaseComponent } from '@addons/mod/assign/classes/base-submission-plugin-component'; import { CoreFileEntry } from '@services/file-helper'; diff --git a/src/addons/mod/assign/submission/file/services/handler.ts b/src/addons/mod/assign/submission/file/services/handler.ts index 07f87e6a9..a919b5ac4 100644 --- a/src/addons/mod/assign/submission/file/services/handler.ts +++ b/src/addons/mod/assign/submission/file/services/handler.ts @@ -30,7 +30,7 @@ import { CoreUtils } from '@services/utils/utils'; import { CoreWSFile } from '@services/ws'; import { makeSingleton } from '@singletons'; import { AddonModAssignSubmissionFileComponent } from '../component/file'; -import { FileEntry } from '@ionic-native/file/ngx'; +import { FileEntry } from '@awesome-cordova-plugins/file/ngx'; import type { AddonModAssignSubmissionPluginBaseComponent } from '@addons/mod/assign/classes/base-submission-plugin-component'; /** diff --git a/src/addons/mod/assign/submission/onlinetext/component/addon-mod-assign-submission-onlinetext.html b/src/addons/mod/assign/submission/onlinetext/component/addon-mod-assign-submission-onlinetext.html index b417a1286..80ee10649 100644 --- a/src/addons/mod/assign/submission/onlinetext/component/addon-mod-assign-submission-onlinetext.html +++ b/src/addons/mod/assign/submission/onlinetext/component/addon-mod-assign-submission-onlinetext.html @@ -5,8 +5,7 @@

{{ 'addon.mod_assign.numwords' | translate: {'$a': words} }}

- + [contextInstanceId]="assign.cmid" [courseId]="assign.course" />

@@ -29,7 +28,6 @@ - + [draftExtraParams]="{userid: currentUserId, action: 'editsubmission'}" /> diff --git a/src/addons/mod/bigbluebuttonbn/components/index/index.html b/src/addons/mod/bigbluebuttonbn/components/index/index.html index bb1d82c25..eb5ae623d 100644 --- a/src/addons/mod/bigbluebuttonbn/components/index/index.html +++ b/src/addons/mod/bigbluebuttonbn/components/index/index.html @@ -1,7 +1,7 @@ - + @@ -10,12 +10,10 @@ - + [courseId]="courseId" (completionChanged)="onCompletionChange()" /> - + [multipleGroupsMessage]="'addon.mod_bigbluebuttonbn.view_groups_selection_warning' | translate" [courseId]="module.course" /> @@ -78,7 +76,7 @@ - + @@ -94,8 +92,7 @@ + [class.expandable-status-icon-expanded]="recording.expanded" />

{{ recording.type }}

{{ recording.name }}

@@ -113,7 +110,7 @@

{{ playback.name }}

- +
@@ -121,7 +118,7 @@

{{ data.label }}

+ [contextInstanceId]="module.id" [courseId]="module.course" />

{{ data.value }}

@@ -130,8 +127,7 @@
- + [message]="'addon.mod_bigbluebuttonbn.view_message_norecordings' | translate" />
@@ -146,7 +142,6 @@
- - + diff --git a/src/addons/mod/bigbluebuttonbn/pages/index/index.html b/src/addons/mod/bigbluebuttonbn/pages/index/index.html index 506ef400b..538e267fe 100644 --- a/src/addons/mod/bigbluebuttonbn/pages/index/index.html +++ b/src/addons/mod/bigbluebuttonbn/pages/index/index.html @@ -1,23 +1,20 @@ - +

- - +

- - - +
- + - + diff --git a/src/addons/mod/book/components/index/addon-mod-book-index.html b/src/addons/mod/book/components/index/addon-mod-book-index.html index 704677aee..6f60eaf28 100644 --- a/src/addons/mod/book/components/index/addon-mod-book-index.html +++ b/src/addons/mod/book/components/index/addon-mod-book-index.html @@ -1,7 +1,7 @@ - + @@ -10,8 +10,7 @@ - + [courseId]="courseId" (completionChanged)="onCompletionChange()" /> @@ -26,8 +25,7 @@

{{chapter.indexNumber}} - - +

@@ -41,7 +39,6 @@ - - + diff --git a/src/addons/mod/book/components/toc/toc.html b/src/addons/mod/book/components/toc/toc.html index 64a99d665..e68109ac6 100644 --- a/src/addons/mod/book/components/toc/toc.html +++ b/src/addons/mod/book/components/toc/toc.html @@ -5,7 +5,7 @@ - + @@ -20,8 +20,8 @@

{{chapter.indexNumber}} - - +

diff --git a/src/addons/mod/book/pages/contents/contents.html b/src/addons/mod/book/pages/contents/contents.html index ac443ffd7..b1169bfeb 100644 --- a/src/addons/mod/book/pages/contents/contents.html +++ b/src/addons/mod/book/pages/contents/contents.html @@ -1,43 +1,42 @@ - +

- - +

- +
- +
- + - +
+ [contextInstanceId]="cmId" [courseId]="courseId" [disabled]="!active" />
{{ 'core.tag.tags' | translate }}: - +
@@ -47,6 +46,5 @@ - + (action)="changeChapter($event.id)" slot="fixed" /> diff --git a/src/addons/mod/book/pages/contents/contents.ts b/src/addons/mod/book/pages/contents/contents.ts index 0581eae1d..02bf9560a 100644 --- a/src/addons/mod/book/pages/contents/contents.ts +++ b/src/addons/mod/book/pages/contents/contents.ts @@ -41,6 +41,7 @@ import { } from '../../services/book'; import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics'; import { CoreUrlUtils } from '@services/utils/url'; +import { IonicSlides } from '@ionic/angular'; /** * Page that displays a book contents. @@ -52,7 +53,7 @@ import { CoreUrlUtils } from '@services/utils/url'; }) export class AddonModBookContentsPage implements OnInit, OnDestroy { - @ViewChild(CoreSwipeSlidesComponent) slides?: CoreSwipeSlidesComponent; + @ViewChild(CoreSwipeSlidesComponent) swipeSlidesComponent?: CoreSwipeSlidesComponent; title = ''; cmId!: number; @@ -63,7 +64,8 @@ export class AddonModBookContentsPage implements OnInit, OnDestroy { warning = ''; displayNavBar = true; navigationItems: CoreNavigationBarItem[] = []; - slidesOpts: CoreSwipeSlidesOptions = { + swiperOpts: CoreSwipeSlidesOptions = { + modules: [IonicSlides], autoHeight: true, observer: true, observeParents: true, @@ -222,7 +224,7 @@ export class AddonModBookContentsPage implements OnInit, OnDestroy { return; } - this.slides?.slideToItem({ id: chapterId }); + this.swipeSlidesComponent?.slideToItem({ id: chapterId }); } /** diff --git a/src/addons/mod/book/pages/index/index.html b/src/addons/mod/book/pages/index/index.html index 5b58f63cc..525f74785 100644 --- a/src/addons/mod/book/pages/index/index.html +++ b/src/addons/mod/book/pages/index/index.html @@ -1,24 +1,20 @@ - +

- - +

- - - +
- + - - + diff --git a/src/addons/mod/book/tests/behat/basic_usage.feature b/src/addons/mod/book/tests/behat/basic_usage.feature index a20893125..7231a77c7 100755 --- a/src/addons/mod/book/tests/behat/basic_usage.feature +++ b/src/addons/mod/book/tests/behat/basic_usage.feature @@ -134,22 +134,22 @@ Feature: Test basic usage of book activity in app But I should not find "This is the first chapter" in the app # Navigate using swipe. - When I swipe to the left in "Chapt 3" "ion-slides" in the app + When I swipe to the left in "Chapt 3" "swiper-container" in the app Then I should find "Chapt 3" in the app And I should find "This is the third chapter" in the app And I should find "4 / 4" in the app - When I swipe to the right in "Chapt 3" "ion-slides" in the app + When I swipe to the right in "Chapt 3" "swiper-container" in the app Then I should find "Chapt 2" in the app And I should find "This is the second chapter" in the app And I should find "3 / 4" in the app - When I swipe to the right in "Chapt 2" "ion-slides" in the app + When I swipe to the right in "Chapt 2" "swiper-container" in the app Then I should find "Chapt 1.1" in the app And I should find "This is a subchapter" in the app And I should find "2 / 4" in the app - When I swipe to the left in "Chapt 1.1" "ion-slides" in the app + When I swipe to the left in "Chapt 1.1" "swiper-container" in the app Then I should find "Chapt 2" in the app And I should find "This is the second chapter" in the app And I should find "3 / 4" in the app @@ -208,22 +208,22 @@ Scenario: View and navigate book contents (teacher) But I should not find "This is the first chapter" in the app # Navigate using swipe. - When I swipe to the left in "Hidden subchapter" "ion-slides" in the app + When I swipe to the left in "Hidden subchapter" "swiper-container" in the app Then I should find "Chapt 3" in the app And I should find "This is the third chapter" in the app And I should find "6 / 7" in the app - When I swipe to the left in "Chapt 3" "ion-slides" in the app + When I swipe to the left in "Chapt 3" "swiper-container" in the app Then I should find "Last hidden" in the app And I should find "Another hidden subchapter" in the app And I should find "7 / 7" in the app - When I swipe to the left in "Last hidden" "ion-slides" in the app + When I swipe to the left in "Last hidden" "swiper-container" in the app Then I should find "Last hidden" in the app And I should find "Another hidden subchapter" in the app And I should find "7 / 7" in the app - When I swipe to the right in "Last hidden" "ion-slides" in the app + When I swipe to the right in "Last hidden" "swiper-container" in the app Then I should find "Chapt 3" in the app And I should find "This is the third chapter" in the app And I should find "6 / 7" in the app diff --git a/src/addons/mod/chat/components/index/addon-mod-chat-index.html b/src/addons/mod/chat/components/index/addon-mod-chat-index.html index a10e1a5f1..74b7c4e80 100644 --- a/src/addons/mod/chat/components/index/addon-mod-chat-index.html +++ b/src/addons/mod/chat/components/index/addon-mod-chat-index.html @@ -1,7 +1,7 @@ - + @@ -10,12 +10,11 @@ - + [courseId]="courseId" (completionChanged)="onCompletionChange()" /> - + @@ -31,7 +30,6 @@
- - +
diff --git a/src/addons/mod/chat/components/users-modal/users-modal.html b/src/addons/mod/chat/components/users-modal/users-modal.html index df6fcd304..dd98dc8f9 100644 --- a/src/addons/mod/chat/components/users-modal/users-modal.html +++ b/src/addons/mod/chat/components/users-modal/users-modal.html @@ -5,7 +5,7 @@ - + @@ -14,16 +14,16 @@ - +

{{ user.fullname }}

- + - + diff --git a/src/addons/mod/chat/pages/chat/chat.html b/src/addons/mod/chat/pages/chat/chat.html index ba9f9bc44..fd15a114c 100644 --- a/src/addons/mod/chat/pages/chat/chat.html +++ b/src/addons/mod/chat/pages/chat/chat.html @@ -1,17 +1,16 @@ - +

- - +

- +
@@ -28,7 +27,7 @@
- + @@ -36,7 +35,7 @@ - + @@ -44,7 +43,7 @@ - + @@ -53,7 +52,7 @@ - + @@ -62,7 +61,7 @@ - + @@ -70,12 +69,11 @@ - + @@ -83,13 +81,11 @@ - + [courseId]="courseId" /> - - + @@ -99,8 +95,7 @@

- + (onSubmit)="sendMessage($event)" [placeholder]="'addon.messages.newmessage' | translate" /> {{ 'core.login.reconnect' | translate }} diff --git a/src/addons/mod/chat/pages/index/index.html b/src/addons/mod/chat/pages/index/index.html index 8516625cf..07c6b8fc0 100644 --- a/src/addons/mod/chat/pages/index/index.html +++ b/src/addons/mod/chat/pages/index/index.html @@ -1,23 +1,20 @@ - +

- - +

- - - +
- + - + diff --git a/src/addons/mod/chat/pages/session-messages/session-messages.html b/src/addons/mod/chat/pages/session-messages/session-messages.html index 484ec12c8..601bd68fc 100644 --- a/src/addons/mod/chat/pages/session-messages/session-messages.html +++ b/src/addons/mod/chat/pages/session-messages/session-messages.html @@ -1,7 +1,7 @@ - +

{{ 'addon.mod_chat.messages' | translate }}

@@ -10,7 +10,7 @@
- + @@ -23,7 +23,7 @@
- + @@ -31,7 +31,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -65,19 +65,18 @@ - +
- + [time]="message.timestamp * 1000" contextLevel="module" [instanceId]="cmId" [courseId]="courseId" />
diff --git a/src/addons/mod/chat/pages/sessions/sessions.html b/src/addons/mod/chat/pages/sessions/sessions.html index c2e1b3371..8fc39d7c1 100644 --- a/src/addons/mod/chat/pages/sessions/sessions.html +++ b/src/addons/mod/chat/pages/sessions/sessions.html @@ -1,7 +1,7 @@ - +

{{ 'addon.mod_chat.chatreport' | translate }}

@@ -11,15 +11,14 @@ - + - - + {{ 'addon.mod_chat.showincompletesessions' | translate }} - + - - + diff --git a/src/addons/mod/choice/components/index/addon-mod-choice-index.html b/src/addons/mod/choice/components/index/addon-mod-choice-index.html index 08e56bc8a..a362558bb 100644 --- a/src/addons/mod/choice/components/index/addon-mod-choice-index.html +++ b/src/addons/mod/choice/components/index/addon-mod-choice-index.html @@ -1,7 +1,7 @@ - + @@ -9,13 +9,12 @@ - + [courseId]="courseId" [hasDataToSync]="hasOffline" (completionChanged)="onCompletionChange()" /> - +
- - +
@@ -153,8 +148,7 @@

- - + {{ 'addon.mod_choice.full' | translate }} diff --git a/src/addons/mod/choice/pages/index/index.html b/src/addons/mod/choice/pages/index/index.html index b1837e151..4f5850db2 100644 --- a/src/addons/mod/choice/pages/index/index.html +++ b/src/addons/mod/choice/pages/index/index.html @@ -1,23 +1,20 @@ - +

- - +

- - - + - + - + diff --git a/src/addons/mod/data/components/action/addon-mod-data-action.html b/src/addons/mod/data/components/action/addon-mod-data-action.html index 2fca169f6..26315c8b0 100644 --- a/src/addons/mod/data/components/action/addon-mod-data-action.html +++ b/src/addons/mod/data/components/action/addon-mod-data-action.html @@ -1,49 +1,48 @@ - + - + - + - + - + - + - + - + component="mod_data" [itemId]="entry.id" area="database_entry" [courseId]="database.course" /> {{ entry.timecreated * 1000 | coreFormatDate }} {{ entry.timemodified * 1000 | coreFormatDate }} + [profileUrl]="userPicture" /> {{entry.fullname}} - + diff --git a/src/addons/mod/data/components/actionsmenu/actionsmenu.html b/src/addons/mod/data/components/actionsmenu/actionsmenu.html index eadbe7c6a..70fe1df31 100644 --- a/src/addons/mod/data/components/actionsmenu/actionsmenu.html +++ b/src/addons/mod/data/components/actionsmenu/actionsmenu.html @@ -5,7 +5,7 @@

{{ item.text | translate }}

- +
diff --git a/src/addons/mod/data/components/field-plugin/addon-mod-data-field-plugin.html b/src/addons/mod/data/components/field-plugin/addon-mod-data-field-plugin.html index c738b7d01..6a9ff5ec9 100644 --- a/src/addons/mod/data/components/field-plugin/addon-mod-data-field-plugin.html +++ b/src/addons/mod/data/components/field-plugin/addon-mod-data-field-plugin.html @@ -1,4 +1,4 @@ - + diff --git a/src/addons/mod/data/components/index/addon-mod-data-index.html b/src/addons/mod/data/components/index/addon-mod-data-index.html index 841034633..269610acf 100644 --- a/src/addons/mod/data/components/index/addon-mod-data-index.html +++ b/src/addons/mod/data/components/index/addon-mod-data-index.html @@ -1,19 +1,17 @@ - + - + (action)="gotoAddEntries()" /> - + (action)="gotoEntry(firstEntry)" /> - + @@ -22,30 +20,28 @@ - + [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings" (completionChanged)="onCompletionChange()" /> - + [courseId]="database?.course" /> - + - + - + @@ -32,23 +31,21 @@ class="expandable-status-icon" (ariaButtonClick)="toggleExpand($event, section)" [attr.aria-label]="(section.expanded ? 'core.collapse' : 'core.expand') | translate" [attr.aria-expanded]="section.expanded" [attr.aria-controls]="'core-course-index-section-' + section.id" - [class.expandable-status-icon-expanded]="section.expanded"> - - + [class.expandable-status-icon-expanded]="section.expanded" /> +
diff --git a/src/core/features/editor/components/components.module.ts b/src/core/features/editor/components/components.module.ts index 3c46c84a7..8bc9e4105 100644 --- a/src/core/features/editor/components/components.module.ts +++ b/src/core/features/editor/components/components.module.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { NgModule } from '@angular/core'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { CoreEditorRichTextEditorComponent } from './rich-text-editor/rich-text-editor'; import { CoreSharedModule } from '@/core/shared.module'; @@ -29,5 +29,6 @@ import { CoreSharedModule } from '@/core/shared.module'; exports: [ CoreEditorRichTextEditorComponent, ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], }) export class CoreEditorComponentsModule {} diff --git a/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html b/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html index 2d260dbd3..3e8d4cd0b 100644 --- a/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html +++ b/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html @@ -6,11 +6,10 @@ - + [placeholder]="placeholder" (ionChange)="onChange()" (ionFocus)="showToolbar($event)" (ionBlur)="hideToolbar($event)" />
- +
@@ -19,108 +18,108 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/src/core/features/editor/components/rich-text-editor/rich-text-editor.scss b/src/core/features/editor/components/rich-text-editor/rich-text-editor.scss index 150441cdf..f75d17f41 100644 --- a/src/core/features/editor/components/rich-text-editor/rich-text-editor.scss +++ b/src/core/features/editor/components/rich-text-editor/rich-text-editor.scss @@ -108,7 +108,7 @@ padding-top: 5px; border-top: 1px solid var(--stroke); - ion-slides { + swiper-container { width: 240px; flex-grow: 1; flex-shrink: 1; diff --git a/src/core/features/editor/components/rich-text-editor/rich-text-editor.ts b/src/core/features/editor/components/rich-text-editor/rich-text-editor.ts index 74bf1f1f5..2d54bd8f6 100644 --- a/src/core/features/editor/components/rich-text-editor/rich-text-editor.ts +++ b/src/core/features/editor/components/rich-text-editor/rich-text-editor.ts @@ -25,7 +25,7 @@ import { AfterViewInit, } from '@angular/core'; import { FormControl } from '@angular/forms'; -import { IonTextarea, IonContent, IonSlides } from '@ionic/angular'; +import { IonTextarea, IonContent, IonicSlides } from '@ionic/angular'; import { Subscription } from 'rxjs'; import { CoreSites } from '@services/sites'; @@ -42,6 +42,8 @@ import { CoreScreen } from '@services/screen'; import { CoreCancellablePromise } from '@classes/cancellable-promise'; import { CoreDom } from '@singletons/dom'; import { CorePlatform } from '@services/platform'; +import { Swiper } from 'swiper'; +import { SwiperOptions } from 'swiper/types'; /** * Component to display a rich text editor if enabled. @@ -78,7 +80,27 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, @ViewChild('editor') editor?: ElementRef; // WYSIWYG editor. @ViewChild('textarea') textarea?: IonTextarea; // Textarea editor. @ViewChild('toolbar') toolbar?: ElementRef; - @ViewChild(IonSlides) toolbarSlides?: IonSlides; + protected toolbarSlides?: Swiper; + @ViewChild('swiperRef') + set swiperRef(swiperRef: ElementRef) { + /** + * This setTimeout waits for Ionic's async initialization to complete. + * Otherwise, an outdated swiper reference will be used. + */ + setTimeout(() => { + if (swiperRef.nativeElement?.swiper) { + this.toolbarSlides = swiperRef.nativeElement.swiper as Swiper; + + this.toolbarSlides.changeLanguageDirection(CorePlatform.isRTL ? 'rtl' : 'ltr'); + + Object.keys(this.swiperOpts).forEach((key) => { + if (this.toolbarSlides) { + this.toolbarSlides.params[key] = this.swiperOpts[key]; + } + }); + } + }, 0); + } protected readonly DRAFT_AUTOSAVE_FREQUENCY = 30000; protected readonly RESTORE_MESSAGE_CLEAR_TIME = 6000; @@ -119,7 +141,6 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, canScanQR = false; ariaLabelledBy?: string; infoMessage?: string; - direction = 'ltr'; toolbarStyles = { strong: 'false', em: 'false', @@ -133,11 +154,11 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, ol: 'false', }; - slidesOpts = { - initialSlide: 0, + swiperOpts: SwiperOptions = { + modules: [IonicSlides], slidesPerView: 6, centerInsufficientSlides: true, - watchSlidesVisibility: true, + watchSlidesProgress: true, }; constructor( @@ -156,7 +177,6 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, this.canScanQR = CoreUtils.canScanQR(); this.isPhone = CoreScreen.isMobile; this.toolbarHidden = this.isPhone; - this.direction = CorePlatform.isRTL ? 'rtl' : 'ltr'; } /** @@ -265,7 +285,7 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, // Change the side when the language changes. this.languageChangedSubscription = Translate.onLangChange.subscribe(() => { setTimeout(() => { - this.direction = CorePlatform.isRTL ? 'rtl' : 'ltr'; + this.toolbarSlides?.changeLanguageDirection(CorePlatform.isRTL ? 'rtl' : 'ltr'); }); }); } @@ -656,8 +676,8 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, /** * Replace tags for a11y. * - * @param originTag Origin tags to be replaced. - * @param destinationTag Destination tags to replace. + * @param originTags Origin tags to be replaced. + * @param destinationTags Destination tags to replace. */ protected replaceTags(originTags: string[], destinationTags: string[]): void { if (!this.editorElement) { @@ -774,8 +794,8 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, this.stopBubble(event); if (!this.toolbarNextHidden) { - const currentIndex = await this.toolbarSlides?.getActiveIndex(); - this.toolbarSlides?.slideTo((currentIndex || 0) + this.slidesOpts.slidesPerView); + const currentIndex = this.toolbarSlides?.activeIndex; + this.toolbarSlides?.slideTo((currentIndex || 0) + this.toolbarSlides.slidesPerViewDynamic()); } await this.updateToolbarArrows(); @@ -792,8 +812,8 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, this.stopBubble(event); if (!this.toolbarPrevHidden) { - const currentIndex = await this.toolbarSlides?.getActiveIndex(); - this.toolbarSlides?.slideTo((currentIndex || 0) - this.slidesOpts.slidesPerView); + const currentIndex = this.toolbarSlides?.activeIndex; + this.toolbarSlides?.slideTo((currentIndex || 0) - this.toolbarSlides.slidesPerViewDynamic()); } await this.updateToolbarArrows(); @@ -808,7 +828,7 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, return; } - const length = await this.toolbarSlides.length(); + const length = this.toolbarSlides.slides.length; // Cancel previous one, if any. this.buttonsDomPromise?.cancel(); @@ -818,17 +838,16 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, const width = this.toolbar.nativeElement.getBoundingClientRect().width; if (length > 0 && width > length * this.toolbarButtonWidth) { - this.slidesOpts = { ...this.slidesOpts, slidesPerView: length }; + this.swiperOpts.slidesPerView = length; this.toolbarArrows = false; } else { - const slidesPerView = Math.floor((width - this.toolbarArrowWidth * 2) / this.toolbarButtonWidth); - this.slidesOpts = { ...this.slidesOpts, slidesPerView }; + this.swiperOpts.slidesPerView = Math.floor((width - this.toolbarArrowWidth * 2) / this.toolbarButtonWidth); this.toolbarArrows = true; } await CoreUtils.nextTick(); - await this.toolbarSlides.update(); + this.toolbarSlides.update(); await this.updateToolbarArrows(); } @@ -841,10 +860,10 @@ export class CoreEditorRichTextEditorComponent implements OnInit, AfterViewInit, return; } - const currentIndex = await this.toolbarSlides.getActiveIndex(); - const length = await this.toolbarSlides.length(); + const currentIndex = this.toolbarSlides.activeIndex; + const length = this.toolbarSlides.slides.length; this.toolbarPrevHidden = currentIndex <= 0; - this.toolbarNextHidden = currentIndex + this.slidesOpts.slidesPerView >= length; + this.toolbarNextHidden = currentIndex + this.toolbarSlides.slidesPerViewDynamic() >= length; } /** diff --git a/src/core/features/emulator/classes/sqlitedb.ts b/src/core/features/emulator/classes/sqlitedb.ts index 9111fd84b..f0243ba6f 100644 --- a/src/core/features/emulator/classes/sqlitedb.ts +++ b/src/core/features/emulator/classes/sqlitedb.ts @@ -13,7 +13,7 @@ // limitations under the License. import { SQLiteDB } from '@classes/sqlitedb'; -import { DbTransaction, SQLiteObject } from '@ionic-native/sqlite/ngx'; +import { DbTransaction, SQLiteObject } from '@awesome-cordova-plugins/sqlite/ngx'; import { CoreDB } from '@services/db'; /** diff --git a/src/core/features/emulator/components/capture-media/capture-media.html b/src/core/features/emulator/components/capture-media/capture-media.html index a33ca161c..a3b55675d 100644 --- a/src/core/features/emulator/components/capture-media/capture-media.html +++ b/src/core/features/emulator/components/capture-media/capture-media.html @@ -31,21 +31,20 @@ - + - - - + - + - + (onEnd)="stopCapturing()" /> diff --git a/src/core/features/emulator/components/capture-media/capture-media.ts b/src/core/features/emulator/components/capture-media/capture-media.ts index 34f9390e9..dfa829888 100644 --- a/src/core/features/emulator/components/capture-media/capture-media.ts +++ b/src/core/features/emulator/components/capture-media/capture-media.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Component, OnInit, OnDestroy, ViewChild, ElementRef, ChangeDetectorRef, Input } from '@angular/core'; -import { MediaFile } from '@ionic-native/media-capture/ngx'; +import { MediaFile } from '@awesome-cordova-plugins/media-capture/ngx'; import { CoreFile, CoreFileProvider } from '@services/file'; import { CoreDomUtils } from '@services/utils/dom'; diff --git a/src/core/features/emulator/emulator.module.ts b/src/core/features/emulator/emulator.module.ts index e82936fe0..a5436fa31 100644 --- a/src/core/features/emulator/emulator.module.ts +++ b/src/core/features/emulator/emulator.module.ts @@ -18,16 +18,16 @@ import { CoreEmulatorHelper } from './services/emulator-helper'; import { CoreEmulatorComponentsModule } from './components/components.module'; // Ionic Native services. -import { Camera } from '@ionic-native/camera/ngx'; -import { Clipboard } from '@ionic-native/clipboard/ngx'; -import { File } from '@ionic-native/file/ngx'; -import { FileOpener } from '@ionic-native/file-opener/ngx'; -import { FileTransfer } from '@ionic-native/file-transfer/ngx'; -import { Geolocation } from '@ionic-native/geolocation/ngx'; -import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; -import { LocalNotifications } from '@ionic-native/local-notifications/ngx'; -import { MediaCapture } from '@ionic-native/media-capture/ngx'; -import { Zip } from '@ionic-native/zip/ngx'; +import { Camera } from '@awesome-cordova-plugins/camera/ngx'; +import { Clipboard } from '@awesome-cordova-plugins/clipboard/ngx'; +import { File } from '@awesome-cordova-plugins/file/ngx'; +import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; +import { FileTransfer } from '@awesome-cordova-plugins/file-transfer/ngx'; +import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx'; +import { InAppBrowser } from '@awesome-cordova-plugins/in-app-browser/ngx'; +import { LocalNotifications } from '@awesome-cordova-plugins/local-notifications/ngx'; +import { MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx'; +import { Zip } from '@awesome-cordova-plugins/zip/ngx'; // Mock services. import { CameraMock } from './services/camera'; diff --git a/src/core/features/emulator/services/camera.ts b/src/core/features/emulator/services/camera.ts index 5718ca7a3..871fc2235 100644 --- a/src/core/features/emulator/services/camera.ts +++ b/src/core/features/emulator/services/camera.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { Camera, CameraOptions } from '@ionic-native/camera/ngx'; +import { Camera, CameraOptions } from '@awesome-cordova-plugins/camera/ngx'; import { CoreEmulatorCaptureHelper } from './capture-helper'; diff --git a/src/core/features/emulator/services/capture-helper.ts b/src/core/features/emulator/services/capture-helper.ts index 42c0288a5..e984b3cb4 100644 --- a/src/core/features/emulator/services/capture-helper.ts +++ b/src/core/features/emulator/services/capture-helper.ts @@ -13,8 +13,8 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { CameraOptions } from '@ionic-native/camera/ngx'; -import { CaptureImageOptions, CaptureVideoOptions, MediaFile } from '@ionic-native/media-capture/ngx'; +import { CameraOptions } from '@awesome-cordova-plugins/camera/ngx'; +import { CaptureImageOptions, CaptureVideoOptions, MediaFile } from '@awesome-cordova-plugins/media-capture/ngx'; import { CoreMimetypeUtils } from '@services/utils/mimetype'; import { makeSingleton, ModalController } from '@singletons'; diff --git a/src/core/features/emulator/services/clipboard.ts b/src/core/features/emulator/services/clipboard.ts index 3a4615fc2..ea5dd4722 100644 --- a/src/core/features/emulator/services/clipboard.ts +++ b/src/core/features/emulator/services/clipboard.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { Clipboard } from '@ionic-native/clipboard/ngx'; +import { Clipboard } from '@awesome-cordova-plugins/clipboard/ngx'; /** * Emulates the Cordova Clipboard plugin in browser. @@ -46,6 +46,7 @@ export class ClipboardMock extends Clipboard { this.copyTextarea.select(); try { + // eslint-disable-next-line deprecation/deprecation if (document.execCommand('copy')) { resolve(); } else { @@ -71,6 +72,7 @@ export class ClipboardMock extends Clipboard { this.copyTextarea.select(); try { + // eslint-disable-next-line deprecation/deprecation if (document.execCommand('paste')) { resolve(this.copyTextarea.innerHTML); } else { diff --git a/src/core/features/emulator/services/file-opener.ts b/src/core/features/emulator/services/file-opener.ts index 89835c2ab..38fc0ff22 100644 --- a/src/core/features/emulator/services/file-opener.ts +++ b/src/core/features/emulator/services/file-opener.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { FileOpener } from '@ionic-native/file-opener/ngx'; +import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { CoreFile } from '@services/file'; diff --git a/src/core/features/emulator/services/file-transfer.ts b/src/core/features/emulator/services/file-transfer.ts index 174ad8a42..7b758bb4d 100644 --- a/src/core/features/emulator/services/file-transfer.ts +++ b/src/core/features/emulator/services/file-transfer.ts @@ -14,7 +14,7 @@ import { CoreTextUtils } from '@services/utils/text'; import { Injectable } from '@angular/core'; -import { FileTransfer, FileTransferObject, FileUploadResult, FileTransferError } from '@ionic-native/file-transfer/ngx'; +import { FileTransfer, FileTransferObject, FileUploadResult, FileTransferError } from '@awesome-cordova-plugins/file-transfer/ngx'; import { CoreFile } from '@services/file'; diff --git a/src/core/features/emulator/services/file.ts b/src/core/features/emulator/services/file.ts index b98d70e9b..a9a61a124 100644 --- a/src/core/features/emulator/services/file.ts +++ b/src/core/features/emulator/services/file.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { File, Entry, DirectoryEntry, FileEntry, IWriteOptions, RemoveResult } from '@ionic-native/file/ngx'; +import { File, Entry, DirectoryEntry, FileEntry, IWriteOptions, RemoveResult } from '@awesome-cordova-plugins/file/ngx'; import { CorePath } from '@singletons/path'; /** diff --git a/src/core/features/emulator/services/geolocation.ts b/src/core/features/emulator/services/geolocation.ts index 2f7ef778b..729993ac8 100644 --- a/src/core/features/emulator/services/geolocation.ts +++ b/src/core/features/emulator/services/geolocation.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { Geolocation, GeolocationOptions, Geoposition } from '@ionic-native/geolocation/ngx'; +import { Geolocation, GeolocationOptions, Geoposition } from '@awesome-cordova-plugins/geolocation/ngx'; import { Observable, Subscriber, TeardownLogic } from 'rxjs'; /** diff --git a/src/core/features/emulator/services/inappbrowser.ts b/src/core/features/emulator/services/inappbrowser.ts index 4a5dd709c..f91f78207 100644 --- a/src/core/features/emulator/services/inappbrowser.ts +++ b/src/core/features/emulator/services/inappbrowser.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { InAppBrowser, InAppBrowserObject } from '@ionic-native/in-app-browser/ngx'; +import { InAppBrowser, InAppBrowserObject } from '@awesome-cordova-plugins/in-app-browser/ngx'; /** * Emulates the Cordova InAppBrowser plugin in desktop apps. diff --git a/src/core/features/emulator/services/local-notifications.ts b/src/core/features/emulator/services/local-notifications.ts index 006b78230..02ef0cdd9 100644 --- a/src/core/features/emulator/services/local-notifications.ts +++ b/src/core/features/emulator/services/local-notifications.ts @@ -13,7 +13,7 @@ // limitations under the License. import { CoreError } from '@classes/errors/error'; -import { ILocalNotification, ILocalNotificationAction, LocalNotifications } from '@ionic-native/local-notifications/ngx'; +import { ILocalNotification, ILocalNotificationAction, LocalNotifications } from '@awesome-cordova-plugins/local-notifications/ngx'; import { Observable, Subject } from 'rxjs'; /** diff --git a/src/core/features/emulator/services/media-capture.ts b/src/core/features/emulator/services/media-capture.ts index 8c8985fbd..a84aced0c 100644 --- a/src/core/features/emulator/services/media-capture.ts +++ b/src/core/features/emulator/services/media-capture.ts @@ -18,7 +18,7 @@ import { CaptureImageOptions, CaptureVideoOptions, MediaFile, -} from '@ionic-native/media-capture/ngx'; +} from '@awesome-cordova-plugins/media-capture/ngx'; import { CoreEmulatorCaptureHelper } from './capture-helper'; diff --git a/src/core/features/emulator/services/zip.ts b/src/core/features/emulator/services/zip.ts index a511661f0..eb2c869c6 100644 --- a/src/core/features/emulator/services/zip.ts +++ b/src/core/features/emulator/services/zip.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { Zip } from '@ionic-native/zip/ngx'; +import { Zip } from '@awesome-cordova-plugins/zip/ngx'; import * as JSZip from 'jszip'; import { CorePath } from '@singletons/path'; import { File } from '@singletons'; diff --git a/src/core/features/fileuploader/components/audio-recorder/audio-recorder.html b/src/core/features/fileuploader/components/audio-recorder/audio-recorder.html index 3e95963ea..bda39a252 100644 --- a/src/core/features/fileuploader/components/audio-recorder/audio-recorder.html +++ b/src/core/features/fileuploader/components/audio-recorder/audio-recorder.html @@ -2,7 +2,7 @@

{{ 'core.fileuploader.audiotitle' | translate }}

- + @@ -14,38 +14,37 @@ - +
- + [paused]="status !== 'recording-ongoing'" />
- - +
- + - +
- +
@@ -60,7 +59,7 @@
- +
diff --git a/src/core/features/fileuploader/services/fileuploader-delegate.ts b/src/core/features/fileuploader/services/fileuploader-delegate.ts index 1b2f2eb34..04683f7d6 100644 --- a/src/core/features/fileuploader/services/fileuploader-delegate.ts +++ b/src/core/features/fileuploader/services/fileuploader-delegate.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { FileEntry } from '@ionic-native/file/ngx'; +import { FileEntry } from '@awesome-cordova-plugins/file/ngx'; import { CoreDelegate, CoreDelegateHandler } from '@classes/delegate'; import { CoreEvents } from '@singletons/events'; diff --git a/src/core/features/fileuploader/services/fileuploader-helper.ts b/src/core/features/fileuploader/services/fileuploader-helper.ts index 6db1e65d3..d1d2cf9c1 100644 --- a/src/core/features/fileuploader/services/fileuploader-helper.ts +++ b/src/core/features/fileuploader/services/fileuploader-helper.ts @@ -14,10 +14,10 @@ import { Injectable } from '@angular/core'; import { ActionSheetButton } from '@ionic/core'; -import { CameraOptions } from '@ionic-native/camera/ngx'; -import { ChooserResult } from '@ionic-native/chooser/ngx'; -import { FileEntry, IFile } from '@ionic-native/file/ngx'; -import { MediaFile } from '@ionic-native/media-capture/ngx'; +import { CameraOptions } from '@awesome-cordova-plugins/camera/ngx'; +import { ChooserResult } from '@awesome-cordova-plugins/chooser/ngx'; +import { FileEntry, IFile } from '@awesome-cordova-plugins/file/ngx'; +import { MediaFile } from '@awesome-cordova-plugins/media-capture/ngx'; import { CoreNetwork } from '@services/network'; import { CoreFile, CoreFileProvider, CoreFileProgressEvent } from '@services/file'; diff --git a/src/core/features/fileuploader/services/fileuploader.ts b/src/core/features/fileuploader/services/fileuploader.ts index b9565d276..00c0d3af6 100644 --- a/src/core/features/fileuploader/services/fileuploader.ts +++ b/src/core/features/fileuploader/services/fileuploader.ts @@ -13,9 +13,9 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { CameraOptions } from '@ionic-native/camera/ngx'; -import { FileEntry } from '@ionic-native/file/ngx'; -import { MediaFile, CaptureError, CaptureVideoOptions } from '@ionic-native/media-capture/ngx'; +import { CameraOptions } from '@awesome-cordova-plugins/camera/ngx'; +import { FileEntry } from '@awesome-cordova-plugins/file/ngx'; +import { MediaFile, CaptureError, CaptureVideoOptions } from '@awesome-cordova-plugins/media-capture/ngx'; import { Subject } from 'rxjs'; import { CoreFile, CoreFileProvider } from '@services/file'; diff --git a/src/core/features/grades/pages/course/course.html b/src/core/features/grades/pages/course/course.html index c45814538..1079d5ff0 100644 --- a/src/core/features/grades/pages/course/course.html +++ b/src/core/features/grades/pages/course/course.html @@ -1,7 +1,7 @@ - +

{{ title }}

@@ -10,11 +10,10 @@
- + - - +
@@ -41,15 +40,12 @@ @@ -61,13 +57,11 @@ @@ -131,8 +125,7 @@

{{ 'core.grades.feedback' | translate}}

- + [contextInstanceId]="courseId" />

@@ -149,7 +142,7 @@
- - + class="expandable-status-icon" [class.expandable-status-icon-expanded]="row.expanded" /> + - + [modname]="row.itemmodule" /> - + [contextInstanceId]="courseId" /> - - +
- +
diff --git a/src/core/features/grades/pages/courses/courses.html b/src/core/features/grades/pages/courses/courses.html index 1c6149ebd..9a0f31c22 100644 --- a/src/core/features/grades/pages/courses/courses.html +++ b/src/core/features/grades/pages/courses/courses.html @@ -1,7 +1,7 @@ - +

{{ 'core.grades.grades' | translate }}

@@ -11,19 +11,17 @@ - + - - + - - + diff --git a/src/core/features/h5p/classes/helper.ts b/src/core/features/h5p/classes/helper.ts index f79ed7304..ba3c25a12 100644 --- a/src/core/features/h5p/classes/helper.ts +++ b/src/core/features/h5p/classes/helper.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { FileEntry } from '@ionic-native/file/ngx'; +import { FileEntry } from '@awesome-cordova-plugins/file/ngx'; import { CoreFile, CoreFileProvider } from '@services/file'; import { CoreSites } from '@services/sites'; diff --git a/src/core/features/h5p/classes/validator.ts b/src/core/features/h5p/classes/validator.ts index cabe33d35..2a7e7ea34 100644 --- a/src/core/features/h5p/classes/validator.ts +++ b/src/core/features/h5p/classes/validator.ts @@ -13,7 +13,7 @@ // limitations under the License. import { CoreError } from '@classes/errors/error'; -import { FileEntry, DirectoryEntry } from '@ionic-native/file/ngx'; +import { FileEntry, DirectoryEntry } from '@awesome-cordova-plugins/file/ngx'; import { CoreFile, CoreFileFormat } from '@services/file'; import { Translate } from '@singletons'; import { CorePath } from '@singletons/path'; diff --git a/src/core/features/h5p/components/h5p-iframe/core-h5p-iframe.html b/src/core/features/h5p/components/h5p-iframe/core-h5p-iframe.html index b09ea0ef2..7b7876d87 100644 --- a/src/core/features/h5p/components/h5p-iframe/core-h5p-iframe.html +++ b/src/core/features/h5p/components/h5p-iframe/core-h5p-iframe.html @@ -1,6 +1,5 @@ - + [showFullscreenOnToolbar]="enableInAppFullscreen" [autoFullscreenOnRotate]="enableInAppFullscreen" /> diff --git a/src/core/features/h5p/components/h5p-player/core-h5p-player.html b/src/core/features/h5p/components/h5p-player/core-h5p-player.html index 6b32af633..c6f1eb653 100644 --- a/src/core/features/h5p/components/h5p-player/core-h5p-player.html +++ b/src/core/features/h5p/components/h5p-player/core-h5p-player.html @@ -1,15 +1,13 @@
- +
- + (action)="download()" />
- - + diff --git a/src/core/features/h5p/services/handlers/pluginfile.ts b/src/core/features/h5p/services/handlers/pluginfile.ts index aff8d9095..a370b7cbb 100644 --- a/src/core/features/h5p/services/handlers/pluginfile.ts +++ b/src/core/features/h5p/services/handlers/pluginfile.ts @@ -13,7 +13,7 @@ // limitations under the License. import { Injectable } from '@angular/core'; -import { FileEntry } from '@ionic-native/file/ngx'; +import { FileEntry } from '@awesome-cordova-plugins/file/ngx'; import { CoreFilepoolOnProgressCallback } from '@services/filepool'; import { CorePluginFileDownloadableResult, CorePluginFileHandler } from '@services/plugin-file-delegate'; diff --git a/src/core/features/login/components/exceeded-attempts/exceeded-attempts.html b/src/core/features/login/components/exceeded-attempts/exceeded-attempts.html index a7aaa4000..e5aca5070 100644 --- a/src/core/features/login/components/exceeded-attempts/exceeded-attempts.html +++ b/src/core/features/login/components/exceeded-attempts/exceeded-attempts.html @@ -1,6 +1,6 @@ - +
- +
@@ -16,8 +16,7 @@ + [class.expandable-status-icon-expanded]="isOpen(question)" />

{{ question.text }}

@@ -28,8 +27,7 @@

{{ question.answer.text }}

- - +
diff --git a/src/core/features/login/components/site-onboarding/site-onboarding.html b/src/core/features/login/components/site-onboarding/site-onboarding.html index 638c95474..140519174 100644 --- a/src/core/features/login/components/site-onboarding/site-onboarding.html +++ b/src/core/features/login/components/site-onboarding/site-onboarding.html @@ -2,10 +2,10 @@ - + - + {{'core.skip' | translate}} @@ -47,16 +47,13 @@

- +

{{site.siteUrl}}

@@ -45,16 +45,14 @@ {{ 'core.login.username' | translate }} - + required="true" /> {{ 'core.login.password' | translate }} - + required="true" /> - + @@ -44,9 +44,9 @@ - + autocomplete="current-password" enterkeyhint="go" required="true" /> + [redirectData]="redirectData" /> diff --git a/src/core/features/login/pages/site-policy/site-policy.html b/src/core/features/login/pages/site-policy/site-policy.html index 25f2f27de..76ca02525 100644 --- a/src/core/features/login/pages/site-policy/site-policy.html +++ b/src/core/features/login/pages/site-policy/site-policy.html @@ -1,7 +1,7 @@ - + @@ -25,7 +25,7 @@ - + {{ 'core.login.policyacceptmandatory' | translate }} diff --git a/src/core/features/login/pages/site/site.html b/src/core/features/login/pages/site/site.html index 620918b92..c9e098b7a 100644 --- a/src/core/features/login/pages/site/site.html +++ b/src/core/features/login/pages/site/site.html @@ -1,7 +1,7 @@ - + @@ -10,7 +10,7 @@ - + @@ -28,8 +28,7 @@

{{ 'core.login.siteaddress' | translate }}

- + formControlName="siteUrl" [core-auto-focus]="showKeyboard && !showScanQR" /> @@ -38,8 +37,7 @@

{{ 'core.login.siteaddress' | translate }}

- + [core-auto-focus]="showKeyboard && !showScanQR" (ionChange)="searchSite($event, siteForm.value.siteUrl)" />
@@ -92,10 +90,9 @@ - + (ionCancel)="filterChanged()" [placeholder]="'core.login.findyoursite' | translate" /> - + @@ -105,7 +102,7 @@ diff --git a/src/core/features/login/pages/sites/sites.html b/src/core/features/login/pages/sites/sites.html index a6cbe0f01..38c21d054 100644 --- a/src/core/features/login/pages/sites/sites.html +++ b/src/core/features/login/pages/sites/sites.html @@ -1,7 +1,7 @@ - + @@ -11,10 +11,10 @@ - + - + @@ -30,14 +30,14 @@ - + - + diff --git a/src/core/features/mainmenu/components/user-menu-button/user-menu-button.html b/src/core/features/mainmenu/components/user-menu-button/user-menu-button.html index b23e54da8..766db041e 100644 --- a/src/core/features/mainmenu/components/user-menu-button/user-menu-button.html +++ b/src/core/features/mainmenu/components/user-menu-button/user-menu-button.html @@ -1,4 +1,3 @@ - + [attr.aria-label]="'core.user.useraccount' | translate" /> diff --git a/src/core/features/mainmenu/components/user-menu/user-menu.html b/src/core/features/mainmenu/components/user-menu/user-menu.html index 896d075c2..04bacc312 100644 --- a/src/core/features/mainmenu/components/user-menu/user-menu.html +++ b/src/core/features/mainmenu/components/user-menu/user-menu.html @@ -7,7 +7,7 @@
- +
@@ -23,8 +23,7 @@

- - +

{{ siteUrl }} @@ -36,15 +35,14 @@

- - +

- +

{{ siteInfo.fullname }}

@@ -52,14 +50,14 @@ - + - + - +