def mainRender(needsRender, menu, selection): term = Terminal() if needsRender == 1: print(term.clear()) print(term.move_y(term.height // 16)) print(term.black_on_cornsilk4(term.center('IOTstack Code-server Options'))) print("") print(term.center(commonTopBorder(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center("{bv} Select Option to configure {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center(commonEmptyLine(renderMode))) if needsRender >= 1: renderHotZone(term, menu, selection, hotzoneLocation) if needsRender == 1: print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) if not hideHelpText: print(term.center(commonEmptyLine(renderMode))) print(term.center("{bv} Controls: {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Up] and [Down] to move selection cursor {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [H] Show/hide this text {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Enter] to run command or save input {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Escape] to go back to build stack menu {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center(commonEmptyLine(renderMode))) if len(documentationHint) > 1: if len(documentationHint) > 56: documentationAndPadding = padText(documentationHint, 71) print(term.center("{bv} Documentation: {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} {dap} {bv}".format(bv=specialChars[renderMode]["borderVertical"], dap=documentationAndPadding))) else: documentationAndPadding = padText(documentationHint, 56) print(term.center("{bv} Documentation: {dap} {bv}".format(bv=specialChars[renderMode]["borderVertical"], dap=documentationAndPadding))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonBottomBorder(renderMode)))
def mainRender(needsRender, menu, selection): term = Terminal() if needsRender == 1: print(term.clear()) print(term.move_y(term.height // 16)) print( term.black_on_cornsilk4( term.center('IOTstack NodeRed Options'))) print("") print(term.center(commonTopBorder(renderMode))) print(term.center(commonEmptyLine(renderMode))) print( term.center( "{bv} Select Option to configure {bv}" .format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center(commonEmptyLine(renderMode))) if needsRender >= 1: renderHotZone(term, menu, selection, hotzoneLocation) if needsRender == 1: if os.path.exists(serviceService + '/addons_list.yml'): if hasRebuiltAddons: print(term.center(commonEmptyLine(renderMode))) print( term.center( '{bv} {t.grey_on_blue4} {text} {t.normal}{t.white_on_black}{t.normal} {bv}' .format( t=term, text= "Addons list has been rebuilt: addons_list.yml", bv=specialChars[renderMode] ["borderVertical"]))) else: print(term.center(commonEmptyLine(renderMode))) print( term.center( '{bv} {t.grey_on_blue4} {text} {t.normal}{t.white_on_black}{t.normal} {bv}' .format( t=term, text= "Using existing addons_list.yml for addons installation", bv=specialChars[renderMode] ["borderVertical"]))) else: print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) if not hideHelpText: print(term.center(commonEmptyLine(renderMode))) print( term.center( "{bv} Controls: {bv}" .format( bv=specialChars[renderMode]["borderVertical"]))) print( term.center( "{bv} [Up] and [Down] to move selection cursor {bv}" .format( bv=specialChars[renderMode]["borderVertical"]))) print( term.center( "{bv} [H] Show/hide this text {bv}" .format( bv=specialChars[renderMode]["borderVertical"]))) print( term.center( "{bv} [Enter] to run command or save input {bv}" .format( bv=specialChars[renderMode]["borderVertical"]))) print( term.center( "{bv} [Escape] to go back to build stack menu {bv}" .format( bv=specialChars[renderMode]["borderVertical"]))) print(term.center(commonEmptyLine(renderMode))) if len(documentationHint) > 1: if len(documentationHint) > 56: documentationAndPadding = padText( documentationHint, 71) print( term.center( "{bv} Documentation: {bv}" .format(bv=specialChars[renderMode] ["borderVertical"]))) print( term.center("{bv} {dap} {bv}".format( bv=specialChars[renderMode]["borderVertical"], dap=documentationAndPadding))) else: documentationAndPadding = padText( documentationHint, 56) print( term.center( "{bv} Documentation: {dap} {bv}".format( bv=specialChars[renderMode] ["borderVertical"], dap=documentationAndPadding))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonBottomBorder(renderMode)))
def mainRender(menu, selection, renderType = 1): global paginationStartIndex global paginationSize paddingBefore = 4 allIssues = [] if selection >= paginationStartIndex + paginationSize: paginationStartIndex = selection - (paginationSize - 1) + 1 renderType = 1 if selection <= paginationStartIndex - 1: paginationStartIndex = selection renderType = 1 try: if (renderType == 1): checkForOptions() print(term.clear()) print(term.move_y(7 - hotzoneLocation[0])) print(term.black_on_cornsilk4(term.center('IOTstack Build Menu'))) print("") print(term.center(commonTopBorder(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center("{bv} Select containers to build {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) renderHotZone(term, renderType, menu, selection, paddingBefore, allIssues) if (renderType == 1): print(term.center(commonEmptyLine(renderMode))) if not hideHelpText: room = term.height - (28 + len(allIssues) + paginationSize) if room < 0: allIssues.append({ "serviceName": "BuildStack Menu", "issues": { "screenSize": 'Not enough scren height to render correctly (t-height = ' + str(term.height) + ' v-lines = ' + str(room) + ')' } }) print(term.center(commonEmptyLine(renderMode))) print(term.center("{bv} Not enough vertical room to render controls help text ({th}, {rm}) {bv}".format(bv=specialChars[renderMode]["borderVertical"], th=padText(str(term.height), 3), rm=padText(str(room), 3)))) print(term.center(commonEmptyLine(renderMode))) else: print(term.center(commonEmptyLine(renderMode))) print(term.center("{bv} Controls: {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Space] to select or deselect image {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Up] and [Down] to move selection cursor {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Right] for options for containers that support them {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Tab] Expand or collapse build menu size {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [H] Show/hide this text {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) # print(term.center("{bv} [F] Filter options {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Enter] to begin build {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center("{bv} [Escape] to cancel build {bv}".format(bv=specialChars[renderMode]["borderVertical"]))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonEmptyLine(renderMode))) print(term.center(commonBottomBorder(renderMode))) if len(allIssues) > 0: print(term.center("")) print(term.center("")) print(term.center("")) print(term.center(("{btl}{bh}{bh}{bh}{bh}{bh}{bh} Build Issues " "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}{bh}" "{bh}{bh}{bh}{bh}{bh}{bh}{bh}{btr}").format( btl=specialChars[renderMode]["borderTopLeft"], btr=specialChars[renderMode]["borderTopRight"], bh=specialChars[renderMode]["borderHorizontal"] ))) print(term.center(commonEmptyLine(renderMode, size = 139))) for serviceIssues in allIssues: for index, issue in enumerate(serviceIssues["issues"]): spacesAndBracketsLen = 5 issueAndTypeLen = len(issue) + len(serviceIssues["serviceName"]) + spacesAndBracketsLen serviceNameAndConflictType = '{t.red_on_black}{issueService}{t.normal} ({t.yellow_on_black}{issueType}{t.normal}) '.format(t=term, issueService=serviceIssues["serviceName"], issueType=issue) formattedServiceNameAndConflictType = generateLineText(str(serviceNameAndConflictType), textLength=issueAndTypeLen, paddingBefore=0, lineLength=32) issueDescription = generateLineText(str(serviceIssues["issues"][issue]), textLength=len(str(serviceIssues["issues"][issue])), paddingBefore=0, lineLength=103) print(term.center("{bv} {nm} - {desc} {bv}".format(nm=formattedServiceNameAndConflictType, desc=issueDescription, bv=specialChars[renderMode]["borderVertical"]) )) print(term.center(commonEmptyLine(renderMode, size = 139))) print(term.center(commonBottomBorder(renderMode, size = 139))) except Exception as err: print("There was an error rendering the menu:") print(err) print("Press [Esc] to go back") return return