diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/util/SharingManager.scss | 1 | ||||
-rw-r--r-- | src/client/util/SharingManager.tsx | 54 | ||||
-rw-r--r-- | src/client/views/PropertiesView.tsx | 15 |
3 files changed, 36 insertions, 34 deletions
diff --git a/src/client/util/SharingManager.scss b/src/client/util/SharingManager.scss index 98fea0dcb..86de5ac44 100644 --- a/src/client/util/SharingManager.scss +++ b/src/client/util/SharingManager.scss @@ -86,6 +86,7 @@ float: right; align-items: baseline; margin-top: -12; + margin-bottom: 10; .layoutDoc-acls, .myDocs-acls { diff --git a/src/client/util/SharingManager.tsx b/src/client/util/SharingManager.tsx index 0f7ce26d2..7593cc025 100644 --- a/src/client/util/SharingManager.tsx +++ b/src/client/util/SharingManager.tsx @@ -539,21 +539,11 @@ export class SharingManager extends React.Component<{}> { // const permissions = uniform ? StrCast(targetDoc?.[userKey]) : '-multiple-'; let permissions = this.layoutDocAcls ? (targetDoc[DocAcl][userKey] ? HierarchyMapping.get(targetDoc[DocAcl][userKey])?.name : StrCast(Doc.GetProto(targetDoc)[userKey])) : StrCast(targetDoc[userKey]); if (this.layoutDocAcls){ - if (targetDoc[DocAcl][userKey]){ - permissions = HierarchyMapping.get(targetDoc[DocAcl][userKey])?.name; - } - else{ - if (targetDoc['embedContainer']){ - permissions = StrCast(Doc.GetProto(DocCast(targetDoc['embedContainer']))[userKey]); - } - else{ - permissions = uniform ? StrCast(Doc.GetProto(targetDoc)?.[userKey]) : '-multiple-'; - } - } - } - else{ - permissions = uniform ? StrCast(targetDoc?.[userKey]) : '-multiple-'; + if (targetDoc[DocAcl][userKey]) permissions = HierarchyMapping.get(targetDoc[DocAcl][userKey])?.name; + else if (targetDoc['embedContainer']) permissions = StrCast(Doc.GetProto(DocCast(targetDoc['embedContainer']))[userKey]); + else permissions = uniform ? StrCast(Doc.GetProto(targetDoc)?.[userKey]) : '-multiple-'; } + else permissions = uniform ? StrCast(targetDoc?.[userKey]) : '-multiple-'; return !permissions ? null : ( <div key={userKey} className={'container'}> @@ -578,7 +568,15 @@ export class SharingManager extends React.Component<{}> { const sameAuthor = docs.every(doc => doc?.author === docs[0]?.author); // the owner of the doc and the current user are placed at the top of the user list. - const curUserPermission = HierarchyMapping.get(effectiveAcls[0])!.name + const userKey = `acl-${normalizeEmail(Doc.CurrentUserEmail)}`; + var curUserPermission; + if (this.layoutDocAcls){ + if (targetDoc[DocAcl][userKey]) curUserPermission = HierarchyMapping.get(targetDoc[DocAcl][userKey])?.name; + else if (targetDoc['embedContainer']) curUserPermission = StrCast(Doc.GetProto(DocCast(targetDoc['embedContainer']))[userKey]); + else curUserPermission = StrCast(Doc.GetProto(targetDoc)?.[userKey]); + } + else curUserPermission = StrCast(targetDoc[userKey]); + // const curUserPermission = HierarchyMapping.get(effectiveAcls[0])!.name userListContents.unshift( sameAuthor ? ( <div key={'owner'} className={'container'}> @@ -593,7 +591,7 @@ export class SharingManager extends React.Component<{}> { <span className={'padding'}>Me</span> <div className="edit-actions"> <div className={`permissions-dropdown-${curUserPermission}`}> - {effectiveAcls.every(acl => acl === effectiveAcls[0]) ? concat(ReverseHierarchyMap.get(curUserPermission)?.image, ' ', curUserPermission) : '-multiple-'} + {effectiveAcls.every(acl => acl === effectiveAcls[0]) ? concat(ReverseHierarchyMap.get(curUserPermission!)?.image, ' ', curUserPermission) : '-multiple-'} </div> </div> @@ -613,22 +611,14 @@ export class SharingManager extends React.Component<{}> { let permissions = this.layoutDocAcls ? (targetDoc[DocAcl][groupKey] ? HierarchyMapping.get(targetDoc[DocAcl][groupKey])?.name : StrCast(Doc.GetProto(targetDoc)[groupKey])) : StrCast(targetDoc[groupKey]); if (this.layoutDocAcls){ if (groupKey == 'acl-Public') groupKey = 'acl-Public-layout'; - if (targetDoc[DocAcl][groupKey]){ - permissions = HierarchyMapping.get(targetDoc[DocAcl][groupKey])?.name; - } + if (targetDoc[DocAcl][groupKey]) permissions = HierarchyMapping.get(targetDoc[DocAcl][groupKey])?.name; else{ if (groupKey == 'acl-Public-layout') groupKey = 'acl-Public'; - if (targetDoc['embedContainer']){ - permissions = StrCast(Doc.GetProto(DocCast(targetDoc['embedContainer']))[groupKey]); - } - else{ - permissions = uniform ? StrCast(Doc.GetProto(targetDoc)?.[groupKey]) : '-multiple-'; - } + if (targetDoc['embedContainer']) permissions = StrCast(Doc.GetProto(DocCast(targetDoc['embedContainer']))[groupKey]); + else permissions = uniform ? StrCast(Doc.GetProto(targetDoc)?.[groupKey]) : '-multiple-'; } } - else{ - permissions = uniform ? StrCast(targetDoc?.[groupKey]) : '-multiple-'; - } + else permissions = uniform ? StrCast(targetDoc?.[groupKey]) : '-multiple-'; return !permissions ? null : ( <div key={groupKey} className={'container'}> @@ -710,7 +700,13 @@ export class SharingManager extends React.Component<{}> { </div> </div> ) : ( - <br /> + <div className='share-container'> + <div className='acl-container'> + <div className='layoutDoc-acls'> + <input type="checkbox" onChange={action(() => (this.layoutDocAcls = !this.layoutDocAcls))} checked={this.layoutDocAcls} /> <label>Layout</label> + </div> + </div> + </div> )} <div className="main-container"> <div className={'individual-container'}> diff --git a/src/client/views/PropertiesView.tsx b/src/client/views/PropertiesView.tsx index ca357f830..904755132 100644 --- a/src/client/views/PropertiesView.tsx +++ b/src/client/views/PropertiesView.tsx @@ -453,9 +453,7 @@ export class PropertiesView extends React.Component<PropertiesViewProps> { const userKey = `acl-${normalizeEmail(userEmail)}`; var permission; if (this.layoutDocAcls){ - if (target[DocAcl][userKey]){ - permission = HierarchyMapping.get(target[DocAcl][userKey])?.name; - } + if (target[DocAcl][userKey]) permission = HierarchyMapping.get(target[DocAcl][userKey])?.name; else if (target['embedContainer']) permission = StrCast(Doc.GetProto(DocCast(target['embedContainer']))[userKey]); else permission = StrCast(Doc.GetProto(target)?.[userKey]); } @@ -465,10 +463,17 @@ export class PropertiesView extends React.Component<PropertiesViewProps> { // adds current user var userEmail = Doc.CurrentUserEmail; + const userKey = `acl-${normalizeEmail(userEmail)}`; if (userEmail == 'guest') userEmail = 'Public'; if (!usersAdded.includes(userEmail) && userEmail != 'Public' && userEmail != target.author) { - individualTableEntries.unshift(this.sharingItem(userEmail, showAdmin, StrCast(target[`acl-${normalizeEmail(userEmail)}`]), false)); // adds each user - usersAdded.push(userEmail); + var permission; + if (this.layoutDocAcls){ + if (target[DocAcl][userKey]) permission = HierarchyMapping.get(target[DocAcl][userKey])?.name; + else if (target['embedContainer']) permission = StrCast(Doc.GetProto(DocCast(target['embedContainer']))[userKey]); + else permission = StrCast(Doc.GetProto(target)?.[userKey]); + } + else permission = StrCast(target[userKey]); + individualTableEntries.unshift(this.sharingItem(userEmail, showAdmin, permission!, false)); // adds each user } // shift owner to top |