Commit Graph

1095 Commits

Author SHA1 Message Date
Damien Elmes
18851ace47 split out cards and collection 2021-07-10 19:52:31 +10:00
Damien Elmes
616db33c0e refactor protobuf handling for split/import
In order to split backend.proto into a more manageable size, the protobuf
handling needed to be updated. This took more time than I would have
liked, as each language handles protobuf differently:

- The Python Protobuf code ignores "package" directives, and relies
solely on how the files are laid out on disk. While it would have been
nice to keep the generated files in a private subpackage, Protobuf gets
confused if the files are located in a location that does not match
their original .proto layout, so the old approach of storing them in
_backend/ will not work. They now clutter up pylib/anki instead. I'm
rather annoyed by that, but alternatives seem to be having to add an extra
level to the Protobuf path, making the other languages suffer, or trying
to hack around the issue by munging sys.modules.
- Protobufjs fails to expose packages if they don't start with a capital
letter, despite the fact that lowercase packages are the norm in most
languages :-( This required a patch to fix.
- Rust was the easiest, as Prost is relatively straightforward compared
to Google's tools.

The Protobuf files are now stored in /proto/anki, with a separate package
for each file. I've split backend.proto into a few files as a test, but
the majority of that work is still to come.

The Python Protobuf building is a bit of a hack at the moment, hard-coding
"proto" as the top level folder, but it seems to get the job done for now.

Also changed the workspace name, as there seems to be a number of Bazel
repos moving away from the more awkward reverse DNS naming style.
2021-07-10 19:17:05 +10:00
Damien Elmes
1d4b58419e add workaround for protobufjs requiring uppercase package names
I mourn the time lost trying to track this down :-(

https://github.com/protobufjs/protobuf.js/issues/1014

We can't patch the minified file in dist without essentially duplicating
it, so this change also switches from the external file to including
the src file as part of the bundle.
2021-07-10 15:24:01 +10:00
abdo
e2cff97349 Tweak deck options tooltips for RTL languages 2021-07-10 00:45:10 +03:00
Damien Elmes
80b98e0db8 move protobuf into separate folder in preparation for multiple files 2021-07-09 21:02:40 +10:00
hikaru-y
91f68d7665 Set lineWiseCopyCut option to false
Fixes https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/103
Related: https://github.com/codemirror/CodeMirror/issues/3169
2021-07-08 01:19:19 +09:00
Damien Elmes
7141f795fb
Merge pull request #1280 from hgiesel/addonimprov2
Export via components for Deck Options
2021-07-07 09:53:05 +10:00
Damien Elmes
f326000b29
Merge pull request #1279 from hgiesel/addonimprov
Remove disabled / Export via Components
2021-07-07 09:31:00 +10:00
Henrik Giesel
794b9f30dc Export editor globals under anki namespace 2021-07-06 03:48:33 +02:00
Henrik Giesel
ca4d4424e6 Don't use containers components within Container
- dynamic componets will be placed outside of the inner container
2021-07-06 03:43:40 +02:00
Henrik Giesel
2ed2a7baca Export under anki.components 2021-07-06 03:36:02 +02:00
Henrik Giesel
70d74605fa Remove WithShortcut for now - it does not work 2021-07-05 22:32:19 +02:00
Henrik Giesel
adfe6597a5 disabledKey => fieldFocusedKey 2021-07-05 18:15:03 +02:00
Henrik Giesel
9cc0d0a01c Fix issues with sometimes cause assignment of wrong position value 2021-07-05 17:17:58 +02:00
Henrik Giesel
59c5ecd4fc Use Components.svelte instead of exporting from EditorToolbar.svelte 2021-07-05 16:19:03 +02:00
Damien Elmes
46708f536d add comment about the use of linear-gradient
Otherwise one of us is likely to return to the code in a few years,
think it could be made simpler, and then break things again. :-)
2021-07-05 11:09:22 +10:00
hikaru-y
7c5031ab28 Prevent #dupe bgcolor from being carried over when copying text
use 'background-image' instead of 'background-color'
to prevent the background-color from being carried over
when copying text to another field in day mode
2021-07-05 04:11:03 +09:00
Damien Elmes
581c3e2486
Merge pull request #1273 from hgiesel/macshortcuts
Execute Ctrl+C/V/X/A via execCommand in editor
2021-07-04 16:02:52 +10:00
Henrik Giesel
7f7e5c2702 Execute Ctrl+C/V/X/A through execCommand in editor (so we can customize it) 2021-07-03 01:48:49 +02:00
Henrik Giesel
f0e870f1ae Allow non-null assertion in focus-handlers 2021-07-03 01:14:59 +02:00
Henrik Giesel
d11d66ee79 Move selection into editable, if it's not there after focus 2021-07-03 01:00:52 +02:00
Damien Elmes
c01c4b642b
Merge pull request #1266 from hgiesel/renamelib
More uniform file naming
2021-07-02 09:31:52 +10:00
Henrik Giesel
24af5bada3 More uniform file naming
kebap-case for .ts, .scss, .html, and directories
2021-07-01 12:24:16 +02:00
Henrik Giesel
982afca625 Use better cloze button icon 2021-07-01 11:46:39 +02:00
Henrik Giesel
6493adf7ca Refactor WithDropdown to be more versatile and cause less bugs 2021-06-30 14:01:33 +02:00
Damien Elmes
8b55e8610b unpin bootstrap now that 5.0.1 is out
63437f5cde
2021-06-29 11:25:14 +10:00
Damien Elmes
fa070d9da3
Merge pull request #1262 from hgiesel/visibledeckpreset
Make input in TextInputModal in dark mode visible
2021-06-29 11:24:21 +10:00
Henrik Giesel
f4f70c514c Make input in TextInputModal in dark mode visible 2021-06-29 03:20:15 +02:00
Damien Elmes
9d1a755fdc use css columns instead of grid
Alternative approach to #1255

thanks to Hikaru and Henrik for the margin fix, and Matthias for
the initial idea and prototypes!
2021-06-29 11:19:56 +10:00
Damien Elmes
18843e711d disable cloze&math buttons in html mode
Following on from 8a07d3161d
Keeping them active seems to encourage users to experiment:
https://forums.ankiweb.net/t/cloze-deleting-html-svg/11011
2021-06-25 10:31:47 +10:00
Henrik Giesel
4252898c78 Make Codable abstract more over its textarea v codemirror when using fieldHTML 2021-06-24 19:55:50 +02:00
Henrik Giesel
96e4e90a61 Make EditingArea intialize this.fieldHTML, not Editable.fieldHTML 2021-06-24 19:15:07 +02:00
Damien Elmes
e387c1f6f1 mobile fixes for js field
Without the overflow change, the page viewport gets messed up.
And for some reason specifying the font size as 1rem does not work;
it needs to be explicitly set to 16px to prevent zoom in.
2021-06-24 18:06:22 +10:00
Damien Elmes
d94c878ce3 disable smart quotes and capitalization in js field
+ use bootstrap styling
2021-06-24 18:00:06 +10:00
Damien Elmes
0b697f5161 expose scheduler js option in deck config 2021-06-24 14:38:10 +10:00
Damien Elmes
943f2b0287 gear -> revert icon
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/30
2021-06-24 13:07:03 +10:00
Damien Elmes
1c0e0853b0
Merge pull request #1248 from ankitects/revert-on-right
Move deck options revert button to right; hide when inactive
2021-06-24 13:01:57 +10:00
Henrik Giesel
cedbc35850 Adapt use of createDropdown for editor buttons 2021-06-22 17:31:06 +02:00
Damien Elmes
a7cf5cb5eb move revert button to the right
With a confirmation step now, accidental taps when scrolling shouldn't
be an issue, and it leaves more room for the text.
2021-06-22 09:41:31 +10:00
Damien Elmes
cde63469dc hide revert button when not active 2021-06-22 09:38:28 +10:00
Damien Elmes
c840b8dbb2 fix svelte-check error by tweaking formatting
🤷
2021-06-22 09:27:37 +10:00
Henrik Giesel
08402a2d72 Have swithes be blue when checked in night mode 2021-06-21 22:37:37 +02:00
Henrik Giesel
214c585518 Replace dash with underscore for night_mode_lib 2021-06-21 21:51:15 +02:00
Henrik Giesel
13970425bf Add night_mode_lib as SCSS target 2021-06-21 21:44:23 +02:00
Henrik Giesel
8a2ac57cc5 Always show spinning reverse icon on mobile 2021-06-21 21:35:20 +02:00
Henrik Giesel
e5978d7ffe Remove use of bootstrap-dark.night-mode for deckoptions
The CSS for the Switch component had a conflict regarding background color
Also generally it makes sense to put the CSS into the components
2021-06-21 21:16:40 +02:00
Henrik Giesel
e8a6add60b Position Revert/Gear button on the left of the label
+ Make the reverse arrow spin
2021-06-21 20:48:33 +02:00
Henrik Giesel
4e4683a122 Make gear button show dropdown menu 2021-06-21 20:24:15 +02:00
Henrik Giesel
48b7ae3cd0 Revert button with gear icon, that shows revert dropdown item 2021-06-21 19:11:10 +02:00
Henrik Giesel
292ba665af Associate Switch labels with their respective switches 2021-06-21 18:15:41 +02:00
Henrik Giesel
909502bb0a Put tooltip only on the info badge 2021-06-21 17:48:18 +02:00
Damien Elmes
f92bf490ab remove explicit line-height
It was causing text in dropdowns to be slightly truncated
(eg "Tag Only")
2021-06-21 17:02:48 +02:00
Damien Elmes
ecfa01072b remove left pad on switches 2021-06-21 17:02:48 +02:00
Damien Elmes
207e0126a0 decrease margins in deck options top sticky bar 2021-06-21 17:02:48 +02:00
Henrik Giesel
131d29ae05 Add g-1 class to DeckoptionsPage. Include transitions.scss
* Modal misbehaved before
2021-06-21 17:02:48 +02:00
Henrik Giesel
abca240de7 Disable RevertButton tooltip on touch devices
The tooltip will show after you clicked Revert. There's no sensible way
to show the tooltip, without also triggering the functionality
2021-06-21 17:02:48 +02:00
Henrik Giesel
98c57ce3f8 Make TriggerType an input argument for WithTooltip 2021-06-21 17:02:48 +02:00
Henrik Giesel
62b4b4c12c Increase padding on tooltips + Remove erroneous closing angle bracket 2021-06-21 17:02:48 +02:00
Henrik Giesel
728e2e682b Implement Switch and SwitchRow 2021-06-21 17:02:48 +02:00
Henrik Giesel
9a00ef5a81 Properly dispose of tooltip resources when unmounting 2021-06-21 17:02:48 +02:00
Henrik Giesel
97692e4c28 Reverse RevertButton being on the right side 2021-06-21 17:02:48 +02:00
Henrik Giesel
3227346f53 Alternative solution to markdown tooltips creating bottom margin 2021-06-21 17:02:48 +02:00
Henrik Giesel
3232712748 Update RevertButton to use Badge and WithTooltip 2021-06-21 17:02:48 +02:00
Henrik Giesel
a035679171 Add a tooltip showing delay of a quarter second 2021-06-21 17:02:48 +02:00
Henrik Giesel
880546c895 Add back info circles, remove underlines 2021-06-21 17:02:48 +02:00
Henrik Giesel
44562c3250 Update NotetypeSelector to use Item instead of ButtonToolbarItem 2021-06-21 17:02:48 +02:00
Henrik Giesel
d45e6445cf Fix tooltip regression 2021-06-21 17:02:48 +02:00
Henrik Giesel
af53ccfb36 Have decimal keyboard for SpinBoxFloat 2021-06-21 17:02:48 +02:00
Henrik Giesel
0c49f6c08b Have numeric keyboard for SpinBox 2021-06-21 17:02:48 +02:00
Henrik Giesel
4d7bdbce1f Switch Revert button and input element position 2021-06-21 17:02:48 +02:00
Henrik Giesel
67e0b67d17 Implement WithTooltip 2021-06-21 17:02:48 +02:00
Henrik Giesel
11c5476ae3 Wrap label and HelpPopup into span
Avoids HelpPopup in a differnt column upon label wrapping
2021-06-21 17:02:48 +02:00
Henrik Giesel
21ab484f21 Make revert button horizontal padding smaller 2021-06-21 17:02:48 +02:00
Henrik Giesel
99e7a3c436 Have colors inherit for badges 2021-06-21 17:02:48 +02:00
Henrik Giesel
dba85e7755 Add down-arrow SASS function 2021-06-21 17:02:48 +02:00
Henrik Giesel
65f0e7a4ea Use custom down arrow for both SelectButton and EnumSelector 2021-06-21 17:02:48 +02:00
Henrik Giesel
8d32528e8d Put Col types into col.ts 2021-06-21 17:02:48 +02:00
Henrik Giesel
894c84f4d3 Fix formatting 2021-06-21 17:02:48 +02:00
Henrik Giesel
e030e6f656 Rename SectionItem to just Item and use across option sections 2021-06-21 17:02:46 +02:00
Henrik Giesel
f895919435 Import API from all option sections 2021-06-21 17:01:45 +02:00
Henrik Giesel
2728b5fa63 Add Container.svelte 2021-06-21 17:01:45 +02:00
Henrik Giesel
cf9bba0807 Remove SCSS from ConfigEditor 2021-06-21 17:01:45 +02:00
Henrik Giesel
1bb59198dd Implement CheckBoxRow and SpinBoxFloatRow 2021-06-21 17:01:45 +02:00
Henrik Giesel
5fa850703f Implement EnumSelectorRow and StepsInputRow 2021-06-21 17:01:45 +02:00
Henrik Giesel
bc6907ef8d Implement SpinBoxRow 2021-06-21 17:01:45 +02:00
Henrik Giesel
46b5f6ba65 Add breakpoint for Bury EnumSelector 2021-06-21 17:01:44 +02:00
Henrik Giesel
2e921b95c6 Use Row and Col in favor of ConfigEntry 2021-06-21 17:01:44 +02:00
Henrik Giesel
77ea7f5e6f Remove ConfigEntryFull 2021-06-21 17:01:44 +02:00
Henrik Giesel
6e06f4afd4 Factor RevertButton out of components 2021-06-21 17:01:44 +02:00
Henrik Giesel
c87123a9b1 Change margin and gutters off rows 2021-06-21 17:01:44 +02:00
Henrik Giesel
2d24003e6c Move the remaining Options to new ConfigEntry layout 2021-06-21 17:01:44 +02:00
Henrik Giesel
d099b00918 Update DailyLimits and NewOptions to new format 2021-06-21 17:01:44 +02:00
Henrik Giesel
2a318f4695 Wrap input and revert button into one col 2021-06-21 17:01:44 +02:00
Henrik Giesel
17b39b8ef8 Introduce TitledContainer 2021-06-21 17:01:44 +02:00
Henrik Giesel
70c8b8940d Allow for gutters between rows 2021-06-21 17:01:44 +02:00
Henrik Giesel
da8fdb7719 Vertically align text + Remove bottom margin from alerts 2021-06-21 17:01:44 +02:00
Henrik Giesel
c586107fea Turn icons into Bootstrap badges in deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
23f65f1a95 Start using Bootstrap grid for deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
282de21675 Use Bootstrap containers instead of CSS in base for deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
7dacd9b72f Add container scss to deckoptions-base 2021-06-21 17:01:44 +02:00
Henrik Giesel
b99b12f157 Make API argument required in ConfigEditor 2021-06-21 17:01:44 +02:00
Henrik Giesel
c49ad009d0 Add Section and SectionItem for the deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
da076aa48e Generalize ButtonToolbarItem to SectionItem 2021-06-21 17:01:42 +02:00
Damien Elmes
c6c3b8af4d
Merge pull request #1244 from hgiesel/colorpickersetcolor
Make Color Pickers also format with colors
2021-06-20 15:58:58 +10:00
Damien Elmes
c79f8ba88f in/out -> request/response
The saved characters weren't worth the increased difficulty when
reading, and the fact that we were deviating from protobuf norms.
2021-06-20 15:49:20 +10:00
Henrik Giesel
05fa7daa97 Add type hint in WithColorHelper 2021-06-19 16:31:35 +02:00
Henrik Giesel
29d40fd4ab Make Color Pickers also format with colors 2021-06-19 16:27:09 +02:00
Damien Elmes
f2029b8ba8 support jsdom tests
Alternative would be to switch to jsdom for everything, but TextEncoder
is currently missing from jsdom, and jsdom mode is slower IIRC.
2021-06-19 09:43:09 +10:00
Henrik Giesel
297150a1b6 Cannot create Jest jsdom tests (?) 2021-06-18 20:41:54 +02:00
Damien Elmes
039be57499
Merge pull request #1242 from hgiesel/codable
In-line HTML-Editing for Editor
2021-06-18 17:18:35 +10:00
Henrik Giesel
3320aecdda Satisfy svelte_check 2021-06-18 03:12:02 +02:00
Henrik Giesel
526e87aaef Remove components from editor BUILD.bazel again 2021-06-18 02:59:45 +02:00
Henrik Giesel
bfe2bdecc0 Disable function dropdown when no field selected 2021-06-18 02:51:42 +02:00
Henrik Giesel
767af9e478 Satisfy linter 2021-06-18 02:44:15 +02:00
Henrik Giesel
a3a59f0293 Make text wrapper buttons work with Codable 2021-06-18 02:33:56 +02:00
Henrik Giesel
8a07d3161d Disable Media button for Codable, but keep wrapping and cloze key for now 2021-06-18 02:02:01 +02:00
Henrik Giesel
2322d170fc Disable ColorButtons for Codable 2021-06-18 01:44:15 +02:00
Henrik Giesel
c23665cf63 Allow Tab and Shift+Tab on Codable 2021-06-18 01:32:46 +02:00
Henrik Giesel
28679968f7 Disable FormatBlock buttons for Codable 2021-06-18 01:17:43 +02:00
Henrik Giesel
eeb954535f Disable Bold button in Codable 2021-06-18 00:27:07 +02:00
Henrik Giesel
817dee1a1b Make different onPaste behavior for Editable and Codable 2021-06-17 23:12:15 +02:00
Henrik Giesel
94c789a5bf Have correct enter behavior in for Editable and Codable 2021-06-17 22:02:06 +02:00
Henrik Giesel
f923660fc6 Add autoclosetag addon for CodeMirror 2021-06-17 21:45:11 +02:00
Henrik Giesel
9cbc1c33e7 Make it so you don't have to close the HTML mode for html to be written back 2021-06-17 21:36:56 +02:00
Henrik Giesel
a87f81f00b Only toggle the current field, not all 2021-06-17 20:57:20 +02:00
Henrik Giesel
7266f485d0 Make Codable enter behavior the same as Editable 2021-06-17 20:47:33 +02:00
Henrik Giesel
95dad1abc1 Match and fold tags 2021-06-17 20:27:34 +02:00
Henrik Giesel
447e54d3af Make editable hide correctly when activating codable 2021-06-17 19:08:14 +02:00
Henrik Giesel
d80fc6a397 Successfully add monokai theming 2021-06-17 18:36:12 +02:00
Henrik Giesel
74961ff118 Make DOMParser correctly return innerHTML 2021-06-17 17:52:27 +02:00
Henrik Giesel
4daede2995 Make Codable correctly update the editable state and its button 2021-06-17 17:49:50 +02:00
Henrik Giesel
7f76a98546 Apply the Monokai theme 2021-06-17 17:18:00 +02:00
Henrik Giesel
8a902944a8 Setup toggleHtmlEdit on editingArea 2021-06-17 17:08:33 +02:00
Henrik Giesel
678a5997e9 Connect HtmlEditButton to codable 2021-06-17 15:30:05 +02:00
Henrik Giesel
8b15c81d34 Display CodeMirror in editingArea 2021-06-17 14:44:03 +02:00
Henrik Giesel
709c1be7a0 Add codable element 2021-06-17 13:46:25 +02:00
Damien Elmes
2e53dc63c8
Merge pull request #1230 from RumovZ/fields-check
Check for misplaced or missing clozes when adding and in the editor
2021-06-17 21:26:16 +10:00
Damien Elmes
51de0fdcd1 update js deps; pin marked
marked 2.1.0 fails to run on node 12
2021-06-16 16:47:32 +10:00
RumovZ
0f549d2b82 Merge cloze hint divs into one 2021-06-15 08:43:18 +02:00
RumovZ
d8c3e71105 Add editor hints for cloze errors 2021-06-12 17:35:40 +02:00
hikaru-y
2778398812 Disable color picker buttons when a field is not focused 2021-06-11 23:36:06 +09:00
Damien Elmes
968bd1b27a specific encoding of strings.json
https://forums.ankiweb.net/t/win10-build-error-unicodedecodeerror-gbk-codec-cant-decode-byte-0x91/10714
2021-06-11 20:12:38 +10:00
Damien Elmes
18f8e3743b
Merge pull request #1225 from kelciour/segoe-ui-font-fix
Fix  Segoe UI got replaced with Arial on Windows
2021-06-10 22:29:06 +10:00
Damien Elmes
61e86cc29d new change notetype implementation for the frontend
- changes can now be undone
- the same field can now be mapped to multiple target fields, allowing
fields to be cloned
- the old Qt dialog has been removed
- the old col.models.change() API calls the new code, to avoid
breaking existing consumers. It requires the field map to always
be passed in, but that appears to have been the common case.
- closes #1175
2021-06-10 22:19:24 +10:00
kelciour
44cf5153b1 fix default font family
Probably a regression introduced with fdd162a7b9
2021-06-10 12:07:52 +03:00
Damien Elmes
410660990e add LIFO sorting options for new cards 2021-06-08 14:01:46 +10:00
Damien Elmes
dbfe12edbf use different toolbar size on Mac
see discussion on 984ab9b6fe
2021-06-05 11:28:36 +10:00
Damien Elmes
f348ec7678 tooltip styling fix
Thanks Matthias!

https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/88
2021-06-04 15:27:27 +10:00
Damien Elmes
984ab9b6fe try toolbar size of 1.85rem
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/97
2021-06-04 15:11:34 +10:00
Damien Elmes
3ced63d974 make _vars.scss public 2021-06-04 14:39:53 +10:00