Skip to content

Manage tags#4055

Merged
mpivchev merged 28 commits intomasterfrom
tags-manage
Apr 14, 2026
Merged

Manage tags#4055
mpivchev merged 28 commits intomasterfrom
tags-manage

Conversation

@mpivchev
Copy link
Copy Markdown
Collaborator

@mpivchev mpivchev commented Apr 1, 2026

Implements: #4040
Prerequisite: nextcloud/NextcloudKit#214

  • Supported colored tags
  • DB now holds full tag objects instead of just tag names
  • Add a button to manage tags
  • New SwiftUI window for tag management
  • Swipe to change tag color
  • Add a 2nd tag view inside NCListCell, with color support
  • Refactoring

Screenshots (before and after):

image image image image

Screenshots (new screen):
image
image

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
mpivchev added 14 commits April 1, 2026 17:57
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
}
}

extension List where Element == tableMetadataTag {
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we only use tableMetadataTag as a Realm model in DB. Anywhere else we use NKTag. This way we separate DB Models with plain models, and avoid using things like detachedCopy as tableMetadata does.

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Comment on lines +28 to +56
if oldSchemaVersion < 408 {
migration.enumerateObjects(ofType: tableMetadata.className()) { oldObject, newObject in
guard let oldObject, let newObject else {
return
}

let oldTags: [String]
if let oldList = oldObject["tags"] as? List<String> {
oldTags = Array(oldList)
} else if let oldArray = oldObject["tags"] as? [String] {
oldTags = oldArray
} else {
oldTags = []
}

let migratedTags = oldTags.map { tagName in
migration.create(
tableMetadataTag.className(),
value: [
"id": "",
"name": tagName,
"color": ""
]
)
}
newObject["tags"] = migratedTags
}
}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marinofaggiana Please check if migration is correct. For me it worked fine.

@mpivchev mpivchev marked this pull request as ready for review April 13, 2026 11:52
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
…anage

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
@tobiasKaminsky
Copy link
Copy Markdown
Member

Can you check with web (or ask designers), but I think there should not be shown more than 3-5 tags, but then better show "+"?
Like we do on Android.

Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
@marinofaggiana marinofaggiana self-requested a review April 13, 2026 15:46
@mpivchev
Copy link
Copy Markdown
Collaborator Author

Can you check with web (or ask designers), but I think there should not be shown more than 3-5 tags, but then better show "+"? Like we do on Android.

Not sure what you mean. File details shows all tags on android as well:

image

Only 2 tags are shown on the file list, on both iOS and Android:

image

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Copy link
Copy Markdown
Member

@marinofaggiana marinofaggiana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

works good !

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
@mpivchev mpivchev enabled auto-merge (squash) April 14, 2026 15:09
@mpivchev mpivchev disabled auto-merge April 14, 2026 15:09
@mpivchev mpivchev merged commit 7fb1156 into master Apr 14, 2026
4 of 5 checks passed
@mpivchev mpivchev deleted the tags-manage branch April 14, 2026 15:09
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.

3 participants