"use strict";
import { Package, Component, ComponentParams, ComponentDoneResponse, logger } from "qcobjects";
type ComponentServiceData = Component & {
serviceData:any;
}
class GitHubGrid extends Component {
name = "github-grid";
tplsource = "inline";
template = `
$mapper(github-card,result)
`;
}
class DeployGrid extends Component {
name = "deploygrid";
template = `
`;
}
class AdminCheckComponent extends Component {
shadowed = true;
tplsource = "inline";
constructor (o:ComponentParams){
o.body?.setAttribute("serviceClass", "AdminCheckService");
o.body?.setAttribute("response-to", "data");
super(o);
}
}
class AdminSidebarOption extends AdminCheckComponent {
name = "admin-sidebar-option";
template = `
`;
done (standardResponse:ComponentDoneResponse):Promise{
const component = standardResponse.component as ComponentServiceData;
console.log(component.serviceData);
try {
if (JSON.parse(component.serviceData)?.hasAdmin){
logger.debug("Admin module is present");
} else {
logger.debug("Admin module is NOT present. Install admin module in a dynamic served application (non-static server)");
this.shadowRoot?.querySelector("style")?.remove();
this.shadowRoot?.querySelector(".admin_option_container")?.remove();
}
} catch (e){
logger.debug(`It was not possible to check if admin module is present: ${e}`);
this.shadowRoot?.querySelector("style")?.remove();
this.shadowRoot?.querySelector(".admin_option_container")?.remove();
}
return super.done(standardResponse);
}
}
class AdminButton extends AdminCheckComponent {
name = "admin-button";
template = `
`;
done (standardResponse:ComponentDoneResponse):Promise{
const component = standardResponse.component as ComponentServiceData;
console.log(component.serviceData);
try {
if (JSON.parse(component.serviceData)?.hasAdmin){
logger.debug("Admin module is present");
} else {
logger.debug("Admin module is NOT present. Install admin module in a dynamic served application (non-static server)");
this.shadowRoot?.querySelector("style")?.remove();
this.shadowRoot?.querySelector(".admin_button_container")?.remove();
}
} catch (e){
logger.debug(`It was not possible to check if admin module is present: ${e}`);
this.shadowRoot?.querySelector("style")?.remove();
this.shadowRoot?.querySelector(".admin_button_container")?.remove();
}
return super.done(standardResponse);
}
}
Package("org.quickcorp.custom.components", [
AdminButton,
AdminSidebarOption,
DeployGrid,
GitHubGrid
]);