зеркало из https://github.com/mozilla/gecko-dev.git
Bug 248193 Better Attach Web Page dialog r=sspitzer sr=bienvenu
This commit is contained in:
Родитель
7e261217c0
Коммит
c5ba08c0f1
|
@ -1,31 +1,118 @@
|
|||
var result = null;
|
||||
|
||||
function Startup()
|
||||
{
|
||||
/* dump("Startup()\n"); */
|
||||
|
||||
if (window.arguments && window.arguments[0] && window.arguments[0])
|
||||
{
|
||||
result = window.arguments[0];
|
||||
doSetOKCancel(AttachPageOKCallback, AttachPageCancelCallback);
|
||||
moveToAlertPosition();
|
||||
}
|
||||
else
|
||||
{
|
||||
dump("error, no return object registered\n");
|
||||
}
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code, released
|
||||
* March 31, 1998.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Michael Lowe <michael.lowe@bigfoot.com>
|
||||
* Blake Ross <blaker@netscape.com>
|
||||
* Neil Rashbrook <neil@parkwaycc.co.uk>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
var browser;
|
||||
var dialog = {};
|
||||
var pref = null;
|
||||
try {
|
||||
pref = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
} catch (ex) {
|
||||
// not critical, remain silent
|
||||
}
|
||||
|
||||
function AttachPageOKCallback()
|
||||
function onLoad()
|
||||
{
|
||||
/* dump("attach this: " + document.getElementById('attachurl').value + "\n"); */
|
||||
dialog.input = document.getElementById("dialog.input");
|
||||
dialog.attach = document.documentElement.getButton("accept");
|
||||
dialog.bundle = document.getElementById("attachWebPageBundle");
|
||||
|
||||
result.url = document.getElementById('attachurl').value;
|
||||
return true;
|
||||
// change OK button text to 'attach'
|
||||
dialog.attach.label = dialog.bundle.getString("attachButtonLabel");
|
||||
|
||||
if (pref) {
|
||||
try {
|
||||
dialog.input.value =
|
||||
pref.getComplexValue("mailnews.attach_web_page.last_url",
|
||||
Components.interfaces.nsISupportsString).data;
|
||||
}
|
||||
catch(ex) {
|
||||
}
|
||||
}
|
||||
|
||||
doEnabling();
|
||||
}
|
||||
|
||||
function AttachPageCancelCallback()
|
||||
function doEnabling()
|
||||
{
|
||||
return true;
|
||||
dialog.attach.disabled = !dialog.input.value;
|
||||
}
|
||||
|
||||
function attach()
|
||||
{
|
||||
var attachment = Components.classes["@mozilla.org/messengercompose/attachment;1"]
|
||||
.createInstance(Components.interfaces.nsIMsgAttachment);
|
||||
attachment.url = dialog.input.value;
|
||||
window.arguments[0].attachment = attachment;
|
||||
if (pref) {
|
||||
var str = Components.classes["@mozilla.org/supports-string;1"]
|
||||
.createInstance(Components.interfaces.nsISupportsString);
|
||||
str.data = dialog.input.value;
|
||||
pref.setComplexValue("mailnews.attach_web_page.last_url",
|
||||
Components.interfaces.nsISupportsString, str);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function onChooseFile()
|
||||
{
|
||||
try {
|
||||
var fp = Components.classes["@mozilla.org/filepicker;1"]
|
||||
.createInstance(Components.interfaces.nsIFilePicker);
|
||||
fp.init(window, dialog.bundle.getString("chooseFileDialogTitle"), fp.modeOpen);
|
||||
fp.appendFilters(fp.filterHTML | fp.filterText |
|
||||
fp.filterAll | fp.filterImages | fp.filterXML);
|
||||
if (fp.show() == fp.returnOK && fp.fileURL.spec && fp.fileURL.spec.length > 0)
|
||||
dialog.input.value = fp.fileURL.spec;
|
||||
}
|
||||
catch(ex) {
|
||||
}
|
||||
doEnabling();
|
||||
}
|
||||
|
||||
function useUBHistoryItem(aMenuItem)
|
||||
{
|
||||
var urlbar = document.getElementById("dialog.input");
|
||||
urlbar.value = aMenuItem.getAttribute("label");
|
||||
urlbar.select();
|
||||
doEnabling();
|
||||
}
|
||||
|
|
|
@ -1,29 +1,77 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/dialogs.css" type="text/css"?>
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
<!DOCTYPE window SYSTEM "chrome://messenger/locale/messengercompose/MsgAttachPage.dtd">
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
<window title="&windowTitle.label;"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="Startup()"
|
||||
class="dialog">
|
||||
The Original Code is Mozilla Communicator client code, released
|
||||
March 31, 1998.
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/messengercompose/MsgAttachPage.js"/>
|
||||
The Initial Developer of the Original Code is
|
||||
Netscape Communications Corporation.
|
||||
Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
<keyset id="dialogKeys"/>
|
||||
Contributor(s):
|
||||
Ben Goodger <ben@netscape.com>
|
||||
Michael Lowe <michael.lowe@bigfoot.com>
|
||||
Neil Rashbrook <neil@parkwaycc.co.uk>
|
||||
|
||||
<spacer style="height:0.5em" />
|
||||
<hbox>
|
||||
<spacer style="width:10px" />
|
||||
<label value="&webpage.label;"/>
|
||||
<textbox id="attachurl" align="bottom" style="min-width:200px; padding-bottom:0px" class="uri-element"/>
|
||||
<spacer style="width:10px" />
|
||||
</hbox>
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
<spacer style="height:1em"/>
|
||||
<hbox id="okCancelButtons"/>
|
||||
<spacer style="height:0.5em" />
|
||||
</window>
|
||||
***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
|
||||
|
||||
<!DOCTYPE dialog SYSTEM "chrome://messenger/locale/messengercompose/MsgAttachPage.dtd">
|
||||
|
||||
<dialog id="MsgAttachPage"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="&caption.label;"
|
||||
onload="onLoad();"
|
||||
ondialogaccept="return attach();"
|
||||
style="width: 40em;"
|
||||
persist="screenX screenY"
|
||||
screenX="24" screenY="24">
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/messengercompose/MsgAttachPage.js"/>
|
||||
<script type="application/x-javascript" src="chrome://navigator/content/sessionHistoryUI.js"/>
|
||||
|
||||
<stringbundle id="attachWebPageBundle" src="chrome://messenger/locale/messengercompose/composeMsgs.properties"/>
|
||||
|
||||
<label value="&enter.label;" control="dialog.input" accesskey="&enter.accesskey;"/>
|
||||
<separator class="thin"/>
|
||||
|
||||
<hbox align="center">
|
||||
<textbox id="dialog.input" flex="1" type="autocomplete"
|
||||
searchSessions="history" timeout="50" maxrows="6"
|
||||
disablehistory="false" class="uri-element"
|
||||
oninput="doEnabling();">
|
||||
<menupopup id="ubhist-popup" class="autocomplete-history-popup"
|
||||
popupalign="topleft" popupanchor="bottomleft"
|
||||
onpopupshowing="createUBHistoryMenu(event.target);"
|
||||
oncommand="useUBHistoryItem(event.target);"/>
|
||||
</textbox>
|
||||
<button label="&chooseFile.label;" accesskey="&chooseFile.accesskey;" oncommand="onChooseFile();"/>
|
||||
</hbox>
|
||||
|
||||
</dialog>
|
||||
|
|
|
@ -2348,23 +2348,12 @@ function MessageHasSelectedAttachments()
|
|||
|
||||
function AttachPage()
|
||||
{
|
||||
if (gPromptService)
|
||||
{
|
||||
var result = {value:"http://"};
|
||||
if (gPromptService.prompt(
|
||||
window,
|
||||
sComposeMsgsBundle.getString("attachPageDlogTitle"),
|
||||
sComposeMsgsBundle.getString("attachPageDlogMessage"),
|
||||
result,
|
||||
null,
|
||||
{value:0}))
|
||||
{
|
||||
var attachment = Components.classes["@mozilla.org/messengercompose/attachment;1"].createInstance(Components.interfaces.nsIMsgAttachment);
|
||||
attachment.url = result.value;
|
||||
AddAttachment(attachment);
|
||||
}
|
||||
}
|
||||
var result = { attachment: null };
|
||||
window.openDialog("chrome://messenger/content/messengercompose/MsgAttachPage.xul", "_blank", "chrome,close,titlebar,modal", result);
|
||||
if (result.attachment)
|
||||
AddAttachment(result.attachment);
|
||||
}
|
||||
|
||||
function DuplicateFileCheck(FileUrl)
|
||||
{
|
||||
var bucket = document.getElementById('attachmentBucket');
|
||||
|
|
|
@ -1,3 +1,40 @@
|
|||
<!--LOCALIZATION NOTE MsgAttachPage.dtd UI for attaching a page to a mail/news message -->
|
||||
<!ENTITY windowTitle.label "Please Specify a Location to Attach">
|
||||
<!ENTITY webpage.label "Web Page (URL):">
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is Attach Web Page Dialog.
|
||||
|
||||
The Initial Developer of the Original Code is Neil Rashbrook.
|
||||
Portions created by the Initial Developer are Copyright (C) 2004
|
||||
the Initial Developer. All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<!ENTITY caption.label "Attach Web Page">
|
||||
<!ENTITY enter.label "Enter the web location (URL), or specify the local file you would like to attach:">
|
||||
<!ENTITY enter.accesskey "E">
|
||||
<!ENTITY chooseFile.label "Choose File...">
|
||||
<!ENTITY chooseFile.accesskey "C">
|
||||
|
|
|
@ -263,6 +263,9 @@ subjectDlogMessage=You did not specify a subject for this message. If you would
|
|||
recipientDlogMessage=This account only supports email recipients. Continuing will ignore newsgroups.
|
||||
|
||||
## String used by the dialog that ask the user to attach a web page
|
||||
attachButtonLabel=Attach
|
||||
chooseFileDialogTitle=Choose File
|
||||
## String used by Thunderbird's prompt
|
||||
attachPageDlogTitle=Please specify a location to attach
|
||||
attachPageDlogMessage=Web Page (URL):
|
||||
|
||||
|
|
|
@ -168,6 +168,8 @@ messenger.jar:
|
|||
content/messenger/messengercompose/sendProgress.xul (compose/resources/content/sendProgress.xul)
|
||||
content/messenger/messengercompose/sendProgress.js (compose/resources/content/sendProgress.js)
|
||||
content/messenger/messengercompose/mailComposeBindings.xml (compose/resources/content/mailComposeBindings.xml)
|
||||
content/messenger/messengercompose/MsgAttachPage.xul (compose/resources/content/MsgAttachPage.xul)
|
||||
content/messenger/messengercompose/MsgAttachPage.js (compose/resources/content/MsgAttachPage.js)
|
||||
content/messenger/messengercompose/mailComposeExtrasOverlay.xul (compose/resources/content/mailComposeExtrasOverlay.xul)
|
||||
content/messenger/importDialog.js (import/resources/content/importDialog.js)
|
||||
content/messenger/importDialog.xul (import/resources/content/importDialog.xul)
|
||||
|
@ -234,6 +236,7 @@ en-US.jar:
|
|||
locale/en-US/messenger/messengercompose/addressingWidgetOverlay.dtd (compose/resources/locale/en-US/addressingWidgetOverlay.dtd)
|
||||
locale/en-US/messenger/messengercompose/askSendFormat.dtd (compose/resources/locale/en-US/askSendFormat.dtd)
|
||||
locale/en-US/messenger/messengercompose/sendProgress.dtd (compose/resources/locale/en-US/sendProgress.dtd)
|
||||
locale/en-US/messenger/messengercompose/MsgAttachPage.dtd (compose/resources/locale/en-US/MsgAttachPage.dtd)
|
||||
locale/en-US/messenger/messengercompose/composeMsgs.properties (compose/resources/locale/en-US/composeMsgs.properties)
|
||||
locale/en-US/messenger/imapMsgs.properties (imap/resources/locale/en-US/imapMsgs.properties)
|
||||
locale/en-US/messenger/comm4xMailImportMsgs.properties (import/comm4x/resources/locale/en-US/comm4xMailImportMsgs.properties)
|
||||
|
|
Загрузка…
Ссылка в новой задаче