Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[feature/sharing-user-groups] Implementation of Sharing with Users, G…
…roups and Remote Users, Public Links (#358) * #351 added first draft of Sharing with users, groups, remotes * - changes for shared with user handling - new toggle action - set permissions (unfinished) * - added icon in file list, if item is shared - handling shared by me and shared with me in file detail view - disable permission editing, if user is not the owner - delete receipient - added sorting by "shared" in file list * setting permissions is now working * using correct sdk commit * changed query, if item is shared * - search for recipients - add recipient to share * removed deleted SharingSearchResults Controller * - removed unneeded elements - fixes for recipients search * - fixed crash on adding recipient to share - added header title to search recipients * - added activity view when searching shares - refactored code * fixed Theming for searchBar and selecting rows * - moved MessageView to own class - fixed keyboard height constraint in MessageView - added localization strings - fixed updating shares handler * - Add menu: left aligned text, added icons - More menu: left aligned text, added icons - fixes for UI glitches in more menu (correct height) - fixed wrong table header height in MoreStaticTableViewController, for sections without section title - close more menu before opening sharing overview * - fixed missing sharing row - fixed tint color for image * - changed image alignment - updated to new sharing SDK (which fixes update notification) * - fixed wrong usage of Sharing SDK-API - added delete recipient by swiping in overview * - fixed delete recipient, only if user has permissions - new function to detect if user can edit OCShare * added activity indicator to searchbar * - implemented public link sharing (WIP) - updated localization * - fixed date picker row disable handling - fixed password row * - using new SDK with support share.protectedByPassword - code cleanup * removed merging with master problems * - password fixed - setting permissons - datepicker: themed, autolayout - main thread fixes * - fixed creating public link - only show "Create Public Link" if item has sharing permission * added capability support for sharing/public links * - fixed missing expire date switch - fixed deleting share receipients * - fixed wrong sharing logic - code cleanup * - fixed keyboard focus for searchbar - fixed first new public link share was not shown - added expire date, protected by password in public link details * - changed sharing icon - new icon in file list for public links - no longer use folder sharing icon in file list - left aligned icons in action menu - show always icons for sharing/public links in action menu * code refactoring * - using new SDK, which fixes URL encoding problems - multiline for detailtext in table row * - determine, if an item is shared by user or group - removed share polling in Action - stop share polling, if view was dismissed * - added an action event, when the text field action should be performed - perform password field action, if editing finished * added action event for name text field * - fixed, when showing share rows - code refactoring * code refactoring * - fixed setting share permissions for edit row - code refactoring * - changed edit permissions handling (only show change, create, delete if edit is enabled) - code refactoring - removed unneeded code * use correct new created share * - added item header to sharing overview - using new SDK with API v2 and additional receipient info * fixed searchDisplayName * - use new SDK, which supports pending shares, ... - implemented pending shares - new library tab bar item, which holds pending shares and all other shares as file list - decline a share from sharing view * set correct table row titles * - changed Library to Quick Access - added new Custom Filelist, to show items for custom OCQuery like Recents, Favorites, Images, PDFs, ... - fixed crash * - added pending cloud shares - added search bar to customfilelist controller - added message view to customfilelist controller - fixed on main thread crash * added accepted cloud shares, to "Shared with me" * - using new SDK with fixed Favorite support - added setting favorite state in MoreHeader - added copy private link to public link view - added refresh interval for OCShareQuery in library view - code refactoring * - fixed group sharing - resolved merge problems - do not auto add new public link - removed message view * fixed main thread crash * - show shared items only unique, if it was shared to more receipients - changed favorite button tint color * code refactoring from code review * code refactoring for code review * - added missing localization strings - removed swift lint warnings * - subclass for ClientItemCell, which retrieves OCItem by OCShare path and tracks updates for OCItem - added a represented object to send updated shares to an open SharesFilelistTableViewController * - using new SDK with refresh for favorites support - implemented favorites refresh on load and on pull to refresh - set tint color for sectionIndex * set default values from OCShare until OCItem is loaded * - added themable background to custom file list - removed iPad form sheet presentation style for sharing views - fixed crash on BreadCrumb selection, if index does not exists * code review changes * - added header title to "Copy URL" table view row, to show the link URL (private and public) - show a "Create Public Link" button row, if no public link exists in overview * show header label as multiline, because of long urls * - fixed setting favorite state - code review changes * fixed updating preferred content size in cardview for shares * show image (group, person) for recipient search results * added missing translation string from clear storage * mostly retain cycles, fixed cardViewController content size, constraints fixed, clean up duplicated code * new wording for sharing and some logical changes for sharing UI * fixed failed merge conflicts * - creating shares and public links needs confirmation, before creating - fixed some wording - fixed missing open-in image * disable table scrolling for quick access view * - fixed constraint problems - auto updating share state in file list - changed some sharing wording - show rejected pending shares - fixed initale share permissions * If link will be created, share button is not needed * - fixed wording - setting default permissions for sharing - do not show decline action for declined shares * - Break various retain cycles * - Add missing constraint to UITableViewController+Extension.swift * - Refactor item lists to new class tree: - FileListTableViewController - SharesFilelistTableViewController - QueryFileListTableViewController - ClientQueryViewController - CustomFileListTableViewController - Restructure source file locations * - Adding missing copyright notes, minor improvements * - Continue refactoring of file lists - move pull-to-refresh to root level (and add option to disable it) - add completion block for custom pull-to-refresh actions - move queryProgressSummary to root query level (and add option to disable it) - Theme fixes * - Fix accepted cloud shares being dropped if the list of items shared with the user changes - Renamed updateLibrary() to setupLibrary() to emphasize the method's run-only-once character * - Fix issues in LibraryTableViewController - fixed visibility of sharing section - fixed updates to sharing section - fixed merge of .sharedWithUser and .acceptedCloudShares queries - Partial refactor of LibraryTableViewController - Adding StaticTableViewSection.remove(rowWithIdentifier:) * - simplify .filter() blocks - fix refresh bugs in LibraryTableViewController - refactor around the concept of "views" - add LibraryShareList protocol and LibraryShareView class to LibraryTableViewController and - LibrarySharesTableViewController - update to accept updates and update their content (via LibraryShareList conformance) - PendingSharesTableViewController - update to accept updates and update their content (via LibraryShareList conformance) - fix filtering of pending and accepted shares - only pop view controller when there are no longer any shares in it (previously popped after every decision) - ask to confirm declines in all cases - rename declined to rejected shares - Fix bugs in federated shares support - Action.shareRows() now shows "Shared by remote@host" for remote shares - OCCore.unifiedShares is now parallelized and also fetches accepted cloud shares - GroupSharingTableViewController now shows "Unshare" for remote shares as well - Add support for unsharing accepted federated shares - stop queries of SharingTableViewController subclasses on deist - fix more retain cycles * - Add "Pending" placeholder for negative item sizes * - Rename CustomFileListTableViewController to LibraryFilesTableViewController - Rename GroupSharingEditUserGroupsTableViewController to GroupSharingEditTableViewController - Editing some OCSharePermissionsMask usages to be more Swifty - Use instance variables for sections in GroupSharingTableViewController - Move some additional code from GroupSharingTableViewController and PublicLinkTableViewController to SharingTableViewController - Fix bug in GroupSharingTableViewController that failed to retrieve the correct share for a row (by using StaticTableViewRow.representedObject) - Refactored PublicLinkTableViewController to use StaticTableViewRow.representedObject for shares as well - Turn OCShare.permissionDescription into a property - Fix a crash bug in StaticTableViewController and increase its swiftiness - Improved some locales * - Consolidate NSLayoutConstraint activation in HeaderActionTableViewCell.swift and MessageView.swift * code review changes - changed private link section - public link row changed - setting default permissions for new shares * - Update SDK - Add UIImage padding method to create padded versions of images easily - Use new padding method to generate equally-width images for the More view * - Remove non-existant TVG file references * fixed QA finding (2): - swipe card to top displaced icon on top and bottom menu item - changed constraints * QA finding (2) - changed sticky table section header to non sticky by changing from plain to grouped table view - remove footer view in MoreStaticTableViewController to remove gap between sections in grouped style * QA finding (3) exclude current collaborators from recipient search * QA finding (7) fixed setting edit permissions and hide/show/selecting the UI * - Refactor ClientDirectoryPickerViewController to follow best practices and add support for a ClientDirectoryPickerAllowedPathFilter block to control which directories are selectable, and which are not - Remove code to selectively show actions depending on whether the root directory contains folders * QA finding (8): remove race condition for permission changes * - Added ClientDirectoryPickerViewController.navigationPathFilter to allow applying additional constraints on which folders can be navigated to - Add new convenience initializer to ClientDirectoryPickerViewController to avoid path conflicts - used by Copy and Move action * QA finding (12) fixed inherit correct resharing permissions - fixed showing reshares * QA finding (13) fixed, long filenames and date is now visible * - added "Invite Collaborator", if item is not shared to overview - added Owner to share overview - changed wording - changed decline handling * only show decline alert, if share is remote type * - Fixing ClientRootViewController issues - not showing the bookmark editing UI when tapping "Edit" after being informed of authentication not being valid - closeClient() calling the completion handler when done, but before the presenting view controller could present the next view controller - Update ios-sdk to address sharing requests ability to hinder OCCore from shutting down * - Updated ios-sdk adding recursive deletion of items in the metaData cache * - added possibility to retrieve more text field delegate actions - setting default link fixed - fixed crash on empty link name * fixed wording * - setting default expire date - scroll date picker to visible index path * changed wording "Save" to "Create" * fixed removing expiration date * - fixed counting default link name - new label for copy links (not finished yet) * fixed setting expiration date in create mode * QA finding 25: if password is required, hide password switch and show secure text field * QA finding (12) fixed hiding UI elements, if resharing is not allowed - fixed pending badge (only count pending items) * QA finding (15) (16) changed behavior of copy link * new unshare extension, which is showing in card menu instead of delete menu item, if item is shared to user * new wording for sharing an item * fixed text color in search text field * fixed disable password switch for initial setup, if password is enforced * fixed enumeration of public link names * if public link name is empty, use token as name in overview * hide permission "Share" in description, if resharing capability is not enabled * new SDK for fixing the default expiration date (was not set before in SDK) * unshare cloud shares fixed * update share queries, after accept/decline remote share * new traitCollection for vertical compact size class, because labels were hidden in landscape view * - fixed large titles in child view controller - fixed header view color, when switching to a child view controller * fixed adding default expiration dates to current date * - Update ios-sdk to address issue (30) in #358 * - Fix issue (10) in #358 via SDK * fixed QA finding (32), that only one pending invite was shown, if more exists * fixed QA finding (27), MessageView has a left and right padding, which showed the content above * - Correctly handle local user names ending with an "@" (via SDK update) * - Added OCItem array extension .sharedWithUser - Fixed retain cycle - Code cosmetics * - Added new OCItem.shareRootItem(from: core) and OCItem.isShareRootItem(from: core) methods - Adapted DeleteAction and UnshareAction so that deletion is available inside shared folders where the owner allowed deletion * fixed QA finding (35), show options, if not set in default permission list * - enable "Links" menu item, if public link sharing is disabled - disable public link section, if not enabled * - only show link menu item, if bookmark is online - do not show share menu item, if sharing api is disabled
- Loading branch information