Fix Gmail Email Search

Bring back the old "Emails" quick search functionality to Gmail, improved to not require hovering -- one click to view all emails you've sent or received from any address

当前为 2019-03-22 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Fix Gmail Email Search
  3. // @namespace https://github.com/gserafini/fix-gmail-email-search-userscript/
  4. // @version 1.0
  5. // @description Bring back the old "Emails" quick search functionality to Gmail, improved to not require hovering -- one click to view all emails you've sent or received from any address
  6. // @author Gabriel Serafini
  7. // @license MIT
  8. // @donate If you like this, PayPal a little love to gserafini@gmail.com
  9. // @screenshot https://github.com/gserafini/fix-gmail-email-search-userscript/raw/master/fix-gmail-email-search-screenshot.png
  10. // @match http://*/*
  11. // @grant none
  12. // @include *gmail.com/*
  13. // @include *mail.google.com/*
  14. // @require http://code.jquery.com/jquery-3.3.1.min.js
  15. // ==/UserScript==
  16.  
  17. (function() {
  18. 'use strict';
  19.  
  20. $(function() {
  21. // Handler for .ready() called.
  22.  
  23. function insert_email_search_icon() {
  24.  
  25. $('.gD').not('.email_search_icon+.gD')
  26. .each(
  27. function (index) {
  28. console.log("Found email for possible searching: " + $(this).attr('email'));
  29. $(this)
  30. .before('<style>.email_search_icon svg {fill: #600;} .email_search_icon svg:hover {fill: #f00;} .email_search_icon {cursor: pointer;} </style><div style="display: inline-flex; justify-content: center; outline: none; position: relative; z-index: 0; padding: 0; margin: 0 8px -4px 0;" class="email_search_icon" title="Click to search for all emails with ' + $(this).attr('email') + '" email="' + $(this).attr('email') + '"><svg focusable="false" height="16px" viewBox="0 0 24 24" width="16px" xmlns="http://www.w3.org/2000/svg"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></div>')
  31. }
  32. );
  33. }
  34.  
  35. // Run every 1 seconds...
  36. // Not quite sure how to only fire when Gmail updates the interface / inserts new divs or if there's a better way to do this
  37. setInterval(insert_email_search_icon, 1000);
  38.  
  39. $('body').on('click', '.email_search_icon', function() {
  40. event.stopPropagation();
  41. $('input[name="q"]').val($(this).attr('email'));
  42. $('button.gb_ff.gb_gf').click();
  43. console.log("Search icon clicked! Searching for " + $(this).attr('email') + "...");
  44. });
  45.  
  46. });
  47.  
  48. })();