aboutsummaryrefslogtreecommitdiff
path: root/public/neo_ide.html
diff options
context:
space:
mode:
authorJakob Stendahl <14180120+JakobST1n@users.noreply.github.com>2021-10-11 20:02:04 +0200
committerGitHub <noreply@github.com>2021-10-11 20:02:04 +0200
commitc67531161e56488166a33232f87566309ba8676e (patch)
tree846e59a020e80bea48557d5a06af5728e44961ff /public/neo_ide.html
parente6880cd8ccf82d993f222cb14b4860581654acb8 (diff)
parentc1b6eec770b885a9829e1f62bad5cc99389ca429 (diff)
downloadLuxcena-Neo-c67531161e56488166a33232f87566309ba8676e.tar.gz
Luxcena-Neo-c67531161e56488166a33232f87566309ba8676e.zip
Merge pull request #24 from JakobST1n/rebuild
v1.0.0
Diffstat (limited to 'public/neo_ide.html')
-rw-r--r--public/neo_ide.html273
1 files changed, 0 insertions, 273 deletions
diff --git a/public/neo_ide.html b/public/neo_ide.html
deleted file mode 100644
index fb65ddf..0000000
--- a/public/neo_ide.html
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE html>
-<html class="neo_ide" style="overflow:hidden;">
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <title>Luxcena Neo - Neo IDE</title>
-
- <link rel="stylesheet" href="/css/bundle.css" type="text/css" />
- </head>
-
- <body id="neo_ide">
-
- <!--<div class="page-loader">
- <div class="loader">
- <div class="loading">
- <div class="loading__element el1">L</div>
- <div class="loading__element el2">O</div>
- <div class="loading__element el3">A</div>
- <div class="loading__element el4">D</div>
- <div class="loading__element el5">I</div>
- <div class="loading__element el6">N</div>
- <div class="loading__element el7">G</div>
- <div class="loading__element el8">.</div>
- <div class="loading__element el9">.</div>
- <div class="loading__element el10">.</div>
- </div>
- <div class="current-event">
- <p id="event-text"></p>
- </div>
- </div>
- <div class="error">
- <h1>ERROR</h1>
- </error>
- </div>-->
-
- <div class="page-container">
-
- <nav class="nav-container">
- <ul>
- <li id="back_button" class="left button"><i class="fas fa-chevron-left"></i></li>
- <li class="center">Neo IDE - <span class="fileName"></span></li>
- <li class="right">
- <ul>
- <li id="toggle_menu" class="button"><i class="fas fa-caret-down"></i></li>
- <li id="save_button" class="button"><i class="fas fa-save"></i></li>
- <li id="stop_button" class="button"><i class="fas fa-stop"></i></li>
- <li id="start_button" class="button"><i class="fas fa-play"></i></li>
- </ul>
- </li>
- </ul>
- </nav>
-
- <div class="menubar-container">
- <ul>
- <li id="toggle_output_button" class="button"></i>Toggle output</li>
- </ul>
- </div>
-
- <div class="panel-container">
- <div class="panel-top">
- <div id="editor"></div>
- </div>
-
- <div class="splitter">
- <div class="text">
- <i class="fas fa-terminal"></i>
- <span>output</span>
- </div>
- </div>
-
- <div class="panel-bottom"><pre></pre></div>
- </div>
-
- </div>
-
- <script type="text/javascript" src="/js/jquery-3.2.1.min.js"></script>
- <script type="text/javascript" src="/socket.io/socket.io.js"></script>
- <script type="text/javascript" src="/js/bundle.js"></script>
- <script type="text/javascript" src="/js/jquery-resizable.js"></script>
- <script type="text/javascript" src="/monaco-editor/min/vs/loader.js"></script>
- <script>
- require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});
- let editor = undefined;
- let socket = io();
- let outputLines = 0;
-
- function resize() {
- let screenH = window.innerHeight;
-
- $(".panel-container").css("height", (screenH - 45) + "px");
- $(".panel-bottom").css("height", document.getElementsByClassName("panel-bottom")[0].clientHeight);
- editor.layout();
- }
-
- function findGetParameter(parameterName) {
- var result = null,
- tmp = [];
- location.search
- .substr(1)
- .split("&")
- .forEach(function (item) {
- tmp = item.split("=");
- if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
- });
- return result;
- }
-
- require(['vs/editor/editor.main'], function() {
-
- monaco.editor.defineTheme('neoIdeDark', {
- base: 'vs-dark',
- inherit: true, // can also be false to completely replace the builtin rules
- rules: [
- { token: 'eachSecond(self)', foreground: 'ffa500', fontStyle: 'italic underline' },
- { token: 'string.LuxcenaNeo', foreground: '008800', fontStyle: 'bold' },
- { token: 'comment.css', foreground: '0000ff' } // will inherit fontStyle from `comment` above
- ]
- });
-
- editor = monaco.editor.create(document.getElementById('editor'), {
- value: [""].join('\n'),
- language: 'python',
- theme: 'neoIdeDark'
- });
-
- let decorations = editor.deltaDecorations([], [
- { range: new monaco.Range(3,1,5,1), options: { isWholeLine: true, linesDecorationsClassName: 'myLineDecoration' }},
- { range: new monaco.Range(7,1,7,24), options: { inlineClassName: 'myInlineDecoration' }},
- ]);
-
- let runScriptBinding = editor.addCommand(monaco.KeyCode.F5, function() {
- alert('F5 pressed!');
- });
-
- resize();
- socket.emit("NeoIde_GetScript", {"scriptPath": atob(findGetParameter("scriptName"))});
- });
-
- $(".panel-top").resizable({
- handleSelector: ".splitter",
- resizeWidth: false,
- onDrag: resize
- });
-
- $("#toggle_menu").on("click", () => {
- if ($(".menubar-container").hasClass("menuBarIn")) {
- $(".menubar-container").removeClass("menuBarIn");
- $(".menubar-container").addClass("menuBarOut");
- $("#toggle_menu i").removeClass("fa-caret-up");
- $("#toggle_menu i").addClass("fa-caret-down");
- } else {
- $(".menubar-container").removeClass("menuBarOut");
- $(".menubar-container").addClass("menuBarIn");
- $("#toggle_menu i").removeClass("fa-caret-down");
- $("#toggle_menu i").addClass("fa-caret-up");
- }
- });
-
- $("#back_button").on("click", () => {
- window.location.href = "http://" + window.location.hostname + ":" + window.location.port + "/scripts";
- });
-
- $("#save_button").on("click", () => {
- $("#save_button").html('<i class="fas fa-circle-notch fa-spin"></i>');
- socket.emit("NeoIde_SaveScript", {
- script: {
- name: $(".fileName").html(),
- path: atob(findGetParameter("scriptName")),
- files: {
- main: editor.getValue()
- }
- }
- });
- });
-
- $("#start_button").on("click", () => {
- socket.emit("NeoIde_RunScript", {
- scriptPath: atob(findGetParameter("scriptName"))
- })
- });
-
- $("#stop_button").on("click", () => {
- socket.emit("NeoIde_StopScript", {});
- });
-
- $("#toggle_output_button").on("click", () => {
- console.log("NIY");
- });
-
- window.onresize = resize;
-
- socket.on("callback", (reqResult) => {
- switch (reqResult.request) {
- case "NeoIde_GetScript":
- if (!reqResult.success) {
- alert("Could not load script...");
- window.location.href = "http://" + window.location.hostname + ":" + window.location.port + "/scripts";
- }
- editor.setValue(reqResult.data.script.files.main);
- $(".fileName").text(reqResult.data.script.name);
- break;
-
- case "NeoIde_SaveScript":
- if (!reqResult.success) {
- $("#save_button").html('<i class="fas fa-times"></i>');
- alert("Could not save script, info in console.");
- console.log(reqResult);
- } else {
- $("#save_button").html('<i class="fas fa-check"></i>');
- }
- setTimeout(() => {
- $("#save_button").html('<i class="fas fa-save"></i>');
- }, 1500);
- break;
-
- case "NeoIde_StopScript":
- console.log(reqResult);
- break;
-
- case "NeoIde_GetScriptOutput":
- if (reqResult.success) {
- let lines = reqResult.output.split("\n");
-
- let preObj = "";
- let currentClass = "";
- let currentData = "";
- for (let i = 0; i < lines.length; i++) {
- if (lines[i].includes("====stdout====")) {
- preObj += `<span class="${currentClass}">${currentData}</span>`;
- currentClass = "stdout";
- currentData = "";
- } else if (lines[i].includes("====stderr====")) {
- preObj += `<span class="${currentClass}">${currentData}</span>`;
- currentClass = "stderr";
- currentData = "";
- } else if (lines[i].includes("====close====")) {
- preObj += `<span class="${currentClass}">${currentData}</span>`;
- currentClass = "close";
- currentData = "";
- } else {
- if (lines [i].replace("\n", "") == "") {
- //currentData += "\n"
- } else {
- currentData += lines[i] + "\n";
- }
- }
- }
- preObj += `<span class="${currentClass}">${currentData}</span>`;
- if (outputLines != lines.length) {
- outputLines = lines.length;
- $(".panel-bottom pre").html(preObj);
- var element = document.getElementsByClassName('panel-bottom')[0];
- element.scrollTop = element.scrollHeight;
- }
-
- } else {
- $(".panel-bottom pre").html("<span class=\"stderr\">" + reqResult.error.reason + "</span>");
- }
- break;
-
- default:
- console.log("Got a weird callback from \"" + reqResult.request + "\"");
- }
- });
-
- setInterval(() => {
- socket.emit("NeoIde_GetScriptOutput", {
- scriptPath: atob(findGetParameter("scriptName"))
- })
- }, 400);
-
- </script>
- </body>
-</html>