// 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 to perform * MIME type change on. "mime_type" => "", # 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 * 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"); }