mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-10-31 19:00:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <h2>System Status Checks</h2>
 | |
| 
 | |
| <style>
 | |
| #system-checks .heading td {
 | |
|   font-weight: bold;
 | |
|   font-size: 120%;
 | |
|   padding-top: 1.5em;
 | |
| }
 | |
| #system-checks .heading.first td {
 | |
|   border-top: none;
 | |
|   padding-top: 0;
 | |
| }
 | |
| #system-checks .status-error td {
 | |
|   color: #733;
 | |
| }
 | |
| #system-checks .status-warning td {
 | |
|   color: #770;
 | |
| }
 | |
| #system-checks .status-ok td {
 | |
|   color: #040;
 | |
| }
 | |
| #system-checks div.extra {
 | |
|   display: none;
 | |
|   margin-top: 1em;
 | |
|   max-width: 50em;
 | |
|   word-wrap: break-word;
 | |
| }
 | |
| #system-checks a.showhide {
 | |
|   display: none;
 | |
|   font-size: 85%;
 | |
| }
 | |
| #system-checks .pre {
 | |
|   margin: 1em;
 | |
|   font-family: monospace;
 | |
|   white-space: pre-wrap;
 | |
| }
 | |
| 
 | |
| #system-privacy-setting {
 | |
|   float: right;
 | |
|   max-width: 20em;
 | |
|   margin-bottom: 1em;
 | |
| }
 | |
| </style>
 | |
| 
 | |
| <div id="system-privacy-setting" style="display: none">
 | |
| 	<div><a onclick="return enable_privacy(!current_privacy_setting)" href="#"><span>Enable/Disable</span> New-Version Check</a></div>
 | |
| 	<p style="line-height: 125%"><small>(When enabled, status checks phone-home to check for a new release of Mail-in-a-Box.)</small></p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <table id="system-checks" class="table" style="max-width: 60em">
 | |
|   <thead>
 | |
|   </thead>
 | |
|   <tbody>
 | |
|   </tbody>
 | |
| </table>
 | |
| 
 | |
| <script>
 | |
| function show_system_status() {
 | |
|   $('#system-checks tbody').html("<tr><td colspan='2' class='text-muted'>Loading...</td></tr>")
 | |
| 
 | |
|   api(
 | |
|     "/system/privacy",
 | |
|     "GET",
 | |
|     { },
 | |
|     function(r) {
 | |
|       current_privacy_setting = r;
 | |
|       $('#system-privacy-setting').show();
 | |
|       $('#system-privacy-setting a span').text(r ? "Enable" : "Disable");
 | |
|       $('#system-privacy-setting p').toggle(r);
 | |
|     });
 | |
| 
 | |
|   api(
 | |
|     "/system/status",
 | |
|     "POST",
 | |
|     { },
 | |
|     function(r) {
 | |
|       $('#system-checks tbody').html("");
 | |
|       for (var i = 0; i < r.length; i++) {
 | |
|         var n = $("<tr><td class='status'/><td class='message'><p style='margin: 0'/><div class='extra'/><a class='showhide' href='#'/></tr>");
 | |
|         if (i == 0) n.addClass('first')
 | |
|         if (r[i].type == "heading")
 | |
|                 n.addClass(r[i].type)
 | |
|         else
 | |
|                 n.addClass("status-" + r[i].type)
 | |
|         if (r[i].type == "ok") n.find('td.status').text("✓")
 | |
|         if (r[i].type == "error") n.find('td.status').text("✖")
 | |
|         if (r[i].type == "warning") n.find('td.status').text("?")
 | |
|         n.find('td.message p').text(r[i].text)
 | |
|         $('#system-checks tbody').append(n);
 | |
| 
 | |
|         if (r[i].extra.length > 0) {
 | |
|           n.find('a.showhide').show().text("show more").click(function() {
 | |
|             $(this).hide();
 | |
|             $(this).parent().find('.extra').fadeIn();
 | |
|             return false;
 | |
|           });
 | |
|         }
 | |
| 
 | |
|         for (var j = 0; j < r[i].extra.length; j++) {
 | |
| 
 | |
|           var m = $("<div/>").text(r[i].extra[j].text)
 | |
|           if (r[i].extra[j].monospace)
 | |
|             m.addClass("pre");
 | |
|           n.find('> td.message > div').append(m);
 | |
|         }
 | |
|       }
 | |
|     })
 | |
| 
 | |
| }
 | |
| 
 | |
| var current_privacy_setting = null;
 | |
| function enable_privacy(status) {
 | |
|   api(
 | |
|     "/system/privacy",
 | |
|     "POST",
 | |
|     {
 | |
|       value: (status ? "private" : "off")
 | |
|     },
 | |
|     function(res) {
 | |
|       show_system_status();
 | |
|     });
 | |
|   return false; // disable link
 | |
| }
 | |
| </script>
 |