Commit graph

68 commits

Author SHA1 Message Date
Brendan Allan fd39dc3a3d
Replace Location.local_path with path (#571)
* replace Location.local_path with path

* Using more references to avoid unneeded moves and removing unneeded errors variants

* remove unnecessary stuff

* location id checks

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
2023-02-20 05:14:47 +00:00
Oscar Beaumont a9fceae819
improvements to spacedrive:// custom URI protocol (#550)
* fix `spacedrive://` custom protocol on Windows
(hopefully)

* custom protocol using `http::Response` + fix broken web

* import patches before App on web

* use `http::Request` for input to `handle_custom_uri`

* break  into dedicated file + error handling

* serving files via custom protocol

* cargo fmt because vscode did cringe

* lru cache to reduce video chunk request time

* add  helper to JS

* clippy be like

* remove duplicate Open buttons in context menu

* fix Linux 🙏

* no shot

* fix Windows custom URI passing (hopefully)

* better fix for custom uri on Linux

* upgrade Tauri for  feature

* switch url replacement order

* prevent React dev tools script being added in prod to desktop

* remove React devtools from html

* upgrade Tauri; required upgrading rspc, Axum, PCR

* pass typecheck + less cringe bigint

* clippy is love, clippy is life

* Typecheck plz

* fix bigint to number conversion

* use httpz + localhost server for Linux

* clippy be right

* Remove console.log

* [wip] proper auth

* fix Linux sidebar padding

* Secure Axum server with random

* Extracting app setup specific to linux to a different file

* remove outdated comment

* Some tweaks on cursom_uri.rs

* file_path_with_location doesn't need to be a named include

* fix typo

* factually wrong comment

* Change `unwrap` to `expect`

* bruh

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
2023-02-14 13:27:11 +08:00
Jamie Pine f47a2d58e5
[ENG 239] Onboarding Flow & Location Settings (#529)
* begin better onboarding

* added input and altered text

* better router & text + database icon

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>

* work on privacy screen + radio buttons

* fix video extension bug and alter screens

* add pending schema and location manager helper

* functional onboarding

* added secure temp store and started creating library loading screen

* fix secure temp keystore + api

* better onboarding

* added location settings and some overview concept, all WIP

* fix switch

* prep

* fix location router

* added backend settings

* attempted to fix form

* begin indexer rules editor, plus tweaks

* indexer rules coming soon

* fix onboarding img size

* cleanup

* clone is needed here, but clippy no like

* sike

* whole bunch of fixes

* clippy + ts

* Removing some TODOs from api/libraries.rs and fixing db size calculation

* moved object kind to client, added half functionality for appearance settings

* fix RadioGroup helper

* fix type issues

* cargo fmt

* fix creating library error handling + invalidate location list on update

* forgot to switch back to onError

* Invalidating getStatistics query on library creation and introducing the concept of waiting for a job on FileCopierJob

* F* cargo fmt

* fix RadioGroup interactivity

* wipe all migrations

* put back COLLATE NOCASE on extension columns

* update core.ts

* remove unused device component

* fix typeerror in mobile

---------

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2023-02-10 14:08:13 -08:00
Brendan Allan 8396d0f3ee damn i'm stupid 2023-02-07 21:00:27 +08:00
Ericson "Fogo" Soares 50a8eb689b
[ENG-342] Block location watcher for files that are being actively modified (#522)
* Introducing LocationManager to stop and reinit watching a location

* Temporarely ignore events for a path at location manager

* Refactoring some functions to a functional style
Also introducing a tracing directive to use info level on manager logs
and fixing pnpm prep due to a conditional compilation error

* Refactoring location manager actor

* Fixing pnpm prep due to conditional compilation problems
2023-01-19 19:49:23 -08:00
Brendan Allan 676e512c4a
Beginning of sync stuff (#502) 2023-01-04 23:11:55 -08:00
Ericson "Fogo" Soares bcbcd260d4
ENG 223 Location Awareness (#468)
* Introducing location online/offline checks and location relink

* Some initial drafts for location watchers

* Location metadata relink and add library

* Many improvements at job system
Now using prisma batching at identifier job
Removing blocking I/O from extension subcrate
Implementing lazy generation of thumbnails
New current directory identifier job to be used on light rescans

* Some optimizations on identifier and object validator jobs

* merge jamie's identifier PR

* fully repaired identifier job

* properly hooked up object kind

* inspector fix

* fix video badge

* small improvements to libraries settings

* identifier and inspector improvements

* fix feature flags and hook up context menu location utilities

* BETTER CONTEXT MENU x100

* test-files

* style tweaks

* new icon designs

* manifest

* fix thumbnails on web

* media data

* New Location Watcher and some minor fixes

* disable broken media_data extractor, wip

* wip

* function name fix

* Fixing pnpm prep and some warnings

* Solving a race condition beetween indexer job and FS event handlerSome other minor warnings

* Generating thumbnails on watcher

* Remove event handler on watcher

* Some initial works on modify events and other small fixes

* File update event

* Trying to be more generic with used events and some tests to validate our assumptions

* Turning on location metadata file

* Introducing core unit tests on CI pipeline

* Submiting new unit test assumptions to validate on windows CI

* Fixing unit tests

* Fixing unit tests again

* Fixing unit tests

* Fixing unit tests for macos

* Fixing unit tests for macos again

* New structure for platform dependent event handling
Implementing event handlers for Linux and MacOS

* minor fixes + rustfmt + clippy

* Windows event handling

* Introducing a feature gate to only use location watching on desktop app for now

* Putting more stuff behind feature gates to avoid warnings

* Adding feature to cargo test on CI

* Changing some debug logs to trace logs and removing Jamie specific stuff

* Make location removal from manager less async

* fix build when "location-watcher" feature disabled

* fix types + clippy

* make location manager non-static

* remove uses of `to_string_lossy`

* more invalidate_query calls

* Expose `library_ctx` directly to avoid needless clones

* New materialized_path handling for directories

* Removing cascade delete between file_path and object
- Some other minor stuff

* remove unused `CurrentDirFileIdentifierJob`

Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-12-31 00:53:24 +08:00
Brendan Allan b713c896a0
More Sync Stuff (#438)
* broken sync example

* move to react

* filter owned ops more

* update deps

* working sync

* relation operations

* fix pnpm lock

* please rustfmt

* fix api

* compare strings properly

* please clippy

* feature gate logging

* use bleeding rspc in example

* use bleeding rspc

* use generated rspc client
2022-10-27 23:12:28 -07:00
Oscar Beaumont aae3da9b8a 🎉 Fix core on Android 2022-10-18 20:57:17 +08:00
Oscar Beaumont 75c4680b43 Merge remote-tracking branch 'origin/main' into merge-p2p-code 2022-10-07 05:56:05 +08:00
Oscar Beaumont d7fddc83f7 fix major bugs in p2p PR 2022-10-07 05:51:40 +08:00
Oscar Beaumont 598ba38a9d merge in P2P code 2022-10-07 05:32:45 +08:00
Brendan Allan f1b55f1101 merge main into update-rspc-and-more 2022-10-06 18:34:18 +08:00
Jamie Pine 5ab432ae46
Magic bytes 🪄
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-10-05 13:16:22 -07:00
Brendan Allan 45ff212e97 merge main into update-rspc-and-more 2022-10-05 12:01:50 +08:00
Jamie Pine d27ff3cd80
Object Kind (#397)
* add temp custom icons and tweak styles

* tweaks

* - added Object type structs
- added extension enums with variant macros
- improved explorer rendering
- added database migration hotfix

* - added dev only data folder
- improved explorer image loading

* macros do rule !

* remove baselining

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-10-04 20:34:41 -07:00
Oscar Beaumont 60e228ec94 upgrade rspc 2022-10-02 01:16:11 +08:00
Jamie Pine 3e8c33d1c0
Added crates folder (#389)
* restructure core for crates folder

- improve naming consistency
- added placeholder files for near future code
- added docs

* - removed all typescript from core
- moved rspc bindings to client

* remove useless git ignore & rustfmt
2022-09-29 21:02:29 -07:00
Ericson "Fogo" Soares 6fd620087b
Video thumbnails (#376)
* Preparing some scaffolding for video thumbnails

* Implemented thumbnail generation for videos
* Propagating errors of `Node` creation
* Using ffmpeg feature gate

* Introducing ffmpegthumbnailer-rs as a subcrate on core

* - rename to thumbnailer
- fix explorer thumbnail bug
- add more supported video types
- re-fix explorer performance

* remove nested licence

Co-authored-by: Jamie Pine <ijamespine@me.com>
2022-09-24 01:21:13 -07:00
Oscar Beaumont ef59aa40e8 Merge remote-tracking branch 'origin/main' into eng-237-explorer-performance-2 2022-09-15 12:45:05 +08:00
Oscar Beaumont dd04625a4f properly shutdown the core when using server 2022-09-14 19:02:11 +08:00
Oscar Beaumont b6a2c98ae5 assorted minor changes 2022-09-09 07:57:35 +08:00
Oscar Beaumont 3caf844a9e fix the production build issue + cleanup frontend 2022-09-09 06:29:47 +08:00
Jamie Pine 05bcb6e1b0
Assignable Tags (#370)
* Tag queries + Identifier bug fix

- added empty pages for docs
- added non-functional "New Library" button to sidebar
- to accomplish above, moved dialog logic to component folder
- fixed Identifier bug where location id was not considered in the orphan files query, meaning it would attempt to identify many non-existent paths and fail to create the legitimate ones

* (fix) maintain file item aspect ratio in grid view
(fix) get tag query + get all tags

* codegen

* resurrected context menu

* fix window flash

* remove location based thumb sorting + update react on landing

* add is_archived to location

* improved context menu

* assign tag + refactor explorer store

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>

* assign/unassign tags from context menu

* fix lint

* keep context menu open on tag change

* fix brendan feedback + merge main

* fix type

* codegen

* style changes

* revert windows size and xcode proj

* remove outdated doc

* coming sooooooon

* updated release notes

* release notes

* dashes > dots

* clean up docs

* more docs!

* restore entitlements

* remove unused util

* regenerated migrations post merge
- some additional error handling added to migration runner, needs more work!

* refactor explorer to support tags

* fix error and revert explorer bg color

* put it in a box they said

* revert location id store removal

* upgrade hero icons + style tweaks

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
2022-09-04 13:00:24 -07:00
Ericson "Fogo" Soares 25c111a8bf
Introducing Indexer rules (#363)
* Introducing indexer rules for the indexer job
* Solving a minor race condition at `Worker::spawn`
* Many refactors at database accesses with prisma
* Documenting some features of indexer rules

* Updating to new prisma rev

* Updating photo

* Some documentation tweaks

* fix note editing

* Implementing some requested changes
* Fixing unit tests on walk function
* Using rsps::Error::with_cause instead of new

* Introducing a compoung unique key between `node_id` and `local_path` at `locations` table

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-09-01 16:38:26 -07:00
Oscar Beaumont c7441d1d64
Rustify mobile (#361)
* Refactor navigation flow & types

* Remove drawer screen wrapper

* Remove DrawerItem + cleanup

* Switch to JS Stack Nav & header animations

* [WIP] Spacedrive core on Android & IOS

* Update Podfile and cleanup Contributing guide.

* Remove @sd/core from mobile

* File Modal

* Prettify File Modal & Add date-fns

* IOS subscriptions

* Update package versions

* Custom header for stack screens

* android subscriptions

* Animate Drawer button & template for Search screen

* Search header

* Fix Search icon being weird

* Merge branch 'main' into rustify-mobile

* fix rspc dep + setup script for mobile

* Less margin on header

* Move shared assets & drawer logo for mobile

* support for IOS simulator

* add type safe rspc hooks to mobile

* Cleanup PR & Update packages

* Updated bindings from main

* Update lefthook.yml

* Remove `tag` folder from core
The `tag` folder came back from the dead. Maybe it got confused in merge conflict?

* update pnpm lockfile + fix tsc errors

* fix asset import

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2022-08-29 04:59:09 -07:00
Oscar Beaumont ea92af57f8
Move Rust backend to rspc (#345)
* move Rust backend to rspc

* move server to Axum + remove parts of old bridge

* move frontend over to @rspc/client

* move core to rspc + update deps

* fix Typescript errors + upgrade deps

* document invalidate_query! macro

* general cleanup + upgrade to PCR 0.6.0

* prisma error handling

* upgrade to rspc 0.0.4

* update vite-plugin-ssr

* fix typescript

* fix builds

* put landing page app name back

* hardcode ffmpeg version on Windows

* rename 'command' to 'mutation' to line up with react-query terminology

* upgrade rspc to v0.0.5 + fix types

* use shared ffmpeg binaries

* general Typescript cleanup

* fix clippy workflow failing due to tauri proc-macro

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-08-03 08:36:03 -07:00
Ericson "Fogo" Soares 85e5eec993
Resumable Jobs + Lefthook Integration (#344)
* Introducing Lefthook for git hooks automation
* TypeScript typechecking and linting
* Rust formatting and linting
* Spellchecking (also corrected spell errors in some files)
* Check links in md files

* Introducing resumable jobs
* Abstractions to pause and resume jobs automatically when application exits and is started
* Changing database to use Bytes for UUID fields
* Changing uuid fields on core to use uuid::Uuid instead of String
* Updating some dependencies and introducing msg_pack serialization to save job state on database

* Fixing some clippy warnings

* Fixing a regression introduced on identifier job, doing too much db accesses concurrently
2022-07-27 00:06:34 -07:00
Ericson Fogo Soares ee3528a8c5 Merging latest main branch commits and some small fixes 2022-07-18 12:39:58 -03:00
Jamie Pine 9961c49759
Bunch 'O Features (#336)
* CRUD for tags.

* Implement tags query in open.rs and make some changes to CRUD.

* Tag update.

* Hopefully working get tags.

* added node config + spaces schema

* add missing routes

* begin tag ui

* renaming query names to better fit convention

* tags progress

* tag edit

* fix delete tag description

Co-authored-by: xPolar <polar@polar.blue>
2022-07-17 20:45:04 -07:00
Ericson Fogo Soares ec955e1d82 Merge branch 'main' of github.com:spacedriveapp/spacedrive 2022-07-17 17:28:05 -03:00
Jamie Pine 7839fe43e1
Explorer Grid View (#334)
added grid view, as well as:
- moved location context to client lib
- merged library settings with main settings
- added some missing settings
- removed demo locations due to FileItem props syntax change, they are currently being replaced anyway by Oscar in another PR
- added functioning favorite button to the inspector, that works now
2022-07-14 13:50:48 -07:00
Ericson Fogo Soares 471babf4c0 Merge branch 'main' of github.com:spacedriveapp/spacedrive 2022-07-12 09:12:43 -03:00
Ericson Fogo Soares 75a8b49661 Merging with main 2022-07-11 18:21:50 -03:00
Oscar Beaumont 7e9d036aee allow events to work from web 2022-07-11 16:38:02 +08:00
Oscar Beaumont c685ce5fe9
Library manager (#258) 2022-07-10 19:05:24 -07:00
Ericson Fogo Soares ef2f60ff33 Fixing Clippy warnings
* Using tokio on all filesystem operations
* Some minor tweaks to be more consistent on paths between &str, AsRef<Path> and PathBuf
* Using logging instead of println
2022-06-28 22:56:49 -03:00
Jamie Pine 2cc3f3d95d
Location Settings (#302)
* Delete locations

+ Show online status

* style tweaks

* tweaks

* location rescan button

* fix location delete db locking bug

* opting to remove self referencial relation on file_path

* correct query

* consolodate migration

* consolodate migrations
2022-06-24 06:26:45 -07:00
Jamie Pine ff9df3f8d1 (fix) notes: they work predictably
- added lodash for debounce outside react tree
- added command function to bridge
- updated FAQ
2022-06-22 04:13:11 -07:00
xPolar 77713bab7e
Notes on files. (#253)
* Temp fix for build.rs

* Note implementation

* Notes work now, need to iron out some things.

* Finish file notes.

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>

* Remove lodash debounce

* Fix pnpm locl

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
2022-06-20 21:14:05 -07:00
Oscar Beaumont 79fa96c3bd
Fix CI (#242) 2022-06-14 22:27:03 +08:00
Oscar Beaumont 50838c77c2
Merge branch 'main' into eng-136-file-crud 2022-06-14 13:24:33 +08:00
xPolar 78d709c025 Location CRUD 2022-06-13 22:20:19 -07:00
xPolar 9ce9a0e0aa Crud for locations. 2022-06-13 22:11:02 -07:00
Oscar Beaumont 6e0c944d2e remove unused code + cleanup Rust imports 2022-05-30 22:26:59 +08:00
Jamie Pine 7a51c93a3a fix indentifier path (WIP) 2022-05-26 01:11:04 -07:00
Jamie Pine 4fe8e26266 waitlist ui 2022-05-24 13:46:00 -07:00
Jamie Pine 8356f39737 landing prep 2022-05-23 03:16:23 -07:00
maxichrome a0d0938001
format using tabs 2022-05-22 23:07:35 -05:00
Jamie Pine 2a5fd305b1 improvements to landing + ui + rust stuff 2022-05-12 17:10:23 -07:00