* Some initial drafts
* Finising the first draft on non-indexed locations
* Minor tweaks
* Fix warnings
* Adding date_created and date_modified to non indexed path entries
* Add id and path properties to NonIndexedPathItem
* Working ephemeral location (hardcoded home for now)
* Fix UI for ephemeral locations
* Fix windows
* Passing ephemeral thumbnails to thumbnails remover
* Indexing rules for ephemeral paths walking
* Animate Location button when path text overflow it's size
* Fix Linux not showing all volumes
* Fix Linux
- Add some missing no_os_protected rules for macOS
- Improve ephemeral location names
* Remove unecessary import
* Fix Mobile
* Improve resizing behaviour for ephemeral location topbar path button
- Improve Search View (Replace custom empty component with Explorer's emptyNotice )
- Improve how TopBar children positioning
* Hide EphemeralSection if there is no volume or home
- Disable Ephemeral topbar path button animation when text is not overflowing
* minor fixes
* Introducing ordering for ephemeral paths
* TS Format
* Ephemeral locations UI fixes
- Fix indexed Locations having no metadata
- Remove date indexed/accessed options for sorting Ephemeral locations
- Remove empty three dots from SideBar element when no settings is linked
* Add tooltip to add location button in ephemeral locations
* Fix indexed Locations selecting other folder/files in Ephemeral location
* Minor fixes
* Fix app breaking due to wrong logic to get item full path in Explorer
* Revert some recent changes to Thumb.tsx
* Fix original not loading for overview items
- Fix QuickPreview name broken for overview items
* Improve imports
* Revert replace useEffect with useLayoutEffect for locked logic in ListView
It was causing the component to full reload when clicking a header to sort per column
* Changes from feedback
* Hide some unused Inspector metadata fields on NonIndexedPaths
- Merge formatDate functions while retaining original behaviour
* Use tauri api for getting user home
* Change ThumbType to a string enum to allow for string comparisons
* Improve ObjectKind typing
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* Structs for views
* hook up new preferences types to preferences system
* wip - draft
* laters useEffect, hi explorer context :D
* fix types
* wip
* hm
* preferences wip
* tweaks
* use search::SortOrder
* Refactor explorer settings to use useExplorer and useExplorerSettings (#1226)
refactor to use useExplorer and useExplorerSettings
* preferences
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
* `Library` -> `LoadedLibrary`
* Move `ThumbnailRemoverActor` onto `NodeServices`
It should either be on `Library` or `NodeServices` none of this in-between stuff.
* small > big files
* prune imports
* isolate cringe
* it helps to test the code
* `Vec` -> `HashMap` - faster lookups
* mpscrr
* minor fixes
* fix language
* `!Sync` :(
* lets goooooo
* removed a comma
* fixes
* fix desktop
* lol, no one uses it
* Clippy
* #1119 Issue: Implemented "Copy as Path" functionality
I addressed issue #1119 by successfully implementing the "Copy as Path" functionality within the "More Actions" section of the Context Menu. This feature enhances user experience and offers a convenient way to copy file paths. While considering the valuable suggestion of potentially associating this option with the "Alt" key in the future, I opted to make it accessible through the "More Actions" section for now. All tests have passed smoothly
* Extend "Copy as Path" functionality to Overview, Search, and tags explorer
This commit extends the "Copy as Path" functionality to three additional screens in the SpaceDrive application: Overview (under categories), Search, and tags explorer. Users can now conveniently copy file paths from these screens, enhancing their overall experience with the application. The implementation has undergone thorough testing and is ready for review and integration into the project.
* Enhanced File Path Retrieval with RSPC Integration
The code now uses rspc to obtain the filePath, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
* Merge branch 'eng-848-feature-copy-as-path' of https://github.com/Raghav-45/spacedrive into eng-848-feature-copy-as-path
* Enhanced File Path Retrieval with RSPC Integration
The code now uses RSPC to obtain the file path, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
In the previous file path retrieval method, we relied on different file access techniques, which often led to slower & non-optimal responses
* Formatted coder with Prettier
* Refactor: Update file paths to '@sd/client'
* doing things with useLibraryMutation instead of useLibraryQuery
doing things with useLibraryMutation instead of useLibraryQuery, so that we only fetch file path only when needed
* Replace locationIdToPath api route with getPath
- Resolve full file object path on the backend instead of the front-end
- Use a query instead of a mutation
- Export rspc queryClients to allow non-reactive usage
- Error handling
- Formatting
* Update Object's context menu to use query
* Move onClick logic inside the CopyAsPath Element
* Improved a Little
- removed unused imports
- formatted document with prettier config which is present in code files `.prettierrc.js`
-
* Update Items.tsx
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: nikec <nikec.job@gmail.com>
* less stupid name
* yeet
* awaiting futures is kinda important lol
* no-async
* more proto stuff
* cleanup
* move it round
* None of my homies like broadcast
* minor
* do the shuffle
* restore after force push
* reusing `sysinfo::System` as intended
* fix lol
* remove `node_id` from `Volume`
* Remove `node_local_id` from `Library`
* Remove `Job` to `Node` relation
* feature flags be like
* press save 4head
* remove `Location` -> `Node` relation
* `volume.rs` to `volume/mod.rs`
* yes
* add `Instance` model and deprecate `Node` model
* pairing is better now
* Pretty code
* thinking in code
* wip
* What if Observables but in Rust?!
* Observables aren't it + `useP2PEvents` hook
* more around some jsx
* Trade offer: bad code for working pairing?
* Unit test pairing protocol
* fix everything up
* corrections
* Have you got a moment for our lord and saviour Clippy
* tsc --fixMyCode
* Prisma being wacky
* Config files being f'ed up
* broken config after migrating
* Zed being Zed
* Argh
* cliipzy
* rewind
* Fix truncate logic
* wip: instances in peer metadata
* Rethink instance ids
* fix
* whoops
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Partitioned paths to be updated on walker
* Updating file_paths in indexer
* Properly tracking modified date on renames
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* Attempt at fixing stats
* Fix macOS disk stats retrieve logic
- Ignore mounted dmgs when calculation disk total/free size
- Only take into account disk mounted by macOS
* macos only import
* Fix Linux
* Replace byte-size with a custom implementation that supports BigInt
* Fix NaN in Statistics
* clippy
* fmt
* Move linux get_volumes to a specilized function
- Fix ZFS handling
- Improve handling of disk symlinks and multiple mounts
* Fix macOS
* Fixing conflits of mts code files showing as video
* Introducing a reidentify_objects param on fullRescan
* Fix job output metadata in case of completed with errors
* yeet
* destructure `JobState` when passed to `finalize`.
Let him cook.
* `impl Job for JobInitData` instead of it being `Job::Init`
The pan is on high heat and the 3 sh-meats are coming out.
* Remove `JobInitData` & `IntoJob` & `Job::new`
* clean up a little
* Remove `Job.stateful_job` in favor of `Job.state.init`
Yeah this isn't great but lets get these changes working and then think again about it.
* Properly call `StatefulJob.finalize`
* she'll be right
* fix `initialize_resumable_job`
* builder syntax for creating jobs
* Have Rust gone too far?
* Minor fixes
* fixes
---------
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
* set date_created to tag
* update tag date modified when edited
* use `FIxedOffset` for tag `date_created`
* remove dead code and use fixedoffset
* discard duplicate code
* remove dead code & add current time to field
* remove unused code
* no longer needed in data
* set creation time for tags
* fix tag creation time
* fix & finalize timestamps
* `update_many` was not needed here
---------
Co-authored-by: brxken128 <77554505+brxken128@users.noreply.github.com>
* Fixing some warnings
* Optimizing job workers
* Removing the delay from getting job reports
* remove some commented out stuff
* Trying to optimize job report route
* fix thread 'tokio-runtime-worker' panicked at 'attempt to subtract with overflow'
* fix progress bar
* Now pause works from the UI
* Fix
* Now the worker set job report to paused
* show errors for job pause/resume
* bunch 'o ui fixes
* order location in the sidebar
* fix some text
* fix clear all jobs
* fix clear jobs & job group ui
* show queued jobs
* object validator job text
* make cancel button work
* better executable logo
* Now cancel button works instantly
* disable resume button
* remove disabled props from pause/resume buttons
* remove large comments
* show paused progress
---------
Co-authored-by: James Pine <ijamespine@me.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
* lul, message parsing with a response is cringe
* deadlocks hurt me physically
* super secret commit with many secret secrets
---------
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
* Fixing copy, cut and paste
* Bug on duplicating files without extensions
* Fix paste only ignoring the location origin when validating relative paths
- Add Error handling to all context menu actions
- Hide FS actions in Overview and MediaView
- Remove redundant useExplorerSearchParams
- Add default schema to the Zod param hooks
* Hide FS actions in all Explorers but location ones
- Fix react warnings in RenameTextBox
- Fix ReactTextBox not selecting the whole file name, instead of just up to file extension
- Fix react warning due to inputing missing onChange
* basic show jobs for cut, copy and delete in job manager
* tweaks
* Fixing some warnings and minor tweaks
* Rust fmt
* Fix cut between locations on Linux
* Change how routes retrieve route params
- Replace useZodRouteParams with useLoader
- Define all schemas in the router file instead of in the route Component
- Parse schema in loader to avoid requiring the route Components having to import the schema from the router file
* Remove default argument from useZodRouteParams
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: James Pine <ijamespine@me.com>
* [ENG-779] Finalize UI
This is one branch with a variety of UI changes
add tag select mode bar without functionality
fix group job status
add notice icon with info to stat icons
add WIP notice to media view
add modal before add location with greyed out clouds
remove disappearing add location button
add WIP spacedrop page
bring back limited key manager UI
add options bar on search page without functionality
Add greyed out encrypt library button or setting
See more button on locations
Show locations on node screen
Fix overview category left padding
* key manager placeholder
* stat info
* nodes screen
* location click yay
* fix size in bytes
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
* small ui improvements
* sh*tty see more button
* last touches
* fix merge boo boo
* Fix mobile
- Move `getItemObject`, `getItemFilePath`, `getItemLocation`, `getExplorerItemData` to @sd/core to allow mobile to use them
* Formatting
* Normalize displayed file size between all screens
- Replace every use of internal formatBytes with byte-size dep
---------
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>