Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple Share Links #1928

Closed
58 tasks done
jesmrec opened this issue Mar 28, 2017 · 40 comments
Closed
58 tasks done

Multiple Share Links #1928

jesmrec opened this issue Mar 28, 2017 · 40 comments

Comments

@jesmrec
Copy link
Collaborator

jesmrec commented Mar 28, 2017

#Multiple share links is a new feature in oC10, that allows to create more than one public link over the same file/folder.

Current behaviour:

  • The Android mobile app only supports one public link.
  • The behaviour right now is showing the first one of the public links created on the server side.
  • If the link is edited in the Android app, the name is removed from the link in server side -> Add capability indicating support of multiple link shares core#27622
  • If the link is removed from Android app, the next one in the list is displayed.

It will require some actions:

  • Share activity using full screen instead of dialog style
  • Update wording of sections according to last update in iOS
  • Replace 'Add user or group' button with (+) button
  • Replace switch to on/off public link with (+) button
  • Move section with details of public links to new DialogFragment
  • Replace section with details of public link in ShareActivity with list of public shares
  • Add icon to delete public share in item list
  • Add icon to copy-to-clipboard AND share-with-apps public link in item list
  • Add angle icon to edit details in item list
  • Add name field to section with details of public link
  • For all the things below: ** grant compatibility with server <= 9.x **
  • Update domain model and database to support multiple public shares per OCFile
  • Update domain model and database to support optional name parameter in OCShares
  • Update FileDataStorageManager to retrieve list of public shares for a given file
  • Update Get operations to support multiple public links per OCFile
  • Update domain model and database to add new property with public link added to OCShare with OC 9.0.0
  • Update CreatePublicShareOperation to support multiple public links per OCFile
  • Update UpdatePublicShareOperation to support multiple public links per OCFile
  • Update RemoveShareOperation to support multiple public links per OCFile, and connect to delete icon
  • Connect icon to copy-or-share action
  • Connect icon to update existing public share
  • Adapt dialog to handle both creation and update of shares correctly
  • Handle the different cases when updating the public share password
  • Ensure that password is required when server enforces it
  • Ensure that expiration date is shown by default when server enforces it
  • Enable or disable multiple links support depending on the corresponding capability (see Add capability indicating support of multiple link shares core#27622)
  • Hide list of public links and title if public share is disabled by admin
  • Connect allow editing permissions switch when creating or updating a folder public share
  • Fix UI for private shares after going to full screen ShareActivity
  • Warning about public links: owncloud/enterprise#1914
  • Warning about public links with message "Anyone with the link has access to the file/folder" https://github.com/owncloud/core/pull/27844/files
  • Change policy to show warning about public links: depending on server capability
  • Clean unneeded code of the previous sharing version
  • [QA] Design test plan @jesmrec
  • [QA] Validate test plan @jesmrec

BUGS & IMPROVEMENTS

@SamuAlfageme
Copy link

If the link is edited in the Android app, the name is removed from the link in server side.

owncloud/core#27517

@michaelstingl michaelstingl added this to the 2.4.0 milestone Mar 28, 2017
@davigonz davigonz self-assigned this Apr 17, 2017
@davivel davivel self-assigned this Apr 19, 2017
@davigonz
Copy link
Contributor

davigonz commented Apr 21, 2017

This is how the new UI design for the Share view is looking like, including support for the new multiple links feature.

Suggestions are welcome 😉

New Share view Dialog for creating a public link
device-2017-04-21-143332 device-2017-04-21-143419

@michaelstingl @rperezb @jesmrec @davivel @nasli

@jesmrec
Copy link
Collaborator Author

jesmrec commented Apr 21, 2017

@davigonz Looks nice. I would only set a little padding between "Users and Groups" and "Public links".

I would like to see as well:

  • When there are no links
  • The view for editing (not for creating)

but if you prefer, we can delay this to the QA stage. The look of the view is 👍

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

Starting QA stage.

First question:

By enabling the Password switch, the user is allowed to set the password empty. Server side behaves it in this way, but it is not using a switch. Why reason to do this?

(1)[FIXED] On the other hand (as impromevent), also related with password: when the Password switch is enabled, the soft keyboard should be displayed to avoid the user taps on the field to input the password. The same would be for Link namebut in this case, it should be displayed just before the view is opened.

@davivel @davigonz

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(2) Improvement (done)

The options to get link and to remove the link are close in the screen, and it is posible that someone mistakes and tap on remove instead of getting link. In this case, maybe useful to ask the user a confirmation of deletion if he/she taps on remove, as the server does.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(3) Improvement (done)

About the following behaviour:

  1. Enforce password protection in server
  2. In app, create a public link with password
  3. Edit the link by removing the password

From here, switching the Password off is allowed, but saving the link. This is not a wrong behaviour, but it would be cooler if the user could not switch the Password off if the capability is enabled. If the user switches the option off, he sees it as disabled and is forced to enable it again to save the link. In this case the previous password is persisted, so i think it makes more sense not to allow to disable it, so that the value of the capability is already known.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(4) Bug (fixed)

Steps:

  1. In server, enable Set default expiration date
  2. In app, create a public link with default options -> expiration date is enabled
  3. Switch the Expiration off and tap on Save

Current behaviour

Appears the Send linkview. Tapping on the back button, appears the calendar. Closing it (cancelling ok OKing) makes the app crash.

Expected behaviour

Expiration is disabled and link is saved without expiration

Huawei 6P v7.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(5) Bug (fixed)

Steps:

  1. In server, enable Set default expiration date and Enforce expiration
  2. In app, create a public link with default options -> expiration date is enabled
  3. Switch the Expiration off and tap on Save

Current behaviour

The link is saved and happens the same behaviour as #1928 (comment)

Expected behaviour

Expiration is forced, link can not be saved.

Huawei 6P v7.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(6) [FIXED] In servers older than 10.0, the field Link Name did not exist. When a public link is created, this field is being shown and can be confusing for users that do not know the server feature.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(7) Bug (fixed)

Steps:

  1. In app, create a public link in server < 10 using '+' button

Current behaviour

'+' button is displayed and the user can tap on it, see the view to create a new public link and save (with any result).

Expected behaviour

'+' button is hidden because multiple share link is not available in servers <10

Huawei 6P v7.

@davigonz
Copy link
Contributor

davigonz commented May 8, 2017

In servers < 10, if a public link is already created the '+' button should be hidden. Right now is already displayed, and the user can tap on it, see the view to create a new public link and save (with any result).

'+' button should be shown when there are no public links so that the user can add a new one. When there is already a public link, the add button should be hidden. You mean that the + button is being shown even when there's already a public link?

@davivel
Copy link
Contributor

davivel commented May 8, 2017

About first question #1928 (comment)

By enabling the Password switch, the user is allowed to set the password empty. Server side behaves it in this way, but it is not using a switch. Why reason to do this?

Ease of development. We come from an implementation with switch, it's easier to keep the switch.

On the other hand (as impromevent), also related with password: when the Password switch is enabled, the soft keyboard should be displayed to avoid the user taps on the field to input the password.

Can be done.

The same would be for Link namebut in this case, it should be displayed just before the view is opened.

Could be done.

@davivel
Copy link
Contributor

davivel commented May 8, 2017

About confirmation of removal: #1928 (comment)

I wouldn't go that way. We can leave some more space between buttons, or think any other position for the cell layout, but confirmation dialogs are annoying. Web UI doesn't ask for confirmation.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 8, 2017

(8) Bug (fixed)

Steps:

  1. In app, create a public link in server < 10
  2. Tap on > to edit the link
  3. Update any field

Current behaviour

Link can not be saved due to an error Wrong or no update parameter given

Expected behaviour

Link can be updated.

Huawei 6P v7. Server 9.1.5

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

@davigonz

You mean that the + button is being shown even when there's already a public link?

Yes. Hidden or locked are good solutions. But the problem is that the Create link share view is shown when a public link is already created.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

@davivel

I wouldn't go that way. We can leave some more space between buttons, or think any other >position for the cell layout, but confirmation dialogs are annoying. Web UI doesn't ask for >confirmation.

I understand, a bit of space can be useful in this issue.

Web UI asks for confirmation.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

[WON'T FIX] In servers < 10, you are using the token (due to the lack of name) as well as in oC10 servers. This field makes no sense in oC9 and older. Difficult to meet a solution there.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

(9) Bug (out of scope, also in server)

Steps:

  1. In server, enable Set default expiration date
  2. In app, create a public link with default options -> expiration date is enabled
  3. Switch the Expiration off and tap on Save
  4. Tap on '>' to edit the recent created public link

Current behaviour

Expiration is enabled

Expected behaviour

Expiration is disabled

Huawei 6P v7.

Server v10

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

Related to #1928 (comment)

The crash is fixed, but the link is still saved when the expiration is disabled.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

(10) Improvement (fixed)

In the device loses the connection (plane mode, for example), when you tap on Create, the error is Unknown host. In latest version, the error was The operation couldn't be completed. The server is unavailable.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

(11) Bug (fixed)

  1. Disable internet connection (plane mode, for example)
  2. Open dialog to create a new public link
  3. Set the device in landscape

Current behaviour

Buttons Canceland Save are almost vanished

Expected behaviour

Scroll view? to view the buttons

Server v10

Huawei 6P v7

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

(12) Improvement (done)

When the public link is created, the server suggest as hint the name of the file in the field. What do you think about including it? @davivel @davigonz

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

(13) Bug (fixed)

In server < 10, create public link

Current behaviour: softkeyboard is raised
Expected behaviour: softkeyboard is not raised, so there is no textual fields in this case.

Huawei 6P v7

@davivel
Copy link
Contributor

davivel commented May 9, 2017

Problems with password or expiration date enforced in server are ready to be tested.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 9, 2017

(14) Bug (fixed)

  1. Set passcode in the settings
  2. Open share view
  3. Set device in landscape
  4. Minimize the app (circle button)
  5. Open again the app

Current behaviour

App crashes

Expected behaviour

App is opened after typing the passcode

server v10
Huawei 6P v7

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 10, 2017

(15) Bug (fixed)

  1. Create public link
  2. Set an expiration date (in server is neither set by default nor enforced)
  3. Save
  4. Open the public link

Current behaviour

Expiration is not set. In server either

Expected behaviour

Expiration is set. In server too.

NOTE: Caused by date format

server v10

@davivel
Copy link
Contributor

davivel commented May 10, 2017

@jesmrec , (15) ready to test now.

@davivel
Copy link
Contributor

davivel commented May 10, 2017

@jesmrec , library should be fixed now and phantom-bug about removal of name link in update also.

If Travis doesn't fail in owncloud/android-library#163 we can resume QA.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 10, 2017

(16) improvement

  1. In server, enable Set default expiration date capability
  2. In app, create a public link
  3. Tap on Set expiration date (already enabled with the default date)

Current behaviour

Selected date in form is today

Expected behaviour

Selected date in form is the default one in server capability.

Server v10
Galaxy tab s v6

@davivel
Copy link
Contributor

davivel commented May 10, 2017

@jesmrec , current expiration date set as selected in the date picker.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 11, 2017

(17) Improvement (done)

In server, the default names are generated consecutively with numbers: (2), (3) etc...

Look at these steps:

  1. Generate 5 files
    Photos link
    Photos link (2)
    Photos link (3)
    Photos link (4)
    Photos link (5)

Delete Photos link (3) and generate a new public link

Server: generates Photos link (3). Server fills gaps in the numbers
Android: generates Photos link (5).

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 11, 2017

(18) Bug (regression) (fixed)

In a device with small screen (for example MotoG 4,4) tap on + of User and groups

  • The username overlaps with the icon
  • If the device is in landscape, no selection is posible.

MotoG 4.4

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 11, 2017

(19) Bug (fixed)

  1. Create public link in SAML server
  2. Wait (or force) an expiration
  3. Before redirection to login happens, tap on the trashbin icon to delete the public link -> Redirected to login view
  4. Enter credentials -> appears share view
  5. Tap on "+" to create a new public link

Current behaviour

App crashes

Expected behaviour

Dialog to create new public link

server v10
Huawei 6P v7, Samsung Galaxy Tab S v6

@davivel
Copy link
Contributor

davivel commented May 11, 2017

@jesmrec , (18) ready to be tested; I changed search view to full screen, besides of fixing the layout of suggestions.

@davivel
Copy link
Contributor

davivel commented May 12, 2017

(17) ready to test too.

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 12, 2017

(20) Bug (fixed)

  1. Share with users or groups
  2. Select a user or group
  3. In search view, tap on ">" to edit permissions
  4. Rotate the device

Current behaviour

App crashes

Expected behaviour

Orientation changed

server v10
Huawei 6P v7, Samsung Galaxy Tab S v6

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 12, 2017

(21) Improvement (done)

  1. Enforce expiration date and password (dialog is longer in this case)
  2. Edit a public link, and tap on link name.

Current behaviour: buttons Cancel and Saveare hidden behind the keyboard. Can not be tapped until keyboard is collapsed

Expected behaviour: Dialog can be scrolled (same as creation)

server v10
Huawei 6P v7

@davivel
Copy link
Contributor

davivel commented May 12, 2017

Taking it

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 15, 2017

(22) Bug (fixed)

  1. Create a public link, enabling expiration
  2. Rotate the device

Current: Expiration date disappears
Expected: Expiration date does not disappear

@jesmrec
Copy link
Collaborator Author

jesmrec commented May 15, 2017

Approved, all fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants