diff --git a/SoObjects/SOGo/SOGoPasswordPolicy.m b/SoObjects/SOGo/SOGoPasswordPolicy.m
index e5201bb16..94b681105 100644
--- a/SoObjects/SOGo/SOGoPasswordPolicy.m
+++ b/SoObjects/SOGo/SOGoPasswordPolicy.m
@@ -60,7 +60,7 @@ static const NSString *SPECIAL_SYMBOL_ALLOWED = @"%$&*(){}!?\\@#.,:;+=";
return [NSArray arrayWithObjects: [NSString stringWithFormat:@"(.*[a-z].*){%i}", [count intValue]],
[NSString stringWithFormat:@"(.*[A-Z].*){%i}", [count intValue]],
[NSString stringWithFormat:@"(.*[0-9].*){%i}", [count intValue]],
- [NSString stringWithFormat:@"([%%%@].*){%i,}", SPECIAL_SYMBOL_ALLOWED, [count intValue]],
+ [NSString stringWithFormat:@"([%@].*){%i,}", SPECIAL_SYMBOL_ALLOWED, [count intValue]],
[NSString stringWithFormat:@".{%i,}", [count intValue]],
nil];
}
@@ -99,25 +99,17 @@ static const NSString *SPECIAL_SYMBOL_ALLOWED = @"%$&*(){}!?\\@#.,:;+=";
if ([[self policies] containsObject: label]) {
NSNumber *value = [policy objectForKey:@"value"];
if (0 < value) {
- if (![POLICY_MIN_SPECIAL_SYMBOLS isEqualToString: label]) {
- NSString *newLabel = [[translations objectForKey: label]
- stringByReplacingOccurrencesOfString: @"%{0}"
- withString: [value stringValue]];
- [userTranslatedPasswordPolicy addObject:[NSDictionary dictionaryWithObjectsAndKeys:
- newLabel, @"label",
- [policy objectForKey:@"regex"], @"regex",
- nil]];
- } else {
- NSString *newLabel = [[[[translations objectForKey: label]
- stringByReplacingOccurrencesOfString: @"%{0}"
- withString: [value stringValue]]
- stringByAppendingString: @" "]
- stringByAppendingString: SPECIAL_SYMBOL_ALLOWED];
- [userTranslatedPasswordPolicy addObject:[NSDictionary dictionaryWithObjectsAndKeys:
- newLabel, @"label",
- [policy objectForKey:@"regex"], @"regex",
- nil]];
+ NSString *newLabel = [[translations objectForKey: label]
+ stringByReplacingOccurrencesOfString: @"%{0}"
+ withString: [value stringValue]];
+ if ([POLICY_MIN_SPECIAL_SYMBOLS isEqualToString: label]) {
+ newLabel = [[newLabel stringByAppendingString: @" "]
+ stringByAppendingString: SPECIAL_SYMBOL_ALLOWED];
}
+ [userTranslatedPasswordPolicy addObject:[NSDictionary dictionaryWithObjectsAndKeys:
+ newLabel, @"label",
+ [policy objectForKey:@"regex"], @"regex",
+ nil]];
} else {
// Do nothing
}
diff --git a/UI/PreferencesUI/English.lproj/Localizable.strings b/UI/PreferencesUI/English.lproj/Localizable.strings
index b85473ceb..adc792bf2 100644
--- a/UI/PreferencesUI/English.lproj/Localizable.strings
+++ b/UI/PreferencesUI/English.lproj/Localizable.strings
@@ -260,7 +260,7 @@
"POLICY_MIN_LOWERCASE_LETTER" = "Minimum of %{0} lowercase letter";
"POLICY_MIN_UPPERCASE_LETTER" = "Minimum of %{0} uppercase letter";
"POLICY_MIN_DIGIT" = "Minimum of %{0} digit";
-"POLICY_MIN_SPECIAL_SYMBOLS" = "Minimum of %{0}special symbols";
+"POLICY_MIN_SPECIAL_SYMBOLS" = "Minimum of %{0} special symbols";
"POLICY_MIN_LENGTH" = "Minimum length of %{0} characters";
diff --git a/UI/Scheduler/English.lproj/Localizable.strings b/UI/Scheduler/English.lproj/Localizable.strings
index 924a8b48f..a503b3d05 100644
--- a/UI/Scheduler/English.lproj/Localizable.strings
+++ b/UI/Scheduler/English.lproj/Localizable.strings
@@ -565,7 +565,7 @@ vtodo_class2 = "(Confidential task)";
"CalDAV URL" = "CalDAV URL ";
"WebDAV ICS URL" = "WebDAV ICS URL";
"WebDAV XML URL" = "WebDAV XML URL";
-"Clipboard" = "Copy to clipboard";
+"Copy to clipboard" = "Copy to clipboard";
/* Error messages */
"dayFieldInvalid" = "Please specify a numerical value in the Days field greater or equal to 1.";
diff --git a/UI/Scheduler/French.lproj/Localizable.strings b/UI/Scheduler/French.lproj/Localizable.strings
index 536268822..4d09808ba 100644
--- a/UI/Scheduler/French.lproj/Localizable.strings
+++ b/UI/Scheduler/French.lproj/Localizable.strings
@@ -565,6 +565,7 @@ vtodo_class2 = "(Tâche confidentielle)";
"CalDAV URL" = "Accès en CalDAV ";
"WebDAV ICS URL" = "Représentation ICS en WebDAV";
"WebDAV XML URL" = "Représentation XML en WebDAV";
+"Copy to clipboard" = "Copier dans le presse-papier";
/* Error messages */
"dayFieldInvalid" = "Veuillez spécifier un chiffre supérieur ou égal à 1 dans le champ Jours.";
diff --git a/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox b/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox
index 4da4785af..520409a5a 100644
--- a/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox
+++ b/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox
@@ -39,7 +39,7 @@
-
+
content_copy
@@ -47,7 +47,7 @@
-
+
content_copy
@@ -55,7 +55,7 @@
-
+
content_copy
@@ -68,7 +68,7 @@
-
+
content_copy
@@ -76,7 +76,7 @@
-
+
content_copy
@@ -84,7 +84,7 @@
-
+
content_copy
diff --git a/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js b/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js
index 935eb27be..5ed3df350 100644
--- a/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js
+++ b/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js
@@ -300,7 +300,7 @@
}
function clipboard(elem_id) {
- let linkUrl = document.getElementById(elem_id);
+ var linkUrl = document.getElementById(elem_id);
navigator.clipboard.writeText(linkUrl.value);
}
}