Skip to content

Commit

Permalink
Merge pull request #172 from jeevatkm/improve-and-add-options
Browse files Browse the repository at this point in the history
  • Loading branch information
jeevatkm authored Aug 22, 2024
2 parents 975afd3 + c53474f commit a4a81fe
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 15 deletions.
8 changes: 6 additions & 2 deletions background.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async function detectLocaleAndSetAsDefault() {
}

let uiLocale = messenger.i18n.getUILanguage();
let selected = rwhI18n.i18n.lang[uiLocale];
let selected = rwhI18n.i18n.lang[uiLocale] ?? 'en-US';
let currentLocale = await rwhSettings.getHeaderLocale();
rwhLogger.debug('currentLocale:', currentLocale, 'uiLocale:', uiLocale, 'selected:', selected);
if (selected !== 'undefined' && currentLocale !== uiLocale) {
Expand All @@ -59,11 +59,15 @@ async function init() {
});

await detectLocaleAndSetAsDefault();

let tbInfo = await messenger.runtime.getBrowserInfo();
let tbPlatformInfo = await messenger.runtime.getPlatformInfo();
let manifestInfo = messenger.runtime.getManifest();
rwhLogger.info(`Add-on v${manifestInfo.version} loaded successfully (TB v${tbInfo.version}, Platform: ${tbPlatformInfo.os} ${tbPlatformInfo.arch})`);
}

