updates to camp and things
This commit is contained in:
parent
16e1340a7c
commit
7724a42e73
442 changed files with 97335 additions and 8 deletions
241
static/js/cljs-runtime/goog.dom.forms.js
Normal file
241
static/js/cljs-runtime/goog.dom.forms.js
Normal file
|
@ -0,0 +1,241 @@
|
|||
goog.provide("goog.dom.forms");
|
||||
goog.require("goog.dom.InputType");
|
||||
goog.require("goog.dom.TagName");
|
||||
goog.require("goog.dom.safe");
|
||||
goog.require("goog.structs.Map");
|
||||
goog.require("goog.window");
|
||||
goog.dom.forms.submitFormInNewWindow = function(form, opt_submitElement) {
|
||||
var formData = goog.dom.forms.getFormDataMap(form);
|
||||
var action = form.action;
|
||||
var method = form.method;
|
||||
if (opt_submitElement) {
|
||||
if (goog.dom.InputType.SUBMIT != opt_submitElement.type.toLowerCase()) {
|
||||
throw new Error("opt_submitElement does not have a valid type.");
|
||||
}
|
||||
var submitValue = goog.dom.forms.getValue(opt_submitElement);
|
||||
if (submitValue != null) {
|
||||
goog.dom.forms.addFormDataToMap_(formData, opt_submitElement.name, submitValue);
|
||||
}
|
||||
if (opt_submitElement.getAttribute("formaction")) {
|
||||
action = opt_submitElement.getAttribute("formaction");
|
||||
}
|
||||
if (opt_submitElement.getAttribute("formmethod")) {
|
||||
method = opt_submitElement.getAttribute("formmethod");
|
||||
}
|
||||
}
|
||||
return goog.dom.forms.submitFormDataInNewWindow(action, method, formData);
|
||||
};
|
||||
goog.dom.forms.submitFormDataInNewWindow = function(actionUri, method, formData) {
|
||||
var newWin = goog.window.openBlank("", {noreferrer:true});
|
||||
if (!newWin) {
|
||||
return false;
|
||||
}
|
||||
var newDocument = newWin.document;
|
||||
var newForm = newDocument.createElement("form");
|
||||
newForm.method = method;
|
||||
goog.dom.safe.setFormElementAction(newForm, actionUri);
|
||||
formData.forEach(function(fieldValues, fieldName) {
|
||||
for (var i = 0; i < fieldValues.length; i++) {
|
||||
var fieldValue = fieldValues[i];
|
||||
var newInput = newDocument.createElement("input");
|
||||
newInput.name = fieldName;
|
||||
newInput.value = fieldValue;
|
||||
newInput.type = "hidden";
|
||||
HTMLFormElement.prototype.appendChild.call(newForm, newInput);
|
||||
}
|
||||
});
|
||||
HTMLFormElement.prototype.submit.call(newForm);
|
||||
return true;
|
||||
};
|
||||
goog.dom.forms.getFormDataMap = function(form) {
|
||||
var map = new goog.structs.Map();
|
||||
goog.dom.forms.getFormDataHelper_(form, map, goog.dom.forms.addFormDataToMap_);
|
||||
return map;
|
||||
};
|
||||
goog.dom.forms.getFormDataString = function(form) {
|
||||
var sb = [];
|
||||
goog.dom.forms.getFormDataHelper_(form, sb, goog.dom.forms.addFormDataToStringBuffer_);
|
||||
return sb.join("\x26");
|
||||
};
|
||||
goog.dom.forms.getFormDataHelper_ = function(form, result, fnAppend) {
|
||||
var els = form.elements;
|
||||
for (var el, i = 0; el = els.item(i); i++) {
|
||||
if (el.form != form || el.disabled || el.tagName == goog.dom.TagName.FIELDSET) {
|
||||
continue;
|
||||
}
|
||||
var name = el.name;
|
||||
switch(el.type.toLowerCase()) {
|
||||
case goog.dom.InputType.FILE:
|
||||
case goog.dom.InputType.SUBMIT:
|
||||
case goog.dom.InputType.RESET:
|
||||
case goog.dom.InputType.BUTTON:
|
||||
break;
|
||||
case goog.dom.InputType.SELECT_MULTIPLE:
|
||||
var values = goog.dom.forms.getValue(el);
|
||||
if (values != null) {
|
||||
for (var value, j = 0; value = values[j]; j++) {
|
||||
fnAppend(result, name, value);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
var value = goog.dom.forms.getValue(el);
|
||||
if (value != null) {
|
||||
fnAppend(result, name, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
var inputs = form.getElementsByTagName(String(goog.dom.TagName.INPUT));
|
||||
for (var input, i = 0; input = inputs[i]; i++) {
|
||||
if (input.form == form && input.type.toLowerCase() == goog.dom.InputType.IMAGE) {
|
||||
name = input.name;
|
||||
fnAppend(result, name, input.value);
|
||||
fnAppend(result, name + ".x", "0");
|
||||
fnAppend(result, name + ".y", "0");
|
||||
}
|
||||
}
|
||||
};
|
||||
goog.dom.forms.addFormDataToMap_ = function(map, name, value) {
|
||||
var array = map.get(name);
|
||||
if (!array) {
|
||||
array = [];
|
||||
map.set(name, array);
|
||||
}
|
||||
array.push(value);
|
||||
};
|
||||
goog.dom.forms.addFormDataToStringBuffer_ = function(sb, name, value) {
|
||||
sb.push(encodeURIComponent(name) + "\x3d" + encodeURIComponent(value));
|
||||
};
|
||||
goog.dom.forms.hasFileInput = function(form) {
|
||||
var els = form.elements;
|
||||
for (var el, i = 0; el = els[i]; i++) {
|
||||
if (!el.disabled && el.type && el.type.toLowerCase() == goog.dom.InputType.FILE) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
goog.dom.forms.setDisabled = function(el, disabled) {
|
||||
if (el.tagName == goog.dom.TagName.FORM) {
|
||||
var els = el.elements;
|
||||
for (var i = 0; el = els.item(i); i++) {
|
||||
goog.dom.forms.setDisabled(el, disabled);
|
||||
}
|
||||
} else {
|
||||
if (disabled == true) {
|
||||
el.blur();
|
||||
}
|
||||
el.disabled = disabled;
|
||||
}
|
||||
};
|
||||
goog.dom.forms.focusAndSelect = function(el) {
|
||||
el.focus();
|
||||
if (el.select) {
|
||||
el.select();
|
||||
}
|
||||
};
|
||||
goog.dom.forms.hasValue = function(el) {
|
||||
var value = goog.dom.forms.getValue(el);
|
||||
return !!value;
|
||||
};
|
||||
goog.dom.forms.hasValueByName = function(form, name) {
|
||||
var value = goog.dom.forms.getValueByName(form, name);
|
||||
return !!value;
|
||||
};
|
||||
goog.dom.forms.getValue = function(input) {
|
||||
var type = input.type;
|
||||
if (typeof type === "string") {
|
||||
var el = input;
|
||||
switch(type.toLowerCase()) {
|
||||
case goog.dom.InputType.CHECKBOX:
|
||||
case goog.dom.InputType.RADIO:
|
||||
return goog.dom.forms.getInputChecked_(el);
|
||||
case goog.dom.InputType.SELECT_ONE:
|
||||
return goog.dom.forms.getSelectSingle_(el);
|
||||
case goog.dom.InputType.SELECT_MULTIPLE:
|
||||
return goog.dom.forms.getSelectMultiple_(el);
|
||||
default:
|
||||
}
|
||||
}
|
||||
return input.value != null ? input.value : null;
|
||||
};
|
||||
goog.dom.forms.getValueByName = function(form, name) {
|
||||
var els = form.elements[name];
|
||||
if (!els) {
|
||||
return null;
|
||||
} else if (els.type) {
|
||||
return goog.dom.forms.getValue(els);
|
||||
} else {
|
||||
for (var i = 0; i < els.length; i++) {
|
||||
var val = goog.dom.forms.getValue(els[i]);
|
||||
if (val) {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
goog.dom.forms.getInputChecked_ = function(el) {
|
||||
return el.checked ? el.value : null;
|
||||
};
|
||||
goog.dom.forms.getSelectSingle_ = function(el) {
|
||||
var selectedIndex = el.selectedIndex;
|
||||
return selectedIndex >= 0 ? el.options[selectedIndex].value : null;
|
||||
};
|
||||
goog.dom.forms.getSelectMultiple_ = function(el) {
|
||||
var values = [];
|
||||
for (var option, i = 0; option = el.options[i]; i++) {
|
||||
if (option.selected) {
|
||||
values.push(option.value);
|
||||
}
|
||||
}
|
||||
return values.length ? values : null;
|
||||
};
|
||||
goog.dom.forms.setValue = function(el, opt_value) {
|
||||
var type = el.type;
|
||||
switch(typeof type === "string" && type.toLowerCase()) {
|
||||
case goog.dom.InputType.CHECKBOX:
|
||||
case goog.dom.InputType.RADIO:
|
||||
goog.dom.forms.setInputChecked_(el, opt_value);
|
||||
return;
|
||||
case goog.dom.InputType.SELECT_ONE:
|
||||
goog.dom.forms.setSelectSingle_(el, opt_value);
|
||||
return;
|
||||
case goog.dom.InputType.SELECT_MULTIPLE:
|
||||
goog.dom.forms.setSelectMultiple_(el, opt_value);
|
||||
return;
|
||||
default:
|
||||
el.value = opt_value != null ? opt_value : "";
|
||||
}
|
||||
};
|
||||
goog.dom.forms.setInputChecked_ = function(el, opt_value) {
|
||||
el.checked = opt_value;
|
||||
};
|
||||
goog.dom.forms.setSelectSingle_ = function(el, opt_value) {
|
||||
el.selectedIndex = -1;
|
||||
if (typeof opt_value === "string") {
|
||||
for (var option, i = 0; option = el.options[i]; i++) {
|
||||
if (option.value == opt_value) {
|
||||
option.selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
goog.dom.forms.setSelectMultiple_ = function(el, opt_value) {
|
||||
if (typeof opt_value === "string") {
|
||||
opt_value = [opt_value];
|
||||
}
|
||||
for (var option, i = 0; option = el.options[i]; i++) {
|
||||
option.selected = false;
|
||||
if (opt_value) {
|
||||
for (var value, j = 0; value = opt_value[j]; j++) {
|
||||
if (option.value == value) {
|
||||
option.selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//# sourceMappingURL=goog.dom.forms.js.map
|
Loading…
Add table
Add a link
Reference in a new issue