emcellent-toolkit
Version:
A toolkit for performing neat functions with M/MUMPS data.
91 lines (75 loc) • 3.93 kB
JavaScript
"use strict";
//Append Line Label and Lead Spacing.
function renderLabel(inputObject, inputLine) {
var leadingLabelTag = "<a class=\"mLabel\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Line Label\">";
var trailingTag = "</a>";
if (inputObject.lineLabel) {
inputLine = inputLine + leadingLabelTag + inputObject.lineLabel + trailingTag;
}
if (inputObject.lineLeadSpace) {
inputLine = inputLine + inputObject.lineLeadSpace;
}
return inputLine;
}
//Append Indentation to Label/Spacing.
function renderIndentation(inputObject, inputLine) {
var leadingIndentTag = "<a class=\"mIndentation\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Line Level\">";
var trailingTag = "</a>";
var tmpIndentation = "";
if (inputObject.lineIndentationArray) {
if (inputObject.lineIndentationArray.length > 0) {
for (var i in inputObject.lineIndentationArray) {
tmpIndentation = tmpIndentation + leadingIndentTag + "." + trailingTag + inputObject.lineIndentationArray[i];
}
inputLine = inputLine + tmpIndentation;
}
}
return inputLine;
}
//Append Routines to Label/Spacing/Indentation.
function renderRoutines(inputObject, inputLine) {
var leadingRtnTag = "<a class=\"mRoutine\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Routine\">";
var leadingPCTag = "<a class=\"mPostConditional\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Post Conditional\">";
var leadingArgTag = "<a class=\"mArguments\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Arguments\">";
var trailingTag = "</a>";
if (inputObject.lineRoutines) {
for (var i in inputObject.lineRoutines) {
if (inputObject.lineRoutines[i].mRoutine || inputObject.lineRoutines[i].mRoutine === "") {
//If data has metadata, overwrite leading RTN tag with popover content.
if (inputObject.lineRoutines[i].mRoutineMarkup) {
var tmpMarkup = inputObject.lineRoutines[i].mRoutineMarkup;
leadingRtnTag = "<a class=\"mRoutine\" data-toggle=\"popover\" data-placement=\"top\" data-html=\"true\" data-trigger=\"hover\" title=\"" + tmpMarkup.routineName + "\" data-content=\"<pre>" + tmpMarkup.routineSyntax + "</pre>" + tmpMarkup.routineDesc + "\">";
}
//Leave off interval spacing for first Routine.
if (i === "0") {
inputLine = inputLine + leadingRtnTag + inputObject.lineRoutines[i].mRoutine + trailingTag;
} else {
inputLine = inputLine + " " + leadingRtnTag + inputObject.lineRoutines[i].mRoutine + trailingTag;
}
//Append Post-Conditional.
if (inputObject.lineRoutines[i].mPostConditional) {
inputLine = inputLine + ":" + leadingPCTag + inputObject.lineRoutines[i].mPostConditional + trailingTag;
}
//Append Arguments.
if (inputObject.lineRoutines[i].hasOwnProperty("mArguments")) {
inputLine = inputLine + " " + leadingArgTag + inputObject.lineRoutines[i].mArguments + trailingTag;
}
}
}
}
return inputLine;
}
//Append Comment.
function renderComment(inputObject, inputLine) {
var leadingTag = "<a class=\"mComment\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Comments\">";
var trailingTag = "</a>";
if (inputObject.hasOwnProperty("lineComment")) {
inputLine = inputLine + leadingTag + ";" + inputObject.lineComment + trailingTag;
}
return inputLine;
}
//Export all Routines.
module.exports.renderLabel = renderLabel;
module.exports.renderIndentation = renderIndentation;
module.exports.renderRoutines = renderRoutines;
module.exports.renderComment = renderComment;