Styled error screen
This commit is contained in:
		
							parent
							
								
									01d5a97a4f
								
							
						
					
					
						commit
						274d154228
					
				
					 3 changed files with 129 additions and 10 deletions
				
			
		
							
								
								
									
										97
									
								
								packages/backend/src/server/web/boot.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								packages/backend/src/server/web/boot.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | ||||||
|  | * { | ||||||
|  | 	font-family: BIZ UDGothic, Roboto, HelveticaNeue, Arial, sans-serif; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | body, | ||||||
|  | html { | ||||||
|  | 	background-color: #222; | ||||||
|  | 	color: #dfddcc; | ||||||
|  | 	justify-content: center; | ||||||
|  | 	margin: auto; | ||||||
|  | 	width: 80%; | ||||||
|  | 	padding: 10px; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | button { | ||||||
|  | 	border-radius: 999px; | ||||||
|  | 	padding: 0px 12px 0px 12px; | ||||||
|  | 	border: none; | ||||||
|  | 	cursor: pointer; | ||||||
|  | 	margin-bottom: 12px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .button-big { | ||||||
|  | 	background: linear-gradient(90deg, rgb(134, 179, 0), rgb(74, 179, 0)); | ||||||
|  | 	line-height: 50px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .button-big:hover { | ||||||
|  | 	background: rgb(153, 204, 0); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .button-small { | ||||||
|  | 	background: #444; | ||||||
|  | 	line-height: 40px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .button-small:hover { | ||||||
|  | 	background: #555; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .button-label-big { | ||||||
|  | 	color: #222; | ||||||
|  | 	font-weight: bold; | ||||||
|  | 	font-size: 20px; | ||||||
|  | 	padding: 12px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .button-label-small { | ||||||
|  | 	color: rgb(153, 204, 0); | ||||||
|  | 	font-size: 16px; | ||||||
|  | 	padding: 12px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  | 	color: rgb(134, 179, 0); | ||||||
|  | 	text-decoration: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | p, | ||||||
|  | li { | ||||||
|  | 	font-size: 16px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .dont-worry { | ||||||
|  | 	font-size: 18px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-warning { | ||||||
|  | 	color: #dec340; | ||||||
|  | 	font-size: 40px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | h1 { | ||||||
|  | 	font-size: 32px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | code { | ||||||
|  | 	font-family: Fira, FiraCode, monospace; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | details { | ||||||
|  | 	background: #333; | ||||||
|  | 	margin-bottom: 2rem; | ||||||
|  | 	padding: 0.5rem 1rem; | ||||||
|  | 	border-radius: 5px; | ||||||
|  | 	justify-content: center; | ||||||
|  | 	margin: 0px 40rem 0px 40rem; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | summary { | ||||||
|  | 	cursor: pointer; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | summary > * { | ||||||
|  | 	display: inline; | ||||||
|  | } | ||||||
|  | @ -106,14 +106,37 @@ | ||||||
| 	function renderError(code, details) { | 	function renderError(code, details) { | ||||||
| 		let errorsElement = document.getElementById('errors'); | 		let errorsElement = document.getElementById('errors'); | ||||||
| 		if (!errorsElement) { | 		if (!errorsElement) { | ||||||
|  | 			document.getElementsByTagName("head")[0].insertAdjacentHTML( | ||||||
|  | 				"beforeend", | ||||||
|  | 				`<link rel="stylesheet" href="../boot.css" />`); | ||||||
| 			document.documentElement.innerHTML = ` | 			document.documentElement.innerHTML = ` | ||||||
| 			<h1>⚠ An error has occurred. ⚠</h1> | 			<div class="icon-warning"> | ||||||
| 			<p>If the problem persists, please contact the administrator. You may also try the following options:</p> | 				<i class="fas fa-exclamation-triangle"></i> | ||||||
| 			<ul> | 			</div> | ||||||
| 				<li>Start <a href="/cli">the simple client</a></li> | 			<h1>An error has occurred!</h1> | ||||||
| 				<li>Attempt to repair in <a href="/bios">BIOS</a></li> | 			<button class="button-big" onclick="location.reload(true);"> | ||||||
| 				<li><a href="/flush">Flush preferences and cache</a></li> | 				<span class="button-label-big">Refresh</span> | ||||||
| 			</ul> | 			</button> | ||||||
|  |       <p class="dont-worry">Don't worry, it's (probably) not your fault.</p> | ||||||
|  | 			<p>If the problem persists after refreshing, please contact your instance's administrator.<br>You may also try the following options:</p> | ||||||
|  |       <a href="/flush"> | ||||||
|  |       <button class="button-small"> | ||||||
|  |         <span class="button-label-small">Flush preferences and cache</span> | ||||||
|  |       </button> | ||||||
|  |       </a> | ||||||
|  | 			<br> | ||||||
|  |       <a href="/cli"> | ||||||
|  |         <button class="button-small"> | ||||||
|  |           <span class="button-label-small">Start the simple client</span> | ||||||
|  |         </button> | ||||||
|  |       </a> | ||||||
|  | 			<br> | ||||||
|  |       <a href="/bios"> | ||||||
|  |         <button class="button-small"> | ||||||
|  |           <span class="button-label-small">Attempt to repair in BIOS</span> | ||||||
|  |         </button> | ||||||
|  |       </a> | ||||||
|  | 			<br> | ||||||
| 			<hr> | 			<hr> | ||||||
| 			<div id="errors"></div> | 			<div id="errors"></div> | ||||||
| 			`;
 | 			`;
 | ||||||
|  | @ -122,8 +145,7 @@ | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		const detailsElement = document.createElement('details'); | 		const detailsElement = document.createElement('details'); | ||||||
| 		detailsElement.innerHTML = `<summary><code>ERROR CODE: ${code}</code></summary>${JSON.stringify(details)}`; | 		detailsElement.innerHTML = `<br><summary><code>ERROR CODE: ${code}</code></summary>${JSON.stringify(details)}`; | ||||||
| 
 |  | ||||||
| 		errorsElement.appendChild(detailsElement); | 		errorsElement.appendChild(detailsElement); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -53,7 +53,7 @@ html | ||||||
| 		block meta | 		block meta | ||||||
| 
 | 
 | ||||||
| 		block og | 		block og | ||||||
| 			meta(property='og:title'       content= title || 'Misskey')  | 			meta(property='og:title'       content= title || 'Misskey') | ||||||
| 			meta(property='og:description' content= desc || '✨🌎✨ A interplanetary communication platform ✨🚀✨')  | 			meta(property='og:description' content= desc || '✨🌎✨ A interplanetary communication platform ✨🚀✨')  | ||||||
| 			meta(property='og:image'       content= img) | 			meta(property='og:image'       content= img) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue