Domanda

Ho un'applicazione Web Legacy Lotus Domino - Database con dati, ovviamente, ma anche JavaScript, risorse - comprese le immagini PNG e JPG, le sottoschede come HTML e CSS, ecc.

Voglio esportare l'applicazione stessa - non i dati, solo la struttura dell'app - quindi posso riutilizzare le immagini, l'HTML e il CSS in altri framework Web più moderni (ad es. Binari o nodej o PHP o Python o qualsiasi altra cosa) che consumano modelli HTML e CSS e JS come file.

Come esportare l'HTML, CSS, JS, PNG, JPG, ecc. Come è? Sono felice di prendere l'intera struttura dei file come mostrato in Designer, voglio solo ottenere l'attuale HTML / CSS / JS / immagini / ecc. lì dentro.

Ho provato a utilizzare l'opzione "SOURCE Control Disk Sync", ma i file vengono salvati in uno strano formato XML specifico per Domino, con il sottostante HTML / CSS / ecc. Stored come esadecimale. Non molto utile.

Ad esempio, potrei avere nella mia app Shared Elements\subforms\main.login.subform (e molti altri) che sembrano:

<style>
#service-content {
    background-color: #fff;
}

label, input {
    width: 100px;
    display: inline-block;
    padding: 3px 5px;
    margin-bottom: 10px;
}

input {
    width: 300px;
}

#login-message, h1 {
    text-align: center;
}   
</style>
<div style="width: 450px; margin: 0 auto">
    <input type="hidden" value="/<Computed Value>/page?readform" name="RedirectTo" />

    <h1>Login</h1>
        <!-- lots of html here -->
</div>
<!--// NAVIGATION -->
.

Voglio estrarre questo (e gli altri come questo).

Modifica:

Come @andrewb ha sottolineato nei commenti qui sotto, vale la pena una spiegazione migliore.

L'app Domino in questione utilizza (principalmente) HTML statico e JS per recuperare i dati dagli agenti tramite Ajax. Quindi l'UI (HTML / CSS / JS) è molto riutilizzabile con eventuali backed, con una quantità moderata di lavoro.

Ma funziona solo se riesco a ottenere le pagine statiche originali. Queste statiche sono memorizzate sotto Resources\Files\ o Shared Elements\subforms\

Modifica 2:

Quando spegnerò l'esportazione DXL binaria come da @SJCaged, ottengo l'output per l'HTML grezzo sopra che assomiglia come segue (questa è solo la fine):

<font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#4200ff'/>"submit"</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/> </run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='purple'/>value</run>    
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/>=</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#4200ff'/>"Login"</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/> </run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>div</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;</run></par>
<par def='3'><run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/></run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>form</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;</run></par>
<par def='3'>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>div</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;
</run></par>
<par def='2'><run><font name='monospace'/>&lt;!--// NAVIGATION --&gt;</run></par></richtext>    
</body>
<item name='$$ScriptName' summary='false' sign='true'><text>main.nav</text></item></subform>
.

È stato utile?

Soluzione

@Deitch, eri quasi lì: vuoi abilitare il controllo della fonte. Come funziona Sincronizza il contenuto del database (automaticamente o manualmente) con una directory del filesystem standard. Vedere l'argomento della Guida "Impostazione della funzione di abilitazione del controllo sorgente" per ulteriori informazioni.

Per far funzionare davvero, tuttavia, richiede di cambiare una preferenza. In Designer, prima vai al file | Preferenze |. Designer |. Controllo della fonte. Assicurati che "usa binary dxl" non sia impostato. Vedere l'argomento della Guida "Selezione del modo per rappresentare gli elementi di progettazione sul disco" per ulteriori informazioni sulla differenza - Fondamentalmente, utilizzando DXL regolare separa i dati dell'elemento di progettazione [I.e. Il codice] Dalla confezione metadata formattata DXL che l'elemento di progettazione ha nel database, in cui Binary DXL li mette in un blob binario e impedisce che le applicazioni esterne siano in grado di modificarle. Ci sono anche altre opzioni qui, consultare l'argomento della Guida "Impostazione delle preferenze delle funzioni di attivazione del controllo della sorgente" per ulteriori informazioni.

Dopo questo è fatto, quindi (ancora in Designer) Fare clic con il pulsante destro del mouse sul progetto, selezionare "Sviluppo del team", quindi 'Imposta il controllo della sorgente per questa applicazione ". Potrebbe essere o non può mostrare una schermata di spruzzata e selezionare Avanti, ma alla fine presenterà una finestra di dialogo che chiederà di digitare il nome del progetto su disco. Assicurarsi che la seconda riga punta a una directory che non esiste ancora (per impostazione predefinita, con la casella di controllo "Usa posizione predefinita" selezionata, punterà alla directory dei dati di Notes e aggiungerà a che ciò sia inserito come nome per il nome -Disk progetto come nuovo nome della directory). Quando si seleziona Fine, esporterà il filesystem virtuale Eclipse all'interno del NSF sul filesystem, utilizzando tale directory come radice.

(non tutte le prospettive mostrano la voce "Sviluppo del team". In particolare, il prospettiva Java no. La prospettiva del Domino Designer, tuttavia, lo fa. Per cambiare la prospettiva, selezionare la finestra aperta e selezionare la prospettiva da utilizzare.)

Una volta terminato, è possibile utilizzare strumenti esterni per aggiungere la directory al controllo sorgente [che è sempre una buona idea]; Finché "Usa Binary DXL" non è selezionato, è anche possibile utilizzare strumenti esterni per manipolare il codice e i dati considerati come parte dell'applicazione.

Altri suggerimenti

La risposta semplice: non c'è modo di farlo.

Il WebCode mostrato nel browser viene generato dinamicamente dall'attività HTTP Domino da moduli, viste, pagine, sottoscherformi, librerie di script, formule, ecc.

Non c'è una semplice rappresentazione html ovunque nel database.

Per ottenere quello che vuoi, avresti bisogno di un leacher, che afferra e scarica la fonte generata come browser farebbe.Ma come molte funzionalità è il lato server (validazioni sul campo, agenti, invio di posta, qualunque ...), non otterrai nulla di sufficiente da quell'approccio.

Ovviamente è possibile esportare manualmente le intemperze, i file CSS e i file CSS e probabilmente Javascript-LIRARES (se ce ne sono), ma ciò non ti farà più passo a ciò che si desidera ottenere.

Se vuoi "migrare" il NSF in un'altra piattaforma, allora dovrai riscrivere l'intera roba ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top