diff options
Diffstat (limited to 'data/rhlib/fixingAttMIME.js')
-rw-r--r-- | data/rhlib/fixingAttMIME.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/data/rhlib/fixingAttMIME.js b/data/rhlib/fixingAttMIME.js new file mode 100644 index 0000000..365cfae --- /dev/null +++ b/data/rhlib/fixingAttMIME.js @@ -0,0 +1,90 @@ +// Released under the MIT/X11 license +// http://www.opensource.org/licenses/mit-license.php + +var reqCounter = 0; // TODO should be probably a dict indexed by called method + +/** + * Callback function for the XMLRPC request + * + * @param ret + * Object with xmlhttprequest response with attributes: + status -- int + * return code + statusText + responseHeaders + responseText + */ +function XMLRPCcallback() { + reqCounter--; + if (reqCounter <= 0) { + setTimeout(function() { + window.location.reload(true); + }, 1000); + } +} + +/** + * The worker function -- call XMLRPC to fix MIME type of the particular + * attachment + * + * @param id + * Integer with the attachment id to be fixed + * @param type + * String with the new MIME type, optional defaults to "text/plain" + * @param email + * Boolean whether email should be sent to appropriate person; option, + * defaults to false + * + * updateAttachMimeType($data_ref, $username, $password) + * + * Update the attachment mime type of an attachment. The first argument is a + * data hash containing information on the new MIME type and the attachment id + * that you want to act on. + * + * $data_ref = { "attach_id" => "<Attachment ID>", # Attachment ID to perform + * MIME type change on. "mime_type" => "<New MIME Type Value>", # Legal MIME + * type value that you want to change the attachment to. "nomail" => 0, # + * OPTIONAL Flag that is either 1 or 0 if you want email to be sent or not for + * this change }; + * + */ +function fixAttachById(id, XMLRPCURL, type, email) { + var params = []; + + if (type === undefined) { + type = "text/plain"; + } + if (email === undefined) { + email = false; + } + + // https://bugzilla.redhat.com/\ + // docs/en/html/api/extensions/compat_xmlrpc/code/webservice.html + // test on https://bugzilla.redhat.com/show_bug.cgi?id=485145 + params.push({ + 'attach_id' : id, + 'mime_type' : type, + 'nomail' : !email + }); + + self.postMessage(new Message("MakeXMLRPCall", { + url : XMLRPCURL, + login : getLogin(), + method : "bugzilla.updateAttachMimeType", + params : params, + callRPC : "FixAttachmentMIMECallback" + })); + reqCounter++; +} + +/** + * Add a link to the bad attachment for fixing it. + * + * @param + * <TR> DOM jQuery element with a bad attachment + * @return none + */ +function addTextLink(row, xmlRpcUrl) { + var elemS = row[4].getElementsByTagName("td"); + var elem = elemS[elemS.length - 1]; + createDeadLink("addFix2TextLink", "text", elem, fixAttachById, + [ + row[1], xmlRpcUrl + ], "br"); +} |