summaryrefslogtreecommitdiff
path: root/ext/bg/js/search.js
Commit message (Collapse)AuthorAge
* Display updates (#1057)toasted-nutbread2020-11-24
| | | | | | | | | | | | | | | | | | | * Fix history assignment on the search page * Use clear instead of assigned * Simplify definitions assignment * Organize * Fix query not being cleared * Fix media loading * Fix potential issue with options not being assigned * Catch error when frameId is null, causing infinite loop * Fix frontend construction parameters
* Text scanner improvements (#1056)toasted-nutbread2020-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Only ignore nodes on non-web pages * Fix issue where options might not be assigned on nested frontends * Refactor default TextScanner options * Add option to enable search only on click * Simplify restore state assignment * Update options context passing * Fix empty title * Use TextScanner to scan content inside of Display * Rename ignoreNodes to excludeSelector(s) * Fix options update incorrectly triggering a re-search * Fix copy throwing an error on the search page * Replace _onSearchQueryUpdated with _search * Use include selector instead of exclude selector
* Merge float into display (#1053)toasted-nutbread2020-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update audio play delay * Move frame endpoint to Display * Move _invokeOwner and close implementation * Move browser info assignment * Move window message handler setup * Move copy implementation * Move document title function * Move extension unload handler * Move close handler * Move history event handlers * Remove DisplayFloat * Remove unused * Organize * Move event listeners into prepare
* Refactor nested popup/frontend setup (#1052)toasted-nutbread2020-11-22
|
* More display updates (#1050)toasted-nutbread2020-11-21
| | | | | | | | | | | * Use grid for layout * Add data-count attribute * Fix scroll issues during focus * Add index to entries * Simplify audio playback
* Search and display style updates (#1005)toasted-nutbread2020-11-08
| | | | | | | | | | | | | | | | | | | * Use same selectors * Use consistent stylesheet declaration * Fix query parser not being cleared * Set property upon load * Don't focus for Enter key press * Update search page styles * Update indent and nodes * Support dark style * Add missing var
* Fix page type never being detected as search page correctly (#867)toasted-nutbread2020-09-26
|
* ClipboardReader class (#854)toasted-nutbread2020-09-20
| | | | | | | | | | | * Create ClipboardReader class * Use ClipboardReader in Backend * Update ClipboardMonitor to use ClipboardReader * Replace _onApiClipboardImageGet call * Assign clipboard reader browser
* Frontend initialization refactor (#737)toasted-nutbread2020-08-16
| | | | | | | | | | | | | * Fix incorrect popup depth reassignment * Rename variable * Rename property * Use explicit parameter values * Refactor setupNestedPopups * Refactor frontend initialization
* DOM + DocumentUtil merge (#727)toasted-nutbread2020-08-09
| | | | | | | | | * Add DOM functions to DocumentUtil * Use DocumentUtil instead of DOM * Remove DOM * Move document-util.js into mixed
* Search refactoring (#725)toasted-nutbread2020-08-09
| | | | | * Rename node fields to disambiguate * Change order
* Persistent display mode (#714)toasted-nutbread2020-08-09
| | | | | | | | | | | | | * Simplify calls using chrome.tabs.sendMessage and getMessageResponseResult * Rename message handlers * Move onMessage handler into Display * Assign search popup mode which persists across refreshes * Update clipboard monitor on the search page * Remove mode param
* More display refactoring (#697)toasted-nutbread2020-08-01
| | | | | | | | | | | | | | | | | | | * Remove some unnecessary _setQuery calls * Add support for forcing the query parser to be visible or hidden * Move _setEventListenersActive calls * Remove URL for kanji links * Refactor _setContentTermsOrKanji * Move search query text assignment into Display * Move title updates into Display * Move popup close calls * Prevent infinite loop of extension unload events
* Query parser fix (#695)toasted-nutbread2020-07-26
| | | | | | | | | | | * Standardize setContent calls * Rename _queryText to _fullQuery * Move query parser into Display and update float.html * Generalize params * Add "full" parameter to maintain the original full query
* Display scroll refactor (#694)toasted-nutbread2020-07-26
| | | | | | | | | * Cache navigation header * Create _focusEntry * Update scroll restoration * Require explicit entry focus index
* Display history refactor (#691)toasted-nutbread2020-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Create DisplayHistory * Change arguments for _setContentTermsOrKanji * Set up history-driven content updates * Use new history only * Load definitions if missing * Refactor definitions getting * Add support for wildcards * Move definitions setup * Add events * Allow state change even if there is no history state * Update search page to use history * Fix history overwriting * Fix search page not seeing state chang events during prepare * Update state if necessary * Don't reassign query text if the same * Remove DisplayContext * Initialize with real history state * Track URL * Update DisplayHistory to support pseudo-history * Configure history settings on search page * Fix state * Use full URL * Change data format of setContent * Rename details to content * Update event arguments * Fix animation * Remove old state changes * Clear content properly * Remove set/clear content overrides * Fix setting up event listeners for content clear * Make clearContent private * Make focus opt-in * Validate source * Add unloaded type * Generalize content params * Update how extension unload content is assigned * Restore query blurring
* Fix search popup mode (#687)toasted-nutbread2020-07-25
| | | | | * Fix missing mode on search popup * Remove mode update
* Set content refactor (#686)toasted-nutbread2020-07-25
| | | | | | | | | | | | | | | | | | | | | | | * Simplify invoke * Pass isTerms instead of type * Update DisplaySearch.setContent to pass argument array * Simplify argument object structure for setContent * Move focus and disableHistory level * Always include focus and disableHistory options * Change disableHistory to history * Pass source text to setContent * Use consistent argument/object field order * Remove unused previous field * Combine logic for forward/back navigation
* Query parser refactor (#683)toasted-nutbread2020-07-24
| | | | | * Rename files to better match class name * Don't pass setContent to QueryParser; use a generic event instead
* Update DisplaySearch.setContent/clearContent to close popups (#682)toasted-nutbread2020-07-24
|
* Display refactoring (#674)toasted-nutbread2020-07-18
| | | | | | | | | * Move setupNestedPopups to Display * Move auto-play timer and delay into Display * Move some message handler definitions into Display * Move default optionsContext definition
* Reusable backend popup window (#673)toasted-nutbread2020-07-18
| | | | | | | | | | | * Update _updateSearchQuery to return the promise * Update how the clipboard search popup is opened * Create an API function to open the search popup * Skip animation on popup creation * Add API function
* Message handler refactor (#660)toasted-nutbread2020-07-11
| | | | | | | | | | | * Refactor searchQueryUpdate action * Use standard message handler style * Use name "promiseOrResult" for consistency * Use standard message handler convention for Yomichan message handlers * Use common message handler invoker
* Generalized frame connections (#654)toasted-nutbread2020-07-08
| | | | | | | | | * Create FrameClient and FrameEndpoint * Use new Frame* classes for Popup=>frame connection * Update api.sendMessageToFrame and api.broadcastTab to include the sender's frameId * Update FrameClient to store the frame's frameId
* Refactor DisplayFloat=>Frontend message passing (#652)toasted-nutbread2020-07-08
| | | | | | | | | | | * Change getOrCreatePopup arguments to be an object * Add ownerFrameId to popup and DisplayFloat * Refactor DisplayFloat host action invocation * Use CrossFrameAPI instead of window.postMessage * Update popup closing functionality on the search page
* Display class refactoring (#650)toasted-nutbread2020-07-03
| | | | | | | | | | | | | | | | | | | | | | | * Organize by public/private * Don't access super class's private members * Make _autoPlayAudioTimer private * Refactor constructors * Make functions private * Organize by public/private * Organize window message handlers * Make fields private * Refactor DisplaySearch constructor * Make functions private * Organize by public/private
* Display refactor (#643)toasted-nutbread2020-07-03
| | | | | | | | | | | | | | | | | | | * Remove statics * Move orphan detection and error handling to Display * Add clearContent function * Add/use public get/set functions for optionsContext * Add public getOptions * Move interactive assignment * Mark fields as private * Mark functions as private * Change stray getter into a function
* Make PopupFactory.prepare non-async (#625)toasted-nutbread2020-06-25
|
* Frontend initialization refactor (#610)toasted-nutbread2020-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Create member functions for ignoreElements and ignorePoint * Create addFullscreenChangeEventListener utility * Move popup creation management into Frontend * Move getUrl implementation * Remove old setup * Remove try/catch block * Error wrap * Add prepare call to TextScanner * Update depth when popup changes * Refactor how Frontend gets PopupFactory and frameId * Update popup preview to work * Update popup preview frame to use the frontend's popup * Update how nested popups are set up * Error wrap * Update how popups are set up on the search page * Error wrap * Error unwrap * Add missing prepare * Remove use of frontendInitializationData * Catch and log errors
* Handle stack overflow caused by wanakana.toKana (#615)toasted-nutbread2020-06-21
|
* API refactor (#532)toasted-nutbread2020-05-24
| | | | | | | | | | | | | * Convert api.js into a class instance * Use new api.* functions * Fix missing binds * Group functions with progress callbacks together * Change style * Fix API override not working
* Add apiModifySettings (#501)toasted-nutbread2020-05-06
| | | | | | | | | | | | | | | | | * Update getProfile/getProfileFromContext to store this.options in a variable * Add useSchema parameter to options getter functions * Add apiModifySettings * Use apiModifySettings instead of apiOptionsSet * Remove apiOptionsSet * Fix incorrect deleteCount check * Require explicit scope for options * Throw on invalid scope
* Text selection fixes (#511)siikamiika2020-05-07
| | | | | * select matched text in Frontend.findKanji * blur search query input when setting content
* Modifier key profile condition (#487)siikamiika2020-05-03
| | | | | | | | | | | | | | | | | | | | | | | | | * update Frontend options on modifier change * add modifier key profile condition * use select element for modifier condition value * support "is" and "is not" modifier key conditions * use plural * remove dead null check it's never null in that function * pass element on rather than assigning to this * rename event * remove Firefox OS key to Meta detection * hide Meta from dropdown on Firefox * move input type
* Frontend refactor (part 1) (#484)toasted-nutbread2020-04-27
| | | | | | | | | | | | | | | | | | | * Remove _getVisualViewportScale * Use super's mouse event listener definitions * Remove redundant override * Remove getTouchEventListeners override * Rename Display.onSearchClear to onEscape * Change onSearchClear to clearSelection and use an event * Update how text is marked for selection and deselection * Replace onError with yomichan.logError * Update setEnabled to refresh all event listeners
* Error logging refactoring (#454)toasted-nutbread2020-04-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Create new logging methods on yomichan object * Use new yomichan.logError instead of global logError * Remove old logError * Handle unhandledrejection events * Add addEventListener stub * Update log function * Update error conversion to support more types * Add log event * Add API log function * Log errors to the backend * Make error/warning logs update the badge * Clear log error indicator on extension button click * Log correct URL on the background page * Fix incorrect error conversion * Remove unhandledrejection handling Firefox doesn't support it properly. * Remove unused argument type from log function * Improve function name * Change console.warn to yomichan.logWarning * Move log forwarding initialization into main scripts
* Update Popup and DisplayFloat optionsContext from Frontend (#464)siikamiika2020-04-26
| | | | | | | | | | | | | | | | | | | | | | | | | * set optionsContext from Frontend * update Popup+Display options on Frontend change * remove popup setOptions * only update DisplayFloat options from Frontend * fix optionsContext usage * fix preview frame arguments * keep Frontend URL up to date * cache url * fix preview frame * trigger modifyingProfileChange in correct places * remove async from function not using await * refactor optionsContext in Frontend
* Merge pull request #463 from toasted-nutbread/explicit-entry-pointtoasted-nutbread2020-04-23
|\ | | | | Explicit entry points
| * Rename search-frontend.js to search-main.jstoasted-nutbread2020-04-19
| | | | | | | | Also move DisplaySearch creation into the main() function.
* | Use wanakana object directlytoasted-nutbread2020-04-20
|/
* Merge pull request #443 from toasted-nutbread/fix-get-selectiontoasted-nutbread2020-04-12
|\ | | | | Fix getSelection not working in QueryParser
| * Use window.getSelection instead of document.getSelectiontoasted-nutbread2020-04-11
| |
* | Update license author field to broader to explicitly reflect thatAlex Yatskov2020-04-10
|/ | | | | Yomichan is an ongoing community project. It really does take a village, and everyone who contributes code owns a part of it :)
* use dependency injection in QueryParsersiikamiika2020-03-21
| | | | | Also fix an issue with settings update triggering a lookup on unprepared QueryParser.
* apply all options on profile changesiikamiika2020-03-21
|
* Update global declarationstoasted-nutbread2020-03-10
|
* fix searchQueryUpdatesiikamiika2020-03-09
|
* Use explicit dependency injection for ClipboardMonitortoasted-nutbread2020-03-07
|
* Use events for ClipboardMonitortoasted-nutbread2020-03-07
|
* ensure Backend prepare in other placessiikamiika2020-03-02
|