Browse Source

Config is now embedded inside main application

pull/342/head
Christian7573 4 years ago
parent
commit
6058b2bb97
  1. 4
      src/assets/xterm_config/functionality.js
  2. 1
      src/assets/xterm_config/style.css
  3. 2
      src/assets/xterm_config/xterm_advanced_options.js
  4. 2
      src/assets/xterm_config/xterm_color_theme.js
  5. 2
      src/assets/xterm_config/xterm_defaults.js
  6. 2
      src/assets/xterm_config/xterm_general_options.js
  7. 6
      src/client/wetty/term.ts
  8. 4
      src/client/wetty/term/confiruragtion.ts
  9. 4
      src/server/socketServer/html.ts

4
src/assets/xterm_config/functionality.js

@ -76,7 +76,7 @@ function setItem(json, path, item) {
}
}
window.load_options = function(config) {
window.loadOptions = function(config) {
allOptions.forEach(option => {
let value = getItem(config, option.path);
if (option.nullable === true && option.type === "text" && value == null) value = null;
@ -88,7 +88,7 @@ window.load_options = function(config) {
});
}
if (window.top !== window) alert("Error: Page is top level. This page is supposed to be accessed from inside Wetty.");
if (window.top === window) alert("Error: Page is top level. This page is supposed to be accessed from inside Wetty.");
document.querySelector("#save_button").addEventListener("click", () => {
const newConfig = {};

1
src/assets/xterm_config/style.css

@ -1,4 +1,5 @@
html { background-color: black; }
html, body { overflow: hidden auto; }
body {
display: flex;
flex-flow: column nowrap;

2
src/assets/xterm_config/xterm_advanced_options.js

@ -1,4 +1,4 @@
window.inflate_options([
window.inflateOptions([
{
type: "boolean",
name: "Allow Proposed XTerm APIs",

2
src/assets/xterm_config/xterm_color_theme.js

@ -11,7 +11,7 @@ const selectionColorOpacityOption = {
path: ["wetty_void"],
};
window.inflate_options([
window.inflateOptions([
{
type: "color",
name: "Foreground Color",

2
src/assets/xterm_config/xterm_defaults.js

@ -1,5 +1,5 @@
const DEFAULT_BELL_SOUND = 'data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjMyLjEwNAAAAAAAAAAAAAAA//tQxAADB8AhSmxhIIEVCSiJrDCQBTcu3UrAIwUdkRgQbFAZC1CQEwTJ9mjRvBA4UOLD8nKVOWfh+UlK3z/177OXrfOdKl7pyn3Xf//WreyTRUoAWgBgkOAGbZHBgG1OF6zM82DWbZaUmMBptgQhGjsyYqc9ae9XFz280948NMBWInljyzsNRFLPWdnZGWrddDsjK1unuSrVN9jJsK8KuQtQCtMBjCEtImISdNKJOopIpBFpNSMbIHCSRpRR5iakjTiyzLhchUUBwCgyKiweBv/7UsQbg8isVNoMPMjAAAA0gAAABEVFGmgqK////9bP/6XCykxBTUUzLjEwMKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq';
window.load_options({
window.loadOptions({
wetty_fit_terminal: true,
wetty_void: 0,

2
src/assets/xterm_config/xterm_general_options.js

@ -1,4 +1,4 @@
window.inflate_options([
window.inflateOptions([
{
type: "text",
name: "Font Family",

6
src/client/wetty/term.ts

@ -5,19 +5,19 @@ import { FitAddon } from 'xterm-addon-fit';
import { Terminal } from 'xterm';
import type { Term } from './shared/type';
import { configureTerm } from './term/confiruragtion.js';
import { configureTerm, shouldFitTerm } from './term/confiruragtion.js';
import { terminal as termElement } from '../shared/elements.js';
export function terminal(socket: typeof Socket): Term | undefined {
const term = new Terminal() as Term;
if (_.isNull(termElement)) return;
if (_.isNull(termElement)) return undefined;
const webLinksAddon = new WebLinksAddon();
term.loadAddon(webLinksAddon);
const fitAddon = new FitAddon();
term.loadAddon(fitAddon);
term.open(termElement);
term.resizeTerm = () => {
fitAddon.fit();
if (shouldFitTerm()) fitAddon.fit();
socket.emit('resize', { cols: term.cols, rows: term.rows });
};
configureTerm(term);

4
src/client/wetty/term/confiruragtion.ts

@ -35,3 +35,7 @@ export function configureTerm(term: Term): void {
false,
);
}
export function shouldFitTerm(): boolean {
return (loadOptions() as any).wetty_fit_terminal ?? true;
}

4
src/server/socketServer/html.ts

@ -9,6 +9,7 @@ const render = (
favicon: string,
css: string[],
js: string[],
configUrl: string,
): string => `<!doctype html>
<html lang="en">
<head>
@ -31,7 +32,7 @@ const render = (
href="#"
alt="Toggle options"
><i class="fas fa-cogs"></i></a>
<textarea class="editor"></textarea>
<iframe class="editor" src="${configUrl}"></iframe>
</div>
<div id="terminal"></div>
${js
@ -50,6 +51,7 @@ export const html = (base: string, title: string): RequestHandler => (
`${base}/favicon.ico`,
cssFiles.map(css => `${base}/assets/css/${css}.css`),
jsFiles.map(js => `${base}/client/${js}.js`),
`${base}/assets/xterm_config/index.html`,
),
);
};

Loading…
Cancel
Save