pingvin-share
pingvin-share copied to clipboard
π Feature: Reverse-Share Options
π Feature description
Basically they would would be similiar to reverse shares where you invite people to create shares, but instead of them creating a share they would only find an upload box, where they can upload but nothing else. After they would have uploaded something, the person who created the dropzone could download the files uploaded.
π€ Pitch
I have always used nextcloud for this, and even though not often there are situations where this is just a lot easier. Say you have a friend that wants to send you something but doesn't understand all the options and is just very confused on what to do, maybe it takes forever for them to send you the link of the share they created. With this you'd only send them a link they'd upload their files and that's it, nice and simple.
You can see the share they've created directly on the reverse shares management. I understand that the reverse share is better at some points and also have its issues, but using it correctly, it stays a great way to do what you ask. Except for very large shares, where the number of shares is huge.
@NLion74, I've made the #178 and #179 pull requests, in order to make easier the usage of reverse shares. You can now directly access the shares by clicking the id, and you can easily copy the share link, which was totally impossible before
@pierrbt, I suppose I'll be able to work with reverse shares. I must say that I'd still like some kind of feature in the reverse shares to disable all the configuration the uploader has to do. Sometimes it can be annoying or even hard to get some non-tech people to upload their files to a reverse-share as simple as it seems, I've been there.
The way it is now the uploader still has to generate a link and may get confused by password options. I'd find it great if there was an option for the reverse-share creator to disable those options (Individually or all at once), and could choose the share link, password, etc. I would of course understand if that may not fit the feature and isn't going to be implemented or just no one sees the necessaty. In that case I'll just close this issue.
Yes, it's totally true, all the options might be confusing, and options like the password don't actually make sense. Maybe it could be nice to add another menu to configure the reverse shares' share options, and even set a "no options" mode, in which the config is reduced to 0. It wouldn't be that hard to implement (not as a real MegaDrop by example), and pretty useful.
What do you think @NLion74 @stonith404 ?
@pierrbt, that sounds great and would be pretty much what I intended from the start anyways.
I accidentaly closed the issue.
This feature does not require big changes, but it stills require multiple changes in the backend ans frontend so this might take some time. I would also like to wait for the approval of @stonith404.
@pierrbt Yes I like this idea! If the user that uses the reverse share link clicks the "Upload" button, I probably wouldn't show the share modal at all, but directly start the upload.
Yes, I thought the same thing. The easy mode wouldn't ask anything, it would create a random share id, and set all the default values (or predefined)
Hello everyone. I've quite progressed on the possibility to configure the reverse shares' shares. I'll show you what's new on my branch, with a few pictures and everything. First of all, @NLion74 I think you should change the name by a name that represents what will really be the feature about. So :
- I've created a new table in the database that stores the options that the shares will have, here is the schema :
model ReverseShareOptions {
id String @id @default(uuid())
share ReverseShare @relation(fields: [shareId], references: [id], onDelete: Cascade)
shareId String @unique
easyMode Boolean @default(false)
customLinkEnabled Boolean @default(true)
passwordEnabled Boolean @default(true)
descriptionEnabled Boolean @default(true)
maximalViewsEnabled Boolean @default(true)
}
- Then I've also added the configuration in the create modal :
And now, by example if I set the parameters of the first picture, when I try to upload files :
It only shows the requested fields.
So this will soon work, I've only have a problem, on all shares that aren't in easy mode (even the plain uploads), I have a bug because the share that are created do not contains anything. Indeed, the files start to getting uploaded but it cuts in the middle of the operation. I'll try to fix this but it's for soon :
Wow, I've just resolved the bug, it came from the fact that the function form.onSubmit()
returns THE function that we have to call to confirm. And like I was calling it directly when it's in easy mode, it worked, but in the form, I was calling it the wrong way, so I've just corrected this bug, and now, it works !
I'll just make some other changes to have the same name everywhere, the good spelling, comments, and better file partitioning. I'll also try to make the code cleaner, but well, it works !!
You can tell me what you think about this @stonith404 and @NLion74
@pierrbt What you've made there looks really promising. About the name, you're thinking something like "Reverse-Share Easy Mode" or "Reverse-Share Creator Options"?
Reverse Share Options is good. Anyway the issue will not stay for very long.
Hi,
Is this working ? Because I tried it and I can create the reverse share, send the link to someone, the person can upload something, i see the new share created but I can not access it... "unknown error occured"
But the files are here cause i see them in the volume...
I tried with an openid account and a regular internal account, both times the result is the same.
Has the #185 PR related to this been completely dropped?
@axiomen Well it was only some refactoring and the db migration to finish but i did not take the time to do it. Maybe I should take some time or you can finish it if you want. Let me know if you want to finish it
I don't really have enough of free time to tackle it.
I feel that the current reverse sharing feature is not very user-friendly for regular users. I am quite concerned that when collecting files from others, the interface might be confusing for them.
I would like to add an option directly on this interface to enable a simple sharing mode. When others open the link, they would only need to:
- Select the file.
- Click the share button.
- Wait for the upload to complete.
- Be informed that the file has been uploaded successfully, with an optional input box for them to fill in their name or any remarks.
I think the following information is not very useful during reverse sharing:
- Password, Max Views. As the person collecting the files, one should be able to access the received data without restrictions to avoid asking the uploader to re-upload. The file shared in reverse should also not be directly shareable by the uploader using the link.
- Email Recipients. When collecting files, the notifier should only be set by the collector, and the uploader should not need to fill in these details, which can also prevent the abuse of email services.
- Share Link. Personally, I believe that once the uploader has completed the upload, there is no need to send the link back to the collector. If others share this view, I think we should minimize or hide the share link to avoid confusion for the uploader about whether or not to inform the collector about the link.
These are my personal views, which I wanted to share with everyone and receive feedback on. I am willing to start a PR to improve this feature. I used machine translation, so I apologize if the tone is not quite right.
@IvanLi-CN Yeah, that's true. Reverse shares aren't very user-friendly. I agree with all your points, but I'm not sure if it makes sense to ask for the details after the share has been created. Couldn't we just request a name and description of the share before starting the upload, similar to normal shares?
@stonith404 I was too hasty. I was overly eager to receive the files as soon as possible, haha.
Indeed, it would be preferable to fill in the information before starting the upload, similar to how a regular share works.
However, on this point, could we perhaps have a dialog box pop up to ask for detailed information when the share button in the top right corner is manually clicked, rather than having it pop up immediately after selecting the files to upload as it does now? My concern is that when users are uploading multiple files, this dialog box might interrupt the process, leading them to mistakenly think they can only select files once.
@IvanLi-CN Yeah that's a good point. Previously, the modal didn't open automatically, but I implemented this change because of a feature request aimed to make the sharing process quicker. I think that's a general problem, not only for reverse shares. Perhaps we could consider implementing a user preference setting that allows individuals to choose whether the modal opens automatically?
@stonith404 Sorry, I seem to have remembered the file upload functionality incorrectly. It appears that currently, you can only select a file once, rather than being able to continue adding files after closing the dialog box as I mentioned earlier.
Based on the current situation where you can only select a file once, do we need to modify the logic? For example, when reselecting the files to be uploaded without automatically opening the creation dialog box, should we append the files instead of replacing the existing file list?
Additionally, I am planning to make the option to automatically open the dialog box a global setting that can be modified by the administrator. I wonder if this aligns with your intention. https://github.com/stonith404/pingvin-share/pull/474
For example, when reselecting the files to be uploaded without automatically opening the creation dialog box, should we append the files instead of replacing the existing file list?
Yes, I think that makes the most sense. In the past the behaviour was actually like this.
Additionally, I am planning to make the option to automatically open the dialog box a global setting that can be modified by the administrator. I wonder if this aligns with your intention. https://github.com/stonith404/pingvin-share/pull/474
That's great, thank you for contributing again :) You added the option to specify this setting globally, but don't you think it would make more sense if a user could individually set this setting in the user settings?
but don't you think it would make more sense if a user could individually set this setting in the user settings?
I also wanted to add settings to each user, but now the user's preferences don't seem to be saved in the database. I'm not sure how to save this flag, so I'll skip it first.
I now plan to implement the global option first, so that I can continue the development of reverse sharing with this option, and then confirm where the user's preferences are saved and add configuration options for each user.
@IvanLi-CN Okay that makes sense. Currently there aren't any user preferences stored in the database but we could just add a new property to the user table. Let me know when youβre finished with the global option, and Iβll be happy to assist you with adding the new property if needed.
@stonith404 For the user preferences storage field you wish to implement yourself, then #474 is already done and I will change the PR information. It looks like Prisma doesn't support SQLite's JSON fields yet, and I don't have any good ideas for implementing user preferences storage at the moment.