Skip to content

Commit a4a81fe

Browse files
authored
Merge pull request #172 from jeevatkm/improve-and-add-options
2 parents 975afd3 + c53474f commit a4a81fe

File tree

5 files changed

+48
-15
lines changed

5 files changed

+48
-15
lines changed

background.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ async function detectLocaleAndSetAsDefault() {
4141
}
4242

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

6161
await detectLocaleAndSetAsDefault();
62+
63+
let tbInfo = await messenger.runtime.getBrowserInfo();
64+
let tbPlatformInfo = await messenger.runtime.getPlatformInfo();
65+
let manifestInfo = messenger.runtime.getManifest();
66+
rwhLogger.info(`Add-on v${manifestInfo.version} loaded successfully (TB v${tbInfo.version}, Platform: ${tbPlatformInfo.os} ${tbPlatformInfo.arch})`);
6267
}
6368

6469
try {
6570
init();
66-
rwhLogger.info('Addon loaded successfully');
6771
} catch (e) {
6872
rwhLogger.error(e);
6973
}

modules/compose.mjs

+16-12
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ class ReplyWithHeader {
179179
// Originally, there's no <br> after the (unindented) cite prefix.
180180
// With the table style, it looks better with an extra empty line (like everybody else has it).
181181
div.insertAdjacentElement(positionBeforeEnd, this._createElement('br'));
182+
div.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
182183

183184
// blockquote
184185
if (await rwhSettings.isCleanAllBlockQuoteColor()) { // all
@@ -194,15 +195,10 @@ class ReplyWithHeader {
194195
if (this.isForward) {
195196
let mozForwardContainer = this._getByClassName('moz-forward-container');
196197
this._cleanNodesUpToClassName(mozForwardContainer, targetNodeClassName);
197-
198-
// Insert 2 <br> before the headers to make it look like a reply does.
199-
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
200-
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
201-
202-
// There are 2 <br> originally, but none for reply mode.
203-
// We add one for replies, so let's remove one for forwards to make it even.
204-
let nextBr = mozForwardContainer.querySelector("div.moz-email-headers-table + br");
205-
nextBr?.remove();
198+
199+
// Insert 2 <br> before the headers to make it look like a reply does.
200+
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
201+
mozForwardContainer.insertAdjacentElement(positionAfterBegin, this._createElement('br'));
206202
}
207203

208204
return {
@@ -262,7 +258,6 @@ class ReplyWithHeader {
262258
}
263259
}
264260

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

279+
// font size
280+
let fontSizeStyle = '';
281+
if (await rwhSettings.isHeaderHtmlFontSize()) {
282+
let fontSizeValue = await rwhSettings.getHeaderHtmlFontSizeValue() ?? null;
283+
if (fontSizeValue) {
284+
fontSizeStyle = `;font-size:${fontSizeValue}`;
285+
}
286+
}
287+
284288
headerLabelSeqValues.forEach(function (hdrKey, _) {
285289
if (hdrKey == 'reply-to' && this.isReply) {
286290
return;
@@ -292,7 +296,7 @@ class ReplyWithHeader {
292296
}
293297

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

modules/settings.mjs

+12
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ let keyHeaderLocaleUserSelected = 'header.locale.user.selected';
3636
let keyHeaderPlainPrefixText = 'header.plain.prefix.text';
3737
let keyHeaderHtmlPrefixLine = 'header.html.prefix.line';
3838
let keyHeaderHtmlPrefixLineColor = 'header.html.prefix.line.color';
39+
let keyHeaderHtmlFontSize = 'header.html.font.size';
40+
let keyHeaderHtmlFontSizeValue = 'header.html.font.size.value';
3941
let keyTransSubjectPrefix = 'trans.subject.prefix';
4042
let keyCleanBlockQuoteColor = 'clean.blockquote.color';
4143
let keyCleanAllBlockQuoteColor = 'clean.blockquote.all.color';
@@ -50,6 +52,8 @@ let rwhDefaultSettings = {
5052
[keyHeaderPlainPrefixText]: true,
5153
[keyHeaderHtmlPrefixLine]: true,
5254
[keyHeaderHtmlPrefixLineColor]: '#B5C4DF',
55+
[keyHeaderHtmlFontSize]: false,
56+
[keyHeaderHtmlFontSizeValue]: '11.5pt',
5357
[keyTransSubjectPrefix]: true,
5458

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

164+
export async function isHeaderHtmlFontSize() {
165+
return await get(keyHeaderHtmlFontSize, rwhDefaultSettings[keyHeaderHtmlFontSize]);
166+
}
167+
168+
export async function getHeaderHtmlFontSizeValue() {
169+
return await get(keyHeaderHtmlFontSizeValue, rwhDefaultSettings[keyHeaderHtmlFontSizeValue]);
170+
}
171+
160172
export async function isTransSubjectPrefix() {
161173
return await get(keyTransSubjectPrefix, rwhDefaultSettings[keyTransSubjectPrefix]);
162174
}

options/options.html

+8-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
</div>
8585
</fieldset>
8686
<fieldset>
87-
<legend id="lblHeaderPrefix">Header prefix</legend>
87+
<legend id="lblHeaderPrefix">Header prefix and styling</legend>
8888
<div class="hbox">
8989
<label>
9090
<input type="checkbox" id="hdrPlainPrefixText" data-preference="header.plain.prefix.text" />
@@ -98,6 +98,13 @@
9898
<input type="text" id="hdrHtmlPrefixLineColor" data-preference="header.html.prefix.line.color" style="height: 17px;width: 75px;font-size: 12px;text-align: center;" />
9999
</label>
100100
</div>
101+
<div class="hbox">
102+
<label>
103+
<input type="checkbox" id="hdrHtmlFontSize" data-preference="header.html.font.size" />
104+
Apply HTML header font size
105+
<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;" />
106+
</label>
107+
</div>
101108
</fieldset>
102109

103110
<fieldset>

options/options.js

+6
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ async function loadPref(prefElement) {
8181
document.getElementById('hdrHtmlPrefixLineColor').disabled = !e.target.checked;
8282
});
8383
break;
84+
case 'header.html.font.size':
85+
prefElement.addEventListener('click', function(e) {
86+
document.getElementById('hdrHtmlFontSizeValue').disabled = !e.target.checked;
87+
});
88+
document.getElementById('hdrHtmlFontSizeValue').disabled = !value;
89+
break;
8490
}
8591
prefElement.checked = value;
8692
prefElement.addEventListener('change', () => savePref(prefElement));

0 commit comments

Comments
 (0)