RumovZ
7a0cb08ac2
Merge browser row str methods
2021-04-08 20:45:47 +02:00
RumovZ
4692a48ef3
Add card mod column for notes mode
2021-04-08 20:14:10 +02:00
RumovZ
2350cd6e91
Add deck column for notes mode
2021-04-08 19:46:06 +02:00
RumovZ
c6ebb9b441
Merge row contexts
2021-04-08 13:51:46 +02:00
RumovZ
8a131da9a2
Add enum for column sorting
2021-04-08 11:40:24 +02:00
RumovZ
d8a0aa922c
Add enum for column alignment
2021-04-08 11:28:29 +02:00
RumovZ
6c3c479906
Move BrowserColumn into BrowserColumns message
2021-04-08 10:16:06 +02:00
RumovZ
ee0ad6f5d6
Fix deck column serialization string
2021-04-06 23:03:30 +02:00
RumovZ
11bdeb9ca4
Add column logic on backend
2021-04-06 19:46:12 +02:00
RumovZ
929b7dc15b
Make Column a strum
2021-04-06 16:54:09 +02:00
Damien Elmes
097121424b
cache scheduling info
...
Saves us having to recalculate it for each browser row
2021-04-05 17:09:53 +10:00
Damien Elmes
ebf7cc61d4
switch next_day_at to a newtype
2021-04-05 16:17:26 +10:00
Damien Elmes
8d6b9d15a5
avoid fetching decks for each row
...
Like notetypes, there is a col.get_deck() routine which caches
fetches, so that successive fetches are cheap. This makes it simpler
to just fetch the deck at the start.
We were also attempting to fetch a deck with id 0 for each row; I've
changed this so that we only fetch it if the id is non-zero.
I18n uses an Arc internally, so it is cheap to clone. This allow us
to drop the lifetime specifiers on the context structures.
2021-04-05 15:13:32 +10:00
Damien Elmes
a18bb2af12
add booleans for various screens to OpChanges
...
The backend knows exactly which op has executed, and it saves us having
to re-implement this logic on each client.
Fixes the browser table refreshing when toggling decks.
2021-04-05 14:28:56 +10:00
Damien Elmes
3adf03f9cb
add a unit test for multiple mutations
2021-04-05 11:52:23 +10:00
Damien Elmes
996d9f9bbc
undo support for tag collapse; expand->collapse for consistency w/ decks
2021-04-05 11:47:12 +10:00
Damien Elmes
2168dfe63d
add routine to set deck collapse state
...
Updating a deck via protobuf is now exposed on the backend, but not
currently on the frontend - I suspect we'll be better off writing
separate routines for the actions we need instead, and we get a better
undo description for free.
This is currently causing an ugly redraw in the browse screen, which
will need fixing.
2021-04-05 11:19:04 +10:00
Damien Elmes
42a4d11416
embed deck config and expose to frontend
2021-04-04 22:52:53 +10:00
Damien Elmes
037df9522b
embed notetype messages
2021-04-04 21:57:17 +10:00
Damien Elmes
c4b3ab62c8
embed deck messages
2021-04-04 21:41:16 +10:00
Damien Elmes
1a4c4373d2
expose read-only access to new notetype objects
2021-04-04 20:45:37 +10:00
Damien Elmes
c60b88cd2f
expose read-only access to new deck objects
2021-04-04 20:39:56 +10:00
Damien Elmes
8e16c94b96
recognize select statements with a leading newline from old stats screen
2021-04-03 23:23:33 +10:00
Damien Elmes
10309c9d9c
fix error after undoing default deck deletion
2021-04-03 16:54:02 +10:00
Damien Elmes
41c5a25dc8
simplify errors
...
- use a flat enum instead of oneof messages, most of which were empty
- tidy up the Python side
2021-04-03 16:06:46 +10:00
Damien Elmes
fe6888f9a4
rename backend/err.rs -> error.rs
2021-04-03 14:47:52 +10:00
Damien Elmes
f666f15b63
use perform_op() for undo()
...
Instead of manually updating the UI after undoing, we just rely
on the same change notification infrastructure regular operations
use.
2021-04-03 14:38:49 +10:00
Damien Elmes
afc8680f2a
make sure we don't invoke second search in v1 scheduler
2021-04-02 21:05:22 +10:00
Damien Elmes
e73359510d
move filtered deck labels to backend
...
- use strum to generate an iterator for the protobuf enum so we don't
forget to add new labels if extending in the future
- no add-ons appear to be using dynOrderLabels(), so it has been removed
@RumovZ perhaps a similar approach might work for listing the available
browser columns as well?
2021-04-01 23:53:38 +10:00
Damien Elmes
f55fe6e518
i18n error shown when attempting to rebuild normal deck
2021-04-01 22:55:10 +10:00
Damien Elmes
ac1b9fadde
merge the filtered deck errors into an enum
...
Fixes the wrong message being shown when trying to move cards to a
filtered deck
2021-04-01 22:30:00 +10:00
Damien Elmes
7df128a103
fix changes to .ftl and .proto files not being picked up by 'cargo check'
2021-04-01 22:29:54 +10:00
Damien Elmes
4e9a5ec5ea
fix a clippy lint
2021-04-01 18:01:31 +10:00
Damien Elmes
ba541076aa
convert card template error to tuple, and report notetype name in error
...
Older translations will note have the $notetype variable, but that is
not an error in Fluent - it would only cause problems if we tried to
use the new string on older Anki versions.
2021-04-01 17:59:33 +10:00
Damien Elmes
7a29d987c4
convert Json and Proto errors to tuple
2021-04-01 17:45:12 +10:00
Damien Elmes
55a6f10d24
tuple type for IoError
2021-04-01 17:40:35 +10:00
Damien Elmes
2b6c8b4296
tuple type for InvalidInput
2021-04-01 17:37:18 +10:00
Damien Elmes
a250464309
switch DbError to tuple type
2021-04-01 17:34:03 +10:00
Damien Elmes
1704f7fe80
drop dependency on failure crate
2021-04-01 17:21:13 +10:00
Damien Elmes
af37164fba
move sync/network errors into separate file
2021-04-01 17:02:54 +10:00
Damien Elmes
8363fcf2a8
move DB error into separate file; add InvalidRegex error
2021-04-01 16:28:23 +10:00
Damien Elmes
f14a631f68
split search errors into separate file
2021-04-01 16:18:28 +10:00
Damien Elmes
094e4ad461
crate::err -> crate::error
2021-04-01 16:07:13 +10:00
RumovZ
99e28068f9
Refactor get_row_color()
2021-03-31 08:56:54 +02:00
RumovZ
5e151cdc42
Pass Column by value
2021-03-31 00:02:10 +02:00
RumovZ
8779fb5ede
Add note interval column
2021-03-30 23:44:35 +02:00
RumovZ
31155f2dcd
Refactor note_ease_str()
2021-03-30 23:44:16 +02:00
RumovZ
f530c6d852
Fix comment typo
2021-03-30 21:40:35 +02:00
RumovZ
1ad91a5312
Add note due column
2021-03-30 21:39:15 +02:00
RumovZ
e9c14a763c
Refactor card_due_str()
2021-03-30 20:50:09 +02:00