better cloud edit

This commit is contained in:
kepler155c@gmail.com 2019-03-22 01:40:29 -04:00
parent cd6ed79d11
commit ea8e981880
4 changed files with 77 additions and 11 deletions

View File

@ -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' },

View File

@ -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...')

View File

@ -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)

53
sys/apps/system/cloud.lua Normal file
View File

@ -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