@ -22,6 +22,8 @@ import '@vaadin/icon'
import '@vaadin/icons'
import '@vaadin/grid'
import '@vaadin/grid/vaadin-grid-filter-column.js'
import '@vaadin/grid/vaadin-grid-sort-column.js'
import '@vaadin/text-field'
const parentEpml = new Epml ( { type : 'WINDOW' , source : window . parent } )
@ -33,6 +35,7 @@ class GroupManagement extends LitElement {
privateGroups : { type : Array } ,
joinedGroups : { type : Array } ,
groupInvites : { type : Array } ,
filteredItems : { type : Array } ,
privateGroupSearch : { type : Array } ,
newMembersList : { type : Array } ,
newAdminsList : { type : Array } ,
@ -111,6 +114,9 @@ class GroupManagement extends LitElement {
-- _lumo - grid - secondary - border - color : var ( -- border2 ) ;
}
[ part = "input-field" ] {
background - color : # fff ;
}
# group - management - page {
background : var ( -- white ) ;
padding : 12 px 24 px ;
@ -437,6 +443,7 @@ class GroupManagement extends LitElement {
this . privateGroups = [ ]
this . joinedGroups = [ ]
this . groupInvites = [ ]
this . filteredItems = [ ]
this . privateGroupSearch = [ ]
this . newMembersList = [ ]
this . newAdminsList = [ ]
@ -1314,8 +1321,8 @@ class GroupManagement extends LitElement {
< h3 style = "margin: 0; margin-bottom: 1em; text-align: center;" > $ { translate ( "grouppage.gchange3" ) } < / h 3 >
< vaadin - grid theme = "large" id = "joinedGroupsGrid" ? hidden = "${this.isEmptyArray(this.joinedGroups)}" . items = "${this.joinedGroups}" aria - label = "Joined Groups" all - rows - visible >
< vaadin - grid - column width = "8rem" flex - grow = "0" header = "${translate(" grouppage . gchange54 ")}" path = "memberCount" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - filter - column header = "${translate(" grouppage . gchange4 ")}" path = "groupName" > < / v a a d i n - g r i d - f i l t e r - c o l u m n >
< vaadin - grid - filter - column header = "${translate(" grouppage . gchange5 ")}" path = "description" > < / v a a d i n - g r i d - f i l t e r - c o l u m n >
< vaadin - grid - column header = "${translate(" grouppage . gchange4 ")}" path = "groupName" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - column header = "${translate(" grouppage . gchange5 ")}" path = "description" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - column width = "11rem" flex - grow = "0" header = "${translate(" grouppage . gchange6 ")}" . renderer = $ { ( root , column , data ) => {
render ( html ` ${ this . renderRole ( data . item ) } ` , root )
} } > < / v a a d i n - g r i d - c o l u m n >
@ -1359,11 +1366,25 @@ class GroupManagement extends LitElement {
< div class = "divCard" >
< h3 style = "margin: 0; margin-bottom: 1em; text-align: center;" > $ { translate ( "grouppage.gchange9" ) } < / h 3 >
< vaadin - grid theme = "large" id = "publicGroupsGrid" ? hidden = "${this.isEmptyArray(this.publicGroups)}" . items = "${this.publicGroups}" aria - label = "Public Open Groups" all - rows - visible >
< vaadin - grid - column width = "8rem" flex - grow = "0" header = "${translate(" grouppage . gchange54 ")}" path = "memberCount" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - filter - column header = "${translate(" grouppage . gchange4 ")}" path = "groupName" > < / v a a d i n - g r i d - f i l t e r - c o l u m n >
< vaadin - grid - filter - column header = "${translate(" grouppage . gchange5 ")}" path = "description" > < / v a a d i n - g r i d - f i l t e r - c o l u m n >
< vaadin - grid - filter - column header = "${translate(" grouppage . gchange10 ")}" path = "owner" > < / v a a d i n - g r i d - f i l t e r - c o l u m n >
< vaadin - text - field
placeholder = "${translate(" datapage . dchange4 ")}"
style = "width: 25%; margin-bottom: 20px;"
clear - button - visible
@ value - changed = " $ { ( e ) => {
this . filteredItems = [ ]
const searchTerm = ( e . target . value || '' ) . trim ( )
const keys = [ 'groupName' , 'description' , 'owner' ]
const filtered = this . publicGroups . filter ( ( search ) => keys . some ( ( key ) => search [ key ] . toLowerCase ( ) . includes ( searchTerm . toLowerCase ( ) ) ) )
this . filteredItems = filtered
} } "
>
< vaadin - icon slot = "prefix" icon = "vaadin:search" > < / v a a d i n - i c o n >
< / v a a d i n - t e x t - f i e l d > < b r >
< vaadin - grid theme = "large" id = "publicGroupsGrid" . items = "${this.filteredItems}" aria - label = "Public Open Groups" all - rows - visible >
< vaadin - grid - sort - column width = "8rem" flex - grow = "0" header = "${translate(" grouppage . gchange54 ")}" path = "memberCount" > < / v a a d i n - g r i d - s o r t - c o l u m n >
< vaadin - grid - column header = "${translate(" grouppage . gchange4 ")}" path = "groupName" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - column header = "${translate(" grouppage . gchange5 ")}" path = "description" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - column header = "${translate(" grouppage . gchange10 ")}" path = "owner" > < / v a a d i n - g r i d - c o l u m n >
< vaadin - grid - column width = "11rem" flex - grow = "0" header = "${translate(" grouppage . gchange7 ")}" . renderer = $ { ( root , column , data ) => {
render ( html ` <mwc-button @click= ${ ( ) => this . joinGroup ( data . item ) } ><mwc-icon>queue</mwc-icon> ${ translate ( "grouppage.gchange51" ) } </mwc-button> ` , root )
} } > < / v a a d i n - g r i d - c o l u m n >
@ -1773,7 +1794,8 @@ class GroupManagement extends LitElement {
this . publicGroups = results
this . privateGroups = _privateGroups
this . joinedGroups = _joinedGroups
setTimeout ( getOpen _JoinedGroups , 60000 )
this . filteredItems = this . publicGroups
setTimeout ( getOpen _JoinedGroups , 600000 )
}
window . addEventListener ( "contextmenu" , ( event ) => {