TF-332 Get original email content as html
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
|
||||
extension HtmlExtension on String {
|
||||
|
||||
static const String editorStartTags = '<p><br></p>';
|
||||
|
||||
String removeFontSizeZeroPixel() => replaceAll(RegExp('font-size:0px;'), '');
|
||||
|
||||
String removeHeightZeroPixel() => replaceAll(RegExp('height:0px;'), '');
|
||||
@@ -38,11 +40,10 @@ extension HtmlExtension on String {
|
||||
String toSignatureBlock() =>
|
||||
'<br class="tmail-break-tag"><div class="tmail-signature">${asSignatureHtml()}</div><br class="tmail-break-tag">';
|
||||
|
||||
String removeEditorDefaultSpace() {
|
||||
return replaceAll('<p><br><br><br></p>', '');
|
||||
String removeEditorStartTag() {
|
||||
if (trim() == editorStartTags) {
|
||||
return '';
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
String addEditorDefaultSpace() {
|
||||
return '<p><br><br><br></p>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,13 @@
|
||||
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:model/email/email_content_type.dart';
|
||||
import 'package:model/model.dart';
|
||||
|
||||
class EmailContent with EquatableMixin {
|
||||
|
||||
static const defaultHtmlTagsWrapContent = '<html><head></head><body></body></html>';
|
||||
|
||||
final String content;
|
||||
final EmailContentType type;
|
||||
|
||||
@@ -23,6 +26,31 @@ extension EmailContentExtension on EmailContent {
|
||||
.replaceAll('\n', '<br/>')
|
||||
.replaceAll('\n\n', '<br/>');
|
||||
}
|
||||
final newContent = _getContentOriginal(content);
|
||||
return newContent;
|
||||
}
|
||||
|
||||
String _getContentOriginal(String content) {
|
||||
if (content == EmailContent.defaultHtmlTagsWrapContent ||
|
||||
content.trim().isEmpty) {
|
||||
return '';
|
||||
}
|
||||
|
||||
final firstTags = '<html><head></head><body>';
|
||||
final latestTags = '</body></html>';
|
||||
if (content.startsWith(firstTags) && content.endsWith(latestTags)) {
|
||||
final firstIndex = firstTags.length;
|
||||
final latestIndex = content.length - latestTags.length;
|
||||
log('EmailContentExtension::_getContentOriginal(): firstIndex: $firstIndex');
|
||||
log('EmailContentExtension::_getContentOriginal(): latestIndex: $latestIndex');
|
||||
|
||||
if (latestIndex > firstIndex) {
|
||||
final contentOriginal = content.substring(firstIndex, latestIndex);
|
||||
log('EmailContentExtension::_getContentOriginal(): contentOriginal: $contentOriginal');
|
||||
return contentOriginal;
|
||||
}
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user