//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(bugId, id, type, email) { myDebug("bugId = " + bugId + ", id = " + id); if (type === undefined) { type = "text/plain"; } if (email === undefined) { email = 0; } // Logic of nomail is negative ... turn around email = !email; if (email === true) { email = 1; } else { email = 0; } // https://bugzilla.redhat.com/docs/en/html/api/extensions/RedHat\ // /lib/WebService/Bugzilla.html // test on https://bugzilla.redhat.com/show_bug.cgi?id=485145 var params = { 'id': bugId, 'attach_id' : id, 'mime_type' : type, 'nomail' : email }; makeJSONRPCCall("RedHat.updateAttachMimeType", params, XMLRPCcallback); reqCounter++; } /** * Add a link to the bad attachment for fixing it. * * @param * DOM jQuery element with a bad attachment * @return none */ function addTextLink(att) { var elemS = att.element.getElementsByTagName("td"); var elem = elemS[elemS.length - 1]; myDebug("att = " + att.toSource()); createDeadLink("addFix2TextLink", "text", elem, fixAttachById, [ att.bugId, att.id ], "br"); }