@@ -11,11 +11,13 @@ Behaviour.specify(".azure-ad-add-button", 'AzureAdMatrixAuthorizationStrategy',
11
11
var nonGraphInput = document . getElementById ( dataTableId + 'text' )
12
12
var selectedPeople = [ ]
13
13
var peoplePickerEnabled = true
14
+ var typeLabel
14
15
if ( nonGraphInput ) {
15
16
peoplePickerEnabled = false
16
17
if ( nonGraphInput . value ) {
17
18
selectedPeople = [ nonGraphInput . value ]
18
19
}
20
+ typeLabel = dataReference . getAttribute ( 'data-type-label' )
19
21
} else {
20
22
selectedPeople = document . querySelector ( 'mgt-people-picker' ) . selectedPeople ;
21
23
}
@@ -32,9 +34,11 @@ Behaviour.specify(".azure-ad-add-button", 'AzureAdMatrixAuthorizationStrategy',
32
34
if ( person . groupTypes ) {
33
35
name = person . displayName + " (" + person . id + ")"
34
36
type = "GROUP"
37
+ typeLabel = dataReference . getAttribute ( 'data-type-group-label' )
35
38
} else {
36
39
name = person . userPrincipalName + " (" + person . id + ")"
37
40
type = "USER"
41
+ typeLabel = dataReference . getAttribute ( 'data-type-user-label' )
38
42
}
39
43
} else {
40
44
type = dataReference . getAttribute ( 'data-type' )
@@ -57,15 +61,23 @@ Behaviour.specify(".azure-ad-add-button", 'AzureAdMatrixAuthorizationStrategy',
57
61
58
62
for ( var child = copy . firstChild ; child !== null ; child = child . nextSibling ) {
59
63
if ( child . hasAttribute ( 'data-permission-id' ) ) {
60
- child . setAttribute ( "data-tooltip-enabled" , child . getAttribute ( "data-tooltip-enabled" ) . replace ( "__SID__" , name ) ) ;
61
- child . setAttribute ( "data-tooltip-disabled" , child . getAttribute ( "data-tooltip-disabled" ) . replace ( "__SID__" , name ) ) ;
64
+ child . setAttribute ( "data-tooltip-enabled" , child . getAttribute ( "data-tooltip-enabled" ) . replace ( "__SID__" , name ) . replace ( "__TYPE__" , typeLabel ) ) ;
65
+ child . setAttribute ( "data-tooltip-disabled" , child . getAttribute ( "data-tooltip-disabled" ) . replace ( "__SID__" , name ) . replace ( "__TYPE__" , typeLabel ) ) ;
62
66
}
63
67
}
64
68
findElementsBySelector ( copy , ".stop img" ) . each ( function ( item ) {
65
- item . setAttribute ( "title" , item . getAttribute ( "title" ) . replace ( "__SID__" , name ) ) ;
69
+ item . setAttribute ( "title" , item . getAttribute ( "title" ) . replace ( "__SID__" , name ) . replace ( "__TYPE__" , typeLabel ) ) ;
66
70
} ) ;
71
+
72
+ var tooltipAttributeName = getTooltipAttributeName ( ) ;
73
+
67
74
findElementsBySelector ( copy , "input[type=checkbox]" ) . each ( function ( item ) {
68
- item . setAttribute ( "title" , item . getAttribute ( "title" ) . replace ( "__SID__" , name ) ) ;
75
+ const tooltip = item . getAttribute ( tooltipAttributeName ) ;
76
+ if ( tooltip ) {
77
+ item . setAttribute ( tooltipAttributeName , tooltip . replace ( "__SID__" , name ) . replace ( "__TYPE__" , typeLabel ) ) ;
78
+ } else {
79
+ item . setAttribute ( "title" , item . getAttribute ( "title" ) . replace ( "__SID__" , name ) . replace ( "__TYPE__" , typeLabel ) ) ;
80
+ }
69
81
} ) ;
70
82
table . appendChild ( copy ) ;
71
83
Behaviour . applySubtree ( findAncestor ( table , "TABLE" ) , true ) ;
@@ -80,6 +92,11 @@ Behaviour.specify(".azure-ad-add-button", 'AzureAdMatrixAuthorizationStrategy',
80
92
} ) ;
81
93
} ) ;
82
94
95
+ function getTooltipAttributeName ( ) {
96
+ var tippySupported = window . registerTooltips !== undefined ;
97
+ return tippySupported ? 'html-tooltip' : 'tooltip' ;
98
+ }
99
+
83
100
/*
84
101
* Behavior for the element removing a permission assignment row for a user/group
85
102
*/
@@ -128,19 +145,24 @@ Behaviour.specify(".global-matrix-authorization-strategy-table TD.stop A.unselec
128
145
* Whenever permission assignments change, this ensures that implied permissions get their checkboxes disabled.
129
146
*/
130
147
Behaviour . specify ( ".global-matrix-authorization-strategy-table td input" , 'AzureAdMatrixAuthorizationStrategy' , 0 , function ( e ) {
148
+ var tooltipAttributeName = getTooltipAttributeName ( ) ;
131
149
var impliedByString = findAncestor ( e , "TD" ) . getAttribute ( 'data-implied-by-list' ) ;
132
150
var impliedByList = impliedByString . split ( " " ) ;
133
151
var tr = findAncestor ( e , "TR" ) ;
134
152
e . disabled = false ;
135
- e . setAttribute ( 'tooltip' , YAHOO . lang . escapeHTML ( findAncestor ( e , "TD" ) . getAttribute ( 'data-tooltip-enabled' ) ) ) ;
153
+ var enabledTooltip = YAHOO . lang . escapeHTML ( findAncestor ( e , "TD" ) . getAttribute ( 'data-tooltip-enabled' ) ) ;
154
+ e . setAttribute ( tooltipAttributeName , enabledTooltip ) ;
155
+ e . nextSibling . setAttribute ( tooltipAttributeName , enabledTooltip ) ; // 2.335+
136
156
137
157
for ( var i = 0 ; i < impliedByList . length ; i ++ ) {
138
158
var permissionId = impliedByList [ i ] ;
139
159
var reference = tr . querySelector ( "td[data-permission-id='" + permissionId + "'] input" ) ;
140
160
if ( reference !== null ) {
141
161
if ( reference . checked ) {
142
162
e . disabled = true ;
143
- e . setAttribute ( 'tooltip' , YAHOO . lang . escapeHTML ( findAncestor ( e , "TD" ) . getAttribute ( 'data-tooltip-disabled' ) ) ) ;
163
+ var tooltip = YAHOO . lang . escapeHTML ( findAncestor ( e , "TD" ) . getAttribute ( 'data-tooltip-disabled' ) ) ;
164
+ e . setAttribute ( tooltipAttributeName , tooltip ) ; // before 2.335 -- TODO remove once baseline is new enough
165
+ e . nextSibling . setAttribute ( tooltipAttributeName , tooltip ) ; // 2.335+
144
166
}
145
167
}
146
168
}
0 commit comments