On photo.html, add and remove tag lis dynamically.
Instead of requiring a page refresh to see the new tags. They just won't be sorted. Slight bummer, the datalist dropdown pretty much obscures the whole thing anyway.
This commit is contained in:
		
							parent
							
								
									0cdd8c0d71
								
							
						
					
					
						commit
						ad26f09ee0
					
				
					 1 changed files with 49 additions and 2 deletions
				
			
		|  | @ -297,13 +297,60 @@ function add_photo_tag_form() | ||||||
|     { |     { | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|     api.photos.add_tag(PHOTO_ID, tagname, add_remove_photo_tag_callback); |     api.photos.add_tag(PHOTO_ID, tagname, add_photo_tag_callback); | ||||||
|     add_tag_box.value = ""; |     add_tag_box.value = ""; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function remove_photo_tag_form(photo_id, tagname) | function remove_photo_tag_form(photo_id, tagname) | ||||||
| { | { | ||||||
|     api.photos.remove_tag(photo_id, tagname, add_remove_photo_tag_callback); |     api.photos.remove_tag(photo_id, tagname, remove_photo_tag_callback); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function add_photo_tag_callback(response) | ||||||
|  | { | ||||||
|  |     add_remove_photo_tag_callback(response); | ||||||
|  |     if (response.meta.status !== 200) | ||||||
|  |     { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |     const this_tags = document.getElementById("this_tags"); | ||||||
|  |     let tag_objects = this_tags.getElementsByClassName("tag_object"); | ||||||
|  |     for (const tag_object of tag_objects) | ||||||
|  |     { | ||||||
|  |         if (tag_object.innerText === response.data.tagname) | ||||||
|  |         { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     const li = document.createElement("li"); | ||||||
|  |     const tag_object = document.createElement("a"); | ||||||
|  |     tag_object.className = "tag_object" | ||||||
|  |     tag_object.href = "/search?tag_musts=" + response.data.tagname; | ||||||
|  |     tag_object.innerText = response.data.tagname; | ||||||
|  |     const remove_button = document.createElement("button"); | ||||||
|  |     remove_button.className = "remove_tag_button red_button" | ||||||
|  |     remove_button.onclick = () => remove_photo_tag_form(PHOTO_ID, response.data.tagname); | ||||||
|  |     li.appendChild(tag_object); | ||||||
|  |     li.appendChild(remove_button); | ||||||
|  |     this_tags.appendChild(li); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function remove_photo_tag_callback(response) | ||||||
|  | { | ||||||
|  |     add_remove_photo_tag_callback(response); | ||||||
|  |     if (response.meta.status !== 200) | ||||||
|  |     { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |     let tag_objects = document.getElementById("this_tags").getElementsByClassName("tag_object"); | ||||||
|  |     for (const tag_object of tag_objects) | ||||||
|  |     { | ||||||
|  |         if (tag_object.innerText === response.data.tagname) | ||||||
|  |         { | ||||||
|  |             let li = tag_object.parentElement; | ||||||
|  |             li.parentElement.removeChild(li); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function add_remove_photo_tag_callback(response) | function add_remove_photo_tag_callback(response) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue