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

[feature/sharing-ng] Support for new ocis spaces/sharing capabilities #1435

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

felix-schwarz
Copy link
Contributor

@felix-schwarz felix-schwarz commented Dec 29, 2024

Description

App support for new spaces and sharing APIs.

Related Issue

#1421
#1422

SDK portion: owncloud/ios-sdk#135

Implementation progress

Prio 1

  • Create Space
  • Rename Space
  • Show details of the space
    • Show Managers
    • Show Quota
    • Show Size
  • Members
    • Show members
    • Add members
    • Remove members
    • Change membership role
    • Show Access expire
    • Set Access expire
    • Remove Access expire
  • Sharing via Link
    • Set/Remove Public Link
    • Set/Change/Remove Expiration Date
    • Set/Change/Remove Password (consider Password Policy)
    • Set/Change Link Type
    • Copy Link & Copy Password

Prio 2

  • Duplicate Space --> needs proper server-side API (currently would need client to create space and copy contents over)
  • Edit description
  • Edit subtitle
  • Edit image
  • Set icon

Prio 3

  • Disable Space
  • Delete / undelete disabled space
  • Show Activities --> outside scope of this PR, feature of its own

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

@felix-schwarz felix-schwarz self-assigned this Dec 29, 2024
@felix-schwarz felix-schwarz force-pushed the feature/sharing-ng branch 3 times, most recently from 414ecdc to 7b30f10 Compare February 4, 2025 08:43
- AppRootViewController: add support for passing arbitrary objects into moreOptions()
- ManageSpaceAction, DetailsSpaceAction: new actions to edit and show details of spaces
- DisableSpaceAction: new action to disable a space
- MembersSpaceAction: new action to manage members and links of a space
- AccountControllerSpacesGridViewController: add button to create a new space
- OCItem+UniversalItemListCellContentProvider: add support for drive name titles
- OCShare+UniversalItemListCellContentProvider: add deeper support for OCShareRoles to closer resemble ownCloud Web
- UniversalItemListCell: add new utility method to create a token-style SegmentViewItem
- ClientContext: add property to pass along sharing roles
- ShareViewController: add support for ocis-style roles and OCShare.sharePermissions
- SharingViewController: use different title strings if item is a drive root
- SpaceManagementViewController: new view controller to create and manage spaces
- UIView+ThemeCSS: add withPadding() method
- ThemeCSSTextField+Styled: new initializer to create form text fields
- SDK update
- ShareViewController: fix: if removing the password and resetting it, the password is actually set anew - and not attempted to be removed
	- remove .drives instance variable and replace it with an convenience accessor returning the OCDrive for single item ActionContexts if the OCItem is the root item of a drive
	- remove obj parameter
- *SpaceAction: use Action/ActionContext changes to simplify implementation
- soft-remove DetailsSpaceAction as it is likely to become obsolete
- OCItem+UniversalItemListCellContentProvider: show quota information as detail for drive root items
- SpaceManagementViewController: code cleanup; remove owner and permissions section
- OCItem+Extension: add .driveQuotaLocalized() method
- ByteCountUnit: class for byte count unit conversion, localized number formatting and parsing
- SpaceManagementViewController:
	- add support for setting a quota when creating a new space
	- add support for change or remove the quota of an existing space
- String+Extension: add convenience accessor to determine if a string consists purely of numeric characters
…lText "User" if userName is not available to avoid empty gaps in cells when listing users in the UI

- update SDK
…r in the SpaceManagementViewController

- SpaceManagementViewController: add new "Actions" section with actions matching in the .spaceAction location
- *SpaceAction: add permission checks for drives
- bring back DetailsSpaceAction to bring up a special read-only version of SpaceManagementViewController (implementation pending)
- OCShare+UniversalItemListCellContentProvide: improve compilation of detailSegments to allow any combination of items
- SharingViewController:
	- add support for create/update permission and dynamically adapt the UI accordingly
	- implement live update to change the UI as permissions change on the server side
- update SDK
- SpaceManagementViewController: implement .details Mode by disabling input fields
…ilText for OCUsers without userName

- SDK update
	- factor out ClientContext/UI code for various space actions to be called from different places
	- use OCCore rather than OCConnection APIs
- DisableSpaceAction: factor out action code to OCDrive+ManagementActions
- AccountControllerSpacesGridViewController:
	- replace "+" button with "..." button offering
		- Create Space
		- Show/Hide disabled spaces
	- factor out space creation code to OCDrive+ManagementActions
- DriveGridCell:
	- add support for disabledLabel
	- add support for moreMenu and disabled properties
- DriveListCell: add support for context menu offering restore/delete space actions
- SpaceManagementViewController: switch from direct OCConnection to OCCore APIs
- update SDK to gain bug fixes and OCCore space management APIs
- AccountControllerSpacesGridViewController: determine canManageSpaces based on logged in user's permissions
- OCDrive+ManagementActions: add alert asking user for confirmation before deleting a space
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant