Skip to content

Commit 8d3d746

Browse files
authored
Ftr/263 Implement Concordance Navigator as a web component (#264)
* Initial Implementation of Concordance Navigator Web Component * Remove unused requires and update script loading * removed console.log * removed unused app.getController * removed comment * update ConcordanceNavigator view for web component * Add edirom-concordance-navigator submodule * added edirom-qr-code-scanner as submodule * add liveDrag to Concordance Navigator
1 parent 93c6e75 commit 8d3d746

5 files changed

Lines changed: 49 additions & 297 deletions

File tree

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,9 @@
1010
[submodule "resources/js/edirom-navigator"]
1111
path = resources/js/edirom-navigator
1212
url = https://github.com/Edirom/edirom-navigator.git
13+
[submodule "resources/js/edirom-concordance-navigator"]
14+
path = resources/js/edirom-concordance-navigator
15+
url = https://github.com/Edirom/edirom-concordance-navigator
16+
[submodule "resources/js/edirom-qr-code-scanner"]
17+
path = resources/js/edirom-qr-code-scanner
18+
url = https://github.com/Edirom/edirom-qr-code-scanner

app/controller/window/concordanceNavigator/ConcordanceNavigator.js

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,9 @@ Ext.define('EdiromOnline.controller.window.concordanceNavigator.ConcordanceNavig
3636
single: true
3737
}
3838
});
39-
40-
this.control({
41-
'concordanceNavigator': {
42-
showConnection: this.onShowConnection
43-
}
44-
});
4539
},
4640

47-
onWorkSelected: function(workId) {
48-
//console.log('Werk gewechselt, von Conc registriert!');
49-
//console.log(workId);
50-
51-
41+
onWorkSelected: function (workId) {
5242
var me = this;
5343
if(me.navwin != null) {
5444
var app = me.application;
@@ -65,19 +55,34 @@ Ext.define('EdiromOnline.controller.window.concordanceNavigator.ConcordanceNavig
6555

6656
this.navwin = win;
6757

68-
//win.on('showConnection', me.onShowConnection, me);
69-
7058
var app = me.application;
7159
app.callFunctionOfEdition(win, 'getConcordances', Ext.bind(me.concordancesLoaded, me, [win], true));
72-
},
7360

74-
concordancesLoaded: function(concordanceStore, concordanceWindow) {
75-
concordanceWindow.setConcordances(concordanceStore);
61+
me.ediromConcordanceNavigator = document.querySelector(`#${win.id}-concordance-navigator`);
62+
me.ediromConcordanceNavigator.addEventListener('show-connection-request', function (e) {
63+
var plist = e.detail.plist;
64+
loadLink(plist, { useExisting: true, onlyExisting: true });
65+
});
66+
me.ediromConcordanceNavigator.addEventListener('changed-play-pause-status', function (e) {
67+
// Or should it's own controller be responsible for this?
68+
var newStatus = e.detail.newStatus;
69+
var ediromVideoplayer = document.querySelector(`edirom-videoplayer`);
70+
if (ediromVideoplayer) {
71+
ediromVideoplayer.setAttribute("state", newStatus);
72+
}
73+
});
74+
me.ediromConcordanceNavigator.addEventListener('layout-change', function (e) {
75+
win.updateLayout();
76+
});
7677
},
7778

78-
onShowConnection: function(navigator, plist) {
79+
concordancesLoaded: function (concordanceStore, concordanceWindow) {
7980
var me = this;
80-
var linkController = me.application.getController('LinkController');
81-
linkController.loadLink(plist, {useExisting: true, onlyExisting: true}); //TODO: in Preferences einbauen; TODO: grid sorting vorerst rausgenommen
81+
console.log("Concordances loaded: " + concordanceStore.getCount() + " concordances");
82+
let concordanceStoreRaw = [];
83+
for (let concordance of concordanceStore.data.items) {
84+
concordanceStoreRaw.push(concordance.raw);
85+
}
86+
me.ediromConcordanceNavigator.setAttribute("concordances-data", JSON.stringify(concordanceStoreRaw)); // set concordances as attribute to the web component
8287
}
8388
});

0 commit comments

Comments
 (0)