/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { createRoot, createSignal, createState, createEffect } from 'solid-js'; function createLocalState(initState) { const [state, setState] = createState(initState); if (localStorage.odoodockerssh) { setState(JSON.parse(localStorage.odoodockerssh)); } createEffect(() => localStorage.odoodockerssh = JSON.stringify(state)); return [state, setState]; } const initialState = { address: '', port: '', username: '', key: '', database: '', databases: [], modules: '', serverlog: '', connected: false, stop: false }; const [isConnected, setIsConnected] = createSignal(false); const OdooDockerSshAdminConfig = () => { const [state, setState] = createLocalState(initialState); const [passphrase, setPassphrase] = createSignal(''); const valueSet = ({target}) => setState(target.name, target.value); let cantConnect = !(state.address && state.username && state.key && state.port); const connect = () => { fetch('/connect', {method: 'POST', body: JSON.stringify({ address: state.address, port: state.port, username: state.username, key: state.key, password: passphrase() }), headers:{ 'Content-Type': 'application/json'}}) .then(response => { setIsConnected(response.status == 200); return response.json(); }) .then(body => humane.log(body)) }; const disconnect = () => { fetch ('/disconnect') .then(response => { setIsConnected(!(response.status == 200)); return response.json(); }) .then(body => humane.log(body)) }; return

🛠 Configuration <$ when={(isConnected())}>đŸ”” <$ when={(!isConnected())}>🔮

}; const OdooDockerSshAdmin = () => { const [visibleTab, setVisibleTab] = createSignal('configuration'); const getClassName = (name) => visibleTab() === name ? 'active' : ''; return <>

Odoo Docker SSH Admin

<$ when={(visibleTab() === 'configuration')}> <$ when={(visibleTab() === 'databases')}> <$ when={(visibleTab() === 'modules')}> <$ when={(visibleTab() === 'actions')}> <$ when={(visibleTab() === 'serverlog')}> } createRoot(() => document.body.appendChild());