Anki/rslib/src/backend
RumovZ 6da5e5b042
CSV import/export fixes and features (#1898)
* Fix footer moving upwards

* Fix column detection

Was broken because escaped line breaks were not considered.
Also removes delimiter detection on `#columns:` line. User must use tabs
or set delimiter beforehand.

* Add CSV preview

* Parse `#tags column:`

* Optionally export deck and notetype with CSV

* Avoid clones in CSV export

* Prevent bottom of page appearing under footer (dae)

* Increase padding to 1em (dae)

With 0.5em, when a vertical scrollbar is shown, it sits right next to
the right edge of the content, making it look like there's no right
margin.

* Experimental changes to make table fit+scroll (dae)

- limit individual cells to 15em, and show ellipses when truncated
- limit total table width to body width, so that inner table is shown
with scrollbar
- use class rather than id - ids are bad practice in Svelte components,
as more than one may be displayed on a single page

* Skip importing foreign notes with filtered decks

Were implicitly imported into the default deck before.
Also some refactoring to fetch deck ids and names beforehand.

* Hide spacer below hidden field mapping

* Fix guid being replaced when updating note

* Fix dupe identity check

Canonify tags before checking if dupe is identical, but only add update
tags later if appropriate.

* Fix deck export for notes with missing card 1

* Fix note lines starting with `#`

csv crate doesn't support escaping a leading comment char. :(

* Support import/export of guids

* Strip HTML from preview rows

* Fix initially set deck if current is filtered

* Make isHtml toggle reactive

* Fix `html_to_text_line()` stripping sound names

* Tweak export option labels

* Switch to patched rust-csv fork

Fixes writing lines starting with `#`, so revert 5ece10ad05.

* List column options with first column field

* Fix flag for exports with HTML stripped
2022-06-09 10:28:01 +10:00
..
scheduler Don't rely on frontend to cap time taken in v3 2022-04-02 20:06:23 +10:00
search Extends the SearchNode interface to support field and unqualified searches (#1821) 2022-04-28 14:09:51 +10:00
sync add a builder for Collection 2021-11-06 14:43:41 +10:00
adding.rs tidy up Rust imports 2021-04-18 18:38:54 +10:00
card.rs Switch card.original_position to a proto3 optional 2022-03-10 20:48:26 +10:00
cardrendering.rs New TTS/AV tag handling (#1559) 2021-12-17 19:04:42 +10:00
collection.rs Backup improvements (#1728) 2022-03-21 19:40:42 +10:00
config.rs Optionally restore original position and reset counts when forgetting (#1714) 2022-03-09 16:51:41 +10:00
dbproxy.rs update to latest rusqlite 2021-06-25 16:22:21 +10:00
deckconfig.rs expose scheduler js option in deck config 2021-06-24 14:38:10 +10:00
decks.rs Remove top_deck_id arg in deck_tree() (#1702) 2022-03-02 15:30:32 +10:00
error.rs Card type error (#1749) 2022-03-28 22:17:50 +10:00
generic.rs Add apkg import/export on backend (#1743) 2022-05-02 21:12:46 +10:00
i18n.rs in/out -> request/response 2021-06-20 15:49:20 +10:00
import_export.rs CSV import/export fixes and features (#1898) 2022-06-09 10:28:01 +10:00
links.rs Remove native HelpPage enum 2021-07-22 16:32:49 +02:00
media.rs in/out -> request/response 2021-06-20 15:49:20 +10:00
mod.rs Backup improvements (#1728) 2022-03-21 19:40:42 +10:00
notes.rs support updating multiple notes in one transaction/undo op 2021-08-02 17:07:26 +10:00
notetypes.rs Plaintext import/export (#1850) 2022-06-01 20:26:16 +10:00
ops.rs fix note changes triggering a queue rebuild 2021-06-08 12:09:35 +10:00
progress.rs Plaintext import/export (#1850) 2022-06-01 20:26:16 +10:00
stats.rs Switch CardInfoDialog to ts page (#1414) 2021-10-14 19:22:47 +10:00
tags.rs bikeshedding: amount -> match_limit 2021-09-12 11:57:49 +10:00