mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-08-02 16:55:18 +00:00
Cleanup in cqi over socketio
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
class CorpusAnalysisApp {
|
||||
constructor(corpusId) {
|
||||
this.corpusId = corpusId;
|
||||
|
||||
this.data = {};
|
||||
|
||||
// HTML elements
|
||||
this.elements = {
|
||||
container: document.querySelector('#corpus-analysis-app-container'),
|
||||
extensionCards: document.querySelector('#corpus-analysis-app-extension-cards'),
|
||||
extensionTabs: document.querySelector('#corpus-analysis-app-extension-tabs'),
|
||||
initModal: document.querySelector('#corpus-analysis-app-init-modal'),
|
||||
overview: document.querySelector('#corpus-analysis-app-overview')
|
||||
initModal: document.querySelector('#corpus-analysis-app-init-modal')
|
||||
};
|
||||
// Materialize elements
|
||||
this.elements.m = {
|
||||
@@ -17,52 +19,49 @@ class CorpusAnalysisApp {
|
||||
|
||||
this.extensions = {};
|
||||
|
||||
this.settings = {
|
||||
corpusId: corpusId
|
||||
};
|
||||
this.settings = {};
|
||||
}
|
||||
|
||||
init() {
|
||||
async init() {
|
||||
this.disableActionElements();
|
||||
this.elements.m.initModal.open();
|
||||
// Init data
|
||||
this.data.cqiClient = new cqi.CQiClient('/cqi_over_sio', this.settings.corpusId);
|
||||
this.data.cqiClient.connect('anonymous', '')
|
||||
.then((cqiStatus) => {
|
||||
return this.data.cqiClient.corpora.list();
|
||||
})
|
||||
.then((cqiCorpora) => {
|
||||
this.data.corpus = {o: cqiCorpora[0]};
|
||||
console.log(this.data.corpus.o.staticData);
|
||||
// this.renderGeneralCorpusInfo();
|
||||
// this.renderTextInfoList();
|
||||
// this.renderTextProportionsGraphic()
|
||||
// this.renderFrequenciesGraphic();
|
||||
// this.renderBoundsGraphic();
|
||||
|
||||
// TODO: Don't do this hgere
|
||||
this.data.corpus.o.updateDb();
|
||||
this.enableActionElements();
|
||||
for (let extension of Object.values(this.extensions)) {extension.init();}
|
||||
this.elements.m.initModal.close();
|
||||
},
|
||||
(cqiError) => {
|
||||
let errorString = `${cqiError.code}: ${cqiError.constructor.name}`;
|
||||
let errorsElement = this.elements.initModal.querySelector('.errors');
|
||||
let progressElement = this.elements.initModal.querySelector('.progress');
|
||||
errorsElement.innerText = errorString;
|
||||
errorsElement.classList.remove('hide');
|
||||
app.flash(errorString, 'error');
|
||||
progressElement.classList.add('hide');
|
||||
}
|
||||
);
|
||||
|
||||
// Add event listeners
|
||||
for (let extensionSelectorElement of this.elements.overview.querySelectorAll('.extension-selector')) {
|
||||
|
||||
// Setup CQi over SocketIO connection and gather data from the CQPServer
|
||||
let cqiClient;
|
||||
let cqiCorpus;
|
||||
try {
|
||||
cqiClient = new cqi.CQiClient('/cqi_over_sio');
|
||||
let response = await cqiClient.api.socket.emitWithAck('init', this.corpusId);
|
||||
if (response.code !== 200) {throw new Error();}
|
||||
await cqiClient.connect('anonymous', '');
|
||||
cqiCorpus = await cqiClient.corpora.get(`NOPAQUE-${this.corpusId.toUpperCase()}`);
|
||||
// TODO: Don't do this hgere
|
||||
await cqiCorpus.updateDb();
|
||||
} catch (error) {
|
||||
// TODO: Currently we can only handle CQiErrors here,
|
||||
// but we should also handle other errors.
|
||||
let errorString = `${error.code}: ${error.constructor.name}`;
|
||||
let errorsElement = this.elements.initModal.querySelector('.errors');
|
||||
let progressElement = this.elements.initModal.querySelector('.progress');
|
||||
errorsElement.innerText = errorString;
|
||||
errorsElement.classList.remove('hide');
|
||||
progressElement.classList.add('hide');
|
||||
return;
|
||||
}
|
||||
this.data.cqiClient = cqiClient;
|
||||
this.data.cqiCorpus = cqiCorpus;
|
||||
this.data.corpus = {o: cqiCorpus}; // legacy
|
||||
|
||||
// Initialize extensions
|
||||
for (let extension of Object.values(this.extensions)) {extension.init();}
|
||||
for (let extensionSelectorElement of this.elements.extensionCards.querySelectorAll('.extension-selector')) {
|
||||
extensionSelectorElement.addEventListener('click', () => {
|
||||
this.elements.m.extensionTabs.select(extensionSelectorElement.dataset.target);
|
||||
});
|
||||
}
|
||||
|
||||
this.enableActionElements();
|
||||
this.elements.m.initModal.close();
|
||||
}
|
||||
|
||||
registerExtension(extension) {
|
||||
@@ -71,7 +70,6 @@ class CorpusAnalysisApp {
|
||||
return;
|
||||
}
|
||||
this.extensions[extension.name] = extension;
|
||||
if ('cQiClient' in this.data && this.data.cQiClient.connected) {extension.init();}
|
||||
}
|
||||
|
||||
disableActionElements() {
|
||||
|
Reference in New Issue
Block a user