2021-02-09 09:22:49 +00:00
import { gettext } from "django" ;
2021-02-09 16:04:55 +00:00
import { customElement , html , property , TemplateResult } from "lit-element" ;
import { AKResponse } from "../../api/Client" ;
2021-02-09 09:22:49 +00:00
import { Source } from "../../api/Sources" ;
import { TableColumn } from "../../elements/table/Table" ;
import { TablePage } from "../../elements/table/TablePage" ;
2021-02-09 16:04:55 +00:00
import "../../elements/buttons/ModalButton" ;
import "../../elements/buttons/SpinnerButton" ;
2021-02-09 09:22:49 +00:00
@customElement ( "ak-source-list" )
export class SourceListPage extends TablePage < Source > {
pageTitle ( ) : string {
return "Sources" ;
}
pageDescription ( ) : string | undefined {
return "External Sources which can be used to get Identities into authentik, for example Social Providers like Twiter and GitHub or Enterprise Providers like ADFS and LDAP." ;
}
pageIcon ( ) : string {
return "pf-icon pf-icon-middleware" ;
}
searchEnabled ( ) : boolean {
return true ;
}
@property ( )
order = "name" ;
2021-02-09 16:04:55 +00:00
apiEndpoint ( page : number ) : Promise < AKResponse < Source > > {
2021-02-09 09:22:49 +00:00
return Source . list ( {
ordering : this.order ,
page : page ,
search : this.search || "" ,
} ) ;
}
columns ( ) : TableColumn [ ] {
return [
new TableColumn ( "Name" , "name" ) ,
new TableColumn ( "Type" , "verbose_name" ) ,
new TableColumn ( "" ) ,
] ;
}
row ( item : Source ) : TemplateResult [ ] {
return [
html ` <a href="#/sources/ ${ item . slug } ">
< div > $ { item . name } < / div >
$ { item . enabled ? html ` ` : html ` <small> ${ gettext ( "Disabled" ) } </small> ` }
< / a > ` ,
html ` ${ item . verbose_name } ` ,
html `
< ak - modal - button href = "${Source.adminUrl(`${item.pk}/update/`)}" >
< ak - spinner - button slot = "trigger" class = "pf-m-secondary" >
Edit
< / a k - s p i n n e r - b u t t o n >
< div slot = "modal" > < / div >
< / a k - m o d a l - b u t t o n > & n b s p ;
< ak - modal - button href = "${Source.adminUrl(`${item.pk}/delete/`)}" >
< ak - spinner - button slot = "trigger" class = "pf-m-danger" >
Delete
< / a k - s p i n n e r - b u t t o n >
< div slot = "modal" > < / div >
< / a k - m o d a l - b u t t o n >
` ,
] ;
}
}