aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bugzillaBugTriage.js72
1 files changed, 55 insertions, 17 deletions
diff --git a/bugzillaBugTriage.js b/bugzillaBugTriage.js
index 28ae84b..e8c49e0 100644
--- a/bugzillaBugTriage.js
+++ b/bugzillaBugTriage.js
@@ -261,6 +261,7 @@ Color.prototype.hs = function(nStr) {
};
Color.prototype.toString = function() {
+ var rH = Number(this.r.toFixed()).toString(16);
var gH = Number(this.g.toFixed()).toString(16);
var bH = Number(this.b.toFixed()).toString(16);
return "#"+this.hs(rH)+this.hs(gH)+this.hs(bH);
@@ -496,15 +497,7 @@ BzPage.prototype.getOptionValue = function (id) {
*/
BzPage.prototype.serializeForm = function (form) {
var serialForm = {
- elements: [], // it is probably better to get already processed
- // application/x-www-form-urlencoded
- // see http://htmlhelp.com/reference/html40/forms/form.html for details
- // and also https://developer.mozilla.org/en/AJAX/Getting_Started
- // what's?
- // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference\
- // /Global_Functions/encodeURI & co.
- // this seems to be also interesting
- // https://developer.mozilla.org/en/Code_snippets/Post_data_to_window
+ elements: [],
name: form.name,
method: form.method,
acceptCharset: form.acceptCharset,
@@ -512,27 +505,59 @@ BzPage.prototype.serializeForm = function (form) {
enctype: form.enctype,
autocomplete: form.getAttribute("autocomplete")
};
-
/**
* @param o control to be serialized
* @return String with the serialized control
*/
function serializeControl(element) {
- // notImplemented
+ var val = element.value;
+ console.log("serializeControl val = " + val);
+ console.log("typeof val = " + typeof val);
+ console.log("val.toSource() = " + val.toSource());
+ if (val == null) {
+ return null;
+ } else if (val instanceof Array) {
+ return val.map(function (x) {
+ return {name: element.name, value: x.value};
+ });
+ } else if (val instanceof String) {
+ return {name: element.name, value: val};
+ } else { // assume HTMLCollection
+ return Array.map(val,function (x) {
+ return {name: element.name, value: x.value};
+ });
+ }
+
+ }
+
+ /**
+ *
+ */
+ function arr2str(arr) {
+ var outStr = "";
+ arr.forEach(function (el) {
+ if (el instanceof Array) {
+ //
+ }
+ });
}
- serialForm = Array.map(form.elements,serializeControl);
+ serialForm = Array.filter(form.elements,function (el) {
+ return !el.disabled && el.name &&
+ (el.checked || /select|textarea/i.test(el.nodeName) ||
+ /text|hidden|password|search/i.test(el.type));
+ }).map(serializeControl);
return serialForm;
-}
+};
-BzPage.prototype.submitCallback(evt) {
+BzPage.prototype.submitCallback = function(evt) {
if (jetpack.__parent__.navigator.onLine) {
options.oldSubmit();
} else {
var serForm = this.serializeForm(this.dok.forms.namedItem("changeform"));
myStorage.forms[this.bugNo] = serForm; // FIXME
}
-}
+};
/**
*
@@ -540,18 +565,31 @@ BzPage.prototype.submitCallback(evt) {
* Yes, this is corrent, this is NOT method of bzPage!
*/
function onlineCallback() {
- function deserializeAndSend(x) {
+ function deserializeAndSend(formData) {
// FIXME notImplemented
// is it enough to just
// run XMLHTTPRequest? Probably yes, this is just a form
// and this is just a HTTP request :)
+ // it is probably better to get already processed
+ // application/x-www-form-urlencoded
+ // see http://htmlhelp.com/reference/html40/forms/form.html for details
+ // and also https://developer.mozilla.org/en/AJAX/Getting_Started
+ // what's?
+ // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference\
+ // /Global_Functions/encodeURI & co.
+ // this seems to be also interesting
+ // https://developer.mozilla.org/en/Code_snippets/Post_data_to_window
+ var req = new XMLHTTPRequest();
+ req.open("POST",formData.action);
+ // where to get the real form ... should we just download the page with another
+ // XMLHTTPRequest ... but we just need to emulate, what would happen if...
return success;
}
if (myStorage.forms.length > 0) {
myStorage.forms.forEach(function (x) {
if (deserializeAndSend(x)) {
- del x; // can I do it?
+ //del x; // can I do it?
}
});
}