DeleteAllMessages

Disable all messages button.

  1. // ==UserScript==
  2. // @name DeleteAllMessages
  3. // @version 14.10.31
  4. // @description Disable all messages button.
  5. // @namespace https://prodgame*.alliances.commandandconquer.com/*/index.aspx*
  6. // @include https://prodgame*.alliances.commandandconquer.com/*/index.aspx*
  7. // @author Nogrod
  8. // ==/UserScript==
  9. (function () {
  10. var DeleteAllMessages_mainFunction = function () {
  11. function createTweak() {
  12. qx.Mixin.define("webfrontend.gui.mail.MMailTab", {
  13. construct : function () {
  14. var children = this.getChildren();
  15. var getObjId = function (children, objid) {
  16. for (var j = 0; j < children.length; j++) {
  17. if (children[j].objid == objid)
  18. return children[j];
  19. }
  20. return null;
  21. };
  22. for (var i = 0; i < children.length; i++) {
  23. if (children[i]instanceof qx.ui.container.Composite && getObjId(children[i].getChildren(), "btndelete") !== null) {
  24. var btnDeleteAllMessages = new qx.ui.form.Button(this.tr("tnf:delete mails"));
  25. btnDeleteAllMessages.addListener("execute", function () {
  26. btnDeleteAllMessages.setEnabled(false);
  27. ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand("IGMGetFolders", {}, phe.cnc.Util.createEventDelegate(ClientLib.Net.CommandResult, this, function (context, folders) {
  28. console.log(folders);
  29. if (folders !== null && folders.length >= 2 && folders[0].i > 0 && folders[1].i > 0) {
  30. var folderId = folders[this.getMailboxType() == ClientLib.Data.Mail.EMailBox.Inbox ? 0 : 1].i;
  31. ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand("IGMGetMsgCount", {
  32. folderId : folderId
  33. }, phe.cnc.Util.createEventDelegate(ClientLib.Net.CommandResult, this, function (folderId, count) {
  34. console.log(count);
  35. if (count > 0) {
  36. ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand("IGMGetMsgHeader", {
  37. folder : folderId,
  38. skip : 0,
  39. take : count,
  40. sortColumn : ClientLib.Data.Mail.EMailSort.Time,
  41. ascending : false
  42. }, phe.cnc.Util.createEventDelegate(ClientLib.Net.CommandResult, this, function (context, mails) {
  43. console.log(mails);
  44. var mailIds = [];
  45. for (var i = 0; ((mails !== null) && (i < mails.length)); i++) {
  46. mailIds.push(mails[i].i);
  47. }
  48. if (mailIds.length > 0) {
  49. ClientLib.Data.MainData.GetInstance().get_Mail().DeleteMessages(mailIds, (this.getMailboxType() == ClientLib.Data.Mail.EMailBox.Inbox));
  50. }
  51. btnDeleteAllMessages.setEnabled(true);
  52. }), null);
  53. } else {
  54. btnDeleteAllMessages.setEnabled(true);
  55. }
  56. }), folderId);
  57. } else {
  58. btnDeleteAllMessages.setEnabled(true);
  59. }
  60. }), null);
  61. }, this);
  62. children[i].addAfter(btnDeleteAllMessages, getObjId(children[i].getChildren(), "btndelete"));
  63. break;
  64. }
  65. }
  66. }
  67. });
  68. qx.Class.include(webfrontend.gui.mail.MailTab, webfrontend.gui.mail.MMailTab);
  69. }
  70. function DeleteAllMessages_checkIfLoaded() {
  71. try {
  72. if (typeof loader !== "undefined" && loader.complete && typeof loader.downloadScript === "undefined") {
  73. createTweak();
  74. } else {
  75. setTimeout(DeleteAllMessages_checkIfLoaded, 500);
  76. }
  77. } catch (e) {
  78. if (typeof console !== "undefined") {
  79. console.log(e + ": " + e.stack);
  80. } else if (window.opera) {
  81. opera.postError(e);
  82. } else {
  83. GM_log(e);
  84. }
  85. }
  86. }
  87. setTimeout(DeleteAllMessages_checkIfLoaded, 500);
  88. };
  89. var DeleteAllMessagesScript = document.createElement("script");
  90. var txt = DeleteAllMessages_mainFunction.toString();
  91. DeleteAllMessagesScript.innerHTML = "(" + txt + ")();";
  92. DeleteAllMessagesScript.type = "text/javascript";
  93. document.getElementsByTagName("head")[0].appendChild(DeleteAllMessagesScript);
  94. })();