diff --git a/config.xml b/config.xml index 991279066..2f37ef18b 100644 --- a/config.xml +++ b/config.xml @@ -94,6 +94,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/package-lock.json b/package-lock.json index 2ee05031b..129f078ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4360,6 +4360,63 @@ "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true }, + "@fortawesome/angular-fontawesome": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.9.0.tgz", + "integrity": "sha512-pJNJqxRTJChkUtywbqRuJRpmK/WNwqFqeN/GMmJmy3gHeCnWQ4SG0BwPJqaWqhi4gqII5dADijGts6wqeusxeQ==", + "requires": { + "tslib": "^2.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.35", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz", + "integrity": "sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw==" + }, + "@fortawesome/fontawesome-free": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz", + "integrity": "sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.35", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.35.tgz", + "integrity": "sha512-uLEXifXIL7hnh2sNZQrIJWNol7cTVIzwI+4qcBIq9QWaZqUblm0IDrtSqbNg+3SQf8SMGHkiSigD++rHmCHjBg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.3.tgz", + "integrity": "sha512-1hirPcbjj72ZJtFvdnXGPbAbpn3Ox6mH3g5STbANFp3vGSiE5u5ingAKV06mK6ZVqNYxUPlh4DlTnaIvLtF2kw==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.3.tgz", + "integrity": "sha512-q4/p8Xehy9qiVTdDWHL4Z+o5PCLRChePGZRTXkl+/Z7erDVL8VcZUuqzJjs6gUz6czss4VIPBRdCz6wP37/zMQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz", + "integrity": "sha512-XPeeu1IlGYqz4VWGRAT5ukNMd4VHUEEJ7ysZ7pSSgaEtNvSo+FLurybGJVmiqkQdK50OkSja2bfZXOeyMGRD8Q==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, "@fullcalendar/angular": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/@fullcalendar/angular/-/angular-5.5.0.tgz", @@ -12018,6 +12075,412 @@ } } }, + "cordova-plugin-mfp-jsonstore": { + "version": "8.0.2021062408", + "resolved": "https://registry.npmjs.org/cordova-plugin-mfp-jsonstore/-/cordova-plugin-mfp-jsonstore-8.0.2021062408.tgz", + "integrity": "sha512-KAGSSEC1E5rVrS++ShsLQDQXlJesXwemJgN8ywzpz1jmM9mWEhMQi5G5IcWvPeDwyamG8OCj1DiwREhgUriULQ==", + "dev": true, + "requires": { + "ibm-strings": "~0.1.0", + "mfp-config-xml": "0.0.5", + "npmlog": "0.0.6", + "shelljs": "0.3.0", + "xcode": "0.8.7" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "ansi": { + "version": "0.3.1", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + } + }, + "balanced-match": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "base64-js": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "bplist-creator": { + "version": "0.0.4", + "bundled": true, + "dev": true, + "requires": { + "stream-buffers": "~0.2.3" + } + }, + "bplist-parser": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "colors": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "elementtree": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "sax": "0.3.5" + } + }, + "extsprintf": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "findup-sync": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "bundled": true, + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "gauge": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "requires": { + "ansi": "^0.3.0", + "has-unicode": "^2.0.0", + "lodash.pad": "^4.1.0", + "lodash.padend": "^4.1.0", + "lodash.padstart": "^4.1.0" + } + }, + "glob": { + "version": "7.0.3", + "bundled": true, + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "ibm-strings": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "colors": "1.1.2", + "nopt": "3.0.6" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "lodash-node": { + "version": "2.4.1", + "bundled": true, + "dev": true + }, + "lodash.pad": { + "version": "4.5.1", + "bundled": true, + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "bundled": true, + "dev": true + }, + "lodash.padstart": { + "version": "4.6.1", + "bundled": true, + "dev": true + }, + "mfp-config-xml": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "requires": { + "elementtree": "0.1.6", + "findup-sync": "0.3.0", + "glob": "7.0.3", + "ibm-strings": "0.1.4", + "npmlog": "2.0.2", + "q": "1.4.1", + "underscore": "1.8.3", + "verror": "1.6.1" + }, + "dependencies": { + "npmlog": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "ansi": "~0.3.1", + "are-we-there-yet": "~1.0.6", + "gauge": "~1.2.5" + } + } + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "node-uuid": { + "version": "1.4.7", + "bundled": true, + "dev": true + }, + "nopt": { + "version": "3.0.6", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "npmlog": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "requires": { + "ansi": "~0.2.1" + }, + "dependencies": { + "ansi": { + "version": "0.2.1", + "bundled": true, + "dev": true + } + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "pegjs": { + "version": "0.6.2", + "bundled": true, + "dev": true + }, + "plist": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "base64-js": "0.0.6", + "util-deprecate": "1.0.0", + "xmlbuilder": "2.2.1", + "xmldom": "0.1.x" + }, + "dependencies": { + "util-deprecate": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "q": { + "version": "1.4.1", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "sax": { + "version": "0.3.5", + "bundled": true, + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "bundled": true, + "dev": true + }, + "simple-plist": { + "version": "0.0.4", + "bundled": true, + "dev": true, + "requires": { + "bplist-creator": "0.0.4", + "bplist-parser": "0.0.6", + "plist": "1.1.0" + } + }, + "stream-buffers": { + "version": "0.2.6", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "underscore": { + "version": "1.8.3", + "bundled": true, + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "verror": { + "version": "1.6.1", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "extsprintf": "1.2.0" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "xcode": { + "version": "0.8.7", + "bundled": true, + "dev": true, + "requires": { + "node-uuid": "1.4.7", + "pegjs": "0.6.2", + "simple-plist": "0.0.4" + } + }, + "xmlbuilder": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "lodash-node": "~2.4.1" + } + }, + "xmldom": { + "version": "0.1.31", + "bundled": true, + "dev": true + } + } + }, "cordova-plugin-mfp-push": { "version": "8.0.2021062405", "resolved": "https://registry.npmjs.org/cordova-plugin-mfp-push/-/cordova-plugin-mfp-push-8.0.2021062405.tgz", @@ -12831,6 +13294,15 @@ "fs-exists-sync": "^0.1.0" } }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -13307,6 +13779,15 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, + "duration": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", + "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", + "requires": { + "d": "1", + "es5-ext": "~0.10.46" + } + }, "easy-extender": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", @@ -13600,6 +14081,26 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -13615,6 +14116,15 @@ "es6-promise": "^4.0.3" } }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -14032,6 +14542,21 @@ } } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -21067,6 +21592,11 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, "ngx-socket-io": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ngx-socket-io/-/ngx-socket-io-3.2.0.tgz", @@ -28225,6 +28755,11 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", diff --git a/package.json b/package.json index 7ed2ff043..3ec6745e2 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,12 @@ "@angular/platform-browser": "~12.1.2", "@angular/platform-browser-dynamic": "~12.1.2", "@angular/router": "~12.1.2", + "@fortawesome/angular-fontawesome": "^0.9.0", + "@fortawesome/fontawesome-free": "^5.15.3", + "@fortawesome/fontawesome-svg-core": "^1.2.35", + "@fortawesome/free-brands-svg-icons": "^5.15.3", + "@fortawesome/free-regular-svg-icons": "^5.15.3", + "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fullcalendar/angular": "^5.3.0", "@fullcalendar/daygrid": "^5.3.0", "@fullcalendar/interaction": "^5.3.0", @@ -70,6 +76,7 @@ "date-fns": "^2.17.0", "depd": "^2.0.0", "dotenv": "^10.0.0", + "duration": "^0.2.2", "faker": "^5.5.3", "global": "^4.4.0", "http-server": "^0.12.3", @@ -124,6 +131,7 @@ "cordova-plugin-ionic-keyboard": "^2.2.0", "cordova-plugin-ionic-webview": "^4.2.1", "cordova-plugin-mfp": "^8.0.2021031007", + "cordova-plugin-mfp-jsonstore": "^8.0.2021062408", "cordova-plugin-mfp-push": "^8.0.2021062405", "cordova-plugin-splashscreen": "^5.0.2", "cordova-plugin-statusbar": "^2.4.2", @@ -163,7 +171,8 @@ "cordova-plugin-androidx": {}, "cordova-plugin-androidx-adapter": {}, "cordova-plugin-fingerprint-aio": {}, - "cordova-plugin-mfp-push": {} + "cordova-plugin-mfp-push": {}, + "cordova-plugin-mfp-jsonstore": {} }, "platforms": [ "browser", diff --git a/resources/android/icon/drawable-hdpi-icon.png b/resources/android/icon/drawable-hdpi-icon.png index c1b57bca3..d36c1a33e 100644 Binary files a/resources/android/icon/drawable-hdpi-icon.png and b/resources/android/icon/drawable-hdpi-icon.png differ diff --git a/resources/android/icon/drawable-ldpi-icon.png b/resources/android/icon/drawable-ldpi-icon.png index e0f874f6c..23cb8318e 100644 Binary files a/resources/android/icon/drawable-ldpi-icon.png and b/resources/android/icon/drawable-ldpi-icon.png differ diff --git a/resources/android/icon/drawable-mdpi-icon.png b/resources/android/icon/drawable-mdpi-icon.png index d4289493f..2797056eb 100644 Binary files a/resources/android/icon/drawable-mdpi-icon.png and b/resources/android/icon/drawable-mdpi-icon.png differ diff --git a/resources/android/icon/drawable-xhdpi-icon.png b/resources/android/icon/drawable-xhdpi-icon.png index bf3725ba7..a681d641b 100644 Binary files a/resources/android/icon/drawable-xhdpi-icon.png and b/resources/android/icon/drawable-xhdpi-icon.png differ diff --git a/resources/android/icon/drawable-xxhdpi-icon.png b/resources/android/icon/drawable-xxhdpi-icon.png index cdc1340ae..75f41540d 100644 Binary files a/resources/android/icon/drawable-xxhdpi-icon.png and b/resources/android/icon/drawable-xxhdpi-icon.png differ diff --git a/resources/android/icon/drawable-xxxhdpi-icon.png b/resources/android/icon/drawable-xxxhdpi-icon.png index b9183ea93..df3b5433c 100644 Binary files a/resources/android/icon/drawable-xxxhdpi-icon.png and b/resources/android/icon/drawable-xxxhdpi-icon.png differ diff --git a/resources/icon.png b/resources/icon.png index bee77667f..73421fb35 100644 Binary files a/resources/icon.png and b/resources/icon.png differ diff --git a/resources/ios/icon/icon-1024.png b/resources/ios/icon/icon-1024.png index be633f451..c619d8e75 100644 Binary files a/resources/ios/icon/icon-1024.png and b/resources/ios/icon/icon-1024.png differ diff --git a/resources/ios/icon/icon-108@2x.png b/resources/ios/icon/icon-108@2x.png index 13759969b..04f0f563a 100644 Binary files a/resources/ios/icon/icon-108@2x.png and b/resources/ios/icon/icon-108@2x.png differ diff --git a/resources/ios/icon/icon-20.png b/resources/ios/icon/icon-20.png index 08993e093..453048a95 100644 Binary files a/resources/ios/icon/icon-20.png and b/resources/ios/icon/icon-20.png differ diff --git a/resources/ios/icon/icon-20@2x.png b/resources/ios/icon/icon-20@2x.png index acbecd2cb..eea3ae852 100644 Binary files a/resources/ios/icon/icon-20@2x.png and b/resources/ios/icon/icon-20@2x.png differ diff --git a/resources/ios/icon/icon-20@3x.png b/resources/ios/icon/icon-20@3x.png index 00de715c2..84435429a 100644 Binary files a/resources/ios/icon/icon-20@3x.png and b/resources/ios/icon/icon-20@3x.png differ diff --git a/resources/ios/icon/icon-24@2x.png b/resources/ios/icon/icon-24@2x.png index 4b455d317..3afda17cb 100644 Binary files a/resources/ios/icon/icon-24@2x.png and b/resources/ios/icon/icon-24@2x.png differ diff --git a/resources/ios/icon/icon-27.5@2x.png b/resources/ios/icon/icon-27.5@2x.png index c623f279e..2a008b620 100644 Binary files a/resources/ios/icon/icon-27.5@2x.png and b/resources/ios/icon/icon-27.5@2x.png differ diff --git a/resources/ios/icon/icon-29.png b/resources/ios/icon/icon-29.png index 8a55da53c..37af28b99 100644 Binary files a/resources/ios/icon/icon-29.png and b/resources/ios/icon/icon-29.png differ diff --git a/resources/ios/icon/icon-29@2x.png b/resources/ios/icon/icon-29@2x.png index 185277b1a..d02a64dc9 100644 Binary files a/resources/ios/icon/icon-29@2x.png and b/resources/ios/icon/icon-29@2x.png differ diff --git a/resources/ios/icon/icon-29@3x.png b/resources/ios/icon/icon-29@3x.png index 3393f844d..5cfa1c607 100644 Binary files a/resources/ios/icon/icon-29@3x.png and b/resources/ios/icon/icon-29@3x.png differ diff --git a/resources/ios/icon/icon-40.png b/resources/ios/icon/icon-40.png index acbecd2cb..eea3ae852 100644 Binary files a/resources/ios/icon/icon-40.png and b/resources/ios/icon/icon-40.png differ diff --git a/resources/ios/icon/icon-40@2x.png b/resources/ios/icon/icon-40@2x.png index 61d82a739..0ba5b9fbb 100644 Binary files a/resources/ios/icon/icon-40@2x.png and b/resources/ios/icon/icon-40@2x.png differ diff --git a/resources/ios/icon/icon-40@3x.png b/resources/ios/icon/icon-40@3x.png index cc349ded1..34b618c11 100644 Binary files a/resources/ios/icon/icon-40@3x.png and b/resources/ios/icon/icon-40@3x.png differ diff --git a/resources/ios/icon/icon-44@2x.png b/resources/ios/icon/icon-44@2x.png index 00a2ff3d6..3b8d7bc59 100644 Binary files a/resources/ios/icon/icon-44@2x.png and b/resources/ios/icon/icon-44@2x.png differ diff --git a/resources/ios/icon/icon-50.png b/resources/ios/icon/icon-50.png index 9e9a5c1f5..e26f7f90e 100644 Binary files a/resources/ios/icon/icon-50.png and b/resources/ios/icon/icon-50.png differ diff --git a/resources/ios/icon/icon-50@2x.png b/resources/ios/icon/icon-50@2x.png index fe547b126..ae68b8add 100644 Binary files a/resources/ios/icon/icon-50@2x.png and b/resources/ios/icon/icon-50@2x.png differ diff --git a/resources/ios/icon/icon-60.png b/resources/ios/icon/icon-60.png index 00de715c2..84435429a 100644 Binary files a/resources/ios/icon/icon-60.png and b/resources/ios/icon/icon-60.png differ diff --git a/resources/ios/icon/icon-60@2x.png b/resources/ios/icon/icon-60@2x.png index cc349ded1..34b618c11 100644 Binary files a/resources/ios/icon/icon-60@2x.png and b/resources/ios/icon/icon-60@2x.png differ diff --git a/resources/ios/icon/icon-60@3x.png b/resources/ios/icon/icon-60@3x.png index 389882810..452e79a7a 100644 Binary files a/resources/ios/icon/icon-60@3x.png and b/resources/ios/icon/icon-60@3x.png differ diff --git a/resources/ios/icon/icon-72.png b/resources/ios/icon/icon-72.png index 3f84fc1b2..ae9301214 100644 Binary files a/resources/ios/icon/icon-72.png and b/resources/ios/icon/icon-72.png differ diff --git a/resources/ios/icon/icon-72@2x.png b/resources/ios/icon/icon-72@2x.png index 391b4af13..afdd5a300 100644 Binary files a/resources/ios/icon/icon-72@2x.png and b/resources/ios/icon/icon-72@2x.png differ diff --git a/resources/ios/icon/icon-76.png b/resources/ios/icon/icon-76.png index 971034a67..0c19d592e 100644 Binary files a/resources/ios/icon/icon-76.png and b/resources/ios/icon/icon-76.png differ diff --git a/resources/ios/icon/icon-76@2x.png b/resources/ios/icon/icon-76@2x.png index b538930a7..9184cb092 100644 Binary files a/resources/ios/icon/icon-76@2x.png and b/resources/ios/icon/icon-76@2x.png differ diff --git a/resources/ios/icon/icon-83.5@2x.png b/resources/ios/icon/icon-83.5@2x.png index 5f8dbb2f6..8fbbb403c 100644 Binary files a/resources/ios/icon/icon-83.5@2x.png and b/resources/ios/icon/icon-83.5@2x.png differ diff --git a/resources/ios/icon/icon-86@2x.png b/resources/ios/icon/icon-86@2x.png index 9798fc2d9..d0b44a134 100644 Binary files a/resources/ios/icon/icon-86@2x.png and b/resources/ios/icon/icon-86@2x.png differ diff --git a/resources/ios/icon/icon-98@2x.png b/resources/ios/icon/icon-98@2x.png index 5ebd9db69..9ea049cb3 100644 Binary files a/resources/ios/icon/icon-98@2x.png and b/resources/ios/icon/icon-98@2x.png differ diff --git a/resources/ios/icon/icon.png b/resources/ios/icon/icon.png index a90d46c82..b31598cfa 100644 Binary files a/resources/ios/icon/icon.png and b/resources/ios/icon/icon.png differ diff --git a/resources/ios/icon/icon@2x.png b/resources/ios/icon/icon@2x.png index 946c6cefe..065666648 100644 Binary files a/resources/ios/icon/icon@2x.png and b/resources/ios/icon/icon@2x.png differ diff --git a/resources/ios/splash/Default-1792h~iphone.png b/resources/ios/splash/Default-1792h~iphone.png index 359246b4f..ca4f8a3ef 100644 Binary files a/resources/ios/splash/Default-1792h~iphone.png and b/resources/ios/splash/Default-1792h~iphone.png differ diff --git a/resources/ios/splash/Default-2436h.png b/resources/ios/splash/Default-2436h.png index bdbeb9dad..f2bb1268a 100644 Binary files a/resources/ios/splash/Default-2436h.png and b/resources/ios/splash/Default-2436h.png differ diff --git a/resources/ios/splash/Default-2688h~iphone.png b/resources/ios/splash/Default-2688h~iphone.png index 161134be3..608c12203 100644 Binary files a/resources/ios/splash/Default-2688h~iphone.png and b/resources/ios/splash/Default-2688h~iphone.png differ diff --git a/resources/ios/splash/Default-568h@2x~iphone.png b/resources/ios/splash/Default-568h@2x~iphone.png index 5e9edf63f..320164ea9 100644 Binary files a/resources/ios/splash/Default-568h@2x~iphone.png and b/resources/ios/splash/Default-568h@2x~iphone.png differ diff --git a/resources/ios/splash/Default-667h.png b/resources/ios/splash/Default-667h.png index 2843fb37a..a366a7a4e 100644 Binary files a/resources/ios/splash/Default-667h.png and b/resources/ios/splash/Default-667h.png differ diff --git a/resources/ios/splash/Default-736h.png b/resources/ios/splash/Default-736h.png index 21f2d4239..b0c43db31 100644 Binary files a/resources/ios/splash/Default-736h.png and b/resources/ios/splash/Default-736h.png differ diff --git a/resources/ios/splash/Default-Landscape-1792h~iphone.png b/resources/ios/splash/Default-Landscape-1792h~iphone.png index 58394bf06..04f4dde48 100644 Binary files a/resources/ios/splash/Default-Landscape-1792h~iphone.png and b/resources/ios/splash/Default-Landscape-1792h~iphone.png differ diff --git a/resources/ios/splash/Default-Landscape-2436h.png b/resources/ios/splash/Default-Landscape-2436h.png index 763ae78df..7afe8645e 100644 Binary files a/resources/ios/splash/Default-Landscape-2436h.png and b/resources/ios/splash/Default-Landscape-2436h.png differ diff --git a/resources/ios/splash/Default-Landscape-2688h~iphone.png b/resources/ios/splash/Default-Landscape-2688h~iphone.png index 36828a6d5..9f1bad33d 100644 Binary files a/resources/ios/splash/Default-Landscape-2688h~iphone.png and b/resources/ios/splash/Default-Landscape-2688h~iphone.png differ diff --git a/resources/ios/splash/Default-Landscape-736h.png b/resources/ios/splash/Default-Landscape-736h.png index 9c069f7cc..95fa6931c 100644 Binary files a/resources/ios/splash/Default-Landscape-736h.png and b/resources/ios/splash/Default-Landscape-736h.png differ diff --git a/resources/ios/splash/Default-Landscape@2x~ipad.png b/resources/ios/splash/Default-Landscape@2x~ipad.png index 35407a901..6bcebee94 100644 Binary files a/resources/ios/splash/Default-Landscape@2x~ipad.png and b/resources/ios/splash/Default-Landscape@2x~ipad.png differ diff --git a/resources/ios/splash/Default-Landscape@~ipadpro.png b/resources/ios/splash/Default-Landscape@~ipadpro.png index 75de9e0ed..28edd89da 100644 Binary files a/resources/ios/splash/Default-Landscape@~ipadpro.png and b/resources/ios/splash/Default-Landscape@~ipadpro.png differ diff --git a/resources/ios/splash/Default-Landscape~ipad.png b/resources/ios/splash/Default-Landscape~ipad.png index b74bbf69b..d479faee8 100644 Binary files a/resources/ios/splash/Default-Landscape~ipad.png and b/resources/ios/splash/Default-Landscape~ipad.png differ diff --git a/resources/ios/splash/Default-Portrait@2x~ipad.png b/resources/ios/splash/Default-Portrait@2x~ipad.png index d0c33f786..0d99e371e 100644 Binary files a/resources/ios/splash/Default-Portrait@2x~ipad.png and b/resources/ios/splash/Default-Portrait@2x~ipad.png differ diff --git a/resources/ios/splash/Default-Portrait@~ipadpro.png b/resources/ios/splash/Default-Portrait@~ipadpro.png index 363dd1c82..d131a50cf 100644 Binary files a/resources/ios/splash/Default-Portrait@~ipadpro.png and b/resources/ios/splash/Default-Portrait@~ipadpro.png differ diff --git a/resources/ios/splash/Default-Portrait~ipad.png b/resources/ios/splash/Default-Portrait~ipad.png index aad1debb1..d761be588 100644 Binary files a/resources/ios/splash/Default-Portrait~ipad.png and b/resources/ios/splash/Default-Portrait~ipad.png differ diff --git a/resources/ios/splash/Default@2x~iphone.png b/resources/ios/splash/Default@2x~iphone.png index f0f16ef9b..9641adcd8 100644 Binary files a/resources/ios/splash/Default@2x~iphone.png and b/resources/ios/splash/Default@2x~iphone.png differ diff --git a/resources/ios/splash/Default@2x~universal~anyany.png b/resources/ios/splash/Default@2x~universal~anyany.png index c8fcc8f1d..b45dc269f 100644 Binary files a/resources/ios/splash/Default@2x~universal~anyany.png and b/resources/ios/splash/Default@2x~universal~anyany.png differ diff --git a/resources/ios/splash/Default~iphone.png b/resources/ios/splash/Default~iphone.png index e5129fd04..f65e1fb76 100644 Binary files a/resources/ios/splash/Default~iphone.png and b/resources/ios/splash/Default~iphone.png differ diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 30d2fd1be..223de9d04 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -47,6 +47,11 @@ import { NgxMatMomentModule } from '@angular-material-components/moment-adapter' import { MatButtonModule } from '@angular/material/button'; import { HttpClient } from '@angular/common/http'; +import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; +import { fas } from '@fortawesome/free-solid-svg-icons' +import { far } from '@fortawesome/free-regular-svg-icons' +import { fab } from '@fortawesome/free-brands-svg-icons' + @NgModule({ declarations: [AppComponent], entryComponents: [], @@ -60,6 +65,7 @@ import { HttpClient } from '@angular/common/http'; IonicModule.forRoot({animated: false}), IonicStorageModule.forRoot(), AppRoutingModule, + FontAwesomeModule, HttpClientModule, // NgbModule, NoopAnimationsModule, @@ -96,4 +102,8 @@ import { HttpClient } from '@angular/common/http'; bootstrap: [AppComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) -export class AppModule {} +export class AppModule { + constructor(library: FaIconLibrary) { + library.addIconPacks(fas, fab, far); + } +} diff --git a/src/app/home/home-routing.module.ts b/src/app/home/home-routing.module.ts index 7281dfea6..913654e9f 100644 --- a/src/app/home/home-routing.module.ts +++ b/src/app/home/home-routing.module.ts @@ -191,6 +191,19 @@ const routes: Routes = [ }, ] }, + { + path: 'despachos-pr', + children: [ + { + path: '', + loadChildren: ()=> import('../pages/gabinete-digital/despachos-pr/despachos-pr.module').then(m => m.DespachosPrPageModule), + }, + { + path:':SerialNumber/:caller', + loadChildren: ()=> import('../pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.module').then(m => m.DespachoPrPageModule), + }, + ] + }, { path: 'pedidos', children: [ diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 9507561d0..86a1beb01 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -8,12 +8,13 @@ import { Event } from '../models/event.model'; import { ProcessesService } from '../services/processes.service'; import { NotificationsService } from '../services/notifications.service'; import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; -import { NavigationExtras,Router,ActivatedRoute } from '@angular/router'; +import { NavigationExtras, Router, ActivatedRoute } from '@angular/router'; import { ToastService } from '../services/toast.service'; import { ToDayEventStorage } from '../store/to-day-event-storage.service'; import { DocumentCounterService } from 'src/app/OtherService/document-counter.service' import { PermissionService } from '../OtherService/permission.service'; + // import * as Sentry from "@sentry/browser"; // import { Integrations } from "@sentry/tracing"; @@ -85,47 +86,48 @@ export class HomePage implements OnInit { } ngOnInit() { - console.log('Active route ',this.router.url) - if(this.platform.is('desktop') || this.platform.is('mobileweb')) { + + console.log('Active route ', this.router.url) + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { console.log('Notifications not supported') } else { - /* this.mobilefirstConnect(); - this.notificatinsservice.onReceviNotification(); */ + this.mobilefirstConnect(); + this.notificatinsservice.getAndpostToken2(); + this.notificatinsservice.onReceviNotification(); } } mobilefirstConnect() { - //try { - window['WLAuthorizationManager'].obtainAccessToken("").then( (token) => { - console.log('MobileFirst Server connect: Success ' + token); + window['WLAuthorizationManager'].obtainAccessToken("").then((token) => { - var resourceRequest = new WLResourceRequest("/adapters/javaAdapter/resource/greet/", - WLResourceRequest.GET - ); + console.log('MobileFirst Server connect: Success ' + token); - resourceRequest.setQueryParameter("name", "world"); - resourceRequest.send().then( - (response) => { - // Will display "Hello world" in an alert dialog. - console.log("Connect with JavaAdapter Success: " + response.responseText); - //this.MFPushNotification(); - }, - (error) => { - alert("Connect with JavaAdapter Failure: " + JSON.stringify(error)); - } - ); - }, (error) => { - console.log('MobileFirst Server connect: failure ' + error.responseText); - console.log(JSON.stringify(error)) - /* this.zone.run(() => { - alert("Bummer..."); - alert("Failed to connect to MobileFirst Server"); - }); */ - }); - //} catch {} + var resourceRequest = new WLResourceRequest("/adapters/javaAdapter/resource/greet/", + WLResourceRequest.GET + ); + + resourceRequest.setQueryParameter("name", "world"); + resourceRequest.send().then( + (response) => { + // Will display "Hello world" in an alert dialog. + console.log("Connect with JavaAdapter Success: " + response.responseText); + //this.MFPushNotification(); + }, + (error) => { + alert("Connect with JavaAdapter Failure: " + JSON.stringify(error)); + } + ); + }, (error) => { + console.log('MobileFirst Server connect: failure ' + error.responseText); + console.log(JSON.stringify(error)) + /* this.zone.run(() => { + alert("Bummer..."); + alert("Failed to connect to MobileFirst Server"); + }); */ + }); } diff --git a/src/app/modals/profile/profile.page.html b/src/app/modals/profile/profile.page.html index 627eec29b..684a4282d 100644 --- a/src/app/modals/profile/profile.page.html +++ b/src/app/modals/profile/profile.page.html @@ -19,7 +19,7 @@
-
- 2 novas notificações + {{notificationdata.length}} novas notificações -
+
- + + +
-

08:00

-

09:00

+

{{item.dateInit}}

+

{{item.dateEnd}}

-

Luanda | Palácio Presidencial

-

Almoço de Família

+

{{item.Location}}

+

{{item.alert}}

-
-
-
- -
-
-

28-07-21

-

09:00

-
-
-

Relatório FMI

-

Luanda | Palácio Presidencial

-
-
-
diff --git a/src/app/modals/profile/profile.page.scss b/src/app/modals/profile/profile.page.scss index 92d57ced5..c64fbe321 100644 --- a/src/app/modals/profile/profile.page.scss +++ b/src/app/modals/profile/profile.page.scss @@ -45,9 +45,11 @@ } .btn-delete{ + background:#ffe0e0 !important; width: 40% !important; margin-left: 0 !important; } + .btn-cancel{ width: 40% !important; margin-right: 0 !important; diff --git a/src/app/modals/profile/profile.page.ts b/src/app/modals/profile/profile.page.ts index 60b1cc2f2..c35035314 100644 --- a/src/app/modals/profile/profile.page.ts +++ b/src/app/modals/profile/profile.page.ts @@ -1,12 +1,17 @@ -import { Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; +/// +/// +import { Component, OnInit,NgZone } from '@angular/core'; +import { Router,NavigationExtras } from '@angular/router'; import { AnimationController, ModalController } from '@ionic/angular'; import { User } from 'src/app/models/user.model'; import { AuthService } from 'src/app/services/auth.service'; +import { ToastService } from 'src/app/services/toast.service'; import { FingerprintPage } from 'src/app/shared/fingerprint/fingerprint.page'; import { PinPage } from 'src/app/shared/pin/pin.page'; import { LocalstoreService } from 'src/app/store/localstore.service'; import { EditProfilePage } from './edit-profile/edit-profile.page'; +import { JsonStore } from '../../services/jsonStore.service'; +import { StorageService } from '../../services/storage.service'; @Component({ selector: 'app-profile', @@ -17,13 +22,18 @@ export class ProfilePage implements OnInit { loggeduser: User; userLoginPreference = '' + notificationdata: any[]; + DataArray: Array = []; - constructor(private modalController:ModalController, + constructor(private modalController: ModalController, private authService: AuthService, private animationController: AnimationController, private router: Router, - private localstoreService: LocalstoreService - ) { + private localstoreService: LocalstoreService, + private jsonstore: JsonStore, + private storageservice: StorageService, + private zone: NgZone, + ) { this.loggeduser = authService.ValidatedUser; @@ -32,19 +42,100 @@ export class ProfilePage implements OnInit { this.checkState() } - ngOnInit() {} + ngOnInit() { + this.storageservice.get("Notifications").then((value) => { + + var data = JSON.parse(value); + data.forEach(element => { + console.log("ARaaAA", element) + var payload = JSON.parse(element.payload) + let notificationObject = { + alert: element.alert, + Service: payload.Service, + Object: payload.Object, + IdObject: payload.IdObject, + FolderId: payload.FolderId, + desc: payload.desc, + dateInit: payload.dateInit, + dateEnd: payload.dateEnd, + Location: payload.Location, + TypeAgenda: payload.TypeAgenda, + Status: payload.Status + } + + this.DataArray.push(notificationObject) + }); + this.notificationdata = this.DataArray + console.log("Notificaaa", this.notificationdata) + }) + console.log("Notificaaa", this.notificationdata) + + } close() { this.modalController.dismiss(); } - notImplemented(){} + notImplemented() { } + + notificatinsRoutes = (Service,Object,IdObject,FolderId) => { + if (Service === "agenda") { + this.zone.run(() => this.router.navigate(['/home/agenda', IdObject, 'agenda'])); + } + else if (Service === "gabinete-digital" && Object === "expediente") { + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/expediente',IdObject,'gabinete-digital'])); + } + else if (Service === "gabinete-digital" && Object === "event-list") { + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/event-list/approve-event',IdObject, 'gabinete-digital'])); + }else if (Service === "gabinete-digital" && Object === "despachos") { + + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos',IdObject,'gabinete-digital'],{replaceUrl: true})); + } + else if (Service === "gabinete-digital" && Object === "parecer") { + + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',IdObject,'gabinete-digital'])); + } + else if (Service === "gabinete-digital" && Object === "deferimento") { + + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',IdObject,'gabinete-digital'])); + } + else if (Service === "gabinete-digital" && Object === "despachos-pr") { + + let navigationExtras: NavigationExtras = { + queryParams: { + "serialNumber": IdObject, + } + }; + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr/despacho-pr'], navigationExtras)); + } + else if (Service === "accoes" && Object === "accao") { + this.zone.run(() => this.router.navigate(['/home/publications',IdObject])); + } + else if (Service === "accoes" && Object === "publicacao") { + this.zone.run(() => this.router.navigate(['/home/publications/view-publications',FolderId,IdObject])); + } + else if (Service === "gabinete-digital" && Object === "diplomas") { + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas', IdObject, 'gabinete-digital'])); + } + else if (Service === "gabinete-digital" && Object === "diplomas-assinar") { + let navigationExtras: NavigationExtras = { + queryParams: { + "serialNumber": IdObject, + } + }; + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras)); + } + else if (Service === "gabinete-digital" && Object === "expedientes-pr") { + this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/expedientes-pr',IdObject,'gabinete-digital'])); + } + } logout() { + //const loader = this.toastService.loading(); // clear local storage window.localStorage.clear(); - setTimeout(()=>{ + setTimeout(() => { window.location.pathname = '/' location.reload(); }, 1000) @@ -58,7 +149,7 @@ export class ProfilePage implements OnInit { if (userData.hasOwnProperty('loginPreference')) { this.userLoginPreference = userData.loginPreference } else { - this.userLoginPreference = '' + this.userLoginPreference = '' } } diff --git a/src/app/models/attachment.model.ts b/src/app/models/attachment.model.ts index f3d459083..e944f6be8 100644 --- a/src/app/models/attachment.model.ts +++ b/src/app/models/attachment.model.ts @@ -26,7 +26,7 @@ export enum Sources export class EventAttachment { Id?: string; // id do evento - ParentId: string; + ParentId?: string; Source: string; SourceId: string; Link?: string; @@ -34,4 +34,4 @@ export class EventAttachment { ApplicationId: string; SourceTitle: string; -} \ No newline at end of file +} diff --git a/src/app/pages/agenda/view-event/view-event.page.ts b/src/app/pages/agenda/view-event/view-event.page.ts index fc7e786e0..70932c383 100644 --- a/src/app/pages/agenda/view-event/view-event.page.ts +++ b/src/app/pages/agenda/view-event/view-event.page.ts @@ -131,15 +131,15 @@ export class ViewEventPage implements OnInit { this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]); */ loader.remove() }, (error)=>{ - + if(error.status == 0) { - this.toastService.badRequest('não é possível vizualizar este event no modo offline') + this.toastService.badRequest('Não é possível visualizar este evento no modo offline') } else { this.toastService.badRequest('Este evento já não existe na sua agenda') - } + } loader.remove() - this.modalController.dismiss('Eevent not Foud'); + this.modalController.dismiss('Eevento não Encontrado'); this.location.back(); }); } @@ -163,7 +163,7 @@ export class ViewEventPage implements OnInit { async OpenDeleteEventModal() { - + const modal = await this.modalController.create({ component: EliminateEventPage, componentProps: { diff --git a/src/app/pages/chat/chat.page.html b/src/app/pages/chat/chat.page.html index e78bcaa91..1be48dcf3 100644 --- a/src/app/pages/chat/chat.page.html +++ b/src/app/pages/chat/chat.page.html @@ -10,7 +10,7 @@
-
+
diff --git a/src/app/pages/events/events.module.ts b/src/app/pages/events/events.module.ts index 1d2f27189..df42957a9 100644 --- a/src/app/pages/events/events.module.ts +++ b/src/app/pages/events/events.module.ts @@ -10,6 +10,7 @@ import { EventsPage } from './events.page'; // import { SharedModule } from 'src/app/shared/shared.module'; import { HeaderNoSearchPageModule } from 'src/app/shared/headers/header-no-search/header-no-search.module'; +import { HeaderPageModule } from 'src/app/shared/header/header.module'; @NgModule({ imports: [ @@ -17,7 +18,7 @@ import { HeaderNoSearchPageModule } from 'src/app/shared/headers/header-no-searc FormsModule, IonicModule, EventsPageRoutingModule, - HeaderNoSearchPageModule, + HeaderPageModule, ], declarations: [EventsPage], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/src/app/pages/events/events.page.html b/src/app/pages/events/events.page.html index a5179fa11..d64175488 100644 --- a/src/app/pages/events/events.page.html +++ b/src/app/pages/events/events.page.html @@ -1,8 +1,8 @@ - + - +

{{customDate}}

@@ -10,7 +10,6 @@

{{totalEvent}} evento agendado para hoje

{{totalEvent}} eventos agendados para hoje

-
{{currentHoursMinutes | date: 'HH:mm'}}
"{{currentEvent}}"
diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index 072a06dbd..5616d6190 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -62,6 +62,7 @@ export class EventsPage implements OnInit { taskslist:DailyWorkTask[] = []; expedientList:any; + hideSearchBtn: boolean=false; // shared data toDayEventStorage = ToDayEventStorage @@ -109,6 +110,13 @@ export class EventsPage implements OnInit { this.LoadList(); } }); + this.hideSearch(); + } + + hideSearch(){ + if(this.router.url == '/home/events'){ + this.hideSearchBtn = true; + } } doRefresh(event) { diff --git a/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts b/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts index 38b168434..00d919350 100644 --- a/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts +++ b/src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts @@ -22,6 +22,7 @@ import { BadRequestPage } from 'src/app/shared/popover/bad-request/bad-request.p import { SuccessMessagePage } from 'src/app/shared/popover/success-message/success-message.page'; import { DespachosPrOptionsPage } from 'src/app/shared/popover/despachos-pr-options/despachos-pr-options.page'; import { ToastService } from 'src/app/services/toast.service'; +import { Location } from '@angular/common' @Component({ selector: 'app-despacho-pr', @@ -39,6 +40,7 @@ export class DespachoPrPage implements OnInit { fulltask: any; eventsList: Event[]; serialnumber: string; + caller: string; profile: string; intervenientes: any; cc: any = []; @@ -55,11 +57,15 @@ export class DespachoPrPage implements OnInit { public popoverController: PopoverController, private activatedRoute: ActivatedRoute, private animationController: AnimationController, - private toastService: ToastService,) { - this.activatedRoute.queryParams.subscribe(params => { - if(params["serialNumber"]) { - this.serialnumber = params["serialNumber"]; - console.log(params["serialNumber"]); + private toastService: ToastService, + private location: Location, + ) { + this.activatedRoute.paramMap.subscribe(params => { + if(params["params"].SerialNumber) { + this.serialnumber = params["params"].SerialNumber; + } + if(params["params"].caller) { + this.caller = params["params"].caller; } }); } @@ -85,17 +91,7 @@ export class DespachoPrPage implements OnInit { } goBack() { - if (window.innerWidth <= 800) { - this.router.navigate(['/home/gabinete-digital/despachos-pr']); - } else { - let navigationExtras: NavigationExtras = { - queryParams: { - "despachospr": true, - } - }; - this.router.navigate(['/home/gabinete-digital'], navigationExtras); - } - + this.location.back(); } @@ -144,7 +140,7 @@ export class DespachoPrPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } @@ -342,7 +338,7 @@ export class DespachoPrPage implements OnInit { if( window.innerWidth <= 800){ classs = 'modal modal-desktop' } else { - classs = 'modal modal-desktop' + classs = 'add-note-modal' } const modal = await this.modalController.create({ component: AddNotePage, diff --git a/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts b/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts index 1a6742aff..5b95e3b3d 100644 --- a/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts +++ b/src/app/pages/gabinete-digital/despachos-pr/despachos-pr.page.ts @@ -90,12 +90,7 @@ export class DespachosPrPage implements OnInit { } goToDespachoPr(serialNumber:any){ - let navigationExtras: NavigationExtras = { - queryParams: { - "serialNumber": serialNumber, - } - }; - this.router.navigate(['/home/gabinete-digital/despachos-pr/despacho-pr'], navigationExtras); + this.router.navigate(['/home/gabinete-digital/despachos-pr',serialNumber,'gabinete-digital']); } notImplemented(){ diff --git a/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts b/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts index bbf8d0b7f..94e9c3479 100644 --- a/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts +++ b/src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts @@ -51,7 +51,7 @@ export class DespachoPage implements OnInit { private toastService: ToastService, private despachoService: DespachoService, private location: Location - + ) { this.activatedRoute.paramMap.subscribe(params => { if(params["params"].SerialNumber) { @@ -137,6 +137,7 @@ export class DespachoPage implements OnInit { this.customDate = this.days[thedate.getDay()]+ ", " + thedate.getDate() +" de " + ( this.months[thedate.getMonth()]); this.processes.GetTaskParticipants(this.task.FolderId).subscribe(users=>{ + this.intervenientes = users.filter(user=>{ return user.Type == 'I'; }); @@ -152,7 +153,7 @@ export class DespachoPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } @@ -233,7 +234,7 @@ export class DespachoPage implements OnInit { loader.remove() } - + } async reencaminhar(note:string, documents:any) { diff --git a/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts b/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts index 4c5026a81..f4387516b 100644 --- a/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts +++ b/src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts @@ -12,6 +12,7 @@ import { BadRequestPage } from 'src/app/shared/popover/bad-request/bad-request.p import { SuccessMessagePage } from 'src/app/shared/popover/success-message/success-message.page'; import { DeplomaOptionsPage } from 'src/app/shared/popover/deploma-options/deploma-options.page'; import { ToastService } from 'src/app/services/toast.service'; +import { Location } from '@angular/common' @Component({ selector: 'app-diploma-assinar', @@ -29,7 +30,8 @@ export class DiplomaAssinarPage implements OnInit { intervenientes: any; cc: any = []; attachments:any; - customDate: any + customDate: any; + caller:string; constructor( private processes: ProcessesService, @@ -39,12 +41,15 @@ export class DiplomaAssinarPage implements OnInit { private activatedRoute: ActivatedRoute, private router: Router, private animationController: AnimationController, - private toastService: ToastService + private toastService: ToastService, + private location: Location, ) { - this.activatedRoute.queryParams.subscribe(params => { - if(params["serialNumber"]) { - this.serialnumber = params["serialNumber"]; - console.log(params["serialNumber"]); + this.activatedRoute.paramMap.subscribe(params => { + if(params["params"].SerialNumber) { + this.serialnumber = params["params"].SerialNumber; + } + if(params["params"].caller) { + this.caller = params["params"].caller; } }); @@ -56,17 +61,7 @@ export class DiplomaAssinarPage implements OnInit { } goBack() { - if (window.innerWidth <= 800) { - this.router.navigate(['/home/gabinete-digital/diplomas-assinar']); - } else { - let navigationExtras: NavigationExtras = { - queryParams: { - "diplomasassinar": true, - } - } - - this.router.navigate(['/home/gabinete-digital'], navigationExtras); - } + this.location.back(); } async openOptions(taskAction?: any) { @@ -129,7 +124,7 @@ export class DiplomaAssinarPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } diff --git a/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.ts b/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.ts index 79a8b109e..ef43b1b07 100644 --- a/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.ts +++ b/src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.ts @@ -48,15 +48,10 @@ export class DiplomasAssinarPage implements OnInit { }); } - + goToDiploma(serialNumber:any){ - let navigationExtras: NavigationExtras = { - queryParams: { - "serialNumber": serialNumber, - } - }; - this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras); + this.router.navigate(['/home/gabinete-digital/diplomas-assinar',serialNumber,'gabinete-digital']); } async refreshing() { @@ -66,7 +61,7 @@ export class DiplomasAssinarPage implements OnInit { } doRefresh(event) { - + setTimeout(() => { this.LoadList(); }, 1000); @@ -123,7 +118,7 @@ export class DiplomasAssinarPage implements OnInit { this.skeletonLoader = false this.showLoader = false; - + } goBack() { diff --git a/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts b/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts index b98ba048b..7ac7aed9f 100644 --- a/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts +++ b/src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts @@ -12,6 +12,7 @@ import { BadRequestPage } from 'src/app/shared/popover/bad-request/bad-request.p import { SuccessMessagePage } from 'src/app/shared/popover/success-message/success-message.page'; import { DeplomaOptionsPage } from 'src/app/shared/popover/deploma-options/deploma-options.page'; import { ToastService } from 'src/app/services/toast.service'; +import { Location } from '@angular/common'; @Component({ selector: 'app-diploma', @@ -42,10 +43,11 @@ export class DiplomaPage implements OnInit { private router: Router, private animationController: AnimationController, private toastService: ToastService, - ) { + private location: Location, + ) { this.activatedRoute.paramMap.subscribe(params => { console.log(params["params"]); - + if(params["params"].SerialNumber) { this.serialNumber = params["params"].SerialNumber; } @@ -63,10 +65,11 @@ export class DiplomaPage implements OnInit { } goBack() { - if(this.task.Status == "Pending" && this.caller == 'gabinete-digital'){ + this.location.back(); + /* if(this.task.Status == "Pending" && this.caller == 'gabinete-digital'){ if (window.innerWidth < 801) { this.router.navigate(['/home/gabinete-digital/pendentes']); - } + } else { let navigationExtras: NavigationExtras = { queryParams: { @@ -87,7 +90,7 @@ export class DiplomaPage implements OnInit { } this.router.navigate(['/home/gabinete-digital'], navigationExtras); } - } + } */ } async openOptions(taskAction?: any) { @@ -134,7 +137,7 @@ export class DiplomaPage implements OnInit { }); this.cc = users.filter(user=>{ return user.Type == 'CC'; - }); + }); }); this.getDocumentDetails(this.task.FolderId, '361'); @@ -145,7 +148,7 @@ export class DiplomaPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } @@ -161,7 +164,7 @@ export class DiplomaPage implements OnInit { browser.show(); }); } - + getDocumentDetails(forlderId:string, applicationId:string) { this.processes.GetDocumentDetails(forlderId,applicationId).subscribe(res=>{ this.attachments = res.Documents; @@ -171,8 +174,8 @@ export class DiplomaPage implements OnInit { } async askSignature(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Aprovar", "ActionTypeId": 99999840, "dataFields": { @@ -185,11 +188,11 @@ export class DiplomaPage implements OnInit { try { await this.processes.CompleteTask(body).toPromise() - + this.toastService.successMessage(false, ()=>{ this.close(); }) - + } catch (error) { this.toastService.badRequest() } @@ -199,8 +202,8 @@ export class DiplomaPage implements OnInit { } async askToChange(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Retificar", "ActionTypeId": 99999841, "dataFields": { @@ -223,9 +226,9 @@ export class DiplomaPage implements OnInit { } async finish(note:string, documents:any){ - - let body = { - "serialNumber": this.serialNumber, + + let body = { + "serialNumber": this.serialNumber, "action": "Concluir", "ActionTypeId": 95, "dataFields": { @@ -257,7 +260,7 @@ export class DiplomaPage implements OnInit { if( window.innerWidth <= 800){ classs = 'modal modal-desktop' } else { - classs = 'modal modal-desktop' + classs = 'add-note-modal' } const modal = await this.modalController.create({ component: AddNotePage, @@ -266,20 +269,20 @@ export class DiplomaPage implements OnInit { cssClass: classs, backdropDismiss: true }); - + await modal.present(); - + modal.onDidDismiss().then(async (res) => { if(res.data){ - + const DocumentToSave = res.data.documents.map((e) => { return { ApplicationId: e.ApplicationType, SourceId: e.Id, } }); - + let docs = { ProcessInstanceID: "", Attachments: DocumentToSave, diff --git a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts index e47a416b5..bd44c675e 100644 --- a/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts +++ b/src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts @@ -10,6 +10,7 @@ import { EventActionsPopoverPage } from 'src/app/pages/agenda/event-actions-popo import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; import { EditEventToApproveComponent } from 'src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page'; import { ToastService } from 'src/app/services/toast.service'; +import { Location } from '@angular/common'; @Component({ selector: 'app-approve-event', @@ -47,6 +48,7 @@ export class ApproveEventPage implements OnInit { private iab: InAppBrowser, private animationController: AnimationController, private toastService: ToastService, + private location: Location, ) { this.activatedRoute.paramMap.subscribe(params => { console.log(params["params"]); @@ -64,7 +66,7 @@ export class ApproveEventPage implements OnInit { toDateString(e) { return new Date(e).toDateString() } - + ngOnInit() { console.log(this.serialNumber); console.log(this.caller); @@ -73,7 +75,8 @@ export class ApproveEventPage implements OnInit { } goBack() { - let navigationExtras: NavigationExtras = { + this.location.back(); + /* let navigationExtras: NavigationExtras = { queryParams: { "eventos": true, } @@ -82,7 +85,7 @@ export class ApproveEventPage implements OnInit { this.router.navigate(['/home',this.caller, 'event-list']); } else { this.router.navigate(['/home/gabinete-digital'], navigationExtras); - } + } */ } diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.html b/src/app/pages/gabinete-digital/event-list/event-list.page.html index ade35c9ba..2f0e10e3d 100644 --- a/src/app/pages/gabinete-digital/event-list/event-list.page.html +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.html @@ -34,9 +34,9 @@
-
+
- +
+
@@ -79,6 +80,27 @@
+ +
+
+
+ Lista vazia +
+
+ +
+
+ Lista vazia +
+
+
+
diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.scss b/src/app/pages/gabinete-digital/event-list/event-list.page.scss index 00df541f2..79e97df02 100644 --- a/src/app/pages/gabinete-digital/event-list/event-list.page.scss +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.scss @@ -119,3 +119,7 @@ ion-item-sliding{ margin: 0; padding: 0; } +.test{ + color: #000 !important; + border: 1px solid red !important; +} diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.ts b/src/app/pages/gabinete-digital/event-list/event-list.page.ts index 18d1e9761..92c7d023d 100644 --- a/src/app/pages/gabinete-digital/event-list/event-list.page.ts +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.ts @@ -75,6 +75,8 @@ export class EventListPage implements OnInit { let mdEventsOficial = await this.processes.GetTasksList('Agenda Oficial MDGPR', false).toPromise(); let mdEventsPessoal = await this.processes.GetTasksList('Agenda Pessoal MDGPR', false).toPromise(); this.eventsMDGPRList = mdEventsOficial.concat(mdEventsPessoal); + console.log(this.eventsMDGPRList); + this.eventaprovacaostore.resetmd(this.eventsMDGPRList); } else if(this.segment == 'PR'){ diff --git a/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts b/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts index 7bf5533ca..c60d3a6de 100644 --- a/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts +++ b/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts @@ -13,6 +13,7 @@ import { momentG } from 'src/plugin/momentG' import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart-expedient-modal.page'; import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page'; import { ToastService } from 'src/app/services/toast.service'; +import { Location } from '@angular/common'; @Component({ selector: 'app-expediente-detail', @@ -48,6 +49,7 @@ export class ExpedienteDetailPage implements OnInit { public popoverController: PopoverController, private activatedRoute: ActivatedRoute, private toastService: ToastService, + private location: Location, ) { this.activatedRoute.paramMap.subscribe(params => { if(params["params"].SerialNumber) { @@ -73,7 +75,8 @@ export class ExpedienteDetailPage implements OnInit { } goBack() { - if(this.task.Status == "Pending" && this.caller != 'events'){ + this.location.back(); + /* if(this.task.Status == "Pending" && this.caller != 'events'){ if (window.innerWidth <= 800) { this.router.navigate(['/home/gabinete-digital/pendentes']); } @@ -108,7 +111,7 @@ export class ExpedienteDetailPage implements OnInit { } }); - } + } */ } sendExpedienteToPending() { @@ -168,7 +171,7 @@ export class ExpedienteDetailPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } diff --git a/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.html b/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.html index dd56f0a64..1e3ffd910 100644 --- a/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.html +++ b/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.html @@ -61,29 +61,35 @@
+
Documentos Anexados
+ -
Documentos Anexados
- + -

{{ task.Folio }}

-

{{task.Remetente}}{{ task.CreateDate | date: 'dd/MM/yy' }}

+

{{attachment.Description}}

+

+ {{attachment.Stakeholders}} + Rementente indefinido + {{ attachment.CreateDate | date: 'dd/MM/yy' }} +

- +

Eventos Associados

- - +

{{event.StartDate | date: 'HH:mm'}}

@@ -100,6 +106,7 @@
+
@@ -112,6 +119,7 @@ +
diff --git a/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts b/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts index a090b7b78..bb2ca18ca 100644 --- a/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts +++ b/src/app/pages/gabinete-digital/expedientes-pr/expediente-pr/expediente-pr.page.ts @@ -22,6 +22,10 @@ import { BadRequestPage } from 'src/app/shared/popover/bad-request/bad-request.p import { SuccessMessagePage } from 'src/app/shared/popover/success-message/success-message.page'; import { OptsExpedientePrPage } from 'src/app/shared/popover/opts-expediente-pr/opts-expediente-pr.page'; import { ToastService } from 'src/app/services/toast.service'; +import { SearchPage } from 'src/app/pages/search/search.page'; +import { Attachment } from 'src/app/models/attachment.model'; +import { SearchDocument } from 'src/app/models/search-document'; +import { Location } from '@angular/common'; @Component({ selector: 'app-expediente-pr', @@ -44,11 +48,12 @@ export class ExpedientePrPage implements OnInit { cc: any = []; loggeduser: User; + documents:SearchDocument[] = []; + attachments:any; constructor( private processes: ProcessesService, private iab: InAppBrowser, - private attachments: AttachmentsService, private events: EventsService, private menu: MenuController, private router: Router, @@ -58,6 +63,8 @@ export class ExpedientePrPage implements OnInit { private userAuth: AuthService, private animationController: AnimationController, private toastService: ToastService, + private attachmentsService: AttachmentsService, + private location: Location, ) { this.loggeduser = userAuth.ValidatedUser; @@ -81,10 +88,14 @@ export class ExpedientePrPage implements OnInit { } /* this.serialnumber = paramMap.get('SerialNumber'); */ this.LoadTaskDetail(this.serialnumber); - this.LoadRelatedEvents(this.serialnumber); + //this.LoadRelatedEvents(this.serialnumber); + //this.getAttachments(this.serialnumber); }); this.LoadTaskDetail(this.serialnumber); - this.LoadRelatedEvents(this.serialnumber); + this.getAttachments(this.serialnumber); + //this.LoadRelatedEvents(this.serialnumber); + + } toDateString(e) { @@ -96,7 +107,8 @@ export class ExpedientePrPage implements OnInit { } goBack() { - if(this.task.Status == "Pending" && this.caller != 'events'){ + this.location.back(); + /* if(this.task.Status == "Pending" && this.caller != 'events'){ if (window.innerWidth <= 800) { this.router.navigate(['/home/gabinete-digital/pendentes']); } @@ -130,7 +142,7 @@ export class ExpedientePrPage implements OnInit { break; } }); - } + } */ } sendExpedienteToPending(){ @@ -168,10 +180,7 @@ export class ExpedientePrPage implements OnInit { "Status": res.workflowInstanceDataFields.Status, } - console.log('task', this.task); - this.fulltask = res; - console.log('GetTask', res); let thedate = new Date(this.task.CreateDate); this.customDate = this.days[thedate.getDay()]+ ", " + thedate.getDate() +" de " + ( this.months[thedate.getMonth()]); @@ -195,7 +204,7 @@ export class ExpedientePrPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } @@ -203,9 +212,18 @@ export class ExpedientePrPage implements OnInit { }); } + getAttachments(serialNumber){ + console.log(serialNumber); + + this.attachmentsService.getAttachmentsBySerial(serialNumber).subscribe(res=>{ + this.attachments = res; + console.log('res', res); + }); + } + async LoadRelatedEvents(serial: string) { if (this.eventsList == null) { - this.attachments.getAttachmentsBySerial(serial).subscribe(res => { + this.attachmentsService.getAttachmentsBySerial(serial).subscribe(res => { console.log(res); res.forEach(att => { if (this.eventsList == null) { @@ -230,6 +248,48 @@ export class ExpedientePrPage implements OnInit { }); } + attachDocument(){ + this.getDoc(); + } + + async getDoc() { + const modal = await this.modalController.create({ + component: SearchPage, + cssClass: 'modal-width-100-width-background modal', + componentProps: { + type: 'AccoesPresidenciais & ArquivoDespachoElect', + showSearchInput: true, + select: true + } + }); + await modal.present(); + modal.onDidDismiss().then((res)=>{ + if(res){ + const data = res.data; + this.documents.push(data.selected); + console.log( this.documents); + this.documents.forEach(element =>{ + let body = { + "Source": "1", + "SourceId": element.Id, + "SourceTitle": element.Assunto, + "SerialNumber": this.task.SerialNumber, + "ApplicationId": element.ApplicationType + } + this.attachmentsService.setEventAttachmentById(body).subscribe((res)=>{ + this.getAttachments(this.task.SerialNumber); + }); + }) + + } + }); + + } + + removeAttachment(index: number){ + this.documents = this.documents.filter( (e, i) => index != i); + } + openMenu() { this.menu.open(); this.modalController.dismiss(); @@ -291,7 +351,7 @@ export class ExpedientePrPage implements OnInit { if( window.innerWidth < 801){ classs = 'modal modal-desktop' } else { - classs = 'modal modal-desktop' + classs = 'add-note-modal' } const modal = await this.modalController.create({ component: AddNotePage, diff --git a/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts b/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts index c96833f4d..5b7e4f76d 100644 --- a/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts +++ b/src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.ts @@ -40,12 +40,12 @@ export class ExpedientesPrPage implements OnInit { this.loggeduser = authService.ValidatedUser; } - + ngOnInit() { const location = window.location const pathname = location.pathname + location.search - + this.LoadList(); this.router.events.forEach((event) => { @@ -82,7 +82,7 @@ export class ExpedientesPrPage implements OnInit { "CreateDate": taskDate, "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, "Remetente": element.workflowInstanceDataFields.Remetente, - "DocumentsQty": 0, + "DocumentsQty": element.totalDocuments, "WorkflowName": element.workflowDisplayName, "activityInstanceName": element.activityInstanceName, "Status": element.workflowInstanceDataFields.Status, diff --git a/src/app/pages/gabinete-digital/gabinete-digital.module.ts b/src/app/pages/gabinete-digital/gabinete-digital.module.ts index cba285667..6e76b7edb 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.module.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.module.ts @@ -33,13 +33,14 @@ import { ExpedientesPrPageModule } from 'src/app/shared/gabinete-digital/expedie import { DiplomasAssinarPageModule } from 'src/app/shared/gabinete-digital/diplomas-assinar/diplomas-assinar.module'; import { HeaderPageModule } from 'src/app/shared/header/header.module'; import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-modal-dismiss.module'; +import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; @NgModule({ imports: [ CommonModule, FormsModule, IonicModule, - + FontAwesomeModule, GabineteDigitalPageRoutingModule, // HeaderPageModule, diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.html b/src/app/pages/gabinete-digital/gabinete-digital.page.html index bd3cfa790..4f83fb8f8 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.html +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.html @@ -8,140 +8,210 @@ -
+
-
+
- Gabinete Digital +
+ Gabinete Digital +
+
+ + + + + + + + +
+
+ -
-
-
- +
+ +
+ +
+
+
+
+ {{ task.Folio }} +
+
+ + +
+
+
+
+ {{task.Senders}} +
+
+
+
+ {{task.customDate}} +
+
+
+
+ + Agenda {{task.Agenda}} do Presidente da República + + + A sua agenda {{task.Agenda}} + +
+
+
+
+ {{task.activityInstanceName}} +
+
+ {{ task.CreateDate | date: 'dd-MM-yy' }} +
+
+
+
+
-

Eventos para Aprovação

-

{{eventoaprovacaostore.count}} Documentos

+
-
-
- -
-

Correspondencia

-

{{expedientegbstore.count}} Documentos

-
- - -
-
- -
-

Pendentes

-

Meus Pendentes

-

{{pendentesstore.count}} Documentos

-
- -
-
- -
-

Despachos

-

{{despachoStore.count}} Documentos

-
- -
-
- -
-

Pedidos de Parecer

-

Pedidos de Parecer solicitados por mim

-

{{pedidosstore.countparecer}} Documentos

-
- -
-
- -
-

Pedidos de Deferimento

-

{{pedidosstore.countdeferimento}} Documentos

-
- -
-
- -
-

Expediente Presidente

-

Expediente

-

{{expedienteprstore.count}} Documentos

-
- -
-
- -
-

Despacho do Presidente da República

-

Despachos criados por mim

-

{{ despachoprstore.count }} Documentos

-
- -
-
-
- -
-
-

Expediente Presidente

-

Expediente

-

{{expedienteprstore.count}} Documentos

+ +
+
+
+
+

Eventos para Aprovação

+

{{eventoaprovacaostore.count}} Documentos

-
-
-
-
+
+
+ +
+

Correspondencia

+

{{expedientegbstore.count}} Documentos

+
+ + +
+
+ +
+

Pendentes

+

Meus Pendentes

+

{{pendentesstore.count}} Documentos

+
+ +
+
-
-

Despacho do Presidente da República

-

{{ despachoprstore.count }} Documentos

+

Despachos

+

{{despachoStore.count}} Documentos

+
+ +
+
+ +
+

Pedidos de Parecer

+

Pedidos de Parecer solicitados por mim

+

{{pedidosstore.countparecer}} Documentos

+
+ +
+
+ +
+

Pedidos de Deferimento

+

{{pedidosstore.countdeferimento}} Documentos

+
+ +
+
+ +
+

Expediente Presidente

+

Expediente

+

{{expedienteprstore.count}} Documentos

+
+ +
+
+ +
+

Despacho do Presidente da República

+

Despachos criados por mim

+

{{ despachoprstore.count }} Documentos

+
+ +
+
+
+ +
+
+

Expediente Presidente

+

Expediente

+

{{expedienteprstore.count}} Documentos

+
-
-
-
- +
+
+
+ +
+
+

Despacho do Presidente da República

+

{{ despachoprstore.count }} Documentos

+
+
-

Diplomas por Validar

-

Diplomas por Assinar

-

{{count_dip_pv}} Documentos

-
-
-
- +
+
+ +
+

Diplomas por Validar

+

Diplomas por Assinar

+

{{count_dip_pv}} Documentos

-

Diplomas assinados PR

-

Diplomas

-

{{ count_dip_as_pr }} Documentos

-
-
-
- +
+
+ +
+

Diplomas assinados PR

+

Diplomas

+

{{ count_dip_as_pr }} Documentos

-

Diplomas para Assinar

-

{{count_dip_as}} Documentos

+ +
+
+ +
+

Diplomas para Assinar

+

{{count_dip_as}} Documentos

+
+
-
+
diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.scss b/src/app/pages/gabinete-digital/gabinete-digital.page.scss index 6ee1f0446..d34fda78c 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.scss +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.scss @@ -4,7 +4,22 @@ ion-content{ --padding-start:15px; */ /* --padding-bottom:15px; */ /* --background:#ecf8ff; */ - --background: transparent; + --background: #ecf8ff; +} +ion-segment{ + overflow: auto; +} +ion-segment-button{ + margin: 0 auto !important; + padding: 0 !important; + + --padding-bottom: 0px; + --padding-top: 5px; + --margin-bottom: 5px; + --margin-top: 0px; + + min-height: 25px; + min-width: 25px; } :host{ // background: #0782c9; @@ -12,8 +27,17 @@ ion-content{ text-align: center; } .title-container{ + background:#ecf8ff; padding: 30px 20px 15px 20px !important; //margin-bottom: 15px; + border-top-left-radius: 25px; + border-top-right-radius: 25px; + + .title{ + width: fit-content; + font-size: 25px !important; + float: left; + } .btn-no-color{ display: flex; float: right; @@ -24,6 +48,14 @@ ion-content{ font-size: 30px; color: #42b9fe; } + .title-icons{ + width: fit-content; + float: right !important; + align-self: baseline; + } + .title-icons fa-icon{ + font-size: 25px !important; + } } ion-card{ @@ -87,16 +119,20 @@ ion-content{ font-family: Roboto; margin: 0 auto; background:#ecf8ff; - overflow:auto; + overflow:hidden; padding: 0 !important; - border-top-left-radius: 25px; - border-top-right-radius: 25px; - .aside-wrapper{ - //border: 1px solid red; + overflow: hidden; + .listview{ + width: 100%t; + padding: 0px 20px 15px 20px !important; + overflow: auto; + } } + + .aside{ align-items: center; justify-content: center; @@ -204,6 +240,143 @@ ion-content{ overflow: auto; } +/* New list view CSS */ +ion-list{ + background: transparent; +} +.item-wrapper{ + border-radius: 15px; + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07); + border:1px solid #e9e9e9 !important; + background-color: #fff !important; + margin-bottom: 10px !important; + padding: 15px; + + .item{ + background-color: var(--white); + margin: 0 auto; + overflow: hidden; + + .item-top-detail{ + width: 100%; + float: left; + font-family: Roboto; + font-size: 12pt; + font-weight: 700; + color: #0d89d1; + padding-left: 3px; + + .item-subject{ + width: 84%; + float: left; + + ion-label{ + margin: 0 !important; + padding: 2.5px 10.5px 2.5px 10.5px; + } + } + + .item-icon{ + width: fit-content; + float: right; + /* font-size: 13px; */ + margin: 0 !important; + padding: 0 !important; + + ion-icon{ + font-size: 12pt; + color: #42b9fe; + float: left; + } + label{ + font-size: 10pt; + } + } + } + .item-middle-detail{ + font-size: 10pt; + width: 100%; + overflow: auto; + padding-left: 3px; + //border: 1px solid red; + margin: 0 !important; + + .item-remetente{ + //width: 200px; + font-family: Roboto; + /* font-size: 13px; */ + font-weight: normal; + color: #000000; + float: left; + /* border: 1px solid red; */ + + ion-label{ + padding: 2.5px 10.5px 2.5px 10.5px; + margin: 0 !important; + } + } + } + .item-middle-detail-extra{ + font-size: 10pt; + padding-left: 3px; + //border: 1px solid red; + + .item-middle-detail-extra-text{ + //border: 1px solid blue; + + ion-label{ + padding: 2.5px 10.5px 2.5px 10.5px; + margin: 0 !important; + } + } + } + .item-bottom-detail{ + font-size: 12pt; + width: 100%; + overflow: auto; + margin-top: 10px; + padding-bottom: 0 !important; + + .item-workflow{ + float: left; + margin: 0 !important; + align-self: flex-start; + + + .label{ + border-radius: 15px; + background: #ffb703; + /* font-size: 12px; */ + float: right; + padding: 2.5px 13.5px 2.5px 13.5px; + color: #fff; + } + } + .item-date{ + width: auto; + font-family: Roboto; + font-size: 10pt; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: #797979; + text-align: right; + flex-grow: 1; + + ion-label{ + margin: 0 !important; + padding: 0 !important; + } + } + } + .item-middle-detail, .item-bottom-detail{ + margin-bottom: 5px; + } + } +} + @media only screen and (min-width: 561px) { .exp-card-long{ @@ -218,16 +391,24 @@ ion-content{ @media only screen and (min-width: 701px) { + ion-content{ + --background: transparent; + } .title{ font-size: 15px !important; } .main-content{ + border-top-left-radius: 25px; + border-top-right-radius: 25px; + overflow: hidden; + .aside-wrapper{ display: flex; width: 35%; justify-content: flex-start !important; border-right: 1px solid #d8d8d8; + overflow: hidden; .aside{ background:transparent; @@ -329,7 +510,7 @@ ion-content{ } @media only screen and (min-width: 801px) { .title{ - font-size: 25px; + font-size: 25px !important; } .content{ width: 65%; diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index 325e05906..d12bf15c3 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -21,6 +21,7 @@ import { PedidosStore } from 'src/app/store/pedidos-store.service'; import { ExpedienteprStore } from 'src/app/store/expedientepr-store.service'; import { DespachosprStore } from 'src/app/store/despachospr-store.service'; import { PermissionService } from 'src/app/OtherService/permission.service'; +import { removeDuplicate } from 'src/plugin/removeDuplicate.js' @Component({ selector: 'app-gabinete-digital', templateUrl: './gabinete-digital.page.html', @@ -30,9 +31,13 @@ import { PermissionService } from 'src/app/OtherService/permission.service'; export class GabineteDigitalPage implements OnInit { segment:string; + segmentVista:string; showLoader: boolean; public profile:string; + allProcessesList: any = new Array(); + skeletonLoader: boolean; + count_exp_dailywork=0; count_exp_pr =0 count_desp_dailywork=0; @@ -103,13 +108,16 @@ export class GabineteDigitalPage implements OnInit { authService: AuthService, public p: PermissionService ) { - - this.loggeduser = authService.ValidatedUser; + this.loggeduser = authService.ValidatedUser; window.onresize = (event) => { // if not mobile remove all component - if( window.innerWidth <= 801){ + if( window.innerWidth <= 701){ this.modalController.dismiss(); + this.segmentVista = "listview"; + } + else{ + this.segmentVista = "boxview"; } }; this.checkRoutes(); @@ -126,6 +134,13 @@ export class GabineteDigitalPage implements OnInit { ngOnInit() { + if( window.innerWidth < 701) { + this.segmentVista = "listview"; + } + else{ + this.segmentVista = "boxview"; + } + const pathname = window.location.pathname this.LoadCounts(); @@ -140,6 +155,144 @@ export class GabineteDigitalPage implements OnInit { }); this.hideRefreshButton(); + this.loadAllProcesses(); + } + + async loadAllProcesses(){ + let allProcessesList = await this.processesbackend.GetTasksList("", false).toPromise(); + console.log(allProcessesList); + + this.skeletonLoader = true; + + this.allProcessesList = []; + + allProcessesList.forEach(element => { + let date = new Date(element.taskStartDate); + date.setMonth(date.getMonth() + 1); + let taskDate = date.getFullYear()+"-"+ date.getMonth()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+ ":"+date.getSeconds(); + + let task = { + "SerialNumber": element.serialNumber, + "Folio": element.workflowInstanceDataFields.Subject, + "Senders": element.workflowInstanceDataFields.Sender, + "CreateDate": taskDate, + "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, + "Remetente": element.workflowInstanceDataFields.Remetente, + "DocumentsQty": element.totalDocuments, + "DocId": element.workflowInstanceDataFields.DispatchDocId, + "FolderID": element.workflowInstanceDataFields.FolderID, + "WorkflowName": element.workflowDisplayName, + "activityInstanceName": element.activityInstanceName, + "Status": element.workflowInstanceDataFields.Status, + "Agenda": element.workflowInstanceDataFields.Agenda, + "customDate": this.setFormatDate(new Date(element.workflowInstanceDataFields.StartDate), new Date(element.workflowInstanceDataFields.EndDate), element.workflowInstanceDataFields.IsAllDayEvent), + } + this.allProcessesList.push(task); + this.allProcessesList = removeDuplicate( this.allProcessesList) + this.allProcessesList = this.sortArrayISODate(this.allProcessesList).reverse(); + }); + //this.pendentesstore.reset(this.allProcessesList); + this.skeletonLoader = false; + + } + + sortArrayISODate(myArray: any){ + return myArray.sort(function(a, b) { + return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0); + }); + } + + setFormatDate(start:any, end:any, allday:boolean){ + let customDate; + /* start = new Date(); + end= new Date("2021-08-04T18:01:04.753Z"); */ + //end = new Date("2021-09-04T18:01:04.753Z"); + + const totalSeconds = Math.floor((end - (start))/1000);; + const totalMinutes = Math.floor(totalSeconds/60); + const totalHours = Math.floor(totalMinutes/60); + const totalDays = Math.floor(totalHours/24); + + const hours = totalHours - ( totalDays * 24 ); + const minutes = totalMinutes - ( totalDays * 24 * 60 ) - ( hours * 60 ); + const seconds = totalSeconds - ( totalDays * 24 * 60 * 60 ) - ( hours * 60 * 60 ) - ( minutes * 60 ); + + let diffDays = totalDays; + let diffMinutes = minutes; + + console.log(allday); + if(totalDays == 0){ + if(allday){ + customDate = this.getCustomDate(start)+", "+this.getCustomHours(start)+" (todo dia)"; + console.log(customDate); + return customDate; + } + else + { + //customDate = this.getCustomDate(start)+","+this.getCustomHours(start)+" ("+minutes+" mins)"; + customDate = this.getCustomDate(start)+", "+this.getCustomHours(start)+" | "+this.getCustomHours(end); + return customDate; + } + } + else{ + customDate = this.getCustomDate(start)+","+this.getCustomHours(start)+ + " (termina:"+ this.getCustomDate(end)+","+this.getCustomHours(end)+")"; + return customDate; + } + } + + getCustomDate(thedate: Date){ + return (thedate.getDay()+1) + "/" + + (thedate.getMonth()+1) + "/" + + thedate.getFullYear(); + } + getCustomHours(thedate: Date){ + return thedate.getHours() + ":" + + thedate.getMinutes(); + } + + viewProcessDetails(serialNumber:string, workflowName:string, activityName:string){ + if(workflowName == 'Despacho') { + if(activityName == 'Tarefa de Despacho'){ + this.router.navigate(['/home/gabinete-digital/despachos',serialNumber,'gabinete-digital']); + } + } + else if(workflowName == 'Despacho do Presidente da República') { + if(activityName == 'Tarefa de Despacho'){ + this.router.navigate(['/home/gabinete-digital/despachos-pr',serialNumber,'gabinete-digital']); + } + else if(activityName == 'Revisar Diploma' || activityName == 'Assinar Diploma'){ + this.router.navigate(['/home/gabinete-digital/diplomas',serialNumber,'gabinete-digital']); + } + else if(activityName == 'Diploma Assinado'){ + this.router.navigate(['/home/gabinete-digital/diplomas-assinar',serialNumber,'gabinete-digital']); + } + } + else if(workflowName == 'Pedido de Parecer' || workflowName == 'Pedido de Deferimento') { + this.router.navigate(['/home/gabinete-digital/pedidos',serialNumber,'gabinete-digital']); + } + else if(workflowName == 'Expediente') { + this.router.navigate(['/home/gabinete-digital/expediente',serialNumber,'gabinete-digital']); + } + else if(workflowName == 'Expediente do Presidente' && this.loggeduser.Profile == 'PR') { + this.router.navigate(['/home/gabinete-digital/expedientes-pr',serialNumber,'gabinete-digital']); + } + else if (workflowName == "Pedido de Parecer do Presidente") { + this.router.navigate(['/home/gabinete-digital/pedidos',serialNumber,'gabinete-digital']); + } + /* else if (workflowName == "Expediente") { + this.router.navigate(['/home/gabinete-digital/pedidos',serialNumber,'gabinete-digital']); + } */ + else if(workflowName == 'Agenda Pessoal PR' || workflowName == 'Agenda Oficial PR' || workflowName == 'Agenda Oficial MDGPR' || workflowName == 'Agenda Pessoal MDGPR') { + this.router.navigate(['/home/gabinete-digital/event-list/approve-event',serialNumber, 'gabinete-digital']); + } + else { + console.log('cant find page for this task') + } + } + + onSegmentVistaChange(){ + } checkUser(){ diff --git a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts index 7279ae2da..4995b5c90 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts +++ b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts @@ -24,6 +24,8 @@ import { ToastService } from 'src/app/services/toast.service'; import { ForwardPage } from 'src/app/modals/forward/forward.page'; import { async } from '@angular/core/testing'; import { PermissionService } from 'src/app/OtherService/permission.service'; +import { Location } from '@angular/common'; + @Component({ selector: 'app-pedido', @@ -61,6 +63,7 @@ export class PedidoPage implements OnInit { private animationController: AnimationController, private toastService: ToastService, public p: PermissionService, + private location: Location ) { this.loggeduser = authService.ValidatedUser; @@ -91,7 +94,7 @@ export class PedidoPage implements OnInit { toDateString(e) { return new Date(e).toDateString() } - + async LoadTaskDetail(serial: string) { this.processes.GetTask(this.serialnumber).subscribe(res => { @@ -167,7 +170,7 @@ export class PedidoPage implements OnInit { window.history.back(); } finally { if(error.status == 0) { - this.toastService.badRequest('Não é possível vizualizar este processo no modo offline') + this.toastService.badRequest('Não é possível visualizar este processo no modo offline') } else { this.toastService.badRequest('Processo não encontrado') } @@ -449,7 +452,7 @@ export class PedidoPage implements OnInit { if( window.innerWidth <= 800){ classs = 'modal modal-desktop' } else { - classs = 'modal modal-desktop' + classs = 'add-note-modal' } const modal = await this.modalController.create({ component: AddNotePage, @@ -491,8 +494,9 @@ export class PedidoPage implements OnInit { } goBack() { - if(this.task.Status == "Pending" && this.caller == 'gabinete-digital'){ - if (window.innerWidth <= 800) { + this.location.back(); + /* if(this.task.Status == "Pending" && this.caller == 'gabinete-digital'){ + if (window.innerWidth <= 700) { this.router.navigate(['/home/gabinete-digital/pendentes']); } else { @@ -509,7 +513,7 @@ export class PedidoPage implements OnInit { } } else { - if (window.innerWidth <= 800) { + if (window.innerWidth <= 700) { this.router.navigate(['/home/gabinete-digital/pedidos']); } else { @@ -524,7 +528,7 @@ export class PedidoPage implements OnInit { } this.router.navigate(['/home/gabinete-digital'], navigationExtras); } - } + } */ } } diff --git a/src/app/pages/gabinete-digital/pedidos/pedidos.page.html b/src/app/pages/gabinete-digital/pedidos/pedidos.page.html index ac0445df6..49af320f5 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedidos.page.html +++ b/src/app/pages/gabinete-digital/pedidos/pedidos.page.html @@ -116,7 +116,7 @@
-
+
-
+
{ let allActions = this.publicationEventFolderStorage.list.concat(this.publicationTravelFolderService.list) this.item = allActions.find((e)=> e.ProcessId == this.folderId); @@ -128,6 +128,8 @@ export class ViewPublicationsPage implements OnInit { }); + console.log(folderId); + this.publicationListStorage.add(folderId, this.publicationList) this.showLoader = false; diff --git a/src/app/services/attachments.service.ts b/src/app/services/attachments.service.ts index 1d0992d31..094688a27 100644 --- a/src/app/services/attachments.service.ts +++ b/src/app/services/attachments.service.ts @@ -14,7 +14,7 @@ export class AttachmentsService { loggeduser: User; headers: HttpHeaders; - constructor(private http: HttpClient, user: AuthService) { + constructor(private http: HttpClient, user: AuthService) { this.loggeduser = user.ValidatedUser; this.headers = new HttpHeaders(); this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey); @@ -26,9 +26,9 @@ export class AttachmentsService { params = params.set("SerialNumber", serialNumber); - let options = { - headers: this.headers, - params: params + let options = { + headers: this.headers, + params: params }; return this.http.get(`${geturl}`, options); } @@ -39,10 +39,10 @@ export class AttachmentsService { params = params.set("Source", source.toString()); /* params = params.set("SourceId", sourceid); */ - - let options = { - headers: this.headers, - params: params + + let options = { + headers: this.headers, + params: params }; return this.http.get(`${geturl}`, options); @@ -54,37 +54,35 @@ export class AttachmentsService { params = params.set("ParentId", eventId); /* params = params.set("SourceId", sourceid); */ - + let options = { - headers: this.headers, - params: params + headers: this.headers, + params: params }; return this.http.get(`${geturl}`, options); } - setEventAttachmentById(body: EventAttachment) { + setEventAttachmentById(body: any) { let geturl = environment.apiURL + 'Attachments/Create'; - - let options = { - headers: this.headers, + let options = { + headers: this.headers, } - return this.http.post(`${geturl}`, body, options); } - deleteEventAttachmentById(attachmentId) { - + deleteEventAttachmentById(attachmentId) { + let geturl = environment.apiURL + `Attachments/Delete?attachmentId=${attachmentId}`; let params = new HttpParams(); params = params.set("attachmentId", attachmentId); - let options = { - headers: this.headers, - params: params + let options = { + headers: this.headers, + params: params } return this.http.delete(`${geturl}`, options); diff --git a/src/app/services/jsonStore.service.spec.ts b/src/app/services/jsonStore.service.spec.ts new file mode 100644 index 000000000..ed030373c --- /dev/null +++ b/src/app/services/jsonStore.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { JsonStore } from './jsonStore.service'; + +describe('JsonStore', () => { + let service: JsonStore; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(JsonStore); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/jsonStore.service.ts b/src/app/services/jsonStore.service.ts new file mode 100644 index 000000000..59a25bd7b --- /dev/null +++ b/src/app/services/jsonStore.service.ts @@ -0,0 +1,130 @@ +/// +/// +import { Injectable } from "@angular/core"; + +@Injectable({ + providedIn: 'root' +}) + +export class JsonStore { + + createCollection(name, data) { + + var collectionName = name; + var addOptions = { + // Mark data as dirty (true = yes, false = no), default true. + markDirty: true + }; + + var JSONStoreCollections = {}; + JSONStoreCollections[collectionName] = {}; + JSONStoreCollections[collectionName].searchFields = { UserId: 'integer' }; + + WL.JSONStore.init(JSONStoreCollections) + + .then(function () { + WL.Logger.debug('Init done'); + console.log('Init done'); + return WL.JSONStore.get(collectionName).add(data, addOptions); + + }).fail(function (err) { + WL.Logger.error(err); + console.log(err) + }); + + } + + getCollection(collectionName) { + + var allOptions = { + // Returns a maximum of 10 documents, default no limit. + limit: 10, + // Skip 0 documents, default no offset. + offset: 0, + // Search fields to return, default: ['_id', 'json']. + filter: ['UserId', 'json'], + // How to sort the returned values, default no sort.}] + }; + + var JSONStoreCollections = {}; + JSONStoreCollections[collectionName] = {}; + JSONStoreCollections[collectionName].searchFields = { UserId: 'integer' }; + + WL.JSONStore.init(JSONStoreCollections) + .then(function () { + WL.Logger.debug('Find all colletion data'); + console.log('Find all colletion data'); + + + }).fail(function (err) { + WL.Logger.error(err); + console.log("JsonStore getColletion error ",err) + }); + + const data = WL.JSONStore.get(collectionName).findAll(allOptions).then((value) => { + console.log('Find all colletion data', value); + return JSON.parse(value); + }); + + + return data + + //return notificationData + } + + getColletionById(collectionName, value) { + + var query = { UserId: value }; + + var allOptions = { + // Returns a maximum of 10 documents, default no limit. + limit: 10, + // Skip 0 documents, default no offset. + offset: 0, + // Search fields to return, default: ['_id', 'json']. + filter: ['UserId', 'json'], + // How to sort the returned values, default no sort.}] + }; + + var JSONStoreCollections = {}; + JSONStoreCollections[collectionName] = {}; + JSONStoreCollections[collectionName].searchFields = { UserId: 'integer' }; + + WL.JSONStore.init(JSONStoreCollections) + .then(function () { + WL.Logger.debug('Find colletion data by id'); + console.log('Find colletion data by id'); + + return WL.JSONStore.get(collectionName).find(query, allOptions).then((value) => { + console.log('Find colletion data by id', value); + }); + }).fail(function (err) { + WL.Logger.error(err); + console.log(err) + }); + + } + + replaceDocument(collectionName: string, document: any) { + /* var document = { Example of how identify the document to replace + _id: 1, json: {name: 'chevy', age: 23} + }; */ + var options = {}; + + WL.JSONStore.get(collectionName).replace(document, options).then(function (numberOfDocsReplaced) { + console.log("JsonStore replace document sucess: ", numberOfDocsReplaced) + }).fail(function (error) { + console.log("JsonStore replace document error: ", error) + }); + } + + removeDocument(collectionName: any,query: any,) { + /* var query = { _id: 1 }; Exemple of query*/ + var options = { exact: true }; + WL.JSONStore.get(collectionName).remove(query, options).then(function (numberOfDocsRemoved) { + console.log("JsonStore remove document sucess: ", numberOfDocsRemoved) + }).fail(function (error) { + console.log("JsonStore remove document erro: ", error) + }); + } +} \ No newline at end of file diff --git a/src/app/services/notifications.service.ts b/src/app/services/notifications.service.ts index 6759832fa..a08e0a10f 100644 --- a/src/app/services/notifications.service.ts +++ b/src/app/services/notifications.service.ts @@ -12,6 +12,7 @@ import { ModalController, AlertController, AnimationController, Platform } from import { NavigationExtras,Router } from '@angular/router'; import { ToastService } from '../services/toast.service'; import { Optional } from '@angular/core'; +import { JsonStore } from './jsonStore.service'; @Injectable({ providedIn: 'root' @@ -20,6 +21,7 @@ export class NotificationsService { adding: "intervenient" | "CC" = "intervenient"; folderId: string; + DataArray: Array = []; constructor( private http: HttpClient, @@ -31,7 +33,8 @@ export class NotificationsService { private router: Router, private toastService: ToastService, private zone: NgZone, - private activeroute: ActivatedRoute) { } + private activeroute: ActivatedRoute, + private jsonstore: JsonStore) { } getTokenByUserIdAndId(user, userID) { const geturl = environment.apiURL + 'notifications/user/' + userID; @@ -40,6 +43,7 @@ export class NotificationsService { } getAndpostToken(username) { + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { console.log('Notifications not supported') } else { @@ -94,6 +98,62 @@ export class NotificationsService { } + getAndpostToken2() { + + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + console.log('Notifications not supported') + } else { + + const geturl = environment.apiURL + 'notifications/token'; + + window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( + (token) => { + console.log('Push Notification: Success ' + token); + + window['MFPPush'].initialize( + function (successResponse) { + console.log("Push notification Successfully Service intialized: " + successResponse); + }, + function (failureResponse) { + console.log("Push notification failure Service intialized: " + failureResponse); + } + ); + + window['MFPPush'].registerDevice(null, (successResponse) => { + console.log("Successfully registered: " + JSON.stringify(successResponse)); + console.log('token: ', successResponse.deviceId) + /* this.storageService.store(username, successResponse.deviceId); + this.storageService.get(username).then(value => { + console.log('STORAGE TOKEN', value) + this.storageService.get(AuthConnstants.USER).then(res => { + console.log('USERID', res); + const headers = { 'Authorization': 'Basic cGF1bG8ucGludG9AZ2FiaW5ldGVkaWdpdGFsLmxvY2FsOnRhYnRlc3RlQDAwNg==' }; + const body = { + UserId: res.UserId, + TokenId: successResponse.deviceId, + Status: 1, + Service: 1 + }; + this.http.post(`${geturl}`, body, { headers }).subscribe(data => { + console.log('TOKEN USER MIDLE', data); + }) + }); + + }); */ + }, + function (failureResponse) { + console.log("Successfully failue: " + JSON.stringify(failureResponse)); + } + ); + }, (error) => { + console.log('Push notification recived: failure ' + error.responseText); + console.log(JSON.stringify(error)); + } + ); + } + + } + async onReceviNotification() { window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( (token) => { @@ -109,6 +169,10 @@ export class NotificationsService { } ); var notificationReceived = (message) => { + //this.jsonstore.createCollection('Notifications',message); + this.DataArray.push(message) + this.storageService.store("Notifications",JSON.stringify(this.DataArray)) + console.log(message); var data = JSON.parse(message.payload); console.log(data.Service); @@ -139,7 +203,7 @@ export class NotificationsService { else if (data.Service === "gabinete-digital" && data.Object === "event-list") { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/event-list/approve-event',data.IdObject, 'gabinete-digital'])); }else if (data.Service === "gabinete-digital" && data.Object === "despachos") { - + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos',data.IdObject,'gabinete-digital'],{replaceUrl: true})); } else if (data.Service === "gabinete-digital" && data.Object === "parecer") { @@ -147,11 +211,11 @@ export class NotificationsService { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',data.IdObject,'gabinete-digital'])); } else if (data.Service === "gabinete-digital" && data.Object === "deferimento") { - + this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',data.IdObject,'gabinete-digital'])); } else if (data.Service === "gabinete-digital" && data.Object === "despachos-pr") { - + let navigationExtras: NavigationExtras = { queryParams: { "serialNumber": data.IdObject, diff --git a/src/app/shared/agenda/view-event/view-event.page.ts b/src/app/shared/agenda/view-event/view-event.page.ts index 0c5d8de3a..606d88046 100644 --- a/src/app/shared/agenda/view-event/view-event.page.ts +++ b/src/app/shared/agenda/view-event/view-event.page.ts @@ -108,7 +108,7 @@ export class ViewEventPage implements OnInit { }) if(error.status == 0) { - this.toastService.badRequest('não é possível vizualizar este event no modo offline') + this.toastService.badRequest('Não é possível visualizar este evento no modo offline') } else { this.toastService.badRequest('Este evento já não existe na sua agenda') } diff --git a/src/app/shared/gabinete-digital/diplomas/diplomas.page.html b/src/app/shared/gabinete-digital/diplomas/diplomas.page.html index 85c347038..076093166 100644 --- a/src/app/shared/gabinete-digital/diplomas/diplomas.page.html +++ b/src/app/shared/gabinete-digital/diplomas/diplomas.page.html @@ -19,14 +19,14 @@ - +
- @@ -54,14 +54,14 @@
- +
-
@@ -93,15 +93,15 @@
-
Lista vazia
- +
- + diff --git a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.html b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.html index 5c207bdc8..8890497cd 100644 --- a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.html +++ b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.html @@ -23,50 +23,79 @@ -
- +
+ - - -
- -
-
-

{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}

-

{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}

+
+ +
+ + +
+ +
+
+

{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}

+

{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}

+
+
+

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}

+

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}

+

{{event.workflowInstanceDataFields.Subject}}

+
+
-
-

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}

-

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}

-

{{event.workflowInstanceDataFields.Subject}}

+ +
+ +
+
+
+ Lista vazia
-
- -
-
-
-
-

{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}

-

{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}

-
-
-

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}

-

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}

-

{{event.workflowInstanceDataFields.Subject}}

-
-
-
-
-
+
+
+ +
+
+
+
+

{{event.workflowInstanceDataFields.StartDate | date: 'HH:mm'}}

+

{{event.workflowInstanceDataFields.EndDate | date: 'HH:mm'}}

+
+
+

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} - {{ event.workflowInstanceDataFields.EndDate | date: 'dd/M/yy'}} | {{event.workflowInstanceDataFields.Location}}

+

{{event.workflowInstanceDataFields.StartDate | date: 'd/M/yy' }} | {{event.workflowInstanceDataFields.Location}}

+

{{event.workflowInstanceDataFields.Subject}}

+
+
+
+
+
+ +
+ +
+
+
+ Lista vazia +
+
+
+
+
+ diff --git a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.scss b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.scss index 7f76e1e38..e55a1817c 100644 --- a/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.scss +++ b/src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.scss @@ -157,7 +157,7 @@ .exp-workflow{ float: left; margin: 0 !important; - + .label{ border-radius: 15px; background: #ffb703; @@ -220,4 +220,13 @@ font-size: 45px; float: right; margin-right: 10px; -} \ No newline at end of file +} + +.centered-div{ + width: 100px; + height: 100px; + position: absolute; + top: 50%; + left: 50%; + margin: -35px 0 0 -35px; +} diff --git a/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts b/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts index 3600f0743..39524b63d 100644 --- a/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts +++ b/src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.ts @@ -44,11 +44,11 @@ export class ExpedientesPrPage implements OnInit { this.LoadList(); this.router.events.forEach((event) => { - if (event instanceof NavigationStart && - event.url.startsWith('/home/gabinete-digital?expedientespr=true') || + if (event instanceof NavigationStart && + event.url.startsWith('/home/gabinete-digital?expedientespr=true') || event instanceof NavigationStart && event.url.startsWith('/home/gabinete-digital?expedientes-pr=true')) { - + if(window.location.pathname.split('/').length >= 4 && window.location.pathname.startsWith('/home/gabinete-digital')) { this.refreshing() } else { @@ -85,7 +85,7 @@ export class ExpedientesPrPage implements OnInit { "CreateDate": taskDate, "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, "Remetente": element.workflowInstanceDataFields.Remetente, - "DocumentsQty": 0, + "DocumentsQty": element.totalDocuments, "WorkflowName": element.workflowDisplayName, "activityInstanceName": element.activityInstanceName, "Status": element.workflowInstanceDataFields.Status, diff --git a/src/app/shared/gabinete-digital/expedients/expedients.page.ts b/src/app/shared/gabinete-digital/expedients/expedients.page.ts index 07217ddc7..1f2536597 100644 --- a/src/app/shared/gabinete-digital/expedients/expedients.page.ts +++ b/src/app/shared/gabinete-digital/expedients/expedients.page.ts @@ -46,7 +46,7 @@ export class ExpedientsPage implements OnInit { this.LoadList(); this.router.events.forEach((event) => { - if (event instanceof NavigationStart && + if (event instanceof NavigationStart && event.url.startsWith('/home/gabinete-digital?expedientes=true')) { if(window.location.pathname.split('/').length >= 4 && window.location.pathname.startsWith('/home/gabinete-digital')) { this.doRefresh() @@ -57,7 +57,7 @@ export class ExpedientsPage implements OnInit { }); } - + segmentChanged(){ this.LoadList(); } @@ -73,7 +73,7 @@ export class ExpedientsPage implements OnInit { this.processes.GetTasksList("Expediente", false).subscribe(result => { this.taskslist = []; this.skeletonLoader = false - + let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active"); res.forEach(element => { let date = new Date(element.taskStartDate); @@ -86,13 +86,13 @@ export class ExpedientsPage implements OnInit { "CreateDate": taskDate, "DocumentURL": element.workflowInstanceDataFields.ViewerRequest, "Remetente": element.workflowInstanceDataFields.Remetente, - "DocumentsQty": 0, + "DocumentsQty": element.totalDocuments, "WorkflowName": element.workflowDisplayName, "activityInstanceName": element.activityInstanceName, "Status": element.workflowInstanceDataFields.Status, } this.taskslist.push(task); - + }); console.log("Buffer store", this.taskslist) this.expedientegbstore.reset(this.taskslist); @@ -103,7 +103,7 @@ export class ExpedientsPage implements OnInit { setTimeout(()=>{ this.LoadList(); }, 1000) - + } goToExpediente(serialNumber:any){ diff --git a/src/app/shared/gabinete-digital/pedidos/pedidos.page.html b/src/app/shared/gabinete-digital/pedidos/pedidos.page.html index b697d4df2..0b427fe5b 100644 --- a/src/app/shared/gabinete-digital/pedidos/pedidos.page.html +++ b/src/app/shared/gabinete-digital/pedidos/pedidos.page.html @@ -109,7 +109,7 @@
-
+
-
+
-