Skip to content

Commit

Permalink
feat(core): Update to ckeditor 5. Fixes #5920. Add SOGoForceRawHtmlSi…
Browse files Browse the repository at this point in the history
…gnature to disable raw-html-embed. Removed CKEditor signature box style when composing mail. Fix issue where raw-html-embed was added when changind signature
  • Loading branch information
WoodySlum committed Apr 8, 2024
1 parent a9e02d9 commit 98e00d0
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 7 deletions.
7 changes: 5 additions & 2 deletions Documentation/SOGoInstallationGuide.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,9 @@ specified as an array of dictionaries.
|S |SOGoURLEncryptionPassphrase
|Passphrase for `SOGoURLEncryptionEnabled`. The string must be 128 bits (16 characters). If this settings change, the cache server must be restarted, and the DAV url will change. Default value is `SOGoSuperSecret0`.
|D |SOGoForceRawHtmlSignature
|Add `<div class="raw-html-embed sogo-raw-html-embed">` around signature to avoid CKEditor 5 modifying HTML code and breaking signature (https://bugs.sogo.nu/view.php?id=5920). Default value is `YES` (tag is added).
|=======================================================================
Expand Down Expand Up @@ -3971,8 +3974,8 @@ current version of SOGo from the previous release.
[cols="100a"]
|=======================================================================
h|5.10.1
|Parameters `SOGoGlobalAddressBookFirstEntries` and `SOGoGlobalAddressBookFirstEntriesCount` has been removed. Please use `listRequiresDot` and `globalAddressBookFirstEntriesCount` instead
h|5.11
|Parameters `SOGoGlobalAddressBookFirstEntries` and `SOGoGlobalAddressBookFirstEntriesCount` has been removed. Please use `listRequiresDot` and `globalAddressBookFirstEntriesCount` instead. Signature are now between a div tag to avoid CKEditor changing the content - set `SOGoForceRawHtmlSignature` to `NO` to leave signature (https://bugs.sogo.nu/view.php?id=5920).
h|5.9.0
|Run the shell script `sql-update-5.8.4_to_5.9.0.sh` (if you are using MySQL). This will change the `c_defaults` to `MEDIUMTEXT`.
Expand Down
2 changes: 2 additions & 0 deletions SoObjects/SOGo/SOGoDomainDefaults.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@

- (NSString *) passwordRecoveryFrom;

- (BOOL) forceRawHtmlSignature;

@end

#endif /* SOGODOMAINDEFAULTS_H */
5 changes: 5 additions & 0 deletions SoObjects/SOGo/SOGoDomainDefaults.m
Original file line number Diff line number Diff line change
Expand Up @@ -465,4 +465,9 @@ - (NSString *) passwordRecoveryFrom
return emailFrom;
}

- (BOOL) forceRawHtmlSignature
{
return [self objectForKey: @"SOGoForceRawHtmlSignature"] ? [self boolForKey: @"SOGoForceRawHtmlSignature"] : YES;
}

@end
1 change: 1 addition & 0 deletions SoObjects/SOGo/SOGoUser.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
- (unsigned int) weekNumberForDate: (NSCalendarDate *) date;

- (NSArray *) mailAccounts;
- (NSArray *) mailAccountsNoRawHtmlSignature;
- (NSArray *) mailAccountsWithDelegatedIdentities: (BOOL) appendDeletegatedIdentities;
- (NSDictionary *) accountWithName: (NSString *) accountName;
- (NSArray *) allIdentities;
Expand Down
14 changes: 10 additions & 4 deletions SoObjects/SOGo/SOGoUser.m
Original file line number Diff line number Diff line change
Expand Up @@ -1026,10 +1026,15 @@ - (void) _appendSystemMailAccountWithDelegatedIdentities: (BOOL) appendDeletegat

- (NSArray *) mailAccounts
{
return [self mailAccountsWithDelegatedIdentities: YES];
return [self mailAccountsWithDelegatedIdentities: YES forceRawHtmlSignature: [[self domainDefaults] forceRawHtmlSignature]];
}

- (NSArray *) mailAccountsWithDelegatedIdentities: (BOOL) appendDeletegatedIdentities
- (NSArray *) mailAccountsNoRawHtmlSignature
{
return [self mailAccountsWithDelegatedIdentities: YES forceRawHtmlSignature: NO];
}

- (NSArray *) mailAccountsWithDelegatedIdentities: (BOOL) appendDeletegatedIdentities forceRawHtmlSignature: (BOOL) forceRawHtmlSignature
{
NSArray *auxAccounts;

Expand Down Expand Up @@ -1112,8 +1117,9 @@ - (NSArray *) mailAccountsWithDelegatedIdentities: (BOOL) appendDeletegatedIdent
if ([tmpIdentity objectForKey: @"signature"] ) {
// Add raw html embed class
if ([[tmpIdentity objectForKey: @"signature"] rangeOfString:@"raw-html-embed"].location == NSNotFound
&& [[[self userDefaults] mailComposeMessageType] isEqualToString: @"html"]) {
signature = [NSString stringWithFormat:@"<div class=\"raw-html-embed\">%@</div>", [tmpIdentity objectForKey: @"signature"]];
&& [[[self userDefaults] mailComposeMessageType] isEqualToString: @"html"]
&& forceRawHtmlSignature) {
signature = [NSString stringWithFormat:@"<div class=\"raw-html-embed sogo-raw-html-embed\">%@</div>", [tmpIdentity objectForKey: @"signature"]];
[tmpIdentity setObject:signature forKey:@"signature"];
}
}
Expand Down
2 changes: 1 addition & 1 deletion UI/PreferencesUI/UIxJSONPreferences.m
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ - (NSString *) jsonDefaults
}
}
// We inject our default mail account
account = [[[context activeUser] mailAccounts] objectAtIndex: 0];
account = [[[context activeUser] mailAccountsNoRawHtmlSignature] objectAtIndex: 0];
if (![account objectForKey: @"receipts"])
{
[account setObject: [NSDictionary dictionaryWithObjectsAndKeys: @"ignore", @"receiptAction",
Expand Down
24 changes: 24 additions & 0 deletions UI/WebServerResources/scss/views/MailerUI.scss
Original file line number Diff line number Diff line change
Expand Up @@ -428,4 +428,28 @@ md-dialog md-dialog-actions.sg-mail-editor-attachments {
margin-left: unset!important;
margin-right: unset!important;
}

.ck-widget.sogo-raw-html-embed:before {
display: none!important;
}

.sogo-raw-html-embed .raw-html-embed__buttons-wrapper {
display: none !important;
}

.ck-widget.sogo-raw-html-embed:not(.ck-widget_selected):not(:hover) {
outline: none!important;
}

.ck-widget.sogo-raw-html-embed {
background-color: unset;
}

.ck-widget.sogo-raw-html-embed .raw-html-embed__preview-content {
background-color: unset;
}

.sogo-raw-html-embed .raw-html-embed__preview-placeholder {
display: none !important;
}
}

0 comments on commit 98e00d0

Please sign in to comment.