Move web related stuff to root
This commit is contained in:
		
							
								
								
									
										113
									
								
								root/index.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								root/index.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,113 @@ | ||||
| <!DOCTYPE html> | ||||
| <!-- Copyright (C) 2021  Alexander Rosenberg | ||||
|    - This file is AGPL v3. See LICENSE file for more information | ||||
|   --> | ||||
| <html> | ||||
|     <head> | ||||
|         <?php | ||||
|         const INITIAL_ALBUMS = 15; | ||||
|         require 'library.php'; | ||||
|         require 'Album.php'; | ||||
|         if ($_SERVER['REQUEST_METHOD'] != 'GET' && $_SERVER['REQUEST_METHOD'] != 'HEAD') { | ||||
|             http_response_code(406); | ||||
|             display_error_message('Request method not supported'); | ||||
|             exit(0); | ||||
|         } | ||||
|         ?> | ||||
|         <title><?php $LIBRARY_INFO['name'] ?></title> | ||||
|         <link rel="stylesheet" href="global.css" /> | ||||
|         <link rel="stylesheet" href="index.css" /> | ||||
|         <link rel="stylesheet" href="Album.css" /> | ||||
|         <link rel="icon" type="image/svg" href="favicon.svg" /> | ||||
|     </head> | ||||
|     <body> | ||||
|         <header> | ||||
|             <div id="library-name"> | ||||
|                 <?php | ||||
|                 echo htmlspecialchars($LIBRARY_INFO['name'], ENT_QUOTES | ENT_HTML5); | ||||
|                 ?> | ||||
|             </div> | ||||
|         </header> | ||||
|         <div id="thumbnail-grid-wrapper"> | ||||
|             <?php | ||||
|             $size = min(count($LIBRARY_INFO['albums']), INITIAL_ALBUMS); | ||||
|             for ($i = 0; $i < $size; ++$i) { | ||||
|                 $album = new Album($LIBRARY_INFO['albums'][$i]); | ||||
|                 if (!$album->is_valid()) { | ||||
|                     display_error_message("Could not open album: '" . $album->get_name() . "'"); | ||||
|                 } else { | ||||
|                     echo $album->get_html(); | ||||
|                 } | ||||
|             } | ||||
|             ?> | ||||
|         </div> | ||||
|         <script> | ||||
|         var last_index = <?php echo $size; ?> - 1; | ||||
|         var thumbnail_wrapper = document.getElementById('thumbnail-grid-wrapper'); | ||||
|         var last_album = thumbnail_wrapper.children[last_index]; | ||||
|         var all_images = <?php echo $size < INITIAL_ALBUMS ? 'true' : 'false'; ?>; | ||||
|  | ||||
|         function get_more_images() { | ||||
|             if (!all_images) { | ||||
|                 var req = new XMLHttpRequest(); | ||||
|                 req.open('GET', 'get-album-entries.php?start=' + (last_index + 1) + '&end=' + (last_index + <?php echo INITIAL_ALBUMS; ?>)); | ||||
|  | ||||
|                 req.onreadystatechange = function() { | ||||
|                     var DONE = 4; | ||||
|                     var OK = 200; | ||||
|                     if (req.readyState === DONE) { | ||||
|                         if (req.status === OK) { | ||||
|                             if (req.responseText.length === 0) { | ||||
|                                 all_images = true; | ||||
|                             } else { | ||||
|                                 observer.unobserve(last_album); | ||||
|                                 last_index += <?php echo INITIAL_ALBUMS; ?>; | ||||
|                                 thumbnail_wrapper.innerHTML += req.responseText; | ||||
|                                 last_album = thumbnail_wrapper.children[last_index]; | ||||
|                                 observer.observe(last_album); | ||||
|                             } | ||||
|                         } else { | ||||
|                             thumbnail_wrapper.innerHTML += '<div style="font-size: 2vw; color: red;">Could not connect to server</div>'; | ||||
|                             all_images = true; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 req.send(null); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         var observer = new IntersectionObserver(function(entries) { | ||||
|             if(entries[0].isIntersecting === true) { | ||||
|                 get_more_images(); | ||||
|             } | ||||
|         }, { threshold: [0] }); | ||||
|  | ||||
|         observer.observe(last_album); | ||||
|  | ||||
|         // Handle resize stuff | ||||
|         function windowResizeHandler() { | ||||
|              albums = document.querySelectorAll('.album-wrapper'); | ||||
|              if (window.innerWidth < 1000) { | ||||
|                  albums.forEach((e) => { | ||||
|                      img = e.firstChild; | ||||
|                      c = e.children[1]; | ||||
|                      t = e.lastChild; | ||||
|                      img.style.width = "85vw"; | ||||
|                      img.style.height = "85vw"; | ||||
|                  }); | ||||
|              } else { | ||||
|                  albums.forEach((e) => { | ||||
|                      img = e.firstChild; | ||||
|                      c = e.children[1]; | ||||
|                      t = e.lastChild; | ||||
|                      img.style.width = "20vw"; | ||||
|                      img.style.height = "20vw"; | ||||
|                  }); | ||||
|              } | ||||
|         } | ||||
|  | ||||
|         window.addEventListener("resize", windowResizeHandler, true); | ||||
|         window.onload = windowResizeHandler; | ||||
|         </script> | ||||
|     </body> | ||||
| </html> | ||||
		Reference in New Issue
	
	Block a user