nextcloud / nextcloud/deck

Add unique constraint for labels (color + text)

Open
#2,173 10 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug feature: api
Dominant language
JavaScript
Stars
1.4k
Forks
354
Avg merge
1d 10h
Merged PRs (30d)
43

Description

Steps to reproduce

Unclear how to reproduce at the moment but it may be some kind bug between the web app and the android client. On the Android client though, no duplicated tags are shown. Only on the desktop.

Expected behaviour

The user should only be allowed to select a tag once. The system should not display the same tag more than once per card.

Actual behaviour

Many cards on the web app show many duplications of the same tag.

To remove the tags, you must unselect the tags. On Android, just unselect the single tag (as the duplicates are not shown) and then reselect it. On the desktop, you will need to unclick the tags for as many times as the tag was duplicated.
Selection_090

Selection_091

The mobile doesn't show any duplicates
signal-2020-08-06-063821

Server configuration detail

Operating system: Linux 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64

Webserver: Apache/2.4.41 (Ubuntu) (apache2handler)

Database: mysql 10.3.22

PHP version:

7.4.3
Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, session, standard, sodium, apache2handler, mysqlnd, PDO, xml, apcu, bcmath, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, imagick, intl, json, exif, mysqli, pdo_mysql, apc, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Phar, Zend OPcache

Nextcloud version: 19.0.1 - 19.0.1.1

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: unknown

Signing status

Array
(
)

List of activated apps
Enabled:
 - accessibility: 1.5.0
 - activity: 2.12.0
 - admin_audit: 1.9.0
 - apporder: 0.10.0
 - bookmarks: 3.3.3
 - bruteforcesettings: 1.6.0
 - calendar: 2.0.3
 - camerarawpreviews: 0.7.7
 - cloud_federation_api: 1.2.0
 - comments: 1.9.0
 - contacts: 3.3.0
 - contactsinteraction: 1.0.0
 - dav: 1.15.0
 - deck: 1.0.5
 - documentserver_community: 0.1.7
 - drawio: 0.9.7
 - duplicatefinder: 0.0.2
 - epubreader: 1.4.2
 - event_update_notification: 1.0.2
 - external: 3.6.0
 - federatedfilesharing: 1.9.0
 - federation: 1.9.0
 - files: 1.14.0
 - files_downloadactivity: 1.8.0
 - files_markdown: 2.3.0
 - files_mindmap: 0.0.22
 - files_pdfviewer: 1.8.0
 - files_rightclick: 0.16.0
 - files_sharing: 1.11.0
 - files_trashbin: 1.9.0
 - files_versions: 1.12.0
 - files_videoplayer: 1.8.0
 - forms: 2.0.2
 - gpxpod: 4.2.2
 - impersonate: 1.6.1
 - issuetemplate: 0.6.0
 - logreader: 2.4.0
 - lookup_server_connector: 1.7.0
 - maps: 0.1.6
 - metadata: 0.12.0
 - music: 0.16.0
 - news: 14.1.11
 - nextbackup: 20.4.0
 - nextcloud_announcements: 1.8.0
 - notes: 3.6.1
 - notifications: 2.7.0
 - oauth2: 1.7.0
 - occweb: 0.0.7
 - onlyoffice: 4.3.0
 - password_policy: 1.9.1
 - phonetrack: 0.6.4
 - photos: 1.1.0
 - previewgenerator: 2.3.0
 - privacy: 1.3.0
 - provisioning_api: 1.9.0
 - rainloop: 7.0.1
 - riotchat: 0.6.2
 - serverinfo: 1.9.0
 - settings: 1.1.0
 - sharebymail: 1.9.0
 - spreed: 9.0.3
 - support: 1.2.1
 - survey_client: 1.7.0
 - suspicious_login: 3.1.0
 - systemtags: 1.9.0
 - tasks: 0.13.3
 - text: 3.0.1
 - theming: 1.10.0
 - twofactor_backupcodes: 1.8.0
 - updatenotification: 1.9.0
 - viewer: 1.3.0
 - workflowengine: 2.1.0
Disabled:
 - audioplayer
 - encryption
 - files_external
 - firstrunwizard
 - guests
 - mail
 - recommendations
 - user_ldap

Configuration (config/config.php)
{
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "aproposnix.dyndns.org"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "mysql",
    "version": "19.0.1.1",
    "overwrite.cli.url": "http:\/\/localhost\/nextcloud",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "mysql.utf8mb4": true,
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "maintenance": false,
    "memcache.local": "\\OC\\Memcache\\APCu",
    "app_install_overwrite": [
        "social",
        "dashboard",
        "occweb",
        "issuetemplate"
    ],
    "mail_smtpmode": "smtp",
    "mail_smtpsecure": "tls",
    "mail_sendmailmode": "smtp",
    "updater.release.channel": "beta",
    "theme": "",
    "loglevel": 2,
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpauth": 1,
    "mail_smtpauthtype": "LOGIN",
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "587",
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***"
}

Are you using external storage, if yes which one: N/A

Are you using encryption:

Are you using an external user-backend, if yes which one: N/A

Client configuration

Browser: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0

Operating system: Ubuntu 20.04

Logs

Web server error log

Nextcloud log

Browser log

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are identified in the issue. Start by locating the label persistence and schema entry points, then inspect how duplicate labels can already exist; done means the same color-and-text label cannot be duplicated and existing card selections behave consistently on web and Android.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, mysql
Domain
backend, database
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.