toasted-nutbread
92c083ee9f
Sort deck and model names in Anki card settings ( #956 )
2020-10-25 19:04:59 -04:00
toasted-nutbread
defd7402cf
Anki controller refactor ( #954 )
...
* Simplify data transform for anki.enable setting
* Refactor AnkiController
* Implement marker link clicking
* Request permissions for clipboard
2020-10-25 13:34:42 -04:00
toasted-nutbread
9e9bd0dcf6
Profile controller refactor ( #953 )
...
* Udpate selectors
* Optional remove button
* Add menu
* Refactor ProfileController
* Fix selector
2020-10-24 16:01:13 -04:00
toasted-nutbread
4188adae28
Rename index to profileIndex for clarity ( #952 )
2020-10-23 21:37:22 -04:00
toasted-nutbread
fcf63d71f5
Profile controller refactor ( #950 )
...
* Add additional fields for consistency
* Fix copy confirm not working correctly
* Update IDs
2020-10-20 22:15:11 -04:00
toasted-nutbread
9bda0a9eb4
Popup preview fixes ( #948 )
...
* Select just the text node and not its container
* Make background color transparent by default
2020-10-20 20:53:18 -04:00
toasted-nutbread
ecbac2c5ea
Popup preview improvements ( #947 )
...
* Move CSS
* Update indent
* Refactor HTML/CSS
* Add support for editing the source text
* Add WanaKana binding for input
* Rename file
2020-10-20 19:08:17 -04:00
toasted-nutbread
23230b8a7c
Backup controller refactor ( #946 )
...
* Update IDs
* Change how default fieldTemplates is assigned
* Ensure no missing fields
* Fix error display during import
2020-10-19 20:05:45 -04:00
toasted-nutbread
91b4feb934
Make dictionary spinner optional ( #945 )
2020-10-19 17:25:15 -04:00
toasted-nutbread
69e5ea6138
Popup menu updates ( #942 )
...
* Expose isClosed property
* Add popupMenu to detail
* Return true if closed, false otherwise
* Add closed event to PopupMenu
2020-10-18 19:48:44 -04:00
toasted-nutbread
9fa2ebddc8
Dictionary controller updates ( #941 )
...
* Rename action
* Store more state information
* Conditional checks for details toggle links
* Add support for hiding/showing details via menu
2020-10-18 19:35:09 -04:00
toasted-nutbread
ce17a47b5e
Change progress reporting to support settings v2 ( #940 )
2020-10-18 18:28:14 -04:00
toasted-nutbread
8bf42fa69e
Dictionary controller updates ( #939 )
...
* Check if element exists
* Add delete function
* Add support for deleting via popup menu
* Update how count visibility is updated
* Update dictionary deletion progress updates
* Update storage stats after dictionary deletion
2020-10-18 18:26:44 -04:00
toasted-nutbread
3e3c080a43
Status footer ( #938 )
...
* Add event for popup element close completion
* Add StatusFooter class
2020-10-18 18:22:36 -04:00
toasted-nutbread
a920445883
Fix focused element of popup menus ( #937 )
2020-10-18 18:21:10 -04:00
toasted-nutbread
988ea8f70a
Update audio controller for menus ( #936 )
...
* Make event non-async
* Only add event listener if the button exists
* Add support for menu for removal
2020-10-18 13:18:57 -04:00
toasted-nutbread
3ab63f4f55
Fix missing close cause ( #935 )
2020-10-18 13:00:49 -04:00
toasted-nutbread
82e203dd76
Popup menu updates ( #934 )
...
* Store a reference to the menu
* Allow close cancellation
* Add open event
2020-10-18 12:58:07 -04:00
toasted-nutbread
faf130f420
Add PopupMenu class ( #933 )
2020-10-18 12:49:51 -04:00
toasted-nutbread
054fe02808
Fix new Modal's base calss ( #932 )
2020-10-18 09:54:29 -04:00
toasted-nutbread
d35d1fd44a
Generalize modal, move to popup-elements.js ( #931 )
2020-10-18 09:39:55 -04:00
toasted-nutbread
6f1bdf0c66
Modal split ( #930 )
...
* Move jQuery-based modal into a separate class
* Remove jQuery conditions for default modal
2020-10-18 09:27:32 -04:00
toasted-nutbread
a4550627af
Add a refresh function to GenericSettingsController ( #929 )
2020-10-17 21:38:29 -04:00
toasted-nutbread
e5ef3fe9c2
Remove debug log ( #924 )
2020-10-15 18:10:29 -04:00
toasted-nutbread
e6a1bcc0f5
Ensure settings exist for all installed dictionaries ( #922 )
2020-10-14 19:38:50 -04:00
toasted-nutbread
51904761ce
Add simple scan input UI ( #921 )
...
* Add simple scan input UI
* Create helper function
* Add controller for old scanning input UI
* Add refresh functions
* Add abstraction function
* Fix incomplete middle mouse support detection
* Make scanning inputs update eachother
* Fix global declaration order
2020-10-14 19:37:46 -04:00
toasted-nutbread
5b5b45b88e
Dictionary controller refactor ( #912 )
...
* Support multiple main dictionary selects
* Update progress container
* Change class name
* Simplify dictionary info
* Update outdated node visibility
* Simplify node usage
* Simplify title
* Update classes
* Update IDs/classes
* Remove details container visibility assignment
* Use a template for dictionary details
* Fix progress bar visibility
* Fix incorrect property
* Rename dict-details to dictionary-details
* Remove unused classes
* Update class names for dictionary templates
* Rename templates
* More id renaming
* Remove unused id
* Rename more IDs
2020-10-11 17:31:58 -04:00
toasted-nutbread
9da08c7fe6
Generic settings improvements ( #909 )
...
* Add helper function _getElementRelativeToAncestor
* Move helper functions
* Add setVisibility transform
* Add support for data-transform attribute shorthand
* Add support for using the document element as the ancestor
2020-10-10 23:17:51 -04:00
toasted-nutbread
25c590e54b
Add modal controller class ( #908 )
...
* Add ModalController
* Use modalController instead of new Modal
2020-10-10 20:58:38 -04:00
toasted-nutbread
0244d07ea9
Storage controller refactor ( #907 )
...
* Use array for use/quota nodes
* Use classes instead of ids
2020-10-10 17:37:16 -04:00
toasted-nutbread
19e0346484
Further generalize storage controller by supporting lists of nodes ( #906 )
2020-10-10 17:31:09 -04:00
toasted-nutbread
199dd7d763
Storage controller refactor ( #905 )
...
* Use hidden instead of storage-hidden class
* Refactor storage events
* Make ID more generic
* Update how persistent storage is activated
* Add null checks
* Update HTML/ID
* Disallow disabling persistent storage
* Refactoring
* Update more IDs
* Disable multiple simultaneous stats updates
* Store node references
* Move undefined assignment
2020-10-10 16:54:52 -04:00
toasted-nutbread
3174f3c657
Update audio controller ( #904 )
...
* Remove redundant assignment of select value
* Update TTS preparation
* Don't hide options
* Improve voice sorting
* Update event handler
* Apply options to all selects targeting audio.textToSpeechVoice
* Update selector
* Use IDs
* Move test text to a hidden text input
2020-10-10 12:11:33 -04:00
toasted-nutbread
6799b87cc6
Make animation optional for Modal.setVisible ( #903 )
2020-10-10 10:47:02 -04:00
toasted-nutbread
591253d783
Add support for allowing modals to be display:none when not open ( #902 )
2020-10-10 10:12:53 -04:00
toasted-nutbread
1ae8fb4bfa
Modal updates 2 ( #901 )
...
* Fix incorrect visible value
* Focus element when visibility is set
* Add isVisible function
2020-10-08 22:44:55 -04:00
toasted-nutbread
bedcad6ab2
Update the Modal class to support non-jQuery modals ( #900 )
2020-10-08 22:31:58 -04:00
toasted-nutbread
41ead7a90a
Add additional transforms ( #899 )
2020-10-08 17:38:18 -04:00
toasted-nutbread
05e51a950e
Settings templates refactor ( #897 )
...
* Add template instantiation API to SettingsController
* Use SettingsController.instantiateTemplate
2020-10-07 21:23:42 -04:00
toasted-nutbread
1a91935dd7
Fix dictionary settings not being deleted when deleting a single dictionary ( #893 )
2020-10-06 23:00:00 -04:00
toasted-nutbread
6b6ee76550
Move searchTerms/searchKanji to front of object definitions ( #873 )
2020-09-27 11:53:07 -04:00
toasted-nutbread
3b6e3193ae
Fix data-setting attributes not being updated on index change ( #872 )
2020-09-27 11:47:56 -04:00
toasted-nutbread
cdd649ea3d
Add scan on touch move and prevent touch scroll options ( #871 )
...
* Add scanOnTouchMove/preventTouchScrolling scanning input options
* Add settings controls
* Support scanOnTouchMove in TextScanner
* Support preventTouchScrolling in TextScanner
2020-09-27 11:46:37 -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
a2e6de84af
Dictionary delete improvements ( #844 )
...
* Change where clearDatabaseCaches occurs
* Move dictionary deletion into the settings page
* Remove api.deleteDictionary
2020-09-19 17:17:33 -04:00
toasted-nutbread
1078ab99b7
Fix settings sanitization resulting in invalid data for the schema ( #843 )
2020-09-19 17:15:34 -04:00
toasted-nutbread
2ff4f83072
Modal refactor ( #842 )
...
* Add Modal class
* Use Modal class
2020-09-19 17:14:51 -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
79ef6e151e
Cleanup unused utils ( #832 )
...
* Remove api.optionsSave
* Remove getOptionsMutable and getOptionsFullMutable
* Remove util.js
* Remove yomichanBackend
2020-09-15 19:48:58 -04:00
toasted-nutbread
f997f01742
Dictionary controller refactor ( #831 )
...
* Create new DictionaryController
* Update input disabling when modifying the database
2020-09-15 19:35:44 -04:00
toasted-nutbread
5ec5d0c91c
Database change event ( #826 )
...
* Add api.triggerDatabaseUpdated and yomichan.on('databaseUpdated')
* Update databaseUpdated event usage
2020-09-13 18:43:44 -04:00
toasted-nutbread
8b033a1650
Profile controller refactor ( #825 )
...
* Add refresh function
* Create new ProfileController class
2020-09-13 18:42:37 -04:00
toasted-nutbread
621aa354e7
Add scan dictionary type filters ( #822 )
...
* Add options for searchTerms and searchKanji
* Add settings HTML
* Add options to TextScanner
* Update _search/_findDefinitions to include searchTerms/searchKanji args
* Update _searchAtFromMouseMove args
* Change argument structure for _searchAt
* Use scanning options for searchTerms and searchKanji
2020-09-13 13:25:03 -04:00
toasted-nutbread
efd0de6bc0
Add workaround for Firefox bug not detecting pen input type correctly ( #820 )
2020-09-13 11:28:13 -04:00
toasted-nutbread
c98aa9ad47
More scanning options ( #815 )
...
* Reorganize options
* Add advanced options
* Add a setting transform 'setRelativeAttribute'
* Add advanced options to HTML/CSS
2020-09-12 13:20:02 -04:00
toasted-nutbread
41db9ec89b
Use a grid layout for scanning inputs ( #814 )
2020-09-12 11:22:17 -04:00
toasted-nutbread
a5845df123
Add support for pointer event input detection ( #810 )
2020-09-11 16:57:57 -04:00
toasted-nutbread
0c2f0aa4eb
Fix adding new scanning inputs not working ( #808 )
2020-09-11 16:03:46 -04:00
toasted-nutbread
f168efb69c
OptionsUtil refactor / options default values ( #807 )
...
* Replace _readFile with _fetchAsset for consistency with Backend
* Fix error messages
* Make OptionsUtil non-static
* Update how default options are assigned
* Add createValidatingProxy
* Add validate, update _onApiSetAllSettings
* Remove unused api.optionsSchemaGet
* Remove Backend._optionsSchema
* Update OptionsUtil to create its own JsonSchemaValidator
* Rename Backend._optionsSchemaValidator
* Make getDefault non-async
2020-09-11 14:15:08 -04:00
toasted-nutbread
a1729eb9ae
Input type filters ( #806 )
...
* Add options for scanning input types
* Move buttons in layout, refactor CSS
* Add options for input types
* Use input type filters
* Add _getMatchingInputGroupFromEvent
* Use input filters for touch events
2020-09-11 14:13:52 -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
3dd4822ab3
Anki note media injection move ( #801 )
...
* Move anki note media injection functionality into Backend
* Add marker/mode checks
* Remove media injection from AnkiNoteBuilder
2020-09-10 15:04:54 -04:00
toasted-nutbread
5d2261acb9
Update the AnkiController class to use an instance of AnkiConnect directly ( #795 )
...
* Update AnkiController to use AnkiConnect instance directly
* Remove unused
2020-09-09 17:46:34 -04:00
toasted-nutbread
8408bee90a
Settings controller file renaming ( #794 )
...
* Rename SettingsBackup to BackupController
* Rename files to more closely match classes
* Improve organization of script imports
2020-09-09 17:37:58 -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
2aa86cc5f8
Anki API refactor ( #790 )
...
* Add function guiBrowseNote
* Assign default server as null
* Use get/set properties for server/enabled
* Refactor option values
* Refactor createNote/Data functions to not use options format directly
* Use createNote for testing
* Add errors
2020-09-09 11:54:40 -04:00
toasted-nutbread
ab4dbacc4c
Move assignment of the operating system property ( #786 )
2020-09-08 19:36:15 -04:00
toasted-nutbread
5af3c680e4
Fix modifier keys not being spread ( #785 )
2020-09-08 12:39:51 -04:00
toasted-nutbread
f7093b4c1a
Anki note clipboard marker ( #780 )
...
* Update fields reference
* Add support for adding clipboard images to anki notes
* Add handlebars templates
* Add markers
* Add markers to readme
2020-09-08 11:01:08 -04:00
toasted-nutbread
36fc5abae5
Modifier key refactor ( #784 )
...
* Add functions for getting keyboard key information
* Use os + DocumentUtil to get modifier key names
* Remove keyboard modifier info from environment info
2020-09-08 10:53:41 -04:00
toasted-nutbread
0a5e832dfd
Mouse inputs ( #783 )
...
* Add mouse icon
* Add _updateModifiers
* Add support for mouse button modifiers
* Improve names of mouse inputs
* Improve mouse input sorting
* Rename getModifierKeyStrings to getModifierInputStrings
* Refactor keyboard/mouse inputs into KeyboardMouseInputField
2020-09-07 20:12:43 -04:00
toasted-nutbread
59559fc560
Profile conditions fixes and improvements ( #782 )
...
* Fix operator changes
* Fix default value not changing during type change
* Fix incorrect display value being assigned
* Refactor _updateValueInput
2020-09-07 13:22:34 -04:00
toasted-nutbread
d8f488e28c
Settings dictionary import refactor ( #759 )
...
* Fix .purge not re-opening the database after deletion failure
* Create DictionaryImportController
* Remove backend dictionary import
2020-09-04 17:54:34 -04:00
toasted-nutbread
f3dd2270a5
Json schema profile conditions ( #758 )
...
* Add clearCache function
* Add upgrade
* Use schema-based profile condition validation
* Update profile conditions settings controller
* Remove unnecessary async
* Remove old
* Remove unused templates
2020-09-04 17:44:00 -04:00
toasted-nutbread
f0c974d319
Move generateId to core.js ( #748 )
2020-08-22 15:49:24 -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
838fd211c6
Pitch accent Anki field templates ( #701 )
...
* Template helper updates
* Add pitch data to exported field formatting data
* Reuse note data
* Add no-op
* Set up pitch accent templates
* Refactor version update functions
* Implement upgrade process for new Anki templates
* Consistency
* Update README and anki.js to have matching markers
2020-08-01 16:23:33 -04:00
toasted-nutbread
b52074b3f0
Options util ( #700 )
...
* Move options functions into a class
* Rename and privatize
* Organize by public/private
* Refactor to use async function
* Simplify update function signature
* Add comment for update
* Rename
* Copy _applyUpdates into _legacyProfileUpdateUpdateVersion
* Organize
* Move profile options updates
* Refactor update details
* Add async support
* Formatting
2020-08-01 11:46:35 -04:00
toasted-nutbread
d7f78c23b5
Script ready state change ( #672 )
...
* Update how backend/frontend ready states are awaited and signaled
* Log errors on the search page
* Update action name
2020-07-18 17:11:38 -04:00
toasted-nutbread
fc31e6fab5
Fix incorrect field name ( #665 )
2020-07-14 21:58:53 -04:00
toasted-nutbread
c13160d784
Page exit prevention refactor ( #637 )
...
* Add page exit prevention functionality to SettingsController
* Update dictionary controller to use new page exit prevention system
* Remove page-exit-prevention.js
2020-07-03 11:56:26 -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
6ee50b3c95
Make PopupFactory.prepare non-async ( #625 )
2020-06-25 18:32:29 -04:00
toasted-nutbread
f2991fb9ee
Frontend initialization refactor ( #610 )
...
* 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
2020-06-21 16:14:05 -04:00
toasted-nutbread
8bc15e60b5
Detect language tags starting with "ja_" ( #596 )
2020-06-13 10:18:44 -04:00
toasted-nutbread
cfd3a1ec3a
Update AudioController to not use mutable options references ( #585 )
2020-05-30 21:54:38 -04:00
toasted-nutbread
db209c9116
Generic settings controller merge ( #584 )
...
* Update how optionsContext is assigned to targets
* Add getSettings and modifySettings
* Merge DOMSettingsBinder into GenericSettingController
* Remove old DOMSettingsBinder
2020-05-30 21:53:36 -04:00
toasted-nutbread
ce7f9dd09a
Update how assignment of general.enableClipboardPopups works ( #583 )
2020-05-30 16:24:51 -04:00
toasted-nutbread
976a200ffc
Backup update ( #582 )
...
* Add function to assign all settings
* Update how settings backups are restored
* Remove page reload
* Update profile index after importing
2020-05-30 16:23:56 -04:00
toasted-nutbread
c8810bc929
Update AnkiController ( #581 )
...
* Update how fields are populated
* Update how fields are modified after a model change
* Update how _onFieldsChanged assigns fields
* Update how spinner is hidden
* Remove jQuery usage
* Use non-jQuery events
2020-05-30 16:22:51 -04:00
toasted-nutbread
ad8df26b6b
Update AnkiTemplatesController ( #580 )
...
* Use this._defaultFieldTemplates
* Don't use mutable options
* Remove some use of jQuery
2020-05-30 16:22:05 -04:00
toasted-nutbread
395a0f4096
Update GenericSettingController to use DOMSettingsBinder ( #578 )
2020-05-30 16:20:31 -04:00
toasted-nutbread
f228078613
SettingsController API update ( #579 )
...
* Include optionsContext as part of optionsChanged event
* Add get/modify functions
2020-05-30 11:24:34 -04:00
toasted-nutbread
789da0206b
Organize settings/main.js ( #577 )
2020-05-30 09:50:33 -04:00
toasted-nutbread
63a3e56367
Use SettingsController ( #576 )
...
* Use settingsController internally in settings/main.js
* Replace modifyingProfileChange with SettingsController.optionsContextChanged
* Update ClipboardPopupsController to use SettingsController
* Store reference to checkbox
* Use this._settingsController for everything
* Change where current profile is initially assigned from
* Remove some unnecessary async calls
* Move setup calls
* Update AnkiTemplatesController to use SettingsController
* Cache default field templates
* Update AnkiController to use SettingsController
* Update AudioController to use SettingsController
* Update SettingsBackup to use SettingsController
* Update DictionaryController to use SettingsController
* Update GenericSettingController to use SettingsController
* Update ProfileController to use SettingsController
* Remove unused
* Remove unused
* Replace some uses of api.options* functions
* Fix missing awaits
* Fix invalid function
2020-05-30 09:33:13 -04:00
toasted-nutbread
1a5a37c9e4
Fix frontend being null if messages are received early ( #575 )
2020-05-30 09:31:46 -04:00
toasted-nutbread
18f376358c
Generic settings controller + clipboard popups controller ( #573 )
...
* Create GenericSettingController
* Create ClipboardPopupsController
2020-05-29 20:33:40 -04:00