Improve Photo Card CSS: Filename hover and metadata font
This commit is contained in:
		
							parent
							
								
									fcc671a617
								
							
						
					
					
						commit
						c6615284e0
					
				
					 5 changed files with 48 additions and 19 deletions
				
			
		|  | @ -4,6 +4,7 @@ Etiquette | |||
| This is the readme file. | ||||
| 
 | ||||
| ### To do list | ||||
| - Make the wording between "new", "create", "add" and "remove", "delete" more consistent. | ||||
| - At the moment I don't like the way that warnings and exceptions are so far apart, and need to be updated individually. Consider moving the warning strings to be class properties of the matching exceptions. | ||||
| - User account system, permission levels, private pages. | ||||
| - Generalize the filename expression filter so it can work with any strings. | ||||
|  |  | |||
|  | @ -110,7 +110,16 @@ WARNING_ORDERBY_BADDIRECTION = 'You can\'t order "{column}" by "{direction}". De | |||
| EXPRESSION_OPERATORS = {'(', ')', 'OR', 'AND', 'NOT'} | ||||
| ADDITIONAL_MIMETYPES = { | ||||
|     'srt': 'text', | ||||
| 
 | ||||
|     'mkv': 'video', | ||||
| 
 | ||||
|     'm4a': 'audio', | ||||
| 
 | ||||
|     '7z': 'archive', | ||||
|     'gz': 'archive', | ||||
|     'rar': 'archive', | ||||
|     'tar': 'archive', | ||||
|     'zip': 'archive', | ||||
| } | ||||
| 
 | ||||
| DEFAULT_DATADIR = '.\\_etiquette' | ||||
|  |  | |||
|  | @ -112,7 +112,7 @@ def P_user(username): | |||
|     except exceptions.NoSuchUser as e: | ||||
|         return 'That user doesnt exist: %s' % e | ||||
| 
 | ||||
| def send_file(filepath): | ||||
| def send_file(filepath, override_mimetype=None): | ||||
|     ''' | ||||
|     Range-enabled file sending. | ||||
|     ''' | ||||
|  | @ -122,6 +122,9 @@ def send_file(filepath): | |||
|         flask.abort(404) | ||||
| 
 | ||||
|     outgoing_headers = {} | ||||
|     if override_mimetype is not None: | ||||
|         mimetype = override_mimetype | ||||
|     else: | ||||
|         mimetype = mimetypes.guess_type(filepath)[0] | ||||
|     if mimetype is not None: | ||||
|         if 'text/' in mimetype: | ||||
|  | @ -385,7 +388,7 @@ def get_file(photoid): | |||
|         response.headers['Content-Disposition'] = 'attachment; filename*=UTF-8\'\'%s' % download_as | ||||
|         return response | ||||
|     else: | ||||
|         return send_file(photo.real_filepath) | ||||
|         return send_file(photo.real_filepath, override_mimetype=photo.mimetype) | ||||
| 
 | ||||
| 
 | ||||
| def get_photo_core(photoid): | ||||
|  |  | |||
|  | @ -124,7 +124,7 @@ li | |||
|     align-items: center; | ||||
| 
 | ||||
|     width: 100%; | ||||
|     height: 150px; | ||||
|     height: 100%; | ||||
| } | ||||
| .photo_card_grid_thumb img | ||||
| { | ||||
|  | @ -136,27 +136,46 @@ li | |||
| { | ||||
|     display: flex; | ||||
|     flex: 1; | ||||
|     justify-content: space-between; | ||||
|     flex-direction: column; | ||||
|     font-size: 0.8em; | ||||
| } | ||||
| .photo_card_grid_file_metadata | ||||
| { | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|     font-size: 12.8px; | ||||
|     background-color: inherit; | ||||
| 
 | ||||
|     /* | ||||
|     The width of photo cards should be based on the aspect ratio of the | ||||
|     thumbnail image. Previously, I had problems where the card would be wider | ||||
|     than necessary because the file had a long name. | ||||
|     These min-width:100% + width:0 prevent the info div from controlling | ||||
|     card size, prioritizing the thumbnail. | ||||
|     */ | ||||
|     min-width: 100%; | ||||
|     width: 0; | ||||
| } | ||||
| .photo_card_grid_filename | ||||
| { | ||||
|     /*position: absolute;*/ | ||||
|     background-color: inherit; | ||||
|     max-height: 30px; | ||||
|     overflow: hidden; | ||||
|     align-self: flex-start; | ||||
|     word-break:break-word; | ||||
|     z-index: 1; | ||||
| } | ||||
| .photo_card_grid_filename a | ||||
| { | ||||
|     background-color: inherit; | ||||
| } | ||||
| .photo_card_grid_filename:hover | ||||
| { | ||||
|     overflow: visible; | ||||
| } | ||||
| .photo_card_grid_file_metadata | ||||
| { | ||||
|     font-family: monospace; | ||||
|     font-size: 12px; | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|     z-index: 0; | ||||
| } | ||||
| .photo_card_grid_tags | ||||
| { | ||||
|     align-self: flex-start; | ||||
|  |  | |||
|  | @ -1,15 +1,10 @@ | |||
| {% set thumbnails = | ||||
|     { | ||||
|         "audio": "audio", | ||||
|         "archive": "archive", | ||||
|         "txt": "txt", | ||||
|         "svg": "svg", | ||||
|         "video": "video", | ||||
| 
 | ||||
|         "7z": "archive", | ||||
|         "gz": "archive", | ||||
|         "rar": "archive", | ||||
|         "tar": "archive", | ||||
|         "zip": "archive", | ||||
|     } | ||||
| %} | ||||
| {% macro create_photo_card(photo, view="grid") %} | ||||
|  | @ -39,7 +34,9 @@ | |||
|         </a> | ||||
|     </div> | ||||
|     <div class="photo_card_grid_info"> | ||||
|         <a target="_blank" class="photo_card_grid_filename" href="/photo/{{photo.id}}">{{photo.basename}}</a> | ||||
|         <div class="photo_card_grid_filename"> | ||||
|             <a target="_blank" href="/photo/{{photo.id}}">{{photo.basename}}</a> | ||||
|         </div> | ||||
|         <div class="photo_card_grid_file_metadata"> | ||||
|             <div class="photo_card_grid_tags"> | ||||
|                 {% set tags = photo.tags() %} | ||||
|  | @ -53,7 +50,7 @@ | |||
|             </div> | ||||
|             <span> | ||||
|             {% if photo.width %} | ||||
|                 {{photo.width}}x{{photo.height}}, | ||||
|                 {{photo.width}}×{{photo.height}}, | ||||
|             {% endif %} | ||||
|             {% if photo.duration %} | ||||
|                 {{photo.duration_string()}}, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue