43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
import Component from '../component/index';
|
|
import TableComponent from '../table-component';
|
|
import storageApi from '../../api/StorageServiceAPI';
|
|
import FilterApiComponent from '../search-component/index';
|
|
import ApiInfoComponent from '../api-info-component/index';
|
|
import CreateApiComponent from '../create-api-component/index';
|
|
import ButtonComponent from '../button-component/ButtonComponent';
|
|
|
|
class ApiPage extends Component {
|
|
constructor (mainNodeSelector, parentNode) {
|
|
super(mainNodeSelector, parentNode);
|
|
|
|
this.filterBox = new FilterApiComponent(this.mainNode);
|
|
this.storageListTable = new TableComponent(this.mainNode);
|
|
this.infoBox = new ApiInfoComponent();
|
|
this.createWindow = new CreateApiComponent();
|
|
this.addSubscribe(this.storageListTable, 'showInfo', (obj) => {
|
|
this.infoBox.render(obj);
|
|
});
|
|
|
|
this.createBtn = new ButtonComponent(this.filterBox.filterButtonBox, '✚', 'btn btn-primary mb-3 Create__btn');
|
|
this.addSubscribe(this.createBtn, 'click', () => {
|
|
this.createWindow.show();
|
|
});
|
|
this.addSubscribe(this.createWindow, 'renderTable', () => {
|
|
this.initStorageListTable();
|
|
});
|
|
|
|
this.initStorageListTable();
|
|
|
|
this.addSubscribe(this.infoBox, 'deleteApi', () => {
|
|
this.initStorageListTable();
|
|
});
|
|
}
|
|
|
|
initStorageListTable = async () => {
|
|
const list = await storageApi.request();
|
|
return this.storageListTable.render(list);
|
|
};
|
|
}
|
|
|
|
export default ApiPage;
|