aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2009-11-15 23:41:54 +0100
committerMatěj Cepl <mcepl@redhat.com>2009-11-15 23:41:54 +0100
commitd2aac544677b18881fd0515aa5302e46d3ed8aea (patch)
tree425570ec789223d967ce50c26eb963b63fb98cef
parentac624dcd4a88ad635c696b5fcda0f628e277f6b8 (diff)
downloadbugzilla-triage-d2aac544677b18881fd0515aa5302e46d3ed8aea.tar.gz
Liquidation of greasemonkey/ directory on this branch ... just confuses me.
-rw-r--r--BugZappers_data.json237
-rwxr-xr-xdrm_pciids.awk93
-rw-r--r--drm_pciids.json407
-rw-r--r--jquery-rpc-drupal-fix.js174
-rw-r--r--jquery.rpc.js236
-rw-r--r--user.js8
6 files changed, 1155 insertions, 0 deletions
diff --git a/BugZappers_data.json b/BugZappers_data.json
new file mode 100644
index 0000000..e3c9f37
--- /dev/null
+++ b/BugZappers_data.json
@@ -0,0 +1,237 @@
+{
+ "strings":{
+ "noRHEL4String":"I don't think this will be fixed for RHEL4, which support covers now only security and major bugs.\n\nClosing as WONTFIX.",
+ "noTriageString":"There is nothing to triage here.\n\nSwitching to ASSIGNED so that developers have responsibility to do whatever they want to do with it.",
+ "getLogsString":"Thanks for the bug report. We have reviewed the information you have provided above, and there is some additional information we require that will be helpful in our diagnosis of this issue.\n\nPlease attach your X server config file (/etc/X11/xorg.conf, if available), output of the dmesg command, and X server log file (/var/log/Xorg.*.log) to the bug report as individual uncompressed file attachments using the bugzilla file attachment link below.\n\nWe will review this issue again once you've had a chance to attach this information.\n\nThanks in advance.",
+ "getLogsLiveCDString":"Thanks for the bug report. We have reviewed the information you have provided above, and there is some additional information especially concerning your hardware we require that will be helpful in our diagnosis of this issue.\n\nIf the anaconda crashes during the switching to the graphic mode, most likely the problem lies in Xorg support for your graphics chip. There are couple of options how we can obtain information necessary for resolving the issue.\n\nIf the computer is not completely frozen when installation fails, switch to the console (Ctrl+Alt+F2) and copy /tmp/X* and /var/log/anaconda.xlog to some other place -- USB stick, some other computer via network, somewhere on the Internet, and please attach it to the bug report as individual uncompressed file attachments using the bugzilla file attachment link below.\n\nIf the computer is completely useless after installation fails, you can also install Fedora with a VESA mode driver (see https://fedoraproject.org/wiki/Documentation_Beats_Installer\nfor more information on that). Then after successful installation you can collect /var/log/anaconda.xlog, /var/log/Xorg.0.log, and the output of the program dmesg instead.\n\nOr you can install Fedora in a text mode completely, and then start X after that. If it fails, still /var/log/Xorg.0.log and the output of dmesg program from the failed attempt to start X would be useful.\n\nWe will review this issue again once you've had a chance to attach this information.\n\nThank you very much in advance.",
+ "getFirefoxBacktraceString":"Thanks for the bug report. We have reviewed the information you have provided above, and there is some additional information we require that will be helpful in our diagnosis of this issue.\n\nFirst of all, could we get output of the command\n\n\u0009rpm -qa *xulrun* *firefox* *mozilla* *flash* *plugin*\n\nPlease also install firefox-debuginfo (debuginfo-install is from\nyum-utils package).\n\n\u0009debuginfo-install firefox\n\nThen run firefox with a parameter -g. That will start firefox running inside of gdb debugger. Then use command run and do whatever you did to make firefox crash. When it happens, you should go back to the gdb and run\n\n\u0009(gdb) thread apply all backtrace\n\nThis produces usually many screens of the text. Copy all of them into a text editor and attach the file to the bug as an uncompressed attachment.\n\nWe will review this issue again once you've had a chance to attach this information.\n\nThanks in advance.",
+ "getSuicideString":"If this issue turns out to still be reproduceable in the latest updates for this Fedora Core release, please file a bug report in the the upstream bugzilla located at http://bugzilla.mozilla.org in the particular component.\n\nOnce you've filed your bug report to the upstream bugzilla, if you paste the new bug URL here, we will continue to track the issue in the centralized upstream bug tracker, and will review any bug fixes that become available for consideration in future updates.\n\nSetting status to NEEDINFO, and awaiting upstream bug report URL for tracking.\n\nThanks in advance.",
+ "noResponseString":"Since there are insufficient details provided in this report for us to investigate the issue further, and we have not received feedback to the information we have requested above, we will assume the problem was not reproducible, or has been fixed in one of the updates we have released for the reporter's distribution.\n\nUsers who have experienced this problem are encouraged to upgrade to the latest update of their distribution, and if this issue turns out to still be reproducible in the latest update, please reopen this bug with additional information.\n\nClosing as INSUFFICIENT_DATA.",
+ "sentUpstreamString":"We filed this bug in the upstream database (§§§) and believe that it is more appropriate to let it be resolved upstream.\n\nWe will continue to track the issue in the centralized upstream bug tracker, and will review any bug fixes that become available for consideration in future updates.\n\nThank you for the bug report.",
+ "moveYourButString":"Reporter, could you please reply to the previous question? If you won't reply in one month, I will have to close this bug as INSUFFICIENT_DATA. Thank you.",
+ "RHELString":"For official Red Hat Enterprise Linux support, please log into the Red Hat support website at http://www.redhat.com/support and file a support ticket. To understand how your bug is tracked through our system, please see https://www.redhat.com/support/process/production/#howrh",
+ "cantfixNvidiaString":"Thanks for the report. We are sorry that we cannot help you with your problem, but we are not able to support binary-only drivers. If you would be able to reproduce this issue using only open source software, please, reopen this bug with the additional information, but in meantime I have no choice than to close this bug as CANTFIX (because we really cannot fix it).\n\nThe open source 'nouveau' driver (in package xorg-x11-drv-nouveau) is the recommended alternative for users of Nvidia graphic chips. It is used by default in Fedora 11 and later if you remove any customizations that explicitly set the video driver. The older \"nv\" driver may be needed in some cases. It is also available in older Fedora releases. Install the packages xorg-x11-drv-nouveau or xorg-x11-drv-nv and override the X server's default choice if necessary. See https://fedoraproject.org/wiki/Features/NouveauAsDefault for more information.\n\nIf you used a non-packaged version of the driver from the Nvidia website please clean your system from additional libraries and software it installed. For users who are experiencing problems installing, configuring, or using the unsupported 3rd party proprietary \"nvidia\" video driver, Nvidia provides indirect customer support via an online web based support forum. Nvidia monitors these web forums for commonly reported problems and passes them on to Nvidia engineers for investigation. Once they've isolated a particular problem, it is often fixed in a future video driver update.\n\nThe NVNews Nvidia Linux driver forum is located at:\n\n\u0009http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14\n\nOnce you have reported this issue in the Nvidia web forums, others who may have experienced the particular problem may be able to assist. If there is a real bug occuring, Nvidia will be able to determine this, and will likely resolve the issue in a future driver update for the operating system releases that they officially support.\n\nWhile we does not support the proprietary nvidia driver, users requiring technical support may also find the various X.Org, XFree86, and Red Hat/Fedora mailing lists helpful in finding assistance:\n\nX.Org mailing lists:\n\u0009http://www.freedesktop.org/XOrg/XorgMailingLists\n\nXFree86 mailing lists:\n\u0009http://www.xfree86.org/sos/lists.html\n\nRed Hat/Fedora mailing lists:\n\u0009https://listman.redhat.com/mailman/listinfo",
+ "obsoleteRHELString":"This bug is filed against release of RHEL, which is in maintenance phase. During the maintenance phase, only security errata and select mission critical bug fixes will be released for enterprise products. Since this bug does not meet that criteria, it is now being closed.\n\nFor more information of the RHEL errata support policy, please visit:\n\nhttp://www.redhat.com/security/updates/errata/\n\nIf you feel this bug is indeed mission critical, please contact your support representative. You may be asked to provide detailed information on how this bug is affecting you.",
+ "getEOL":"Thank you for your bug report.\nWe are sorry, but the Fedora Project no longer maintains this versionof Fedora. Please upgrade to the latest version and reopen this bugagainst that version if this bug exists there.\nAs a result we are setting this bug to CLOSED:WONTFIX",
+ "triagedString":"This bug has been triaged"
+ },
+ "bugzillalabelNames":{
+ "bugzilla.mozilla.org":"Mozilla Foundation",
+ "bugs.freedesktop.org":"FreeDesktop.org",
+ "bugs.eclipse.org":"Eclipse Project",
+ "bugzilla.gnome.org":"GNOME Desktop"
+ },
+ "bugzillaIDURLs":[
+ null,
+ null,
+ null,
+ "https://bugzilla.gnome.org/show_bug.cgi?id=",
+ null,
+ null,
+ "https://bugzilla.mozilla.org/show_bug.cgi?id=",
+ null,
+ null,
+ null,
+ null,
+ "https://bugs.eclipse.org/bugs/show_bug.cgi?id=",
+ null,
+ null,
+ null,
+ null,
+ null,
+ "https://bugs.freedesktop.org/show_bug.cgi?id="
+ ],
+ "signature":"\n\n-- \nFedora Bugzappers volunteer triage team\nhttps://fedoraproject.org/wiki/BugZappers",
+ "defaultAssignee":[{
+ "regexp":"xorg-x11-drv-ati",
+ "addr":"jglisse@redhat.com"
+ },{
+ "regexp":"xorg-x11-drv-intel",
+ "addr":"ajax@redhat.com"
+ },{
+ "regexp":"xorg-x11-(server.*|drv-vesa|drv-mga)",
+ "addr":"ajax@redhat.com"
+ },{
+ "regexp":"xorg-x11-drv-(keyboard|mouse|evdev)|xkeyboard-config|linuxwacom",
+ "addr":"peter.hutterer@redhat.com"
+ },{
+ "regexp":"(seamonkey|nss.*)",
+ "addr":"kengert@redhat.com"
+ },{
+ "regexp":"thunderbird",
+ "addr":"jhorak@redhat.com"
+ },{
+ "regexp":"(firefox|xulrunner)",
+ "addr":"stransky@redhat.com"
+ },{
+ "regexp":"xorg-x11-drv-(nv|nouveau)",
+ "addr":"bskeggs@redhat.com"
+ }],
+ "CCmaintainer":[{
+ "regexp":"xorg|X11|compiz|chkfontpath|imake|libdmx|libdrm|libfontenc|libFS|libICE|libSM|libwnck|libxkbfile|mesa|pyxf86config|system-config-display|xkeyboard-config|xrestop|xsri",
+ "addr":"xgl-maint@redhat.com"
+ },{
+ "regexp":"epiphany.*|firefox|galeon|gecko-sharp2|htmlview|^mozilla|seamonkey|thunderbird|xulrunner|nspluginwrapper",
+ "addr":"gecko-bugs-nobody@fedoraproject.org"
+ }
+ ],
+ "queryButton":true,
+ "chipIDsGroupings":[{
+ "regexp":"RADEON,R(100|[VS][12]00|S200M|S250|N50)",
+ "addr":"R100"
+ },{
+ "regexp":"RADEON,R(200|V2[58]0|C350|S3[05]0)",
+ "addr":"R200"
+ },{
+ "regexp":"RADEON,R(3[056]0|V3[56][10])",
+ "addr":"R300"
+ },{
+ "regexp":"RADEON,RV3[78]0",
+ "addr":"R300e"
+ },{
+ "regexp":"RADEON,RS4[08][025]",
+ "addr":"IGP300"
+ },{
+ "regexp":"RADEON,R(4[123]0|481)",
+ "addr":"R400"
+ },{
+ "regexp":"RADEON,R(V410|423|4[38]0)",
+ "addr":"R420"
+ },{
+ "regexp":"RADEON,R(V51[56]|V53[05]|V5[67]0|5[28]0|580\\+)",
+ "addr":"R500"
+ },{
+ "regexp":"RADEON,RS(6[09]|74)0C?",
+ "addr":"IGP600"
+ },{
+ "regexp":"RADEON,R(V6[1273][50]|R6[80]0).*",
+ "addr":"R600"
+ },{
+ "regexp":"RADEON,RS([78]80)[CD]?",
+ "addr":"IGP700"
+ },{
+ "regexp":"RADEON,R(V7[13479]0.*|700)",
+ "addr":"R700"
+ },{
+ "regexp":"RADEON,(Juniper|Cypress|Hemlock).*",
+ "addr":"R800"
+ },{
+ "regexp":"RADEON,M(9|10).*",
+ "addr":"FireGL"
+ },{
+ "regexp":"NOUVEAU,NV[13456]",
+ "addr":"preGeForce"
+ },{
+ "regexp":"NOUVEAU,NV10",
+ "addr":"GeForce"
+ },{
+ "regexp":"NOUVEAU,NV1[156]",
+ "addr":"GeForce2"
+ },{
+ "regexp":"NOUVEAU,NV20",
+ "addr":"GeForce3"
+ },{
+ "regexp":"INTEL,865PE",
+ "addr":"AGP8x"
+ }],
+ "topRow":[
+ {
+ "idx":"addgetsuicide",
+ "msg":"Suicide",
+ "string":"getSuicideString",
+ "state":"NEEDINFO",
+ "parameter":"",
+ "submit":false
+ },
+ {
+ "idx":"addnoresponse",
+ "msg":"No Response",
+ "string":"noResponseString",
+ "state":"CLOSED",
+ "parameter":"INSUFFICIENT_DATA",
+ "submit":false
+ },
+ {
+ "idx":"addcloseupstream",
+ "msg":"Close UPSTREAM",
+ "string":"",
+ "state":"CLOSED",
+ "parameter":"UPSTREAM",
+ "submit":false
+ },
+ {
+ "idx":"moveyourbutt",
+ "msg":"NEEDINFO Reminder",
+ "string":"moveYourButString",
+ "state":"NEEDINFO",
+ "parameter":"",
+ "submit":false
+ },
+ {
+ "idx":"addcloseeol",
+ "msg":"Close EOL",
+ "string":"getEOL",
+ "state":"CLOSED",
+ "parameter":"WONTFIX",
+ "submit":false
+ },
+ {
+ "idx":"triaged",
+ "msg":"Triaged",
+ "string":"triagedString",
+ "state":"ASSIGNED",
+ "parameter":"",
+ "submit":false
+ },
+ {
+ "idx":"futurefeaturekw",
+ "msg":"FutureFeature KW",
+ "string":"",
+ "state":"ADDKEYWORD",
+ "parameter":"FutureFeature",
+ "submit":false
+ },
+ {
+ "idx":"patchkw",
+ "msg":"Patch KW",
+ "string":"",
+ "state":"ADDKEYWORD",
+ "parameter":"Patch",
+ "submit":false
+ }
+ ],
+ "bottomRow":[
+ {
+ "idx":"needinforbtn",
+ "msg":"NEEDINFO (rep.)",
+ "string":"",
+ "state":"NEEDINFO",
+ "parameter":"",
+ "submit":false
+ },
+ {
+ "idx":"addgetlogstext",
+ "msg":"X logs",
+ "string":"getLogsString",
+ "state":"NEEDINFO",
+ "parameter":"",
+ "submit":false
+ },
+ {
+ "idx":"closenvidia",
+ "msg":"Close nVidia",
+ "string":"cantfixNvidiaString",
+ "state":"CLOSED",
+ "parameter":"CANTFIX",
+ "submit":false
+ },
+ {
+ "idx":"xloglivecdbtn",
+ "msg":"Live CD X logs",
+ "string":"getLogsLiveCDString",
+ "state":"NEEDINFO",
+ "parameter":"",
+ "submit":false
+ }
+ ]
+}
diff --git a/drm_pciids.awk b/drm_pciids.awk
new file mode 100755
index 0000000..dea8fd2
--- /dev/null
+++ b/drm_pciids.awk
@@ -0,0 +1,93 @@
+#!/usr/bin/gawk -f
+
+BEGIN {
+ FS=", "
+
+ # NOTE: please edit flags template as well
+ flag_letter["RADEON_IS_MOBILITY"] = "m"
+ flag_letter["RADEON_NEW_MEMMAP"] = "M"
+ flag_letter["RADEON_IS_IGP"] = "i"
+ flag_letter["RADEON_IS_IGPGART"] = "I"
+ flag_letter["RADEON_SINGLE_CRTC"] = "c"
+ flags_template = "mMiIc"
+ first_line = ""
+ printf("{\n")
+}
+
+function error(f, s1, s2) {
+ printf("%s:%d: " f "\n", FILENAME, NR, s1, s2) >"/dev/stderr"
+ error_code = 1
+}
+
+function flag_to_letter(f_name)
+{
+ if (f_name in flag_letter) {
+ return flag_letter[f_name]
+ } else {
+ error("unknown flag %s%s", f_name)
+ return f_name
+ }
+}
+
+function format_flags(f_code, i, n, l, out) {
+ n = length(flags_template)
+ for (i=1; i<=n; i++) {
+ l = substr(flags_template, i, 1)
+ out = out f_code[l]
+ delete f_code[l]
+ }
+ for (l in f_code) {
+ out = out f_code[l]
+ if (length(l)==1)
+ error("flag \"%s\" missing from flags_template", l, "")
+ }
+ if (length(out)>0) {
+ out = ",\"" out "\""
+ }
+ return out
+}
+
+/^[[:blank:]]+{0x/ {
+ sub(/^[[:blank:]]+{/,"")
+ sub(/},[[:blank:]]*\\$/,"")
+
+ id_vendor = $1; sub(/^0x/, "", id_vendor)
+ id_type = $2; sub(/^0x/, "", id_type)
+
+ flags = $7
+
+ if (flags == "0")
+ next
+
+ n_flag_arr = split(flags, flag_arr, "|")
+ first_flag = flag_arr[1]
+ delete f_code
+ for (i=2; i<=n_flag_arr; i++) {
+ l = flag_to_letter(flag_arr[i])
+ f_code[l] = l
+ }
+
+ formatted_flags = format_flags(f_code)
+
+ # second param to gensub is the replacement text:
+ chip_type = tolower(gensub(/^CHIP_/, "", "", first_flag))
+
+ if (length(first_line) > 0) {
+ printf(",\n")
+ } else {
+ first_line = "TRUE"
+ }
+ if ((chip_type in types) && types[chip_type] != first_flag)
+ error("chip name collision: %s vs. %s", \
+ types[chip_type], first_flag)
+
+ types[chip_type] = first_flag
+
+ printf("\t\"%s,%s\":[\"%s\"%s]", toupper(id_vendor), toupper(id_type),\
+ chip_type, formatted_flags)
+}
+
+END {
+ printf("\n}\n")
+ exit error_code
+}
diff --git a/drm_pciids.json b/drm_pciids.json
new file mode 100644
index 0000000..ee45add
--- /dev/null
+++ b/drm_pciids.json
@@ -0,0 +1,407 @@
+{
+ "1002,3150":["rv380","m"],
+ "1002,3152":["rv380","mM"],
+ "1002,3154":["rv380","mM"],
+ "1002,3E50":["rv380","M"],
+ "1002,3E54":["rv380","M"],
+ "1002,4136":["rs100","i"],
+ "1002,4137":["rs200","i"],
+ "1002,4144":["r300"],
+ "1002,4145":["r300"],
+ "1002,4146":["r300"],
+ "1002,4147":["r300"],
+ "1002,4148":["r350"],
+ "1002,4149":["r350"],
+ "1002,414A":["r350"],
+ "1002,414B":["r350"],
+ "1002,4150":["rv350"],
+ "1002,4151":["rv350"],
+ "1002,4152":["rv350"],
+ "1002,4153":["rv350"],
+ "1002,4154":["rv350"],
+ "1002,4155":["rv350"],
+ "1002,4156":["rv350"],
+ "1002,4237":["rs200","i"],
+ "1002,4242":["r200"],
+ "1002,4243":["r200"],
+ "1002,4336":["rs100","mi"],
+ "1002,4337":["rs200","mi"],
+ "1002,4437":["rs200","mi"],
+ "1002,4966":["rv250"],
+ "1002,4967":["rv250"],
+ "1002,4A48":["r420","M"],
+ "1002,4A49":["r420","M"],
+ "1002,4A4A":["r420","M"],
+ "1002,4A4B":["r420","M"],
+ "1002,4A4C":["r420","M"],
+ "1002,4A4D":["r420","M"],
+ "1002,4A4E":["r420","mM"],
+ "1002,4A4F":["r420","M"],
+ "1002,4A50":["r420","M"],
+ "1002,4A54":["r420","M"],
+ "1002,4B48":["r420","M"],
+ "1002,4B49":["r420","M"],
+ "1002,4B4A":["r420","M"],
+ "1002,4B4B":["r420","M"],
+ "1002,4B4C":["r420","M"],
+ "1002,4C57":["rv200","m"],
+ "1002,4C58":["rv200","m"],
+ "1002,4C59":["rv100","m"],
+ "1002,4C5A":["rv100","m"],
+ "1002,4C64":["rv250","m"],
+ "1002,4C66":["rv250","m"],
+ "1002,4C67":["rv250","m"],
+ "1002,4E44":["r300"],
+ "1002,4E45":["r300"],
+ "1002,4E46":["r300"],
+ "1002,4E47":["r300"],
+ "1002,4E48":["r350"],
+ "1002,4E49":["r350"],
+ "1002,4E4A":["r350"],
+ "1002,4E4B":["r350"],
+ "1002,4E50":["rv350","m"],
+ "1002,4E51":["rv350","m"],
+ "1002,4E52":["rv350","m"],
+ "1002,4E53":["rv350","m"],
+ "1002,4E54":["rv350","m"],
+ "1002,4E56":["rv350","m"],
+ "1002,5144":["r100","c"],
+ "1002,5145":["r100","c"],
+ "1002,5146":["r100","c"],
+ "1002,5147":["r100","c"],
+ "1002,5148":["r200"],
+ "1002,514C":["r200"],
+ "1002,514D":["r200"],
+ "1002,5157":["rv200"],
+ "1002,5158":["rv200"],
+ "1002,5159":["rv100"],
+ "1002,515A":["rv100"],
+ "1002,515E":["rv100","c"],
+ "1002,5460":["rv380","m"],
+ "1002,5462":["rv380","m"],
+ "1002,5464":["rv380","m"],
+ "1002,5657":["rv380","M"],
+ "1002,5548":["r423","M"],
+ "1002,5549":["r423","M"],
+ "1002,554A":["r423","M"],
+ "1002,554B":["r423","M"],
+ "1002,554C":["r423","M"],
+ "1002,554D":["r423","M"],
+ "1002,554E":["r423","M"],
+ "1002,554F":["r423","M"],
+ "1002,5550":["r423","M"],
+ "1002,5551":["r423","M"],
+ "1002,5552":["r423","M"],
+ "1002,5554":["r423","M"],
+ "1002,564A":["rv410","mM"],
+ "1002,564B":["rv410","mM"],
+ "1002,564F":["rv410","mM"],
+ "1002,5652":["rv410","mM"],
+ "1002,5653":["rv410","mM"],
+ "1002,5834":["rs300","i"],
+ "1002,5835":["rs300","mi"],
+ "1002,5954":["rs480","miI"],
+ "1002,5955":["rs480","miI"],
+ "1002,5974":["rs480","miI"],
+ "1002,5975":["rs480","miI"],
+ "1002,5960":["rv280"],
+ "1002,5961":["rv280"],
+ "1002,5962":["rv280"],
+ "1002,5964":["rv280"],
+ "1002,5965":["rv280"],
+ "1002,5969":["rv100","c"],
+ "1002,5A41":["rs400","iI"],
+ "1002,5A42":["rs400","miI"],
+ "1002,5A61":["rs400","iI"],
+ "1002,5A62":["rs400","miI"],
+ "1002,5B60":["rv380","M"],
+ "1002,5B62":["rv380","M"],
+ "1002,5B63":["rv380","M"],
+ "1002,5B64":["rv380","M"],
+ "1002,5B65":["rv380","M"],
+ "1002,5C61":["rv280","m"],
+ "1002,5C63":["rv280","m"],
+ "1002,5D48":["r423","mM"],
+ "1002,5D49":["r423","mM"],
+ "1002,5D4A":["r423","mM"],
+ "1002,5D4C":["r423","M"],
+ "1002,5D4D":["r423","M"],
+ "1002,5D4E":["r423","M"],
+ "1002,5D4F":["r423","M"],
+ "1002,5D50":["r423","M"],
+ "1002,5D52":["r423","M"],
+ "1002,5D57":["r423","M"],
+ "1002,5E48":["rv410","M"],
+ "1002,5E4A":["rv410","M"],
+ "1002,5E4B":["rv410","M"],
+ "1002,5E4C":["rv410","M"],
+ "1002,5E4D":["rv410","M"],
+ "1002,5E4F":["rv410","M"],
+ "1002,7100":["r520","M"],
+ "1002,7101":["r520","mM"],
+ "1002,7102":["r520","mM"],
+ "1002,7103":["r520","mM"],
+ "1002,7104":["r520","M"],
+ "1002,7105":["r520","M"],
+ "1002,7106":["r520","mM"],
+ "1002,7108":["r520","M"],
+ "1002,7109":["r520","M"],
+ "1002,710A":["r520","M"],
+ "1002,710B":["r520","M"],
+ "1002,710C":["r520","M"],
+ "1002,710E":["r520","M"],
+ "1002,710F":["r520","M"],
+ "1002,7140":["rv515","M"],
+ "1002,7141":["rv515","M"],
+ "1002,7142":["rv515","M"],
+ "1002,7143":["rv515","M"],
+ "1002,7144":["rv515","mM"],
+ "1002,7145":["rv515","mM"],
+ "1002,7146":["rv515","M"],
+ "1002,7147":["rv515","M"],
+ "1002,7149":["rv515","mM"],
+ "1002,714A":["rv515","mM"],
+ "1002,714B":["rv515","mM"],
+ "1002,714C":["rv515","mM"],
+ "1002,714D":["rv515","M"],
+ "1002,714E":["rv515","M"],
+ "1002,714F":["rv515","M"],
+ "1002,7151":["rv515","M"],
+ "1002,7152":["rv515","M"],
+ "1002,7153":["rv515","M"],
+ "1002,715E":["rv515","M"],
+ "1002,715F":["rv515","M"],
+ "1002,7180":["rv515","M"],
+ "1002,7181":["rv515","M"],
+ "1002,7183":["rv515","M"],
+ "1002,7186":["rv515","mM"],
+ "1002,7187":["rv515","M"],
+ "1002,7188":["rv515","mM"],
+ "1002,718A":["rv515","mM"],
+ "1002,718B":["rv515","mM"],
+ "1002,718C":["rv515","mM"],
+ "1002,718D":["rv515","mM"],
+ "1002,718F":["rv515","M"],
+ "1002,7193":["rv515","M"],
+ "1002,7196":["rv515","mM"],
+ "1002,719B":["rv515","M"],
+ "1002,719F":["rv515","M"],
+ "1002,71C0":["rv530","M"],
+ "1002,71C1":["rv530","M"],
+ "1002,71C2":["rv530","M"],
+ "1002,71C3":["rv530","M"],
+ "1002,71C4":["rv530","mM"],
+ "1002,71C5":["rv530","mM"],
+ "1002,71C6":["rv530","M"],
+ "1002,71C7":["rv530","M"],
+ "1002,71CD":["rv530","M"],
+ "1002,71CE":["rv530","M"],
+ "1002,71D2":["rv530","M"],
+ "1002,71D4":["rv530","mM"],
+ "1002,71D5":["rv530","mM"],
+ "1002,71D6":["rv530","mM"],
+ "1002,71DA":["rv530","M"],
+ "1002,71DE":["rv530","mM"],
+ "1002,7200":["rv515","M"],
+ "1002,7210":["rv515","mM"],
+ "1002,7211":["rv515","mM"],
+ "1002,7240":["r580","M"],
+ "1002,7243":["r580","M"],
+ "1002,7244":["r580","M"],
+ "1002,7245":["r580","M"],
+ "1002,7246":["r580","M"],
+ "1002,7247":["r580","M"],
+ "1002,7248":["r580","M"],
+ "1002,7249":["r580","M"],
+ "1002,724A":["r580","M"],
+ "1002,724B":["r580","M"],
+ "1002,724C":["r580","M"],
+ "1002,724D":["r580","M"],
+ "1002,724E":["r580","M"],
+ "1002,724F":["r580","M"],
+ "1002,7280":["rv570","M"],
+ "1002,7281":["rv560","M"],
+ "1002,7283":["rv560","M"],
+ "1002,7284":["r580","mM"],
+ "1002,7287":["rv560","M"],
+ "1002,7288":["rv570","M"],
+ "1002,7289":["rv570","M"],
+ "1002,728B":["rv570","M"],
+ "1002,728C":["rv570","M"],
+ "1002,7290":["rv560","M"],
+ "1002,7291":["rv560","M"],
+ "1002,7293":["rv560","M"],
+ "1002,7297":["rv560","M"],
+ "1002,7834":["rs300","Mi"],
+ "1002,7835":["rs300","mMi"],
+ "1002,791E":["rs690","MiI"],
+ "1002,791F":["rs690","MiI"],
+ "1002,793F":["rs600","Mi"],
+ "1002,7941":["rs600","Mi"],
+ "1002,7942":["rs600","Mi"],
+ "1002,796C":["rs740","MiI"],
+ "1002,796D":["rs740","MiI"],
+ "1002,796E":["rs740","MiI"],
+ "1002,796F":["rs740","MiI"],
+ "1002,9400":["r600","M"],
+ "1002,9401":["r600","M"],
+ "1002,9402":["r600","M"],
+ "1002,9403":["r600","M"],
+ "1002,9405":["r600","M"],
+ "1002,940A":["r600","M"],
+ "1002,940B":["r600","M"],
+ "1002,940F":["r600","M"],
+ "1002,94A0":["rv740","mM"],
+ "1002,94A1":["rv740","mM"],
+ "1002,94A3":["rv740","mM"],
+ "1002,94B1":["rv740","M"],
+ "1002,94B3":["rv740","M"],
+ "1002,94B4":["rv740","M"],
+ "1002,94B5":["rv740","M"],
+ "1002,94B9":["rv740","mM"],
+ "1002,9440":["rv770","M"],
+ "1002,9441":["rv770","M"],
+ "1002,9442":["rv770","M"],
+ "1002,9443":["rv770","M"],
+ "1002,9444":["rv770","M"],
+ "1002,9446":["rv770","M"],
+ "1002,944A":["rv770","mM"],
+ "1002,944B":["rv770","mM"],
+ "1002,944C":["rv770","M"],
+ "1002,944E":["rv770","M"],
+ "1002,9450":["rv770","M"],
+ "1002,9452":["rv770","M"],
+ "1002,9456":["rv770","M"],
+ "1002,945A":["rv770","mM"],
+ "1002,945B":["rv770","mM"],
+ "1002,9460":["rv770","M"],
+ "1002,9462":["rv770","M"],
+ "1002,946A":["rv770","mM"],
+ "1002,946B":["rv770","mM"],
+ "1002,947A":["rv770","mM"],
+ "1002,947B":["rv770","mM"],
+ "1002,9480":["rv730","mM"],
+ "1002,9487":["rv730","M"],
+ "1002,9488":["rv730","mM"],
+ "1002,9489":["rv730","mM"],
+ "1002,948F":["rv730","M"],
+ "1002,9490":["rv730","M"],
+ "1002,9491":["rv730","mM"],
+ "1002,9495":["rv730","M"],
+ "1002,9498":["rv730","M"],
+ "1002,949C":["rv730","M"],
+ "1002,949E":["rv730","M"],
+ "1002,949F":["rv730","M"],
+ "1002,94C0":["rv610","M"],
+ "1002,94C1":["rv610","M"],
+ "1002,94C3":["rv610","M"],
+ "1002,94C4":["rv610","M"],
+ "1002,94C5":["rv610","M"],
+ "1002,94C6":["rv610","M"],
+ "1002,94C7":["rv610","M"],
+ "1002,94C8":["rv610","mM"],
+ "1002,94C9":["rv610","mM"],
+ "1002,94CB":["rv610","mM"],
+ "1002,94CC":["rv610","M"],
+ "1002,94CD":["rv610","M"],
+ "1002,9500":["rv670","M"],
+ "1002,9501":["rv670","M"],
+ "1002,9504":["rv670","mM"],
+ "1002,9505":["rv670","M"],
+ "1002,9506":["rv670","mM"],
+ "1002,9507":["rv670","M"],
+ "1002,9508":["rv670","mM"],
+ "1002,9509":["rv670","mM"],
+ "1002,950F":["rv670","M"],
+ "1002,9511":["rv670","M"],
+ "1002,9515":["rv670","M"],
+ "1002,9517":["rv670","M"],
+ "1002,9519":["rv670","M"],
+ "1002,9540":["rv710","M"],
+ "1002,9541":["rv710","M"],
+ "1002,9542":["rv710","M"],
+ "1002,954E":["rv710","M"],
+ "1002,954F":["rv710","M"],
+ "1002,9552":["rv710","mM"],
+ "1002,9553":["rv710","mM"],
+ "1002,9555":["rv710","mM"],
+ "1002,9557":["rv710","mM"],
+ "1002,9580":["rv630","M"],
+ "1002,9581":["rv630","mM"],
+ "1002,9583":["rv630","mM"],
+ "1002,9586":["rv630","M"],
+ "1002,9587":["rv630","M"],
+ "1002,9588":["rv630","M"],
+ "1002,9589":["rv630","M"],
+ "1002,958A":["rv630","M"],
+ "1002,958B":["rv630","mM"],
+ "1002,958C":["rv630","M"],
+ "1002,958D":["rv630","M"],
+ "1002,958E":["rv630","M"],
+ "1002,958F":["rv630","mM"],
+ "1002,9590":["rv635","M"],
+ "1002,9591":["rv635","mM"],
+ "1002,9593":["rv635","mM"],
+ "1002,9595":["rv635","mM"],
+ "1002,9596":["rv635","M"],
+ "1002,9597":["rv635","M"],
+ "1002,9598":["rv635","M"],
+ "1002,9599":["rv635","M"],
+ "1002,959B":["rv635","mM"],
+ "1002,95C0":["rv620","M"],
+ "1002,95C2":["rv620","mM"],
+ "1002,95C4":["rv620","mM"],
+ "1002,95C5":["rv620","M"],
+ "1002,95C6":["rv620","M"],
+ "1002,95C7":["rv620","M"],
+ "1002,95C9":["rv620","M"],
+ "1002,95CC":["rv620","M"],
+ "1002,95CD":["rv620","M"],
+ "1002,95CE":["rv620","M"],
+ "1002,95CF":["rv620","M"],
+ "1002,9610":["rs780","Mi"],
+ "1002,9611":["rs780","Mi"],
+ "1002,9612":["rs780","Mi"],
+ "1002,9613":["rs780","Mi"],
+ "1002,9614":["rs780","Mi"],
+ "1002,9615":["rs780","Mi"],
+ "1002,9616":["rs780","Mi"],
+ "1002,9710":["rs880","Mi"],
+ "1002,9711":["rs880","Mi"],
+ "1002,9712":["rs880","mMi"],
+ "1002,9713":["rs880","mMi"],
+ "1002,9714":["rs880","Mi"],
+ "102B,0520":["mga_card_type_g200"],
+ "102B,0521":["mga_card_type_g200"],
+ "102B,0525":["mga_card_type_g400"],
+ "102B,2527":["mga_card_type_g550"],
+ "1039,6330":["sis_chip_315"],
+ "18CA,0040":["sis_chip_315"],
+ "18CA,0042":["sis_chip_315"],
+ "1106,3118":["via_pro_group_a"],
+ "1106,3230":["via_dx9_0"],
+ "1106,3157":["via_pro_group_a"],
+ "5333,8A20":["s3_savage3d"],
+ "5333,8A21":["s3_savage3d"],
+ "5333,8A22":["s3_savage4"],
+ "5333,8A23":["s3_savage4"],
+ "5333,8C10":["s3_savage_mx"],
+ "5333,8C11":["s3_savage_mx"],
+ "5333,8C12":["s3_savage_mx"],
+ "5333,8C13":["s3_savage_mx"],
+ "5333,8C22":["s3_supersavage"],
+ "5333,8C24":["s3_supersavage"],
+ "5333,8C26":["s3_supersavage"],
+ "5333,8C2A":["s3_supersavage"],
+ "5333,8C2B":["s3_supersavage"],
+ "5333,8C2C":["s3_supersavage"],
+ "5333,8C2D":["s3_supersavage"],
+ "5333,8C2E":["s3_supersavage"],
+ "5333,8C2F":["s3_supersavage"],
+ "5333,8A25":["s3_prosavage"],
+ "5333,8A26":["s3_prosavage"],
+ "5333,8D01":["s3_twister"],
+ "5333,8D02":["s3_twister"],
+ "5333,8D03":["s3_prosavageddr"],
+ "5333,8D04":["s3_prosavageddr"]
+}
diff --git a/jquery-rpc-drupal-fix.js b/jquery-rpc-drupal-fix.js
new file mode 100644
index 0000000..1d29d95
--- /dev/null
+++ b/jquery-rpc-drupal-fix.js
@@ -0,0 +1,174 @@
+window.jQuery = window.jQuery || {};
+window.jQuery.fn = window.jQuery.fn || {};
+
+jQuery.fn.rpc = function(url, dataType, onLoadCallback, version) {
+ version = version || "1.0";
+ dataType = dataType || "json";
+ if(dataType != "json" && dataType != "xml") {
+ new Error("IllegalArgument: Unsupported data type");
+ }
+ var _self = this;
+ var serializeToXml = function(data) {
+ switch (typeof data) {
+ case 'boolean':
+ return '<boolean>'+ ((data) ? '1' : '0') +'</boolean>';
+ case 'number':
+ var parsed = parseInt(data);
+ if(parsed == data) {
+ return '<int>'+ data +'</int>';
+ }
+ return '<double>'+ data +'</double>';
+ case 'string':
+ return '<string>'+ data +'</string>';
+ case 'object':
+ if(data instanceof Date) {
+ return '<dateTime.iso8601>'+ data.getFullYear() + data.getMonth() + data.getDate() +'T'+ data.getHours() +':'+ data.getMinutes() +':'+ data.getSeconds() +'</dateTime.iso8601>';
+ } else if(data instanceof Array) {
+ var ret = '<array><data>'+"\n";
+ for (var i=0; i < data.length; i++) {
+ ret += ' <value>'+ serializeToXml(data[i]) +"</value>\n";
+ }
+ ret += '</data></array>';
+ return ret;
+ } else {
+ var ret = '<struct>'+"\n";
+ jQuery.each(data, function(key, value) {
+ ret += " <member><name>"+ key +"</name><value>";
+ ret += serializeToXml(value) +"</value></member>\n";
+ });
+ ret += '</struct>';
+ return ret;
+ }
+ }
+ }
+ var xmlRpc = function(method, params) {
+ var ret = '<?xml version="'+version+'"?><methodCall><methodName>'+method+'</methodName><params>';
+ for(var i=0; i<params.length; i++) {
+ ret += "<param><value>"+serializeToXml(params[i])+"</value></param>";
+ }
+ ret += "</params></methodCall>";
+ return ret;
+ }
+ var parseXmlValue = function(node) {
+ childs = jQuery(node).children();
+ for(var i=0; i < childs.length; i++) {
+ switch(childs[i].tagName) {
+ case 'boolean':
+ return (jQuery(childs[i]).text() == 1);
+ case 'int':
+ return parseInt(jQuery(childs[i]).text());
+ case 'double':
+ return parseFloat(jQuery(childs[i]).text());
+ case "string":
+ return jQuery(childs[i]).text();
+ case "array":
+ var ret = [];
+ jQuery("> data > value", childs[i]).each(
+ function() {
+ ret.push(parseXmlValue(this));
+ }
+ );
+ return ret;
+ case "struct":
+ var ret = {};
+ jQuery("> member", childs[i]).each(
+ function() {
+ ret[jQuery( "> name", this).text()] = parseXmlValue(jQuery("value", this));
+ }
+ );
+ return ret;
+ case "dateTime.iso8601":
+ /* TODO: fill me :( */
+ return NULL;
+ }
+ }
+ }
+ var parseXmlResponse = function(data) {
+ var ret = {};
+ ret.version = version;
+ jQuery("methodResponse params param > value", data).each(
+ function(index) {
+ ret.result = parseXmlValue(this);
+ }
+ );
+ jQuery("methodResponse fault > value", data).each(
+ function(index) {
+ ret.error = parseXmlValue(this);
+ }
+ );
+ return ret;
+ }
+ var rpc_contents = {
+ 'xml':'text/xml'
+ ,'json':'application/json'
+ };
+ var _rpc = function(method, callback) {
+ var params = [];
+ for (var i=2; i<arguments.length; i++) {
+ params.push(arguments[i]);
+ }
+ console.log(params);
+ var data;
+ if(dataType == 'json') {
+ data = {"version":version, "method":method, "params":params};
+ } else {
+ data = xmlRpc(method, params);
+ }
+ console.log(data);
+ jQuery.ajax({
+ "url": url,
+ "dataType": dataType,
+ "type": 'POST',
+ "data": data,
+ "success": function(inp) {
+ var json = inp;
+ if(dataType == "xml") {
+ json = parseXmlResponse(inp);
+ }
+ console.log("json response:", json);
+ callback(json);
+ },
+ "processData": false,
+ "contentType": rpc_contents[dataType]
+ });
+ };
+ _rpc("system.listMethods",
+ function(json) {
+ console.log(json);
+ /* get the functions */
+ if(!json.result) {
+ return;
+ }
+ var proc = null;
+ for(var i = 0; i<json.result.length; i++) {
+ proc = json.result[i];
+ var obj = _self;
+ var objStack = proc.split(/\./);
+ for(var j = 0; j < (objStack.length - 1); j++){
+ obj[objStack[j]] = obj[objStack[j]] || {};
+ obj = obj[objStack[j]];
+ }
+ /* add the new procedure */
+ obj[objStack[j]] = (
+ function(method, obj) {
+ var _outer = {"method":method,"rpc":_rpc};
+ return function(callback) {
+ var params = [];
+ params.push(_outer.method);
+ params.push(callback);
+ for (var i=1; i<arguments.length; i++) {
+ params.push(arguments[i]);
+ }
+ _rpc.apply(_self, params);
+ }
+ }
+ )(proc, _rpc);
+ }
+ console.log('Load was performed.');
+ if(onLoadCallback) {
+ onLoadCallback(_self);
+ }
+ }
+ );
+};
+
diff --git a/jquery.rpc.js b/jquery.rpc.js
new file mode 100644
index 0000000..892eb48
--- /dev/null
+++ b/jquery.rpc.js
@@ -0,0 +1,236 @@
+window.jQuery = window.jQuery || {};
+
+jQuery.rpc = function(url, dataType, onLoadCallback, version, methods) {
+ return new (function(url, dataType, onLoadCallback, version) {
+ version = version || "1.0";
+ dataType = dataType || "json";
+ if(dataType != "json" && dataType != "xml") {
+ new Error("IllegalArgument: Unsupported data type");
+ }
+
+ var _self = this;
+
+ function pad2(f) {
+ if(f<=9) {
+ return "0"+f;
+ } else {
+ return ""+f;
+ }
+ }
+
+ var serializeToXml = function(data) {
+ switch (typeof data) {
+ case 'boolean':
+ return '<boolean>'+ ((data) ? '1' : '0') +'</boolean>';
+ case 'number':
+ var parsed = parseInt(data);
+ if(parsed == data) {
+ return '<int>'+ data +'</int>';
+ }
+ return '<double>'+ data +'</double>';
+ case 'string':
+ return '<string>'+ data +'</string>';
+ case 'object':
+ if(data instanceof Date) {
+ return '<dateTime.iso8601>'+ data.getFullYear() + pad2(data.getMonth()) + pad2(data.getDate()) +'T'+ pad2(data.getHours()) +':'+ pad2(data.getMinutes()) +':'+ pad2(data.getSeconds()) +'</dateTime.iso8601>';
+ } else if(data instanceof Array) {
+ var ret = '<array><data>'+"\n";
+ for (var i=0; i < data.length; i++) {
+ ret += ' <value>'+ serializeToXml(data[i]) +"</value>\n";
+ }
+ ret += '</data></array>';
+ return ret;
+ } else {
+ var ret = '<struct>'+"\n";
+ jQuery.each(data, function(key, value) {
+ ret += " <member><name>"+ key +"</name><value>";
+ ret += serializeToXml(value) +"</value></member>\n";
+ });
+ ret += '</struct>';
+ return ret;
+ }
+ }
+ }
+ var xmlRpc = function(method, params) {
+ var ret = '<?xml version="'+version+'"?><methodCall><methodName>'+method+'</methodName><params>';
+ for(var i=0; i<params.length; i++) {
+ ret += "<param><value>"+serializeToXml(params[i])+"</value></param>";
+ }
+ ret += "</params></methodCall>";
+ return ret;
+ }
+ var parseXmlValue = function(node) {
+ var jnode = jQuery(node);
+ childs = jnode.children();
+
+ // String not enclosed in a <string> tag
+ if(childs.length==0) {
+ var s="";
+ for(var j=0; j<jnode[0].childNodes.length;j++) {
+ s+=new String(jnode[0].childNodes[j].nodeValue);
+ }
+ return s;
+ }
+
+ for(var i=0; i < childs.length; i++) {
+ switch(childs[i].tagName) {
+ case 'boolean':
+ return (jQuery(childs[i]).text() == 1);
+ case 'int':
+ case 'i4':
+ return parseInt(jQuery(childs[i]).text());
+ case 'double':
+ return parseFloat(jQuery(childs[i]).text());
+ case "string":
+ return jQuery(childs[i]).text();
+ case "array":
+ var ret = [];
+ jQuery("> data > value", childs[i]).each(
+ function() {
+ ret.push(parseXmlValue(this));
+ }
+ );
+ return ret;
+ case "struct":
+ var ret = {};
+ jQuery("> member", childs[i]).each(
+ function() {
+ ret[jQuery( "> name", this).text()] = parseXmlValue(jQuery("value", this));
+ }
+ );
+ return ret;
+ case "dateTime.iso8601":
+ /* TODO: fill me :( */
+ return 0;
+ }
+ }
+ }
+ var parseXmlResponse = function(data) {
+ var ret = {};
+ ret.version = version;
+ jQuery("methodResponse params param > value", data).each(
+ function(index) {
+ ret.result = parseXmlValue(this);
+ }
+ );
+ jQuery("methodResponse fault > value", data).each(
+ function(index) {
+ ret.error = parseXmlValue(this);
+ }
+ );
+ return ret;
+ }
+ var rpc_contents = {
+ 'xml':'text/xml'
+ ,'json':'application/json'
+ };
+ var _rpc = function(method) {
+ var params = [];
+ var async; // whether we're async or not
+ var callback;
+ var nargs=arguments.length;
+
+ if(nargs > 1 && typeof(arguments[nargs-1])=="function") {
+ callback = arguments[nargs-1];
+ nargs=nargs-1;
+ async=true;
+ } else {
+ async=false;
+ }
+
+ for (var i=1; i<nargs; i++) {
+ params.push(arguments[i]);
+ }
+
+ var data;
+ if(dataType == 'json') {
+ data = {"version":version, "method":method, "params":params};
+ } else {
+ data = xmlRpc(method, params);
+ }
+
+ if(async) {
+ jQuery.ajax({
+ url: url,
+ dataType: dataType,
+ type: "POST",
+ data: data,
+ success: function(inp) {
+ var json = inp;
+ if(dataType == "xml") {
+ json = parseXmlResponse(inp);
+ }
+ // console.log("json response:", json);
+ callback(json);
+ },
+ processData: false,
+ contentType: rpc_contents[dataType]});
+ } else {
+ var result = jQuery.ajax({
+ url: url,
+ dataType: dataType,
+ type: "POST",
+ data: data,
+ async: false,
+ contentType: rpc_contents[dataType]});
+ if(dataType=="json") {
+ return eval("("+result.responseText+")");
+ } else {
+ var myresult=parseXmlResponse(result.responseXML);
+ return myresult;
+ }
+ }
+
+ };
+ function populate(methods) {
+ // console.log(json);
+ /* get the functions */
+ var proc = null;
+ for(var i = 0; i<methods.length; i++) {
+ proc = methods[i];
+ var obj = _self;
+ var objStack = proc.split(/\./);
+ for(var j = 0; j < (objStack.length - 1); j++){
+ obj[objStack[j]] = obj[objStack[j]] || {};
+ obj = obj[objStack[j]];
+ }
+ /* add the new procedure */
+ obj[objStack[j]] = (
+ function(method, obj) {
+ var _outer = {"method":method,"rpc":_rpc};
+ return function() {
+ var params = [];
+ params.push(_outer.method);
+ for (var i=0; i<arguments.length; i++) {
+ params.push(arguments[i]);
+ }
+ return _rpc.apply(_self, params);
+ }
+ }
+ )(proc, _rpc);
+ }
+ // console.log('Load was performed.');
+ }
+
+ function asyncCallback(json) {
+ populate(json.result);
+ if(onLoadCallback) {
+ onLoadCallback(_self);
+ }
+ }
+
+ if(!methods) {
+ _rpc("system.listMethods", asyncCallback);
+ } else {
+ populate(methods);
+ if(onLoadCallback) {
+ // not sure this works - the intention is to call the callback as soon as this
+ // javascript function returns control back to the browser, to emulate the behaviour
+ // that the system.listMethods approach
+ setTimeout(function(){onLoadCallback(_self);},0);
+ }
+ }
+
+ })(url, dataType, onLoadCallback, version);
+};
+
diff --git a/user.js b/user.js
new file mode 100644
index 0000000..c669870
--- /dev/null
+++ b/user.js
@@ -0,0 +1,8 @@
+user_pref("signed.applets.codebase_principal_support", true);
+user_pref("capability.policy.policynames", "allowclipboard");
+user_pref("capability.policy.allowclipboard.sites", "https://bugzilla.redhat.com");
+user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");
+user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");
+user_pref("capability.principal.codebase.p0.granted", "UniversalXPConnect");
+user_pref("capability.principal.codebase.p0.id", "https://bugzilla.redhat.com");
+user_pref("capability.principal.codebase.p0.subjectName", "");