MAJOR: Updates for Authenticated Web UI and CLI #30
							
								
								
									
										60
									
								
								lib/admin/documentation/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								lib/admin/documentation/index.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>Telebit Documentation</title> | ||||
| </head> | ||||
| <body> | ||||
|   <div class="v-app"> | ||||
|     <h1>Telebit (Remote) Documentation</h1> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>GET /api/config</h2> | ||||
|       <pre><code>{{ config }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>GET /api/status</h2> | ||||
|       <pre><code>{{ status }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/init</h2> | ||||
|       <form v-on:submit.stop.prevent="initialize"> | ||||
| 
 | ||||
|         <label for="-email">Email:</label> | ||||
|         <input id="-email" v-model="init.email" type="text" placeholder="john@example.com"> | ||||
|         <br> | ||||
| 
 | ||||
|         <label for="-teletos"><input id="-teletos" v-model="init.teletos" type="checkbox"> | ||||
|           Accept Telebit Terms of Service</label> | ||||
|         <br> | ||||
| 
 | ||||
|         <label for="-letos"><input id="-letos" v-model="init.letos" type="checkbox"> | ||||
|           Accept Let's Encrypt Terms of Service</label> | ||||
|         <br> | ||||
| 
 | ||||
|       </form> | ||||
|       <pre><code>{{ init }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/http</h2> | ||||
|       <pre><code>{{ http }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/tcp</h2> | ||||
|       <pre><code>{{ tcp }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/ssh</h2> | ||||
|       <pre><code>{{ ssh }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|   </div> | ||||
| 
 | ||||
|   <script src="/js/vue.js"></script> | ||||
|   <script src="/js/app.js"></script> | ||||
| </body> | ||||
| </html> | ||||
| @ -1,60 +1,85 @@ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head> | ||||
|   <title>Telebit Admin</title> | ||||
|   <title>Telebit Setup</title> | ||||
| </head> | ||||
| <body> | ||||
|   <div class="v-app"> | ||||
|     <h1>Telebit Admin</h1> | ||||
|     <h1>Telebit (Remote) Setup</h1> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>GET /api/config</h2> | ||||
|       <pre><code>{{ config }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>GET /api/status</h2> | ||||
|       <pre><code>{{ status }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/init</h2> | ||||
|     <section v-if="views.section.create"> | ||||
|       <h2>Create Account</h2> | ||||
|       <form v-on:submit.stop.prevent="initialize"> | ||||
| 
 | ||||
|         <label for="-email">Email:</label> | ||||
|         <input id="-email" v-model="init.email" type="text" placeholder="john@example.com"> | ||||
|         <input id="-email" v-model="init.email" type="text" placeholder="john@example.com" required> | ||||
|         <br> | ||||
| 
 | ||||
|         <label for="-teletos"><input id="-teletos" v-model="init.teletos" type="checkbox"> | ||||
|         <label for="-teletos"><input id="-teletos" v-model="init.teletos" type="checkbox" required> | ||||
|           Accept Telebit Terms of Service</label> | ||||
|         <br> | ||||
| 
 | ||||
|         <label for="-letos"><input id="-letos" v-model="init.letos" type="checkbox"> | ||||
|         <label for="-letos"><input id="-letos" v-model="init.letos" type="checkbox" required> | ||||
|           Accept Let's Encrypt Terms of Service</label> | ||||
|         <br> | ||||
| 
 | ||||
|         <label for="-notifications">Notification Preferences</label> | ||||
|         <select id="-notifications" v-model="init.notifications"> | ||||
|           <option value="newsletter">Occassional Newsletter</option> | ||||
|           <option value="important" default><strong>Important Messages Only</strong></option> | ||||
|           <option value="required">Required Only</option> | ||||
|         </select> | ||||
| 
 | ||||
|         <small> | ||||
|         <p v-if="'newsletter' == init.notifications"> | ||||
|         You'll receive a friendly note now and then in addition to the important updates. | ||||
|         </p> | ||||
|         <p v-if="'important' == init.notifications"> | ||||
|         You'll only receive updates that we believe will be of the most value to you, and the required updates. | ||||
|         </p> | ||||
|         <p v-if="'required' == init.notifications"> | ||||
|         You'll only receive security updates, transactional and account-related messages, and legal notices. | ||||
|         </p> | ||||
|         </small> | ||||
| 
 | ||||
|         <label for="-relay">[Advanced] Relay:</label> | ||||
|         <input id="-relay" v-model="init.relay" type="text" placeholder="telebit.cloud"> | ||||
|         <br> | ||||
|         <button type="button" v-on:click="defaultRelay">Use Default</button> | ||||
|         <button type="button" v-on:click="betaRelay">Use Beta</button> | ||||
|         <br> | ||||
| 
 | ||||
|         <button type="submit">Accept & Continue</button> | ||||
| 
 | ||||
|       </form> | ||||
|       <pre><code>{{ init }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/http</h2> | ||||
|       <pre><code>{{ http }}</code></pre> | ||||
|     </section> | ||||
|     <section v-if="views.section.advanced"> | ||||
|       <h2>Advanced Setup</h2> | ||||
|       <form v-on:submit.stop.prevent="initialize"> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/tcp</h2> | ||||
|       <pre><code>{{ tcp }}</code></pre> | ||||
|     </section> | ||||
|         <label for="-secret">Relay Secret:</label> | ||||
|         <input id="-secret" v-model="init.secret" type="text" placeholder="ex: xxxxxxxxxxxx"> | ||||
|         <br> | ||||
| 
 | ||||
|     <section> | ||||
|       <h2>POST /api/ssh</h2> | ||||
|       <pre><code>{{ ssh }}</code></pre> | ||||
|         <label for="-telemetry"><input id="-telemetry" v-model="init.telemetry" type="checkbox"> | ||||
|           Contribute to Telebit by sharing telemetry</label> | ||||
|         <br> | ||||
| 
 | ||||
|         <label for="-relay">[Advanced] Relay:</label> | ||||
|         <input id="-relay" v-model="init.relay" type="text" placeholder="telebit.cloud"> | ||||
|         <br> | ||||
| 
 | ||||
|         <button type="submit">Accept & Continue</button> | ||||
| 
 | ||||
|       </form> | ||||
|       <pre><code>{{ init }}</code></pre> | ||||
|     </section> | ||||
| 
 | ||||
|   </div> | ||||
| 
 | ||||
|   <script src="js/vue.js"></script> | ||||
|   <script src="js/app.js"></script> | ||||
|   <script src="/js/vue.js"></script> | ||||
|   <script src="/js/app.js"></script> | ||||
| </body> | ||||
| </html> | ||||
|  | ||||
| @ -23,17 +23,42 @@ api.status = function apiStatus() { | ||||
|   }); | ||||
| }; | ||||
| 
 | ||||
| // TODO test for internet connectivity (and telebit connectivity)
 | ||||
| var DEFAULT_RELAY = 'telebit.cloud'; | ||||
| var BETA_RELAY = 'telebit.ppl.family'; | ||||
| var appData = { | ||||
|   config: null | ||||
| , status: null | ||||
| , init: {} | ||||
| , init: { | ||||
|     teletos: true | ||||
|   , letos: true | ||||
|   , notifications: "important" | ||||
|   , relay: DEFAULT_RELAY | ||||
|   } | ||||
| , http: null | ||||
| , tcp: null | ||||
| , ssh: null | ||||
| , views: { | ||||
|     section: { | ||||
|       create: true | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| var appMethods = { | ||||
|   initialize: function () { | ||||
|     console.log("call initialize"); | ||||
|     if (!appData.init.relay) { | ||||
|       appData.init.relay = DEFAULT_RELAY; | ||||
|     } | ||||
|     if (DEFAULT_RELAY !== appData.init.relay) { | ||||
|       window.alert("TODO: Custom Relay Not Implemented Yet"); | ||||
|     } | ||||
|   } | ||||
| , defaultRelay: function () { | ||||
|     appData.init.relay = DEFAULT_RELAY; | ||||
|   } | ||||
| , betaRelay: function () { | ||||
|     appData.init.relay = BETA_RELAY; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user