/* -*- Mode: Javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ var gAttachmentReminderOptionsDialog = { keywordListBox: null, init() { this.keywordListBox = document.getElementById("keywordList"); this.buildKeywordList(); }, buildKeywordList() { var keywordsInCsv = Services.prefs.getComplexValue( "mail.compose.attachment_reminder_keywords", Ci.nsIPrefLocalizedString ); if (!keywordsInCsv) { return; } keywordsInCsv = keywordsInCsv.data; var keywordsInArr = keywordsInCsv.split(","); for (let i = 0; i < keywordsInArr.length; i++) { if (keywordsInArr[i]) { this.keywordListBox.appendItem(keywordsInArr[i], keywordsInArr[i]); } } if (keywordsInArr.length) { this.keywordListBox.selectedIndex = 0; } }, async addKeyword() { var input = { value: "" }; // Default to empty. let [title, message] = await document.l10n.formatValues([ { id: "new-keyword-title" }, { id: "new-keyword-label" }, ]); var ok = Services.prompt.prompt(window, title, message, input, null, { value: 0, }); if (ok && input.value) { let newKey = this.keywordListBox.appendItem(input.value, input.value); this.keywordListBox.ensureElementIsVisible(newKey); this.keywordListBox.selectItem(newKey); } }, async editKeyword() { if (this.keywordListBox.selectedIndex < 0) { return; } var keywordToEdit = this.keywordListBox.selectedItem; var input = { value: keywordToEdit.getAttribute("value") }; let [title, message] = await document.l10n.formatValues([ { id: "edit-keyword-title" }, { id: "edit-keyword-label" }, ]); var ok = Services.prompt.prompt(window, title, message, input, null, { value: 0, }); if (ok && input.value) { this.keywordListBox.selectedItem.value = input.value; this.keywordListBox.selectedItem.label = input.value; } }, removeKeyword() { if (this.keywordListBox.selectedIndex < 0) { return; } this.keywordListBox.selectedItem.remove(); }, saveKeywords() { var keywordList = ""; for (var i = 0; i < this.keywordListBox.getRowCount(); i++) { keywordList += this.keywordListBox .getItemAtIndex(i) .getAttribute("value"); if (i != this.keywordListBox.getRowCount() - 1) { keywordList += ","; } } Services.prefs.setStringPref( "mail.compose.attachment_reminder_keywords", keywordList ); }, }; document.addEventListener("dialogaccept", () => gAttachmentReminderOptionsDialog.saveKeywords() );