#13750 authored by Roland Koller's avatar Roland Koller
Im Webclient ist es aktuell (Stand enaio 9.10) leider noch nicht möglich, embedded office als Dashlet einzubinden. Im Webclient ist es aktuell (Stand enaio 9.10) leider noch nicht möglich, embedded office als Dashlet einzubinden.
Es kann jedoch die Inhalte bearbeiten, Funktion übersteuert und hiermit das Dokument bearbeitet werden. Es kann jedoch die Inhalte bearbeiten, Funktion übersteuert und hiermit das Dokument bearbeitet werden.
![Inhalt bearbeiten](/images/webclient_edit_document.png "Kontext >> Inhalt bearbeiten") ![Inhalt bearbeiten](/images/webclient_edit_document.png "Kontext >> Inhalt bearbeiten")
Hierzu muss der Webclient-Event `BeforeOpen` im Fullclient hinzugefügt werden. Hierzu muss der Webclient-Event `BeforeOpen` im Fullclient hinzugefügt werden.
![Inhalt bearbeiten](/images/webclient_create_event.png "Dokumenttyp >> Kontext-Menü > Webclient-Event hinzufügen") ![Inhalt bearbeiten](/images/webclient_create_event.png "Dokumenttyp >> Kontext-Menü > Webclient-Event hinzufügen")
Hier kann dann das Verhalten des `Inhalt bearbeiten` mit dem folgenden Code übersteuert werden: Hier kann dann das Verhalten des `Inhalt bearbeiten` mit dem folgenden Code übersteuert werden:
## BeforeOpen ## BeforeOpen
```javascript ```javascript
try{ try{
// session guid zur Authorisierung holen. Relevant für APPs und Electron Client // session guid zur Authorisierung holen. Relevant für APPs und Electron Client
var sessionGuid = formHelper.getInfo().session.sessionGuid; var sessionGuid = formHelper.getInfo().session.sessionGuid;
// URL des Editors zusammenbauen // URL des Editors zusammenbauen
var hrefMobile = window.location.baseUrl + "/office/mobile/edit/edit/" + objectTypeId + "/" + objectId + "?sessionguid=" + sessionGuid; var hrefMobile = window.location.baseUrl + "/office/mobile/edit/edit/" + objectTypeId + "/" + objectId + "?sessionguid=" + sessionGuid;
var hrefDesktop = window.location.baseUrl + "/office/desktop/edit/edit/" + objectTypeId + "/" + objectId + "?sessionguid=" + sessionGuid; var hrefDesktop = window.location.baseUrl + "/office/desktop/edit/edit/" + objectTypeId + "/" + objectId + "?sessionguid=" + sessionGuid;
// Prüfen ob es sich um ein Mobilgerät handelt // Prüfen ob es sich um ein Mobilgerät handelt
if(typeof window.orientation !== 'undefined') { if(typeof window.orientation !== 'undefined') {
// Öffnen des Editors im mobilen Modus im gleichen Tab // Öffnen des Editors im mobilen Modus im gleichen Tab
location.href = hrefMobile; location.href = hrefMobile;
} else { } else {
// Öffnen des Editors in einem eigenen Tab (Dokument ID in Tab ID hinterlegen, ob mehrere Tabs des selbend Dokuments zu vermeiden) // Öffnen des Editors in einem eigenen Tab (Dokument ID in Tab ID hinterlegen, ob mehrere Tabs des selbend Dokuments zu vermeiden)
var win = window.open(hrefDesktop, 'enaio_' + objectId ); var win = window.open(hrefDesktop, 'enaio_' + objectId );
// Neuen Tab in den Vordergrund holen // Neuen Tab in den Vordergrund holen
win.focus(); win.focus();
} }
// Client von weiteren Aktionen abhalten // Client von weiteren Aktionen abhalten
done(-1); done(-1);
} catch(e) { } catch(e) {
// Client von weiteren Aktionen abhalten. Hier kann auch eine Fehlermeldung eingebaut werden // Client von weiteren Aktionen abhalten. Hier kann auch eine Fehlermeldung eingebaut werden
done(-1); done(-1);
} }
``` ```
Zusätzlich kann auch der neu Dialog bei Dokumenten übersteuert werden, wenn die embedded office Template Funktion verwendet werden soll: Zusätzlich kann auch der neu Dialog bei Dokumenten übersteuert werden, wenn die embedded office Template Funktion verwendet werden soll:
## AfterSave ## AfterSave
```javascript ```javascript
// Wenn es sich um den Erstellmodus handelt // Wenn es sich um den Erstellmodus handelt
if(formHelper.isCreate){ if(formHelper.isCreate){
// session guid zur Authorisierung holen. Relevant für APPs und Electron Client // session guid zur Authorisierung holen. Relevant für APPs und Electron Client
var sessionGuid = formHelper.getInfo().session.sessionGuid; var sessionGuid = formHelper.getInfo().session.sessionGuid;
// Informationen zum aktuellen Dokument holen // Informationen zum aktuellen Dokument holen
var doc = formHelper.getCurrentDmsDocument(); var doc = formHelper.getCurrentDmsDocument();
// URL des Editors zusammenbauen // URL des Editors zusammenbauen
var hrefMobile = window.location.baseUrl + "/office/mobile/edit/edit/" + doc.model.objectTypeId + "/" + doc.model.id + "?sessionguid=" + sessionGuid; var hrefMobile = window.location.baseUrl + "/office/mobile/edit/edit/" + doc.model.objectTypeId + "/" + doc.model.id + "?sessionguid=" + sessionGuid;
var hrefDesktop = window.location.baseUrl + "/office/desktop/edit/edit/" + doc.model.objectTypeId + "/" + doc.model.id + "?sessionguid=" + sessionGuid; var hrefDesktop = window.location.baseUrl + "/office/desktop/edit/edit/" + doc.model.objectTypeId + "/" + doc.model.id + "?sessionguid=" + sessionGuid;
if(typeof window.orientation !== 'undefined') { if(typeof window.orientation !== 'undefined') {
// Öffnen des Editors im mobilen Modus im gleichen Tab // Öffnen des Editors im mobilen Modus im gleichen Tab
location.href = hrefMobile; location.href = hrefMobile;
} else { } else {
// Öffnen des Editors in einem eigenen Tab (Dokument ID in Tab ID hinterlegen, ob mehrere Tabs des selbend Dokuments zu vermeiden) // Öffnen des Editors in einem eigenen Tab (Dokument ID in Tab ID hinterlegen, ob mehrere Tabs des selbend Dokuments zu vermeiden)
var win = window.open(hrefDesktop, 'enaio_' + doc.model.id.id ); var win = window.open(hrefDesktop, 'enaio_' + doc.model.id );
// Neuen Tab in den Vordergrund holen // Neuen Tab in den Vordergrund holen
win.focus(); win.focus();
} }
} }
done(); done();
``` ```
Bei beiden Scripen handelt es sich um Beispiele, die natürlich an die Bedürfnisse angepasst werden können. Bei beiden Scripen handelt es sich um Beispiele, die natürlich an die Bedürfnisse angepasst werden können.