App-MFILE-WWW
view release on metacpan or search on metacpan
share/js/core/html.js view on Meta::CPAN
return max;
}, // maxLength
miniMenu = function (tobj) {
var entries,
entry,
menuText,
mm = tobj.miniMenu.menuObj,
i,
r;
r = "<div class='minimenu' id='minimenu'>";
console.log("Generating miniMenu HTML for target", tobj);
// console.log("menu object is", mm);
if (mm.isEmpty) {
r += "To leave this page, press ENTER or click the Submit button";
} else {
entries = mm.entries;
r += "<div class='minimenuleft'>";
// r += 'Menu: ';
r += 'Menu:';
r += "</div>"; // minimenuleft
r += "<div class='minimenuright'>";
for (i = 1; i < entries.length; i += 1) {
// console.log("i === " + i);
entry = entries[i];
menuText = entry.menuText.replace(/ /g, ' ');
r += i + '. ' + menuText + ' ';
}
r += 'X. Exit/back';
r += '</div>'; // minimenuright
}
r += "</div>"; // minimenu
return r;
}, // miniMenu
valueToDisplay = function (obj, prop, mode) {
// console.log("valueToDisplay with object", obj, "and prop " + prop);
// given an object and a property, return the value to display
if (typeof obj !== 'object') {
if (mode === 'hidden') {
return '';
} else {
return '(NOT_AN_OBJECT)';
}
} else if (! (prop in obj) || obj[prop] === null) {
if (mode === 'read') {
return '(none)';
} else {
return '';
}
} else if (obj[prop] === undefined) {
if (mode === 'hidden') {
return '';
} else {
return '(undefined)';
}
} else if (obj[prop] === false) {
return 'NO';
} else if (obj[prop] === true) {
return 'YES';
} else if (obj[prop] === NaN) {
return '(NOT_A_NUMBER)';
}
return obj[prop];
}, // valueToDisplay
vetEntries = function (tgt, arr) {
// checks that all entries do exist
// if any are missing, write an error
// return true (OK) or false (NOT OK)
for (var i = 0; i < arr.length; i += 1) {
if (typeof arr[i] !== "object") {
console.log("ERROR: target definition ->" + tgt + "<- " +
"mentions non-existent entry " + i);
return false;
}
if (arr[i] === null) {
console.log("ERROR: target definition ->" + tgt + "<- " +
" contains null entry " + i);
return false;
}
if (arr[i].name === undefined) {
console.log("ERROR: target definition ->" + tgt + "<- " +
"is missing a \"name\" property " + i);
return false;
}
}
return true;
}, // vetEntries
// "Your choice" section at the bottom - shared by all target types
yourChoice = function () {
var r = '<br>';
r += "<div class='yourchoice'>";
r += "<div class='yourchoiceleft'>";
r += "Your choice:";
r += "</div>"; // yourchoiceleft
r += "<div class='yourchoiceright'>";
r += '<input name="sel" size=3 maxlength=2> ' +
'<input id="submitButton" type="submit" value="Submit">';
r += "</div>"; // yourchoiceright
r += "</div>"; // yourchoice
r += "<br>";
return r;
};
return {
body: function () {
var r = '';
r += '<div class="leftright">';
r += '<p class="alignleft" style="font-size: x-large; font-weight: bold">';
r += cf('appName');
r += ' <span style="font-size: normal; font-weight: normal;">';
r += cf('appVersion');
r += '</span>';
r += '</p>';
r += '<p class="alignright"><span id="userbox">';
( run in 0.713 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )