mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			242 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import datetime
 | |
| import matplotlib.pyplot as plt
 | |
| import base64
 | |
| from io import BytesIO
 | |
| 
 | |
| html = open("wifi_diag.html", 'w')
 | |
| 
 | |
| def htmlstart():
 | |
|     start = """<!DOCTYPE html> 
 | |
|         <!-- This is for Banner --> 
 | |
|         <body> 
 | |
|         <title> WIFI Diag Report </title> <link rel='shortcut icon' href='canvil.ico' type='image/x-icon' /> 
 | |
|         <link rel='stylesheet' href='report.css' /> 
 | |
|         <link rel='stylesheet' href='custom.css' /> 
 | |
|         <style> 
 | |
|          pre {   
 | |
|             overflow: auto; 
 | |
|          } 
 | |
|          img { 
 | |
|             width: 100%; 
 | |
|             max-width: 8in; 
 | |
|          } 
 | |
|         </style> 
 | |
|         </head> 
 | |
|         
 | |
|         <div class='Section report_banner-1000x205' style='background-image:url("report_banner-1000x205.jpg");background-repeat:no-repeat;padding:0;margin:0;min-width:1000px; min-height:205px;width:1000px; height:205px;max-width:1000px; max-height:205px;'>
 | |
|         <img align='right' style='padding:0;margin:5;width:200px;' src='CandelaLogo2-90dpi-200x90-trans.png' border='0' />
 | |
|         <div class='HeaderStyle'>
 | |
|         <h1 class='TitleFontPrint'>WIFI Diag Report</h1><br/><h3 class='TitleFontPrintSub'></h3><br><br/>
 | |
|         <h4 class='TitleFontPrintSub'><br><br></br></br>"""
 | |
|     html.write(start)
 | |
|     html.write(str(datetime.datetime.now()))
 | |
|     html.write("</h4></div></div></body>")
 | |
| 
 | |
| 
 | |
| def downloadBtn():
 | |
|     text =  """<tr><p align="right">
 | |
|             <td><input class="btn" type="submit"  value="Print" name="Submit" id="printbtn" onclick="window.print()" /></td>
 | |
|             </tr></p>"""
 | |
|     html.write(text)
 | |
| 
 | |
| def htmlobj(text):
 | |
|     html.write("<h2> Objecitve </h2>")
 | |
|     html.write("<p>")
 | |
|     html.write(str(text))
 | |
|     html.write("</p>")
 | |
| 
 | |
| def htmlpointview():
 | |
|     pointview = """
 | |
| <!--For Point view -->
 | |
| <meta name="viewport" content="width=device-width, initial-scale=1">\n
 | |
| <style>\n
 | |
| ul, #myUL {\n
 | |
|   list-style-type: none;\n
 | |
| }\n
 | |
| 
 | |
| #myUL {\n
 | |
|   margin: 0;\n
 | |
|   padding: 0;\n
 | |
| }\n
 | |
| 
 | |
| .box {\n
 | |
|   cursor: pointer;\n
 | |
|   -webkit-user-select: none; /* Safari 3.1+ */\n
 | |
|   -moz-user-select: none; /* Firefox 2+ */\n
 | |
|   -ms-user-select: none; /* IE 10+ */\n
 | |
|   user-select: none;\n
 | |
| }\n
 | |
| 
 | |
| .box::before {\n
 | |
|   content: "\\2610";\n
 | |
|   color: black;\n
 | |
|   display: inline-block;\n
 | |
|   margin-right: 6px;\n
 | |
| }\n
 | |
| 
 | |
| .check-box::before {\n
 | |
|   content: "\\2611";\n
 | |
|   color: dodgerblue;\n
 | |
| }\n
 | |
| 
 | |
| .nested {\n
 | |
|   display: none;\n
 | |
| }\n
 | |
| 
 | |
| .active {\n
 | |
|   display: block;\n
 | |
| }\n
 | |
| 
 | |
| * {\n
 | |
|   box-sizing: border-box;\n
 | |
| }\n
 | |
| 
 | |
| .column {\n
 | |
|   float: left;\n
 | |
|   width: 100%;\n
 | |
| 
 | |
| }\n
 | |
| 
 | |
| .row::after {\n
 | |
|   content: "";\n
 | |
|   clear: both;\n
 | |
|   display: table;\n
 | |
| }\n
 | |
| 
 | |
| .borderexample {\n
 | |
|  border-style:solid;\n
 | |
|  border-color: hsl(0, 0%, 73%);\n
 | |
| }\n
 | |
| .btn {\n
 | |
|   background-color: DodgerBlue;\n
 | |
|   border: none;\n
 | |
|   color: white;\n
 | |
|   padding: 12px 30px;\n
 | |
|   cursor: pointer;\n
 | |
|   font-size: 20px;\n
 | |
| }\n
 | |
| 
 | |
| /* Darker background on mouse-over */
 | |
| .btn:hover {\n
 | |
|   background-color: RoyalBlue;\n
 | |
| }\n
 | |
| </style>\n
 | |
| </head>\n
 | |
| """
 | |
