Commit Graph

328 Commits

Author SHA1 Message Date
toasted-nutbread
181ade93d6
Display scroll fixes (#1046)
* Update focus when internal focus is changed

* Update scroll layout
2020-11-20 22:42:49 -05:00
toasted-nutbread
1588f6210c
Display and query parser layout (#1043)
* Update query parser text assignment

* Update how padding is used

* Hide query parser container by default
2020-11-18 20:15:30 -05:00
toasted-nutbread
e9075e24e1
Update progress indicator styles (#1042) 2020-11-18 20:06:02 -05:00
toasted-nutbread
a48ac37815
Use an overridable property to control progress indicator visibility (#1041) 2020-11-17 19:40:19 -05:00
toasted-nutbread
2e3169f68c
Popup navigation style updates (#1035)
* Add close function to Display

* Add new sidebar with navigation and close buttons

* Set up new navigation functionality

* Remove old navigation
2020-11-15 14:12:48 -05:00
toasted-nutbread
c387898902
Display fixes (#1033)
* Fix an entry not always being focused

* Fix typo

* Fix copy action not working on Firefox
2020-11-14 21:47:43 -05:00
toasted-nutbread
4b1c7b1e26
Display layout updates (#1032)
* Fix display scroll not always using the right position

* Update display layout and scroll method

* Fix border size
2020-11-14 18:12:06 -05:00
toasted-nutbread
d0f364bad8
Fix _areSame check not using correct array count property (#1026) 2020-11-13 20:53:41 -05:00
toasted-nutbread
3edc35691b
Display updates (#1024)
* Update display generation to use new format assumptions

* Simplify how debug information is presented
2020-11-13 19:48:22 -05:00
toasted-nutbread
ec021964b7
Compact tags refactor (#1021)
* Update translator to flag redundant tags instead of remove

* Update how compact tags are shown in the popup

* Pass compactTags option to note builder

* Update options templates

* Add options upgrade

* Add options upgrade test
2020-11-12 20:34:11 -05:00
toasted-nutbread
f2ad94e54f
Text scanning options propagation (#1020)
* Update Display.setOptionsContext to update options

* Update how options context is updated in Popup

* Omit optionsContext for some _showPopupContent calls

* Remove extension unload

* Disable modifier keys in frontend's options context

* Update how text scanner passes modifiers to options context

* Update how options context is passed to display

* Update how display uses options context
2020-11-12 20:32:46 -05:00
toasted-nutbread
eb8069a494
Options context updates (#1017)
* Update event order

* Update inputs

* Add type and cause to input info

* Update input info args

* Simplify arguments

* Update argument name

* Change order
2020-11-08 22:55:43 -05:00
toasted-nutbread
8edb478d0a
Update keyboard/mouse modifiers to return an array rather than a set (#1015) 2020-11-08 22:19:54 -05:00
toasted-nutbread
6232e3efc2
Optimize Anki duplicate checks (#1013)
* Move/rename functions

* Prevent overlapping calls to check addable definitions
2020-11-08 16:48:15 -05:00
toasted-nutbread
16321a1f8c
Add duplicate check option (#1012)
* Add anki.checkForDuplicates option

* Use checkForDuplicates for button display

* Add property to card creation
2020-11-08 16:25:07 -05:00
toasted-nutbread
12e6e37785
Query parser generator refactor (#1006)
* Simplify select generation

* Refactor text generation

* Change optional argument

* Remove query-parser-templates.html

* Simplify prepare

* Simplify preview
2020-11-08 12:35:32 -05:00
toasted-nutbread
8cf10d685d
Search and display style updates (#1005)
* 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
2020-11-08 12:34:23 -05:00
toasted-nutbread
be952a1857
Disable the audio button when no sources are enabled (#1003) 2020-11-07 12:03:10 -05:00
toasted-nutbread
54810510fa
Fix primary audio source (#886)
* Add abstraction: _getDefinitionPrimaryExpressionAndReading

* Reuse existing definitions in a sequence

* Revert change to related definition source/rawSource/sourceTerm

* Update _getDefinitionPrimaryExpressionAndReading to return best match
2020-10-04 22:04:44 -04:00
toasted-nutbread
73dd578821
Add middle mouse prevention option (#868)
* Add preventMiddleMouse option to TextScanner

* Add preventMiddleMouse options

* Add options

* Apply preventMiddleMouse options
2020-09-26 19:24:21 -04:00
toasted-nutbread
9c7b9d6660
Fix page type never being detected as search page correctly (#867) 2020-09-26 18:47:58 -04:00
toasted-nutbread
cab5daa22e
Add clipboard-text Anki field (#863)
* Add clipboard-text anki field

* Add markers

* Update clipboard injection
2020-09-26 13:45:48 -04:00
toasted-nutbread
0b51488f1f
Audio system refactor (#858)
* Refactor AudioUriBuilder

* Add downloadAudio function

* Refactor AudioSystem

* Update API usage

* Rename file

* Update scripts

* Add prepare calls
2020-09-26 13:41:26 -04:00
toasted-nutbread
2f4adbab2c
Handlebars sandbox (#612)
* Set up template renderer proxy

* Use proxy

* Remove unused handlebars script tags

* Update manifest
2020-09-18 21:16:39 -04:00
toasted-nutbread
5b49cf4398
Pointer events support (#819)
* Add option pointerEventsEnabled

* Add _pointerEventsEnabled option to TextScanner

* Add additional options

* Mouse pointer events

* Touch pointer events

* Pen pointer events
2020-09-13 11:33:10 -04:00
toasted-nutbread
568775c6dc
Text scanner cause update (#813)
* Rename _searchAtFromMouse to _searchAtFromMouseMove

* Rename cause 'mouse' to 'mouseMove' for clarity
2020-09-11 22:46:41 -04:00
toasted-nutbread
a531618c48
Use Anki classes directly in Display (#804)
* Add _getTemplates function

* Add template renderer to display pages

* Add AnkiNoteBuilder to Display

* Update AnkiTemplatesController to directly use TemplateRenderer

* Remove old APIs
2020-09-10 18:03:46 -04:00
toasted-nutbread
892f7ed3b8
Anki note api functions (#802)
* Assign duplicateScope to a variable

* Add api.addAnkiNote

* Add api.getAnkiNoteInfo, update returned data format
2020-09-10 16:05:17 -04:00
toasted-nutbread
35abd517b9
AudioUriBuilder simplification (#799)
* Rename variables to disambiguate

* Update handler argument convention

* Update getUri argument convention

* Change _getAudioUri argument convention

* Change getDefinitionAudio argument convention

* Add api.getDefinitionAudio definition
2020-09-10 11:57:38 -04:00
toasted-nutbread
0d00f7e1cf
Scanning input generalization (#789)
* Add inputs to options.scanning

* Update CSS for mouse buttons

* Update list counters

* Set up HTML/CSS

* Add input controller

* Use new inputs

* Include mouse buttons

* Update how button inputs are detected

* Add index/empty fields to the input details object

* Update none check for scanning modifier

* Remove old settings

* Remove unused global
2020-09-09 16:59:03 -04:00
toasted-nutbread
e3a7678769
Anki screenshot refactor (#791)
* Use more consistent style for injectScreenshot

* Move screenshot generation into AnkiNoteBuilder/Backend

* Get optionsContext before await
2020-09-09 12:54:59 -04:00
toasted-nutbread
46af4c9da4
Text scanner fixes and refactoring (#788)
* Fix incorrect argument being passed

* Clear causeCurrent

* Change cause string to a more general input object
2020-09-08 19:23:32 -04:00
toasted-nutbread
b28241dbf2
Fix error handling for screenshot captures (#777) 2020-09-06 14:36:43 -04:00
toasted-nutbread
44f38c4dea
Popup window (#773)
* Add option usePopupWindow

* Add PopupWindow class

* Add support for creating PopupWindow
2020-09-05 22:03:35 -04:00
toasted-nutbread
bbfe5f81cb
Fix sessionStorage not being supported when cookies are disabled (#756)
* Fix sessionStorage not being supported when cookies are disabled

* Update comment
2020-08-24 18:26:04 -04:00
toasted-nutbread
773e28aa3c
Fix screenshot popup hide (#753)
* Refactor Popup.setVisibleOverride

* Use event to observe visibility changes

* Add setAllVisibleOverride/clearAllVisibleOverride

* Add setAllVisibleOverride/clearAllVisibleOverride cross frame handlers

* Update how visibility is changed

* Wait for next frame to ensure visibility has been updated
2020-08-23 15:18:41 -04:00
toasted-nutbread
1ab853a4d5
Display owner frame (#751)
* Move ownerFrameId definition to Display

* Rename _invoke to _invokeOwner
2020-08-23 11:15:23 -04:00
toasted-nutbread
9fa0f2a56a
Move findTerms and findKanji functions into TextScanner (#747) 2020-08-22 14:40:44 -04:00
toasted-nutbread
c26c4ae0cb
Frontend initialization refactor (#737)
* Fix incorrect popup depth reassignment

* Rename variable

* Rename property

* Use explicit parameter values

* Refactor setupNestedPopups

* Refactor frontend initialization
2020-08-16 16:16:18 -04:00
toasted-nutbread
2a86d66092
DOM + DocumentUtil merge (#727)
* Add DOM functions to DocumentUtil

* Use DocumentUtil instead of DOM

* Remove DOM

* Move document-util.js into mixed
2020-08-09 21:07:11 -04:00
toasted-nutbread
6da02c6eee
document.js refactor (#719)
* Refactor document.js into a class

* Move public functions first

* Rename private functions

* Rename

* Rename argument

* Use instance of DocumentUtil

* Update tests

* Refactor

* Rename (test-)document.js to (test-)document-util.js
2020-08-09 13:27:21 -04:00
toasted-nutbread
e87cc5c37d
Query parser text scanner options refactor (#717)
* Add _setSelectedParser helper

* Update TextScanner internal options representation

* Update QueryParser internal options representation
2020-08-09 13:19:42 -04:00
toasted-nutbread
8ee717cdf7
Persistent display mode (#714)
* 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
2020-08-09 13:11:41 -04:00
toasted-nutbread
b253cdc92e
Fix extension unload cases (#712)
* Add _invokeSafe function to silently ignore extension unload errors

* Remove "Api" from function names

* Add invokeSafe to Popup

* Don't redundantly set content type to 'unloaded'
2020-08-02 21:51:51 -04:00
toasted-nutbread
a37ca1d378
Fix _setContentTermsOrKanjiUpdateAdderButtons not working (#709)
this._setContentToken was cleared, so comparison exited.
There is not really a good reason to clear this object.
2020-08-02 16:58:15 -04:00
toasted-nutbread
a562a11498
Display try catch refactor (#704)
* Remove try-catch from _termLookup

Already handled by _onTermLookup

* Move try-catch out of _onTermLookup and into _onGlossaryMouseUp
2020-08-01 16:33:21 -04:00
toasted-nutbread
1e839cd230
More display refactoring (#697)
* 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
2020-08-01 16:22:00 -04:00
toasted-nutbread
6e0b25c5d6
Standardize hotkey action naming convention (#696) 2020-07-26 20:25:15 -04:00
toasted-nutbread
313476aa92
Query parser fix (#695)
* 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
2020-07-26 19:29:12 -04:00
toasted-nutbread
0512258c8e
Display scroll refactor (#694)
* Cache navigation header

* Create _focusEntry

* Update scroll restoration

* Require explicit entry focus index
2020-07-26 18:49:38 -04:00
toasted-nutbread
208217198e
Display history refactor (#691)
* 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
2020-07-26 16:51:54 -04:00
toasted-nutbread
4a43b41f79
Set content refactor (#686)
* 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
2020-07-25 09:58:06 -04:00
toasted-nutbread
64ddb4d901
Display fixes and refactoring (#685)
* Fix scroll target override sometimes using undefined value

* Clear event listeners in clearContent()

* Remove unused arguments

* Remove unused disableScroll

* Destructure definitions and context

* Merge _setContentTerms and _setContentKanji

* Move history tracking

* Destructure context

* Rename context to noteContext for clarity

* Destructure before passing args

* Move window focus

* Update scroll defaults
2020-07-24 21:12:13 -04:00
toasted-nutbread
71b97c2019
Display refactoring (#674)
* Move setupNestedPopups to Display

* Move auto-play timer and delay into Display

* Move some message handler definitions into Display

* Move default optionsContext definition
2020-07-18 23:47:02 -04:00
toasted-nutbread
c6c0126394
Content script ready checks (#670)
* Move ready checkout of Display

* Add function to wait until if a tab's content script is ready
2020-07-18 14:18:10 -04:00
toasted-nutbread
dac33e6961
Extension unload indication fix (#662)
* Remove unused function

* Rename field

* Change extensionUnloaded trigger function

* Update how extension unloaded content is shown

* Ignore certain errors caused by extension unload

* Add _showExtensionUnloaded function

* Wrap internals of updateOptions

* Suppress errors caued by extension unload

* Make the frontend trigger the popup's extensionUnloaded event
2020-07-18 14:15:36 -04:00
toasted-nutbread
f76a6ff1e3
Refactor hotkey definitions to be more generic (#655) 2020-07-08 20:02:20 -04:00
toasted-nutbread
8f48a23a45
Display class refactoring (#650)
* 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
2020-07-03 15:58:29 -04:00
toasted-nutbread
a07a8dfff6
Extension unload detection (#647)
* Update how extension unload is detected

* Remove event handlers and use yomichan.isExtensionUnloaded instead

* Update terminology
2020-07-03 12:20:22 -04:00
toasted-nutbread
e36bc8771f
Display refactor (#643)
* 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
2020-07-03 12:02:21 -04:00
toasted-nutbread
5bf805755a
Yomichan object separation (#627)
* Move "yomichan" object setup to a separate file

* Update script imports

* Align message handlers

* Rename Yomichan.prepare to Yomichan.ready

* Add new prepare function

* Improve isExtensionUrl
2020-06-28 11:26:43 -04:00
toasted-nutbread
e23504613f
Use DOMTextScanner (#536)
* Use DOMTextScanner instead of TextSourceRange.seek*

* Move getNodesInRange to dom.js

* Move anyNodeMatchesSelector to dom.js

* Remove unused functions

* Update tests

* Add layoutAwareScan option

* Use layoutAwareScan for source and sentence scanning

* Remove unused IGNORE_TEXT_PATTERN
2020-06-21 16:07:51 -04:00
toasted-nutbread
9e28db6ef7
Safely handle volume values that are out of range (#617) 2020-06-21 15:51:36 -04:00
toasted-nutbread
c61a87b152
API refactor (#532)
* 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
2020-05-24 13:30:40 -04:00
toasted-nutbread
9742d5662b
Use CSS variables for themes (#528)
* Update formatting

* Merge default tag color with category-less tags

* Use CSS variables for colors

* Add dark theme colors

* Move color variables into display.css

* Remove old stylesheets

* Update headings

* Bump minimum Firefox version to support CSS var()

* Revert popular kanji text color
2020-05-10 14:07:25 -04:00
siikamiika
77b744e675
Modifier key profile condition (#487)
* 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
2020-05-03 04:39:24 +03:00
toasted-nutbread
48c7010f4e
Frontend refactor (part 1) (#484)
* 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
2020-04-27 18:10:37 -04:00
siikamiika
ca033a87a0
Update Popup and DisplayFloat optionsContext from Frontend (#464)
* 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
2020-04-26 22:33:50 +03:00
toasted-nutbread
ac603d54a3 Add support for displaying images 2020-04-18 21:32:35 -04:00
toasted-nutbread
320852f2d0 Fix overlapping audio.play calls due to await 2020-04-18 14:23:34 -04:00
toasted-nutbread
fcbfde506a Await and handle errors from audio.play() 2020-04-18 14:23:34 -04:00
toasted-nutbread
92790763d1 Update style 2020-04-18 14:23:34 -04:00
toasted-nutbread
5c2dff345e Fix button title text not updating correctly in merge mode 2020-04-18 14:23:34 -04:00
toasted-nutbread
7eb7c88394 Return index of the source instead of the source value 2020-04-18 14:23:34 -04:00
toasted-nutbread
e1ebfb02f7 Disable cache on the backend and fix a bug with the cache key 2020-04-18 14:23:34 -04:00
toasted-nutbread
7fc3882607 Update the parameters passed to various audio-related functions 2020-04-18 14:23:34 -04:00
toasted-nutbread
a864cf094f
Merge pull request #437 from toasted-nutbread/backend-api-handler-changes
Backend api handler changes
2020-04-11 11:32:52 -04:00
toasted-nutbread
a296c758b9 apiBroadcast => apiBroadcastTab 2020-04-10 20:00:18 -04:00
4e5029f7ec Update license author field to broader to explicitly reflect that
Yomichan is an ongoing community project. It really does take a village,
and everyone who contributes code owns a part of it :)
2020-04-10 11:10:21 -07:00
toasted-nutbread
a2b66dc6cc Rename apiForward to apiBroadcast 2020-04-07 19:51:39 -04:00
toasted-nutbread
29cf8d2f79 Fix not awaiting this._getNoteContext 2020-04-06 18:55:45 -04:00
toasted-nutbread
199b926f23 Add overridable getDocumentTitle 2020-04-06 18:20:04 -04:00
toasted-nutbread
4011a091b6 Add support for {document-title} 2020-04-06 18:20:04 -04:00
toasted-nutbread
059db280bb Add custom context object for note creation 2020-04-06 18:20:04 -04:00
toasted-nutbread
8b07a23de9 Rename context to details 2020-04-06 18:20:04 -04:00
toasted-nutbread
cbc7e2646d Add options 2020-03-28 10:25:57 -04:00
siikamiika
b616bac66e remove targetPopupId 'all'
Make unset targetPopupId mean the same thing instead
2020-03-21 22:13:07 +02:00
siikamiika
962c2a381f apply all options on profile change 2020-03-21 22:13:07 +02:00
toasted-nutbread
64fc0349a1 Update global declarations 2020-03-10 22:40:35 -04:00
toasted-nutbread
aad4ab5ecc Rename audio functions using "url" to use "uri" 2020-03-07 21:57:26 -05:00
toasted-nutbread
6adf2cf63f Rename function 2020-03-07 21:43:51 -05:00
toasted-nutbread
a8eb50d96f Use dependency injection for getAudioUri implementation 2020-03-07 21:43:51 -05:00
toasted-nutbread
e048a1efce Use AudioSystem in Display 2020-03-07 21:42:18 -05:00
siikamiika
967e99b7f6 ensure Backend prepare in other places 2020-03-02 04:51:45 +02:00
toasted-nutbread
46fee07d36 Fix audio buttons not being hidden properly 2020-03-01 14:51:39 -05:00
toasted-nutbread
359eabb26e Move event handler definitions 2020-02-26 19:48:30 -05:00
toasted-nutbread
fa385aafa4 Fix noteUsesScreenshot not checking mode 2020-02-25 22:24:22 -05:00
toasted-nutbread
b391704f3d Use for of 2020-02-25 22:13:06 -05:00
toasted-nutbread
798517cdf1 Use for of 2020-02-25 22:11:58 -05:00
siikamiika
ffad78f7d4 temporarily disable navigation header mouse wheel
Unblock release #355, #376
2020-02-24 08:57:48 +02:00