Commit graph

348 commits

Author SHA1 Message Date
Damien Elmes
65e2bfb16d fix invalid outer transaction in clear_unused_tags() 2021-04-30 19:09:02 +10:00
Damien Elmes
09f3e1db07 empty/restore media trash shouldn't clear undo 2021-04-30 19:07:30 +10:00
Damien Elmes
8a9796ee5a update GUI to allow notetype addition undo
- backend now updates current notetype as part of addition
- frontend no longer implicitly adds, so we can assign a new name and
add in a single operation
2021-04-30 15:58:08 +10:00
Damien Elmes
df068c2a17 update backend to support undoing of notetype changes 2021-04-30 12:54:59 +10:00
Damien Elmes
03ca227fd4 make it more ergonomic to search directly via nodes in Rust 2021-04-30 11:37:55 +10:00
Damien Elmes
adec449ad4 move pub functions to top of notes/mod.rs 2021-04-29 14:08:15 +10:00
Damien Elmes
77038ae554 DeckConfId -> DeckConfigId 2021-04-28 21:09:26 +10:00
Damien Elmes
985d256e7a sort deck on config update; fix id not being updated after deletion 2021-04-28 21:08:09 +10:00
Damien Elmes
d76ef9cde5 update Rust deps
- tokio 1.0
- updated reqwest, thanks to Rumo
- other minor dep updates

the reqwest build file has been split into two, as it was awkward
to manually update the combined file, and the platform gate is now
on the target in rslib/
2021-04-27 22:18:12 +10:00
Damien Elmes
a7ef410615 hook new deck config screen up behind an env var 2021-04-22 10:59:16 +10:00
Damien Elmes
592e13e967 deckconf -> deckconfig 2021-04-20 21:54:24 +10:00
Damien Elmes
05f75c6194 implement deck config updating 2021-04-20 14:57:44 +10:00
Damien Elmes
e287ebe988 Merge pull request #1138 from RumovZ/introduced
Add search keyword for "first review in x days"
2021-04-19 18:22:15 +10:00
RumovZ
eb9fbb9c0f Add sidebar filter "first review today" 2021-04-18 13:27:10 +02:00
Damien Elmes
363a843d07 tidy up Rust imports
rustfmt can do this automatically, but only when run with a nightly
toolchain, so it needs to be manually done for now - see rslib/rusfmt.toml
2021-04-18 18:38:54 +10:00
Damien Elmes
06dea7aa0a start on making deck config and schema/mod changes undoable
+ move timestamps into a struct in a separate file for convenience
2021-04-18 17:33:12 +10:00
Damien Elmes
1f0ff0f22d add schema change prompt to removal, tweak return struct 2021-04-18 17:33:12 +10:00
RumovZ
32edd2b554 Give deck.name the newtype NativeDeckName
The deck name must be constructed by calling associated functions of
NativeDeckName, unless the name is guaranteed to be valid machine
name (like "Default").
NativeDeckName exposes methods to mutate the deck name and return
the human name.
The storage routines take &strs, but those should be slices of
NativeDeckNames to ensure machine form and normalization.
2021-04-17 22:47:04 +02:00
Damien Elmes
57a1651113 deck config prototype work in progress
Still in the early stages, and not hooked up yet.
2021-04-14 22:33:10 +10:00
RumovZ
d58af0dd95 Merge branch 'master' into backend-columns 2021-04-11 11:18:15 +02:00
RumovZ
531e08a711 Remove from_config variant in pb SortOrder
Instead, fetch the config order on the frontend and pass a builtin
variant into the backend.
That makes the following unnecessary:
* Resolving the config sort in search/mod.rs
* Deserializing the Column enum
* Config accessors for the sort columns
2021-04-10 11:13:42 +02:00
RumovZ
ee83528da2 Remove internal clones of pb BrowserRow structs 2021-04-10 09:49:29 +02:00
RumovZ
dd4f08a90f Rename column label fields 2021-04-10 09:14:20 +02:00
RumovZ
94d52de9da Store active browser columns in col state 2021-04-09 22:53:02 +02:00
RumovZ
c81cf7ffaf Move Column logic into main rslib 2021-04-09 19:09:48 +02:00
RumovZ
3b23248983 Remove pb SortKind enum and use pb Columns instead 2021-04-09 18:50:30 +02:00
RumovZ
93c6e258aa Merge SortKind enum into Column enum 2021-04-09 18:03:29 +02:00
RumovZ
e28f2320b8 Unify state columns
* Remove duplicate backend columns
* Remove duplicate column routines
* Move columns on frontend from state to model
* Generate available columns from Colum enum
* Add second column label for notes mode
2021-04-08 23:48:24 +02:00
RumovZ
8c499ed5bf Rename columns for future mode-independent use 2021-04-08 23:43:48 +02:00
RumovZ
3845ccc846 Add card mod column for notes mode 2021-04-08 20:14:10 +02:00
RumovZ
f4081084a9 Add deck column for notes mode 2021-04-08 19:46:06 +02:00
RumovZ
0ff193cd5d Add enum for column sorting 2021-04-08 11:40:24 +02:00
RumovZ
47eeb5da14 Add enum for column alignment 2021-04-08 11:28:29 +02:00
RumovZ
7ea1dbd4a4 Move BrowserColumn into BrowserColumns message 2021-04-08 10:16:06 +02:00
RumovZ
82b9c9f320 Add column logic on backend 2021-04-06 19:46:12 +02:00
Damien Elmes
ae7a327cae current deck change is now undoable
- make sure we set flag in changes when config var changed
- move current deck get/set into backend
- set_config() now returns a bool indicating whether a change was
made, so other operations can be gated off it
- active decks generation is deferred until sched.reset()
2021-04-06 21:52:06 +10:00
Damien Elmes
1b81653e0e update scheduling ops
- migrate to CollectionOp()
- return actual change count when suspending/burying
- add helper to convert vec to vec of newtype
2021-04-06 16:38:42 +10:00
Damien Elmes
783e0ec224 update note ops
remove_note() now returns the count of removed cards, allowing us
to unify the tooltip between browser and review screen

I've left the old translation in - we'll need to write a script at
one point that gathers all references to translations in the code,
and shows ones that are unused.
2021-04-06 14:56:36 +10:00
Damien Elmes
c3b0fb35b7 more perform_op() tweaks
- pass the handler directly
- reviewer special-cases for flags and notes are now applied at
call site
- drop the kind attribute on OpChanges which is not needed
2021-04-06 10:14:11 +10:00
Damien Elmes
4b64339a8b switch next_day_at to a newtype 2021-04-05 16:17:26 +10:00
Damien Elmes
3ab53c77c7 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
18ba5554ca undo support for tag collapse; expand->collapse for consistency w/ decks 2021-04-05 11:47:12 +10:00
Damien Elmes
dc5b900056 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
510f24bf93 embed deck config and expose to frontend 2021-04-04 22:52:53 +10:00
Damien Elmes
b10e8dd347 expose read-only access to new notetype objects 2021-04-04 20:45:37 +10:00
Damien Elmes
282ae2285a expose read-only access to new deck objects 2021-04-04 20:39:56 +10:00
Damien Elmes
b04ac71a2c recognize select statements with a leading newline from old stats screen 2021-04-03 23:23:33 +10:00
Damien Elmes
cb9d5b9f28 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
87acb6800b rename backend/err.rs -> error.rs 2021-04-03 14:47:52 +10:00
Damien Elmes
d7237be205 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