feat(contactsinteraction): allow users to disable contacts interaction addressbook
This allows simple users to opt-out of the contacts interaction addressbook even if admins have the app installed.
Similar to how the birthday calendar works, the functionnality can be toggled in the user's settings or by doing a DELETE on the addressbook.
A new contacts personal section has been added to contain this new setting.
- Resolves https://github.com/nextcloud/contacts/issues/2679
- Resolves https://github.com/nextcloud/contacts/issues/3583
TODO
- [ ] moar tests
Checklist
- Code is properly formatted
- Sign-off message is added to all commits
- [ ] Tests (unit, integration, api and/or acceptance) are included
- [ ] Screenshots before/after for front-end changes
- [ ] Documentation (manuals or wiki) has been updated or is not required
- [ ] Backports requested where applicable (ex: critical bugfixes)
@tcitworld But what if I like this addressbook, and I only need to delete one contact from this addressbook. Let's say I have sent an email to a non-existent address, I get a bounce-back NDR email, and the non-existent contact goes into the "Recently contacted" addressbook, but because the email address is invalid, I want to delete it, while still enjoying the "Recently contacted" addressbook. This PR seems to solve only 50% of the current issue we have with this addressbook. I think deleting/disabling the whole addressbook does not address the described issue I have.
@HLFH We will keep the issue opened for this specific aspect
Rebased
Deleting the address book from the Contacts app didn't work. The DELETE request itself worked and the address book vanishes until the next page reload. It will still contain all of its former contacts after the page reload. Disabling it via the personal settings works. However, the address book is still shown in the Contacts settings modal (with 0 contacts and 0 groups) afterwards.
Fixed this.