|     html.write(str(pointview))
 | |
| 
 | |
| def htmlTableSummary(Summary):
 | |
|     tableSummary = "<body><!-- This is heading and Summary --><h2> About: </h2> \n \
 | |
|     <p>"+str(Summary)+"</p> \n"
 | |
| 
 | |
|     html.write(str(tableSummary))
 | |
| 
 | |
| def myUL():
 | |
|     html.write("<ul id='myUL'> \n")
 | |
| 
 | |
| 
 | |
| def htmlSpanBox(Table):
 | |
|     tablespan = "<li><span class= 'box borderexample'>"+str(Table)+"</span> <ul class='nested'> \n"
 | |
|     html.write(tablespan)
 | |
| 
 | |
| def htmlSpanBox1():
 | |
|     tablespan = "<li><span class='box'> Table </span> <ul class='nested'> \n"
 | |
|     html.write(tablespan)
 | |
| 
 | |
| def htmltable(Heading,data,image1,image2,image3,summary):
 | |
|     # htmlBreak(1)
 | |
|     htmlSpanBox(Heading)
 | |
|     htmlTableSummary(str(summary)+"\n")
 | |
|     # htmlSpanBox1()
 | |
|     html.write("<li><span> ")
 | |
|     html.write(str(data))
 | |
|     html.write("</span></li> ")
 | |
|     htmltableimage(image1,image2,image3)
 | |
| 
 | |
| 
 | |
| def htmltableimage(image1, image2, image3):
 | |
|     if image1 != "0":
 | |
|         imagePre = "<div class='column'>  \
 | |
|                <img style='padding:0;margin:3;width:450px;' src="
 | |
|         html.write(imagePre)
 | |
|         html.write(image1)
 | |
|         imagepost = " border='0' /> \
 | |
|             </div>"
 | |
|         html.write(imagepost)
 | |
| 
 | |
|     if image2 != "0":
 | |
|         imagePre = "<div class='column'> \
 | |
|                <img style='padding:0;margin:3;width:450px;' src="
 | |
|         html.write(imagePre)
 | |
|         html.write(image2)
 | |
|         imagepost = " border='0' /> \
 | |
|             </div>\n"
 | |
|         html.write(imagepost)
 | |
| 
 | |
|     if image3 != "0":
 | |
|         imagePre = "<div class='column'> \
 | |
|                <img style='padding:0;margin:3;width:450px;' src="
 | |
|         html.write(imagePre)
 | |
|         html.write(image2)
 | |
|         imagepost = " border='0' /> \
 | |
|             </div>"
 | |
|         html.write(imagepost)
 | |
| 
 | |
|     html.write("</ul></ul></li><br>")
 | |
| 
 | |
| 
 | |
| def closemyUl():
 | |
|     html.write("</ul>\n")
 | |
| 
 | |
| 
 | |
| def htmlclose():
 | |
|     data = """    
 | |
|         <script>\n
 | |
|         var toggler = document.getElementsByClassName("box");\n
 | |
|         var i;\n
 | |
| 
 | |
|         for (i = 0; i < toggler.length; i++) {\n
 | |
|           toggler[i].addEventListener("click", function() {\n
 | |
|             this.parentElement.querySelector(".nested").classList.toggle("active");\n
 | |
|             this.classList.toggle("check-box");\n
 | |
|           });\n
 | |
|         }\n
 | |
|         </script>
 | |
| 
 | |
|         </body>
 | |
|         """
 | |
|     html.write(data)
 | |
| 
 | |
|     html.write("</html>")
 | |
| 
 | |
| 
 | |
| def htmlBreak(lines):
 | |
|     for i in range(lines):
 | |
|         html.write("<br></br>")
 | |
| 
 | |
| 
 | |
| def htmlSpace(space):
 | |
|     Space = """<style> 
 | |
|         .tab1 { 
 | |
|             tab-size:""" + str(space) + """; 
 | |
|         } 
 | |
|     </style>"""
 | |
|     html.write(Space)
 | |
| 
 | |
| def htmlText(text):
 | |
|     data = "<p>" + str(text) + "<p/>"
 | |
|     html.write(data)
 | |
| 
 | |
| 
 | |
| 
 | |
| #htmlstart()
 | |
| #htmlobjective()
 | |
| #htmlpointview()
 | |
| #htmlsummary()
 | |
| #myUl
 | |
| #htmlspanbox()
 | |
| #htmltable
 | |
| #closemyul()
 | |
| #htmlclose()
 | |
| 
 | 
