diff options
author | Morris Jobke <hey@morrisjobke.de> | 2018-04-19 14:11:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-19 14:11:51 +0200 |
commit | 4d71e12a43a0d9f0d51fc95f199e217692e7ca41 (patch) | |
tree | c157ef8daff6c01f4d270ffd1e0229ce63194928 /core | |
parent | 7ca526f8ac30d52ddcaff0e1759cb6d3c5090fd1 (diff) | |
parent | f8e3b572c858d68b48ef2ed9ba8efd5d1c6be8a5 (diff) | |
download | nextcloud-server-4d71e12a43a0d9f0d51fc95f199e217692e7ca41.tar.gz nextcloud-server-4d71e12a43a0d9f0d51fc95f199e217692e7ca41.zip |
Merge pull request #9237 from nextcloud/fix-ids-of-permission-checkboxes-for-shares
Fix ids of permission checkboxes for shares
Diffstat (limited to 'core')
-rw-r--r-- | core/js/sharedialogshareelistview.js | 24 | ||||
-rw-r--r-- | core/js/tests/specs/sharedialogshareelistview.js | 30 |
2 files changed, 41 insertions, 13 deletions
diff --git a/core/js/sharedialogshareelistview.js b/core/js/sharedialogshareelistview.js index cda837a66c7..1e873a7208e 100644 --- a/core/js/sharedialogshareelistview.js +++ b/core/js/sharedialogshareelistview.js @@ -30,8 +30,8 @@ '<span class="sharingOptionsGroup">' + '{{#if editPermissionPossible}}' + '<span class="shareOption">' + - '<input id="canEdit-{{cid}}-{{shareWith}}" type="checkbox" name="edit" class="permissions checkbox" />' + - '<label for="canEdit-{{cid}}-{{shareWith}}">{{canEditLabel}}</label>' + + '<input id="canEdit-{{cid}}-{{shareId}}" type="checkbox" name="edit" class="permissions checkbox" />' + + '<label for="canEdit-{{cid}}-{{shareId}}">{{canEditLabel}}</label>' + '</span>' + '{{/if}}' + '<a href="#"><span class="icon icon-more"></span></a>' + @@ -58,8 +58,8 @@ '{{#if isResharingAllowed}} {{#if sharePermissionPossible}} {{#unless isMailShare}}' + '<li>' + '<span class="shareOption menuitem">' + - '<input id="canShare-{{cid}}-{{shareWith}}" type="checkbox" name="share" class="permissions checkbox" {{#if hasSharePermission}}checked="checked"{{/if}} data-permissions="{{sharePermission}}" />' + - '<label for="canShare-{{cid}}-{{shareWith}}">{{canShareLabel}}</label>' + + '<input id="canShare-{{cid}}-{{shareId}}" type="checkbox" name="share" class="permissions checkbox" {{#if hasSharePermission}}checked="checked"{{/if}} data-permissions="{{sharePermission}}" />' + + '<label for="canShare-{{cid}}-{{shareId}}">{{canShareLabel}}</label>' + '</span>' + '</li>' + '{{/unless}} {{/if}} {{/if}}' + @@ -67,24 +67,24 @@ '{{#if createPermissionPossible}}{{#unless isMailShare}}' + '<li>' + '<span class="shareOption menuitem">' + - '<input id="canCreate-{{cid}}-{{shareWith}}" type="checkbox" name="create" class="permissions checkbox" {{#if hasCreatePermission}}checked="checked"{{/if}} data-permissions="{{createPermission}}"/>' + - '<label for="canCreate-{{cid}}-{{shareWith}}">{{createPermissionLabel}}</label>' + + '<input id="canCreate-{{cid}}-{{shareId}}" type="checkbox" name="create" class="permissions checkbox" {{#if hasCreatePermission}}checked="checked"{{/if}} data-permissions="{{createPermission}}"/>' + + '<label for="canCreate-{{cid}}-{{shareId}}">{{createPermissionLabel}}</label>' + '</span>' + '</li>' + '{{/unless}}{{/if}}' + '{{#if updatePermissionPossible}}{{#unless isMailShare}}' + '<li>' + '<span class="shareOption menuitem">' + - '<input id="canUpdate-{{cid}}-{{shareWith}}" type="checkbox" name="update" class="permissions checkbox" {{#if hasUpdatePermission}}checked="checked"{{/if}} data-permissions="{{updatePermission}}"/>' + - '<label for="canUpdate-{{cid}}-{{shareWith}}">{{updatePermissionLabel}}</label>' + + '<input id="canUpdate-{{cid}}-{{shareId}}" type="checkbox" name="update" class="permissions checkbox" {{#if hasUpdatePermission}}checked="checked"{{/if}} data-permissions="{{updatePermission}}"/>' + + '<label for="canUpdate-{{cid}}-{{shareId}}">{{updatePermissionLabel}}</label>' + '</span>' + '</li>' + '{{/unless}}{{/if}}' + '{{#if deletePermissionPossible}}{{#unless isMailShare}}' + '<li>' + '<span class="shareOption menuitem">' + - '<input id="canDelete-{{cid}}-{{shareWith}}" type="checkbox" name="delete" class="permissions checkbox" {{#if hasDeletePermission}}checked="checked"{{/if}} data-permissions="{{deletePermission}}"/>' + - '<label for="canDelete-{{cid}}-{{shareWith}}">{{deletePermissionLabel}}</label>' + + '<input id="canDelete-{{cid}}-{{shareId}}" type="checkbox" name="delete" class="permissions checkbox" {{#if hasDeletePermission}}checked="checked"{{/if}} data-permissions="{{deletePermission}}"/>' + + '<label for="canDelete-{{cid}}-{{shareId}}">{{deletePermissionLabel}}</label>' + '</span>' + '</li>' + '{{/unless}}{{/if}}' + @@ -383,9 +383,7 @@ var _this = this; this.getShareeList().forEach(function(sharee) { - var checkBoxId = 'canEdit-' + _this.cid + '-' + sharee.shareWith; - checkBoxId = '#' + checkBoxId.replace( /(:|\.|\[|\]|,|=|@|\/)/g, "\\$1"); - var $edit = _this.$(checkBoxId); + var $edit = _this.$('#canEdit-' + _this.cid + '-' + sharee.shareId); if($edit.length === 1) { $edit.prop('checked', sharee.editPermissionState === 'checked'); $edit.prop('indeterminate', sharee.editPermissionState === 'indeterminate'); diff --git a/core/js/tests/specs/sharedialogshareelistview.js b/core/js/tests/specs/sharedialogshareelistview.js index cc0268ba580..8e34225d199 100644 --- a/core/js/tests/specs/sharedialogshareelistview.js +++ b/core/js/tests/specs/sharedialogshareelistview.js @@ -105,6 +105,21 @@ describe('OC.Share.ShareDialogShareeListView', function () { expect(listView.$el.find("input[name='edit']").is(':indeterminate')).toEqual(true); }); + it('marks edit box as indeterminate when only some permissions are given for sharee with special characters', function () { + shareModel.set('shares', [{ + id: 100, + item_source: 123, + permissions: 1 | OC.PERMISSION_UPDATE, + share_type: OC.Share.SHARE_TYPE_USER, + share_with: 'user _.@-\'', + share_with_displayname: 'User One', + itemType: 'folder' + }]); + shareModel.set('itemType', 'folder'); + listView.render(); + expect(listView.$el.find("input[name='edit']").is(':indeterminate')).toEqual(true); + }); + it('Checks edit box when all permissions are given', function () { shareModel.set('shares', [{ id: 100, @@ -119,6 +134,21 @@ describe('OC.Share.ShareDialogShareeListView', function () { listView.render(); expect(listView.$el.find("input[name='edit']").is(':checked')).toEqual(true); }); + + it('Checks edit box when all permissions are given for sharee with special characters', function () { + shareModel.set('shares', [{ + id: 100, + item_source: 123, + permissions: 1 | OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE, + share_type: OC.Share.SHARE_TYPE_USER, + share_with: 'user _.@-\'', + share_with_displayname: 'User One', + itemType: 'folder' + }]); + shareModel.set('itemType', 'folder'); + listView.render(); + expect(listView.$el.find("input[name='edit']").is(':checked')).toEqual(true); + }); }); describe('Manages checkbox events correctly', function () { it('Checks cruds boxes when edit box checked', function () { |