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:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
                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, '&nbsp;');
                    r += i + '.&nbsp' + menuText + '&nbsp; ';
                }
                r += 'X.&nbspExit/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 )