/* Onionr - Private P2P Communication This file handles the mail interface This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ var sendbutton = document.getElementById('sendMail') messageContent = document.getElementById('draftText') to = document.getElementById('draftID') subject = document.getElementById('draftSubject') friendPicker = document.getElementById('friendSelect') function utf8Length(s) { var size = encodeURIComponent(s).match(/%[89ABab]/g); return s.length + (size ? size.length : 0); } function padString(string_data, round_nearest_byte_exponent = 3){ if (utf8Length(string_data) === 0){ string_data += '0' } let round_size = 10 ** round_nearest_byte_exponent while (utf8Length(string_data) % round_size > 0){ string_data += '0' } return string_data } function sendMail(toData, message, subject){ let meta = {'subject': subject} if (document.getElementById('messagePaddingSetting').checked){ message = padString(message) } if (document.getElementById('mailSignatureSetting').value !== false){ message += "\n" message += document.getElementById('mailSignatureSetting').value } postData = {'message': message, 'to': toData, 'type': 'pm', 'encrypt': true, 'meta': JSON.stringify(meta)} postData.forward = document.getElementById('forwardSecrecySetting').checked postData = JSON.stringify(postData) sendForm.style.display = 'none' fetch('/insertblock', { method: 'POST', body: postData, headers: { "content-type": "application/json", "token": webpass }}) .then((resp) => resp.text()) // Transform the data into text .then(function(data) { sendForm.style.display = 'block' PNotify.success({ text: 'Queued for sending!', delay: 3500, mouseReset: false }) to.value = subject.value = messageContent.value = "" friendPicker.value = "" subject.value = "" }) } var friendPicker = document.getElementById('friendSelect') friendPicker.onchange = function(){ to.value = friendPicker.value } sendForm.onsubmit = function(){ if (! to.value.includes("-") && to.value.length !== 56 && to.value.length !== 52){ PNotify.error({ text: 'User ID is not valid' }) } else{ sendMail(to.value, messageContent.value, subject.value) } return false }