diff --git a/Components/IO/BExIS.IO.DataType.DisplayPattern/DataTypeDisplayPattern.cs b/Components/IO/BExIS.IO.DataType.DisplayPattern/DataTypeDisplayPattern.cs index 2c96b95f3..1ec90fb2f 100644 --- a/Components/IO/BExIS.IO.DataType.DisplayPattern/DataTypeDisplayPattern.cs +++ b/Components/IO/BExIS.IO.DataType.DisplayPattern/DataTypeDisplayPattern.cs @@ -41,7 +41,8 @@ public class DataTypeDisplayPattern new DataTypeDisplayPattern() {Id=27,Systemtype = DataTypeCode.DateTime, Name = "Minute", ExcelPattern=@"mm", DisplayPattern="mm", StringPattern = "mm", RegexPattern = null}, new DataTypeDisplayPattern() {Id=28,Systemtype = DataTypeCode.DateTime, Name = "Secound", ExcelPattern=@"ss", DisplayPattern="ss", StringPattern = "ss", RegexPattern = null}, new DataTypeDisplayPattern() {Id=29,Systemtype = DataTypeCode.DateTime, Name = "DateEu with time24", ExcelPattern=@"dd\.MM\.yyyy HH:mm:ss", DisplayPattern="dd.MM.yyyy HH:mm:ss", StringPattern = "dd.MM.yyyy HH:mm:ss", RegexPattern = null}, - new DataTypeDisplayPattern() {Id=30,Systemtype = DataTypeCode.DateTime, Name = "DateTimeIso without sec", ExcelPattern=@"yyyy-MM-dd\Thh:mm", DisplayPattern="yyyy-MM-ddThh:mm", StringPattern = "yyyy-MM-ddTHH:mm", RegexPattern = null} + new DataTypeDisplayPattern() {Id=30,Systemtype = DataTypeCode.DateTime, Name = "DateTimeIso without sec", ExcelPattern=@"yyyy-MM-dd\Thh:mm", DisplayPattern="yyyy-MM-ddThh:mm", StringPattern = "yyyy-MM-ddTHH:mm", RegexPattern = null}, + new DataTypeDisplayPattern() {Id=31,Systemtype = DataTypeCode.DateTime, Name = "DateTimeIso withou T", ExcelPattern=@"yyyy-MM-dd hh:mm:ss", DisplayPattern="yyyyy-MM-dd hh:mm:ss", StringPattern = "yyyy-MM-dd hh:mm:ss", RegexPattern = null} }; diff --git a/Components/IO/BExIS.IO.Tests/IOUtilityTests.cs b/Components/IO/BExIS.IO.Tests/IOUtilityTests.cs index fdad61b14..ab1619457 100644 --- a/Components/IO/BExIS.IO.Tests/IOUtilityTests.cs +++ b/Components/IO/BExIS.IO.Tests/IOUtilityTests.cs @@ -34,6 +34,7 @@ public void OneTimeTearDown() { } + [TestCase("2026-12-24 05:05:50", "yyyy-MM-dd hh:mm:ss", "12/24/2026 5:05:50 AM", true, "en-US")] [TestCase("12:00 pm", "hh:mm tt", "1/1/0001 12:00:00 PM", true, "en-US")] [TestCase("12:00:00 pm", "hh:mm:ss tt", "1/1/0001 12:00:00 PM", true, "en-US")] [TestCase("2023-29-12", "yyyy-d-M", "12/29/2023 12:00:00 AM", true)] @@ -118,6 +119,9 @@ public void ConvertStringToDateTimeWithpatternTest(string input, string pattern, else result.ToString( new CultureInfo("en-US", false)).Should().BeNullOrEmpty(); } } + + + [TestCase("2026-12-24 05:05:50", "yyyy-MM-dd hh:mm:ss", "12/24/2026 5:05:50 AM", true, "en-US")] [TestCase("12:00 pm", "hh:mm tt", "1/1/0001 12:00:00 PM", true, "en-US")] [TestCase("12:00:00 pm", "hh:mm:ss tt", "1/1/0001 12:00:00 PM", true, "en-US")] [TestCase("2023-29-12", "yyyy-d-M", "12/29/2023 12:00:00 AM", true)] diff --git a/Components/Utils/BExIS.Utils/BExIS.Utils.csproj b/Components/Utils/BExIS.Utils/BExIS.Utils.csproj index a453805a7..8825eb75e 100644 --- a/Components/Utils/BExIS.Utils/BExIS.Utils.csproj +++ b/Components/Utils/BExIS.Utils/BExIS.Utils.csproj @@ -407,10 +407,18 @@ {0815d220-3625-4e23-bbbc-8152345637fe} Vaiona.Entities + + {63FCACAA-9534-4FDD-A082-78DCC06BAF28} + Vaiona.Utils + {705f8751-e58a-453e-a7fd-0c310fd3cae8} Vaiona.Web.Mvc.Modularity + + {6EAD7D02-02F7-42FF-85E4-90BB892D3846} + BExIS.Utils.Config + diff --git a/Components/Utils/BExIS.Utils/WebHelpers/HtmlNavigationExtensions.cs b/Components/Utils/BExIS.Utils/WebHelpers/HtmlNavigationExtensions.cs index 5837aa220..e3b69aeff 100644 --- a/Components/Utils/BExIS.Utils/WebHelpers/HtmlNavigationExtensions.cs +++ b/Components/Utils/BExIS.Utils/WebHelpers/HtmlNavigationExtensions.cs @@ -1,6 +1,7 @@ using BExIS.Security.Entities.Subjects; using BExIS.Security.Services.Authorization; using BExIS.Security.Services.Objects; +using BExIS.Utils.Config; using System; using System.Collections.Generic; using System.Linq; @@ -31,6 +32,8 @@ public static MvcHtmlString LaunchBar(this HtmlHelper htmlHelper) foreach (var launchBarItem in lunchBarRoot.Elements()) { + + if (launchBarItem.HasElements) { sb.Append($""); } else @@ -72,6 +84,7 @@ public static MvcHtmlString LaunchBar(this HtmlHelper htmlHelper) sb.Append("'>").Append(launchBarItem.Attribute("title").Value).Append(""); } + } return new MvcHtmlString(sb.ToString()); diff --git a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Content/bexis-metadata.css b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Content/bexis-metadata.css index 9497958b3..fe328557e 100644 --- a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Content/bexis-metadata.css +++ b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Content/bexis-metadata.css @@ -50,7 +50,7 @@ Green 05 #eff7f6 .optionContainer { float: right; - /*margin-top: -28px;*/ + margin-top: -28px; } .optionContainer table, diff --git a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Dcm.Settings.json b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Dcm.Settings.json index cf0d8aede..dc6c124fb 100644 --- a/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Dcm.Settings.json +++ b/Console/BExIS.Web.Shell/Areas/DCM/BExIS.Modules.Dcm.UI/Dcm.Settings.json @@ -1,72 +1,66 @@ { - "id": "dcm", - "name": "Dataset Creation", "description": "...", "entries": [ - { + "description": "This number of cells determines whether an upload of structured data should be executed directly or async.", "key": "celllimit", "title": "Number of cells for direct upload instead of async", - "value": 2000, - "description": "This number of cells determines whether an upload of structured data should be executed directly or async.", "type": "Int32", - "options": [] + "value": 2000 }, { - "key": "fileuploadDescription", - "title": "File upload description", - "value": "required", "description": "If it is activated, adding a description per file is possible.", - "type": "String", + "key": "fileuploadDescription", "options": [ "none", "active", "required" - ] + ], + "title": "File upload description", + "type": "String", + "value": "required" }, { + "description": "Allow multiple files to be uploaded at the same time.", "key": "allowMultiFileupload", "title": "Multiple file upload", - "value": true, - "description": "Allow multiple files to be uploaded at the same time.", "type": "Boolean", - "options": [] + "value": true }, { - "key": "attachmentDescription", - "title": "Attachment description", - "value": "active", "description": "If it is activated, adding a description per file is possible.", - "type": "String", + "key": "attachmentDescription", "options": [ "none", "active", "required" - ] + ], + "title": "Attachment description", + "type": "String", + "value": "active" }, { + "description": "Allow multiple files to be uploaded at the same time.", "key": "allowMultiAttachmentUpload", "title": "Multiple attachment upload", - "value": false, - "description": "Allow multiple files to be uploaded at the same time.", "type": "Boolean", - "options": [] + "value": true }, { + "description": "Enables the loading of an external metadata form when editing entities", "key": "useExternalMetadataForm", "title": "Use external metadata form", - "value": false, - "description": "Enables the loading of an external metadata form when editing entities", "type": "Boolean", - "options": [] + "value": false }, { + "description": "Define the origin from where the external metadata form should be loaded", "key": "externalMetadataFormUrl", "title": "External metadata form destination url", - "value": "", - "description": "Define the origin from where the external metadata form should be loaded", "type": "String", - "options": [] + "value": "" } - ] + ], + "id": "dcm", + "name": "Dataset Creation" } \ No newline at end of file diff --git a/Console/BExIS.Web.Shell/Areas/DDM/BExIS.Modules.Ddm.UI/Views/Dashboard/_myDatasetsViewHeader.cshtml b/Console/BExIS.Web.Shell/Areas/DDM/BExIS.Modules.Ddm.UI/Views/Dashboard/_myDatasetsViewHeader.cshtml index a7e37f2c4..bd4deb64b 100644 --- a/Console/BExIS.Web.Shell/Areas/DDM/BExIS.Modules.Ddm.UI/Views/Dashboard/_myDatasetsViewHeader.cshtml +++ b/Console/BExIS.Web.Shell/Areas/DDM/BExIS.Modules.Ddm.UI/Views/Dashboard/_myDatasetsViewHeader.cshtml @@ -13,8 +13,8 @@ { } diff --git a/Console/BExIS.Web.Shell/General.Settings.json b/Console/BExIS.Web.Shell/General.Settings.json index f20526dc6..dc89442fa 100644 --- a/Console/BExIS.Web.Shell/General.Settings.json +++ b/Console/BExIS.Web.Shell/General.Settings.json @@ -4,15 +4,17 @@ "description": "The default landing page for the search in the form of , , . The application's home page will redirect here. The module must be available and active. Otherwise, another redirect happens to the home page, which causes a loop. The designated action must be set to public in the feature permission mgmt, otherwise the request will be redirected to the login page. The 'type' attribute must be compatible with the System.TypeCode case-sensitive.", "entries": [ { + "description": "The application name is used in several places in the system. e.g. as title in the email", "key": "applicationName", "title": "Application Name", - "value": "AppLocal", "type": "String", - "description": "(Short) name of the BEXIS2 instance. The name is e.g., used in the breadcrumb or as prefix in emails sent via the system. Avoid special characters or to long names." + "value": "BExIS-Dev" }, { + "description": "The application name is used in several places in the system. e.g. as title in the email", "key": "jwt", "title": "JWT", + "type": "JSON", "value": { "validateAudience": false, "validateIssuer": false, @@ -21,26 +23,24 @@ "issuerSigningKey": "JWTAuthenticationHIGHsecuredPasswordVVVp1OH7Xzyr", "validateLifetime": false, "validLifetime": 1 - }, - "type": "JSON", - "description": "JWT settings.
Do not change any keys!" + } }, { + "description": "The application name is used in several places in the system. e.g. as title in the email", "key": "smtp", - "title": "SMTP Configurations", + "title": "SMTP", + "type": "JSON", "value": { "hostName": "smtp.uni-jena.de", "hostPort": 587, "hostAnonymous": false, "hostSecureSocketOptions": 1, "hostCertificateRevocation": false, - "accountName": "", - "accountPassword": "", - "fromName": "", - "fromAddress": "" - }, - "type": "JSON", - "description": "SMPT settings.
Do not change any keys!" + "accountName": "we95lez", + "accountPassword": ".bl2039", + "fromName": "bexis", + "fromAddress": "bexis@listserv.uni-jena.de" + } }, { "key": "ldaps", @@ -116,84 +116,84 @@ "value": "https://github.com/BEXIS2/Core/wiki/FAQ" } ] - }, - { - "key": "landingPage", - "title": "Landing Page (without login)", - "value": "ddm, publicsearch, index", - "type": "String", - "description": "User is not logging in -> app goes to e.g. (ddm, publicsearch, index). If no destination is entered, the landingpage.htm is loaded from the tenant/content/landingpage.htm" - }, - { - "key": "showMenuOnLandingPage", - "title": "Show menu on landing page", - "value": "true", - "type": "Boolean", - "description": "Show or hide menu on your own created landing page" - }, - { - "key": "showHeaderOnLandingPage", - "title": "Show header on landing page", - "value": "true", - "type": "Boolean", - "description": "Show or hide header on your own created landing page" - }, - { - "key": "showFooterOnLandingPage", - "title": "Show footer on landing page", - "value": "true", - "type": "Boolean", - "description": "Show or hide footer on your own created landing page" - }, - { - "key": "landingPageForUsers", - "title": "Landing Page after login for users with permission", - "value": "ddm, search, index", - "type": "String", - "description": "User logged in, but does not have permission to view the page; shell, home, nopermission is by default; Alternatives must be in a module NOT shell" - }, - { - "key": "landingPageForUsersNoPermission", - "title": "Landing Page after login for users with no permission", - "value": "shell, home, nopermission", - "type": "String", - "description": "Landing page for users, after logging in successfully without permission." - }, - { - "key": "systemEmail", - "title": "System E-Mail Address", - "value": "david.schoene@uni-jena.de", - "type": "String", - "description": "All administrative information will be sent to this email." - }, - { - "key": "usePersonEmailAttributeName", - "title": "Use Person E-Mail Attribute Name", - "value": false, - "type": "Boolean", - "description": "To activate the linkage between between user email and a party email set Use Person E-Mail Attribute Name to true and define the party party attribute. If one of the email addresses is changed the other is changed as well." - }, - { - "key": "personEmailAttributeName", - "title": "Person E-Mail Attribute Name", - "value": "Email", - "type": "String", - "description": "To activate the linkage between between user email and a party email set Use Person E-Mail Attribute Name to true and define the party party attribute. If one of the email addresses is changed the other is changed as well." - }, - { - "key": "useMultimediaModule", - "title": "Use Multimedia Module?", - "value": true, - "type": "Boolean", - "description": "This flag turns on/off the Multimedia Module." - }, - { - "key": "faq", - "title": "FAQ", - "value": "https://github.com/BEXIS2/Core/wiki/FAQ", - "type": "String", - "description": "FAQ URL. Can link to an external page." - } + }, + { + "key": "landingPage", + "title": "Landing Page (without login)", + "value": "ddm, publicsearch, index", + "type": "String", + "description": "User is not logging in -> app goes to e.g. (ddm, publicsearch, index). If no destination is entered, the landingpage.htm is loaded from the tenant/content/landingpage.htm" + }, + { + "key": "showMenuOnLandingPage", + "title": "Show menu on landing page", + "value": "true", + "type": "Boolean", + "description": "Show or hide menu on your own created landing page" + }, + { + "key": "showHeaderOnLandingPage", + "title": "Show header on landing page", + "value": "true", + "type": "Boolean", + "description": "Show or hide header on your own created landing page" + }, + { + "key": "showFooterOnLandingPage", + "title": "Show footer on landing page", + "value": "true", + "type": "Boolean", + "description": "Show or hide footer on your own created landing page" + }, + { + "key": "landingPageForUsers", + "title": "Landing Page after login for users with permission", + "value": "ddm, search, index", + "type": "String", + "description": "User logged in, but does not have permission to view the page; shell, home, nopermission is by default; Alternatives must be in a module NOT shell" + }, + { + "key": "landingPageForUsersNoPermission", + "title": "Landing Page after login for users with no permission", + "value": "shell, home, nopermission", + "type": "String", + "description": "Landing page for users, after logging in successfully without permission." + }, + { + "key": "systemEmail", + "title": "System E-Mail Address", + "value": "david.schoene@uni-jena.de", + "type": "String", + "description": "All administrative information will be sent to this email." + }, + { + "key": "usePersonEmailAttributeName", + "title": "Use Person E-Mail Attribute Name", + "value": false, + "type": "Boolean", + "description": "To activate the linkage between between user email and a party email set Use Person E-Mail Attribute Name to true and define the party party attribute. If one of the email addresses is changed the other is changed as well." + }, + { + "key": "personEmailAttributeName", + "title": "Person E-Mail Attribute Name", + "value": "Email", + "type": "String", + "description": "To activate the linkage between between user email and a party email set Use Person E-Mail Attribute Name to true and define the party party attribute. If one of the email addresses is changed the other is changed as well." + }, + { + "key": "useMultimediaModule", + "title": "Use Multimedia Module?", + "value": true, + "type": "Boolean", + "description": "This flag turns on/off the Multimedia Module." + }, + { + "key": "faq", + "title": "FAQ", + "value": "https://github.com/BEXIS2/Core/wiki/FAQ", + "type": "String", + "description": "FAQ URL. Can link to an external page." + } ] } diff --git a/Console/BExIS.Web.Shell/robots.txt b/Console/BExIS.Web.Shell/robots.txt index faf5d15ee..4b19513ee 100644 --- a/Console/BExIS.Web.Shell/robots.txt +++ b/Console/BExIS.Web.Shell/robots.txt @@ -1,15 +1,5 @@ User-agent: * -Disallow: /Views/ -Disallow: /App_Data/ -Disallow: /App_Start/ -Disallow: /Content/ -Disallow: /Scripts/ -Disallow: /favicon.ico -Disallow: /robots.txt -Allow: /footer/imprint -Allow: /footer/contactus -Allow: /footer/policy -Allow: /ddm/home/index -Allow: /Content/images/ -Allow: /Content/css/ -Allow: /Content/js/ \ No newline at end of file +Disallow: / +Allow: /footer/ +Allow: /ddm/data/Showdata/ +Disallow: /ddm/data/Showdata/*/