Tags on this page: add separate buttons for must, may, forbid.
This commit is contained in:
		
							parent
							
								
									491e58ecdd
								
							
						
					
					
						commit
						0ef3c7d6bf
					
				
					 2 changed files with 58 additions and 29 deletions
				
			
		|  | @ -101,7 +101,6 @@ Here is a brief overview of the project to help you learn your way around: | ||||||
| ### To do list | ### To do list | ||||||
| - Make the wording between "new", "create", "add"; and "remove", "delete" more consistent. | - Make the wording between "new", "create", "add"; and "remove", "delete" more consistent. | ||||||
| - User account system, permission levels, private pages. | - User account system, permission levels, private pages. | ||||||
| - Improve the "tags on this page" list. Maybe add separate buttons for must/may/forbid on each. |  | ||||||
| - Some way for the database to re-identify a file that was moved / renamed (lost & found). Maybe file hash of the first few mb is good enough. | - Some way for the database to re-identify a file that was moved / renamed (lost & found). Maybe file hash of the first few mb is good enough. | ||||||
| - Debate whether the `UserMixin.login` method should accept usernames or I should standardize the usage of IDs only internally. | - Debate whether the `UserMixin.login` method should accept usernames or I should standardize the usage of IDs only internally. | ||||||
| - Ability to access user photos by user's ID, not just username. | - Ability to access user photos by user's ID, not just username. | ||||||
|  |  | ||||||
|  | @ -71,6 +71,12 @@ | ||||||
| 
 | 
 | ||||||
|     word-wrap: break-word; |     word-wrap: break-word; | ||||||
| } | } | ||||||
|  | #tags_on_this_page_list | ||||||
|  | { | ||||||
|  |     list-style-type: none; | ||||||
|  |     padding: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #right | #right | ||||||
| { | { | ||||||
|     grid-area: right; |     grid-area: right; | ||||||
|  | @ -295,15 +301,37 @@ | ||||||
|             <button type="submit" id="search_go_button" class="green_button" value="">Search</button> |             <button type="submit" id="search_go_button" class="green_button" value="">Search</button> | ||||||
|         </form> |         </form> | ||||||
|         {% if total_tags %} |         {% if total_tags %} | ||||||
|         <span>Tags on this page (click to join query):</span> |         <h4>Tags on this page:</h4> | ||||||
|         <ul> |         <ul id="tags_on_this_page_list"> | ||||||
|             {% for tag in total_tags %} |             {% for tag in total_tags %} | ||||||
|             <li>{{tag_object.tag_object( |             <li> | ||||||
|                 tag, |                 {{tag_object.tag_object( | ||||||
|                 extra_classes="tags_on_this_page", |                     tag, | ||||||
|                 link='void', |                     link=None, | ||||||
|                 with_alt_description=True, |                     onclick="tags_on_this_page_add_must(event, '" + tag.name + "');", | ||||||
|             )}}</li> |                     innertext="(+)", | ||||||
|  |                 )}} | ||||||
|  | 
 | ||||||
|  |                 {{tag_object.tag_object( | ||||||
|  |                     tag, | ||||||
|  |                     link=None, | ||||||
|  |                     onclick="tags_on_this_page_add_may(event, '" + tag.name + "');", | ||||||
|  |                     innertext="(~)", | ||||||
|  |                 )}} | ||||||
|  | 
 | ||||||
|  |                 {{tag_object.tag_object( | ||||||
|  |                     tag, | ||||||
|  |                     link=None, | ||||||
|  |                     onclick="tags_on_this_page_add_forbid(event, '" + tag.name + "');", | ||||||
|  |                     innertext="(x)", | ||||||
|  |                 )}} | ||||||
|  | 
 | ||||||
|  |                 {{tag_object.tag_object( | ||||||
|  |                     tag, | ||||||
|  |                     link="info", | ||||||
|  |                     with_alt_description=True, | ||||||
|  |                 )}} | ||||||
|  |             </li> | ||||||
|             {% endfor %} |             {% endfor %} | ||||||
|         </ul> |         </ul> | ||||||
|         {% endif %} |         {% endif %} | ||||||
|  | @ -558,14 +586,8 @@ function submit_search() | ||||||
|     window.location.href = url; |     window.location.href = url; | ||||||
|     return false; |     return false; | ||||||
| } | } | ||||||
| function tags_on_this_page_hook() | function tags_on_this_page_add_must(event, tagname) | ||||||
| { | { | ||||||
|     /* |  | ||||||
|     This is hooked onto the tag objects listed under "Found on this page". |  | ||||||
|     Clicking them will add it to your current search query under Musts |  | ||||||
|     */ |  | ||||||
|     var tagname = this.innerHTML.split(/\./); |  | ||||||
|     tagname = tagname[tagname.length-1]; |  | ||||||
|     add_searchtag( |     add_searchtag( | ||||||
|         input_musts, |         input_musts, | ||||||
|         tagname, |         tagname, | ||||||
|  | @ -574,6 +596,26 @@ function tags_on_this_page_hook() | ||||||
|     ); |     ); | ||||||
|     return false; |     return false; | ||||||
| } | } | ||||||
|  | function tags_on_this_page_add_may(event, tagname) | ||||||
|  | { | ||||||
|  |     add_searchtag( | ||||||
|  |         input_mays, | ||||||
|  |         tagname, | ||||||
|  |         inputted_mays, | ||||||
|  |         "search_builder_mays_inputted" | ||||||
|  |     ); | ||||||
|  |     return false; | ||||||
|  | } | ||||||
|  | function tags_on_this_page_add_forbid(event, tagname) | ||||||
|  | { | ||||||
|  |     add_searchtag( | ||||||
|  |         input_forbids, | ||||||
|  |         tagname, | ||||||
|  |         inputted_forbids, | ||||||
|  |         "search_builder_forbids_inputted" | ||||||
|  |     ); | ||||||
|  |     return false; | ||||||
|  | } | ||||||
| function tag_input_hook(box, inputted_list, li_class) | function tag_input_hook(box, inputted_list, li_class) | ||||||
| { | { | ||||||
|     /* |     /* | ||||||
|  | @ -616,18 +658,6 @@ var inputted_forbids = []; | ||||||
|     {% endif %} |     {% endif %} | ||||||
| {% endfor %} | {% endfor %} | ||||||
| 
 | 
 | ||||||
| /* Assign the click handler to "Tags on this page" results. */ |  | ||||||
| var found_on_page = document.getElementsByClassName("tags_on_this_page"); |  | ||||||
| for (var index = 0; index < found_on_page.length; index += 1) |  | ||||||
| { |  | ||||||
|     var tag_object = found_on_page[index]; |  | ||||||
|     if (tag_object.tagName != "A") |  | ||||||
|     {continue} |  | ||||||
| 
 |  | ||||||
|     tag_object.onclick = tags_on_this_page_hook; |  | ||||||
|      |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| input_musts.addEventListener("keyup", function(){tag_input_hook(this, inputted_musts, "search_builder_musts_inputted")}); | input_musts.addEventListener("keyup", function(){tag_input_hook(this, inputted_musts, "search_builder_musts_inputted")}); | ||||||
| input_mays.addEventListener("keyup", function(){tag_input_hook(this, inputted_mays, "search_builder_mays_inputted")}); | input_mays.addEventListener("keyup", function(){tag_input_hook(this, inputted_mays, "search_builder_mays_inputted")}); | ||||||
| input_forbids.addEventListener("keyup", function(){tag_input_hook(this, inputted_forbids, "search_builder_forbids_inputted")}); | input_forbids.addEventListener("keyup", function(){tag_input_hook(this, inputted_forbids, "search_builder_forbids_inputted")}); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue