Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Code Snippet #1 for FiltaQuilla Javascript Action */
- // Gmail POP succeeds, Gmail IMAP succeeds
- function copyListener() {
- this.OnStartCopy = function() {}
- this.OnProgress = function(aProgress, aProgressMax) {}
- this.SetMessageKey = function(aKey) {}
- this.GetMessageId = function(aMessageId) {}
- this.OnStopCopy = function(aStatus) {
- if (Components.isSuccessCode(aStatus)) {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].
- getService(Components.interfaces.nsIWindowMediator);
- var win = wm.getMostRecentWindow("mail:3pane");
- var tabmail = win.document.getElementById("tabmail");
- tabmail.openTab("folder", {folder: destFolder, background: true,
- folderPaneVisible: false, messagePaneVisible: true});
- }
- }
- }
- var destUri = "mailbox://nobody@Local%20Folders/Example";
- var destFolder = GetMsgFolderFromUri(destUri);
- var mutableArray = Components.classes["@mozilla.org/array;1"].
- createInstance(Components.interfaces.nsIMutableArray);
- for (var i = 0; i < msgHdrs.length; i++) {
- var msgHdr = msgHdrs.queryElementAt(i, Components.interfaces.nsIMsgDBHdr);
- mutableArray.appendElement(msgHdr, false /*weak*/);
- }
- var cs = Components.classes["@mozilla.org/messenger/messagecopyservice;1"].
- getService(Components.interfaces.nsIMsgCopyService);
- cs.CopyMessages(msgHdr.folder, mutableArray, destFolder, true /*isMove*/,
- new copyListener(), msgWindow, false /*allowUndo*/);
- /* Code Snippet #2 for FiltaQuilla Javascript Action */
- // Gmail POP succeeds, Gmail IMAP fails
- function copyListener(aMsgId) {
- this.OnStartCopy = function() {}
- this.OnProgress = function(aProgress, aProgressMax) {}
- this.SetMessageKey = function(aKey) {}
- this.GetMessageId = function(aMessageId) {}
- this.OnStopCopy = function(aStatus) {
- dump(aMsgId + "\n");
- if (Components.isSuccessCode(aStatus)) {
- var enumerator = destFolder.messages;
- while (enumerator.hasMoreElements()) {
- var msgHdr = enumerator.getNext().
- QueryInterface(Components.interfaces.nsIMsgDBHdr);
- dump((msgHdr.messageId == aMsgId) + " " + msgHdr.messageId + "\n");
- if (msgHdr.messageId == aMsgId) {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].
- getService(Components.interfaces.nsIWindowMediator);
- var win = wm.getMostRecentWindow("mail:3pane");
- var tabmail = win.document.getElementById("tabmail");
- tabmail.openTab("folder", {folder: msgHdr.folder, background: true,
- folderPaneVisible: false, messagePaneVisible: true,
- msgHdr: msgHdr, forceSelectMessage: false});
- break;
- }
- }
- }
- }
- }
- var destUri = "mailbox://nobody@Local%20Folders/Example";
- var destFolder = GetMsgFolderFromUri(destUri);
- var mutableArray = Components.classes["@mozilla.org/array;1"].
- createInstance(Components.interfaces.nsIMutableArray);
- for (var i = 0; i < msgHdrs.length; i++) {
- var msgHdr = msgHdrs.queryElementAt(i, Components.interfaces.nsIMsgDBHdr);
- mutableArray.appendElement(msgHdr, false /*weak*/);
- }
- var msgId = msgHdrs.queryElementAt(0, Components.interfaces.nsIMsgDBHdr).messageId;
- dump("\nTest Copy Listener\n");
- var cs = Components.classes["@mozilla.org/messenger/messagecopyservice;1"].
- getService(Components.interfaces.nsIMsgCopyService);
- cs.CopyMessages(msgHdr.folder, mutableArray, destFolder, true /*isMove*/,
- new copyListener(msgId), msgWindow, false /*allowUndo*/);
- /* Code Snippet #3 for testing without extension */
- // Gmail POP succeeds, Gmail IMAP fails
- function copyListener(aMsgId) {
- this.QueryInterface = function(aIID) {
- if (aIID.equals(Components.interfaces.nsIMsgCopyServiceListener) ||
- aIID.equals(Components.interfaces.nsISupports))
- return this;
- throw Components.results.NS_ERROR_NO_INTERFACE;
- return 0;
- }
- this.OnStartCopy = function() {}
- this.OnProgress = function(aProgress, aProgressMax) {}
- this.SetMessageKey = function(aKey) {}
- this.GetMessageId = function(aMessageId) {}
- this.OnStopCopy = function(aStatus) {
- dump(aMsgId + "\n");
- // alert("force delay"); // alert succeeds
- if (Components.isSuccessCode(aStatus)) {
- // SelectFolder(destFolder.URI); // select folder fails
- // setTimeout(function() {
- var enumerator = destFolder.messages; // missing moved messages
- while (enumerator.hasMoreElements()) {
- var msgHdr = enumerator.getNext().
- QueryInterface(Components.interfaces.nsIMsgDBHdr);
- dump((msgHdr.messageId == aMsgId) + " " + msgHdr.messageId + "\n");
- if (msgHdr.messageId == aMsgId) { // always false
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].
- getService(Components.interfaces.nsIWindowMediator);
- var win = wm.getMostRecentWindow("mail:3pane");
- var tabmail = win.document.getElementById("tabmail");
- tabmail.openTab("folder", {folder: msgHdr.folder, background: true,
- folderPaneVisible: false, messagePaneVisible: true,
- msgHdr: msgHdr, forceSelectMessage: false});
- break;
- }
- }
- // }, 3000); // timeout <= 3000 fails
- }
- }
- }
- var destUri = "mailbox://nobody@Local%20Folders/Example";
- var destFolder = GetMsgFolderFromUri(destUri);
- var folder = GetFirstSelectedMsgFolder();
- var enumerator = folder.messages;
- var mutableArray = Components.classes["@mozilla.org/array;1"].
- createInstance(Components.interfaces.nsIMutableArray);
- while (enumerator.hasMoreElements()) {
- var msgHdr = enumerator.getNext().
- QueryInterface(Components.interfaces.nsIMsgDBHdr);
- mutableArray.appendElement(msgHdr, false /*weak*/);
- }
- var msgId = mutableArray.
- queryElementAt(0, Components.interfaces.nsIMsgDBHdr).messageId;
- dump("\nTest Copy Listener\n");
- var cs = Components.classes["@mozilla.org/messenger/messagecopyservice;1"].
- getService(Components.interfaces.nsIMsgCopyService);
- cs.CopyMessages(msgHdr.folder, mutableArray, destFolder, true /*isMove*/,
- new copyListener(msgId), msgWindow, false /*allowUndo*/);
Advertisement
Add Comment
Please, Sign In to add comment