TF-332 Get original email content as html
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
extension HtmlExtension on String {
|
extension HtmlExtension on String {
|
||||||
|
|
||||||
|
static const String editorStartTags = '<p><br></p>';
|
||||||
|
|
||||||
String removeFontSizeZeroPixel() => replaceAll(RegExp('font-size:0px;'), '');
|
String removeFontSizeZeroPixel() => replaceAll(RegExp('font-size:0px;'), '');
|
||||||
|
|
||||||
String removeHeightZeroPixel() => replaceAll(RegExp('height:0px;'), '');
|
String removeHeightZeroPixel() => replaceAll(RegExp('height:0px;'), '');
|
||||||
@@ -38,11 +40,10 @@ extension HtmlExtension on String {
|
|||||||
String toSignatureBlock() =>
|
String toSignatureBlock() =>
|
||||||
'<br class="tmail-break-tag"><div class="tmail-signature">${asSignatureHtml()}</div><br class="tmail-break-tag">';
|
'<br class="tmail-break-tag"><div class="tmail-signature">${asSignatureHtml()}</div><br class="tmail-break-tag">';
|
||||||
|
|
||||||
String removeEditorDefaultSpace() {
|
String removeEditorStartTag() {
|
||||||
return replaceAll('<p><br><br><br></p>', '');
|
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:equatable/equatable.dart';
|
||||||
import 'package:model/email/email_content_type.dart';
|
import 'package:model/email/email_content_type.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|
||||||
class EmailContent with EquatableMixin {
|
class EmailContent with EquatableMixin {
|
||||||
|
|
||||||
|
static const defaultHtmlTagsWrapContent = '<html><head></head><body></body></html>';
|
||||||
|
|
||||||
final String content;
|
final String content;
|
||||||
final EmailContentType type;
|
final EmailContentType type;
|
||||||
|
|
||||||
@@ -23,6 +26,31 @@ extension EmailContentExtension on EmailContent {
|
|||||||
.replaceAll('\n', '<br/>')
|
.replaceAll('\n', '<br/>')
|
||||||
.replaceAll('\n\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;
|
return content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user