@@ -69,7 +69,7 @@ const VersionCleanupStatusBody = ({ statusApi }) => {
6969 }
7070
7171 const propertyItems = VERSION_CLEANUP_FIELDS . filter (
72- ( key ) => progress ?. [ key ] !== undefined && progress ?. [ key ] !== '' ,
72+ ( key ) => progress ?. [ key ] !== undefined && progress ?. [ key ] !== ''
7373 ) . map ( ( key ) => ( {
7474 label : VERSION_CLEANUP_LABELS [ key ] ,
7575 value : String ( progress [ key ] ) ,
@@ -104,12 +104,7 @@ const VersionCleanupStatusModal = ({ row, tenantFilter, drawerVisible, setDrawer
104104 } )
105105
106106 return (
107- < Dialog
108- fullWidth
109- maxWidth = "sm"
110- open = { ! ! drawerVisible }
111- onClose = { ( ) => setDrawerVisible ( false ) }
112- >
107+ < Dialog fullWidth maxWidth = "sm" open = { ! ! drawerVisible } onClose = { ( ) => setDrawerVisible ( false ) } >
113108 < DialogTitle >
114109 Cleanup Job Status{ siteRow ?. displayName ? ` — ${ siteRow . displayName } ` : '' }
115110 </ DialogTitle >
@@ -151,7 +146,7 @@ const Page = () => {
151146 URL : 'webUrl' ,
152147 SharePointType : 'rootWebTemplate' ,
153148 } ,
154- confirmText : 'Select the User to add as a member .' ,
149+ confirmText : 'Select the User to add and the site role to add them to .' ,
155150 fields : [
156151 {
157152 type : 'autoComplete' ,
@@ -177,7 +172,21 @@ const Page = () => {
177172 showRefresh : true ,
178173 } ,
179174 } ,
175+ {
176+ type : 'radio' ,
177+ name : 'Role' ,
178+ label : 'Site Role' ,
179+ options : [
180+ { label : 'Members' , value : 'Members' } ,
181+ { label : 'Owners' , value : 'Owners' } ,
182+ { label : 'Visitors' , value : 'Visitors' } ,
183+ ] ,
184+ } ,
180185 ] ,
186+ defaultvalues : {
187+ Role : 'Members' ,
188+ } ,
189+ allowResubmit : true ,
181190 multiPost : false ,
182191 } ,
183192 {
@@ -191,33 +200,50 @@ const Page = () => {
191200 URL : 'webUrl' ,
192201 SharePointType : 'rootWebTemplate' ,
193202 } ,
194- confirmText : 'Select the User to remove as a member.' ,
195- fields : [
196- {
197- type : 'autoComplete' ,
198- name : 'user' ,
199- label : 'Select User' ,
200- multiple : false ,
201- creatable : false ,
202- api : {
203- url : '/api/ListGraphRequest' ,
204- data : {
205- Endpoint : 'users' ,
206- $select : 'id,displayName,userPrincipalName' ,
207- $top : 999 ,
208- $count : true ,
209- } ,
210- queryKey : 'ListUsersAutoComplete' ,
211- dataKey : 'Results' ,
212- labelField : ( user ) => `${ user . displayName } (${ user . userPrincipalName } )` ,
213- valueField : 'userPrincipalName' ,
214- addedField : {
215- id : 'id' ,
216- } ,
217- showRefresh : true ,
218- } ,
219- } ,
220- ] ,
203+ confirmText : 'Select the user to remove from their site role.' ,
204+ children : ( { formHook, row } ) => {
205+ const siteRow = Array . isArray ( row ) ? row [ 0 ] : row
206+ return (
207+ < CippFormComponent
208+ type = "autoComplete"
209+ name = "user"
210+ label = "Select Member"
211+ multiple = { false }
212+ creatable = { false }
213+ formControl = { formHook }
214+ validators = { { required : 'Please select a member' } }
215+ api = { {
216+ url : '/api/ListSiteMembers' ,
217+ data : {
218+ SiteId : siteRow ?. siteId ,
219+ SiteUrl : siteRow ?. webUrl ,
220+ tenantFilter : siteRow ?. Tenant ?? tenantFilter ,
221+ } ,
222+ queryKey : `SiteMembersPicker-${ siteRow ?. siteId } ` ,
223+ dataKey : 'Results' ,
224+ labelField : ( member ) =>
225+ `${ member . Title } (${ member . UserPrincipalName } ) — ${ member . Group } ` ,
226+ valueField : 'UserPrincipalName' ,
227+ addedField : {
228+ Group : 'Group' ,
229+ Type : 'Type' ,
230+ } ,
231+ dataFilter : ( options ) =>
232+ options . filter (
233+ ( option , index , all ) =>
234+ option . value &&
235+ [ 'Owners' , 'Members' , 'Visitors' ] . includes ( option . addedFields ?. Group ) &&
236+ all . findIndex (
237+ ( o ) =>
238+ o . value === option . value &&
239+ o . addedFields ?. Group === option . addedFields ?. Group
240+ ) === index
241+ ) ,
242+ showRefresh : true ,
243+ } }
244+ />
245+ )
246+ } ,
221247 multiPost : false ,
222248 } ,
223249 {
@@ -544,11 +570,12 @@ const Page = () => {
544570 url : '/api/ListSiteMembers' ,
545571 data : {
546572 SiteId : row . siteId ,
573+ SiteUrl : row . webUrl ,
547574 tenantFilter : tenantFilter ,
548575 } ,
549576 dataKey : 'Results' ,
550577 } }
551- simpleColumns = { [ 'fields. Title' , 'fields.EMail ' , 'fields. IsSiteAdmin' ] }
578+ simpleColumns = { [ 'Title' , 'Email ' , 'Group' , 'Type' , ' IsSiteAdmin'] }
552579 />
553580 ) ,
554581 size : 'lg' , // Make the offcanvas extra large
0 commit comments