|
21 | 21 | --> |
22 | 22 |
|
23 | 23 | <template> |
24 | | - <table id="app-content" |
| 24 | + <div id="app-content" |
25 | 25 | role="grid" |
26 | 26 | :aria-label="t('settings', 'User\'s table')" |
27 | 27 | class="user-list-grid" |
|
154 | 154 | :options="possibleManagers" |
155 | 155 | :placeholder="t('settings', 'Select user manager')" |
156 | 156 | class="multiselect-vue" |
157 | | - @search-change="searchUserManager" |
158 | 157 | label="displayname" |
159 | | - track-by="id"> |
| 158 | + track-by="id" |
| 159 | + @search-change="searchUserManager"> |
160 | 160 | <span slot="noResult">{{ t('settings', 'No results') }}</span> |
161 | 161 | </NcMultiselect> |
162 | 162 | </div> |
|
170 | 170 | </div> |
171 | 171 | </form> |
172 | 172 | </NcModal> |
173 | | - <tbody> |
174 | | - <tr id="grid-header" |
175 | | - :class="{'sticky': scrolled && !showConfig.showNewUserForm}" |
176 | | - class="row"> |
177 | | - <th id="headerAvatar" class="avatar"> |
178 | | - <span class="hidden-visually"> {{ t('settings', 'Avatar') }} </span> |
179 | | - </th> |
180 | | - <th id="headerName" class="name"> |
181 | | - <div class="subtitle"> |
182 | | - <strong> |
183 | | - {{ t('settings', 'Display name') }} |
184 | | - </strong> |
185 | | - </div> |
186 | | - {{ t('settings', 'Username') }} |
187 | | - </th> |
188 | | - <th id="headerPassword" class="password"> |
189 | | - {{ t('settings', 'Password') }} |
190 | | - </th> |
191 | | - <th id="headerAddress" class="mailAddress"> |
192 | | - {{ t('settings', 'Email') }} |
193 | | - </th> |
194 | | - <th id="headerGroups" class="groups"> |
195 | | - {{ t('settings', 'Groups') }} |
196 | | - </th> |
197 | | - <th v-if="subAdminsGroups.length>0 && settings.isAdmin" |
198 | | - id="headerSubAdmins" |
199 | | - class="subadmins"> |
200 | | - {{ t('settings', 'Group admin for') }} |
201 | | - </th> |
202 | | - <th id="headerQuota" class="quota"> |
203 | | - {{ t('settings', 'Quota') }} |
204 | | - </th> |
205 | | - <th v-if="showConfig.showLanguages" |
206 | | - id="headerLanguages" |
207 | | - class="languages"> |
208 | | - {{ t('settings', 'Language') }} |
209 | | - </th> |
210 | | - |
211 | | - <th v-if="showConfig.showUserBackend || showConfig.showStoragePath" |
212 | | - class="headerUserBackend userBackend"> |
213 | | - <div v-if="showConfig.showUserBackend" class="userBackend"> |
214 | | - {{ t('settings', 'User backend') }} |
215 | | - </div> |
216 | | - <div v-if="showConfig.showStoragePath" |
217 | | - class="subtitle storageLocation"> |
218 | | - {{ t('settings', 'Storage location') }} |
219 | | - </div> |
220 | | - </th> |
221 | | - <th v-if="showConfig.showLastLogin" |
222 | | - class="headerLastLogin lastLogin"> |
223 | | - {{ t('settings', 'Last login') }} |
224 | | - </th> |
225 | | - <th id="headerManager" class="manager"> |
226 | | - {{ t('settings', 'Manager') }} |
227 | | - </th> |
228 | | - <th class="userActions hidden-visually"> |
229 | | - {{ t('settings', 'User actions') }} |
230 | | - </th> |
231 | | - </tr> |
232 | | - |
233 | | - <user-row v-for="user in filteredUsers" |
234 | | - :key="user.id" |
235 | | - :external-actions="externalActions" |
236 | | - :groups="groups" |
237 | | - :languages="languages" |
238 | | - :quota-options="quotaOptions" |
239 | | - :settings="settings" |
240 | | - :show-config="showConfig" |
241 | | - :sub-admins-groups="subAdminsGroups" |
242 | | - :user="user" |
243 | | - :users="users" |
244 | | - :is-dark-theme="isDarkTheme" /> |
| 173 | + <div id="grid-header" |
| 174 | + :class="{'sticky': scrolled && !showConfig.showNewUserForm}" |
| 175 | + class="row"> |
| 176 | + <div id="headerAvatar" class="avatar" /> |
| 177 | + <div id="headerName" class="name"> |
| 178 | + <div class="subtitle"> |
| 179 | + <strong> |
| 180 | + {{ t('settings', 'Display name') }} |
| 181 | + </strong> |
| 182 | + </div> |
| 183 | + {{ t('settings', 'Username') }} |
| 184 | + </div> |
| 185 | + <div id="headerPassword" class="password"> |
| 186 | + {{ t('settings', 'Password') }} |
| 187 | + </div> |
| 188 | + <div id="headerAddress" class="mailAddress"> |
| 189 | + {{ t('settings', 'Email') }} |
| 190 | + </div> |
| 191 | + <div id="headerGroups" class="groups"> |
| 192 | + {{ t('settings', 'Groups') }} |
| 193 | + </div> |
| 194 | + <div v-if="subAdminsGroups.length>0 && settings.isAdmin" |
| 195 | + id="headerSubAdmins" |
| 196 | + class="subadmins"> |
| 197 | + {{ t('settings', 'Group admin for') }} |
| 198 | + </div> |
| 199 | + <div id="headerQuota" class="quota"> |
| 200 | + {{ t('settings', 'Quota') }} |
| 201 | + </div> |
| 202 | + <div v-if="showConfig.showLanguages" |
| 203 | + id="headerLanguages" |
| 204 | + class="languages"> |
| 205 | + {{ t('settings', 'Language') }} |
| 206 | + </div> |
245 | 207 |
|
246 | | - <InfiniteLoading ref="infiniteLoading" @infinite="infiniteHandler"> |
247 | | - <div slot="spinner"> |
248 | | - <div class="users-icon-loading icon-loading" /> |
| 208 | + <div v-if="showConfig.showUserBackend || showConfig.showStoragePath" |
| 209 | + class="headerUserBackend userBackend"> |
| 210 | + <div v-if="showConfig.showUserBackend" class="userBackend"> |
| 211 | + {{ t('settings', 'User backend') }} |
249 | 212 | </div> |
250 | | - <div slot="no-more"> |
251 | | - <div class="users-list-end" /> |
| 213 | + <div v-if="showConfig.showStoragePath" |
| 214 | + class="subtitle storageLocation"> |
| 215 | + {{ t('settings', 'Storage location') }} |
252 | 216 | </div> |
253 | | - <div slot="no-results"> |
254 | | - <div id="emptycontent"> |
255 | | - <div class="icon-contacts-dark" /> |
256 | | - <h2>{{ t('settings', 'No users in here') }}</h2> |
257 | | - </div> |
| 217 | + </div> |
| 218 | + <div v-if="showConfig.showLastLogin" |
| 219 | + class="headerLastLogin lastLogin"> |
| 220 | + {{ t('settings', 'Last login') }} |
| 221 | + </div> |
| 222 | + <div id="headerManager" class="manager"> |
| 223 | + {{ t('settings', 'Manager') }} |
| 224 | + </div> |
| 225 | + <div class="userActions" /> |
| 226 | + </div> |
| 227 | + |
| 228 | + <user-row v-for="user in filteredUsers" |
| 229 | + :key="user.id" |
| 230 | + :external-actions="externalActions" |
| 231 | + :groups="groups" |
| 232 | + :languages="languages" |
| 233 | + :quota-options="quotaOptions" |
| 234 | + :settings="settings" |
| 235 | + :show-config="showConfig" |
| 236 | + :sub-admins-groups="subAdminsGroups" |
| 237 | + :user="user" |
| 238 | + :users="users" |
| 239 | + :is-dark-theme="isDarkTheme" /> |
| 240 | + |
| 241 | + <InfiniteLoading ref="infiniteLoading" @infinite="infiniteHandler"> |
| 242 | + <div slot="spinner"> |
| 243 | + <div class="users-icon-loading icon-loading" /> |
| 244 | + </div> |
| 245 | + <div slot="no-more"> |
| 246 | + <div class="users-list-end" /> |
| 247 | + </div> |
| 248 | + <div slot="no-results"> |
| 249 | + <div id="emptycontent"> |
| 250 | + <div class="icon-contacts-dark" /> |
| 251 | + <h2>{{ t('settings', 'No users in here') }}</h2> |
258 | 252 | </div> |
259 | | - </InfiniteLoading> |
260 | | - </tbody> |
261 | | - </table> |
| 253 | + </div> |
| 254 | + </InfiniteLoading> |
| 255 | + </div> |
262 | 256 | </template> |
263 | 257 |
|
264 | 258 | <script> |
@@ -685,12 +679,4 @@ export default { |
685 | 679 | * prevent it). */ |
686 | 680 | width: 0; |
687 | 681 | } |
688 | | -
|
689 | | - #app-content tbody tr { |
690 | | - &:hover, |
691 | | - &:focus, |
692 | | - &:active { |
693 | | - background-color: var(--color-main-background); |
694 | | - } |
695 | | - } |
696 | 682 | </style> |
0 commit comments