diff --git a/EnvelopeGenerator.Web/XSSExtensions.cs b/EnvelopeGenerator.Web/XSSExtensions.cs index 9c019dc2..9b414fd6 100644 --- a/EnvelopeGenerator.Web/XSSExtensions.cs +++ b/EnvelopeGenerator.Web/XSSExtensions.cs @@ -1,4 +1,5 @@ using Ganss.Xss; +using Microsoft.Extensions.Localization; using System.Text.Encodings.Web; namespace EnvelopeGenerator.Web @@ -7,6 +8,10 @@ namespace EnvelopeGenerator.Web { public static string? TryEncode(this string? value, UrlEncoder encoder) => value is null ? value : encoder.Encode(value); + public static string? TryEncode(this LocalizedString? value, UrlEncoder encoder) => value is null ? null : encoder.Encode(value); + public static string? TrySanitize(this string? html, HtmlSanitizer sanitizer) => html is null ? html : sanitizer.Sanitize(html); + + public static string? TrySanitize(this LocalizedString? html, HtmlSanitizer sanitizer) => html is null ? null : sanitizer.Sanitize(html); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/appsettings.json b/EnvelopeGenerator.Web/appsettings.json index 55862018..82f633d8 100644 --- a/EnvelopeGenerator.Web/appsettings.json +++ b/EnvelopeGenerator.Web/appsettings.json @@ -1,4 +1,6 @@ { + "EnableSwagger": true, + "EnableTestControllers": true, "DetailedErrors": true, "Logging": { "LogLevel": { @@ -13,7 +15,7 @@ "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self';" */ "Content-Security-Policy": null, "AdminPassword": "dd", - "AllowedOrigins": [ "https://localhost:7202" ], + "AllowedOrigins": [ "https://localhost:7202", "https://digitale.unterschrift.wisag.de/" ], "NLog": { "throwConfigExceptions": true, "targets": { @@ -53,17 +55,11 @@ } ] }, - "AddTestControllers": true, "Jwt": { "Issuer": null, "Audience": null, "Key": "8RGnd7x0G2TYLOIW4m_qlIls7MfbAIGNrpQJzMAUIvULHOLiG723znRa_MG-Z4yw3SErusOU4hTui2rVBMcCaQ" }, - "AuthCookieConfig": { - "HttpOnly": true, - "SecurePolicy": 1 - - }, "CookieConsentSettings": { "PrivacyPolicyUrl": "./privacy-policy.en.html", "LegalNoticeUrl": "./cookies-policy.en.html", @@ -89,5 +85,6 @@ /* Resx naming format is -> Resource.language.resx (eg: Resource.de_DE.resx). To add a new language, first you should write the required resx file. first is the default culture name. */ - "Languages": [ "de_DE", "en_US" ] + "Languages": [ "de_DE", "en_US" ], + "DisableMultiLanguage": true } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/css/site.css b/EnvelopeGenerator.Web/wwwroot/css/site.css index 1c169b00..937eab6c 100644 --- a/EnvelopeGenerator.Web/wwwroot/css/site.css +++ b/EnvelopeGenerator.Web/wwwroot/css/site.css @@ -139,4 +139,63 @@ footer#page-footer a:focus { .none-display { display: none +} + +.dropdown-flag img, .img-flag { + width: 30%; + height: 70%; +} +.dropdown-flag { + height: 75%; + width: 75%; +} + +/* --- */ +/* Adjusting the height of the select2 container */ +.dropdown-flag .select2-container--default .select2-selection--single { + height: 40px; /* Desired height */ +} + +/* Adjusting the height and vertical alignment of the selected item */ +.dropdown-flag .select2-container--default .select2-selection--single .select2-selection__rendered { + line-height: 38px; /* Should be 2px less than the height for internal padding */ +} + +/* Adjusting the height of the dropdown arrow */ +.dropdown-flag .select2-container--default .select2-selection--single .select2-selection__arrow { + height: 38px; /* Again, 2px less than the height */ +} + +/* Adjusting the height of dropdown list items */ +.dropdown-flag .select2-container--default .select2-dropdown .select2-results>.select2-results__options { + max-height: 200px; /* Optional, adjust for larger dropdown height */ +} + +/* CSS for custom class to increase dropdown height */ +.increase-dropdown-height { + min-height: 400px; /* Optional, larger value for increased height */ +} + + +/* Adjusting select2 width to fit within a specific form size */ +.dropdown-flag .select2-container { + width: 100% !important; /* Makes the container full width */ + max-width: 180px; /* Suitable maximum width for the form */ +} + + +.select2-container--default .select2-search--dropdown .select2-search__field { + border-color: #86b7fe; + outline: 0; + mask-border-width: 0 +} + +.select2-container--default .select2-search--dropdown .select2-search__field:hover { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25); +} + +.select2-search__field { + display:none } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/wwwroot/img/flags/de_DE.png b/EnvelopeGenerator.Web/wwwroot/img/flags/de_DE.png new file mode 100644 index 0000000000000000000000000000000000000000..a2bae4b387036bfc778b57dee5cf8394b825ebc1 GIT binary patch literal 1948 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