try {
init();
rwhLogger.info('Addon loaded successfully');
} catch (e) {
rwhLogger.error(e);
}
28 changes: 16 additions & 12 deletions modules/compose.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ class ReplyWithHeader {
// Originally, there's no <br> after the (unindented) cite prefix.
// With the table style, it looks better with an extra empty line (like everybody else has it).
div.insertAdjacentElement(positionBeforeEnd, this._createElement('br'));
div.insertAdjacentElement(positionAfterBegin, this._createElement('br'));

// blockquote
if (await rwhSettings.isCleanAllBlockQuoteColor()) { // all
Expand All @@ -194,15 +195,10 @@ class ReplyWithHeader {
if (this.isForward) {
let mozForwardContainer = this._getByClassName('moz-forward-container');
this._cleanNodesUpToClassName(mozForwardContainer, targetNodeClassName);

// Insert 2 <br> before the headers to make it look like a reply does.
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));

// There are 2 <br> originally, but none for reply mode.
// We add one for replies, so let's remove one for forwards to make it even.
let nextBr = mozForwardContainer.querySelector("div.moz-email-headers-table + br");
nextBr?.remove();

// Insert 2 <br> before the headers to make it look like a reply does.
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
}

return {
Expand Down Expand Up @@ -262,7 +258,6 @@ class ReplyWithHeader {
}
}


this.#text = textLines.join('\r\n');
return {
plainTextBody: this.#text
Expand All @@ -277,10 +272,19 @@ class ReplyWithHeader {
let rwhHeaders = '<div id="rwhHeaders"';
if (await rwhSettings.isHeaderHtmlPrefixLine()) {
let borderColor = await rwhSettings.getHeaderHtmlPrefixLineColor();
rwhHeaders += ` style="border:none;border-top:solid ${borderColor} 1.0pt;padding:3.0pt 0cm 0cm 0cm"`
rwhHeaders += ` style="border:none;border-top:solid ${borderColor} 1.0pt;padding:3.0pt 0cm 0cm 0cm;width:100%"`
}
rwhHeaders += '>';

// font size
let fontSizeStyle = '';
if (await rwhSettings.isHeaderHtmlFontSize()) {
let fontSizeValue = await rwhSettings.getHeaderHtmlFontSizeValue() ?? null;
if (fontSizeValue) {
fontSizeStyle = `;font-size:${fontSizeValue}`;
}
}

headerLabelSeqValues.forEach(function (hdrKey, _) {
if (hdrKey == 'reply-to' && this.isReply) {
return;
Expand All @@ -292,7 +296,7 @@ class ReplyWithHeader {
}

if (headers[hdrKey]) {
rwhHeaders += '<p style="margin:0cm"><span><b>' + lbl + '</b> ' + headers[hdrKey] + '</span></p>';
rwhHeaders += '<p style="margin:0cm' + fontSizeStyle +'"><span><b>' + lbl + '</b> ' + headers[hdrKey] + '</span></p>';
}
}, this);

Expand Down
12 changes: 12 additions & 0 deletions modules/settings.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ let keyHeaderLocaleUserSelected = 'header.locale.user.selected';
let keyHeaderPlainPrefixText = 'header.plain.prefix.text';
let keyHeaderHtmlPrefixLine = 'header.html.prefix.line';
let keyHeaderHtmlPrefixLineColor = 'header.html.prefix.line.color';
let keyHeaderHtmlFontSize = 'header.html.font.size';
let keyHeaderHtmlFontSizeValue = 'header.html.font.size.value';
let keyTransSubjectPrefix = 'trans.subject.prefix';
let keyCleanBlockQuoteColor = 'clean.blockquote.color';
let keyCleanAllBlockQuoteColor = 'clean.blockquote.all.color';
Expand All @@ -50,6 +52,8 @@ let rwhDefaultSettings = {
[keyHeaderPlainPrefixText]: true,
[keyHeaderHtmlPrefixLine]: true,
[keyHeaderHtmlPrefixLineColor]: '#B5C4DF',
[keyHeaderHtmlFontSize]: false,
[keyHeaderHtmlFontSizeValue]: '11.5pt',
[keyTransSubjectPrefix]: true,

// Date & Time
Expand Down Expand Up @@ -157,6 +161,14 @@ export async function getHeaderHtmlPrefixLineColor() {
return await get(keyHeaderHtmlPrefixLineColor, rwhDefaultSettings[keyHeaderHtmlPrefixLineColor]);
}

export async function isHeaderHtmlFontSize() {
return await get(keyHeaderHtmlFontSize, rwhDefaultSettings[keyHeaderHtmlFontSize]);
}

export async function getHeaderHtmlFontSizeValue() {
return await get(keyHeaderHtmlFontSizeValue, rwhDefaultSettings[keyHeaderHtmlFontSizeValue]);
}

export async function isTransSubjectPrefix() {
return await get(keyTransSubjectPrefix, rwhDefaultSettings[keyTransSubjectPrefix]);
}
Expand Down
9 changes: 8 additions & 1 deletion options/options.html
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
</div>
</fieldset>
<fieldset>
<legend id="lblHeaderPrefix">Header prefix</legend>
<legend id="lblHeaderPrefix">Header prefix and styling</legend>
<div class="hbox">
<label>
<input type="checkbox" id="hdrPlainPrefixText" data-preference="header.plain.prefix.text" />
Expand All @@ -98,6 +98,13 @@
<input type="text" id="hdrHtmlPrefixLineColor" data-preference="header.html.prefix.line.color" style="height: 17px;width: 75px;font-size: 12px;text-align: center;" />
</label>
</div>
<div class="hbox">
<label>
<input type="checkbox" id="hdrHtmlFontSize" data-preference="header.html.font.size" />
Apply HTML header font size
<input type="text" id="hdrHtmlFontSizeValue" title="E.g.: 11.5pt or 14px" data-preference="header.html.font.size.value" style="height: 17px;width: 75px;font-size: 12px;text-align: center;" />
</label>
</div>
</fieldset>

<fieldset>
Expand Down
6 changes: 6 additions & 0 deletions options/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@ async function loadPref(prefElement) {
document.getElementById('hdrHtmlPrefixLineColor').disabled = !e.target.checked;
});
break;
case 'header.html.font.size':
prefElement.addEventListener('click', function(e) {
document.getElementById('hdrHtmlFontSizeValue').disabled = !e.target.checked;
});
document.getElementById('hdrHtmlFontSizeValue').disabled = !value;
break;
}
prefElement.checked = value;
prefElement.addEventListener('change', () => savePref(prefElement));
Expand Down

0 comments on commit a4a81fe

Please sign in to comment.