Commit Graph
89 Commits
Author SHA1 Message Date
Manuel Raynaud 3979a600c8 ️(back) use redis as session backend in developement
We want to persist the session during development. Otherwise the session
is reset everytime the server is restart. This behavior make developing
bot a front and back feature a nigthmare, we spend our time login again
and again
2025-03-31 15:56:28 +02:00
Nathan Vasse f82d8678a0 ♻️(front) tiny bit of cleanup
Just in order to take into account the feedback from the review.
2025-03-31 12:14:42 +02:00
Nathan Vasse 2da8e683b6 (front) add dropdown to import button
We want to open two kind of file picker, one for files and the other
for folders. Important: at the moment it is not possible to select
multiple folders at once via filer picker.
Also I used a bit of a hackish approach with webkit features and
two input file in order to make the two work, but no other alternative
is given from react drop zone at the moment due to the limitation of
the File System API.
2025-03-31 12:14:42 +02:00
Nathan Vasse c6f2b18974 (front) add files and folder upload
This feature adds complexity to the upload code. So in order to keep
it isolated, I created dedicated hooks. Also the dropZone logic is
brung up to the ExplorerContext in order to make available dropzone
context to the ExplorerTree.
2025-03-31 12:14:42 +02:00
Nathan Vasse 19c10bf89b ♻️(front) create dedicated createFolder mutation
This mutation will also be used by the hybrid upload of files and
folders.
2025-03-31 12:14:42 +02:00
Nathan Vasse 6ec45bb772 ♻️(front) add AppError
The current errorToString was showing complete javascript errors.
Which is not what we want, it those cases we want to show generic
errors, technical informations are not needed to users. So to
make sure some error are shown to the users, use AppError.
2025-03-31 12:14:42 +02:00
Manuel Raynaud dc5219bbc3 (back) fix update tests 2025-03-31 10:54:05 +02:00
Manuel Raynaud cccc868b10 🐛(compose) use good development nginx config
The nginx config used by the nginx service running in compose is not the
good one. Fixing it should fixing access to the medias.
2025-03-31 10:31:39 +02:00
Nathan Vasse 3e1abbe615 ♻️(front) delete duplicate item action
We won't implement this feature in v1.

Fixes #61
2025-03-25 16:37:30 +01:00
Nathan Vasse c869f69e4a 🐛(front) fix create folder input zombie state
When closing and re-opening modal, the input contains the previous
entered value but with a buggy label.

Fixes #57
2025-03-25 16:37:30 +01:00
Nathan Vasse 611fade22b (front) add rename item modal
This modal is used to rename item. It preselect the filename without
its extension.
2025-03-25 16:37:30 +01:00
Nathan Vasse 53bebe5617 (front) add rhf input component
This component is used to make rhf work correctly with cunningham.
2025-03-25 16:37:30 +01:00
Nathan Vasse ebf7d38548 ♻️(front) make dedicated file for folder create modal
Nothing huge to say here, just make comply the gitlint.
2025-03-25 16:37:30 +01:00
Nathan Vasse 0ceb132536 (front) add optimistic update mutation
This mutation is used to perform update mutations.
2025-03-25 16:37:30 +01:00
Nathan Vasse 9459ccb2fd (front) add getExtension function
This function is useful to guess to extension of an item.
2025-03-25 16:37:30 +01:00
Nathan Vasse 07847d112b (front) add update item method to drivers
We need this method to perform various update operations.
2025-03-25 16:37:30 +01:00
Nathan Vasse c5b287403f ♻️(front) add dot env proper setup
We need to publish these defaults in order to make bootstrap work.
2025-03-25 09:38:38 +01:00
Nathan Vasse 2e7f2e40b8 (front) handle item title overflow in explorer
When there is a an overflow, we display a tooltip on hover.

Fixes #58
2025-03-24 17:38:10 +01:00
Nathan Vasse 2d128b3041 (front) add keyboard navigation into explorer
This is a first approach, not guaranteed to be bullet proof in terms
of accessbility.
2025-03-24 17:15:24 +01:00
Nathan Vasse 0d59190192 (front) make unique item delete work
This comes along with the multiple item deletion, we want to allow
unique deletion via the action menu.
2025-03-24 17:15:24 +01:00
Nathan Vasse 61eea3725d ♻️(front) make use of the new mutation
Make use of the new hook in the selection bar as well as listen to
keyboard shortcuts to delete.
2025-03-24 17:15:24 +01:00
Nathan Vasse 0655e99c35 🌐(front) update delete i18n
This new translation is more appropriate for one item deletion.
2025-03-24 17:15:24 +01:00
Nathan Vasse d18ab72723 (front) add useMutations dedicated hook
As we need to use this hook from multiple places, let's create
a dedicated centralized mutation.
2025-03-24 17:15:24 +01:00
Manuel Raynaud 4035107ada 💚(back) fix tests related to expose filename in the serializer 2025-03-21 16:12:05 +01:00
Manuel Raynaud f452c497b6 💻(user) fix the User.language
The use of a lazy function here make the Django migration
detector to generate a migration every time we run `makemigrations`.
This is not mandatory to have a lazy here as the settings are loaded
once at runtime beginning.
As the choices makes noop migrations, we directly use the setting in
the initial migration.
2025-03-21 15:42:23 +01:00
Manuel Raynaud 32864214f8 (back) create a default workspace on user creation
When a user is created, no matter the way it is created, a default
workspace is created for him.
2025-03-21 15:42:23 +01:00
Manuel Raynaud 9cbdee4788 (back) add main_workspace property ot Item model
We want to flag an item as a main workspace. To do that a new property
main_workspace has been added to the Item model.
2025-03-21 15:42:23 +01:00
Manuel Raynaud f4a6b9603a (back) enhance ordering on /items and /children
We want to manage more property for the ordering on /items and
/children. The type is added to the existing list.
2025-03-21 14:52:20 +01:00
Nathan Vasse c6f029f30c (back) add filename into Item serializer
We need this attribute in order to guess the extension of each
file on the frontend side.
2025-03-21 14:28:04 +01:00
Nathan Vasse 7b93d63d81 (front) add file logo in explorer
Enhance the ui by providing appropriate icon for file based on their
mime types.
2025-03-21 14:28:04 +01:00
Nathan Vasse d013ea0c61 🐛(front) fix frontend auth redirect
Due to the previous addition of throw on api error, this component
was not catching the error instead of redirecting to login.
2025-03-19 15:54:04 +01:00
Nathan Vasse f95dcd7a36 ♻️(front) tidy up a bit
Small refactors here and there, nothing much complicated.
2025-03-19 15:45:21 +01:00
Nathan Vasse dd660939e7 ♻️(front) make error handling work on file upload
Using mutateAsync makes the automatic global handling of error
don't work. It forces to catch the error locally each time, while
this is a strange behavior, this is totally assumed by
react query authors. So to bypass this while preversing the
sequential execution of uploading, we need to refactor this that
way.
2025-03-19 15:45:21 +01:00
Nathan Vasse ab8e77bc76 (front) display error toast
When a react query query or mutation is trigerring an error we
automatically display a toast with the most appropriate message
possible. It is also possible to bypass this automatic behavior
by giving a flag to the meta attribute of useQuery or useMutation.
2025-03-19 15:45:21 +01:00
Nathan Vasse b4c734e60a (front) add toast type info and error
We need to have multiple types of toast to display various infos.
2025-03-19 15:45:21 +01:00
Nathan Vasse aa2d52a5d2 ♻️(front) make fetchAPI throw on error
We want to trigger error handling mecanism when the response code
is not ok.
2025-03-19 15:45:21 +01:00
Nathan Vasse 19178e0ca4 (front) add tooltip on update at
In will be usefull in some cases to know the exact date time string.
2025-03-19 15:45:08 +01:00
Nathan Vasse 796036c741 (front) add x time go in explorer
We want to display easy to read date to improve readability.
2025-03-19 15:45:08 +01:00
Nathan Vasse 8e7a8a3f1d (front) open file on double click
I just have to add a body to this commit to pass gitlint :).
2025-03-19 15:45:08 +01:00
Manuel Raynaud e7b7a6186b (back) expose mimetype property in Item serializers
The front application needs to know the file mimetype. We have this
information in the database, we add it yo the item serializers.
2025-03-19 15:38:24 +01:00
Manuel Raynaud 3730aea4b3 (back) save file item mimetype in upload_ended endpoint
In order to know the WOPI client to use for a given item, we have to
save its mimetype to then use it.
2025-03-19 15:38:24 +01:00
Nathan PanchoutandNathanVss 01345ca7ba (front) updated imports to the UI Kit
Imports have been modified to use the gouvfr UI Kit, replacing the old
one. This includes updating dependencies in the package.json file and
adding version 0.1.3 of the UI Kit.
2025-03-19 10:08:56 +01:00
Nathan Vasse 09042c8437 ♻️(front) fix casing problem in import
The config import was causing lots of warning in the console, due
to the casing.
2025-03-17 16:54:24 +01:00
Nathan Vasse a11e166dff (front) add optimistic multi delete
We can now select mutiple files and delete them in one shot.
2025-03-17 16:54:24 +01:00
Nathan Vasse 50e196846a (front) add upload files
We can now drag n drop files anywhere in order to trigger an upload
to the current folder. This is a first version, we will improve it
soon.
2025-03-17 16:54:24 +01:00
Nathan Vasse a586a02639 🌐(front) add upload and delete translations
Those translations are gonna be used in the subsequent features.
2025-03-17 16:54:24 +01:00
Nathan Vasse d6150e7db8 (front) add file upload toast
This toast is made to show the uploaded and uploading files,
including their size and the progress of their upload.
2025-03-17 16:54:24 +01:00
Nathan Vasse 28f4024e6d (front) add circular progress component
This component will be used in order to display controlled
progress.
2025-03-17 16:54:24 +01:00
Nathan Vasse e85a6f0061 (front) add toaster component
We need to be able to put toast in the app with great control
over them. That's why the cunningham one is not enough, we cannot
make a toast stay on the screen, on programatically hide it.
With react-toatify we can :)
2025-03-17 16:54:24 +01:00
Nathan Vasse 231bf6c153 (front) add upload and delete methods to driver
We need to prepare the drivers in order to implement the
file uploading.
2025-03-17 16:54:24 +01:00