From ea8e98188012d0434ec968906aebcde9ce9c2f38 Mon Sep 17 00:00:00 2001 From: "kepler155c@gmail.com" Date: Fri, 22 Mar 2019 01:40:29 -0400 Subject: [PATCH] better cloud edit --- sys/apps/System.lua | 2 +- sys/apps/cedit.lua | 17 +++++++++---- sys/apps/cshell.lua | 16 ++++++++---- sys/apps/system/cloud.lua | 53 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 11 deletions(-) create mode 100644 sys/apps/system/cloud.lua diff --git a/sys/apps/System.lua b/sys/apps/System.lua index 601edfe..5b1595a 100644 --- a/sys/apps/System.lua +++ b/sys/apps/System.lua @@ -10,7 +10,7 @@ local systemPage = UI.Page { tabs = UI.Tabs { settings = UI.Tab { tabTitle = 'Category', - grid = UI.Grid { + grid = UI.ScrollingGrid { y = 2, columns = { { heading = 'Name', key = 'name' }, diff --git a/sys/apps/cedit.lua b/sys/apps/cedit.lua index 5abcee0..f62a063 100644 --- a/sys/apps/cedit.lua +++ b/sys/apps/cedit.lua @@ -1,3 +1,5 @@ +local Config = require('config') + local multishell = _ENV.multishell local os = _G.os local read = _G.read @@ -13,12 +15,17 @@ if not _G.http.websocket then end if not _G.cloud_catcher then - print('Visit https://cloud-catcher.squiddev.cc') - print('Paste key: ') - local key = read() - if #key == 0 then - return + local key = Config.load('cloud').key + + if not key then + print('Visit https://cloud-catcher.squiddev.cc') + print('Paste key: ') + key = read() + if #key == 0 then + return + end end + -- open an unfocused tab local id = shell.openTab('cloud ' .. key) print('Connecting...') diff --git a/sys/apps/cshell.lua b/sys/apps/cshell.lua index 91b1eab..44cee34 100644 --- a/sys/apps/cshell.lua +++ b/sys/apps/cshell.lua @@ -1,3 +1,5 @@ +local Config = require('config') + local read = _G.read local shell = _ENV.shell @@ -6,11 +8,15 @@ if not _G.http.websocket then end if not _G.cloud_catcher then - print('Visit https://cloud-catcher.squiddev.cc') - print('Paste key: ') - local key = read() - if #key == 0 then - return + local key = Config.load('cloud').key + + if not key then + print('Visit https://cloud-catcher.squiddev.cc') + print('Paste key: ') + key = read() + if #key == 0 then + return + end end print('Connecting...') shell.run('cloud ' .. key) diff --git a/sys/apps/system/cloud.lua b/sys/apps/system/cloud.lua new file mode 100644 index 0000000..5feeb6d --- /dev/null +++ b/sys/apps/system/cloud.lua @@ -0,0 +1,53 @@ +local Ansi = require('ansi') +local Config = require('config') +local UI = require('ui') + +local colors = _G.colors + +local config = Config.load('cloud') + +local tab = UI.Tab { + tabTitle = 'Cloud', + description = 'Cloud catcher options', + key = UI.TextEntry { + x = 3, ex = -3, y = 2, + limit = 32, + value = config.key, + shadowText = 'Cloud key', + accelerators = { + enter = 'update_key', + }, + }, + button = UI.Button { + x = 3, y = 4, + text = 'Update', + event = 'update_key', + }, + labelText = UI.TextArea { + x = 2, ex = -2, y = 6, + textColor = colors.yellow, + marginRight = 0, + value = string.format( +[[Use a non-changing cloud key. Note that only a single computer can use this session at one time. +To obtain a key, visit: +%shttps://cloud-catcher.squiddev.cc%s then bookmark: +%shttps://cloud-catcher.squiddev.cc/?id=%sKEY + ]], + Ansi.orange, Ansi.reset, Ansi.orange, Ansi.black), + }, +} + +function tab:eventHandler(event) + if event.type == 'update_key' then + if #self.key.value > 0 then + config.key = self.key.value + else + config.key = nil + end + Config.update('cloud', config) + self:emit({ type = 'success_message', message = 'Updated' }) + end +end + +return tab +