Collections
Personas in this Story: Default, Client.
For the purpose of this test, we have created a project with 10 notes, some of the grouped, and some standing alone, some of the visible to client, and some hidden. Owner sees all top level notes, ordered as they were created (newest first):
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
[ { "id": 8, "class": "Note", "url_path": "\/projects\/1\/notes\/8", "name": "Public with Subnotes", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Public with Subnotes Body", "body_formatted": "Public with Subnotes Body", "body_plain_text": "Public with Subnotes Body", "created_on": 1430164162, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 2, "is_in_collection": true, "position": 0, "contributor_ids": [ 1 ] }, { "id": 7, "class": "Note", "url_path": "\/projects\/1\/notes\/7", "name": "Private Note", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": true, "body": "Private Note Body", "body_formatted": "Private Note Body", "body_plain_text": "Private Note Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 0, "is_in_collection": false, "position": 1, "contributor_ids": [ 1 ] }, { "id": 2, "class": "Note", "url_path": "\/projects\/1\/notes\/2", "name": "Private With Subnotes", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": true, "body": "Private With Subnotes Body", "body_formatted": "Private With Subnotes Body", "body_plain_text": "Private With Subnotes Body", "created_on": 1430164160, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 4, "is_in_collection": true, "position": 2, "contributor_ids": [ 1 ] }, { "id": 1, "class": "Note", "url_path": "\/projects\/1\/notes\/1", "name": "Public Note", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Public Note Body", "body_formatted": "Public Note Body", "body_plain_text": "Public Note Body", "created_on": 1430164160, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 0, "is_in_collection": false, "position": 3, "contributor_ids": [ 1 ] } ]
On the other hand, client sees only public notes:
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
[ { "id": 8, "class": "Note", "url_path": "\/projects\/1\/notes\/8", "name": "Public with Subnotes", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Public with Subnotes Body", "body_formatted": "Public with Subnotes Body", "body_plain_text": "Public with Subnotes Body", "created_on": 1430164162, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 2, "is_in_collection": true, "position": 0, "contributor_ids": [ 1 ] }, { "id": 4, "class": "Note", "url_path": "\/projects\/1\/notes\/4", "name": "Private Public Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Private Public Subpage Body", "body_formatted": "Private Public Subpage Body", "body_plain_text": "Private Public Subpage Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164161, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 2, "contributor_ids": [ 1 ] }, { "id": 1, "class": "Note", "url_path": "\/projects\/1\/notes\/1", "name": "Public Note", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Public Note Body", "body_formatted": "Public Note Body", "body_plain_text": "Public Note Body", "created_on": 1430164160, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 0, "is_in_collection": false, "position": 3, "contributor_ids": [ 1 ] } ]
Notice that public note "bubbles-up" to the top level if it is under a private note. This is because ActiveCollab reveals all collections that have public content, while still making private part hidden.
If we try to get collection data of that public-under-private note, system will return only information about public notes in a collection:
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
[ { "id": 4, "class": "Note", "url_path": "\/projects\/1\/notes\/4", "name": "Private Public Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Private Public Subpage Body", "body_formatted": "Private Public Subpage Body", "body_plain_text": "Private Public Subpage Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164161, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 2, "contributor_ids": [ 1 ] }, { "id": 5, "class": "Note", "url_path": "\/projects\/1\/notes\/5", "name": "Second Private Public Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Second Private Public Subpage Body", "body_formatted": "Second Private Public Subpage Body", "body_plain_text": "Second Private Public Subpage Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164161, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 3, "contributor_ids": [ 1 ] } ]
Trying to access collection info via private page will result in Page Not Found HTTP error:
Members will see all notes in a collection, of course:
Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
[ { "id": 2, "class": "Note", "url_path": "\/projects\/1\/notes\/2", "name": "Private With Subnotes", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": true, "body": "Private With Subnotes Body", "body_formatted": "Private With Subnotes Body", "body_plain_text": "Private With Subnotes Body", "created_on": 1430164160, "created_by_id": 1, "updated_on": 1430164162, "updated_by_id": 1, "note_id": 0, "is_subnote": false, "subnotes_count": 4, "is_in_collection": true, "position": 2, "contributor_ids": [ 1 ] }, { "id": 3, "class": "Note", "url_path": "\/projects\/1\/notes\/3", "name": "Private Private Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": true, "body": "Private Private Subpage Body", "body_formatted": "Private Private Subpage Body", "body_plain_text": "Private Private Subpage Body", "created_on": 1430164160, "created_by_id": 1, "updated_on": 1430164160, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 1, "contributor_ids": [ 1 ] }, { "id": 4, "class": "Note", "url_path": "\/projects\/1\/notes\/4", "name": "Private Public Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Private Public Subpage Body", "body_formatted": "Private Public Subpage Body", "body_plain_text": "Private Public Subpage Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164161, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 2, "contributor_ids": [ 1 ] }, { "id": 5, "class": "Note", "url_path": "\/projects\/1\/notes\/5", "name": "Second Private Public Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": false, "body": "Second Private Public Subpage Body", "body_formatted": "Second Private Public Subpage Body", "body_plain_text": "Second Private Public Subpage Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164161, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 3, "contributor_ids": [ 1 ] }, { "id": 6, "class": "Note", "url_path": "\/projects\/1\/notes\/6", "name": "Second Private Private Subpage", "comments_count": 0, "attachments": [], "is_trashed": false, "trashed_on": null, "trashed_by_id": 0, "project_id": 1, "is_hidden_from_clients": true, "body": "Second Private Private Subpage Body", "body_formatted": "Second Private Private Subpage Body", "body_plain_text": "Second Private Private Subpage Body", "created_on": 1430164161, "created_by_id": 1, "updated_on": 1430164161, "updated_by_id": 1, "note_id": 2, "is_subnote": true, "subnotes_count": 0, "is_in_collection": true, "position": 4, "contributor_ids": [ 1 ] } ]