Initial revision

This commit is contained in:
Robert Gaggl 2001-06-18 08:57:33 +00:00
parent 1ba4e8011b
commit bbfcb3d4f4
104 changed files with 3100 additions and 0 deletions

83
code/HopObject/macros.js Normal file
View 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);
}

View 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);
}

View 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");
}