mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-24 01:17:34 +09:00
Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1
This commit is contained in:
parent
23e0d82436
commit
e400f4130a
1564 changed files with 510348 additions and 0 deletions
157
mailnews/compose/content/mailComposeEditorOverlay.xul
Normal file
157
mailnews/compose/content/mailComposeEditorOverlay.xul
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- 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/. -->
|
||||
|
||||
<!DOCTYPE window SYSTEM "chrome://messenger/locale/messengercompose/mailComposeEditorOverlay.dtd" >
|
||||
|
||||
<overlay id="mailComposeEditorOverlay"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<script type="application/javascript">
|
||||
<![CDATA[
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
var gMsgCompProcessLink = false;
|
||||
var gMsgCompInputElement = null;
|
||||
var gMsgCompPrevInputValue = null;
|
||||
var gMsgCompPrevMozDoNotSendAttribute;
|
||||
var gMsgCompAttachSourceElement = null;
|
||||
|
||||
function OnLoadOverlay()
|
||||
{
|
||||
gMsgCompAttachSourceElement = document.getElementById("AttachSourceToMail");
|
||||
var editor = GetCurrentEditor();
|
||||
if (gMsgCompAttachSourceElement && editor &&
|
||||
(editor.flags & Components.interfaces.nsIPlaintextEditor.eEditorMailMask))
|
||||
{
|
||||
SetRelativeCheckbox = function() { SetAttachCheckbox();};
|
||||
//initialize the AttachSourceToMail checkbox
|
||||
gMsgCompAttachSourceElement.hidden = false;
|
||||
|
||||
switch (document.documentElement.id)
|
||||
{
|
||||
case "imageDlg":
|
||||
gMsgCompInputElement = gDialog.srcInput;
|
||||
gMsgCompProcessLink = false;
|
||||
break;
|
||||
case "linkDlg" :
|
||||
gMsgCompInputElement = gDialog.hrefInput;
|
||||
gMsgCompProcessLink = true;
|
||||
break;
|
||||
}
|
||||
if (gMsgCompInputElement)
|
||||
{
|
||||
SetAttachCheckbox();
|
||||
gMsgCompPrevMozDoNotSendAttribute = globalElement.getAttribute("moz-do-not-send")
|
||||
}
|
||||
}
|
||||
}
|
||||
addEventListener("load", OnLoadOverlay, false);
|
||||
|
||||
function OnAcceptOverlay()
|
||||
{
|
||||
// Auto-convert file URLs to data URLs. If we're in the link properties
|
||||
// dialog convert only when requested - for the image dialog do it always.
|
||||
if (/^file:/i.test(gMsgCompInputElement.value.trim()) &&
|
||||
(gMsgCompAttachSourceElement.checked || !gMsgCompProcessLink)) {
|
||||
var dataURI = GenerateDataURL(gMsgCompInputElement.value.trim());
|
||||
gMsgCompInputElement.value = dataURI;
|
||||
gMsgCompAttachSourceElement.checked = true;
|
||||
}
|
||||
DoAttachSourceCheckbox();
|
||||
}
|
||||
addEventListener("dialogaccept", OnAcceptOverlay, false);
|
||||
|
||||
function SetAttachCheckbox()
|
||||
{
|
||||
var resetCheckbox = false;
|
||||
var mozDoNotSend = globalElement.getAttribute("moz-do-not-send");
|
||||
|
||||
//In case somebody played with the advanced property and changed the moz-do-not-send attribute
|
||||
if (mozDoNotSend != gMsgCompPrevMozDoNotSendAttribute)
|
||||
{
|
||||
gMsgCompPrevMozDoNotSendAttribute = mozDoNotSend;
|
||||
resetCheckbox = true;
|
||||
}
|
||||
|
||||
// Has the URL changed
|
||||
if (gMsgCompInputElement && gMsgCompInputElement.value != gMsgCompPrevInputValue)
|
||||
{
|
||||
gMsgCompPrevInputValue = gMsgCompInputElement.value;
|
||||
resetCheckbox = true;
|
||||
}
|
||||
|
||||
if (gMsgCompInputElement && resetCheckbox)
|
||||
{
|
||||
// Here is the rule about how to set the checkbox Attach Source To Message:
|
||||
// If the attribute "moz-do-not-send" has not been set, we look at the scheme of the URL
|
||||
// and at some preference to decide what is the best for the user.
|
||||
// If it is set to "false", the checkbox is checked, otherwise unchecked.
|
||||
var attach = false;
|
||||
if (mozDoNotSend == null)
|
||||
{
|
||||
// We haven't yet set the "moz-do-not-send" attribute.
|
||||
var inputValue = gMsgCompInputElement.value.trim();
|
||||
if (/^(file|data):/i.test(inputValue)) {
|
||||
// For files or data URLs, default to attach them.
|
||||
attach = true;
|
||||
} else if (!gMsgCompProcessLink && // Implies image dialogue.
|
||||
/^https?:/i.test(inputValue)) {
|
||||
// For images loaded via http(s) we default to the preference value.
|
||||
attach = Services.prefs.getBoolPref("mail.compose.attach_http_images");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
attach = (mozDoNotSend == "false");
|
||||
}
|
||||
|
||||
gMsgCompAttachSourceElement.checked = attach;
|
||||
}
|
||||
}
|
||||
|
||||
function DoAttachSourceCheckbox()
|
||||
{
|
||||
gMsgCompPrevMozDoNotSendAttribute = (!gMsgCompAttachSourceElement.checked).toString();
|
||||
globalElement.setAttribute("moz-do-not-send", gMsgCompPrevMozDoNotSendAttribute);
|
||||
}
|
||||
|
||||
function GenerateDataURL(url) {
|
||||
var file = Services.io.newURI(url, null, null)
|
||||
.QueryInterface(Components.interfaces.nsIFileURL).file;
|
||||
var contentType = Components.classes["@mozilla.org/mime;1"]
|
||||
.getService(Components.interfaces.nsIMIMEService)
|
||||
.getTypeFromFile(file);
|
||||
var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"]
|
||||
.createInstance(Components.interfaces.nsIFileInputStream);
|
||||
inputStream.init(file, 0x01, 0o600, 0);
|
||||
var stream = Components.classes["@mozilla.org/binaryinputstream;1"]
|
||||
.createInstance(Components.interfaces.nsIBinaryInputStream);
|
||||
stream.setInputStream(inputStream);
|
||||
let data = "";
|
||||
while (stream.available() > 0) {
|
||||
data += stream.readBytes(stream.available());
|
||||
}
|
||||
let encoded = btoa(data);
|
||||
stream.close();
|
||||
return "data:" + contentType +
|
||||
";filename=" + encodeURIComponent(file.leafName) +
|
||||
";base64," + encoded;
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
|
||||
<hbox id="MakeRelativeHbox">
|
||||
<checkbox id="AttachSourceToMail" hidden="true"
|
||||
label="&attachImageSource.label;" accesskey="&attachImageSource.accesskey;"
|
||||
insertafter="MakeRelativeCheckbox" oncommand="DoAttachSourceCheckbox()"/>
|
||||
</hbox>
|
||||
|
||||
<groupbox id="LinkURLBox">
|
||||
<checkbox id="AttachSourceToMail" hidden="true"
|
||||
label="&attachLinkSource.label;" accesskey="&attachLinkSource.accesskey;"
|
||||
insertafter="LinkLocationBox" oncommand="DoAttachSourceCheckbox()"/>
|
||||
</groupbox>
|
||||
|
||||
</overlay>
|
||||
Loading…
Add table
Add a link
Reference in a new issue