From adc04e620e56e0f27ed5ce275098b88164c45d02 Mon Sep 17 00:00:00 2001 From: sbelondr Date: Thu, 13 Feb 2025 15:43:33 +0100 Subject: [PATCH] upgrade keycloak, clean arch and add https manage --- citelibre-participEZ/Dockerfile | 4 +- citelibre-participEZ/entrypoint.sh | 56 +- .../WEB-INF/conf/override/config.properties | 5 +- .../conf/override/plugins/matomo.properties | 0 .../plugins/mylutece-oauth2_context.xml | 3 +- .../conf/override/plugins/mylutece.properties | 2 +- .../conf/override/plugins/oauth2_context.xml | 7 +- .../override/plugins/search-solr.properties | 2 +- .../plugins/workflow-notifygru_context.xml | 63 +- .../skin/plugins/forms/step_view.html | 0 .../{webapp/WEB-INF => src}/sql/build.xml | 0 .../WEB-INF => src}/sql/create_db_forms.sql | 0 .../WEB-INF => src}/sql/init_core_forms.sql | 0 .../WEB-INF => src}/sql/init_db_forms.sql | 0 .../sql/init_db_generic_attributes_forms.sql | 0 .../plugins/forms/core/init_core_forms.sql | 0 .../plugins/forms/plugin/create_db_forms.sql | 0 .../plugins/forms/plugin/init_db_forms.sql | 0 .../upgrade/update_db_forms-1.0.0-1.0.1.sql | 0 .../upgrade/update_db_forms-1.0.1-1.0.2.sql | 0 .../upgrade/update_db_forms-1.0.2-1.0.3.sql | 0 .../upgrade/update_db_forms-1.0.3-2.0.0.sql | 0 .../upgrade/update_db_forms-2.0.0-2.0.1.sql | 0 .../upgrade/update_db_forms-2.0.1-2.1.0.sql | 0 .../upgrade/update_db_forms-2.1.0-2.2.0.sql | 0 .../upgrade/update_db_forms-2.2.0-2.2.1.sql | 0 .../upgrade/update_db_forms-2.2.1-2.2.2.sql | 0 .../upgrade/update_db_forms-2.2.2-2.3.0.sql | 0 .../upgrade/update_db_forms-2.3.0-2.3.1.sql | 0 .../upgrade/update_db_forms-2.3.1-2.4.1.sql | 0 .../init_db_generic_attributes_forms.sql | 0 ...b_generic_attributes_forms_1.0.1-1.0.2.sql | 0 ...b_generic_attributes_forms_1.0.2-1.0.3.sql | 0 ...b_generic_attributes_forms_1.3.2-1.3.3.sql | 0 ...pdate_db_genericattributes-1.3.3-2.0.0.sql | 0 ...pdate_db_genericattributes-2.0.0-2.2.1.sql | 0 ...pdate_db_genericattributes-2.0.0-2.3.0.sql | 0 ...pdate_db_genericattributes-2.2.0-2.3.2.sql | 0 ...pdate_db_genericattributes-2.3.2-2.4.1.sql | 0 .../sql/update_db_forms-1.0.0-1.0.1.sql | 0 .../sql/update_db_forms-1.0.1-1.0.2.sql | 0 .../sql/update_db_forms-1.0.2-1.0.3.sql | 0 .../sql/update_db_forms-1.0.3-2.0.0.sql | 0 .../sql/update_db_forms-2.0.0-2.0.1.sql | 0 .../sql/update_db_forms-2.0.1-2.1.0.sql | 0 .../sql/update_db_forms-2.1.0-2.2.0.sql | 0 .../sql/update_db_forms-2.2.0-2.2.1.sql | 0 .../sql/update_db_forms-2.2.1-2.2.2.sql | 0 .../sql/update_db_forms-2.2.2-2.3.0.sql | 0 .../sql/update_db_forms-2.3.0-2.3.1.sql | 0 .../sql/update_db_forms-2.3.1-2.4.1.sql | 0 ...b_generic_attributes_forms_1.0.1-1.0.2.sql | 0 ...b_generic_attributes_forms_1.0.2-1.0.3.sql | 0 ...b_generic_attributes_forms_1.3.2-1.3.3.sql | 0 ...pdate_db_genericattributes-1.3.3-2.0.0.sql | 0 ...pdate_db_genericattributes-2.0.0-2.2.1.sql | 0 ...pdate_db_genericattributes-2.0.0-2.3.0.sql | 0 ...pdate_db_genericattributes-2.2.0-2.3.2.sql | 0 ...pdate_db_genericattributes-2.3.2-2.4.1.sql | 0 .../webapp/WEB-INF/conf/db.properties | 20 - .../WEB-INF/conf/override/config.properties | 119 - .../plugins/address-autocomplete.properties | 3 - .../plugins/mylutece-oauth2.properties | 104 - .../plugins/mylutece-oauth2_context.xml | 27 - .../conf/override/plugins/mylutece.properties | 2 - .../conf/override/plugins/oauth2_context.xml | 38 - .../override/plugins/search-solr.properties | 7 - .../plugins/workflow-forms.properties | 8 - .../plugins/workflow-notifygru_context.xml | 34 - .../templates/skin/site/page_template4.html | 23 - .../webapp/images/logo-pack-dark.min.svg | 1 - .../webapp/js/admin/themes/city/themecity.js | 24 - .../webapp/js/util/actb/css/atcb-3d.css | 350 - .../webapp/js/util/actb/css/atcb-3d.min.css | 2 - .../js/util/actb/css/atcb-3d.min.css.map | 1 - .../webapp/js/util/actb/css/atcb.css | 325 - .../webapp/js/util/actb/css/atcb.min.css | 2 - .../webapp/js/util/actb/css/atcb.min.css.map | 1 - .../webapp/js/util/actb/js/atcb.js | 1366 - .../webapp/js/util/actb/js/atcb.min.js | 2 - .../webapp/js/util/actb/js/atcb.min.js.map | 1 - external.env | 8 +- keycloak/Dockerfile | 49 +- keycloak/entrypoint.sh | 27 + keycloak/themes/citelibre/login/login.ftl | 50 + .../citelibre/login/resources/css/styles.css | 104 + .../citelibre/login/resources/img/bg.svg | 1 + .../resources/img}/logo-pack-light.min.svg | 0 .../themes/citelibre/login/theme.properties | 2 + keycloak/themes/mytheme/account/account.ftl | 79 - .../mytheme/account/resources/css/account.css | 277 - .../resources/img/icon-sidebar-active.png | Bin 202 -> 0 bytes .../account/resources/img/keycloak-logo.png | Bin 5213 -> 0 bytes .../mytheme/account/resources/img/logo.png | Bin 4156 -> 0 bytes .../themes/mytheme/account/theme.properties | 14 - .../mytheme/admin/resources/css/styles.css | 501 - .../admin/resources/img/keyclok-logo.png | Bin 5268 -> 0 bytes .../admin/resources/img/keyclok-logo.svg | 194 - .../admin/resources/img/select-arrow.png | Bin 1154 -> 0 bytes .../themes/mytheme/admin/theme.properties | 5 - .../mytheme/common/resources/img/favicon.ico | Bin 1150 -> 0 bytes .../common/resources/lib/angular/errors.json | 1 - .../resources/lib/angular/treeview/LICENSE | 20 - .../lib/angular/treeview/angular.treeview.js | 95 - .../angular/treeview/angular.treeview.min.js | 9 - .../angular/treeview/css/angular.treeview.css | 99 - .../lib/angular/treeview/img/file.png | Bin 263 -> 0 bytes .../angular/treeview/img/folder-closed.png | Bin 281 -> 0 bytes .../lib/angular/treeview/img/folder.png | Bin 289 -> 0 bytes .../lib/angular/ui-bootstrap-tpls-0.11.0.js | 4116 -- .../common/resources/lib/angular/version.json | 1 - .../resources/lib/filesaver/FileSaver.js | 188 - .../resources/lib/fileupload/FileAPI.min.js | 72 - .../angular-file-upload-html5-shim.js | 25 - .../angular-file-upload-html5-shim.min.js | 2 - .../fileupload/angular-file-upload-shim.js | 215 - .../angular-file-upload-shim.min.js | 2 - .../lib/fileupload/angular-file-upload.js | 156 - .../lib/fileupload/angular-file-upload.min.js | 2 - .../common/resources/lib/pficon/pficon.css | 21 - .../common/resources/lib/pficon/pficon.woff | Bin 19456 -> 0 bytes .../common/resources/lib/pficon/pficon.woff2 | Bin 16296 -> 0 bytes .../common/resources/lib/ui-ace/ace.js | 18673 -------- .../common/resources/lib/ui-ace/min/ace.js | 11 - .../lib/ui-ace/min/mode-javascript.js | 1 - .../resources/lib/ui-ace/min/theme-github.js | 1 - .../lib/ui-ace/min/worker-javascript.js | 1 - .../resources/lib/ui-ace/mode-javascript.js | 1140 - .../resources/lib/ui-ace/theme-github.js | 103 - .../common/resources/lib/ui-ace/ui-ace.js | 328 - .../common/resources/lib/ui-ace/ui-ace.min.js | 7 - .../resources/lib/ui-ace/worker-javascript.js | 12530 ------ .../node_modules/angular-cookies/LICENSE.md | 21 - .../angular-cookies/angular-cookies.js | 253 - .../angular-cookies/angular-cookies.min.js | 9 - .../angular-cookies.min.js.map | 8 - .../node_modules/angular-cookies/bower.json | 10 - .../node_modules/angular-cookies/index.js | 2 - .../node_modules/angular-loader/LICENSE.md | 21 - .../angular-loader/angular-loader.js | 638 - .../angular-loader/angular-loader.min.js | 10 - .../angular-loader/angular-loader.min.js.map | 8 - .../node_modules/angular-loader/bower.json | 10 - .../node_modules/angular-resource/LICENSE.md | 21 - .../angular-resource/angular-resource.js | 911 - .../angular-resource/angular-resource.min.js | 15 - .../angular-resource.min.js.map | 8 - .../node_modules/angular-resource/bower.json | 10 - .../node_modules/angular-resource/index.js | 2 - .../node_modules/angular-route/LICENSE.md | 21 - .../angular-route/angular-route.js | 1266 - .../angular-route/angular-route.min.js | 17 - .../angular-route/angular-route.min.js.map | 8 - .../node_modules/angular-route/bower.json | 10 - .../node_modules/angular-route/index.js | 2 - .../node_modules/angular-sanitize/LICENSE.md | 21 - .../angular-sanitize/angular-sanitize.js | 913 - .../angular-sanitize/angular-sanitize.min.js | 18 - .../angular-sanitize.min.js.map | 8 - .../node_modules/angular-sanitize/bower.json | 10 - .../node_modules/angular-sanitize/index.js | 2 - .../angular-translate-loader-url.js | 73 - .../angular-translate-loader-url.min.js | 6 - .../angular-translate-loader-url/bower.json | 12 - .../node_modules/angular-translate/LICENSE | 21 - .../angular-translate-handler-log.js | 50 - .../angular-translate-handler-log.min.js | 6 - ...r-translate-interpolation-messageformat.js | 197 - ...anslate-interpolation-messageformat.min.js | 6 - .../angular-translate-loader-partial.js | 585 - .../angular-translate-loader-partial.min.js | 6 - .../angular-translate-loader-static-files.js | 112 - ...gular-translate-loader-static-files.min.js | 6 - .../angular-translate-loader-url.js | 73 - .../angular-translate-loader-url.min.js | 6 - .../angular-translate-storage-cookie.js | 121 - .../angular-translate-storage-cookie.min.js | 6 - .../angular-translate-storage-local.js | 123 - .../angular-translate-storage-local.min.js | 6 - .../dist/angular-translate.js | 3785 -- .../dist/angular-translate.min.js | 6 - .../node_modules/angular-treeview/LICENSE | 21 - .../angular-treeview/images/plus.png | Bin 14714 -> 0 bytes .../node_modules/angular-treeview/index.js | 7 - .../node_modules/angular-treeview/tree.js | 604 - .../node_modules/angular-ui-select2/LICENSE | 21 - .../angular-ui-select2/bower.json | 20 - .../angular-ui-select2/src/select2.js | 238 - .../resources/node_modules/angular/LICENSE.md | 21 - .../node_modules/angular/angular-csp.css | 25 - .../resources/node_modules/angular/angular.js | 36496 ---------------- .../node_modules/angular/angular.min.js | 350 - .../node_modules/angular/angular.min.js.gzip | Bin 59961 -> 0 bytes .../node_modules/angular/angular.min.js.map | 8 - .../resources/node_modules/angular/bower.json | 9 - .../resources/node_modules/angular/index.js | 2 - .../autofill-event/autofill-event.js | 132 - .../node_modules/autofill-event/bower.json | 18 - .../resources/node_modules/bootstrap/LICENSE | 21 - .../bootstrap/dist/css/bootstrap-theme.css | 587 - .../dist/css/bootstrap-theme.css.map | 1 - .../dist/css/bootstrap-theme.min.css | 6 - .../dist/css/bootstrap-theme.min.css.map | 1 - .../bootstrap/dist/css/bootstrap.css | 6834 --- .../bootstrap/dist/css/bootstrap.css.map | 1 - .../bootstrap/dist/css/bootstrap.min.css | 6 - .../bootstrap/dist/css/bootstrap.min.css.map | 1 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../bootstrap/dist/js/bootstrap.js | 2580 -- .../bootstrap/dist/js/bootstrap.min.js | 6 - .../node_modules/bootstrap/dist/js/npm.js | 13 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../node_modules/bootstrap/js/affix.js | 164 - .../node_modules/bootstrap/js/alert.js | 95 - .../node_modules/bootstrap/js/button.js | 125 - .../node_modules/bootstrap/js/carousel.js | 246 - .../node_modules/bootstrap/js/collapse.js | 212 - .../node_modules/bootstrap/js/dropdown.js | 165 - .../node_modules/bootstrap/js/modal.js | 358 - .../node_modules/bootstrap/js/popover.js | 123 - .../node_modules/bootstrap/js/scrollspy.js | 172 - .../node_modules/bootstrap/js/tab.js | 155 - .../node_modules/bootstrap/js/tooltip.js | 677 - .../node_modules/bootstrap/js/transition.js | 59 - .../resources/node_modules/filesaver/LICENSE | 20 - .../node_modules/filesaver/src/Filesaver.js | 213 - .../node_modules/filesaver/src/changename.js | 81 - .../font-awesome/css/font-awesome.css | 2337 - .../font-awesome/css/font-awesome.css.map | 7 - .../font-awesome/css/font-awesome.min.css | 4 - .../font-awesome/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../fonts/fontawesome-webfont.svg | 2671 -- .../fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../resources/node_modules/jquery/LICENSE.txt | 20 - .../resources/node_modules/jquery/bower.json | 14 - .../node_modules/jquery/dist/jquery.js | 10872 ----- .../node_modules/jquery/dist/jquery.min.js | 2 - .../node_modules/jquery/dist/jquery.min.map | 1 - .../node_modules/jquery/dist/jquery.slim.js | 8777 ---- .../jquery/dist/jquery.slim.min.js | 2 - .../jquery/dist/jquery.slim.min.map | 1 - .../jquery/external/sizzle/LICENSE.txt | 36 - .../jquery/external/sizzle/dist/sizzle.js | 2478 -- .../jquery/external/sizzle/dist/sizzle.min.js | 3 - .../external/sizzle/dist/sizzle.min.map | 1 - .../node_modules/ng-file-upload/LICENSE | 20 - .../ng-file-upload/dist/FileAPI.js | 4313 -- .../ng-file-upload/dist/FileAPI.min.js | 6 - .../ng-file-upload/dist/ng-file-upload-all.js | 2898 -- .../dist/ng-file-upload-all.min.js | 3 - .../dist/ng-file-upload-shim.js | 421 - .../dist/ng-file-upload-shim.min.js | 2 - .../ng-file-upload/dist/ng-file-upload.js | 2476 -- .../ng-file-upload/dist/ng-file-upload.min.js | 3 - .../node_modules/ng-file-upload/index.js | 2 - .../node_modules/patternfly/LICENSE.txt | 21 - .../dist/css/patternfly-additions.css | 9749 ----- .../dist/css/patternfly-additions.css.map | 1 - .../dist/css/patternfly-additions.min.css | 5 - .../dist/css/patternfly-additions.min.css.map | 1 - .../patternfly/dist/css/patternfly.css | 10650 ----- .../patternfly/dist/css/patternfly.css.map | 1 - .../patternfly/dist/css/patternfly.min.css | 8 - .../dist/css/patternfly.min.css.map | 1 - .../patternfly/dist/css/rcue-additions.css | 9880 ----- .../dist/css/rcue-additions.css.map | 1 - .../dist/css/rcue-additions.min.css | 5 - .../dist/css/rcue-additions.min.css.map | 1 - .../node_modules/patternfly/dist/css/rcue.css | 10652 ----- .../patternfly/dist/css/rcue.css.map | 1 - .../patternfly/dist/css/rcue.min.css | 8 - .../patternfly/dist/css/rcue.min.css.map | 1 - .../patternfly/dist/fonts/FontAwesome.otf | Bin 134808 -> 0 bytes .../dist/fonts/OpenSans-Bold-webfont.eot | Bin 100333 -> 0 bytes .../dist/fonts/OpenSans-Bold-webfont.svg | 19028 -------- .../dist/fonts/OpenSans-Bold-webfont.ttf | Bin 224592 -> 0 bytes .../dist/fonts/OpenSans-Bold-webfont.woff | Bin 98780 -> 0 bytes .../dist/fonts/OpenSans-Bold-webfont.woff2 | Bin 63732 -> 0 bytes .../fonts/OpenSans-BoldItalic-webfont.eot | Bin 96083 -> 0 bytes .../fonts/OpenSans-BoldItalic-webfont.svg | 19036 -------- .../fonts/OpenSans-BoldItalic-webfont.ttf | Bin 213292 -> 0 bytes .../fonts/OpenSans-BoldItalic-webfont.woff | Bin 93708 -> 0 bytes .../fonts/OpenSans-BoldItalic-webfont.woff2 | Bin 59512 -> 0 bytes .../dist/fonts/OpenSans-ExtraBold-webfont.eot | Bin 100097 -> 0 bytes .../dist/fonts/OpenSans-ExtraBold-webfont.svg | 19030 -------- .../dist/fonts/OpenSans-ExtraBold-webfont.ttf | Bin 222584 -> 0 bytes .../fonts/OpenSans-ExtraBold-webfont.woff | Bin 98492 -> 0 bytes .../fonts/OpenSans-ExtraBold-webfont.woff2 | Bin 63664 -> 0 bytes .../OpenSans-ExtraBoldItalic-webfont.eot | Bin 96371 -> 0 bytes .../OpenSans-ExtraBoldItalic-webfont.svg | 19036 -------- .../OpenSans-ExtraBoldItalic-webfont.ttf | Bin 213420 -> 0 bytes .../OpenSans-ExtraBoldItalic-webfont.woff | Bin 94240 -> 0 bytes .../OpenSans-ExtraBoldItalic-webfont.woff2 | Bin 59756 -> 0 bytes .../dist/fonts/OpenSans-Italic-webfont.eot | Bin 96859 -> 0 bytes .../dist/fonts/OpenSans-Italic-webfont.svg | 19043 -------- .../dist/fonts/OpenSans-Italic-webfont.ttf | Bin 212896 -> 0 bytes .../dist/fonts/OpenSans-Italic-webfont.woff | Bin 93880 -> 0 bytes .../dist/fonts/OpenSans-Italic-webfont.woff2 | Bin 59912 -> 0 bytes .../dist/fonts/OpenSans-Light-webfont.eot | Bin 99236 -> 0 bytes .../dist/fonts/OpenSans-Light-webfont.svg | 19026 -------- .../dist/fonts/OpenSans-Light-webfont.ttf | Bin 222412 -> 0 bytes .../dist/fonts/OpenSans-Light-webfont.woff | Bin 97924 -> 0 bytes .../dist/fonts/OpenSans-Light-webfont.woff2 | Bin 63180 -> 0 bytes .../fonts/OpenSans-LightItalic-webfont.eot | Bin 96135 -> 0 bytes .../fonts/OpenSans-LightItalic-webfont.svg | 19039 -------- .../fonts/OpenSans-LightItalic-webfont.ttf | Bin 213128 -> 0 bytes .../fonts/OpenSans-LightItalic-webfont.woff | Bin 93872 -> 0 bytes .../fonts/OpenSans-LightItalic-webfont.woff2 | Bin 59176 -> 0 bytes .../dist/fonts/OpenSans-Regular-webfont.eot | Bin 98682 -> 0 bytes .../dist/fonts/OpenSans-Regular-webfont.svg | 19030 -------- .../dist/fonts/OpenSans-Regular-webfont.ttf | Bin 217360 -> 0 bytes .../dist/fonts/OpenSans-Regular-webfont.woff | Bin 96116 -> 0 bytes .../dist/fonts/OpenSans-Regular-webfont.woff2 | Bin 61980 -> 0 bytes .../dist/fonts/OpenSans-Semibold-webfont.eot | Bin 100579 -> 0 bytes .../dist/fonts/OpenSans-Semibold-webfont.svg | 19030 -------- .../dist/fonts/OpenSans-Semibold-webfont.ttf | Bin 221328 -> 0 bytes .../dist/fonts/OpenSans-Semibold-webfont.woff | Bin 98464 -> 0 bytes .../fonts/OpenSans-Semibold-webfont.woff2 | Bin 63736 -> 0 bytes .../fonts/OpenSans-SemiboldItalic-webfont.eot | Bin 98093 -> 0 bytes .../fonts/OpenSans-SemiboldItalic-webfont.svg | 19043 -------- .../fonts/OpenSans-SemiboldItalic-webfont.ttf | Bin 212820 -> 0 bytes .../OpenSans-SemiboldItalic-webfont.woff | Bin 94548 -> 0 bytes .../OpenSans-SemiboldItalic-webfont.woff2 | Bin 60928 -> 0 bytes .../dist/fonts/PatternFlyIcons-webfont.eot | Bin 39104 -> 0 bytes .../dist/fonts/PatternFlyIcons-webfont.svg | 140 - .../dist/fonts/PatternFlyIcons-webfont.ttf | Bin 38876 -> 0 bytes .../dist/fonts/PatternFlyIcons-webfont.woff | Bin 38952 -> 0 bytes .../dist/fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../dist/fonts/fontawesome-webfont.svg | 2671 -- .../dist/fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../dist/fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../dist/fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../dist/img/Logo_Horizontal_Reversed.svg | 49 - .../dist/img/OpenShift-Logo-NoText.svg | 51 - .../dist/img/OpenShift-Logo-Text.svg | 95 - .../patternfly/dist/img/OpenShift-logo.svg | 69 - .../dist/img/RH_Atomic-Logo-NoText.svg | 53 - .../dist/img/RH_Atomic-Logo-Text.svg | 91 - .../patternfly/dist/img/RH_atomic.svg | 88 - .../img/apple-touch-icon-precomposed-114.png | Bin 6892 -> 0 bytes .../img/apple-touch-icon-precomposed-144.png | Bin 9898 -> 0 bytes .../img/apple-touch-icon-precomposed-152.png | Bin 10896 -> 0 bytes .../img/apple-touch-icon-precomposed-180.png | Bin 9799 -> 0 bytes .../img/apple-touch-icon-precomposed-57.png | Bin 2364 -> 0 bytes .../img/apple-touch-icon-precomposed-72.png | Bin 3377 -> 0 bytes .../img/apple-touch-icon-precomposed-76.png | Bin 3678 -> 0 bytes .../patternfly/dist/img/bg-login-2.png | Bin 3428 -> 0 bytes .../patternfly/dist/img/bg-login.jpg | Bin 47664 -> 0 bytes .../patternfly/dist/img/bg-login.png | Bin 5040 -> 0 bytes .../patternfly/dist/img/bg-modal-about-pf.png | Bin 10987 -> 0 bytes .../patternfly/dist/img/bg-navbar-pf-alt.svg | 9 - .../patternfly/dist/img/brand-alt.svg | 88 - .../patternfly/dist/img/brand.svg | 87 - .../patternfly/dist/img/dropbox-logo.svg | 15 - .../patternfly/dist/img/facebook-logo.svg | 12 - .../patternfly/dist/img/favicon.ico | Bin 6518 -> 0 bytes .../patternfly/dist/img/fedora-logo.png | Bin 1218 -> 0 bytes .../patternfly/dist/img/git-logo.svg | 21 - .../patternfly/dist/img/github-logo.svg | 17 - .../patternfly/dist/img/gmail.svg | 23 - .../patternfly/dist/img/google-calendar.svg | 26 - .../patternfly/dist/img/google-drive.svg | 17 - .../patternfly/dist/img/google-logo.svg | 19 - .../patternfly/dist/img/instagram-logo.png | Bin 2375 -> 0 bytes .../patternfly/dist/img/kubernetes-Logo.svg | 60 - .../patternfly/dist/img/kubernetes.svg | 8 - .../patternfly/dist/img/linkedin-logo.svg | 13 - .../patternfly/dist/img/logo-alt.svg | 18 - .../node_modules/patternfly/dist/img/logo.svg | 22 - .../patternfly/dist/img/open-id-logo.svg | 19 - .../patternfly/dist/img/rcue-full.svg | 221 - .../node_modules/patternfly/dist/img/rcue.svg | 92 - .../patternfly/dist/img/redhat_reverse.png | Bin 8442 -> 0 bytes .../patternfly/dist/img/skype-logo.svg | 23 - .../dist/img/spinner-inverse-lg.gif | Bin 2210 -> 0 bytes .../dist/img/spinner-inverse-sm.gif | Bin 1511 -> 0 bytes .../dist/img/spinner-inverse-xs.gif | Bin 942 -> 0 bytes .../patternfly/dist/img/spinner-inverse.gif | Bin 2149 -> 0 bytes .../patternfly/dist/img/spinner-lg.gif | Bin 2482 -> 0 bytes .../patternfly/dist/img/spinner-sm.gif | Bin 1567 -> 0 bytes .../patternfly/dist/img/spinner-xs.gif | Bin 748 -> 0 bytes .../patternfly/dist/img/spinner.gif | Bin 2142 -> 0 bytes .../dist/img/stack-exchange-logo.svg | 21 - .../patternfly/dist/img/twitter-logo.svg | 19 - .../dist/js/patternfly-functions-base.js | 7 - .../dist/js/patternfly-functions-charts.js | 13 - .../dist/js/patternfly-functions-colors.js | 8 - .../js/patternfly-functions-count-chars.js | 59 - .../js/patternfly-functions-data-tables.js | 149 - .../js/patternfly-functions-fixed-heights.js | 109 - .../dist/js/patternfly-functions-list.js | 79 - .../js/patternfly-functions-navigation.js | 113 - .../dist/js/patternfly-functions-popovers.js | 37 - .../dist/js/patternfly-functions-sidebar.js | 31 - .../dist/js/patternfly-functions-tree-grid.js | 82 - .../js/patternfly-functions-vertical-nav.js | 610 - .../dist/js/patternfly-functions.js | 1307 - .../dist/js/patternfly-functions.min.js | 1 - .../dist/js/patternfly-settings-base.d.ts | 9 - .../dist/js/patternfly-settings-base.js | 16 - .../dist/js/patternfly-settings-charts.d.ts | 92 - .../dist/js/patternfly-settings-charts.js | 449 - .../dist/js/patternfly-settings-colors.d.ts | 88 - .../dist/js/patternfly-settings-colors.js | 91 - .../dist/js/patternfly-settings.d.ts | 3 - .../patternfly/dist/js/patternfly-settings.js | 558 - .../dist/js/patternfly-settings.min.js | 1 - .../dist/js/patternfly.dataTables.pfColVis.js | 151 - .../dist/js/patternfly.dataTables.pfEmpty.js | 253 - .../js/patternfly.dataTables.pfEmpty.min.js | 1 - .../dist/js/patternfly.dataTables.pfFilter.js | 429 - .../js/patternfly.dataTables.pfFilter.min.js | 1 - .../js/patternfly.dataTables.pfPagination.js | 401 - .../patternfly.dataTables.pfPagination.min.js | 1 - .../dist/js/patternfly.dataTables.pfResize.js | 214 - .../js/patternfly.dataTables.pfResize.min.js | 1 - .../dist/js/patternfly.dataTables.pfSelect.js | 281 - .../js/patternfly.dataTables.pfSelect.min.js | 1 - .../patternfly/dist/js/patternfly.js | 1866 - .../patternfly/dist/js/patternfly.min.js | 2 - .../resources/node_modules/safename/LICENSE | 20 - .../node_modules/safename/bower.json | 27 - .../node_modules/safename/safename.js | 164 - .../resources/node_modules/select2/LICENSE | 18 - .../resources/node_modules/select2/bower.json | 8 - .../select2/select2-bootstrap.css | 87 - .../node_modules/select2/select2-spinner.gif | Bin 1849 -> 0 bytes .../node_modules/select2/select2.css | 704 - .../resources/node_modules/select2/select2.js | 3508 -- .../node_modules/select2/select2.png | Bin 613 -> 0 bytes .../node_modules/select2/select2_locale_ar.js | 19 - .../node_modules/select2/select2_locale_az.js | 20 - .../node_modules/select2/select2_locale_bg.js | 20 - .../node_modules/select2/select2_locale_ca.js | 19 - .../node_modules/select2/select2_locale_cs.js | 51 - .../node_modules/select2/select2_locale_da.js | 19 - .../node_modules/select2/select2_locale_de.js | 18 - .../node_modules/select2/select2_locale_el.js | 19 - .../select2/select2_locale_en.js.template | 20 - .../node_modules/select2/select2_locale_es.js | 17 - .../node_modules/select2/select2_locale_et.js | 19 - .../node_modules/select2/select2_locale_eu.js | 45 - .../node_modules/select2/select2_locale_fa.js | 21 - .../node_modules/select2/select2_locale_fi.js | 30 - .../node_modules/select2/select2_locale_fr.js | 18 - .../node_modules/select2/select2_locale_gl.js | 45 - .../node_modules/select2/select2_locale_he.js | 19 - .../node_modules/select2/select2_locale_hr.js | 24 - .../node_modules/select2/select2_locale_hu.js | 17 - .../node_modules/select2/select2_locale_id.js | 19 - .../node_modules/select2/select2_locale_is.js | 17 - .../node_modules/select2/select2_locale_it.js | 17 - .../node_modules/select2/select2_locale_ja.js | 17 - .../node_modules/select2/select2_locale_ka.js | 19 - .../node_modules/select2/select2_locale_ko.js | 19 - .../node_modules/select2/select2_locale_lt.js | 26 - .../node_modules/select2/select2_locale_lv.js | 19 - .../node_modules/select2/select2_locale_mk.js | 19 - .../node_modules/select2/select2_locale_ms.js | 19 - .../node_modules/select2/select2_locale_nl.js | 17 - .../node_modules/select2/select2_locale_no.js | 20 - .../node_modules/select2/select2_locale_pl.js | 25 - .../select2/select2_locale_pt-BR.js | 17 - .../select2/select2_locale_pt-PT.js | 17 - .../node_modules/select2/select2_locale_ro.js | 17 - .../node_modules/select2/select2_locale_rs.js | 19 - .../node_modules/select2/select2_locale_ru.js | 23 - .../node_modules/select2/select2_locale_sk.js | 50 - .../node_modules/select2/select2_locale_sv.js | 19 - .../node_modules/select2/select2_locale_th.js | 19 - .../node_modules/select2/select2_locale_tr.js | 19 - .../select2/select2_locale_ug-CN.js | 16 - .../node_modules/select2/select2_locale_uk.js | 25 - .../node_modules/select2/select2_locale_vi.js | 20 - .../select2/select2_locale_zh-CN.js | 16 - .../select2/select2_locale_zh-TW.js | 16 - .../node_modules/select2/select2x2.png | Bin 845 -> 0 bytes .../node_modules/text-security/LICENSE | 21 - .../text-security/text-security-disc.woff | Bin 944 -> 0 bytes .../text-security/text-security.css | 4 - .../web_modules/@patternfly/react-core.js | 48 - .../web_modules/@patternfly/react-core.js.map | 1 - .../react-core/dist/styles/app.css | 9690 ---- .../overpass-bold-italic.woff2 | Bin 37252 -> 0 bytes .../overpass-webfont/overpass-bold.woff2 | Bin 34752 -> 0 bytes .../overpass-extrabold-italic.woff2 | Bin 36660 -> 0 bytes .../overpass-webfont/overpass-extrabold.woff2 | Bin 33808 -> 0 bytes .../overpass-extralight-italic.woff2 | Bin 36800 -> 0 bytes .../overpass-extralight.woff2 | Bin 35056 -> 0 bytes .../overpass-heavy-italic.woff2 | Bin 37972 -> 0 bytes .../overpass-webfont/overpass-heavy.woff2 | Bin 35640 -> 0 bytes .../overpass-webfont/overpass-italic.woff2 | Bin 37368 -> 0 bytes .../overpass-light-italic.woff2 | Bin 36580 -> 0 bytes .../overpass-webfont/overpass-light.woff2 | Bin 34472 -> 0 bytes .../overpass-webfont/overpass-regular.woff2 | Bin 35128 -> 0 bytes .../overpass-semibold-italic.woff2 | Bin 36904 -> 0 bytes .../overpass-webfont/overpass-semibold.woff2 | Bin 33416 -> 0 bytes .../overpass-thin-italic.woff2 | Bin 35900 -> 0 bytes .../overpass-webfont/overpass-thin.woff2 | Bin 33696 -> 0 bytes .../dist/styles/assets/pficon/pficon.woff2 | Bin 16324 -> 0 bytes .../react-core/dist/styles/base.css | 1293 - .../web_modules/@patternfly/react-icons.js | 2 - .../@patternfly/react-icons.js.map | 1 - .../web_modules/@patternfly/react-styles.js | 2 - .../@patternfly/react-styles.js.map | 1 - .../web_modules/common/StyleSheet-3facb284.js | 2 - .../common/StyleSheet-3facb284.js.map | 1 - .../common/_commonjsHelpers-5f83f321.js | 2 - .../common/_commonjsHelpers-5f83f321.js.map | 1 - .../web_modules/common/index-ef25ca13.js | 2 - .../web_modules/common/index-ef25ca13.js.map | 1 - .../resources/web_modules/import-map.json | 10 - .../common/resources/web_modules/react-dom.js | 10 - .../resources/web_modules/react-dom.js.map | 1 - .../resources/web_modules/react-router-dom.js | 2 - .../web_modules/react-router-dom.js.map | 1 - .../common/resources/web_modules/react.js | 10 - .../common/resources/web_modules/react.js.map | 1 - .../themes/mytheme/email/theme.properties | 1 - keycloak/themes/mytheme/login/login.ftl | 94 - keycloak/themes/mytheme/login/register.ftl | 156 - .../mytheme/login/resources/css/login.css | 691 - .../mytheme/login/resources/css/tile.css | 207 - .../mytheme/login/resources/img/favicon.ico | Bin 1150 -> 0 bytes .../img/feedback-error-arrow-down.png | Bin 513 -> 0 bytes .../resources/img/feedback-error-sign.png | Bin 343 -> 0 bytes .../img/feedback-success-arrow-down.png | Bin 678 -> 0 bytes .../resources/img/feedback-success-sign.png | Bin 410 -> 0 bytes .../img/feedback-warning-arrow-down.png | Bin 513 -> 0 bytes .../resources/img/feedback-warning-sign.png | Bin 646 -> 0 bytes .../login/resources/img/keycloak-bg.png | Bin 81862 -> 0 bytes .../resources/img/keycloak-logo-text.png | Bin 19994 -> 0 bytes .../login/resources/img/keycloak-logo.png | Bin 5281 -> 0 bytes .../mytheme/login/resources/img/logo.png | Bin 16517 -> 0 bytes .../themes/mytheme/login/theme.properties | 143 - keycloak/themes/mytheme/welcome/index.ftl | 137 - .../welcome/resources/admin-console.png | Bin 712 -> 0 bytes .../mytheme/welcome/resources/alert.png | Bin 6189 -> 0 bytes .../themes/mytheme/welcome/resources/bg.png | Bin 72796 -> 0 bytes .../themes/mytheme/welcome/resources/bug.png | Bin 1397 -> 0 bytes .../mytheme/welcome/resources/css/welcome.css | 140 - .../welcome/resources/jboss_community.png | Bin 3204 -> 0 bytes .../welcome/resources/keycloak-project.png | Bin 1611 -> 0 bytes .../welcome/resources/keycloak_logo.png | Bin 7539 -> 0 bytes .../themes/mytheme/welcome/resources/logo.png | Bin 7539 -> 0 bytes .../themes/mytheme/welcome/resources/mail.png | Bin 1037 -> 0 bytes .../themes/mytheme/welcome/resources/user.png | Bin 2423 -> 0 bytes .../themes/mytheme/welcome/theme.properties | 7 - keycloak/wait | Bin keycloak/wait-db-available.sh | 9 - mysql/3-dump-keycloak.sql | 5248 ++- mysql/entrypoint.sh | 37 +- 568 files changed, 2877 insertions(+), 403959 deletions(-) rename citelibre-participEZ/{webapp => src/conf/dev}/WEB-INF/conf/override/plugins/matomo.properties (100%) rename citelibre-participEZ/{webapp => src/conf/dev}/WEB-INF/templates/skin/plugins/forms/step_view.html (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/build.xml (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/create_db_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/init_core_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/init_db_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/init_db_generic_attributes_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/core/init_core_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/plugin/create_db_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/plugin/init_db_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-1.0.0-1.0.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-1.0.1-1.0.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-1.0.2-1.0.3.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-1.0.3-2.0.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.0.0-2.0.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.0.1-2.1.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.1.0-2.2.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.2.0-2.2.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.2.1-2.2.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.2.2-2.3.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.3.0-2.3.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/forms/upgrade/update_db_forms-2.3.1-2.4.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/plugin/init_db_generic_attributes_forms.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.1-1.0.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.2-1.0.3.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.3.2-1.3.3.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_genericattributes-1.3.3-2.0.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.2.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.3.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.2.0-2.3.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.3.2-2.4.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-1.0.0-1.0.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-1.0.1-1.0.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-1.0.2-1.0.3.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-1.0.3-2.0.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.0.0-2.0.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.0.1-2.1.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.1.0-2.2.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.2.0-2.2.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.2.1-2.2.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.2.2-2.3.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.3.0-2.3.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_forms-2.3.1-2.4.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_generic_attributes_forms_1.0.1-1.0.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_generic_attributes_forms_1.0.2-1.0.3.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_generic_attributes_forms_1.3.2-1.3.3.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_genericattributes-1.3.3-2.0.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_genericattributes-2.0.0-2.2.1.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_genericattributes-2.0.0-2.3.0.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_genericattributes-2.2.0-2.3.2.sql (100%) rename citelibre-participEZ/{webapp/WEB-INF => src}/sql/update_db_genericattributes-2.3.2-2.4.1.sql (100%) delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/db.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/config.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/address-autocomplete.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/oauth2_context.xml delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/search-solr.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-forms.properties delete mode 100644 citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml delete mode 100644 citelibre-participEZ/webapp/WEB-INF/templates/skin/site/page_template4.html delete mode 100644 citelibre-participEZ/webapp/images/logo-pack-dark.min.svg delete mode 100644 citelibre-participEZ/webapp/js/admin/themes/city/themecity.js delete mode 100644 citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.css delete mode 100644 citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css delete mode 100644 citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css.map delete mode 100644 citelibre-participEZ/webapp/js/util/actb/css/atcb.css delete mode 100644 citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css delete mode 100644 citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css.map delete mode 100644 citelibre-participEZ/webapp/js/util/actb/js/atcb.js delete mode 100644 citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js delete mode 100644 citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js.map create mode 100755 keycloak/entrypoint.sh create mode 100644 keycloak/themes/citelibre/login/login.ftl create mode 100644 keycloak/themes/citelibre/login/resources/css/styles.css create mode 100644 keycloak/themes/citelibre/login/resources/img/bg.svg rename {citelibre-participEZ/webapp/images => keycloak/themes/citelibre/login/resources/img}/logo-pack-light.min.svg (100%) create mode 100644 keycloak/themes/citelibre/login/theme.properties delete mode 100644 keycloak/themes/mytheme/account/account.ftl delete mode 100644 keycloak/themes/mytheme/account/resources/css/account.css delete mode 100644 keycloak/themes/mytheme/account/resources/img/icon-sidebar-active.png delete mode 100644 keycloak/themes/mytheme/account/resources/img/keycloak-logo.png delete mode 100644 keycloak/themes/mytheme/account/resources/img/logo.png delete mode 100644 keycloak/themes/mytheme/account/theme.properties delete mode 100644 keycloak/themes/mytheme/admin/resources/css/styles.css delete mode 100644 keycloak/themes/mytheme/admin/resources/img/keyclok-logo.png delete mode 100644 keycloak/themes/mytheme/admin/resources/img/keyclok-logo.svg delete mode 100644 keycloak/themes/mytheme/admin/resources/img/select-arrow.png delete mode 100644 keycloak/themes/mytheme/admin/theme.properties delete mode 100644 keycloak/themes/mytheme/common/resources/img/favicon.ico delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/errors.json delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/css/angular.treeview.css delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/img/file.png delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/img/folder-closed.png delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/treeview/img/folder.png delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/ui-bootstrap-tpls-0.11.0.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/angular/version.json delete mode 100644 keycloak/themes/mytheme/common/resources/lib/filesaver/FileSaver.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/FileAPI.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/angular-file-upload-html5-shim.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/angular-file-upload-html5-shim.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/angular-file-upload-shim.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/angular-file-upload-shim.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/angular-file-upload.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/fileupload/angular-file-upload.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/pficon/pficon.css delete mode 100644 keycloak/themes/mytheme/common/resources/lib/pficon/pficon.woff delete mode 100644 keycloak/themes/mytheme/common/resources/lib/pficon/pficon.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/ace.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/min/ace.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/min/mode-javascript.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/min/theme-github.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/min/worker-javascript.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/mode-javascript.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/theme-github.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/ui-ace.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/ui-ace.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/lib/ui-ace/worker-javascript.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-cookies/LICENSE.md delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-cookies/angular-cookies.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-cookies/angular-cookies.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-cookies/angular-cookies.min.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-cookies/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-cookies/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-loader/LICENSE.md delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-loader/angular-loader.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-loader/angular-loader.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-loader/angular-loader.min.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-loader/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-resource/LICENSE.md delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-resource/angular-resource.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-resource/angular-resource.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-resource/angular-resource.min.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-resource/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-resource/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-route/LICENSE.md delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-route/angular-route.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-route/angular-route.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-route/angular-route.min.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-route/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-route/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-sanitize/LICENSE.md delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-sanitize/angular-sanitize.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-sanitize/angular-sanitize.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-sanitize/angular-sanitize.min.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-sanitize/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-sanitize/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate-loader-url/angular-translate-loader-url.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate-loader-url/angular-translate-loader-url.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate-loader-url/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-handler-log/angular-translate-handler-log.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-handler-log/angular-translate-handler-log.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-loader-partial/angular-translate-loader-partial.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-loader-partial/angular-translate-loader-partial.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-loader-static-files/angular-translate-loader-static-files.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-loader-url/angular-translate-loader-url.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-loader-url/angular-translate-loader-url.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-storage-cookie/angular-translate-storage-cookie.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-storage-local/angular-translate-storage-local.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate-storage-local/angular-translate-storage-local.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-translate/dist/angular-translate.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-treeview/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-treeview/images/plus.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-treeview/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-treeview/tree.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-ui-select2/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-ui-select2/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular-ui-select2/src/select2.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/LICENSE.md delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/angular-csp.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/angular.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/angular.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/angular.min.js.gzip delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/angular.min.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/angular/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/autofill-event/autofill-event.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/autofill-event/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap-theme.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap-theme.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap-theme.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap-theme.min.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/css/bootstrap.min.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/js/bootstrap.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/js/bootstrap.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/dist/js/npm.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/fonts/glyphicons-halflings-regular.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/fonts/glyphicons-halflings-regular.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/fonts/glyphicons-halflings-regular.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/fonts/glyphicons-halflings-regular.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/affix.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/alert.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/button.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/carousel.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/collapse.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/dropdown.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/modal.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/popover.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/scrollspy.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/tab.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/tooltip.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/bootstrap/js/transition.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/filesaver/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/filesaver/src/Filesaver.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/filesaver/src/changename.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/css/font-awesome.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/css/font-awesome.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/css/font-awesome.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/fonts/FontAwesome.otf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/fonts/fontawesome-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/fonts/fontawesome-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/fonts/fontawesome-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/fonts/fontawesome-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/font-awesome/fonts/fontawesome-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/LICENSE.txt delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/dist/jquery.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/dist/jquery.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/dist/jquery.min.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/dist/jquery.slim.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/dist/jquery.slim.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/dist/jquery.slim.min.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/external/sizzle/LICENSE.txt delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/external/sizzle/dist/sizzle.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/external/sizzle/dist/sizzle.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/jquery/external/sizzle/dist/sizzle.min.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/FileAPI.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/FileAPI.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/ng-file-upload-all.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/ng-file-upload-all.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/ng-file-upload-shim.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/ng-file-upload-shim.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/ng-file-upload.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/dist/ng-file-upload.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/ng-file-upload/index.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/LICENSE.txt delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly-additions.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly-additions.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly-additions.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly-additions.min.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/patternfly.min.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue-additions.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue-additions.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue-additions.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue-additions.min.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue.min.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/css/rcue.min.css.map delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/FontAwesome.otf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-BoldItalic-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-BoldItalic-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-BoldItalic-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-BoldItalic-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-BoldItalic-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBold-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBold-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBold-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBold-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBold-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBoldItalic-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBoldItalic-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBoldItalic-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Italic-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Italic-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Italic-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Italic-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Italic-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-LightItalic-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-LightItalic-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-LightItalic-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-LightItalic-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-LightItalic-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-SemiboldItalic-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-SemiboldItalic-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-SemiboldItalic-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-SemiboldItalic-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/OpenSans-SemiboldItalic-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/fontawesome-webfont.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/fontawesome-webfont.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/fontawesome-webfont.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/fontawesome-webfont.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/fontawesome-webfont.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/glyphicons-halflings-regular.eot delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/glyphicons-halflings-regular.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/glyphicons-halflings-regular.ttf delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/glyphicons-halflings-regular.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/Logo_Horizontal_Reversed.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/OpenShift-Logo-NoText.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/OpenShift-Logo-Text.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/OpenShift-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/RH_Atomic-Logo-NoText.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/RH_Atomic-Logo-Text.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/RH_atomic.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-114.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-144.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-152.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-180.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-57.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-72.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/apple-touch-icon-precomposed-76.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/bg-login-2.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/bg-login.jpg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/bg-login.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/bg-modal-about-pf.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/bg-navbar-pf-alt.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/brand-alt.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/brand.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/dropbox-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/facebook-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/favicon.ico delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/fedora-logo.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/git-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/github-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/gmail.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/google-calendar.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/google-drive.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/google-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/instagram-logo.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/kubernetes-Logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/kubernetes.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/linkedin-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/logo-alt.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/open-id-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/rcue-full.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/rcue.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/redhat_reverse.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/skype-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-inverse-lg.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-inverse-sm.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-inverse-xs.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-inverse.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-lg.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-sm.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner-xs.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/spinner.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/stack-exchange-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/img/twitter-logo.svg delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-base.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-charts.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-colors.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-count-chars.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-data-tables.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-fixed-heights.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-list.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-navigation.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-popovers.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-sidebar.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-tree-grid.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions-vertical-nav.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-functions.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings-base.d.ts delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings-base.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings-charts.d.ts delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings-charts.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings-colors.d.ts delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings-colors.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings.d.ts delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly-settings.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfColVis.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfEmpty.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfEmpty.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfFilter.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfFilter.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfPagination.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfPagination.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfResize.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfResize.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfSelect.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.dataTables.pfSelect.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/patternfly/dist/js/patternfly.min.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/safename/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/safename/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/safename/safename.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/bower.json delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2-bootstrap.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2-spinner.gif delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2.css delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ar.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_az.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_bg.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ca.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_cs.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_da.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_de.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_el.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_en.js.template delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_es.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_et.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_eu.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_fa.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_fi.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_fr.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_gl.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_he.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_hr.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_hu.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_id.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_is.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_it.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ja.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ka.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ko.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_lt.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_lv.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_mk.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ms.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_nl.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_no.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_pl.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_pt-BR.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_pt-PT.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ro.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_rs.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ru.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_sk.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_sv.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_th.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_tr.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_ug-CN.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_uk.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_vi.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_zh-CN.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2_locale_zh-TW.js delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/select2/select2x2.png delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/text-security/LICENSE delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/text-security/text-security-disc.woff delete mode 100644 keycloak/themes/mytheme/common/resources/node_modules/text-security/text-security.css delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/app.css delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-bold-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-bold.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-extrabold-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-extrabold.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-extralight-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-extralight.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-heavy-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-heavy.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-light-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-light.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-regular.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-semibold-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-semibold.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-thin-italic.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/fonts/overpass-webfont/overpass-thin.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/assets/pficon/pficon.woff2 delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-core/dist/styles/base.css delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-icons.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-icons.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-styles.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/@patternfly/react-styles.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/common/StyleSheet-3facb284.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/common/StyleSheet-3facb284.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/common/_commonjsHelpers-5f83f321.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/common/_commonjsHelpers-5f83f321.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/common/index-ef25ca13.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/common/index-ef25ca13.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/import-map.json delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/react-dom.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/react-dom.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/react-router-dom.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/react-router-dom.js.map delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/react.js delete mode 100644 keycloak/themes/mytheme/common/resources/web_modules/react.js.map delete mode 100644 keycloak/themes/mytheme/email/theme.properties delete mode 100644 keycloak/themes/mytheme/login/login.ftl delete mode 100644 keycloak/themes/mytheme/login/register.ftl delete mode 100644 keycloak/themes/mytheme/login/resources/css/login.css delete mode 100644 keycloak/themes/mytheme/login/resources/css/tile.css delete mode 100644 keycloak/themes/mytheme/login/resources/img/favicon.ico delete mode 100644 keycloak/themes/mytheme/login/resources/img/feedback-error-arrow-down.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/feedback-error-sign.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/feedback-success-arrow-down.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/feedback-success-sign.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/feedback-warning-arrow-down.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/feedback-warning-sign.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/keycloak-bg.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/keycloak-logo-text.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/keycloak-logo.png delete mode 100644 keycloak/themes/mytheme/login/resources/img/logo.png delete mode 100644 keycloak/themes/mytheme/login/theme.properties delete mode 100644 keycloak/themes/mytheme/welcome/index.ftl delete mode 100644 keycloak/themes/mytheme/welcome/resources/admin-console.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/alert.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/bg.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/bug.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/css/welcome.css delete mode 100644 keycloak/themes/mytheme/welcome/resources/jboss_community.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/keycloak-project.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/keycloak_logo.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/logo.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/mail.png delete mode 100644 keycloak/themes/mytheme/welcome/resources/user.png delete mode 100644 keycloak/themes/mytheme/welcome/theme.properties mode change 100644 => 100755 keycloak/wait delete mode 100644 keycloak/wait-db-available.sh diff --git a/citelibre-participEZ/Dockerfile b/citelibre-participEZ/Dockerfile index 0bdefed..0f52843 100644 --- a/citelibre-participEZ/Dockerfile +++ b/citelibre-participEZ/Dockerfile @@ -29,8 +29,8 @@ COPY haproxy.cfg /etc/haproxy/haproxy.cfg RUN cd webapps && mkdir ${NAME_APP} && mv ${site}.war ${NAME_APP}/${NAME_APP}.war && cd ${NAME_APP} && jar xvf ${NAME_APP}.war && rm ${NAME_APP}.war # Add webapps folder -COPY webapp/WEB-INF webapps/${NAME_APP}/WEB-INF/ -COPY webapp/js webapps/${NAME_APP}/js/ +# COPY webapp/WEB-INF webapps/${NAME_APP}/WEB-INF/ +# COPY webapp/js webapps/${NAME_APP}/js/ COPY entrypoint.sh /entrypoint.sh diff --git a/citelibre-participEZ/entrypoint.sh b/citelibre-participEZ/entrypoint.sh index 8dcaf3e..2107741 100644 --- a/citelibre-participEZ/entrypoint.sh +++ b/citelibre-participEZ/entrypoint.sh @@ -25,37 +25,57 @@ mail_user="${LUTECE_MAIL_USER:-}" mail_password="${LUTECE_MAIL_PWD:-}" # available languages to switch to in BO only -echo "Configure languages" +echo "** Configure languages" default_fo_lang="${LUTECE_DEFAULT_LANG:-en}" available_lang="${LUTECE_AVAILABLE_LANG:-en,fr}" sed -i "s/lutece.i18n.defaultLocale=.*/lutece.i18n.defaultLocale=$default_fo_lang/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/lutece.properties sed -i "s/lutece.i18n.availableLocales=.*/lutece.i18n.availableLocales=$available_lang/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/lutece.properties -echo "Config database" +echo "** Config database" sed -i "s/portal.user=.*/portal\.user=$db_user/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/db.properties -sed -i "s/portal.password=.*/portal\.password=$db_password/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/db.properties +sed -i "s/portal.password=.*/portal\.password=$db_password/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/db.properties sed -i "s/\/lutece/\/$db_name/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/db.properties -sed -i "s/db:3306/$db_host:$db_port/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/db.properties +sed -i "s/db:3306/$db_host:$db_port/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/db.properties +echo "** Edit host" +protocol="${PROTOCOL:-http}" +url_citelibre=${protocol}":\/\/"${URL_CITELIBRE} +url_citelibre_https="https:\/\/"${URL_CITELIBRE} +url_citelibre_html=${PROTOCOL}"%3A%2F%2F"${URL_CITELIBRE} +url_kibana=${URL_KIBANA} +url_matomo_http=${URL_MATOMO_HTTP} +url_matomo_https=${URL_MATOMO_HTTPS} +url_keycloak=${protocol}":\/\/"${URL_KEYCLOAK} -# SMTP -# Pb with new version => delete this file -rm ${tomcat}/webapps/${site_folder}/WEB-INF/conf/override/config.properties +# working on the override conf.properties file +conf_dir=${tomcat}/webapps/${site_folder}/WEB-INF/conf +conf_override_dir=${tomcat}/webapps/${site_folder}/WEB-INF/conf/override +conf_override_plugins_dir=${tomcat}/webapps/${site_folder}/WEB-INF/conf/override/plugins +template_dir=${tomcat}/webapps/${site_folder}/WEB-INF/templates/admin/system -echo "Config SMTP" -sed -i "s/mail.server=.*/mail.server=$mail_host/g" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/config.properties -sed -i "s/mail.server=.*/mail.server=$mail_host/g" ${tomcat}/webapps/${site_folder}/WEB-INF/templates/admin/system/config_properties.html +sed -i "s/http:\/\/localhost:8080/$url_citelibre/g" ${conf_override_dir}/config.properties +sed -i "s/https:\/\/localhost:8080/$url_citelibre_https/g" ${conf_override_dir}/config.properties +sed -i "s/http%3A%2F%2Flocalhost/$url_citelibre_html/g" ${conf_override_plugins_dir}/mylutece.properties +sed -i "s/http:\/\/localhost:8080/$url_citelibre/g" ${conf_override_plugins_dir}/workflow-notifygru_context.xml +sed -i "s/http%3A%2F%2Flocalhost/$url_citelibre_html/g" ${conf_override_plugins_dir}/oauth2_context.xml +sed -i "s/matomo.default.server.http.url=.*/matomo.default.server.http.url=$url_matomo_http/g" ${conf_override_plugins_dir}/matomo.properties +sed -i "s/matomo.default.server.https.url=.*/matomo.default.server.http.url=$url_matomo_https/g" ${conf_override_plugins_dir}/matomo.properties -sed -i "s/mail.server.port=.*/mail.server.port=$mail_port/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/config.properties -sed -i "s/mail.server.port=.*/mail.server.port=$mail_port/" ${tomcat}/webapps/${site_folder}/WEB-INF/templates/admin/system/config_properties.html +sed -i "s/http:\/\/localhost:8081/$url_keycloak/g" ${conf_override_plugins_dir}/mylutece-oauth2_context.xml +sed -i "s/http:\/\/localhost:8081/$url_keycloak/g" ${conf_override_plugins_dir}/mylutece.properties +sed -i "s/http:\/\/localhost:8081/$url_keycloak/g" ${conf_override_plugins_dir}/oauth2_context.xml -sed -i "s/mail.username=.*/mail.username=$mail_user/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/config.properties -sed -i "s/mail.username=.*/mail.username=$mail_user/" ${tomcat}/webapps/${site_folder}/WEB-INF/templates/admin/system/config_properties.html +echo "** Config SMTP" +sed -i "s/mail.server=.*/mail.server=$mail_host/g" ${conf_override_dir}/config.properties +sed -i "s/mail.server=.*/mail.server=$mail_host/g" ${template_dir}/config_properties.html +sed -i "s/mail.server.port=.*/mail.server.port=$mail_port/" ${conf_dir}/config.properties +sed -i "s/mail.server.port=.*/mail.server.port=$mail_port/" ${template_dir}/config_properties.html +sed -i "s/mail.username=.*/mail.username=$mail_user/" ${conf_dir}/config.properties +sed -i "s/mail.username=.*/mail.username=$mail_user/" ${template_dir}/config_properties.html +sed -i "s/mail.password=.*/mail.password=$mail_password/" ${conf_dir}/config.properties +sed -i "s/mail.password=.*/mail.password=$mail_password/" ${template_dir}/config_properties.html -sed -i "s/mail.password=.*/mail.password=$mail_password/" ${tomcat}/webapps/${site_folder}/WEB-INF/conf/config.properties -sed -i "s/mail.password=.*/mail.password=$mail_password/" ${tomcat}/webapps/${site_folder}/WEB-INF/templates/admin/system/config_properties.html - -echo "Launch tomcat server" +echo "** Launch tomcat server" if [[ "$LUTECE_INTERNAL_KEYCLOAK" == "true" ]] then echo "Enable haproxy on 8080" diff --git a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/config.properties b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/config.properties index ddd137d..2f48305 100644 --- a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/config.properties +++ b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/config.properties @@ -14,7 +14,7 @@ init.webapp.prod.url=http://localhost:8080/participEZ ################################################################################ # Portal Lutece identifier -lutece.name=CiteLibre participEZ +lutece.name=CiteLibre Particip'EZ # Override this default with a specific site code lutece.code=http://localhost:8080/participEZ @@ -44,7 +44,6 @@ lutece.statistical.include.enable=true lutece.statistical.include.template.head=/skin/site/statistical_include_head.html lutece.statistical.include.template=/skin/site/statistical_include.html lutece.statistical.site.id=0 -# Statistical Server lutece.statistical.server.url= ################################################################################ @@ -56,7 +55,7 @@ plugin.param.language=fr.fr # Mail sending parameters (ip address of the mail server) # username and password if authentication needed - empty otherwise) mail.server=mailpit -mail.server.port=1025 +mail.server.port=25 mail.list.separator=; diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/matomo.properties b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/matomo.properties similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/matomo.properties rename to citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/matomo.properties diff --git a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml index faaea0c..97414c5 100644 --- a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml +++ b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml @@ -12,7 +12,7 @@ - + @@ -24,4 +24,3 @@ - diff --git a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece.properties b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece.properties index f7128a8..99f7357 100644 --- a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece.properties +++ b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/mylutece.properties @@ -1,2 +1,2 @@ mylutece.url.login.page=servlet/plugins/oauth2/callback?data_client=authData -mylutece.url.doLogout=http://localhost:8081/realms/paris/protocol/openid-connect/logout?redirect_uri=http%3A%2F%2Flocalhost:8080%2FparticipEZ%2F +mylutece.url.doLogout=http://localhost:8081/realms/citelibre_frontoffice/protocol/openid-connect/logout?redirect_uri=http%3A%2F%2Flocalhost:8080%2FparticipEZ%2F diff --git a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/oauth2_context.xml b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/oauth2_context.xml index 842b188..49566f7 100644 --- a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/oauth2_context.xml +++ b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/oauth2_context.xml @@ -12,9 +12,9 @@ - - - + + + @@ -35,4 +35,3 @@ - diff --git a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/search-solr.properties b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/search-solr.properties index 66e48f4..4c04ea4 100644 --- a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/search-solr.properties +++ b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/search-solr.properties @@ -1,7 +1,7 @@ # server address "decider" is the name of webapp solr.server.address=http://solr:8983/solr/citelibre/ # daemon -solr.daemon.indexer.incremental=false +solr.daemon.indexer.incremental=true daemon.solrindexer.interval=86400 daemon.solrindexer.onstartup=1 solr.indexer.page.enable=false \ No newline at end of file diff --git a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml index fd61a45..9aa940a 100644 --- a/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml +++ b/citelibre-participEZ/src/conf/dev/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml @@ -12,76 +12,23 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> - - - - - - - - - - - - - - - - - - - - - - - - http://localhost:8080/participEZ/rest/grusupply/notification - - - http://localhost:8080/participEZ/rest/api/token - - - tobecompleted - - + http://localhost:8080/participEZ/rest/grusupply/notification + + ref="workflow-notifygru.lib-notifygru.restTransport" /> + - + diff --git a/citelibre-participEZ/webapp/WEB-INF/templates/skin/plugins/forms/step_view.html b/citelibre-participEZ/src/conf/dev/WEB-INF/templates/skin/plugins/forms/step_view.html similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/templates/skin/plugins/forms/step_view.html rename to citelibre-participEZ/src/conf/dev/WEB-INF/templates/skin/plugins/forms/step_view.html diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/build.xml b/citelibre-participEZ/src/sql/build.xml similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/build.xml rename to citelibre-participEZ/src/sql/build.xml diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/create_db_forms.sql b/citelibre-participEZ/src/sql/create_db_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/create_db_forms.sql rename to citelibre-participEZ/src/sql/create_db_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/init_core_forms.sql b/citelibre-participEZ/src/sql/init_core_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/init_core_forms.sql rename to citelibre-participEZ/src/sql/init_core_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/init_db_forms.sql b/citelibre-participEZ/src/sql/init_db_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/init_db_forms.sql rename to citelibre-participEZ/src/sql/init_db_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/init_db_generic_attributes_forms.sql b/citelibre-participEZ/src/sql/init_db_generic_attributes_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/init_db_generic_attributes_forms.sql rename to citelibre-participEZ/src/sql/init_db_generic_attributes_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/core/init_core_forms.sql b/citelibre-participEZ/src/sql/plugins/forms/core/init_core_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/core/init_core_forms.sql rename to citelibre-participEZ/src/sql/plugins/forms/core/init_core_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/plugin/create_db_forms.sql b/citelibre-participEZ/src/sql/plugins/forms/plugin/create_db_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/plugin/create_db_forms.sql rename to citelibre-participEZ/src/sql/plugins/forms/plugin/create_db_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/plugin/init_db_forms.sql b/citelibre-participEZ/src/sql/plugins/forms/plugin/init_db_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/plugin/init_db_forms.sql rename to citelibre-participEZ/src/sql/plugins/forms/plugin/init_db_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.0-1.0.1.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.0-1.0.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.0-1.0.1.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.0-1.0.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.1-1.0.2.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.1-1.0.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.1-1.0.2.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.1-1.0.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.2-1.0.3.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.2-1.0.3.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.2-1.0.3.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.2-1.0.3.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.3-2.0.0.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.3-2.0.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-1.0.3-2.0.0.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-1.0.3-2.0.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.0.0-2.0.1.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.0.0-2.0.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.0.0-2.0.1.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.0.0-2.0.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.0.1-2.1.0.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.0.1-2.1.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.0.1-2.1.0.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.0.1-2.1.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.1.0-2.2.0.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.1.0-2.2.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.1.0-2.2.0.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.1.0-2.2.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.2.0-2.2.1.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.2.0-2.2.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.2.0-2.2.1.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.2.0-2.2.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.2.1-2.2.2.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.2.1-2.2.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.2.1-2.2.2.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.2.1-2.2.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.2.2-2.3.0.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.2.2-2.3.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.2.2-2.3.0.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.2.2-2.3.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.3.0-2.3.1.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.3.0-2.3.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.3.0-2.3.1.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.3.0-2.3.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.3.1-2.4.1.sql b/citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.3.1-2.4.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/forms/upgrade/update_db_forms-2.3.1-2.4.1.sql rename to citelibre-participEZ/src/sql/plugins/forms/upgrade/update_db_forms-2.3.1-2.4.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/plugin/init_db_generic_attributes_forms.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/plugin/init_db_generic_attributes_forms.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/plugin/init_db_generic_attributes_forms.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/plugin/init_db_generic_attributes_forms.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.1-1.0.2.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.1-1.0.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.1-1.0.2.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.1-1.0.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.2-1.0.3.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.2-1.0.3.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.2-1.0.3.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.0.2-1.0.3.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.3.2-1.3.3.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.3.2-1.3.3.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.3.2-1.3.3.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_generic_attributes_forms_1.3.2-1.3.3.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-1.3.3-2.0.0.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-1.3.3-2.0.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-1.3.3-2.0.0.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-1.3.3-2.0.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.2.1.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.2.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.2.1.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.2.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.3.0.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.3.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.3.0.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.0.0-2.3.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.2.0-2.3.2.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.2.0-2.3.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.2.0-2.3.2.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.2.0-2.3.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.3.2-2.4.1.sql b/citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.3.2-2.4.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.3.2-2.4.1.sql rename to citelibre-participEZ/src/sql/plugins/genericattributes/upgrade/update_db_genericattributes-2.3.2-2.4.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.0-1.0.1.sql b/citelibre-participEZ/src/sql/update_db_forms-1.0.0-1.0.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.0-1.0.1.sql rename to citelibre-participEZ/src/sql/update_db_forms-1.0.0-1.0.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.1-1.0.2.sql b/citelibre-participEZ/src/sql/update_db_forms-1.0.1-1.0.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.1-1.0.2.sql rename to citelibre-participEZ/src/sql/update_db_forms-1.0.1-1.0.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.2-1.0.3.sql b/citelibre-participEZ/src/sql/update_db_forms-1.0.2-1.0.3.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.2-1.0.3.sql rename to citelibre-participEZ/src/sql/update_db_forms-1.0.2-1.0.3.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.3-2.0.0.sql b/citelibre-participEZ/src/sql/update_db_forms-1.0.3-2.0.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-1.0.3-2.0.0.sql rename to citelibre-participEZ/src/sql/update_db_forms-1.0.3-2.0.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.0.0-2.0.1.sql b/citelibre-participEZ/src/sql/update_db_forms-2.0.0-2.0.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.0.0-2.0.1.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.0.0-2.0.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.0.1-2.1.0.sql b/citelibre-participEZ/src/sql/update_db_forms-2.0.1-2.1.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.0.1-2.1.0.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.0.1-2.1.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.1.0-2.2.0.sql b/citelibre-participEZ/src/sql/update_db_forms-2.1.0-2.2.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.1.0-2.2.0.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.1.0-2.2.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.2.0-2.2.1.sql b/citelibre-participEZ/src/sql/update_db_forms-2.2.0-2.2.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.2.0-2.2.1.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.2.0-2.2.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.2.1-2.2.2.sql b/citelibre-participEZ/src/sql/update_db_forms-2.2.1-2.2.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.2.1-2.2.2.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.2.1-2.2.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.2.2-2.3.0.sql b/citelibre-participEZ/src/sql/update_db_forms-2.2.2-2.3.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.2.2-2.3.0.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.2.2-2.3.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.3.0-2.3.1.sql b/citelibre-participEZ/src/sql/update_db_forms-2.3.0-2.3.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.3.0-2.3.1.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.3.0-2.3.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.3.1-2.4.1.sql b/citelibre-participEZ/src/sql/update_db_forms-2.3.1-2.4.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_forms-2.3.1-2.4.1.sql rename to citelibre-participEZ/src/sql/update_db_forms-2.3.1-2.4.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_generic_attributes_forms_1.0.1-1.0.2.sql b/citelibre-participEZ/src/sql/update_db_generic_attributes_forms_1.0.1-1.0.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_generic_attributes_forms_1.0.1-1.0.2.sql rename to citelibre-participEZ/src/sql/update_db_generic_attributes_forms_1.0.1-1.0.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_generic_attributes_forms_1.0.2-1.0.3.sql b/citelibre-participEZ/src/sql/update_db_generic_attributes_forms_1.0.2-1.0.3.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_generic_attributes_forms_1.0.2-1.0.3.sql rename to citelibre-participEZ/src/sql/update_db_generic_attributes_forms_1.0.2-1.0.3.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_generic_attributes_forms_1.3.2-1.3.3.sql b/citelibre-participEZ/src/sql/update_db_generic_attributes_forms_1.3.2-1.3.3.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_generic_attributes_forms_1.3.2-1.3.3.sql rename to citelibre-participEZ/src/sql/update_db_generic_attributes_forms_1.3.2-1.3.3.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-1.3.3-2.0.0.sql b/citelibre-participEZ/src/sql/update_db_genericattributes-1.3.3-2.0.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-1.3.3-2.0.0.sql rename to citelibre-participEZ/src/sql/update_db_genericattributes-1.3.3-2.0.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.0.0-2.2.1.sql b/citelibre-participEZ/src/sql/update_db_genericattributes-2.0.0-2.2.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.0.0-2.2.1.sql rename to citelibre-participEZ/src/sql/update_db_genericattributes-2.0.0-2.2.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.0.0-2.3.0.sql b/citelibre-participEZ/src/sql/update_db_genericattributes-2.0.0-2.3.0.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.0.0-2.3.0.sql rename to citelibre-participEZ/src/sql/update_db_genericattributes-2.0.0-2.3.0.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.2.0-2.3.2.sql b/citelibre-participEZ/src/sql/update_db_genericattributes-2.2.0-2.3.2.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.2.0-2.3.2.sql rename to citelibre-participEZ/src/sql/update_db_genericattributes-2.2.0-2.3.2.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.3.2-2.4.1.sql b/citelibre-participEZ/src/sql/update_db_genericattributes-2.3.2-2.4.1.sql similarity index 100% rename from citelibre-participEZ/webapp/WEB-INF/sql/update_db_genericattributes-2.3.2-2.4.1.sql rename to citelibre-participEZ/src/sql/update_db_genericattributes-2.3.2-2.4.1.sql diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/db.properties b/citelibre-participEZ/webapp/WEB-INF/conf/db.properties deleted file mode 100644 index fd5ede1..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/db.properties +++ /dev/null @@ -1,20 +0,0 @@ -################################################################################ -# Configuration file for Lutece to parameterize connections pools to databases - - -################################################################################ -# Drivers - - -#portal.poolservice is not a mandatory property -portal.poolservice=fr.paris.lutece.util.pool.service.LuteceConnectionService -portal.driver=com.mysql.cj.jdbc.Driver -portal.url=jdbc:mysql://db:3306/lutece?autoReconnect=true&useUnicode=yes&characterEncoding=utf8 -portal.user=root -portal.password=root -portal.initconns=2 -portal.maxconns=50 -portal.logintimeout=2 -portal.checkvalidconnectionsql=SELECT 1 -# .dialect is an optional property to specify the dialect for JPA provider. -#portal.dialect=org.hibernate.dialect.MySQLDialect diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/config.properties b/citelibre-participEZ/webapp/WEB-INF/conf/override/config.properties deleted file mode 100644 index 2f48305..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/config.properties +++ /dev/null @@ -1,119 +0,0 @@ -############################################################################### -# Configuration file for Lutece (to update while deploying) - -################################################################################ -# AutoInit for first deployment -# If this is true, starting the webapp set it to false and rewrite this file -# to fill in some defaults from WEB-INF/templates/admin/system/config_properties.html -autoInit=false - -################################################################################ -# Default values for first deployment -init.webapp.prod.url=http://localhost:8080/participEZ - -################################################################################ -# Portal Lutece identifier - -lutece.name=CiteLibre Particip'EZ - -# Override this default with a specific site code -lutece.code=http://localhost:8080/participEZ - -# The front prod url (ex : http//mysite.org/lutece) -lutece.prod.url=http://localhost:8080/participEZ - -# The admin prod url (ex : http://mysite-admin.org/lutece) -lutece.admin.prod.url=http://localhost:8080/participEZ/jsp/admin/AdminLogin.jsp - -# To force The Base URL use the following entry -#lutece.base.url=http://localhost:8080/participEZ - -################################################################################ -# Portal Lutece HTTPS -lutece.https.support=0 -lutece.https.url=https://localhost:8080/participEZ - -################################################################################ -# Multi instance handling sharing the same database -# Don't change the default value if running a single instance -lutece.webapp.instance=default - -################################################################################ -# Statistical optional inclusion -lutece.statistical.include.enable=true -lutece.statistical.include.template.head=/skin/site/statistical_include_head.html -lutece.statistical.include.template=/skin/site/statistical_include.html -lutece.statistical.site.id=0 -lutece.statistical.server.url= - -################################################################################ -# Portal and Plugins parameters -plugin.param.source.id=id_source -plugin.param.language=fr.fr - -################################################################################ -# Mail sending parameters (ip address of the mail server) -# username and password if authentication needed - empty otherwise) -mail.server=mailpit -mail.server.port=25 - - -mail.list.separator=; -mail.type.plain=text/plain;charset= -mail.type.html=text/html;charset= -mail.type.calendar=text/calendar;charset= -mail.type.calendar.separator=; -mail.type.calendar.create=method=CREATE -mail.type.calendar.cancel=method=CANCEL - -#default value if the no-reply email not found in datastore -mail.noreply.email=noreply@nowhere.org - -mail.charset=utf-8 - -# mail daemon flow control : wait 'waitime' between each group of 'count' mail. -mail.daemon.waittime=1 -mail.daemon.count=1000 -# mail daemon : how long to wait for in case of error before retrying (see java.util.concurrent.TimeUnit) -mail.daemon.retryonerror.waittime=60 -mail.daemon.retryonerror.waittime.unit=SECONDS - -################################################################################ -# Indexation (total->true or incremental->false) -indexer.param.total=false - -################################################################################ -# Properties files -file.lutece.properties=/usr/local/tomcat/webapps/participEZ/WEB-INF/conf/lutece.properties -file.webmaster.properties=/usr/local/tomcat/webapps/participEZ/WEB-INF/conf/webmaster.properties -file.jtidy.properties=/usr/local/tomcat/webapps/participEZ/WEB-INF/conf/jtidy.properties -file.dir.plugins=/usr/local/tomcat/webapps/participEZ/WEB-INF/conf/plugins - -################################################################################ -# Error page management -# Values of error.page.debug : -# true Displays the exception -# false Displays the message : error.page.message which is in "util_messages.properties" -# -error.page.debug=false - - -# In production set to number of CPU/core + 1 . ( 0 = disabled ) -service.xmlTransformer.transformerPoolSize=2 - -# Time in seconds that must elapse before checking whether there is a newer version of a template file -# Default 5, in production 86400 (1 day) -service.freemarker.templateUpdateDelay=5 - -################################################################################ -# Debug -# In production mode all values should be set to false -lutece.debug.tracePortletXml=false - -################################################################################ -# Site validation -file.validation.flag=/usr/local/tomcat/webapps/participEZ/WEB-INF/exploit/validation.flag -file.amin.validation.flag=/usr/local/tomcat/webapps/participEZ/WEB-INF/exploit/admin_validation.flag - -# Duration in minutes of the validity of generated url for file download (if 0, the links will be always valid) -lutece.file.download.validity=0 diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/address-autocomplete.properties b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/address-autocomplete.properties deleted file mode 100644 index 40f7b46..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/address-autocomplete.properties +++ /dev/null @@ -1,3 +0,0 @@ -# Web Service SuggestPOI URL - Choose one of the following -# French government API - France Only - Use your own if needed -address-autocomplete.suggestPOI.ws.url = https://api-adresse.data.gouv.fr/search/ diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2.properties b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2.properties deleted file mode 100644 index 2034931..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2.properties +++ /dev/null @@ -1,104 +0,0 @@ -#set true if you want the user will be redirect on oauth2 server to know if the user is already logged with the param no prompt=true -mylutece-oauth2.usePromptNone=true -mylutece-oauth2.usePromptNoneWhiteListingHeaders=X-Requested-With,X-Requested-Withs -mylutece-oauth2.usePromptNoneWhiteListingHeaders.X-Requested-With=XMLHttpRequest -mylutece-oauth2.usePromptNoneWhiteListingHeaders.X-Requested-Withs=XMLHttpRequest -#white listing of urls separated by commas (not required) which disable "use prompt none" flow -mylutece-oauth2.usePromptNoneWhiteListingUrls=jsp/site/plugins/asynchronousupload/GetMainUploadJs.jsp -#mylutece-oauth2.usePromptNoneWhiteUrls=jsp/site/plugins/xxx/getUserInformations.jsp,jsp/site/plugins/xxx/getCarInformations.jsp?id_car=1 -#set true to validate the refresh token for knowing if the user is logged -mylutece-oauth2.validateRefreshToken=true -################################################################################ - - -mylutece-oauth2.service.name=Lutece Oauth2 Authentication Service -mylutece-oauth2.error.page=jsp/site/Portal.jsp?page=oauth2 - - -################################################################################ - -mylutece-oauth2.attributeKeyUsername=email - -#attributes list separated by coma (not mandatory) which -mylutece-oauth2.userMappingAttributes=user.name.given,user.name.family,user.validated,user.business-info.online.email,user.status,user.home-info.online.email,user.home-info.postal.postalcode,user.bdate - - -#mapping with Lutece attributes -mylutece-oauth2.attribute.user.bdate=ids.birthdate -mylutece-oauth2.attribute.user.gender= -mylutece-oauth2.attribute.user.employer= -mylutece-oauth2.attribute.user.department= -mylutece-oauth2.attribute.user.jobtitle= -mylutece-oauth2.attribute.user.name.prefix= -mylutece-oauth2.attribute.user.name.given=given_name -mylutece-oauth2.attribute.user.name.family=family_name -mylutece-oauth2.attribute.user.name.middle= -mylutece-oauth2.attribute.user.name.suffix= -mylutece-oauth2.attribute.user.name.nickName= -mylutece-oauth2.attribute.user.name.civility= -mylutece-oauth2.attribute.user.home-info.postal.name= -mylutece-oauth2.attribute.user.home-info.postal.street= -mylutece-oauth2.attribute.user.home-info.postal.street.number= -mylutece-oauth2.attribute.user.home-info.postal.street.suffix= -mylutece-oauth2.attribute.user.home-info.postal.street.name= -mylutece-oauth2.attribute.user.home-info.postal.street.type= -mylutece-oauth2.attribute.user.home-info.postal.street.urbandistrict= -mylutece-oauth2.attribute.user.home-info.postal.city= -mylutece-oauth2.attribute.user.home-info.postal.stateprov= -mylutece-oauth2.attribute.user.home-info.postal.postalcode=ids.address_postal_code -mylutece-oauth2.attribute.user.home-info.postal.country= -mylutece-oauth2.attribute.user.home-info.postal.organization= -mylutece-oauth2.attribute.user.home-info.telecom.telephone.intcode= -mylutece-oauth2.attribute.user.home-info.telecom.telephone.loccode= -mylutece-oauth2.attribute.user.home-info.telecom.telephone.number= -mylutece-oauth2.attribute.user.home-info.telecom.telephone.ext= -mylutece-oauth2.attribute.user.home-info.telecom.telephone.comment= -mylutece-oauth2.attribute.user.home-info.telecom.fax.intcode= -mylutece-oauth2.attribute.user.home-info.telecom.fax.loccode= -mylutece-oauth2.attribute.user.home-info.telecom.fax.number= -mylutece-oauth2.attribute.user.home-info.telecom.fax.ext= -mylutece-oauth2.attribute.user.home-info.telecom.fax.comment= -mylutece-oauth2.attribute.user.home-info.telecom.mobile.intcode= -mylutece-oauth2.attribute.user.home-info.telecom.mobile.loccode= -mylutece-oauth2.attribute.user.home-info.telecom.mobile.number= -mylutece-oauth2.attribute.user.home-info.telecom.mobile.ext= -mylutece-oauth2.attribute.user.home-info.telecom.mobile.comment= -mylutece-oauth2.attribute.user.home-info.telecom.pager.intcode= -mylutece-oauth2.attribute.user.home-info.telecom.pager.loccode= -mylutece-oauth2.attribute.user.home-info.telecom.pager.number= -mylutece-oauth2.attribute.user.home-info.telecom.pager.ext= -mylutece-oauth2.attribute.user.home-info.telecom.pager.comment= -mylutece-oauth2.attribute.user.home-info.online.email=email -mylutece-oauth2.attribute.user.home-info.online.uri= -mylutece-oauth2.attribute.user.business-info.postal.name= -mylutece-oauth2.attribute.user.business-info.postal.street= -mylutece-oauth2.attribute.user.business-info.postal.city= -mylutece-oauth2.attribute.user.business-info.postal.stateprov= -mylutece-oauth2.attribute.user.business-info.postal.postalcode= -mylutece-oauth2.attribute.user.business-info.postal.country= -mylutece-oauth2.attribute.user.business-info.postal.organization= -mylutece-oauth2.attribute.user.business-info.telecom.telephone.intcode= -mylutece-oauth2.attribute.user.business-info.telecom.telephone.loccode= -mylutece-oauth2.attribute.user.business-info.telecom.telephone.number= -mylutece-oauth2.attribute.user.business-info.telecom.telephone.ext= -mylutece-oauth2.attribute.user.business-info.telecom.telephone.comment= -mylutece-oauth2.attribute.user.business-info.telecom.fax.intcode= -mylutece-oauth2.attribute.user.business-info.telecom.fax.loccode= -mylutece-oauth2.attribute.user.business-info.telecom.fax.number= -mylutece-oauth2.attribute.user.business-info.telecom.fax.ext= -mylutece-oauth2.attribute.user.business-info.telecom.fax.comment= -mylutece-oauth2.attribute.user.business-info.telecom.mobile.intcode= -mylutece-oauth2.attribute.user.business-info.telecom.mobile.loccode= -mylutece-oauth2.attribute.user.business-info.telecom.mobile.number= -mylutece-oauth2.attribute.user.business-info.telecom.mobile.ext= -mylutece-oauth2.attribute.user.business-info.telecom.mobile.comment= -mylutece-oauth2.attribute.user.business-info.telecom.pager.intcode= -mylutece-oauth2.attribute.user.business-info.telecom.pager.loccode= -mylutece-oauth2.attribute.user.business-info.telecom.pager.number= -mylutece-oauth2.attribute.user.business-info.telecom.pager.ext= -mylutece-oauth2.attribute.user.business-info.telecom.pager.comment= -mylutece-oauth2.attribute.user.business-info.online.email=email -mylutece-oauth2.attribute.user.business-info.online.uri= -mylutece-oauth2.attribute.user.validated=validatedAccount -mylutece-oauth2.attribute.user.status=inetUserStatus - diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml deleted file mode 100644 index faaea0c..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece-oauth2_context.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - openid - - - - - - diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece.properties b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece.properties deleted file mode 100644 index f7128a8..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/mylutece.properties +++ /dev/null @@ -1,2 +0,0 @@ -mylutece.url.login.page=servlet/plugins/oauth2/callback?data_client=authData -mylutece.url.doLogout=http://localhost:8081/realms/paris/protocol/openid-connect/logout?redirect_uri=http%3A%2F%2Flocalhost:8080%2FparticipEZ%2F diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/oauth2_context.xml b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/oauth2_context.xml deleted file mode 100644 index 842b188..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/oauth2_context.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/search-solr.properties b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/search-solr.properties deleted file mode 100644 index 4c04ea4..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/search-solr.properties +++ /dev/null @@ -1,7 +0,0 @@ -# server address "decider" is the name of webapp -solr.server.address=http://solr:8983/solr/citelibre/ -# daemon -solr.daemon.indexer.incremental=true -daemon.solrindexer.interval=86400 -daemon.solrindexer.onstartup=1 -solr.indexer.page.enable=false \ No newline at end of file diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-forms.properties b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-forms.properties deleted file mode 100644 index c0b5597..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-forms.properties +++ /dev/null @@ -1,8 +0,0 @@ -# Properties file for module-workflow-forms -# This property is used to set the URL to access to the page to edit the record -# Set false if the base url must be fetched in the request -# Set true if the base url must be fetched in the config.properties (first lutece.base.url, then lutece.prod.url) -workflow-forms.base_url.use_property=true - -# URL return when the edition is complete or when there is an error -workflow-forms.url_return=http://localhost:8080/participEZ diff --git a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml b/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml deleted file mode 100644 index 9aa940a..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/conf/override/plugins/workflow-notifygru_context.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - http://localhost:8080/participEZ/rest/grusupply/notification - - - - - - - - - - - diff --git a/citelibre-participEZ/webapp/WEB-INF/templates/skin/site/page_template4.html b/citelibre-participEZ/webapp/WEB-INF/templates/skin/site/page_template4.html deleted file mode 100644 index e6ffb87..0000000 --- a/citelibre-participEZ/webapp/WEB-INF/templates/skin/site/page_template4.html +++ /dev/null @@ -1,23 +0,0 @@ -<@cContainer hasHeader=false> - <@cRow> - <@cCol> - ${page_content_col1} - - - <@cRow> - <@cCol cols='6'> - ${page_content_col2} - - <@cCol cols='6'> - ${page_content_col3} - - - - - \ No newline at end of file diff --git a/citelibre-participEZ/webapp/images/logo-pack-dark.min.svg b/citelibre-participEZ/webapp/images/logo-pack-dark.min.svg deleted file mode 100644 index 617f867..0000000 --- a/citelibre-participEZ/webapp/images/logo-pack-dark.min.svg +++ /dev/null @@ -1 +0,0 @@ -CITE \ No newline at end of file diff --git a/citelibre-participEZ/webapp/js/admin/themes/city/themecity.js b/citelibre-participEZ/webapp/js/admin/themes/city/themecity.js deleted file mode 100644 index f19af27..0000000 --- a/citelibre-participEZ/webapp/js/admin/themes/city/themecity.js +++ /dev/null @@ -1,24 +0,0 @@ -// Add shepherd -$('head').prepend( '' ); -$(function(){ - $('.navbar .dropdown .dropdown-menu .dropdown-item.is-white').remove(); - - if( $('#appointment_dashboard_card_dashboard_card_body').length > 0 ){ - const tour = initTour( ); - initStep( tour, 'Accueil', 'Cliquez ici pour accéder à la page des rendez-vous', {element: "#appointment_dashboard_card_dashboard_card_body .fa-calendar", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return this.next(); }, text: 'After'}, {action() {return window.location.replace("jsp/admin/plugins/appointment/ManageAppointments.jsp?view=viewCalendarManageAppointment&id_form=5");}, text: 'Next'}],'home',true); - initStep( tour, 'Planning', 'Cliquez ici afin de vous diriger vers la page de planning', {element: "#appointment_dashboard_card_dashboard_card_body .fa-clock", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return window.location.replace("jsp/admin/plugins/appointment/modules/desk/ManageAppointmentDesks.jsp?plugin_name=appointment-desk&id_form=5&context=slot"); }, text: 'After'}, {action() {return this.next(); }, text: 'Next'}]); - initStep( tour, 'Config', 'En cliquant ici, vous accederez directement à la page de config', {element: "#appointment_dashboard_card_dashboard_card_body .fa-wrench", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return window.location.replace("jsp/admin/plugins/appointment/ManageAppointmentForms.jsp?view=modifyAppointmentForm&id_form=5"); }, text: 'After'}, {action() {return this.next(); }, text: 'Next'}]); - initStep( tour, 'Messages', 'Cliquez ici pour accéder aux messages', {element: "#appointment_dashboard_card_dashboard_card_body .fa-comment", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return window.location.replace("jsp/admin/plugins/appointment/ManageAppointmentForms.jsp?view=modifyAppointmentFormMessages&id_form=5"); }, text: 'After'}, {action() {return window.location.replace("jsp/admin/AdminMenu.jsp");}, text: 'Next'}]); - tour.start(); - } - - if( $('#manage-calendar').length > 0 ){ - const tour = initTour( ); - initStep( tour, 'Aujourd\'hui', 'Ici, vous êtes à la date d\'aujourd\'hui', {element: ".fc-today-button", on: "bottom"}, [{action() {return window.location.replace("jsp/admin/AdminMenu.jsp");}, text: 'Home'}, {action() {return this.back(); }, text: 'Back'}, {action() {return this.next(); }, text: 'Next'}]); - initStep( tour, 'Calendrier', 'Ici, vous pouvez consulter le calendrier quand vous voulez', {element: ".fc-datePicker-button", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return this.next(); }, text: 'Next'}]); - initStep( tour, 'Semaine précedente', 'En cliquant ici, vous vous dirigerez vers la semaine précedente', {element: ".fc-prev-button", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return this.next(); }, text: 'Next'}]); - initStep( tour, 'Semaine suivante', 'En cliquant ici, vous vous dirigerez vers la semaine suivante', {element: ".fc-next-button", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return this.next();}, text: 'Next'}]); - initStep( tour, 'jeu. 07/07 de 14h00 à 15h00', 'Vous etes sur un créneau horaire', {element: ".fc-content", on: "bottom"}, [{action() {return this.back(); }, text: 'Back'}, {action() {return window.location.replace("jsp/admin/AdminMenu.jsp");}, text: 'Next'}]); - tour.start(); - } -}); diff --git a/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.css b/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.css deleted file mode 100644 index 0be4c42..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.css +++ /dev/null @@ -1,350 +0,0 @@ -/** - * ++++++++++++++++++++++ - * Add-to-Calendar Button - * ++++++++++++++++++++++ - * - * Style: 3D - * - * Version: 1.11.4 - * Creator: Jens Kuerschner (https://jenskuerschner.de) - * Project: https://github.com/jekuer/add-to-calendar-button - * License: MIT with “Commons Clause†License Condition v1.0 - * - */ - -.atcb { - display: none; -} - -/** - * The triggering button - */ - -.atcb-button-wrapper { - display: inline-block; - padding: 5px; - position: relative; -} - -.atcb-button { - align-items: center; - background-color: rgb(245 245 245); - border: 1px solid rgb(210 210 210); - border-radius: 6px; - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: rgb(51 51 51); - cursor: pointer; - display: flex; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: 600; - line-height: 24px; - margin: 0 2px; - max-width: 300px; - min-width: 150px; - padding: 10px 16px; - position: relative; - text-align: center; - touch-action: manipulation; - transform: translate3d(0, 0, -12px); - user-select: none; - -webkit-tap-highlight-color: transparent; - width: auto; - z-index: 1; -} - -.atcb-button:focus, -.atcb-button:hover { - background-color: rgb(255 255 255); -} - -.atcb-button:focus-visible { - outline: 2px solid dodgerblue; -} - -@media only screen and (max-width: 575px) { - .atcb-button { - font-size: 14px; - } -} - -.atcb-button.atcb-active:not(.atcb-modal-style) { - background-color: rgb(255 255 255); - box-shadow: 1px 8px 12px 0 rgb(0 0 0 / 50%); - margin: 0; - padding: 10px 18px; - transform: perspective(100px) rotateX(12deg) translate3d(0, 0, 2px); - transition: margin 0.15s ease-out, padding 0.15s ease-out, transform 0.1s ease-out; - z-index: 160; -} - -/** - * Options Labels - */ - -.atcb-icon { - height: 16px; - display: inline-block; - margin-bottom: 4px; - margin-right: 10px; -} - -.atcb-icon svg { - height: 100%; - color: rgb(51 51 51); - width: auto; -} - -/** - * Options List - */ - -.atcb-dropdown-anchor { - position: relative; - top: -3px; -} - -.atcb-list { - box-sizing: border-box; - color: rgb(51 51 51); - display: block; - font-family: Arial, Helvetica, sans-serif; - max-width: 100%; - padding: 0 4px; - position: absolute; - transform: translate3d(0, 0, 0); - user-select: none; - width: 100%; - min-width: 10em; - z-index: 150; -} - -.atcb-list.atcb-dropdown { - animation: atcb-list-slide 0.4s ease 0.05s 1 normal forwards; - opacity: 0; -} - -@keyframes atcb-list-slide { - 0% { - opacity: 0; - transform: rotateX(-100deg); - transform-origin: top; - } - - 100% { - opacity: 1; - transform: rotateX(0deg); - transform-origin: top; - } -} - -.atcb-list-item { - align-items: center; - background-color: rgb(245 245 245); - border: 1px solid rgb(210 210 210); - box-shadow: 1px 2px 8px 0 rgb(0 0 0 / 30%); - box-sizing: border-box; - cursor: pointer; - display: flex; - font-size: 16px; - left: 50%; - margin-top: -1px; /* ugly, but prevents a glitch in some cases */ - position: relative; - padding: 13px 15px; - text-align: left; - transform: translate(-50%); - touch-action: manipulation; - -webkit-tap-highlight-color: transparent; -} - -.atcb-list-item:hover { - background-color: rgb(255 255 255); - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: rgb(0 0 0); -} - -.atcb-list-item:focus-visible { - background-color: rgb(255 255 255); - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: dodgerblue; - font-weight: 600; - outline: none; -} - -@media only screen and (max-width: 575px) { - .atcb-list-item { - font-size: 14px; - } -} - -.atcb-list-item:last-child { - border-radius: 0 0 6px 6px; -} - -.atcb-list.atcb-generated-button .atcb-list-item:first-child { - padding-top: 20px; -} - -.atcb-list:not(.atcb-generated-button) .atcb-list-item:first-child { - border-radius: 6px 6px 0 0; -} - -.atcb-list:not(.atcb-generated-button) .atcb-list-item:only-child { - border-radius: 6px; -} - -.atcb-list-item .atcb-icon { - margin-right: 8px; - width: 18px; -} - -.atcb-list-item-close { - background-color: #e5e5e5; -} - -.atcb-list-item.atcb-list-item-close { - color: #777; -} - -.atcb-list-item.atcb-list-item-close svg { - fill: #777; -} - -/** - * Modal - */ - -/* we disable scrolling only on small screens - only there, the case is relevant and at the same time, they have no scrollbars and therefore no "jumping" */ -@media only screen and (max-width: 575px) { - .atcb-modal-no-scroll { - overflow-y: hidden; - } -} - -.atcb-modal { - display: block; - margin: auto; - min-width: 250px; - width: auto; - position: relative; - transform: translate3d(0, 0, 0); - z-index: 150; -} - -.atcb-modal-box { - background-color: rgb(255 255 255); - box-shadow: 1px 2px 12px 2px rgba(0 0 0 / 60%); - color: rgb(0 0 0); - cursor: default; - border-radius: 6px; - border: 1px solid rgb(210 210 210); - box-sizing: border-box; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - line-height: 24px; - padding: 20px 25px; - text-align: left; - user-select: none; - touch-action: manipulation; - width: 100%; - max-width: 500px; - -webkit-tap-highlight-color: transparent; -} - -.atcb-modal-instagram { - border: 3px solid rgb(193 53 132); -} - -.atcb-modal-headline { - font-size: 24px; - font-weight: 600; - line-height: 36px; - margin: 20px 15px; - text-transform: uppercase; -} - -.atcb-modal-content { - margin: 30px 15px; -} - -.atcb-modal-btn { - background-color: rgb(245 245 245); - border: 1px solid rgb(210 210 210); - border-radius: 6px; - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: rgb(51 51 51); - cursor: pointer; - display: block; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: 600; - line-height: 24px; - margin: 25px auto; - padding: 10px 20px; - position: relative; - text-align: center; - touch-action: manipulation; - user-select: none; - -webkit-tap-highlight-color: transparent; -} - -.atcb-modal-btn:hover { - background-color: rgb(255 255 255); -} - -.atcb-modal-btn:focus-visible { - background-color: rgb(255 255 255); - outline: 2px solid dodgerblue; -} - -/** - * Background Overlay - */ - -#atcb-bgoverlay { - animation: atcb-bgoverlay-animate 0.1s ease 0s 1 normal forwards; - backdrop-filter: blur(2px); - background-color: rgb(20 20 20 / 20%); - box-sizing: border-box; - display: flex; - - /* could become simply 100dvh in the future - with regular padding then */ - height: calc(100vh + 100px); - left: 0; - right: 0; - top: 0; - min-height: 100%; - min-width: 100%; - opacity: 0; - overflow-y: scroll; - padding: 30px 15px 130px; - position: fixed; - transform: translate3d(0, 0, -10px); - width: 100vw; - z-index: 120; -} - -#atcb-bgoverlay.atcb-animate-bg { - animation: atcb-bgoverlay-animate 0.4s ease 0.2s 1 normal forwards; -} - -#atcb-bgoverlay.atcb-no-bg { - animation: none; - background-color: rgb(20 20 20 / 20%); - backdrop-filter: blur(2px); - opacity: 0; -} - -@keyframes atcb-bgoverlay-animate { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -#atcb-bgoverlay.atcb-click:hover { - cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32, pointer; -} diff --git a/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css b/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css deleted file mode 100644 index 52264a3..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css +++ /dev/null @@ -1,2 +0,0 @@ -.atcb{display:none}.atcb-button-wrapper{display:inline-block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:rgb(245 245 245);border:1px solid rgb(210 210 210);border-radius:6px;box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:rgb(51 51 51);cursor:pointer;display:flex;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:600;line-height:24px;margin:0 2px;max-width:300px;min-width:150px;padding:10px 16px;position:relative;text-align:center;touch-action:manipulation;transform:translate3d(0,0,-12px);user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:focus,.atcb-button:hover{background-color:rgb(255 255 255)}.atcb-button:focus-visible{outline:2px solid dodgerblue}@media only screen and (max-width:575px){.atcb-button{font-size:14px}}.atcb-button.atcb-active:not(.atcb-modal-style){background-color:rgb(255 255 255);box-shadow:1px 8px 12px 0 rgb(0 0 0 / 50%);margin:0;padding:10px 18px;transform:perspective(100px) rotateX(12deg) translate3d(0,0,2px);transition:margin .15s ease-out,padding .15s ease-out,transform .1s ease-out;z-index:160}.atcb-icon{height:16px;display:inline-block;margin-bottom:4px;margin-right:10px}.atcb-icon svg{height:100%;color:rgb(51 51 51);width:auto}.atcb-dropdown-anchor{position:relative;top:-3px}.atcb-list{box-sizing:border-box;color:rgb(51 51 51);display:block;font-family:Arial,Helvetica,sans-serif;max-width:100%;padding:0 4px;position:absolute;transform:translate3d(0,0,0);user-select:none;width:100%;min-width:10em;z-index:150}.atcb-list.atcb-dropdown{animation:atcb-list-slide .4s ease 50ms 1 normal forwards;opacity:0}@keyframes atcb-list-slide{0%{opacity:0;transform:rotateX(-100deg);transform-origin:top}100%{opacity:1;transform:rotateX(0);transform-origin:top}}.atcb-list-item{align-items:center;background-color:rgb(245 245 245);border:1px solid rgb(210 210 210);box-shadow:1px 2px 8px 0 rgb(0 0 0 / 30%);box-sizing:border-box;cursor:pointer;display:flex;font-size:16px;left:50%;margin-top:-1px;position:relative;padding:13px 15px;text-align:left;transform:translate(-50%);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-list-item:hover{background-color:rgb(255 255 255);box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:rgb(0 0 0)}.atcb-list-item:focus-visible{background-color:rgb(255 255 255);box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:#1e90ff;font-weight:600;outline:0}@media only screen and (max-width:575px){.atcb-list-item{font-size:14px}}.atcb-list-item:last-child{border-radius:0 0 6px 6px}.atcb-list.atcb-generated-button .atcb-list-item:first-child{padding-top:20px}.atcb-list:not(.atcb-generated-button) .atcb-list-item:first-child{border-radius:6px 6px 0 0}.atcb-list:not(.atcb-generated-button) .atcb-list-item:only-child{border-radius:6px}.atcb-list-item .atcb-icon{margin-right:8px;width:18px}.atcb-list-item-close{background-color:#e5e5e5}.atcb-list-item.atcb-list-item-close{color:#777}.atcb-list-item.atcb-list-item-close svg{fill:#777}@media only screen and (max-width:575px){.atcb-modal-no-scroll{overflow-y:hidden}}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;transform:translate3d(0,0,0);z-index:150}.atcb-modal-box{background-color:rgb(255 255 255);box-shadow:1px 2px 12px 2px rgba(0 0 0 / 60%);color:rgb(0 0 0);cursor:default;border-radius:6px;border:1px solid rgb(210 210 210);box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:24px;padding:20px 25px;text-align:left;user-select:none;touch-action:manipulation;width:100%;max-width:500px;-webkit-tap-highlight-color:transparent}.atcb-modal-instagram{border:3px solid rgb(193 53 132)}.atcb-modal-headline{font-size:24px;font-weight:600;line-height:36px;margin:20px 15px;text-transform:uppercase}.atcb-modal-content{margin:30px 15px}.atcb-modal-btn{background-color:rgb(245 245 245);border:1px solid rgb(210 210 210);border-radius:6px;box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:rgb(51 51 51);cursor:pointer;display:block;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:600;line-height:24px;margin:25px auto;padding:10px 20px;position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent}.atcb-modal-btn:hover{background-color:rgb(255 255 255)}.atcb-modal-btn:focus-visible{background-color:rgb(255 255 255);outline:2px solid dodgerblue}#atcb-bgoverlay{animation:atcb-bgoverlay-animate .1s ease 0s 1 normal forwards;backdrop-filter:blur(2px);background-color:rgb(20 20 20 / 20%);box-sizing:border-box;display:flex;height:calc(100vh + 100px);left:0;right:0;top:0;min-height:100%;min-width:100%;opacity:0;overflow-y:scroll;padding:30px 15px 130px;position:fixed;transform:translate3d(0,0,-10px);width:100vw;z-index:120}#atcb-bgoverlay.atcb-animate-bg{animation:atcb-bgoverlay-animate .4s ease .2s 1 normal forwards}#atcb-bgoverlay.atcb-no-bg{animation:none;background-color:rgb(20 20 20 / 20%);backdrop-filter:blur(2px);opacity:0}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32,pointer} -/*# sourceMappingURL=atcb-3d.min.css.map */ \ No newline at end of file diff --git a/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css.map b/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css.map deleted file mode 100644 index b3296b8..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/css/atcb-3d.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["assets\\css\\atcb-3d.css"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/citelibre-participEZ/webapp/js/util/actb/css/atcb.css b/citelibre-participEZ/webapp/js/util/actb/css/atcb.css deleted file mode 100644 index 4b7544b..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/css/atcb.css +++ /dev/null @@ -1,325 +0,0 @@ -/** - * ++++++++++++++++++++++ - * Add-to-Calendar Button - * ++++++++++++++++++++++ - * - * Style: Default - * - * Version: 1.11.4 - * Creator: Jens Kuerschner (https://jenskuerschner.de) - * Project: https://github.com/jekuer/add-to-calendar-button - * License: MIT with “Commons Clause†License Condition v1.0 - * - */ - -.atcb { - display: none; -} - -/** - * The triggering button - */ - -.atcb-button-wrapper { - display: inline-block; - padding: 5px; - position: relative; -} - -.atcb-button { - align-items: center; - background-color: #f5f5f5; - border: 1px solid #d2d2d2; - border-radius: 6px; - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: #333; - cursor: pointer; - display: flex; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: 600; - line-height: 24px; - margin: 0 2px; - max-width: 300px; - min-width: 150px; - padding: 10px 16px; - position: relative; - text-align: center; - touch-action: manipulation; - user-select: none; - -webkit-tap-highlight-color: transparent; - width: auto; - z-index: 1; -} - -.atcb-button:focus, -.atcb-button:hover { - background-color: #fff; -} - -.atcb-button:focus-visible { - outline: 2px solid dodgerblue; -} - -@media only screen and (max-width: 575px) { - .atcb-button { - font-size: 14px; - } -} - -.atcb-button.atcb-active:not(.atcb-modal-style) { - background-color: #fff; - box-shadow: 1px 8px 12px 0 rgb(0 0 0 / 50%); - margin: 0; - padding: 10px 18px; - z-index: 160; -} - -/** - * Options Labels - */ - -.atcb-icon { - height: 16px; - display: inline-block; - margin-bottom: 4px; - margin-right: 10px; -} - -.atcb-icon svg { - height: 100%; - color: #333; - width: auto; -} - -/** - * Options List - */ - -.atcb-dropdown-anchor { - position: relative; - top: -3px; -} - -.atcb-list { - box-sizing: border-box; - color: #333; - display: block; - font-family: Arial, Helvetica, sans-serif; - max-width: 100%; - padding: 0 4px; - position: absolute; - user-select: none; - width: 100%; - min-width: 10em; - z-index: 150; -} - -.atcb-list-item { - align-items: center; - background-color: #f5f5f5; - border: 1px solid #d2d2d2; - box-shadow: 1px 2px 8px 0 rgb(0 0 0 / 30%); - box-sizing: border-box; - cursor: pointer; - display: flex; - font-size: 16px; - left: 50%; - margin-top: -1px; /* ugly, but prevents a glitch in some cases */ - position: relative; - padding: 13px 15px; - text-align: left; - transform: translate(-50%); - touch-action: manipulation; - -webkit-tap-highlight-color: transparent; -} - -.atcb-list-item:hover { - background-color: #fff; - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: #000; -} - -.atcb-list-item:focus-visible { - background-color: #fff; - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: dodgerblue; - font-weight: 600; - outline: none; -} - -@media only screen and (max-width: 575px) { - .atcb-list-item { - font-size: 14px; - } -} - -.atcb-list-item:last-child { - border-radius: 0 0 6px 6px; -} - -.atcb-list.atcb-generated-button .atcb-list-item:first-child { - padding-top: 20px; -} - -.atcb-list:not(.atcb-generated-button) .atcb-list-item:first-child { - border-radius: 6px 6px 0 0; -} - -.atcb-list:not(.atcb-generated-button) .atcb-list-item:only-child { - border-radius: 6px; -} - -.atcb-list-item .atcb-icon { - margin-right: 8px; - width: 18px; -} - -.atcb-list-item-close { - background-color: #e5e5e5; -} - -.atcb-list-item.atcb-list-item-close { - color: #777; -} - -.atcb-list-item.atcb-list-item-close svg { - fill: #777; -} - -/** - * Modal - */ - -/* we disable scrolling only on small screens - only there, the case is relevant and at the same time, they have no scrollbars and therefore no "jumping" */ -@media only screen and (max-width: 575px) { - .atcb-modal-no-scroll { - overflow-y: hidden; - } -} - -.atcb-modal { - display: block; - margin: auto; - min-width: 250px; - width: auto; - position: relative; - z-index: 150; -} - -.atcb-modal-box { - background-color: #fff; - box-shadow: 1px 2px 12px 2px rgba(0 0 0 / 60%); - color: #000; - cursor: default; - border-radius: 6px; - border: 1px solid #d2d2d2; - box-sizing: border-box; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - line-height: 24px; - padding: 20px 25px; - text-align: left; - user-select: none; - touch-action: manipulation; - width: 100%; - max-width: 500px; - -webkit-tap-highlight-color: transparent; -} - -.atcb-modal-instagram { - border: 3px solid #c13584; -} - -.atcb-modal-headline { - font-size: 24px; - font-weight: 600; - line-height: 36px; - margin: 20px 15px; - text-transform: uppercase; -} - -.atcb-modal-content { - margin: 30px 15px; -} - -.atcb-modal-btn { - background-color: #f5f5f5; - border: 1px solid #d2d2d2; - border-radius: 6px; - box-shadow: 1px 2px 10px 0 rgb(0 0 0 / 40%); - color: #333; - cursor: pointer; - display: block; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: 600; - line-height: 24px; - margin: 25px auto; - padding: 10px 20px; - position: relative; - text-align: center; - touch-action: manipulation; - user-select: none; - -webkit-tap-highlight-color: transparent; -} - -.atcb-modal-btn:hover { - background-color: #fff; -} - -.atcb-modal-btn:focus-visible { - background-color: #fff; - outline: 2px solid dodgerblue; -} - -/** - * Background Overlay - */ - -#atcb-bgoverlay { - animation: atcb-bgoverlay-animate 0.1s ease 0s 1 normal forwards; - backdrop-filter: blur(2px); - background-color: rgb(20 20 20 / 20%); - box-sizing: border-box; - display: flex; - - /* could become simply 100dvh in the future - with regular padding then */ - height: calc(100vh + 100px); - left: 0; - right: 0; - top: 0; - min-height: 100%; - min-width: 100%; - opacity: 0; - overflow-y: scroll; - padding: 30px 15px 130px; - position: fixed; - width: 100vw; - z-index: 120; -} - -#atcb-bgoverlay.atcb-animate-bg { - animation: atcb-bgoverlay-animate 0.3s ease 0s 1 normal forwards; -} - -#atcb-bgoverlay.atcb-no-bg { - animation: none; - background-color: rgb(20 20 20 / 20%); - backdrop-filter: blur(2px); - opacity: 0; -} - -@keyframes atcb-bgoverlay-animate { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -#atcb-bgoverlay.atcb-click:hover { - cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32, pointer; -} diff --git a/citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css b/citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css deleted file mode 100644 index 61374dc..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css +++ /dev/null @@ -1,2 +0,0 @@ -.atcb{display:none}.atcb-button-wrapper{display:inline-block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:#f5f5f5;border:1px solid #d2d2d2;border-radius:6px;box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:#333;cursor:pointer;display:flex;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:600;line-height:24px;margin:0 2px;max-width:300px;min-width:150px;padding:10px 16px;position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button:focus,.atcb-button:hover{background-color:#fff}.atcb-button:focus-visible{outline:2px solid dodgerblue}@media only screen and (max-width:575px){.atcb-button{font-size:14px}}.atcb-button.atcb-active:not(.atcb-modal-style){background-color:#fff;box-shadow:1px 8px 12px 0 rgb(0 0 0 / 50%);margin:0;padding:10px 18px;z-index:160}.atcb-icon{height:16px;display:inline-block;margin-bottom:4px;margin-right:10px}.atcb-icon svg{height:100%;color:#333;width:auto}.atcb-dropdown-anchor{position:relative;top:-3px}.atcb-list{box-sizing:border-box;color:#333;display:block;font-family:Arial,Helvetica,sans-serif;max-width:100%;padding:0 4px;position:absolute;user-select:none;width:100%;min-width:10em;z-index:150}.atcb-list-item{align-items:center;background-color:#f5f5f5;border:1px solid #d2d2d2;box-shadow:1px 2px 8px 0 rgb(0 0 0 / 30%);box-sizing:border-box;cursor:pointer;display:flex;font-size:16px;left:50%;margin-top:-1px;position:relative;padding:13px 15px;text-align:left;transform:translate(-50%);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-list-item:hover{background-color:#fff;box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:#000}.atcb-list-item:focus-visible{background-color:#fff;box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:#1e90ff;font-weight:600;outline:0}@media only screen and (max-width:575px){.atcb-list-item{font-size:14px}}.atcb-list-item:last-child{border-radius:0 0 6px 6px}.atcb-list.atcb-generated-button .atcb-list-item:first-child{padding-top:20px}.atcb-list:not(.atcb-generated-button) .atcb-list-item:first-child{border-radius:6px 6px 0 0}.atcb-list:not(.atcb-generated-button) .atcb-list-item:only-child{border-radius:6px}.atcb-list-item .atcb-icon{margin-right:8px;width:18px}.atcb-list-item-close{background-color:#e5e5e5}.atcb-list-item.atcb-list-item-close{color:#777}.atcb-list-item.atcb-list-item-close svg{fill:#777}@media only screen and (max-width:575px){.atcb-modal-no-scroll{overflow-y:hidden}}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:150}.atcb-modal-box{background-color:#fff;box-shadow:1px 2px 12px 2px rgba(0 0 0 / 60%);color:#000;cursor:default;border-radius:6px;border:1px solid #d2d2d2;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:24px;padding:20px 25px;text-align:left;user-select:none;touch-action:manipulation;width:100%;max-width:500px;-webkit-tap-highlight-color:transparent}.atcb-modal-instagram{border:3px solid #c13584}.atcb-modal-headline{font-size:24px;font-weight:600;line-height:36px;margin:20px 15px;text-transform:uppercase}.atcb-modal-content{margin:30px 15px}.atcb-modal-btn{background-color:#f5f5f5;border:1px solid #d2d2d2;border-radius:6px;box-shadow:1px 2px 10px 0 rgb(0 0 0 / 40%);color:#333;cursor:pointer;display:block;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:600;line-height:24px;margin:25px auto;padding:10px 20px;position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent}.atcb-modal-btn:hover{background-color:#fff}.atcb-modal-btn:focus-visible{background-color:#fff;outline:2px solid dodgerblue}#atcb-bgoverlay{animation:atcb-bgoverlay-animate .1s ease 0s 1 normal forwards;backdrop-filter:blur(2px);background-color:rgb(20 20 20 / 20%);box-sizing:border-box;display:flex;height:calc(100vh + 100px);left:0;right:0;top:0;min-height:100%;min-width:100%;opacity:0;overflow-y:scroll;padding:30px 15px 130px;position:fixed;width:100vw;z-index:120}#atcb-bgoverlay.atcb-animate-bg{animation:atcb-bgoverlay-animate .3s ease 0s 1 normal forwards}#atcb-bgoverlay.atcb-no-bg{animation:none;background-color:rgb(20 20 20 / 20%);backdrop-filter:blur(2px);opacity:0}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill-rule='evenodd' d='M11.991.69a2.35 2.35 0 0 1 3.318-.009c.918.911.922 2.392.009 3.307l-4.009 4.014 4.013 4.018c.906.909.893 2.38-.027 3.287a2.35 2.35 0 0 1-3.307-.004l-3.985-3.99-3.993 3.997a2.35 2.35 0 0 1-3.318.009c-.918-.911-.922-2.392-.009-3.307l4.009-4.014L.678 3.98C-.228 3.072-.215 1.6.706.693a2.35 2.35 0 0 1 3.307.004l3.985 3.99z'/%3E%3C/svg%3E") 32 32,pointer} -/*# sourceMappingURL=atcb.min.css.map */ \ No newline at end of file diff --git a/citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css.map b/citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css.map deleted file mode 100644 index ec77df4..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/css/atcb.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["assets\\css\\atcb.css"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/citelibre-participEZ/webapp/js/util/actb/js/atcb.js b/citelibre-participEZ/webapp/js/util/actb/js/atcb.js deleted file mode 100644 index 7361964..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/js/atcb.js +++ /dev/null @@ -1,1366 +0,0 @@ -/** - * ++++++++++++++++++++++ - * Add-to-Calendar Button - * ++++++++++++++++++++++ - */ -const atcbVersion = '1.11.4'; -/* Creator: Jens Kuerschner (https://jenskuerschner.de) - * Project: https://github.com/jekuer/add-to-calendar-button - * License: MIT with “Commons Clause†License Condition v1.0 - * - */ - -// CHECKING FOR SPECIFIC DEVICED AND SYSTEMS -// browser -const isBrowser = new Function('try { return this===window; }catch(e){ return false; }'); -// iOS -const isiOS = isBrowser() - ? new Function( - "if ((/iPad|iPhone|iPod/.test(navigator.userAgent || navigator.vendor || window.opera) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)){ return true; }else{ return false; }" - ) - : new Function('return false;'); -// Instagram -const isInstagram = isBrowser() - ? new Function( - 'if (/Instagram/.test(navigator.userAgent || navigator.vendor || window.opera)){ return true; }else{ return false; }' - ) - : new Function('return false;'); - -// INITIALIZE THE SCRIPT AND FUNCTIONALITY -function atcb_init() { - // let's get started - console.log('add-to-calendar button initialized (version ' + atcbVersion + ')'); - console.log('See https://github.com/jekuer/add-to-calendar-button for details'); - // get all placeholders - const atcButtons = document.querySelectorAll('.atcb'); - // if there are some, move on - if (atcButtons.length > 0) { - // get the amount of already initialized ones first - const atcButtonsInitialized = document.querySelectorAll('.atcb-initialized'); - // generate the buttons one by one - for (let i = 0; i < atcButtons.length; i++) { - // skip already initialized ones - if (atcButtons[parseInt(i)].classList.contains('atcb-initialized')) { - continue; - } - // get JSON from HTML block, but remove real code line breaks before parsing. - // use
or \n explicitely in the description to create a line break. - // also strip HTML tags (especially since stupid Safari adds stuff). - let atcbConfig = JSON.parse( - atcButtons[parseInt(i)].innerHTML.replace(/(\r\n|\n|\r)/g, '').replace(/(<(?!br)([^>]+)>)/gi, '') - ); - // rewrite config for backwards compatibility - you can remove this, if you did not use this script before v1.4.0. - atcbConfig = atcb_patch_config(atcbConfig); - // check, if all required data is available - if (atcb_check_required(atcbConfig)) { - // Rewrite dynamic dates, standardize line breaks and transform urls in the description - atcbConfig = atcb_decorate_data(atcbConfig); - // validate the config (JSON iput) ... - if (atcb_validate(atcbConfig)) { - // ... and generate the button on success - // set identifier - if (atcbConfig.identifier == null || atcbConfig.identifier == '') { - atcbConfig.identifier = 'atcb-btn-' + (i + atcButtonsInitialized.length + 1); - } - // generate the button - atcb_generate(atcButtons[parseInt(i)], atcbConfig); - } - } - } - } -} - -// BACKWARDS COMPATIBILITY REWRITE - you can remove this, if you did not use this script before v1.4.0. -function atcb_patch_config(atcbConfig) { - const keyChanges = { - title: 'name', - dateStart: 'startDate', - dateEnd: 'endDate', - timeStart: 'startTime', - timeEnd: 'endTime', - }; - Object.keys(keyChanges).forEach((key) => { - if (atcbConfig[keyChanges[`${key}`]] == null && atcbConfig[`${key}`] != null) { - atcbConfig[keyChanges[`${key}`]] = atcbConfig[`${key}`]; - } - }); - return atcbConfig; -} - -// CLEAN DATA BEFORE FURTHER VALIDATION (CONSIDERING SPECIAL RULES AND SCHEMES) -function atcb_decorate_data(atcbConfig) { - // cleanup different date-time formats - atcbConfig = atcb_date_cleanup(atcbConfig); - // calculate the real date values in case that there are some special rules included (e.g. adding days dynamically) - atcbConfig.startDate = atcb_date_calculation(atcbConfig.startDate); - atcbConfig.endDate = atcb_date_calculation(atcbConfig.endDate); - // force click trigger on modal style - if (atcbConfig.listStyle === 'modal') { - atcbConfig.trigger = 'click'; - } - // set language if not set - if (atcbConfig.language == null || atcbConfig.language == '') { - atcbConfig.language = 'en'; - } - // format RRULE (remove spaces) - if (atcbConfig.recurrence != null && atcbConfig.recurrence != '') { - atcbConfig.recurrence = atcbConfig.recurrence.replace(/\s+/g, ''); - } - - // if no description or already decorated, return early here - if (!atcbConfig.description || atcbConfig.descriptionHtmlFree) return atcbConfig; - - // make a copy of the given argument rather than mutating in place - const data = Object.assign({}, atcbConfig); - // standardize any line breaks in the description and transform URLs (but keep a clean copy without the URL magic for iCal) - data.description = data.description.replace(//gi, '\n'); - data.descriptionHtmlFree = data.description - .replace(/\[url\]/gi, '') - .replace(/(\|.*)\[\/url\]/gi, '') - .replace(/\[\/url\]/gi, ''); - data.description = data.description.replace( - /\[url\]([\w&$+.,:;=~!*'?@^%#|\s\-()/]*)\[\/url\]/gi, - function (match, p1) { - const urlText = p1.split('|'); - let link = ''; - if (urlText.length > 1 && urlText[1] != '') { - link += urlText[1]; - } else { - link += urlText[0]; - } - return link + ''; - } - ); - return data; -} - -// CHECK FOR REQUIRED FIELDS -function atcb_check_required(data) { - // check for at least 1 option - if (data.options == null || data.options.length < 1) { - console.error('add-to-calendar button generation failed: no options set'); - return false; - } - // check for min required data (without "options") - const requiredField = ['name', 'startDate']; - return requiredField.every(function (field) { - if (data[`${field}`] == null || data[`${field}`] == '') { - console.error('add-to-calendar button generation failed: required setting missing [' + field + ']'); - return false; - } - return true; - }); -} - -// CALCULATE AND CLEAN UP THE ACTUAL DATES -function atcb_date_cleanup(data) { - // set endDate = startDate, if not provided - if ((data.endDate == null || data.endDate == '') && data.startDate != null) { - data.endDate = data.startDate; - } - // parse date+time format (unofficial alternative to the main implementation) - const endpoints = ['start', 'end']; - endpoints.forEach(function (point) { - if (data[point + 'Date'] != null) { - // remove any milliseconds information - data[point + 'Date'] = data[point + 'Date'].replace(/\.\d{3}/, '').replace('Z', ''); - // identify a possible time information within the date string - const tmpSplitStartDate = data[point + 'Date'].split('T'); - if (tmpSplitStartDate[1] != null) { - data[point + 'Date'] = tmpSplitStartDate[0]; - data[point + 'Time'] = tmpSplitStartDate[1]; - } - } - // remove any seconds from time information - if (data[point + 'Time'] != null && data[point + 'Time'].length === 8) { - const timeStr = data[point + 'Time']; - data[point + 'Time'] = timeStr.substring(0, timeStr.length - 3); - } - }); - return data; -} - -function atcb_date_calculation(dateString) { - // replace "today" with the current date first - const today = new Date(); - const todayString = today.getUTCMonth() + 1 + '-' + today.getUTCDate() + '-' + today.getUTCFullYear(); - dateString = dateString.replace(/today/gi, todayString); - // check for any dynamic additions and adjust - const dateStringParts = dateString.split('+'); - const dateParts = dateStringParts[0].split('-'); - let newDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]); - if (dateParts[0].length < 4) { - // backwards compatibility for version <1.5.0 - newDate = new Date(dateParts[2], dateParts[0] - 1, dateParts[1]); - } - if (dateStringParts[1] != null && dateStringParts[1] > 0) { - newDate.setDate(newDate.getDate() + parseInt(dateStringParts[1])); - } - return ( - newDate.getFullYear() + - '-' + - ((newDate.getMonth() + 1 < 10 ? '0' : '') + (newDate.getMonth() + 1)) + - '-' + - (newDate.getDate() < 10 ? '0' : '') + - newDate.getDate() - ); -} - -// VALIDATE THE INPUT DATA -function atcb_validate(data) { - // validate prefix - if (data.identifier != null && data.identifier != '') { - if (!/^[\w-]+$/.test(data.identifier)) { - data.identifier = ''; - console.error('add-to-calendar button generation: identifier invalid - using auto numbers instead'); - } - } - // validate explicit ics file - if (data.icsFile != null && data.icsFile != '') { - if (!atcb_secure_url(data.icsFile, false) || !/\.ics$/.test(data.icsFile)) { - console.error('add-to-calendar button generation failed: explicit ics file path not valid'); - return false; - } - } - // validate options - const options = ['Apple', 'Google', 'iCal', 'Microsoft365', 'Outlook.com', 'MicrosoftTeams', 'Yahoo']; - if ( - !data.options.every(function (option) { - const cleanOption = option.split('|'); - if (!options.includes(cleanOption[0])) { - console.error('add-to-calendar button generation failed: invalid option [' + cleanOption[0] + ']'); - return false; - } - return true; - }) - ) { - return false; - } - // validate date - const dates = ['startDate', 'endDate']; - const newDate = dates; - if ( - !dates.every(function (date) { - if (data[`${date}`].length !== 10) { - console.error('add-to-calendar button generation failed: date misspelled [-> YYYY-MM-DD]'); - return false; - } - const dateParts = data[`${date}`].split('-'); - if (dateParts.length < 3 || dateParts.length > 3) { - console.error( - 'add-to-calendar button generation failed: date misspelled [' + date + ': ' + data[`${date}`] + ']' - ); - return false; - } - newDate[`${date}`] = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]); - return true; - }) - ) { - return false; - } - // validate time - const times = ['startTime', 'endTime']; - if ( - !times.every(function (time) { - if (data[`${time}`] != null) { - if (data[`${time}`].length !== 5) { - console.error('add-to-calendar button generation failed: time misspelled [-> HH:MM]'); - return false; - } - const timeParts = data[`${time}`].split(':'); - // validate the time parts - if (timeParts.length < 2 || timeParts.length > 2) { - console.error( - 'add-to-calendar button generation failed: time misspelled [' + - time + - ': ' + - data[`${time}`] + - ']' - ); - return false; - } - if (timeParts[0] > 23) { - console.error( - 'add-to-calendar button generation failed: time misspelled - hours number too high [' + - time + - ': ' + - timeParts[0] + - ']' - ); - return false; - } - if (timeParts[1] > 59) { - console.error( - 'add-to-calendar button generation failed: time misspelled - minutes number too high [' + - time + - ': ' + - timeParts[1] + - ']' - ); - return false; - } - // update the date with the time for further validation steps - if (time == 'startTime') { - newDate.startDate = new Date( - newDate.startDate.getTime() + timeParts[0] * 3600000 + timeParts[1] * 60000 - ); - } - if (time == 'endTime') { - newDate.endDate = new Date( - newDate.endDate.getTime() + timeParts[0] * 3600000 + timeParts[1] * 60000 - ); - } - } - return true; - }) - ) { - return false; - } - if ((data.startTime != null && data.endTime == null) || (data.startTime == null && data.endTime != null)) { - console.error( - 'add-to-calendar button generation failed: if you set a starting time, you also need to define an end time' - ); - return false; - } - // validate whether end is not before start - if (newDate.endDate < newDate.startDate) { - console.error('add-to-calendar button generation failed: end date before start date'); - return false; - } - // validate any given RRULE (or respective other parameters) - if (data.recurrence != null && data.recurrence != '') { - if (!/^[\w=;:*+-/\\]+$/.test(data.recurrence)) { - console.error('add-to-calendar button generation failed: RRULE data misspelled'); - return false; - } - } - // on passing the validation, return true - return true; -} - -// GENERATE THE ACTUAL BUTTON -// helper function to generate the labels for the button and list options -function atcb_generate_label(data, parent, type, icon = false, text = '', oneOption = false) { - let defaultTriggerText = atcb_translate('Add to Calendar', data.language); - // if there is only 1 option, we use the trigger text on the option label. Therefore, forcing it here - if (oneOption && text == '') { - text = defaultTriggerText; - } - let iconSvg = ''; - switch (type) { - case 'Trigger': - default: - if (data.trigger === 'click') { - parent.addEventListener( - 'click', - atcb_debounce_leading(() => atcb_toggle(data, parent, false, true)) - ); - } else { - parent.addEventListener( - 'touchstart', - atcb_debounce_leading(() => atcb_toggle(data, parent, false, true)), - { - passive: true, - } - ); - parent.addEventListener( - 'mouseenter', - atcb_debounce_leading(() => atcb_open(data, parent, false, true)) - ); - } - parent.setAttribute('id', data.identifier); - text = text || defaultTriggerText; - iconSvg = - ''; - break; - case 'Apple': - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_ical(data); - }) - ); - parent.setAttribute('id', data.identifier + '-apple'); - text = text || 'Apple'; - iconSvg = - ''; - break; - case 'Google': - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_google(data); - }) - ); - parent.setAttribute('id', data.identifier + '-google'); - text = text || 'Google'; - iconSvg = - ''; - break; - case 'iCal': - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_ical(data); - }) - ); - parent.setAttribute('id', data.identifier + '-ical'); - text = text || atcb_translate('iCal File', data.language); - iconSvg = - ''; - break; - case 'MicrosoftTeams': - if (data.recurrence == null || data.recurrence == '') { - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_teams(data); - }) - ); - } else { - parent.remove(); - return; - } - parent.setAttribute('id', data.identifier + '-msteams'); - text = text || 'Microsoft Teams'; - iconSvg = - ''; - break; - case 'Microsoft365': - if (data.recurrence == null || data.recurrence == '') { - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_microsoft(data, '365'); - }) - ); - } else { - parent.remove(); - return; - } - parent.setAttribute('id', data.identifier + '-ms365'); - text = text || 'Microsoft 365'; - iconSvg = - ''; - break; - case 'Outlook.com': - if (data.recurrence == null || data.recurrence == '') { - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_microsoft(data, 'outlook'); - }) - ); - } else { - parent.remove(); - return; - } - parent.setAttribute('id', data.identifier + '-outlook'); - text = text || 'Outlook.com'; - iconSvg = - ''; - break; - case 'Yahoo': - if (data.recurrence == null || data.recurrence == '') { - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - atcb_generate_yahoo(data); - }) - ); - } else { - parent.remove(); - return; - } - parent.setAttribute('id', data.identifier + '-yahoo'); - text = text || 'Yahoo'; - iconSvg = - ''; - break; - case 'Close': - parent.addEventListener( - 'click', - atcb_debounce(() => { - oneOption ? parent.blur() : atcb_close(); - }) - ); - parent.addEventListener( - 'focus', - atcb_debounce(() => atcb_close(false)) - ); - parent.setAttribute('id', data.identifier + '-close'); - text = atcb_translate('Close', data.language); - iconSvg = - ''; - break; - } - // override the id for the oneOption button, since the button always needs to have the button id - if (oneOption) { - parent.setAttribute('id', data.identifier); - } - // support keyboard input - if (!oneOption && type === 'Trigger') { - parent.addEventListener( - 'keydown', - atcb_debounce_leading((event) => { - if (event.key == 'Enter') { - event.preventDefault(); - atcb_toggle(data, parent, true, true); - } - }) - ); - } else { - parent.addEventListener( - 'keydown', - atcb_debounce_leading((event) => { - if (event.key == 'Enter') { - event.preventDefault(); - parent.click(); - } - }) - ); - } - // add icon and text label - if (icon) { - const iconEl = document.createElement('span'); - iconEl.classList.add('atcb-icon'); - iconEl.innerHTML = iconSvg; - parent.appendChild(iconEl); - } - const textEl = document.createElement('span'); - textEl.classList.add('atcb-text'); - textEl.textContent = text; - parent.appendChild(textEl); -} - -// generate the triggering button -function atcb_generate(button, data) { - // clean the placeholder - button.textContent = ''; - // create schema.org data, if possible (https://schema.org/Event) - // TODO: support recurring events - if (data.name && data.location && data.startDate) { - const schemaEl = document.createElement('script'); - schemaEl.setAttribute('type', 'application/ld+json'); - schemaEl.textContent = '{ "event": { "@context":"https://schema.org", "@type":"Event", '; - schemaEl.textContent += '"name":"' + data.name + '", '; - if (data.descriptionHtmlFree) - schemaEl.textContent += '"description":"' + data.descriptionHtmlFree + '", '; - const formattedDate = atcb_generate_time(data, 'delimiters', 'general', true); - schemaEl.textContent += '"startDate":"' + formattedDate.start + '", '; - schemaEl.textContent += '"endDate":"' + formattedDate.end + '", '; - if (data.location.startsWith('http')) { - schemaEl.textContent += '"eventAttendanceMode":"https://schema.org/OnlineEventAttendanceMode", '; - schemaEl.textContent += '"location": { "@type":"VirtualLocation", "url":"' + data.location + '" } '; - } else { - schemaEl.textContent += '"location":"' + data.location + '" '; - } - schemaEl.textContent += '} }'; - button.appendChild(schemaEl); - } - // generate the wrapper div - const buttonTriggerWrapper = document.createElement('div'); - buttonTriggerWrapper.classList.add('atcb-button-wrapper'); - button.appendChild(buttonTriggerWrapper); - // generate the button trigger div - const buttonTrigger = document.createElement('button'); - buttonTrigger.classList.add('atcb-button'); - buttonTrigger.setAttribute('type', 'button'); - buttonTriggerWrapper.appendChild(buttonTrigger); - // generate the label incl. eventListeners - // if there is only 1 calendar option, we directly show this at the button, but with the trigger's label text - if (data.options.length === 1) { - const optionParts = data.options[0].split('|'); - atcb_generate_label(data, buttonTrigger, optionParts[0], true, data.label, true); - } else { - atcb_generate_label(data, buttonTrigger, 'Trigger', true, data.label); - // create an empty anchor div to place the dropdown, while the position can be defined via CSS - const buttonDropdownAnchor = document.createElement('div'); - buttonDropdownAnchor.classList.add('atcb-dropdown-anchor'); - buttonTriggerWrapper.appendChild(buttonDropdownAnchor); - } - // update the placeholder class to prevent multiple initializations - button.classList.remove('atcb'); - button.classList.add('atcb-initialized'); - // show the placeholder div - if (data.inline) { - button.style.display = 'inline-block'; - } else { - button.style.display = 'block'; - } - // console log - console.log('add-to-calendar button "' + data.identifier + '" created'); -} - -// generate the dropdown list (can also appear wihtin a modal, if option is set) -function atcb_generate_dropdown_list(data) { - const optionsList = document.createElement('div'); - optionsList.classList.add('atcb-list'); - // generate the list items - data.options.forEach(function (option) { - const optionParts = option.split('|'); - const optionItem = document.createElement('div'); - optionItem.classList.add('atcb-list-item'); - optionItem.tabIndex = 0; - optionsList.appendChild(optionItem); - // generate the label incl. individual eventListener - atcb_generate_label(data, optionItem, optionParts[0], true, optionParts[1]); - }); - // in the modal case, we also render a close option - if (data.listStyle === 'modal') { - const optionItem = document.createElement('div'); - optionItem.classList.add('atcb-list-item', 'atcb-list-item-close'); - optionItem.tabIndex = 0; - optionsList.appendChild(optionItem); - atcb_generate_label(data, optionItem, 'Close', true); - } - return optionsList; -} - -// create the background overlay, which also acts as trigger to close any dropdowns -function atcb_generate_bg_overlay(listStyle = 'dropdown', trigger = '', darken = true) { - const bgOverlay = document.createElement('div'); - bgOverlay.setAttribute('id', 'atcb-bgoverlay'); - if (listStyle !== 'modal' && darken) { - bgOverlay.classList.add('atcb-animate-bg'); - } - if (!darken) { - bgOverlay.classList.add('atcb-no-bg'); - } - bgOverlay.tabIndex = 0; - bgOverlay.addEventListener( - 'click', - atcb_debounce((e) => { - if (e.target !== e.currentTarget) return; - atcb_close(true); - }) - ); - let fingerMoved = false; - bgOverlay.addEventListener( - 'touchstart', - atcb_debounce_leading(() => (fingerMoved = false)), - { - passive: true, - } - ); - bgOverlay.addEventListener( - 'touchmove', - atcb_debounce_leading(() => (fingerMoved = true)), - { passive: true } - ); - bgOverlay.addEventListener( - 'touchend', - atcb_debounce((e) => { - if (fingerMoved !== false || e.target !== e.currentTarget) return; - atcb_close(true); - }), - { passive: true } - ); - bgOverlay.addEventListener( - 'focus', - atcb_debounce_leading((e) => { - if (e.target !== e.currentTarget) return; - atcb_close(); - }) - ); - if (trigger !== 'click') { - bgOverlay.addEventListener( - 'mousemove', - atcb_debounce_leading((e) => { - if (e.target !== e.currentTarget) return; - atcb_close(true); - }) - ); - } else { - // if trigger is not set to 'click', we render a close icon, when hovering over the background - bgOverlay.classList.add('atcb-click'); - } - return bgOverlay; -} - -// FUNCTIONS TO CONTROL THE INTERACTION -function atcb_toggle(data, button, keyboardTrigger = false, generatedButton = false) { - // check for state and adjust accordingly - if (button.classList.contains('atcb-active') || document.querySelector('.atcb-active-modal')) { - atcb_close(); - } else { - atcb_open(data, button, keyboardTrigger, generatedButton); - } -} - -// show the dropdown list + background overlay -function atcb_open(data, button, keyboardTrigger = false, generatedButton = false) { - // abort early if an add-to-calendar dropdown or modal already opened - if (document.querySelector('.atcb-list') || document.querySelector('.atcb-modal')) return; - // generate list - const list = atcb_generate_dropdown_list(data); - // set list styles, set button to atcb-active and force modal listStyle if no button is set - if (button) { - button.classList.add('atcb-active'); - if (data.listStyle === 'modal') { - button.classList.add('atcb-modal-style'); - list.classList.add('atcb-modal'); - } else { - atcb_position_list(button, list); - list.classList.add('atcb-dropdown'); - if (generatedButton) { - list.classList.add('atcb-generated-button'); // if the button has been generated by the script, we add some more specifics - } - } - } else { - list.classList.add('atcb-modal'); - } - // define background overlay - const bgOverlay = atcb_generate_bg_overlay(data.listStyle, data.trigger, data.background); - // render the items depending on the liststyle - if (data.listStyle === 'modal') { - document.body.appendChild(bgOverlay); - bgOverlay.appendChild(list); - document.body.classList.add('atcb-modal-no-scroll'); - } else { - document.body.appendChild(list); - document.body.appendChild(bgOverlay); - } - // set overlay size just to be sure - atcb_set_fullsize(bgOverlay); - // give keyboard focus to first item in list, if not blocked, because there is definitely no keyboard trigger - if (keyboardTrigger) { - list.firstChild.focus(); - } else { - // for everything else, we focus as well, but blur immediately to only set the pointer - list.firstChild.focus(); - list.firstChild.blur(); - } -} - -function atcb_close(blockFocus = false) { - // focus triggering button - especially relevant for keyboard navigation - if (!blockFocus) { - let newFocusEl = document.querySelector('.atcb-active, .atcb-active-modal'); - if (newFocusEl) { - newFocusEl.focus(); - } - } - // inactivate all buttons - Array.from(document.querySelectorAll('.atcb-active')).forEach((button) => { - button.classList.remove('atcb-active'); - }); - Array.from(document.querySelectorAll('.atcb-active-modal')).forEach((button) => { - button.classList.remove('atcb-active-modal'); - }); - // make body scrollable again - document.body.classList.remove('atcb-modal-no-scroll'); - // remove dropdowns, modals, and bg overlays (should only be one of each at max) - Array.from(document.querySelectorAll('.atcb-list')) - .concat(Array.from(document.querySelectorAll('.atcb-info-modal'))) - .concat(Array.from(document.querySelectorAll('#atcb-bgoverlay'))) - .forEach((el) => el.remove()); -} - -// prepare data when not using the init function -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function atcb_action(data, triggerElement, keyboardTrigger = true) { - // validate & decorate data - if (!atcb_check_required(data)) { - throw new Error('data missing; see logs'); - } - data = atcb_decorate_data(data); - if (!atcb_validate(data)) { - throw new Error('Invalid data; see logs'); - } - if (triggerElement) { - data.identifier = triggerElement.id; - } else { - data.identifier = 'atcb-btn-custom'; - // if no button is defined, fallback to listStyle "modal" and "click" trigger - data.listStyle = 'modal'; - data.trigger = 'click'; - } - atcb_open(data, triggerElement, keyboardTrigger); -} - -// FUNCTION TO GENERATE THE GOOGLE URL -function atcb_generate_google(data) { - // base url - let url = 'https://calendar.google.com/calendar/render?action=TEMPLATE'; - // generate and add date - const formattedDate = atcb_generate_time(data, 'clean', 'google'); - url += '&dates=' + formattedDate.start + '%2F' + formattedDate.end; - // add details (if set) - if (data.name != null && data.name != '') { - url += '&text=' + encodeURIComponent(data.name); - } - let tmpDataDescription = ''; - if (data.description != null && data.description != '') { - tmpDataDescription = data.description; - } - if (data.location != null && data.location != '') { - url += '&location=' + encodeURIComponent(data.location); - // TODO: Find a better solution for the next temporary workaround. - if (isiOS()) { - // workaround to cover a bug, where, when using Google Calendar on an iPhone, the location is not recognized. So, for the moment, we simply add it to the description. - if (tmpDataDescription != '') { - tmpDataDescription += '

'; - } - tmpDataDescription += '📍: ' + data.location; - } - } - if (tmpDataDescription != '') { - url += '&details=' + encodeURIComponent(tmpDataDescription); - } - if (data.recurrence != null && data.recurrence != '') { - url += '&recur=' + encodeURIComponent(data.recurrence); - } - if (atcb_secure_url(url)) { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(url, '_blank').focus(); - } -} - -// FUNCTION TO GENERATE THE YAHOO URL -function atcb_generate_yahoo(data) { - // base url - let url = 'https://calendar.yahoo.com/?v=60'; - // generate and add date - const formattedDate = atcb_generate_time(data, 'clean'); - url += '&st=' + formattedDate.start + '&et=' + formattedDate.end; - if (formattedDate.allday) { - url += '&dur=allday'; - } - // add details (if set) - if (data.name != null && data.name != '') { - url += '&title=' + encodeURIComponent(data.name); - } - if (data.location != null && data.location != '') { - url += '&in_loc=' + encodeURIComponent(data.location); - } - if (data.descriptionHtmlFree != null && data.descriptionHtmlFree != '') { - // using descriptionHtmlFree instead of description, since Yahoo does not support html tags in a stable way - url += '&desc=' + encodeURIComponent(data.descriptionHtmlFree); - } - if (atcb_secure_url(url)) { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(url, '_blank').focus(); - } -} - -// FUNCTION TO GENERATE THE MICROSOFT 365 OR OUTLOOK WEB URL -function atcb_generate_microsoft(data, type = '365') { - // base url - let url = 'https://'; - if (type == 'outlook') { - url += 'outlook.live.com'; - } else { - url += 'outlook.office.com'; - } - url += '/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent'; - // generate and add date - const formattedDate = atcb_generate_time(data, 'delimiters', 'microsoft'); - url += '&startdt=' + formattedDate.start + '&enddt=' + formattedDate.end; - if (formattedDate.allday) { - url += '&allday=true'; - } - // add details (if set) - if (data.name != null && data.name != '') { - url += '&subject=' + encodeURIComponent(data.name); - } - if (data.location != null && data.location != '') { - url += '&location=' + encodeURIComponent(data.location); - } - if (data.description != null && data.description != '') { - url += '&body=' + encodeURIComponent(data.description.replace(/\n/g, '
')); - } - if (atcb_secure_url(url)) { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(url, '_blank').focus(); - } -} - -// FUNCTION TO GENERATE THE MICROSOFT TEAMS URL -// Mind that this is still in development mode by Microsoft! (https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/deep-links#deep-linking-to-the-scheduling-dialog) -// Location, html tags and linebreaks in the description are not supported yet. -function atcb_generate_teams(data) { - // base url - let url = 'https://teams.microsoft.com/l/meeting/new?'; - // generate and add date - const formattedDate = atcb_generate_time(data, 'delimiters', 'microsoft'); - url += '&startTime=' + formattedDate.start + '&endTime=' + formattedDate.end; - // add details (if set) - let locationString = ''; - if (data.name != null && data.name != '') { - url += '&subject=' + encodeURIComponent(data.name); - } - if (data.location != null && data.location != '') { - locationString = encodeURIComponent(data.location); - url += '&location=' + locationString; - locationString += ' // '; // preparing the workaround putting the location into the description, since the native field is not supported yet - } - if (data.descriptionHtmlFree != null && data.descriptionHtmlFree != '') { - // using descriptionHtmlFree instead of description, since Teams does not support html tags - url += '&content=' + locationString + encodeURIComponent(data.descriptionHtmlFree); - } - if (atcb_secure_url(url)) { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(url, '_blank').focus(); - } -} - -// FUNCTION TO GENERATE THE iCAL FILE (also for the Apple option) -function atcb_generate_ical(data) { - // check for a given explicit file - if (data.icsFile != null && data.icsFile != '') { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(data.icsFile, '_self'); - return; - } - // otherwise, generate one on the fly - let now = new Date(); - now = now.toISOString(); - const formattedDate = atcb_generate_time(data, 'clean', 'ical'); - let timeslot = ''; - if (formattedDate.allday) { - timeslot = ';VALUE=DATE'; - } - const ics_lines = ['BEGIN:VCALENDAR', 'VERSION:2.0']; - const corp = 'github.com/jekuer/add-to-calendar-button'; - ics_lines.push('PRODID:-// ' + corp + ' // atcb v' + atcbVersion + ' //EN'); - ics_lines.push('CALSCALE:GREGORIAN'); - ics_lines.push('BEGIN:VEVENT'); - ics_lines.push('UID:' + now + '@add-to-calendar-button'); - ics_lines.push( - 'DTSTAMP:' + formattedDate.start, - 'DTSTART' + timeslot + ':' + formattedDate.start, - 'DTEND' + timeslot + ':' + formattedDate.end, - 'SUMMARY:' + data.name.replace(/.{65}/g, '$&' + '\r\n ') // making sure it does not exceed 75 characters per line - ); - if (data.descriptionHtmlFree != null && data.descriptionHtmlFree != '') { - ics_lines.push( - 'DESCRIPTION:' + data.descriptionHtmlFree.replace(/\n/g, '\\n').replace(/.{60}/g, '$&' + '\r\n ') // adjusting for intended line breaks + making sure it does not exceed 75 characters per line - ); - } - if (data.description != null && data.description != '') { - ics_lines.push( - 'X-ALT-DESC;FMTTYPE=text/html:\r\n \r\n \r\n ' + - data.description.replace(/\n/g, '
').replace(/.{60}/g, '$&' + '\r\n ') + - '\r\n ' - ); - } - if (data.location != null && data.location != '') { - ics_lines.push('LOCATION:' + data.location); - } - if (data.recurrence != null && data.recurrence != '') { - ics_lines.push(data.recurrence); - } - now = now.replace(/\.\d{3}/g, '').replace(/[^a-z\d]/gi, ''); - ics_lines.push('STATUS:CONFIRMED', 'LAST-MODIFIED:' + now, 'SEQUENCE:0', 'END:VEVENT', 'END:VCALENDAR'); - const dlurl = 'data:text/calendar;charset=utf-8,' + encodeURIComponent(ics_lines.join('\r\n')); - const filename = data.iCalFileName || 'event-to-save-in-my-calendar'; - // in the Instagram in-app browser case, we offer a copy option, since the on-the-fly client side generation is not supported at the moment - if (isInstagram()) { - // putting the download url to the clipboard - const tmpInput = document.createElement('input'); - document.body.appendChild(tmpInput); - var editable = tmpInput.contentEditable; - var readOnly = tmpInput.readOnly; - tmpInput.value = dlurl; - tmpInput.contentEditable = true; - tmpInput.readOnly = false; - if (isiOS()) { - var range = document.createRange(); - range.selectNodeContents(tmpInput); - var selection = window.getSelection(); - selection.removeAllRanges(); - selection.addRange(range); - tmpInput.setSelectionRange(0, 999999); - } else { - navigator.clipboard.writeText(dlurl); - tmpInput.select(); - } - tmpInput.contentEditable = editable; - tmpInput.readOnly = readOnly; - document.execCommand('copy'); - tmpInput.remove(); - // creating the modal - const buttons = [{ label: atcb_translate('Close note', data.language), type: 'close' }]; - atcb_create_modal( - data, - atcb_translate('Instagram iCal', data.language), - atcb_translate('Instagram info description', data.language), - buttons, - 'instagram' - ); - } else { - try { - if (!window.ActiveXObject) { - const save = document.createElement('a'); - save.href = dlurl; - save.target = '_blank'; - save.download = filename; - const evt = new MouseEvent('click', { - view: window, - button: 0, - bubbles: true, - cancelable: false, - }); - save.dispatchEvent(evt); - (window.URL || window.webkitURL).revokeObjectURL(save.href); - } - // for IE < 11 (even no longer officially supported) - else if (!!window.ActiveXObject && document.execCommand) { - // eslint-disable-next-line security/detect-non-literal-fs-filename - const _window = window.open(dlurl, '_blank'); - _window.document.close(); - _window.document.execCommand('SaveAs', true, filename || dlurl); - _window.close(); - } - } catch (e) { - console.error(e); - } - } -} - -// SHARED FUNCTION TO GENERATE A TIME STRING -function atcb_generate_time(data, style = 'delimiters', targetCal = 'general', addTimeZoneOffset = false) { - const startDate = data.startDate.split('-'); - const endDate = data.endDate.split('-'); - let start = ''; - let end = ''; - let allday = false; - if (data.startTime != null && data.endTime != null) { - // Adjust for timezone, if set (see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for either the TZ name or the offset) - if (data.timeZoneOffset != null && data.timeZoneOffset != '') { - // if we have a timezone offset given, consider it - start = new Date( - startDate[0] + - '-' + - startDate[1] + - '-' + - startDate[2] + - 'T' + - data.startTime + - ':00.000' + - data.timeZoneOffset - ); - end = new Date( - endDate[0] + - '-' + - endDate[1] + - '-' + - endDate[2] + - 'T' + - data.endTime + - ':00.000' + - data.timeZoneOffset - ); - } else { - // if there is no offset, we prepare the time, assuming it is UTC formatted - start = new Date( - startDate[0] + '-' + startDate[1] + '-' + startDate[2] + 'T' + data.startTime + ':00.000+00:00' - ); - end = new Date(endDate[0] + '-' + endDate[1] + '-' + endDate[2] + 'T' + data.endTime + ':00.000+00:00'); - if (data.timeZone != null && data.timeZone != '') { - // if a timezone is given, we adjust dynamically with the modern toLocaleString function - const utcDate = new Date(start.toLocaleString('en-US', { timeZone: 'UTC' })); - if (data.timeZone == 'currentBrowser') { - data.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; - } - const tzDate = new Date(start.toLocaleString('en-US', { timeZone: data.timeZone })); - const calcOffset = utcDate.getTime() - tzDate.getTime(); - start.setTime(start.getTime() + calcOffset); - end.setTime(end.getTime() + calcOffset); - } - } - start = start.toISOString().replace('.000', ''); - end = end.toISOString().replace('.000', ''); - if (style == 'clean') { - start = start.replace(/-/g, '').replace(/:/g, ''); - end = end.replace(/-/g, '').replace(/:/g, ''); - } - if (addTimeZoneOffset) { - let tzOffsetStart = ''; - let tzOffsetEnd = ''; - if (data.timeZoneOffset != null && data.timeZoneOffset != '') { - tzOffsetStart = data.timeZoneOffset; - tzOffsetEnd = data.timeZoneOffset; - } else if (data.timeZone != null && data.timeZone != '') { - let tzOffsetDateStart = new Date(start.toLocaleString('sv', { timeZone: data.timeZone })); - let tzOffsetStartSearch = tzOffsetDateStart.toString().match(/GMT(.{5})/g); - tzOffsetStart = tzOffsetStartSearch[0].replace(/GMT(.{3})(.{2})/g, '$1:$2'); - let tzOffsetDateEnd = new Date(end.toLocaleString('sv', { timeZone: data.timeZone })); - let tzOffsetEndSearch = tzOffsetDateEnd.toString().match(/GMT(.{5})/g); - tzOffsetEnd = tzOffsetEndSearch[0].replace(/GMT(.{3})(.{2})/g, '$1:$2'); - } - start = start.slice(0, -1) + tzOffsetStart; - end = end.slice(0, -1) + tzOffsetEnd; - } - } else { - // would be an allday event then - allday = true; - start = new Date(Date.UTC(startDate[0], startDate[1] - 1, startDate[2])); - let breakStart = start.toISOString().replace(/T(.+)Z/g, ''); - end = new Date(Date.UTC(endDate[0], endDate[1] - 1, endDate[2])); - if (targetCal == 'google' || targetCal == 'microsoft' || targetCal == 'ical') { - end.setDate(end.getDate() + 1); // increment the day by 1 for Google Calendar, iCal and Outlook - } - let breakEnd = end.toISOString().replace(/T(.+)Z/g, ''); - if (style == 'clean') { - breakStart = breakStart.replace(/-/g, ''); - breakEnd = breakEnd.replace(/-/g, ''); - } - start = breakStart; - end = breakEnd; - } - const returnObject = { start, end, allday }; - return returnObject; -} - -// SHARED FUNCTION TO SECURE URLS -function atcb_secure_url(url, throwError = true) { - if ( - url.match( - /((\.\.\/)|(\.\.\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\/)|(%252e%252e\/)|(\.\.%2f)|(\.\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\)|(%252e%252e\\)|(\.\.%5c)|(\.\.%255c)|(\.\.%c0%af)|(\.\.%25c0%25af)|(\.\.%c1%9c)|(\.\.%25c1%259c))/gi - ) - ) { - if (throwError) { - console.error( - 'Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!' - ); - } - return false; - } else { - return true; - } -} - -// SHARED FUNCTION TO CREATE INFO MODALS -function atcb_create_modal(data, headline, content, buttons, type = '') { - // setting the stage - const bgOverlay = atcb_generate_bg_overlay('modal', 'click', data.background); - const infoModalWrapper = document.createElement('div'); - infoModalWrapper.classList.add('atcb-modal', 'atcb-info-modal'); - infoModalWrapper.tabIndex = 0; - bgOverlay.appendChild(infoModalWrapper); - document.body.appendChild(bgOverlay); - document.body.classList.add('atcb-modal-no-scroll'); - const parentButton = document.getElementById(data.identifier); - if (parentButton != null) { - parentButton.classList.add('atcb-active-modal'); - } - const infoModal = document.createElement('div'); - infoModal.classList.add('atcb-modal-box'); - switch (type) { - case 'instagram': - infoModal.classList.add('atcb-modal-instagram'); - break; - } - infoModalWrapper.appendChild(infoModal); - // set overlay size just to be sure - atcb_set_fullsize(bgOverlay); - // adding headline - const infoModalHeadline = document.createElement('div'); - infoModalHeadline.classList.add('atcb-modal-headline'); - infoModalHeadline.textContent = headline; - infoModal.appendChild(infoModalHeadline); - // and text content - const infoModalContent = document.createElement('div'); - infoModalContent.classList.add('atcb-modal-content'); - infoModalContent.innerHTML = content; - infoModal.appendChild(infoModalContent); - // and a buttons - buttons.forEach((button, index) => { - let infoModalButton = document.createElement('button'); - infoModalButton.setAttribute('type', 'button'); - infoModalButton.classList.add('atcb-modal-btn'); - infoModalButton.textContent = button.label; - infoModal.appendChild(infoModalButton); - if (index == 0) { - infoModalButton.focus(); - } - switch (button.type) { - case 'close': - default: - infoModalButton.addEventListener( - 'click', - atcb_debounce(() => atcb_close()) - ); - infoModalButton.addEventListener( - 'keydown', - atcb_debounce_leading((event) => { - if (event.key == 'Enter') { - event.preventDefault(); - atcb_close(); - } - }) - ); - break; - } - }); -} - -// SHARED FUNCTION TO CALCULATE THE POSITION OF THE DROPDOWN LIST -function atcb_position_list(trigger, list) { - let anchorSet = false; - if (trigger.nextElementSibling !== null) { - if (trigger.nextElementSibling.classList.contains('atcb-dropdown-anchor')) { - trigger = trigger.nextSibling; - anchorSet = true; - } - } - const rect = trigger.getBoundingClientRect(); - list.style.width = rect.width + 'px'; - if (anchorSet === true) { - list.style.top = rect.top + window.scrollY + 'px'; - } else { - list.style.top = rect.bottom + window.scrollY + 'px'; - } - list.style.left = rect.left + 'px'; -} - -// SHARED FUNCTION TO DEFINE WIDTH AND HEIGHT FOR "FULLSCREEN" FULLSIZE ELEMENTS -function atcb_set_fullsize(el) { - el.style.width = window.innerWidth + 'px'; - el.style.height = window.innerHeight + 100 + 'px'; -} - -// SHARED DEBOUNCE AND THROTTLE FUNCTIONS -// going for last call debounce -function atcb_debounce(func, timeout = 200) { - let timer; - return (...args) => { - clearTimeout(timer); - timer = setTimeout(() => { - func.apply(this, args); - }, timeout); - }; -} -// dropping subsequent calls debounce -function atcb_debounce_leading(func, timeout = 200) { - let timer; - return (...args) => { - if (!timer) { - func.apply(this, args); - } - clearTimeout(timer); - timer = setTimeout(() => { - timer = undefined; - }, timeout); - }; -} -// throttle -function atcb_throttle(func, delay = 10) { - let result; - let timeout = null; - let previous = 0; - let later = (...args) => { - previous = Date.now(); - timeout = null; - result = func.apply(this, args); - }; - return (...args) => { - let now = Date.now(); - let remaining = delay - (now - previous); - if (remaining <= 0 || remaining > delay) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - previous = now; - result = func.apply(this, args); - } else if (!timeout) { - timeout = setTimeout(later, remaining); - } - return result; - }; -} - -// GLOBAL LISTENERS -if (isBrowser()) { - // Global listener to ESC key to close dropdown - document.addEventListener( - 'keydown', - atcb_debounce_leading((event) => { - if (event.key === 'Escape') { - atcb_close(); - } - }) - ); - // Global listener to any screen changes - window.addEventListener( - 'resize', - atcb_throttle(() => { - let activeOverlay = document.getElementById('atcb-bgoverlay'); - if (activeOverlay != null) { - atcb_set_fullsize(activeOverlay); - } - let activeButton = document.querySelector('.atcb-active'); - let activeList = document.querySelector('.atcb-dropdown'); - if (activeButton != null && activeList != null) { - atcb_position_list(activeButton, activeList); - } - }) - ); -} - -// TRANSLATIONS -function atcb_translate(identifier, language) { - switch (language) { - case 'en': - default: - switch (identifier) { - case 'Add to Calendar': - return 'Add to Calendar'; - case 'iCal File': - return 'iCal File'; - case 'Close': - return 'Close'; - case 'Close Selection': - return 'Close Selection'; - case 'Close note': - return 'Close note'; - case 'Instagram iCal': - return 'Instagram iCal'; - case 'Instagram info description': - return "Unfortunately, the Instagram browser has its problems with the way we generate the calendar file.
We automatically put a magical URL into your phone's clipboard.
  1. Close this note, ...
  2. Open any other browser on your phone, ...
  3. Paste the clipboard content and go."; - } - break; - case 'de': - switch (identifier) { - case 'Add to Calendar': - return 'Im Kalender speichern'; - case 'iCal File': - return 'iCal-Datei'; - case 'Close': - return 'Schließen'; - case 'Close Selection': - return 'Auswahl schließen'; - case 'Close note': - return 'Fenster schließen'; - case 'Instagram iCal': - return 'Instagram iCal'; - case 'Instagram info description': - return 'Leider hat der Instagram-Browser so seine Probleme mit der Art, wie wir Kalender-Dateien erzeugen.
    Wir haben automatisch eine magische URL in die Zwischenablage deines Smartphones kopiert.
    1. Schließe dieses Fenster, ...
    2. Öffne einen anderen Browser auf deinem Smartphone, ...
    3. Nutze die Einfügen-Funktion, um fortzufahren.'; - } - break; - } - // if nothing found, return the original identifier - return identifier; -} - -// START INIT -if (isBrowser()) { - if (document.readyState !== 'loading') { - // if the script is loaded after the page has been loaded, run the initilization - atcb_init(); - } else { - // otherwise, init the magic as soon as the DOM has been loaded - document.addEventListener('DOMContentLoaded', atcb_init, false); - } -} -// END INIT diff --git a/citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js b/citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js deleted file mode 100644 index 3a6cb2c..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js +++ /dev/null @@ -1,2 +0,0 @@ -const atcbVersion="1.11.4",isBrowser=new Function("try { return this===window; }catch(e){ return false; }"),isiOS=isBrowser()?new Function("if ((/iPad|iPhone|iPod/.test(navigator.userAgent || navigator.vendor || window.opera) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)){ return true; }else{ return false; }"):new Function("return false;"),isInstagram=isBrowser()?new Function("if (/Instagram/.test(navigator.userAgent || navigator.vendor || window.opera)){ return true; }else{ return false; }"):new Function("return false;");function atcb_init(){console.log("add-to-calendar button initialized (version "+atcbVersion+")"),console.log("See https://github.com/jekuer/add-to-calendar-button for details");const n=document.querySelectorAll(".atcb");if(0]+)>)/gi,""));e=atcb_patch_config(e),atcb_check_required(e)&&(e=atcb_decorate_data(e),atcb_validate(e)&&(null!=e.identifier&&""!=e.identifier||(e.identifier="atcb-btn-"+(t+a.length+1)),atcb_generate(n[parseInt(t)],e)))}}}function atcb_patch_config(t){const n={title:"name",dateStart:"startDate",dateEnd:"endDate",timeStart:"startTime",timeEnd:"endTime"};return Object.keys(n).forEach(e=>{null==t[n[""+e]]&&null!=t[""+e]&&(t[n[""+e]]=t[""+e])}),t}function atcb_decorate_data(e){if((e=atcb_date_cleanup(e)).startDate=atcb_date_calculation(e.startDate),e.endDate=atcb_date_calculation(e.endDate),"modal"===e.listStyle&&(e.trigger="click"),null!=e.language&&""!=e.language||(e.language="en"),null!=e.recurrence&&""!=e.recurrence&&(e.recurrence=e.recurrence.replace(/\s+/g,"")),!e.description||e.descriptionHtmlFree)return e;const t=Object.assign({},e);return t.description=t.description.replace(//gi,"\n"),t.descriptionHtmlFree=t.description.replace(/\[url\]/gi,"").replace(/(\|.*)\[\/url\]/gi,"").replace(/\[\/url\]/gi,""),t.description=t.description.replace(/\[url\]([\w&$+.,:;=~!*'?@^%#|\s\-()/]*)\[\/url\]/gi,function(e,t){t=t.split("|");let n='';return 1"}),t}function atcb_check_required(t){if(null==t.options||t.options.length<1)return console.error("add-to-calendar button generation failed: no options set"),!1;return["name","startDate"].every(function(e){return null!=t[""+e]&&""!=t[""+e]||(console.error("add-to-calendar button generation failed: required setting missing ["+e+"]"),!1)})}function atcb_date_cleanup(a){null!=a.endDate&&""!=a.endDate||null==a.startDate||(a.endDate=a.startDate);return["start","end"].forEach(function(e){var t;if(null!=a[e+"Date"]&&(a[e+"Date"]=a[e+"Date"].replace(/\.\d{3}/,"").replace("Z",""),null!=(t=a[e+"Date"].split("T"))[1]&&(a[e+"Date"]=t[0],a[e+"Time"]=t[1])),null!=a[e+"Time"]&&8===a[e+"Time"].length){const n=a[e+"Time"];a[e+"Time"]=n.substring(0,n.length-3)}}),a}function atcb_date_calculation(e){const t=new Date;var n=t.getUTCMonth()+1+"-"+t.getUTCDate()+"-"+t.getUTCFullYear();const a=(e=e.replace(/today/gi,n)).split("+");n=a[0].split("-");let c=new Date(n[0],n[1]-1,n[2]);return n[0].length<4&&(c=new Date(n[2],n[0]-1,n[1])),null!=a[1]&&0 YYYY-MM-DD]"),!1;var t=n[""+e].split("-");return t.length<3||3 HH:MM]"),!1;var t=n[""+e].split(":");if(t.length<2||2atcb_toggle(t,n,!1,!0))):(n.addEventListener("touchstart",atcb_debounce_leading(()=>atcb_toggle(t,n,!1,!0)),{passive:!0}),n.addEventListener("mouseenter",atcb_debounce_leading(()=>atcb_open(t,n,!1,!0)))),n.setAttribute("id",t.identifier),c=c||l,o='';break;case"Apple":n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_ical(t)})),n.setAttribute("id",t.identifier+"-apple"),c=c||"Apple",o='';break;case"Google":n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_google(t)})),n.setAttribute("id",t.identifier+"-google"),c=c||"Google",o='';break;case"iCal":n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_ical(t)})),n.setAttribute("id",t.identifier+"-ical"),c=c||atcb_translate("iCal File",t.language),o='';break;case"MicrosoftTeams":if(null!=t.recurrence&&""!=t.recurrence)return void n.remove();n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_teams(t)})),n.setAttribute("id",t.identifier+"-msteams"),c=c||"Microsoft Teams",o='';break;case"Microsoft365":if(null!=t.recurrence&&""!=t.recurrence)return void n.remove();n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_microsoft(t,"365")})),n.setAttribute("id",t.identifier+"-ms365"),c=c||"Microsoft 365",o='';break;case"Outlook.com":if(null!=t.recurrence&&""!=t.recurrence)return void n.remove();n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_microsoft(t,"outlook")})),n.setAttribute("id",t.identifier+"-outlook"),c=c||"Outlook.com",o='';break;case"Yahoo":if(null!=t.recurrence&&""!=t.recurrence)return void n.remove();n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close(),atcb_generate_yahoo(t)})),n.setAttribute("id",t.identifier+"-yahoo"),c=c||"Yahoo",o='';break;case"Close":n.addEventListener("click",atcb_debounce(()=>{i?n.blur():atcb_close()})),n.addEventListener("focus",atcb_debounce(()=>atcb_close(!1))),n.setAttribute("id",t.identifier+"-close"),c=atcb_translate("Close",t.language),o=''}if(i&&n.setAttribute("id",t.identifier),i||"Trigger"!==e?n.addEventListener("keydown",atcb_debounce_leading(e=>{"Enter"==e.key&&(e.preventDefault(),n.click())})):n.addEventListener("keydown",atcb_debounce_leading(e=>{"Enter"==e.key&&(e.preventDefault(),atcb_toggle(t,n,!0,!0))})),a){const s=document.createElement("span");s.classList.add("atcb-icon"),s.innerHTML=o,n.appendChild(s)}const r=document.createElement("span");r.classList.add("atcb-text"),r.textContent=c,n.appendChild(r)}function atcb_generate(e,t){if(e.textContent="",t.name&&t.location&&t.startDate){const i=document.createElement("script");i.setAttribute("type","application/ld+json"),i.textContent='{ "event": { "@context":"https://schema.org", "@type":"Event", ',i.textContent+='"name":"'+t.name+'", ',t.descriptionHtmlFree&&(i.textContent+='"description":"'+t.descriptionHtmlFree+'", ');var n=atcb_generate_time(t,"delimiters","general",!0);i.textContent+='"startDate":"'+n.start+'", ',i.textContent+='"endDate":"'+n.end+'", ',t.location.startsWith("http")?(i.textContent+='"eventAttendanceMode":"https://schema.org/OnlineEventAttendanceMode", ',i.textContent+='"location": { "@type":"VirtualLocation", "url":"'+t.location+'" } '):i.textContent+='"location":"'+t.location+'" ',i.textContent+="} }",e.appendChild(i)}const a=document.createElement("div"),c=(a.classList.add("atcb-button-wrapper"),e.appendChild(a),document.createElement("button"));if(c.classList.add("atcb-button"),c.setAttribute("type","button"),a.appendChild(c),1===t.options.length){n=t.options[0].split("|");atcb_generate_label(t,c,n[0],!0,t.label,!0)}else{atcb_generate_label(t,c,"Trigger",!0,t.label);const l=document.createElement("div");l.classList.add("atcb-dropdown-anchor"),a.appendChild(l)}e.classList.remove("atcb"),e.classList.add("atcb-initialized"),t.inline?e.style.display="inline-block":e.style.display="block",console.log('add-to-calendar button "'+t.identifier+'" created')}function atcb_generate_dropdown_list(n){const a=document.createElement("div");if(a.classList.add("atcb-list"),n.options.forEach(function(e){e=e.split("|");const t=document.createElement("div");t.classList.add("atcb-list-item"),t.tabIndex=0,a.appendChild(t),atcb_generate_label(n,t,e[0],!0,e[1])}),"modal"===n.listStyle){const e=document.createElement("div");e.classList.add("atcb-list-item","atcb-list-item-close"),e.tabIndex=0,a.appendChild(e),atcb_generate_label(n,e,"Close",!0)}return a}function atcb_generate_bg_overlay(e="dropdown",t="",n=!0){const a=document.createElement("div");a.setAttribute("id","atcb-bgoverlay"),"modal"!==e&&n&&a.classList.add("atcb-animate-bg"),n||a.classList.add("atcb-no-bg"),a.tabIndex=0,a.addEventListener("click",atcb_debounce(e=>{e.target===e.currentTarget&&atcb_close(!0)}));let c=!1;return a.addEventListener("touchstart",atcb_debounce_leading(()=>c=!1),{passive:!0}),a.addEventListener("touchmove",atcb_debounce_leading(()=>c=!0),{passive:!0}),a.addEventListener("touchend",atcb_debounce(e=>{!1===c&&e.target===e.currentTarget&&atcb_close(!0)}),{passive:!0}),a.addEventListener("focus",atcb_debounce_leading(e=>{e.target===e.currentTarget&&atcb_close()})),"click"!==t?a.addEventListener("mousemove",atcb_debounce_leading(e=>{e.target===e.currentTarget&&atcb_close(!0)})):a.classList.add("atcb-click"),a}function atcb_toggle(e,t,n=!1,a=!1){t.classList.contains("atcb-active")||document.querySelector(".atcb-active-modal")?atcb_close():atcb_open(e,t,n,a)}function atcb_open(e,t,n=!1,a=!1){if(!document.querySelector(".atcb-list")&&!document.querySelector(".atcb-modal")){const c=atcb_generate_dropdown_list(e),i=(t?(t.classList.add("atcb-active"),"modal"===e.listStyle?(t.classList.add("atcb-modal-style"),c.classList.add("atcb-modal")):(atcb_position_list(t,c),c.classList.add("atcb-dropdown"),a&&c.classList.add("atcb-generated-button"))):c.classList.add("atcb-modal"),atcb_generate_bg_overlay(e.listStyle,e.trigger,e.background));"modal"===e.listStyle?(document.body.appendChild(i),i.appendChild(c),document.body.classList.add("atcb-modal-no-scroll")):(document.body.appendChild(c),document.body.appendChild(i)),atcb_set_fullsize(i),n?c.firstChild.focus():(c.firstChild.focus(),c.firstChild.blur())}}function atcb_close(e=!1){if(!e){let e=document.querySelector(".atcb-active, .atcb-active-modal");e&&e.focus()}Array.from(document.querySelectorAll(".atcb-active")).forEach(e=>{e.classList.remove("atcb-active")}),Array.from(document.querySelectorAll(".atcb-active-modal")).forEach(e=>{e.classList.remove("atcb-active-modal")}),document.body.classList.remove("atcb-modal-no-scroll"),Array.from(document.querySelectorAll(".atcb-list")).concat(Array.from(document.querySelectorAll(".atcb-info-modal"))).concat(Array.from(document.querySelectorAll("#atcb-bgoverlay"))).forEach(e=>e.remove())}function atcb_action(e,t,n=!0){if(!atcb_check_required(e))throw new Error("data missing; see logs");if(!atcb_validate(e=atcb_decorate_data(e)))throw new Error("Invalid data; see logs");t?e.identifier=t.id:(e.identifier="atcb-btn-custom",e.listStyle="modal",e.trigger="click"),atcb_open(e,t,n)}function atcb_generate_google(e){let t="https://calendar.google.com/calendar/render?action=TEMPLATE";var n=atcb_generate_time(e,"clean","google");t+="&dates="+n.start+"%2F"+n.end,null!=e.name&&""!=e.name&&(t+="&text="+encodeURIComponent(e.name));let a="";null!=e.description&&""!=e.description&&(a=e.description),null!=e.location&&""!=e.location&&(t+="&location="+encodeURIComponent(e.location),isiOS()&&(""!=a&&(a+="

      "),a+="📍: "+e.location)),""!=a&&(t+="&details="+encodeURIComponent(a)),null!=e.recurrence&&""!=e.recurrence&&(t+="&recur="+encodeURIComponent(e.recurrence)),atcb_secure_url(t)&&window.open(t,"_blank").focus()}function atcb_generate_yahoo(e){let t="https://calendar.yahoo.com/?v=60";var n=atcb_generate_time(e,"clean");t+="&st="+n.start+"&et="+n.end,n.allday&&(t+="&dur=allday"),null!=e.name&&""!=e.name&&(t+="&title="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(t+="&in_loc="+encodeURIComponent(e.location)),null!=e.descriptionHtmlFree&&""!=e.descriptionHtmlFree&&(t+="&desc="+encodeURIComponent(e.descriptionHtmlFree)),atcb_secure_url(t)&&window.open(t,"_blank").focus()}function atcb_generate_microsoft(e,t="365"){let n="https://";n+="outlook"==t?"outlook.live.com":"outlook.office.com",n+="/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent";t=atcb_generate_time(e,"delimiters","microsoft");n+="&startdt="+t.start+"&enddt="+t.end,t.allday&&(n+="&allday=true"),null!=e.name&&""!=e.name&&(n+="&subject="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(n+="&location="+encodeURIComponent(e.location)),null!=e.description&&""!=e.description&&(n+="&body="+encodeURIComponent(e.description.replace(/\n/g,"
      "))),atcb_secure_url(n)&&window.open(n,"_blank").focus()}function atcb_generate_teams(e){let t="https://teams.microsoft.com/l/meeting/new?";var n=atcb_generate_time(e,"delimiters","microsoft");t+="&startTime="+n.start+"&endTime="+n.end;let a="";null!=e.name&&""!=e.name&&(t+="&subject="+encodeURIComponent(e.name)),null!=e.location&&""!=e.location&&(a=encodeURIComponent(e.location),t+="&location="+a,a+=" // "),null!=e.descriptionHtmlFree&&""!=e.descriptionHtmlFree&&(t+="&content="+a+encodeURIComponent(e.descriptionHtmlFree)),atcb_secure_url(t)&&window.open(t,"_blank").focus()}function atcb_generate_ical(n){if(null==n.icsFile||""==n.icsFile){let e=new Date;e=e.toISOString();var a=atcb_generate_time(n,"clean","ical");let t="";a.allday&&(t=";VALUE=DATE");const r=["BEGIN:VCALENDAR","VERSION:2.0"];r.push("PRODID:-// github.com/jekuer/add-to-calendar-button // atcb v"+atcbVersion+" //EN"),r.push("CALSCALE:GREGORIAN"),r.push("BEGIN:VEVENT"),r.push("UID:"+e+"@add-to-calendar-button"),r.push("DTSTAMP:"+a.start,"DTSTART"+t+":"+a.start,"DTEND"+t+":"+a.end,"SUMMARY:"+n.name.replace(/.{65}/g,"$&\r\n ")),null!=n.descriptionHtmlFree&&""!=n.descriptionHtmlFree&&r.push("DESCRIPTION:"+n.descriptionHtmlFree.replace(/\n/g,"\\n").replace(/.{60}/g,"$&\r\n ")),null!=n.description&&""!=n.description&&r.push('X-ALT-DESC;FMTTYPE=text/html:\r\n \r\n \r\n '+n.description.replace(/\n/g,"
      ").replace(/.{60}/g,"$&\r\n ")+"\r\n "),null!=n.location&&""!=n.location&&r.push("LOCATION:"+n.location),null!=n.recurrence&&""!=n.recurrence&&r.push(n.recurrence),e=e.replace(/\.\d{3}/g,"").replace(/[^a-z\d]/gi,""),r.push("STATUS:CONFIRMED","LAST-MODIFIED:"+e,"SEQUENCE:0","END:VEVENT","END:VCALENDAR");var a="data:text/calendar;charset=utf-8,"+encodeURIComponent(r.join("\r\n")),c=n.iCalFileName||"event-to-save-in-my-calendar";if(isInstagram()){const s=document.createElement("input");document.body.appendChild(s);var i,l=s.contentEditable,m=s.readOnly,o=(s.value=a,s.contentEditable=!0,s.readOnly=!1,isiOS()?((i=document.createRange()).selectNodeContents(s),(o=window.getSelection()).removeAllRanges(),o.addRange(i),s.setSelectionRange(0,999999)):(navigator.clipboard.writeText(a),s.select()),s.contentEditable=l,s.readOnly=m,document.execCommand("copy"),s.remove(),[{label:atcb_translate("Close note",n.language),type:"close"}]);atcb_create_modal(n,atcb_translate("Instagram iCal",n.language),atcb_translate("Instagram info description",n.language),o,"instagram")}else try{if(window.ActiveXObject){if(window.ActiveXObject&&document.execCommand){const d=window.open(a,"_blank");d.document.close(),d.document.execCommand("SaveAs",!0,c||a),d.close()}}else{const u=document.createElement("a");u.href=a,u.target="_blank",u.download=c;var b=new MouseEvent("click",{view:window,button:0,bubbles:!0,cancelable:!1});u.dispatchEvent(b),(window.URL||window.webkitURL).revokeObjectURL(u.href)}}catch(e){console.error(e)}}else window.open(n.icsFile,"_self")}function atcb_generate_time(l,n="delimiters",a="general",d=!1){var c=l.startDate.split("-"),i=l.endDate.split("-");let o="",r="",s=!1;if(null!=l.startTime&&null!=l.endTime){if(null!=l.timeZoneOffset&&""!=l.timeZoneOffset)o=new Date(c[0]+"-"+c[1]+"-"+c[2]+"T"+l.startTime+":00.000"+l.timeZoneOffset),r=new Date(i[0]+"-"+i[1]+"-"+i[2]+"T"+l.endTime+":00.000"+l.timeZoneOffset);else if(o=new Date(c[0]+"-"+c[1]+"-"+c[2]+"T"+l.startTime+":00.000+00:00"),r=new Date(i[0]+"-"+i[1]+"-"+i[2]+"T"+l.endTime+":00.000+00:00"),null!=l.timeZone&&""!=l.timeZone){const t=new Date(o.toLocaleString("en-US",{timeZone:"UTC"})),u=("currentBrowser"==l.timeZone&&(l.timeZone=Intl.DateTimeFormat().resolvedOptions().timeZone),new Date(o.toLocaleString("en-US",{timeZone:l.timeZone})));var e=t.getTime()-u.getTime();o.setTime(o.getTime()+e),r.setTime(r.getTime()+e)}if(o=o.toISOString().replace(".000",""),r=r.toISOString().replace(".000",""),"clean"==n&&(o=o.replace(/-/g,"").replace(/:/g,""),r=r.replace(/-/g,"").replace(/:/g,"")),d){let c="",i="";if(null!=l.timeZoneOffset&&""!=l.timeZoneOffset)c=l.timeZoneOffset,i=l.timeZoneOffset;else if(null!=l.timeZone&&""!=l.timeZone){let e=new Date(o.toLocaleString("sv",{timeZone:l.timeZone})),t=e.toString().match(/GMT(.{5})/g),n=(c=t[0].replace(/GMT(.{3})(.{2})/g,"$1:$2"),new Date(r.toLocaleString("sv",{timeZone:l.timeZone}))),a=n.toString().match(/GMT(.{5})/g);i=a[0].replace(/GMT(.{3})(.{2})/g,"$1:$2")}o=o.slice(0,-1)+c,r=r.slice(0,-1)+i}}else{s=!0,o=new Date(Date.UTC(c[0],c[1]-1,c[2]));let e=o.toISOString().replace(/T(.+)Z/g,""),t=(r=new Date(Date.UTC(i[0],i[1]-1,i[2])),"google"!=a&&"microsoft"!=a&&"ical"!=a||r.setDate(r.getDate()+1),r.toISOString().replace(/T(.+)Z/g,""));"clean"==n&&(e=e.replace(/-/g,""),t=t.replace(/-/g,"")),o=e,r=t}return{start:o,end:r,allday:s}}function atcb_secure_url(e,t=!0){return!e.match(/((\.\.\/)|(\.\.\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\/)|(%252e%252e\/)|(\.\.%2f)|(\.\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\)|(%252e%252e\\)|(\.\.%5c)|(\.\.%255c)|(\.\.%c0%af)|(\.\.%25c0%25af)|(\.\.%c1%9c)|(\.\.%25c1%259c))/gi)||(t&&console.error("Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!"),!1)}function atcb_create_modal(e,t,n,a,d=""){const c=atcb_generate_bg_overlay("modal","click",e.background),i=document.createElement("div"),l=(i.classList.add("atcb-modal","atcb-info-modal"),i.tabIndex=0,c.appendChild(i),document.body.appendChild(c),document.body.classList.add("atcb-modal-no-scroll"),document.getElementById(e.identifier)),o=(null!=l&&l.classList.add("atcb-active-modal"),document.createElement("div")),r=(o.classList.add("atcb-modal-box"),"instagram"===d&&o.classList.add("atcb-modal-instagram"),i.appendChild(o),atcb_set_fullsize(c),document.createElement("div")),s=(r.classList.add("atcb-modal-headline"),r.textContent=t,o.appendChild(r),document.createElement("div"));s.classList.add("atcb-modal-content"),s.innerHTML=n,o.appendChild(s),a.forEach((e,t)=>{let n=document.createElement("button");n.setAttribute("type","button"),n.classList.add("atcb-modal-btn"),n.textContent=e.label,o.appendChild(n),0==t&&n.focus(),e.type,n.addEventListener("click",atcb_debounce(()=>atcb_close())),n.addEventListener("keydown",atcb_debounce_leading(e=>{"Enter"==e.key&&(e.preventDefault(),atcb_close())}))})}function atcb_position_list(e,t){let n=!1;null!==e.nextElementSibling&&e.nextElementSibling.classList.contains("atcb-dropdown-anchor")&&(e=e.nextSibling,n=!0);e=e.getBoundingClientRect();t.style.width=e.width+"px",!0===n?t.style.top=e.top+window.scrollY+"px":t.style.top=e.bottom+window.scrollY+"px",t.style.left=e.left+"px"}function atcb_set_fullsize(e){e.style.width=window.innerWidth+"px",e.style.height=window.innerHeight+100+"px"}function atcb_debounce(t,n=200){let a;return(...e)=>{clearTimeout(a),a=setTimeout(()=>{t.apply(this,e)},n)}}function atcb_debounce_leading(t,n=200){let a;return(...e)=>{a||t.apply(this,e),clearTimeout(a),a=setTimeout(()=>{a=void 0},n)}}function atcb_throttle(a,c=10){let i,l=null,o=0,r=(...e)=>{o=Date.now(),l=null,i=a.apply(this,e)};return(...e)=>{var t=Date.now(),n=c-(t-o);return n<=0||cWe automatically put a magical URL into your phone's clipboard.
      1. Close this note, ...
      2. Open any other browser on your phone, ...
      3. Paste the clipboard content and go."}break;case"de":switch(e){case"Add to Calendar":return"Im Kalender speichern";case"iCal File":return"iCal-Datei";case"Close":return"Schließen";case"Close Selection":return"Auswahl schließen";case"Close note":return"Fenster schließen";case"Instagram iCal":return"Instagram iCal";case"Instagram info description":return"Leider hat der Instagram-Browser so seine Probleme mit der Art, wie wir Kalender-Dateien erzeugen.
        Wir haben automatisch eine magische URL in die Zwischenablage deines Smartphones kopiert.
        1. Schließe dieses Fenster, ...
        2. Öffne einen anderen Browser auf deinem Smartphone, ...
        3. Nutze die Einfügen-Funktion, um fortzufahren."}}return e}isBrowser()&&(document.addEventListener("keydown",atcb_debounce_leading(e=>{"Escape"===e.key&&atcb_close()})),window.addEventListener("resize",atcb_throttle(()=>{var e=document.getElementById("atcb-bgoverlay"),e=(null!=e&&atcb_set_fullsize(e),document.querySelector(".atcb-active")),t=document.querySelector(".atcb-dropdown");null!=e&&null!=t&&atcb_position_list(e,t)}))),isBrowser()&&("loading"!==document.readyState?atcb_init():document.addEventListener("DOMContentLoaded",atcb_init,!1)); -//# sourceMappingURL=atcb.min.js.map \ No newline at end of file diff --git a/citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js.map b/citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js.map deleted file mode 100644 index e5f8640..0000000 --- a/citelibre-participEZ/webapp/js/util/actb/js/atcb.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"atcb.min.js","sources":["atcb.js"],"names":["atcbVersion","isBrowser","Function","isiOS","isInstagram","atcb_init","console","log","atcButtons","document","querySelectorAll","length","atcButtonsInitialized","let","i","parseInt","classList","contains","atcbConfig","JSON","parse","innerHTML","replace","atcb_patch_config","atcb_check_required","atcb_decorate_data","atcb_validate","identifier","atcb_generate","keyChanges","title","dateStart","dateEnd","timeStart","timeEnd","Object","keys","forEach","key","atcb_date_cleanup","startDate","atcb_date_calculation","endDate","listStyle","trigger","language","recurrence","description","descriptionHtmlFree","data","assign","match","p1","urlText","split","link","options","error","every","field","point","tmpSplitStartDate","timeStr","substring","dateString","today","Date","todayString","getUTCMonth","getUTCDate","getUTCFullYear","dateStringParts","dateParts","newDate","setDate","getDate","getFullYear","getMonth","test","icsFile","atcb_secure_url","option","cleanOption","includes","dates","date","time","timeParts","getTime","startTime","endTime","atcb_generate_label","parent","type","icon","text","oneOption","defaultTriggerText","atcb_translate","iconSvg","addEventListener","atcb_debounce_leading","atcb_toggle","passive","atcb_open","setAttribute","atcb_debounce","blur","atcb_close","atcb_generate_ical","atcb_generate_google","remove","atcb_generate_teams","atcb_generate_microsoft","atcb_generate_yahoo","event","preventDefault","click","iconEl","createElement","add","appendChild","textEl","textContent","button","name","location","schemaEl","formattedDate","atcb_generate_time","start","end","startsWith","buttonTriggerWrapper","buttonTrigger","optionParts","label","buttonDropdownAnchor","inline","style","display","atcb_generate_dropdown_list","optionsList","optionItem","tabIndex","atcb_generate_bg_overlay","darken","bgOverlay","e","target","currentTarget","fingerMoved","keyboardTrigger","generatedButton","querySelector","list","atcb_position_list","background","body","atcb_set_fullsize","firstChild","focus","blockFocus","newFocusEl","Array","from","concat","el","atcb_action","triggerElement","Error","id","url","encodeURIComponent","tmpDataDescription","window","open","allday","locationString","now","toISOString","timeslot","ics_lines","push","dlurl","join","filename","iCalFileName","tmpInput","range","editable","contentEditable","readOnly","buttons","value","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","setSelectionRange","navigator","clipboard","writeText","select","execCommand","atcb_create_modal","ActiveXObject","_window","close","save","href","download","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","URL","webkitURL","revokeObjectURL","targetCal","addTimeZoneOffset","timeZoneOffset","timeZone","utcDate","toLocaleString","tzDate","Intl","DateTimeFormat","resolvedOptions","calcOffset","setTime","tzOffsetStart","tzOffsetEnd","tzOffsetDateStart","tzOffsetStartSearch","toString","tzOffsetDateEnd","tzOffsetEndSearch","slice","UTC","breakStart","breakEnd","throwError","headline","content","infoModalWrapper","parentButton","getElementById","infoModal","infoModalHeadline","infoModalContent","index","infoModalButton","anchorSet","nextElementSibling","nextSibling","rect","getBoundingClientRect","width","top","scrollY","bottom","left","innerWidth","height","innerHeight","func","timeout","timer","args","clearTimeout","setTimeout","apply","this","undefined","atcb_throttle","delay","result","previous","later","remaining","activeOverlay","activeButton","activeList","readyState"],"mappings":"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"} \ No newline at end of file diff --git a/external.env b/external.env index 17b9ea9..8fdd36f 100644 --- a/external.env +++ b/external.env @@ -27,12 +27,12 @@ LUTECE_AVAILABLE_LANG=en,fr #MATOMO_DATABASE_USERNAME=adminmatomo #MATOMO_DATABASE_PASSWORD=motdepass -URL_CITELIRE=http:\/\/localhost:8080 -URL_CITELIRE_HTTPS=https:\/\/localhost:8080 -URL_CITELIRE_HTML=http%3A%2F%2Flocalhost +PROTOCOL=http +URL_CITELIBRE=localhost:8080 URL_KIBANA=http:\/\/localhost:5601 URL_MATOMO_HTTP=http:\/\/localhost URL_MATOMO_HTTPS=https:\/\/localhost -URL_KEYCLOAK=http:\/\/localhost:8081 +# don't add the protocol for the URL_KEYCLOAK, edit the PROTOCOL variable. +URL_KEYCLOAK=localhost:8081 URL_SOLR=http:\/\/localhost:8983 URL_MAIL=http:\/\/localhost:1080 \ No newline at end of file diff --git a/keycloak/Dockerfile b/keycloak/Dockerfile index c850cca..a3250df 100644 --- a/keycloak/Dockerfile +++ b/keycloak/Dockerfile @@ -1,25 +1,34 @@ -from keycloak/keycloak:18.0.0 +FROM keycloak/keycloak:26.0.7-0 +#18.0.0 -env KEYCLOAK_USER=admin -env KEYCLOAK_PASSWORD=admin1234 -env KEYCLOAK_LOGLEVEL=DEBUG -env ROOT_LOGLEVEL=DEBUG -env DB_VENDOR=mysql -env DB_ADDR=db -env DB_PORT=3306 -env DB_DATABASE=keycloak -env DB_USER=root -env DB_PASSWORD=root -env DB_SCHEMA=public +ENV KEYCLOAK_USER=admin +ENV KEYCLOAK_PASSWORD=admin1234 +ENV KEYCLOAK_LOGLEVEL=DEBUG +ENV ROOT_LOGLEVEL=DEBUG +ENV DB_VENDOR=mysql +ENV DB_ADDR=db +ENV DB_PORT=3306 +ENV DB_DATABASE=keycloak +ENV DB_USER=root +ENV DB_PASSWORD=root +ENV DB_SCHEMA=public -env KC_DB=mariadb -env KC_DB_URL=jdbc:mariadb://db:3306/keycloak -env KC_DB_USERNAME=root -env KC_DB_PASSWORD=root +ENV KC_DB=mariadb +ENV KC_DB_URL=jdbc:mariadb://db:3306/keycloak +ENV KC_DB_USERNAME=root +ENV KC_DB_PASSWORD=root -copy themes/mytheme /opt/keycloak/themes/mytheme -copy wait /tmp/wait -copy wait-db-available.sh /docker-entrypoint-initdb.d +ENV KC_HOSTNAME_STRICT=false +ENV quarkus.hibernate-orm.persistence-xml.ignore=true +ENV KC_HOSTNAME_STRICT_HTTPS=false +# Deprecated +# ENV KC_PROXY='edge' -entrypoint ["/bin/sh", "/docker-entrypoint-initdb.d"] +COPY themes/citelibre /opt/keycloak/themes/citelibre +# COPY themes/mytheme /opt/keycloak/themes/mytheme + +COPY wait /tmp/wait +COPY entrypoint.sh /docker-entrypoint-initdb.d + +ENTRYPOINT ["/bin/sh", "/docker-entrypoint-initdb.d"] diff --git a/keycloak/entrypoint.sh b/keycloak/entrypoint.sh new file mode 100755 index 0000000..c207be9 --- /dev/null +++ b/keycloak/entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +export WAIT_HOSTS=$DB_ADDR:$DB_PORT +export WAIT_HOSTS_TIMEOUT=600 +export WAIT_SLEEP_INTERVAL=30 +export WAIT_HOST_CONNECT_TIMEOUT=30 + + +protocol=${PROTOCOL:-http} +url_keycloak=${URL_KEYCLOAK} + +if [[ "$PROTOCOL" == "http" ]]; then + http_enabled="true" +else + http_enabled="false" + url_keycloak="${protocol}://${url_keycloak}" +fi + +if echo "$url_keycloak" | grep -qE "localhost|127\.0\.0\.1"; then + url_keycloak="localhost" +fi + +/tmp/wait +/opt/keycloak/bin/kc.sh \ + start-dev \ + --proxy-headers forwarded --hostname-strict=false --http-enabled=${http_enabled} \ + --hostname=${url_keycloak} diff --git a/keycloak/themes/citelibre/login/login.ftl b/keycloak/themes/citelibre/login/login.ftl new file mode 100644 index 0000000..5564528 --- /dev/null +++ b/keycloak/themes/citelibre/login/login.ftl @@ -0,0 +1,50 @@ +<#import "template.ftl" as layout> +<#import "field.ftl" as field> +<#import "buttons.ftl" as buttons> +<#import "social-providers.ftl" as identityProviders> +<@layout.registrationLayout displayMessage=!messagesPerField.existsError('username','password') displayInfo=realm.password && realm.registrationAllowed && !registrationDisabled??; section> + + <#if section = "header"> +

          + <#elseif section = "form"> +
          +
          + <#if realm.password> +
          + <#if !usernameHidden??> + <#assign label> + <#if !realm.loginWithEmailAllowed>${msg("username")}<#elseif !realm.registrationEmailAsUsername>${msg("usernameOrEmail")}<#else>${msg("email")} + + <@field.input name="username" label=label autofocus=true autocomplete="username" value=login.username!'' /> + + + <@field.password name="password" label=msg("password") forgotPassword=realm.resetPasswordAllowed autofocus=usernameHidden?? autocomplete="current-password" /> + +
          + <#if realm.rememberMe && !usernameHidden??> + <@field.checkbox name="rememberMe" label=msg("rememberMe") value=login.rememberMe?? /> + +
          + + value="${auth.selectedCredential}"/> + <@buttons.loginButton /> +
          + +
          +
          + <#elseif section = "info" > + <#if realm.password && realm.registrationAllowed && !registrationDisabled??> +
          + + <#elseif section = "socialProviders" > + <#if realm.password && social.providers?? && social.providers?has_content> + <@identityProviders.show social=social/> + + + + + diff --git a/keycloak/themes/citelibre/login/resources/css/styles.css b/keycloak/themes/citelibre/login/resources/css/styles.css new file mode 100644 index 0000000..672294b --- /dev/null +++ b/keycloak/themes/citelibre/login/resources/css/styles.css @@ -0,0 +1,104 @@ +:root { + --keycloak-logo-url: url('../img/logo-pack-light.min.svg'); + --keycloak-bg-logo-url: url("../img/bg.svg"); + --keycloak-logo-height: 63px; + --keycloak-logo-width: 300px; +} + +.pf-v5-c-login__container { + grid-template-columns: 34rem; + grid-template-areas: "header" + "main" +} + +.login-pf body { + background: var(--keycloak-bg-logo-url) no-repeat center center fixed; + background-size: cover; + height: 100%; +} + +div.kc-logo-text { + background-image: var(--keycloak-logo-url); + height: var(--keycloak-logo-height); + width: var(--keycloak-logo-width); + background-repeat: no-repeat; + background-size: contain; + margin: 0 auto; +} + +div.kc-logo-text span { + display: none; +} + +.kc-login-tooltip { + position: relative; + display: inline-block; +} + +.kc-login-tooltip .kc-tooltip-text{ + top:-3px; + left:160%; + background-color: black; + visibility: hidden; + color: #fff; + + min-width:130px; + text-align: center; + border-radius: 2px; + box-shadow:0 1px 8px rgba(0,0,0,0.6); + padding: 5px; + + position: absolute; + opacity:0; + transition:opacity 0.5s; +} + +/* Show tooltip */ +.kc-login-tooltip:hover .kc-tooltip-text { + visibility: visible; + opacity:0.7; +} + +/* Arrow for tooltip */ +.kc-login-tooltip .kc-tooltip-text::after { + content: " "; + position: absolute; + top: 15px; + right: 100%; + margin-top: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent black transparent transparent; +} + +#kc-recovery-codes-list { + columns: 2; +} + +#certificate_subjectDN { + overflow-wrap: break-word +} + +#kc-header-wrapper { + font-size: 29px; + text-transform: uppercase; + letter-spacing: 3px; + line-height: 1.2em; + white-space: normal; + color: var(--pf-v5-global--Color--light-100) !important; + text-align: center; +} + +hr { + margin-top: var(--pf-v5-global--spacer--sm); + margin-bottom: var(--pf-v5-global--spacer--md); +} + +@media (min-width: 768px) { + div.pf-v5-c-login__main-header { + display: flex; + flex-direction: column; + margin: 0 auto; + /* grid-template-columns: 70% 30%;*/ + } +} diff --git a/keycloak/themes/citelibre/login/resources/img/bg.svg b/keycloak/themes/citelibre/login/resources/img/bg.svg new file mode 100644 index 0000000..dbb3f1f --- /dev/null +++ b/keycloak/themes/citelibre/login/resources/img/bg.svg @@ -0,0 +1 @@ + diff --git a/citelibre-participEZ/webapp/images/logo-pack-light.min.svg b/keycloak/themes/citelibre/login/resources/img/logo-pack-light.min.svg similarity index 100% rename from citelibre-participEZ/webapp/images/logo-pack-light.min.svg rename to keycloak/themes/citelibre/login/resources/img/logo-pack-light.min.svg diff --git a/keycloak/themes/citelibre/login/theme.properties b/keycloak/themes/citelibre/login/theme.properties new file mode 100644 index 0000000..bfdf553 --- /dev/null +++ b/keycloak/themes/citelibre/login/theme.properties @@ -0,0 +1,2 @@ +parent=keycloak.v2 +import=common/keycloak diff --git a/keycloak/themes/mytheme/account/account.ftl b/keycloak/themes/mytheme/account/account.ftl deleted file mode 100644 index 14d3ad0..0000000 --- a/keycloak/themes/mytheme/account/account.ftl +++ /dev/null @@ -1,79 +0,0 @@ -<#import "template.ftl" as layout> -<@layout.mainLayout active='account' bodyClass='user'; section> - -
          -
          -

          ${msg("editAccountHtmlTitle")}

          -
          -
          - * ${msg("requiredFields")} -
          -
          - -
          - - - - <#if !realm.registrationEmailAsUsername> -
          -
          - <#if realm.editUsernameAllowed>* -
          - -
          - disabled="disabled" value="${(account.username!'')}"/> -
          -
          - - -
          -
          - * -
          - -
          - -
          -
          - -
          -
          - * -
          - -
          - -
          -
          - -
          -
          - * -
          - -
          - -
          -
          -
          -
          - -
          -
          - -
          -
          - - -
          -
          -
          - <#if url.referrerURI??>${kcSanitize(msg("backToApplication")?no_esc)} - - -
          -
          -
          -
          - - diff --git a/keycloak/themes/mytheme/account/resources/css/account.css b/keycloak/themes/mytheme/account/resources/css/account.css deleted file mode 100644 index 3878e43..0000000 --- a/keycloak/themes/mytheme/account/resources/css/account.css +++ /dev/null @@ -1,277 +0,0 @@ -html { - height: 100%; -} - -body { - background-color: #F9F9F9; - margin: 0; - padding: 0; - height: 100%; -} - -header .navbar { - margin-bottom: 0; - min-height: inherit; -} - -.header .container { - position: relative; -} - -.navbar-title { - background-image: url('../img/logo.png'); - height: 25px; - background-repeat: no-repeat; - width: 123px; - margin: 3px 10px 5px; - text-indent: -99999px; -} - -.navbar-pf .navbar-utility { - right: 20px; - top: -34px; - font-size: 12px; -} - -.navbar-pf .navbar-utility > li > a { - color: #fff !important; - padding-bottom: 12px; - padding-top: 11px; - border-left: medium none; -} - -.container { - height: 100%; -} - -.content-area { - background-color: #fff; - border-color: #CECECE; - border-style: solid; - border-width: 0 1px; - height: 100%; - padding: 0 30px; -} - -.margin-bottom { - margin-bottom: 10px; -} - -/* Sidebar */ - -.bs-sidebar { - background-color: #f9f9f9; - padding-top: 44px; - padding-right: 0; - padding-left: 0; - z-index: 20; -} -.bs-sidebar ul { - list-style: none; - padding-left: 12px; -} - -.bs-sidebar ul li { - margin-bottom: 0.5em; - margin-left: -1em; -} -.bs-sidebar ul li a { - font-size: 14px; - padding-left: 25px; - color: #4d5258; - line-height: 28px; - display: block; - border-width: 1px 0 1px 1px; - border-style: solid; - border-color: #f9f9f9; -} -.bs-sidebar ul li a:hover, -.bs-sidebar ul li a:focus { - text-decoration: none; - color: #777777; - border-right: 2px solid #aaa; -} -.bs-sidebar ul li.active a { - background-color: #c7e5f0; - border-color: #56bae0; - font-weight: bold; - background-image: url(../img/icon-sidebar-active.png); - background-repeat: no-repeat; - background-position: right center; -} - -.bs-sidebar ul li.active a:hover { - border-right: none; -} - - -.content-area h2 { - font-family: "Open Sans", sans-serif; - font-weight: 100; - font-size: 24px; - margin-bottom: 25px; - margin-top: 25px; -} - -.subtitle { - text-align: right; - margin-top: 30px; - color: #909090; -} - -.required { - color: #CB2915; -} - - -.alert { - margin-top: 30px; - margin-bottom: 0; -} - -.feedback-aligner .alert { - background-position: 1.27273em center; - background-repeat: no-repeat; - border-radius: 2px; - border-width: 1px; - color: #4D5258; - display: inline-block; - font-size: 1.1em; - line-height: 1.4em; - margin: 0; - padding: 0.909091em 3.63636em; - position: relative; - text-align: left; -} -.alert.alert-success { - background-color: #E4F1E1; - border-color: #4B9E39; -} -.alert.alert-error { - background-color: #F8E7E7; - border-color: #B91415; -} -.alert.alert-warning { - background-color: #FEF1E9; - border-color: #F17528; -} -.alert.alert-info { - background-color: #E4F3FA; - border-color: #5994B2; -} - -.form-horizontal { - border-top: 1px solid #E9E8E8; - padding-top: 23px; -} - -.form-horizontal .control-label { - color: #909090; - line-height: 1.4em; - padding-top: 5px; - position: relative; - text-align: right; - width: 100%; -} - -.form-group { - position: relative; -} - -.control-label + .required { - position: absolute; - right: -2px; - top: 0; -} - -#kc-form-buttons { - text-align: right; - margin-top: 10px; -} - -#kc-form-buttons .btn-primary { - float: right; - margin-left: 8px; -} - -/* Authenticator page */ - -ol { - padding-left: 40px; -} - -ol li { - font-size: 13px; - margin-bottom: 10px; - position: relative; -} - -ol li img { - margin-top: 15px; - margin-bottom: 5px; - border: 1px solid #eee; -} - -hr + .form-horizontal { - border: none; - padding-top: 0; -} - -.kc-dropdown{ - position: relative; -} -.kc-dropdown > a{ - display:block; - padding: 11px 10px 12px; - line-height: 12px; - font-size: 12px; - color: #fff !important; - text-decoration: none; -} -.kc-dropdown > a::after{ - content: "\2c5"; - margin-left: 4px; -} -.kc-dropdown:hover > a{ - background-color: rgba(0,0,0,0.2); -} -.kc-dropdown ul li a{ - padding: 1px 11px; - font-size: 12px; - color: #000 !important; - border: 1px solid #fff; - text-decoration: none; - display:block; - line-height: 20px; -} -.kc-dropdown ul li a:hover{ - color: #4d5258; - background-color: #d4edfa; - border-color: #b3d3e7; -} -.kc-dropdown ul{ - position: absolute; - z-index: 2000; - list-style:none; - display:none; - padding: 5px 0px; - margin: 0px; - background-color: #fff !important; - border: 1px solid #b6b6b6; - border-radius: 1px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; - min-width: 100px; -} -.kc-dropdown:hover ul{ - display:block; -} - - -#kc-totp-secret-key { - border: 1px solid #eee; - font-size: 16px; - padding: 10px; - margin: 50px 0; -} \ No newline at end of file diff --git a/keycloak/themes/mytheme/account/resources/img/icon-sidebar-active.png b/keycloak/themes/mytheme/account/resources/img/icon-sidebar-active.png deleted file mode 100644 index e7b9b082836b728286e1962f7d2efc81ddbe0b71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#D!3HFcd~W{?q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c73FxkIEGZ*N=jIun2<7~^e}_RcjiI`=UK zVCeYHtShu&-DyXLq!)E7W+-p1Ilz&A@c@&Xh}=}&gd+kA7qR+CC9YLuAP#kTzP zOOabP0l+XkKxNbyD diff --git a/keycloak/themes/mytheme/account/resources/img/keycloak-logo.png b/keycloak/themes/mytheme/account/resources/img/keycloak-logo.png deleted file mode 100644 index 955574855d493cc248e112b7d755a95d641613f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5213 zcmaJ_cT^MW_6;H;A{{Ig2}nmmLJ1`F5)_dlMWjee0)&ua5}GuDDd;Q004kV_lCCd z$(VTZ2%kN3@~%d%Rh$f$DTuoi6M`ef!=8i&XrKrVXrM06-U)4twnus0Z$~Qw0JK6F z)4P7-%Op7um(2nhVUq`w07 z_5c4+9PaOEGQ}AEU%mfGOg8l*qNR<|WP%$Bd2(=$SAVA>!nH_fdkTSMN+7uY)kPy` z0);?!CJ=#ICQzW5zC99y|GgppCqiEzu8SvA?D0snuC|Kc2?q#+LBX|UWWZoeZ72)@ zg+L$(Sr|k|3!$T^2!(*XZGXTKaqpPi9>N&b(&ER87tvY^vYr8#_^(_0gHjoST ztL*JvNpJBQXJ6LA>U7*SmPZn6gY;%Trx`1aEF{92?&t|>aF*R{Lt@SgJ>)!V1r*rV zk!imrQ*pdX5}8OI6Ox70rM3C2eKY9ZOCcZs`qG`k`c^$GbCZ_eDAAa~Q(z<|dG_Ty zb^s^9kJj2LufQBClr7P8K}4)?!{+w1&14>G{=#Q~$0_9xRY(ID##RI-@^ z|8ACygkMTDWj5lc#T@!u`Sacx@>ax_W*55PN8yj^fUQr%>;eA}c(ZUZ*Iv_iYR5Gs+>vonoU5g>S zt*a{%H2>WA*AoGiWUIxOLvo21kL|k9M2}o%nmW1F)KnDMoGn2jFTd~)5_u!kCEsl2 zio?s}MChGmXF#t+0d@yjLw`EVVfj=l^U4G7O7KvsLv4y*gUp$;m-ox*oFm)5G^Mal zxAd*c*JpTT?MG)YtIH(4^7aJO?loTZzwyOzJIDaKRy^ zS$c^q9uPm{Wv6!^DT$^W3*R)*3i*UnXVnC?PGP#TOq{6)k7LcP4e(cN@=Jn`DJHa* zdHtqZY>h_;Se#PH4=LjO7wwq!CwMyg;|7E;^Ad5zw4kqlxAmpHF9u1HFdKehR{D8l zYDMQr$JR9zhs4`(sHxplfd?Ch0IweJ^|+7igz$Me_?_OgTB}uC3ki6;^mBDKtE#dx zx%FGj<*a>^`eHUYsA|BG*LK)BF+{rl;kBcLPR9pcSQ*^TcL46eJAsj<46zR1Zunm85wPJ0O|mSWx#K=Z~fbFhw(o|XkxXhG-s{^JC-faw;d8h&mW z4!eE%;~Ul zt&Qm@7&N8x;vQ>n9SG84`L6Gq3BN5~Zq?dr_W-jo+5UY7A1y+!Kdq^_MNqApzxW)!@(|3!{l%?*?%D$P2r zTb*lYK6*4}{d1d`MTb>QKZriJr+j!m!KG`k)Vmt!wYBA@(&t!fYApec;!pK`uc)LTd*Qw963t}nZelff%`S@Mto_3F3IF0Ww zJHkj}^6=6(ru&on4*trI+GFlTc|p_V$+oV)TvJMoEG@&l>Ie6nmqf*UGX<^R+ksZk zVy_kC4QbwkpB{*S1brVs<|d_dPPWECLCLoU?i|GxUobP$u!wUpP!P)Q|KiB9md0%foVFL z=5MU}@U*P&^qP!r-Tf|Y)Gvm}eBtfZ)YGev&c{7q3{oySRg~aX7Hk!IzsMmOXkT4^ z*?VX(YRSVs0+(Fy=IwA)P!}Xk=?RsSK4Xl|mosJGf$i{$oxgSdzV_05#ck1s1|A~G z)Rm>$#*zUj*Ijdley1;dL!_^_PQ|%pB%WhP!*8N|rEIU1PgbT(4SiM?O~kT`OM^ z_x6kKjPmWMeau%S?{;hRNx4Bca&{#{lNpYFbPzRDRLw1AksFbfWsz!Q<3cgBGMNdi zd%aj6Ncx;iLDbZ|e0>w5ko0X*&uvDV*huzF@4B1kcM(;ZZm`OEHQNk_#;KHQCE2`I zdI%#^MpFhBCWxaz)U5NNK|d@>=Qx$QZ8y69KR7dXRh ztt(wuxTzJ4we`;2xEnAXTieRw96cZ9@pj`9qt$NvwXQ*-9j~vUF?=~DPi@wIZr2Un ztY81Y@>+CH$kj+EvVAkMlFf3X%AymZ+4}Ue$f6GltX?Om)S1bLp+y+f#>x#Clvqa^ zm4Tr5lU_witBrWsPP8OGEswoEGm{maHcpk?Syy1M|ACS~To3MTZmbob(Ntx6yr7As z*VdBVHhr7jmZB0`K<$P-d2D@`u$*~|O1(Uxsw%3j_8dCLF`!*)my{N;5eD7+pnRqi zY5ztXd#l=Ot>9) zvKAYjsZ7f`kSg2<4*A|Q%z~sKkHxR`vS?_~xv}--W(Fip1N%joRuGKChfHjF7xgdY zpV6wPX*e1R7FGVx)8jeY64^2TQ9L+uWZ3eYO}7H?mRo=Ij))<`wnn&B@i~|on|Ivn zA|HDX6=Ewo>e}vle{<7J$yu%rGm2EXI=kLfjlZ#6tq@Z%ptn}6d2EfNX}LyH?*?y{ zXr;BT@1}3Et|ckdyN1I1s?>IX{j-%n_b27qNI9dvWaghRqjy$wcR; zjFJ?MhE!I{&T!$+@|QxFB^@MT^M z?QH+b+v$I4*as4v1U}~5{W@2ou(;{X<}1R0lVicDvbPWDJW&`e)lma=Uu(@8=S&e> z%TyeW#qjJAI2#+CH&evW+sk#*$?ojjw-_fBz(?~V!$00X?o+DYNwk@G_Y~UFlOwhN zq<@gDY!T+v6cv<7buJ28DlmDDS&u*D?6irpkA3|U@+GR-dy)zZo?7^ZMi(Zg z^+GbR4fQe6#kXkb6t43j*oUFlA#)?2h9>U_B^c-MMO#~Zj}d90wsGs}8cETGy)g)X z!h#-fxray;(&J6|9IC-H+2LNya`t@TBkO~QR6X@YX&*UQ<5K=S?K_HX>9%I)`g?GK z{;gN}Y-85<27QKK7kRh0eo`;sPk0qGx^t)CtqwNkX|K}yo9{{bdf(fsJx8|>v^d9M z$!Ud(J5C{16;@ru8K_nsZU)`vU>R3W<5(DZRb@6m{ayTPo+`pY_7JH zO;=Y7f9}n>GMqQ{hB=~^v2(udkE4USVacL$HI^$(sxNDP6-~xOPGuP7@M#bAobdy-KSQ4a|9$Omt{j}fk zdsx^BIu7MrQPz^cZ*Jq&jqJQEFbg+)4j%I^(4C>sTT*u(q2Bchlj|&Gjwlr<08MAOBVKg2JRYd6*G6v^$#WAObvg#?#6cSOLPwJ z$n4pePe>=E>yYL_&H^vw-O}-T;*R~1?Dp4(LSJMyPwWB;VOVZS+~l#x3}roKz_CBt z>g(u~>G(BUE?39pyIWIxHQQapj}W3Hnp)?Ra^YZge{py&_#-95&fm5}vN(O_^YHgR z+oOnSktZ)5cJN$lRV~U#GLd1+2FD%ZK)u?yGryj^OrtETe?3xtRg$g0FYDYiAPeh2 z(bUqEZXbafk0s;cW7oc1V(72JqKt^d%dmD3iTGD zAHA30s^{QkpFW*%Rh^^VQZ*Fqw2}8h>4WG)?@_^OY1ubC0ZT3#S*Cqe-5CK~0 zfP36pr50(3z(?fbsyWwse7O*nXxintDlAGF1<297V-yU0e6hrWrHrp=B(q0yS9o*( z?HA{9lL4Mo*G;R)?WI@iKg15=Y55J(u6s2WRg2&4iFRygUd4BvXJC}NubF!Yt>LME zSU#g(&8|8_hu#RdB~0ojp?!_>mszTX7Lw}^#a_KCT@xr3yf5Gx!Et$#WrY3mZGs5D zaka|MWJmQlJr1b1TNW6RSDHSBU-N48ZZHgrG|=|(SKnYw)YGG<*o54VjX1^@s65&Kat00004b3#c}2nYxW zd-{Qv*}8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H154lN1K~!jg?OJ_sRYjKnoxbZ*79oIc%s&gnj<`!%5jl$MrWVy!&@Agd*w^Pt8U z(|6;>jo}~AwiQ1SR7(VF?OgmYLjyo($8mo11KYOZCjvEBIdbI4K>*%siT*v|TWf#5 zVZ(;1A0eX^7ZB&H>@j1;H~^l(k25p?1eH>Aex!_6TtGNYD|+?nbsvBU>2-$+i}7)f zD{;JIA=(lnv!O0UJ9=p`qBoC4^18JCl`*PrLQU>2?K(6!yjb!D9f5FM8_)uz%3)ILQRv`4WUn%D~yVjXDsK zrzcIC6!@tp(u)5ZjkfCb>(}q<)~(xsk2>$7}gdzPC@)aPU9|B3jl~lV+aIXSZkxfV2}g=1P~F?+RrH{C|C{P65p7> zRRacGNfc)RfDb?X@M#gbMQa^YN_~FKHP@8v*s)^)K&5~HN?EJ*DPwFVAVJ^vl~Ss~ zahxZNFc`CaiRwB4uSKKL z2g=LKPdC>t6bfZ!WMo!)o|j2P-iZ_66)#@A*lWsHUS9ql1Kmla{;8*)`dK>dp_wz6 zlgI#TS&Xs!Q!9J*>eZ!1#l-{i^Yf7`yKNBfpNt~YQ8<2aF95*gd`6Fg_Q=oA$F-eu zFsdDc88~j@p7TECqAsTs^78U=(M6q*pP!Eo9XhmW*REY=PP=xQIXUezb8~arY}>ZY z6_M+-)&s?Iarz)X_@MG}0KX=p-j3sRF~&>-03y2Daa5s*6dK>Z)LMHLv+WO{x8pcH znfVH>bGjiR%y`E5dc5!JB5Q4T zBKd8~*hNJ}s}!AG=uvI()V^=xv~HboRAt~|S8#70H|p%+4i;@l@L?3_?ietD6%Cm% z)}(ld2qHKK#uz0cNb44rm6iWOB*|l&5Ydq9ufKjj09b3op67#^AwtKDv7ZB|wwCuO zrK&{auu|&tTW`JfjEKyXc&Aif-|$*eer|62Wg-X|qany8y6u?W=Qgb8}N?Y7xQG zLp7+b_s}sjhRczt%Gf+X$+Riw|@Lt_hsob*Q=A zp2$u2g38K|#)z2bhzQIgfQ%V9aNzc|apffCFq@l)4lUW;oB{w~=+L1H-g;}(!%C@( z9Y+;y+O+8wX8u%b^AE;o0MOal*)v{w<&`1K{Evz8SOT8-_~Vafg+d_)fR!s(c2-Kg z2dH2m;M~ztf9Y7VWJxE0<}%xaSeknO{r4|U($}n6Gx^B3-@Ylr!vHwG)^7mlo1{Pa z3unlV?56T5xD>`efso!*qDm5DwE;Q%%5Kg0P5Li zpUo~VE`Gq;_`p~MH4QN=IamV#=+?bEB5-hJCSyc9NlJh*2FW)6oa3XbD>$No4v2f> zTV5t&jW&U^){e(YK!Ap1U1eou31D9#B3R3?*8FavhuWTQXaFcHE3;lKb_W2HXwYZ&?AhIubfwfIM#n{y<7`gIfwgkZ zMU{wTD-~aX)22U=Z2ZO=87cXACIVHFEWtY7b37q($Yy)x_j%^t-H4*%RBG9kj{70O*d^8kzFEy z=Xu?&<$eG`1mE3u+ig!L*i!jIMljguB$CAB$&>Yj2@}pFzpb^I%oY&g=J<`#Ln*NZ zIgV;}9_8ibr-_`@uBB99C;&YE_~VyrZLR_UA{7SnaDa|_UJP1$gUidyFHM&tA`}P& zAtK6JyEah^0Q2U}o3}EZSM~1I>lcX$AR3M0SbY@hzCH;>3VnO_z{nh6VjiOpd5C#2 z#9~ostznG;^Vzu$%hDLar_f)YMj#SKWz50qh71_XaeiwdiGD~>MY6zk?nuUB5y?pM9zTBk ztETPG2Wc)50YD^O<4(=+eg9C4?MXgO`|1#H>r@z{2>{4ZvqPZ}TjAwOIdB{o$x}u; zm~ApnrgUblJx3Snz<~qXqR}XPKc4vHWw;p8H5UVV7UEN6;addpk;%jt#)U~3%`%@8 zgg4iO@$UYE*mtN3yKEZ(z@1q!s05oa2GK|aT5D+Sqq@2pMASxW4LUcV_uRR2=kJ-Jl3eK$!bqGZ=H3R)Y8$YvrMl{U5q zw{PFx=nN|&I=T9-wWTE`CB-ErCB;J%rKF_fpPE-IzZdUML45GfeASbU~_hM_H+?AzOUi?K78N* z4Ks&~F;miXpdyi2%7|L~nT`|Ba~;>+2d(w_l-(?v z*+CGA)X&m7d7P79tz5P0u}~hgx{P_##rH7?Oixzbh!B%FQ#mq3qZVrdTb;j8HeBXoCev2Uj0F3cx;;grk?|T5? z<+X4B_X`)!Uu`YF>UlAU2r1>R3xz`QdxNBa|Ea8OXqTOx1prDph+2ygN3!sZAq>f4 zgxyT!lf}PhpM;xshCc2Ylx{zah+z~L6=Anzp(vp7`|R%^+&F(pH_$upywhg*@ZpC= z)G6;AmKc4>Yh!Wb0!AWtj z(QCZA7gn7>#4vhwD!?Aef+Ao>*6DLLx#m`tF(xV^a9uZ@kD2*KW6T+A4YbxHw`|$+ zD*#YLgsTfe*#xg z1fCG;qcH%$1}_U=*PcQ+9L7gSPhvw&7>X3k#oZwQZnU-NSa%esPMyN(a2Vn68Pqp4 z_@_^wZiqyqu}CBuYiNi@Z@A$GBO(WwdB0L>Z@Tga4I1>V=Xv9Nt@l}DKR4FiBO+w2 zt)w__HGpansTPrHrBsztYM)Z-OW&A%O^s=-KBBeWXN-S9YhB%xPDFC&op(N9tt}S8 za-~$2<2bcMbV?xWT-O~uY0{)yrcRye#pRg;%s9Zz)k-;^6VV=PxytjrYTx&(Mf3>( zc<{joSJu|nc61!)caGzJqLd0N<$kSwe;W~vtEi~x9SVgGheDxzfKEG(TODxS&9i6E z-rRJI05E&@?AMLa|LwYNH4&V#W5?#iV%`B?`_)RRgXz4_J@?#ao)^2<^J06o)`wZ- zkw(j{w6wInwYCaC$7J1^{La{R$D(RxzVrgfX~hM=InR<3_rlWvw4D2YKls+#hkvAuR$M?d`?_@9x^>$D zy!s<$&u@Kf__u`?pAtKc^DuzO50qPDjCt}0wr#~vg#QKf*2_tH span { - -moz-box-sizing: border-box; - color: white; - float: left; - font-size: 11px; - font-family: "Open Sans", sans-serif; - font-weight: bold; - height: 24px; - line-height: 24px; - padding: 0; - width: 50%; -} -.onoffswitch .onoffswitch-switch { - background-image: linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -o-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -moz-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -webkit-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -ms-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, 0, #ededed)); - border: 1px solid #aaa; - border-radius: 2px; - bottom: 0; - margin: 0; - position: absolute; - right: 39px; - top: 0; - transition: all 0.3s ease-in 0s; - -webkit-transition: all 0.3s ease-in 0s; - width: 23px; -} -.onoffswitch .onoffswitch-inner .onoffswitch-active { - background-image: linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -o-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -moz-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -webkit-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -ms-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #00a9ec), color-stop(1, 0, #009bd3)); - color: #FFFFFF; - padding-left: 10px; -} -.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-active, -.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-inactive { - background-image: none; - background-color: #e5e5e5; - color: #9d9fa1; -} -.onoffswitch .onoffswitch-inner .onoffswitch-inactive { - background: linear-gradient(#fefefe, #e8e8e8) repeat scroll 0 0 transparent; - color: #4d5258; - padding-right: 10px; - text-align: right; -} -.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { - margin-left: 0; -} -.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { - right: 0; -} - - -/*********** Select 2 ***********/ - -.select2-container { - width: 100%; -} - -.select2-container-multi .select2-choices .select2-search-field { - height: 26px; -} - -.select2-container-single { - padding: 0; - margin: 0; -} - -.select2-container-single .form-group { - width: 100%; - margin: 0; -} - -.select2-container-single .form-group .input-group { - width: 100%; -} - -/*********** html select ********/ -.overflow-select { - overflow: auto; -} - - -/*********** New Menu ***********/ - - -.sidebar-pf-left{ - background: #292e34; -} - -.sidebar-pf .nav-pills > li a i, .sidebar-pf .nav-pills > li a span{ - color: #72767b; - display: inline-block; - margin-right: 10px; -} -.sidebar-pf .nav-pills > li > a{ - color: #dbdada; - padding: 0px 20px 0 30px!important; - line-height: 30px; - border-left-width: 12px; - border-left-style: solid; - border-left-color: #292e34; - margin-left: -6px; -} - -.sidebar-pf .nav-pills > li > a:hover{ - background: #393f44; - border-color:#292e34; - border-left-color: #393f44; - color: #fff; -} - -.sidebar-pf .nav-pills > li > a:after{ - display: none!important; -} - - -.sidebar-pf .nav-pills > li.active > a { - color: #fff; - background: #393f44!important; - border-bottom: 1px solid #000!important; - border-top: 1px solid #000!important; - border-left-color: #39a5dc!important; -} - -.sidebar-pf .nav-pills > li.active a i, .sidebar-pf .nav-pills > li.active a span{ - color: #39a5dc; -} - -/*********** Realm selector ***********/ - -.realm-selector{ - color: #fff; - margin: 0 -20px; - position: relative; -} - -.realm-dropmenu{ - display: none; - cursor: pointer; - position: absolute; - top: 60px; - left: 0; - right: 0; - z-index: 999; - background: #fff; -} - -.realm-selector:hover .realm-dropmenu{ - display: block; -} - -.realm-add{ - padding: 10px; -} - -.realm-selector h2{ - font-size: 16px; - line-height: 60px; - padding: 0 20px; - margin: 0; - border-bottom: 1px solid #d5d5d6; -} - -.realm-selector h2 i{ - display: inline-block; - float: right; - line-height: 60px; -} - - -.realm-selector ul{ - padding-left: 0; - margin: 0; - list-style: none; - max-height: 200px; - overflow-y:auto; -} - - -.realm-selector ul li a{ - line-height: 60px; - padding: 0 20px; - border-bottom: 1px solid #d5d5d6; - line-height: 39px; - display: block; - font-size: 14px; -} - - -/*********** Overwrites header defaults ***********/ - -.navbar-pf{ - border-top: none!important; -} - -.navbar-pf .navbar-brand { - padding: 0; - height: 56px; - line-height: 56px; - background-position: center center; - background-image: url('../img/keyclok-logo.png'); - background-size: 148px 30px; - background-repeat: no-repeat; - width: 148px; -} - -.navbar-pf .navbar-utility .dropdown-toggle { - padding: 23px !important; -} - -.clickable { - cursor: pointer; -} - -h1 i { - color: #999999; - font-size: 18px; - margin-left: 10px; -} - -/* Action cell */ -.kc-action-cell { - background-color: #eeeeee; - background-image: linear-gradient(to bottom, #fafafa 0%, #ededed 100%); - background-repeat: repeat-x; - - text-align: center; - vertical-align: middle; - - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - - cursor:pointer; -} - -.kc-action-cell:hover { - background-color: #eeeeee; - background-image: none; -} - -.kc-action-cell-disabled { - background-color: #fafafa; - color: #8b8d8f; - background-image: none; - cursor: not-allowed; -} - -.kc-sorter span { - margin-left: 10px; -} - - -/* Time selector */ - -.time-selector input { - display: inline-block; - width: 120px; - padding-right: 0; - margin-right: 0; -} - -.time-selector select { - display: inline-block; - width: 80px; - margin-left: 0; - padding-left: 0; -} - -.ace_editor { - height: 600px; - width: 100%; -} - -.kc-button-input-file input { - float: left; - width: 73%; -} - -.kc-button-input-file label { - float: left; - margin-left: 2%; - width: 25%; -} - -table.kc-authz-table-expanded { - margin-top: 0px !important; -} - -.no-gutter > [class*='col-'] { - padding-right:0!important; - padding-left:0!important; -} - -.password-conceal { - font-family: 'text-security-disc'; - font-size: 14px; -} - -/* Deactivation styles for user-group membership tree models */ - -div[tree-model] li .deactivate { - color: #4a5053; - opacity: 0.4; -} - -div[tree-model] li .deactivate_selected { - background-color: #dcdcdc; - font-weight: bold; - padding: 1px 5px; -} - -/* search highlighting */ - -div[tree-model] li .highlight { - background-color: #aaddff; -} - -/* Manage credentials */ -table.credentials-table { - margin-top: 0; - margin-bottom: 20px; -} - -table.credentials-table td { - vertical-align: middle !important; -} - -table.credentials-table input[type='text'] { - width: 100%; -} - -td.credential-arrows-cell { - width: 75px; -} - -td.credential-label-cell { - padding: 5px !important; -} - -td.credential-action-cell { - padding: 0px !important; -} - -td.credential-action-cell div.kc-action-cell { - width: 100%; - height: 36px; - line-height: 34px; -} - -td.credential-action-cell.expanded div.kc-action-cell { - border-bottom: 1px solid #d1d1d1; -} - -table.credential-data-table td { - word-break: break-all; -} - -table.credential-data-table tr:first-child td { - border-top: 0; -} - -table.credential-data-table td:first-child { - width: 150px; -} - -table.credential-data-table td.key { - text-align: right; - font-weight: bold; -} - diff --git a/keycloak/themes/mytheme/admin/resources/img/keyclok-logo.png b/keycloak/themes/mytheme/admin/resources/img/keyclok-logo.png deleted file mode 100644 index ca53f0a04ba97029b387ada299ae4b454b54ccd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5268 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 akN*dX+`h$pZtd{^0000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keycloak/themes/mytheme/admin/resources/img/select-arrow.png b/keycloak/themes/mytheme/admin/resources/img/select-arrow.png deleted file mode 100644 index a865a6fa7324e054cffa6e1878d69438780b20c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmbVMTWHfz7>p*_>aXo9GTd$y`I14I@;lVM5JhweKRY3LHQC7fY1b^;WQwQUZl zZ_DPjwq`A+Q}I<~jVEFP6CjoJ%#!7boBlvw?V=p`?Z&9uZobt9Ob)oP#nEs*8W&c;ICuXx!@E2M)bdlwvIE#@G8ws*Pl;dI?8%xx(sU$BXLTpf}aEyknRX9Ex zim)s%ggGwB*G7`bSSXr`29=P4X)D;YTqMb3NA3NLQ&>ArT2 zA9uH-Ywx;_@dpP62I76EH_hHudfZ-m_3_D@=eypgs=j~y@N$1<+s2d9fz493b7t>b zdi$;G;Cc4Oy<=aF_s6}ZOI9R~$+;sl=AP@Cwm_P2^Y!Or->Bm9tEnXp2HrFxO2##^F34zw>;Y=O73N=#!Nt(0W+NJ17W; z1VK1LUs91Ksiz-7AlrUm52Qo_iA0=hBB3DqTNQ9yJJTMCcpQ=>rDb`;bTW?|FlFmT zOYwP(Thy?stD$>x6TiOsxVt1}Vr2LUzFqK)LR)?XrDu*}X?B|H{L@bKHY-q`a}0eg zl?ZLDrq0Ra5#HQ@q53v7kFR1ovIWblM_8Wwlsa<^c6}W@HWPdkcDyb=hw=AsxlLZQ z#GAAlAnooTyy$~TbssA!zUb_StzC)9fe!8-SP;=#k_-1>7nfP>?Unh6?rtNt6G3z} zfOmBdurlxEc2<*JuS)ah+#g`o)L_`qD2GRV;c3`)DlRV*@9Bl(SX=gUdEP_$>y()2 z*K;{EFT!bPz_2mH*H&Dkn#<65HwVU=BA(yR#V_37;sFMAjhM0~^G7racb^^(Lp`^% z{Pl_g#A7jRtoR{1^e|KZmV87c_`EZ4bT;AnS48!H=H{8PUaGYL=7v(3UKXRHsu10^_b_5?;&v8aTak}=G=k7p3}ZAV20HJf zC38o5MIpQ+y~%L2PCLvP(kRoihGu5e)Xe4e?;`c{6xzxzqFY%6by*$;+McE7HXe&Y zzHj*eHa}f2?x6ZoHfpb*z~)+jn`T`$1QwEYFvZl6k$QZVa#N?M$r)rb&9LYlr&+i` z@v5*zeUkB2bfNWOE_&)qz+y45x@E9Eds_@_@9NX>Id%5D;rGhw`{5Up_C0TuEA}jZ Vzu!$>H=BDI|9Zds{}29G{sWmZeaQd- diff --git a/keycloak/themes/mytheme/common/resources/lib/angular/errors.json b/keycloak/themes/mytheme/common/resources/lib/angular/errors.json deleted file mode 100644 index 0fe7286..0000000 --- a/keycloak/themes/mytheme/common/resources/lib/angular/errors.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"ng","generated":"Thu Aug 13 2015 11:47:38 GMT-0700 (PDT)","errors":{"ng":{"areq":"Argument '{0}' is {1}","cpta":"Can't copy! TypedArray destination cannot be mutated.","test":"no injector found for element argument to getTestability","cpws":"Can't copy! Making copies of Window or Scope instances is not supported.","btstrpd":"App Already Bootstrapped with this Element '{0}'","cpi":"Can't copy! Source and destination are identical.","badname":"hasOwnProperty is not a valid {0} name"},"$http":{"legacy":"The method `{0}` on the promise returned from `$http` has been disabled.","badreq":"Http request configuration must be an object. Received: {0}"},"ngRepeat":{"badident":"alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.","iexp":"Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.","dupes":"Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}","iidexp":"'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'."},"$sce":{"imatcher":"Matchers may only be \"self\", string patterns or RegExp objects","icontext":"Attempted to trust a value in invalid context. Context: {0}; Value: {1}","iwcard":"Illegal sequence *** in string matcher. String: {0}","insecurl":"Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}","iequirks":"Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.","unsafe":"Attempting to use an unsafe value in a safe context.","itype":"Attempted to trust a non-string value in a content requiring a string: Context: {0}"},"ngPattern":{"noregexp":"Expected {0} to be a RegExp but was {1}. Element: {2}"},"$controller":{"ctrlfmt":"Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.","noscp":"Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`."},"$parse":{"isecfn":"Referencing Function in Angular expressions is disallowed! Expression: {0}","isecwindow":"Referencing the Window in Angular expressions is disallowed! Expression: {0}","ueoe":"Unexpected end of expression: {0}","isecdom":"Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}","lexerr":"Lexer Error: {0} at column{1} in expression [{2}].","esc":"IMPOSSIBLE","isecobj":"Referencing Object in Angular expressions is disallowed! Expression: {0}","lval":"Trying to assing a value to a non l-value","isecff":"Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}","syntax":"Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].","isecfld":"Attempting to access a disallowed field in Angular expressions! Expression: {0}"},"jqLite":{"offargs":"jqLite#off() does not support the `selector` argument","onargs":"jqLite#on() does not support the `selector` or `eventData` parameters","nosel":"Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element"},"$animate":{"notcsel":"Expecting class selector starting with '.' got '{0}'.","nongcls":"$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the \"{0}\" CSS class."},"$q":{"norslvr":"Expected resolverFn, got '{0}'","qcycle":"Expected promise to be resolved with value other than itself '{0}'"},"$injector":{"pget":"Provider '{0}' must define $get factory method.","cdep":"Circular dependency found: {0}","nomod":"Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.","strictdi":"{0} is not using explicit annotation and cannot be invoked in strict mode","modulerr":"Failed to instantiate module {0} due to:\n{1}","undef":"Provider '{0}' must return a value from $get factory method.","unpr":"Unknown provider: {0}","itkn":"Incorrect injection token! Expected service name as string, got {0}"},"filter":{"notarray":"Expected array but received: {0}"},"ngTransclude":{"orphan":"Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}"},"ngModel":{"nonassign":"Expression '{0}' is non-assignable. Element: {1}","datefmt":"Expected `{0}` to be a date","$asyncValidators":"Expected asynchronous validator to return a promise but got '{0}' instead.","constexpr":"Expected constant expression for `{0}`, but saw `{1}`.","numfmt":"Expected `{0}` to be a number"},"$location":{"nostate":"History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API","ipthprfx":"Invalid url \"{0}\", missing path prefix \"{1}\".","isrcharg":"The first argument of the `$location#search()` call must be a string or an object.","nobase":"$location in HTML5 mode requires a tag to be present!"},"$cacheFactory":{"iid":"CacheId '{0}' is already taken!"},"$interpolate":{"noconcat":"Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce","interr":"Can't interpolate: {0}\n{1}","nochgmustache":"angular-message-format.js currently does not allow you to use custom start and end symbols for interpolation.","reqcomma":"Expected a comma after the keyword “{0}†at line {1}, column {2} of text “{3}â€","untermstr":"The string beginning at line {0}, column {1} is unterminated in text “{2}â€","badexpr":"Unexpected operator “{0}†at line {1}, column {2} in text. Was expecting “{3}â€. Text: “{4}â€","dupvalue":"The choice “{0}†is specified more than once. Duplicate key is at line {1}, column {2} in text “{3}â€","unsafe":"Use of select/plural MessageFormat syntax is currently disallowed in a secure context ({0}). At line {1}, column {2} of text “{3}â€","reqother":"“other†is a required option.","reqendinterp":"Expecting end of interpolation symbol, “{0}â€, at line {1}, column {2} in text “{3}â€","reqarg":"Expected one of “plural†or “select†at line {0}, column {1} of text “{2}â€","wantstring":"Expected the beginning of a string at line {0}, column {1} in text “{2}â€","logicbug":"The messageformat parser has encountered an internal error. Please file a github issue against the AngularJS project and provide this message text that triggers the bug. Text: “{0}â€","reqopenbrace":"The plural choice “{0}†must be followed by a message in braces at line {1}, column {2} in text “{3}â€","unknarg":"Unsupported keyword “{0}†at line {0}, column {1}. Only “plural†and “select†are currently supported. Text: “{3}â€","reqendbrace":"The plural/select choice “{0}†message starting at line {1}, column {2} does not have an ending closing brace. Text “{3}â€"},"ngOptions":{"iexp":"Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}"},"$rootScope":{"inprog":"{0} already in progress","infdig":"{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}"},"$compile":{"noident":"Cannot bind to controller without identifier for directive '{0}'.","selmulti":"Binding to the 'multiple' attribute is not supported. Element: {0}","nodomevents":"Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.","ctreq":"Controller '{0}', required by directive '{1}', can't be found!","nonassign":"Expression '{0}' used with directive '{1}' is non-assignable!","tplrt":"Template for directive '{0}' must have exactly one root element. {1}","iscp":"Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}","baddir":"Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces","noctrl":"Cannot bind to controller without directive '{0}'s controller.","multidir":"Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}","tpload":"Failed to load template: {0} (HTTP status: {1} {2})","uterdir":"Unterminated attribute, found '{0}' but no matching '{1}' found."},"$resource":{"badargs":"Expected up to 4 arguments [params, data, success, error], got {0} arguments","badmember":"Dotted member path \"@{0}\" is invalid.","badname":"hasOwnProperty is not a valid parameter name.","badcfg":"Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})"},"$route":{"norout":"Tried updating route when with no current route"},"$sanitize":{"badparse":"The sanitizer was unable to parse the following block of html: {0}"}}} \ No newline at end of file diff --git a/keycloak/themes/mytheme/common/resources/lib/angular/treeview/LICENSE b/keycloak/themes/mytheme/common/resources/lib/angular/treeview/LICENSE deleted file mode 100644 index 514acd3..0000000 --- a/keycloak/themes/mytheme/common/resources/lib/angular/treeview/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Steve - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.js b/keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.js deleted file mode 100644 index 2e56cad..0000000 --- a/keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.js +++ /dev/null @@ -1,95 +0,0 @@ -/* - @license Angular Treeview version 0.1.6 - â“’ 2013 AHN JAE-HA http://github.com/eu81273/angular.treeview - License: MIT - - - [TREE attribute] - angular-treeview: the treeview directive - tree-id : each tree's unique id. - tree-model : the tree model on $scope. - node-id : each node's id - node-label : each node's label - node-children: each node's children - -
          -
          -*/ - -(function ( angular ) { - 'use strict'; - - angular.module( 'angularTreeview', [] ).directive( 'treeModel', ['$compile', function( $compile ) { - return { - restrict: 'A', - link: function ( scope, element, attrs ) { - //tree id - var treeId = attrs.treeId; - - //tree model - var treeModel = attrs.treeModel; - - //node id - var nodeId = attrs.nodeId || 'id'; - - //node label - var nodeLabel = attrs.nodeLabel || 'label'; - - //children - var nodeChildren = attrs.nodeChildren || 'children'; - - //tree template - var template = - '
            ' + - '
          • ' + - '' + - '{{node.' + nodeLabel + '}}' + - '
            ' + - '
          • ' + - '
          '; - - //check tree id, tree model - if( treeId && treeModel ) { - //root node - if( attrs.angularTreeview ) { - - //create tree object if not exists - scope[treeId] = scope[treeId] || {}; - - //if node head clicks, - scope[treeId].selectNodeHead = scope[treeId].selectNodeHead || function( selectedNode ){ - - //Collapse or Expand - selectedNode.collapsed = !selectedNode.collapsed; - scope[treeId].selectNodeLabel(selectedNode); - }; - - //if node label clicks, - scope[treeId].selectNodeLabel = scope[treeId].selectNodeLabel || function( selectedNode ){ - - //remove highlight from previous node - if( scope[treeId].currentNode && scope[treeId].currentNode.selected ) { - scope[treeId].currentNode.selected = undefined; - } - - //set highlight to selected node - selectedNode.selected = 'selected'; - - //set currentNode - scope[treeId].currentNode = selectedNode; - }; - } - - //Rendering template. - element.html('').append( $compile( template )( scope ) ); - } - } - }; - }]); -})( angular ); diff --git a/keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.min.js b/keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.min.js deleted file mode 100644 index e02a85b..0000000 --- a/keycloak/themes/mytheme/common/resources/lib/angular/treeview/angular.treeview.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - @license Angular Treeview version 0.1.6 - â“’ 2013 AHN JAE-HA http://github.com/eu81273/angular.treeview - License: MIT -*/ - -(function(f){f.module("angularTreeview",[]).directive("treeModel",function($compile){return{restrict:"A",link:function(b,h,c){var a=c.treeId,g=c.treeModel,e=c.nodeLabel||"label",d=c.nodeChildren||"children",e='