Initial revision
This commit is contained in:
parent
1ba4e8011b
commit
bbfcb3d4f4
104 changed files with 3100 additions and 0 deletions
83
code/HopObject/macros.js
Normal file
83
code/HopObject/macros.js
Normal file
|
@ -0,0 +1,83 @@
|
|||
/**
|
||||
* macro rendering a skin
|
||||
* valid parameters: - prefix
|
||||
* - suffix
|
||||
* - name of skin
|
||||
*/
|
||||
|
||||
function skin_macro(param) {
|
||||
renderPrefix(param);
|
||||
if (param.name)
|
||||
this.renderSkin(param.name);
|
||||
renderSuffix(param);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* creates a <FORM ... tag
|
||||
*/
|
||||
|
||||
function form_macro(param) {
|
||||
if (param) {
|
||||
renderPrefix(param);
|
||||
res.write("<FORM METHOD=\"");
|
||||
if (param.method == "GET")
|
||||
res.write("GET\" ");
|
||||
else
|
||||
res.write("POST\" ");
|
||||
res.write("ACTION=\"" + this.href(param.action ? param.action : "") + "\"");
|
||||
if (param.enctype)
|
||||
res.write(" ENCTYPE=\"" + param.enctype + "\">");
|
||||
else
|
||||
res.write(">");
|
||||
renderSuffix(param);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* macro creates a link by using the renderFunctions
|
||||
* openLink() and closeLink()
|
||||
*/
|
||||
|
||||
function link_macro(param) {
|
||||
renderPrefix(param);
|
||||
this.openLink(param);
|
||||
res.write(param.text);
|
||||
this.closeLink();
|
||||
renderSuffix(param);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* macro renders a form-input
|
||||
* used mostly for those inputs that have no initial value
|
||||
* i.e. in register.skin
|
||||
*/
|
||||
|
||||
function input_macro(param) {
|
||||
renderPrefix(param);
|
||||
if (param.type == "textarea") {
|
||||
var inputParam = new HopObject();
|
||||
for (var i in param)
|
||||
inputParam[i] = param[i];
|
||||
inputParam.value = param.name ? req.data[param.name] : null;
|
||||
this.renderInputTextarea(inputParam);
|
||||
} else if (param.type == "checkbox") {
|
||||
} else if (param.type == "button") {
|
||||
this.renderInputButton(param);
|
||||
} else if (param.type == "password") {
|
||||
this.renderInputPassword(param);
|
||||
} else if (param.type == "file") {
|
||||
this.renderInputFile(param);
|
||||
} else {
|
||||
var inputParam = new HopObject();
|
||||
for (var i in param)
|
||||
inputParam[i] = param[i];
|
||||
inputParam.value = param.name ? req.data[param.name] : null;
|
||||
this.renderInputText(inputParam);
|
||||
}
|
||||
renderSuffix(param);
|
||||
}
|
||||
|
||||
|
86
code/HopObject/objectFunctions.js
Normal file
86
code/HopObject/objectFunctions.js
Normal file
|
@ -0,0 +1,86 @@
|
|||
/**
|
||||
* renders single dropdown
|
||||
* input values: current Timestamp
|
||||
*/
|
||||
|
||||
function createDDparam(prefix,ts,dropFormat) {
|
||||
var ddParam = new HopObject();
|
||||
if (dropFormat == "dd") {
|
||||
ddParam.name = prefix + "Date";
|
||||
ddParam.firstOption = "Day";
|
||||
ddParam.currValue = ts ? ts.getDate() : null;
|
||||
ddParam.start = 1;
|
||||
ddParam.end = 31;
|
||||
} else if (dropFormat == "MM") {
|
||||
ddParam.name = prefix + "Month";
|
||||
ddParam.firstOption = "Month";
|
||||
ddParam.currValue = ts ? ts.getMonth() : null;
|
||||
ddParam.start = 1;
|
||||
ddParam.end = 12;
|
||||
ddParam.valueOffset = -1;
|
||||
} else if (dropFormat == "yyyy") {
|
||||
ddParam.name = prefix + "Year";
|
||||
ddParam.firstOption = "Year";
|
||||
ddParam.currValue = ts ? ts.getFullYear() : null;
|
||||
ddParam.start = 2000;
|
||||
ddParam.end = 2010;
|
||||
} else if (dropFormat == "HH") {
|
||||
ddParam.name = prefix + "Hours";
|
||||
ddParam.firstOption = "Hour";
|
||||
ddParam.currValue = ts ? ts.getHours() : null;
|
||||
ddParam.start = 0;
|
||||
ddParam.end = 23;
|
||||
} else if (dropFormat == "mm") {
|
||||
ddParam.name = prefix + "Minutes";
|
||||
ddParam.firstOption = "Minute";
|
||||
ddParam.currValue = ts ? ts.getMinutes() : null;
|
||||
ddParam.start = 0;
|
||||
ddParam.end = 59;
|
||||
} else if (dropFormat == "ss") {
|
||||
ddParam.name = prefix + "Seconds";
|
||||
ddParam.firstOption = "Second";
|
||||
ddParam.currValue = ts ? ts.getSeconds() : null;
|
||||
ddParam.start = 0;
|
||||
ddParam.end = 59;
|
||||
}
|
||||
this.createDDOptions(ddParam);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* function creates array for rendering options
|
||||
*/
|
||||
|
||||
function createDDOptions(ddParam) {
|
||||
if (ddParam.firstOption) {
|
||||
var option = new HopObject()
|
||||
option.name = ddParam.firstOption;
|
||||
option.value = "";
|
||||
ddParam.add(option);
|
||||
}
|
||||
for (var i=ddParam.start;i<=ddParam.end;i++) {
|
||||
var option = new HopObject();
|
||||
option.name = (i<10 ? "0" + i : i);
|
||||
option.value = (ddParam.valueOffset ? i+ddParam.valueOffset : i);
|
||||
option.selected = (ddParam.currValue == option.value ? true : false);
|
||||
ddParam.add(option);
|
||||
}
|
||||
this.chooser(ddParam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* creates parameter-object that will be passed to
|
||||
* function that renders the input
|
||||
*/
|
||||
|
||||
function createInputParam(propName,param) {
|
||||
var inputParam = new HopObject();
|
||||
inputParam.name = propName;
|
||||
for (var i in param)
|
||||
inputParam[i] = param[i];
|
||||
inputParam.value = this[propName];
|
||||
return (inputParam);
|
||||
}
|
||||
|
185
code/HopObject/renderFunctions.js
Normal file
185
code/HopObject/renderFunctions.js
Normal file
|
@ -0,0 +1,185 @@
|
|||
/**
|
||||
* renders a textarea
|
||||
* input: - parameter object
|
||||
*/
|
||||
|
||||
function renderInputTextarea(param) {
|
||||
if (param) {
|
||||
res.write("<TEXTAREA NAME=\"" + param.name + "\"");
|
||||
res.write(" ROWS=\"");
|
||||
res.write(param.height ? param.height : "5");
|
||||
res.write("\" COLS=\"");
|
||||
res.write(param.width ? param.width : "40");
|
||||
res.write("\" WRAP=\"");
|
||||
res.write(param.wrap ? param.wrap : "VIRTUAL");
|
||||
res.write("\">");
|
||||
res.write(param.value != null ? param.value : "");
|
||||
res.write("</TEXTAREA>");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* renders an input type text
|
||||
* input: - parameter object
|
||||
*/
|
||||
|
||||
function renderInputText(param) {
|
||||
if (param) {
|
||||
res.write("<INPUT TYPE=\"TEXT\" NAME=\"" + param.name + "\"");
|
||||
if (param.value)
|
||||
res.write(" VALUE=\"" + param.value + "\"");
|
||||
res.write(" SIZE=\"");
|
||||
res.write(param.width ? param.width : "20");
|
||||
res.write("\">");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* renders an input type password
|
||||
* input: - parameter object
|
||||
*/
|
||||
|
||||
function renderInputPassword(param) {
|
||||
if (param) {
|
||||
res.write("<INPUT TYPE=\"PASSWORD\" NAME=\"" + param.name + "\"");
|
||||
res.write(" SIZE=\"");
|
||||
res.write(param.width ? param.width : "20");
|
||||
res.write("\">");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* function renders an input type file
|
||||
*/
|
||||
|
||||
function renderInputFile(param) {
|
||||
if (param) {
|
||||
res.write("<INPUT TYPE=\"FILE\" NAME=\"" + param.name + "\"");
|
||||
res.write(" SIZE=\"");
|
||||
res.write(param.width ? param.width : "10");
|
||||
res.write("\">");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* renders an input type radio
|
||||
* input: - parameter object
|
||||
|
||||
function renderInputRadio(param) {
|
||||
if (param) {
|
||||
res.write("<INPUT TYPE=\"RADIO\" NAME=\"" + param.value + "\"");
|
||||
res.write(" VALUE=\"" + (this[param.value] ? this[param.value] : "") + "\"");
|
||||
res.write(">");
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* renders an input type checkbox
|
||||
* input: - parameter object
|
||||
*/
|
||||
|
||||
function renderInputCheckbox(param) {
|
||||
if (param && param.name) {
|
||||
res.write("<INPUT TYPE=\"CHECKBOX\" NAME=\"" + param.name + "\"");
|
||||
res.write(" VALUE=\"1\"");
|
||||
if (parseInt(param.value) == 1)
|
||||
res.write(" CHECKED");
|
||||
res.write(">");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* renders a submit-button
|
||||
* input: - parameter object
|
||||
*/
|
||||
|
||||
function renderInputButton(param) {
|
||||
if (param) {
|
||||
res.write("<INPUT TYPE=\"SUBMIT\"");
|
||||
res.write(" NAME=\"" + (param.name ? param.name : "submit") + "\"");
|
||||
res.write(" VALUE=\"" + (param.value ? param.value : "submit") + "\"");
|
||||
res.write(">");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* open a normal href-tag
|
||||
* valid attributes: - linkto | to (the url)
|
||||
* - urlparam (get-parameter)
|
||||
* - target
|
||||
*/
|
||||
|
||||
function openLink(param) {
|
||||
if (param.to || param.linkto) {
|
||||
res.write("<A HREF=\"");
|
||||
var url = param.to ? param.to : param.linkto;
|
||||
// check if this is an external url
|
||||
if (url.indexOf("://") > -1)
|
||||
res.write(url);
|
||||
else
|
||||
res.write(this.href(url));
|
||||
if (param.urlparam) res.write(param.urlparam);
|
||||
res.write("\"");
|
||||
if (param.target)
|
||||
res.write(" TARGET=\"" + param.target + "\"");
|
||||
res.write(">");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* close a href-tag
|
||||
*/
|
||||
|
||||
function closeLink() {
|
||||
res.write("</A>");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* renders a group of dropdowns for selecting
|
||||
* date-value
|
||||
*/
|
||||
|
||||
function renderDateDropdown(param) {
|
||||
if (param.value) {
|
||||
var ts = param.value;
|
||||
} else {
|
||||
var ts = new Date();
|
||||
}
|
||||
var prefix = param.name ? param.name : "date";
|
||||
this.createDDparam(prefix,ts,"yyyy");
|
||||
this.createDDparam(prefix,ts,"MM");
|
||||
this.createDDparam(prefix,ts,"dd");
|
||||
this.createDDparam(prefix,ts,"HH");
|
||||
this.createDDparam(prefix,ts,"mm");
|
||||
}
|
||||
|
||||
/**
|
||||
* function renders a dropdown-element
|
||||
* input values: parameter-object
|
||||
* param.name = name of select-element
|
||||
* param-object contains a HopObject for each option that is selectable
|
||||
* each option contains the following properties:
|
||||
* name = string to display in dropdown
|
||||
* value = value of option
|
||||
* selected = boolean (option matches the current selection)
|
||||
*/
|
||||
|
||||
function chooser(param) {
|
||||
res.write("<SELECT NAME=\"" + param.name + "\"");
|
||||
res.write(">\n");
|
||||
for (var i=0;i<param.size();i++) {
|
||||
res.write("<OPTION VALUE=\"" + param.get(i).value + "\"");
|
||||
if (param.get(i).selected)
|
||||
res.write(" SELECTED");
|
||||
res.write(">" + param.get(i).name + "</OPTION>\n");
|
||||
}
|
||||
res.write("</SELECT>\n");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue