Update apps categories

This commit is contained in:
mrsang 2021-03-31 23:09:40 +02:00
parent 3ff8f1a6eb
commit ada4358d61
92 changed files with 912 additions and 124 deletions

View File

@ -5,6 +5,9 @@ It is used to show the change logs of the current AntOS version
## Change logs ## Change logs
### v0.0.7-a
* Change app category to Utility
### v0.0.6-a ### v0.0.6-a
* Use README page available on github * Use README page available on github

View File

@ -5,6 +5,9 @@ It is used to show the change logs of the current AntOS version
## Change logs ## Change logs
### v0.0.7-a
* Change app category to Utility
### v0.0.6-a ### v0.0.6-a
* Use README page available on github * Use README page available on github

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"Other", "category":"Utility",
"iconclass":"fa fa-question-circle", "iconclass":"fa fa-question-circle",
"mimes":["none"], "mimes":["none"],
"locales": { "locales": {

Binary file not shown.

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"Other", "category":"Utility",
"iconclass":"fa fa-question-circle", "iconclass":"fa fa-question-circle",
"mimes":["none"], "mimes":["none"],
"locales": { "locales": {

View File

@ -9,6 +9,9 @@ Small application for zip file manager
## Changle log ## Changle log
### v0.0.2-a
* Change category to utility
### v0.0.2-a ### v0.0.2-a
* Adapt to the new AntOS string API * Adapt to the new AntOS string API

View File

@ -9,6 +9,9 @@ Small application for zip file manager
## Changle log ## Changle log
### v0.0.2-a
* Change category to utility
### v0.0.2-a ### v0.0.2-a
* Adapt to the new AntOS string API * Adapt to the new AntOS string API

View File

@ -7,8 +7,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "mrsang@lxsang.me" "email": "mrsang@lxsang.me"
}, },
"version":"0.0.2-a", "version":"0.0.3-a",
"category":"Other", "category":"Utility",
"iconclass":"fa fa-archive", "iconclass":"fa fa-archive",
"mimes":["application/zip"], "mimes":["application/zip"],
"locale": {} "locale": {}

Binary file not shown.

View File

@ -7,8 +7,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "mrsang@lxsang.me" "email": "mrsang@lxsang.me"
}, },
"version":"0.0.2-a", "version":"0.0.3-a",
"category":"Other", "category":"Utility",
"iconclass":"fa fa-archive", "iconclass":"fa fa-archive",
"mimes":["application/zip"], "mimes":["application/zip"],
"locale": {} "locale": {}

View File

@ -3,6 +3,8 @@ A back-end tool for my online document hub [https://doc.iohub.dev/antos/](https:
## Change logs ## Change logs
### v0.2.3-a
* Chage app category name
### v0.2.1-a ### v0.2.1-a
* Chage libraries load order * Chage libraries load order
### v0.2.1-a ### v0.2.1-a

View File

@ -1,8 +1,10 @@
# Booklet # Booklet
A back-end tool for my online document hub [https://doc.iohub.dev/antos/](https://doc.iohub.dev/antos/) A back-end tool for my online document hub [https://doc.iohub.dev/antos/](https://doc.iohub.dev/)
## Change logs ## Change logs
### v0.2.3-a
* Chage app category name
### v0.2.1-a ### v0.2.1-a
* Chage libraries load order * Chage libraries load order
### v0.2.1-a ### v0.2.1-a

View File

@ -6,9 +6,9 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "mrsang@lxsang.me" "email": "mrsang@lxsang.me"
}, },
"version":"0.2.2-a", "version":"0.2.3-a",
"category":"Other", "category":"Office",
"iconclass":"fa fa-adn", "iconclass":"bi bi-journals",
"dependencies": ["SimpleMDE@1.11.2-r","Katex@0.11.1-r"], "dependencies": ["SimpleMDE@1.11.2-r","Katex@0.11.1-r"],
"mimes":["dir"] "mimes":["dir"]
} }

Binary file not shown.

View File

@ -6,9 +6,9 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "mrsang@lxsang.me" "email": "mrsang@lxsang.me"
}, },
"version":"0.2.2-a", "version":"0.2.3-a",
"category":"Other", "category":"Office",
"iconclass":"fa fa-adn", "iconclass":"bi bi-journals",
"dependencies": ["SimpleMDE@1.11.2-r","Katex@0.11.1-r"], "dependencies": ["SimpleMDE@1.11.2-r","Katex@0.11.1-r"],
"mimes":["dir"] "mimes":["dir"]
} }

View File

@ -6,6 +6,7 @@ Clipper use `html2canvas` to capture AntOS desktop or a specific window.
It is able to crop the captured image before saving to a file It is able to crop the captured image before saving to a file
## Change logs ## Change logs
* v0.1.3-a change app category
* v0.1.2-a use ALT-S as global shortcut for screen capture * v0.1.2-a use ALT-S as global shortcut for screen capture
* v0.1.1-a use CTRL-S as global shortcut for screen capture * v0.1.1-a use CTRL-S as global shortcut for screen capture
* v0.1.0-a initial version * v0.1.0-a initial version

View File

@ -6,6 +6,7 @@ Clipper use `html2canvas` to capture AntOS desktop or a specific window.
It is able to crop the captured image before saving to a file It is able to crop the captured image before saving to a file
## Change logs ## Change logs
* v0.1.3-a change app category
* v0.1.2-a use ALT-S as global shortcut for screen capture * v0.1.2-a use ALT-S as global shortcut for screen capture
* v0.1.1-a use CTRL-S as global shortcut for screen capture * v0.1.1-a use CTRL-S as global shortcut for screen capture
* v0.1.0-a initial version * v0.1.0-a initial version

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.1.2-a", "version":"0.1.3-a",
"category":"Other", "category":"Utility",
"iconclass":"fa fa-scissors", "iconclass":"fa fa-scissors",
"mimes":["none"], "mimes":["none"],
"locale": {} "locale": {}

Binary file not shown.

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.1.2-a", "version":"0.1.3-a",
"category":"Other", "category":"Utility",
"iconclass":"fa fa-scissors", "iconclass":"fa fa-scissors",
"mimes":["none"], "mimes":["none"],
"locale": {} "locale": {}

View File

@ -7,9 +7,9 @@
"author": "", "author": "",
"edsdmail": "" "edsdmail": ""
}, },
"version":"0.1.2-a", "version":"0.1.3-a",
"category":"Other", "category":"Development",
"iconclass":"fa fa-adn", "iconclass":"bi bi-file-diff-fill",
"mimes":["none"], "mimes":["none"],
"dependencies":["AceDiff@3.0.3-r"], "dependencies":["AceDiff@3.0.3-r"],
"locale": {} "locale": {}

View File

@ -7,9 +7,9 @@
"author": "", "author": "",
"edsdmail": "" "edsdmail": ""
}, },
"version":"0.1.2-a", "version":"0.1.3-a",
"category":"Other", "category":"Development",
"iconclass":"fa fa-adn", "iconclass":"bi bi-file-diff-fill",
"mimes":["none"], "mimes":["none"],
"dependencies":["AceDiff@3.0.3-r"], "dependencies":["AceDiff@3.0.3-r"],
"locale": {} "locale": {}

View File

@ -2,6 +2,7 @@
Simple PDF document manager Simple PDF document manager
## Change logs ## Change logs
- v0.0.7-a: Change category and icon
- v0.0.6-a: Add print dialog (support server side printing) - v0.0.6-a: Add print dialog (support server side printing)
- v0.0.5-a: Fix delete file bug - v0.0.5-a: Fix delete file bug
- v0.0.4-a: Display file size in entry meta-data - v0.0.4-a: Display file size in entry meta-data

View File

@ -2,6 +2,7 @@
Simple PDF document manager Simple PDF document manager
## Change logs ## Change logs
- v0.0.7-a: Change category and icon
- v0.0.6-a: Add print dialog (support server side printing) - v0.0.6-a: Add print dialog (support server side printing)
- v0.0.5-a: Fix delete file bug - v0.0.5-a: Fix delete file bug
- v0.0.4-a: Display file size in entry meta-data - v0.0.4-a: Display file size in entry meta-data

File diff suppressed because one or more lines are too long

View File

@ -7,9 +7,9 @@
"author": "", "author": "",
"email": "" "email": ""
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"Other", "category":"Office",
"iconclass":"fa fa-adn", "iconclass":"bi bi-collection-fill",
"mimes":["none"], "mimes":["none"],
"locale": {} "locale": {}
} }

Binary file not shown.

View File

@ -7,9 +7,9 @@
"author": "", "author": "",
"email": "" "email": ""
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"Other", "category":"Office",
"iconclass":"fa fa-adn", "iconclass":"bi bi-collection-fill",
"mimes":["none"], "mimes":["none"],
"locale": {} "locale": {}
} }

15
Dockman/README.md Normal file
View File

@ -0,0 +1,15 @@
# Dockman
This is an example project, generated by AntOS Development Kit
## Howto
Use the CodePad command palette to access to the SDK functionalities:
1. Create new project
2. Init the project from the current folder located in side bar
3. Build and run the project
4. Release the project in zip package
## Set up build target
Open the `project.json` file from the current project tree and add/remove
build target entries. Save the file

141
Dockman/api.lua Normal file
View File

@ -0,0 +1,141 @@
local args=...
local handle = {}
local result = function(data)
return { error = false, result = data }
end
local error = function(msg)
return {error = msg, result = false}
end
local exec = function(host, rcmd, decode)
local user = SESSION.user
if not user then return nil end
local cmd = "ssh -tt "..user.."@"..host.." "..rcmd
if decode then
cmd = cmd.." --format \\'{{json .}}\\'"
end
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if decode then
s = s:gsub('[\n\r]+', ',')
return JSON.decodeString("["..s.."null]")
else
return s
end
end
handle.list_image = function(data)
local res = exec(data.host, "docker image ls", true)
if not res then
return error("Unable to fetch image list")
end
-- inspect images
for i,v in ipairs(res) do
v.Detail = exec(data.host, "docker image inspect "..v.ID, true)[1]
v.text = v.Detail.RepoTags[1]
if not v.text or v.text == "" then
v.text = v.ID
end
end
return result(res)
end
handle.list_container = function(data)
local res = exec(data.host, "docker ps -a -f ancestor="..data.image, true)
if not res then
return error("Unable to fetch container list")
end
for i,v in ipairs(res) do
v.Detail = exec(data.host, "docker container inspect "..v.ID, true)[1]
v.text = v.Names
if v.Detail.State.Running then
v.iconclass = "fa fa-circle running"
else
v.iconclass = "fa fa-circle stop"
end
end
return result(res)
end
handle.run_container = function(data)
local res = exec(data.host, "docker start "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
return result("OK")
else
return error(res)
end
end
handle.pull_image = function(data)
local res = exec(data.host, "docker pull "..data.image, false)
return result(std.b64encode(res))
end
handle.rm_image = function(data)
local res = exec(data.host, "docker rmi "..data.id.."; sleep 2", false)
return result(res)
end
handle.create_container = function(data)
local cmd = "docker run "
for k,v in pairs(data.parameters) do
k = k:gsub(" ", "")
if k:len() == 1 then
cmd = cmd.." -"..k.." \""..v.."\" "
else
if k:match("^e_.*") then
cmd = cmd.." -e \""..k:gsub("e_","").."="..v.."\" "
else
cmd = cmd.." --"..k
if v ~= "" then
cmd = cmd.."=\""..v.."\" "
end
end
end
end
cmd = cmd.."--detach=true "..data.image
local res = exec(data.host, cmd, false)
return result(res)
end
handle.stop_container = function(data)
local res = exec(data.host, "docker stop "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
return result("OK")
else
return error(res)
end
end
handle.rm_container = function(data)
local res = exec(data.host, "docker stop "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
local res = exec(data.host, "docker rm "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
return result("OK")
else
error(res)
end
else
return error(res)
end
end
if args.action and handle[args.action] then
return handle[args.action](args.args)
else
return error("Invalid action parameter")
end

View File

@ -0,0 +1,15 @@
# Dockman
This is an example project, generated by AntOS Development Kit
## Howto
Use the CodePad command palette to access to the SDK functionalities:
1. Create new project
2. Init the project from the current folder located in side bar
3. Build and run the project
4. Release the project in zip package
## Set up build target
Open the `project.json` file from the current project tree and add/remove
build target entries. Save the file

141
Dockman/build/debug/api.lua Normal file
View File

@ -0,0 +1,141 @@
local args=...
local handle = {}
local result = function(data)
return { error = false, result = data }
end
local error = function(msg)
return {error = msg, result = false}
end
local exec = function(host, rcmd, decode)
local user = SESSION.user
if not user then return nil end
local cmd = "ssh -tt "..user.."@"..host.." "..rcmd
if decode then
cmd = cmd.." --format \\'{{json .}}\\'"
end
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if decode then
s = s:gsub('[\n\r]+', ',')
return JSON.decodeString("["..s.."null]")
else
return s
end
end
handle.list_image = function(data)
local res = exec(data.host, "docker image ls", true)
if not res then
return error("Unable to fetch image list")
end
-- inspect images
for i,v in ipairs(res) do
v.Detail = exec(data.host, "docker image inspect "..v.ID, true)[1]
v.text = v.Detail.RepoTags[1]
if not v.text or v.text == "" then
v.text = v.ID
end
end
return result(res)
end
handle.list_container = function(data)
local res = exec(data.host, "docker ps -a -f ancestor="..data.image, true)
if not res then
return error("Unable to fetch container list")
end
for i,v in ipairs(res) do
v.Detail = exec(data.host, "docker container inspect "..v.ID, true)[1]
v.text = v.Names
if v.Detail.State.Running then
v.iconclass = "fa fa-circle running"
else
v.iconclass = "fa fa-circle stop"
end
end
return result(res)
end
handle.run_container = function(data)
local res = exec(data.host, "docker start "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
return result("OK")
else
return error(res)
end
end
handle.pull_image = function(data)
local res = exec(data.host, "docker pull "..data.image, false)
return result(std.b64encode(res))
end
handle.rm_image = function(data)
local res = exec(data.host, "docker rmi "..data.id.."; sleep 2", false)
return result(res)
end
handle.create_container = function(data)
local cmd = "docker run "
for k,v in pairs(data.parameters) do
k = k:gsub(" ", "")
if k:len() == 1 then
cmd = cmd.." -"..k.." \""..v.."\" "
else
if k:match("^e_.*") then
cmd = cmd.." -e \""..k:gsub("e_","").."="..v.."\" "
else
cmd = cmd.." --"..k
if v ~= "" then
cmd = cmd.."=\""..v.."\" "
end
end
end
end
cmd = cmd.."--detach=true "..data.image
local res = exec(data.host, cmd, false)
return result(res)
end
handle.stop_container = function(data)
local res = exec(data.host, "docker stop "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
return result("OK")
else
return error(res)
end
end
handle.rm_container = function(data)
local res = exec(data.host, "docker stop "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
local res = exec(data.host, "docker rm "..data.id, false)
res = res:gsub('[\n\r]+', '')
if res == data.id then
return result("OK")
else
error(res)
end
else
return error(res)
end
end
if args.action and handle[args.action] then
return handle[args.action](args.args)
else
return error("Invalid action parameter")
end

View File

@ -0,0 +1,34 @@
afx-app-window[data-id="Dockman"] .tab-wrapper button {
width: 100%;
height: 100%;
}
afx-app-window[data-id="Dockman"] .header .label-text {
font-weight: bold;
}
afx-app-window[data-id="Dockman"] afx-label.header
{
border-bottom: 1px solid #116cd6;
}
afx-app-window[data-id="Dockman"] .tab-wrapper {
border-bottom: 1px solid #116cd6;
}
afx-app-window[data-id="Dockman"] .tab-wrapper afx-list-view> .list-container {
overflow: hidden;
}
afx-app-window[data-id="Dockman"] afx-tree-view .afx_folder_item .itemname .label-text {
font-weight: bold;
}
afx-app-window[data-id="Dockman"] .running:before{
color: green;
}
afx-app-window[data-id="Dockman"] .stop:before{
color: red;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,16 @@
{
"pkgname": "Dockman",
"app":"Dockman",
"name":"Remote Docker Manager",
"description":"Remote Docker Manager",
"info":{
"author": "Xuan Sang LE",
"email": "xsang.le@gmail.com"
},
"version":"0.1.0-b",
"category":"Development",
"iconclass":"fa fa-cubes",
"mimes":["none"],
"dependencies":[],
"locale": {}
}

View File

@ -0,0 +1,25 @@
<afx-app-window data-id="Dockman" apptitle="__(Remote Docker Manager)" width="650" height="450" >
<afx-vbox>
<afx-hbox data-height="23" class="tab-wrapper">
<afx-button data-id="add" text="" iconclass="fa fa-plus-square" data-width="23"></afx-button>
<afx-tab-bar data-id="host-tab-bar" closable="true"></afx-tab-bar>
</afx-hbox>
<afx-hbox>
<afx-vbox data-width="250">
<afx-label text = "__(Images)" class="header" iconclass='fa fa-square' data-height="23"></afx-label>
<afx-list-view data-id="img-list"></afx-list-view>
<afx-resizer data-height = "3"></afx-resizer>
<afx-label text = "__(Containers)" class="header" iconclass='fa fa-square' data-height="23"></afx-label>
<afx-list-view data-id="container-list"></afx-list-view>
</afx-vbox>
<afx-resizer data-width="3"></afx-resizer>
<afx-vbox>
<!--afx-label text = "__(Detail)" class="header" iconclass='fa fa-square' data-height="23"></afx-label-->
<afx-tree-view data-id="obj-view"></afx-tree-view>
<div data-height="25"></div>
</afx-vbox>
</afx-hbox>
</afx-vbox>
</afx-app-window>

Binary file not shown.

283
Dockman/main.coffee Normal file
View File

@ -0,0 +1,283 @@
class Dockman extends this.OS.application.BaseApplication
constructor: ( args ) ->
super "Dockman", args
main: () ->
@setting.hosts = [] unless @setting.hosts
@treeview = @find "obj-view"
@currenthost = undefined
@tabbar = @find "host-tab-bar"
@tabbar.ontabselect = (e) =>
@currenthost = e.data.item.data
@loadHost()
@tabbar.ontabclose = (e) =>
id = @setting.hosts.indexOf e.data.item.data
return false unless id >= 0
selid = @tabbar.selected
if selid is id
nid = id + 1
nid = id - 1 if id >= @setting.hosts.length - 1
@tabbar.selected = nid
@setting.hosts.splice id, 1
return true
@find("add").onbtclick = (e) =>
@openDialog("MultiInputDialog", {
title: "__(Add new Docker host)",
model: {
text: "__(Name)",
url: "__(Host url)"
},
allow_empty: false
})
.then (d) =>
@addTab d, true
@imglist = @find "img-list"
@imglist.onlistselect = (e) =>
@loadContainer e.data.item.data.text, false
tdata = { text: e.data.item.data.text, nodes: @getTreeData e.data.item.data }
@treeview.data = tdata
@treeview.expandAll()
@ctnlist = @find "container-list"
@ctnlist.onlistselect = (e) =>
tdata = { text: e.data.item.data.text, nodes: @getTreeData e.data.item.data }
@treeview.data = tdata
@treeview.expandAll()
@imglist.selected = -1
@imglist.buttons = [
{
text: "",
iconclass: "fa fa-arrow-down",
onbtclick: () =>
sel = @imglist.selectedItem
image = ""
image = sel.data.text if sel
@openDialog "PromptDialog", {
title: __("Pull image"),
label: __("Pull image:"),
value: image
}
.then (img) =>
return if img is ""
@exec("pull_image", {
host: @currenthost.url,
image: img
})
.then (r) =>
return @error r.error if r.error
@openDialog "TextDialog", {
title:__("Command output"),
disable: true,
value: atob(r.result)
}
.then (_d_) =>
@loadHost()
},
{
text: "",
iconclass: "fa fa-refresh",
onbtclick: () =>
@loadHost()
},
{
text: "",
iconclass: "fa fa-minus",
onbtclick: () =>
sel = @imglist.selectedItem
return unless sel
@ask({ title: __("Comfirm delete"), text: __("Are you sure?")})
.then (r) =>
return unless r
@exec("rm_image", {
host: @currenthost.url,
id: sel.data.ID
})
.then (r) =>
return @error r.error if r.error
@openDialog "TextDialog", {
title:__("Command output"),
disable: true,
value: r.result
}
.then (_d_) =>
@loadHost()
}
]
@ctnlist.buttons = [
{
text: "",
iconclass: "fa fa-play",
onbtclick: () =>
sel = @ctnlist.selectedItem
return unless sel and sel.data
data = sel.data
return if data.Detail.State.Running
@exec("run_container", {
host: @currenthost.url,
id: data.ID
})
.then (r) =>
return @error r.error if r.error
@notify __("Container {0} started", data.ID)
@loadContainer(data.Image, true)
},
{
text: "",
iconclass: "fa fa-stop",
onbtclick: () =>
sel = @ctnlist.selectedItem
return unless sel and sel.data
data = sel.data
return unless data.Detail.State.Running
@exec("stop_container", {
host: @currenthost.url,
id: data.ID
})
.then (r) =>
return @error r.error if r.error
@notify __("Container {0} stopped", data.ID)
@loadContainer(data.Image, true)
},
{
text: "",
iconclass: "fa fa-refresh",
onbtclick: () =>
data = @ctnlist.data[0]
if not data
sel = @imglist.selectedItem
return unless sel
image = sel.data.text
else
image = data.Image
@loadContainer(image, true)
},
{
text: "",
iconclass: "fa fa-plus",
onbtclick: () =>
if not @ctnlist.data[0]
return unless @imglist.selectedItem
image = @imglist.selectedItem.data.text
else
image = @ctnlist.data[0].Image
console.log image
@openDialog "KeyValueDialog", {
title: __("Container parameters"),
data: {
p: "8080:80",
restart: "always",
name: "Container_Name",
memory: "200m",
cpus: "1",
hostname: "Container_HostNamed"
}
}
.then (d) =>
@exec("create_container", {
host: @currenthost.url,
image: image,
parameters: d
})
.then (r) =>
return @error r.error if r.error
@openDialog "TextDialog", {
title:__("Command output"),
disable: true,
value: r.result
}
.then (_d_) =>
@loadContainer(image,true)
},
{
text: "",
iconclass: "fa fa-minus",
onbtclick: () =>
sel = @ctnlist.selectedItem
return unless sel and sel.data
data = sel.data
@ask({ title: __("Comfirm delete"), text: __("Are you sure?")})
.then (r) =>
return unless r
@exec("rm_container", {
host: @currenthost.url,
id: data.ID
})
.then (r) =>
return @error r.error if r.error
@notify __("Container {0} removed", data.ID)
@loadContainer(data.Image, true)
}
]
@tabbar.push v for v in @setting.hosts
@tabbar.selected = @setting.hosts.length - 1
addTab: (data, refresh) ->
id = @setting.hosts.length
@setting.hosts.push data
@tabbar.push data
return unless refresh
@tabbar.selected = id
exec: (action, args) ->
cmd =
path: "#{@path()}/api.lua",
parameters:
action: action,
args: args
return @call(cmd)
loadHost: () ->
return unless @currenthost
@resetView()
@exec("list_image", {
host: @currenthost.url
})
.then (d) =>
return @notify d.error if d.error
@imglist.data = d.result
.catch (e) =>
@error e.toString(), e
loadContainer: (data, cleanup) ->
@exec("list_container", {
host:@currenthost.url,
image: data
})
.then (d) =>
return @notify d.error if d.error
if cleanup
@treeview.data = {}
@ctnlist.data = []
@ctnlist.data = d.result
.catch (e) =>
@error e.toString(), e
getTreeData: (data) ->
type = typeof data
nodes = []
switch type
when "object"
for key, value of data
if key isnt "selected" and key isnt "domel"
if typeof value isnt "object"
nodes.push { text: "#{key}: #{value}" }
else
nodes.push { text: key, nodes: @getTreeData(value) }
return nodes
else
return []
resetView: () ->
@imglist.data = []
@ctnlist.data = []
@treeview.data = {}
this.OS.register "Dockman", Dockman

33
Dockman/main.css Normal file
View File

@ -0,0 +1,33 @@
afx-app-window[data-id="Dockman"] .tab-wrapper button {
width: 100%;
height: 100%;
}
afx-app-window[data-id="Dockman"] .header .label-text {
font-weight: bold;
}
afx-app-window[data-id="Dockman"] afx-label.header
{
border-bottom: 1px solid #116cd6;
}
afx-app-window[data-id="Dockman"] .tab-wrapper {
border-bottom: 1px solid #116cd6;
}
afx-app-window[data-id="Dockman"] .tab-wrapper afx-list-view> .list-container {
overflow: hidden;
}
afx-app-window[data-id="Dockman"] afx-tree-view .afx_folder_item .itemname .label-text {
font-weight: bold;
}
afx-app-window[data-id="Dockman"] .running:before{
color: green;
}
afx-app-window[data-id="Dockman"] .stop:before{
color: red;
}

16
Dockman/package.json Normal file
View File

@ -0,0 +1,16 @@
{
"pkgname": "Dockman",
"app":"Dockman",
"name":"Remote Docker Manager",
"description":"Remote Docker Manager",
"info":{
"author": "Xuan Sang LE",
"email": "xsang.le@gmail.com"
},
"version":"0.1.0-b",
"category":"Development",
"iconclass":"fa fa-cubes",
"mimes":["none"],
"dependencies":[],
"locale": {}
}

7
Dockman/project.json Normal file
View File

@ -0,0 +1,7 @@
{
"name": "Dockman",
"css": ["main.css"],
"javascripts": [],
"coffees": ["main.coffee"],
"copies": ["scheme.html", "api.lua", "package.json", "README.md"]
}

25
Dockman/scheme.html Normal file
View File

@ -0,0 +1,25 @@
<afx-app-window data-id="Dockman" apptitle="__(Remote Docker Manager)" width="650" height="450" >
<afx-vbox>
<afx-hbox data-height="23" class="tab-wrapper">
<afx-button data-id="add" text="" iconclass="fa fa-plus-square" data-width="23"></afx-button>
<afx-tab-bar data-id="host-tab-bar" closable="true"></afx-tab-bar>
</afx-hbox>
<afx-hbox>
<afx-vbox data-width="250">
<afx-label text = "__(Images)" class="header" iconclass='fa fa-square' data-height="23"></afx-label>
<afx-list-view data-id="img-list"></afx-list-view>
<afx-resizer data-height = "3"></afx-resizer>
<afx-label text = "__(Containers)" class="header" iconclass='fa fa-square' data-height="23"></afx-label>
<afx-list-view data-id="container-list"></afx-list-view>
</afx-vbox>
<afx-resizer data-width="3"></afx-resizer>
<afx-vbox>
<!--afx-label text = "__(Detail)" class="header" iconclass='fa fa-square' data-height="23"></afx-label-->
<afx-tree-view data-id="obj-view"></afx-tree-view>
<div data-height="25"></div>
</afx-vbox>
</afx-hbox>
</afx-vbox>
</afx-app-window>

View File

@ -1,3 +1,3 @@
# IOMail # GPClient
Simple Mail client wrapper for https://mail.iohub.dev/ Simple Multi purpose client wrapper

View File

@ -1,3 +1,3 @@
# IOMail # GPClient
Simple Mail client wrapper for https://mail.iohub.dev/ Simple Multi purpose client wrapper

View File

@ -1 +1 @@
(function(){var t,i,e;(t=class t extends this.OS.GUI.BasicDialog{constructor(){super("ClientDialog",t.scheme)}main(){var t,i,e,n;if(super.main(),e=$(this.scheme).find("input[type=text]"),this.data)for(i=0,n=e.length;i<n;i++)t=e[i],this.data[t.name]&&(t.value=this.data[t.name]);return this.find("btncancel").onbtclick=()=>this.quit(),this.find("btnok").onbtclick=i=>{var n,a,s;for(n={},a=0,s=e.length;a<s;a++){if(""===(t=e[a]).value)return this.notify(__("Please enter all the fields"));n[t.name]=t.value}return this.handle&&this.handle(n),this.quit()}}}).scheme='<afx-app-window width=\'300\' height=\'160\'>\n <afx-hbox>\n <div data-width="5"></div>\n <afx-vbox>\n <div data-height="5"></div>\n <afx-label data-height="25" text = "__(Client name)"></afx-label>\n <input type="text" name="text" data-height="25" />\n <div data-height="5"></div>\n <afx-label data-height="25" text = "__(URL)"></afx-label>\n <input type="text" name="url" data-height="25" />\n <div data-height="30" style="text-align: right;">\n <afx-button data-id="btnok" text="__(Ok)"></afx-button>\n <afx-button data-id="btncancel" text="__(Cancel)"></afx-button>\n </div>\n </afx-vbox>\n <div data-width="5"></div>\n </afx-hbox>\n</afx-app-window>',(i=class i extends this.OS.GUI.BasicDialog{constructor(){super("ClientListDialog",i.scheme)}main(){return super.main(),this.clist=this.find("client-list"),this.clist.buttons=[{text:"",iconclass:"fa fa-plus-circle",onbtclick:i=>this.openDialog(new t,{title:__("Add new client")}).then(t=>(this.parent.setting.clients.push(t),this.clist.data=this.parent.setting.clients))},{text:"",iconclass:"fa fa-minus-circle",onbtclick:t=>{var i,e;if(e=this.clist.selectedItem,i=this.clist.selected,e)return this.ask({text:__("Do you realy want to delete: `{0}`",e.data.text)}).then(t=>{if(t)return this.parent.setting.clients.splice(i,1),this.clist.data=this.parent.setting.clients})}},{text:"",iconclass:"fa fa-pencil-square-o",onbtclick:i=>{var e;if(e=this.clist.selectedItem)return this.openDialog(new t,{title:__("Add new client"),text:e.data.text,url:e.data.url}).then(t=>{if(t)return e.data.text=t.text,e.data.url=t.url,this.clist.data=this.parent.setting.clients})}}],this.find("btnswitch").onbtclick=t=>{var i;if(i=this.clist.selectedItem)return this.parent.setting.curl=i.data.url,this.parent.setting.cname=i.data.text,this.parent.switchClient(),this.quit()},this.clist.data=this.parent.setting.clients}}).scheme='<afx-app-window width=\'200\' height=\'200\'>\n <afx-vbox>\n <afx-list-view data-id="client-list"></afx-list-view>\n <div data-height="30" style="text-align: right;">\n <afx-button text="__(Switch client)" data-id="btnswitch"></afx-button>\n <div>\n </afx-vbox>\n</afx-app-window>',(e=class extends this.OS.application.BaseApplication{constructor(t){super("GPClient",t)}main(){return this.setting.clients||(this.setting.clients=[]),this.container=this.find("container"),this.bindKey("CTRL-M",()=>this.openDialog(new i,{title:__("Client Manager")})),this.switchClient()}switchClient(){return this.setting.curl?(this.container.src=this.setting.curl,this.scheme.apptitle=this.setting.cname):this.notify(__("No client selected, manager client in menu Options > Client manager"))}menu(){return[{text:"__(Options)",nodes:[{text:"__(Client manager)",shortcut:"C-M"}],onchildselect:t=>this.openDialog(new i,{title:__("Client Manager")})}]}}).singleton=!0,this.OS.register("GPClient",e)}).call(this); (function(){var t,i,e;(t=class t extends this.OS.GUI.BasicDialog{constructor(){super("ClientDialog",t.scheme)}main(){var t,i,e,n;if(super.main(),e=$(this.scheme).find("input[type=text]"),this.data)for(i=0,n=e.length;i<n;i++)t=e[i],this.data[t.name]&&(t.value=this.data[t.name]);return this.find("btncancel").onbtclick=()=>this.quit(),this.find("btnok").onbtclick=i=>{var n,a,s;for(n={},a=0,s=e.length;a<s;a++){if(""===(t=e[a]).value)return this.notify(__("Please enter all the fields"));n[t.name]=t.value}return this.handle&&this.handle(n),this.quit()}}}).scheme='<afx-app-window width=\'300\' height=\'160\'>\n <afx-hbox>\n <div data-width="5"></div>\n <afx-vbox>\n <div data-height="5"></div>\n <afx-label data-height="25" text = "__(Client name)"></afx-label>\n <input type="text" name="text" data-height="25" ></input>\n <div data-height="5"></div>\n <afx-label data-height="25" text = "__(URL)"></afx-label>\n <input type="text" name="url" data-height="25" ></input>\n <div data-height="30" style="text-align: right;">\n <afx-button data-id="btnok" text="__(Ok)"></afx-button>\n <afx-button data-id="btncancel" text="__(Cancel)"></afx-button>\n </div>\n </afx-vbox>\n <div data-width="5"></div>\n </afx-hbox>\n</afx-app-window>',(i=class i extends this.OS.GUI.BasicDialog{constructor(){super("ClientListDialog",i.scheme)}main(){return super.main(),this.clist=this.find("client-list"),this.clist.buttons=[{text:"",iconclass:"fa fa-plus-circle",onbtclick:i=>this.openDialog(new t,{title:__("Add new client")}).then(t=>(this.parent.setting.clients.push(t),this.clist.data=this.parent.setting.clients))},{text:"",iconclass:"fa fa-minus-circle",onbtclick:t=>{var i,e;if(e=this.clist.selectedItem,i=this.clist.selected,e)return this.ask({text:__("Do you realy want to delete: `{0}`",e.data.text)}).then(t=>{if(t)return this.parent.setting.clients.splice(i,1),this.clist.data=this.parent.setting.clients})}},{text:"",iconclass:"fa fa-pencil-square-o",onbtclick:i=>{var e;if(e=this.clist.selectedItem)return this.openDialog(new t,{title:__("Add new client"),text:e.data.text,url:e.data.url}).then(t=>{if(t)return e.data.text=t.text,e.data.url=t.url,this.clist.data=this.parent.setting.clients})}}],this.find("btnswitch").onbtclick=t=>{var i;if(i=this.clist.selectedItem)return this.parent.setting.curl=i.data.url,this.parent.setting.cname=i.data.text,this.parent.switchClient(),this.quit()},this.clist.data=this.parent.setting.clients}}).scheme='<afx-app-window width=\'200\' height=\'200\'>\n <afx-vbox>\n <afx-list-view data-id="client-list"></afx-list-view>\n <div data-height="30" style="text-align: right;">\n <afx-button text="__(Switch client)" data-id="btnswitch"></afx-button>\n <div>\n </afx-vbox>\n</afx-app-window>',(e=class extends this.OS.application.BaseApplication{constructor(t){super("GPClient",t)}main(){return this.setting.clients||(this.setting.clients=[]),this.container=this.find("container"),this.bindKey("CTRL-M",()=>this.openDialog(new i,{title:__("Client Manager")})),this.switchClient()}switchClient(){return this.setting.curl?(this.container.src=this.setting.curl,this.scheme.apptitle=this.setting.cname):this.notify(__("No client selected, manager client in menu Options > Client manager"))}menu(){return[{text:"__(Options)",nodes:[{text:"__(Client manager)",shortcut:"C-M"}],onchildselect:t=>this.openDialog(new i,{title:__("Client Manager")})}]}}).singleton=!0,this.OS.register("GPClient",e)}).call(this);

View File

@ -7,9 +7,9 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "mrsang@iohub.dev" "email": "mrsang@iohub.dev"
}, },
"version":"0.1.0-a", "version":"0.1.2-a",
"category":"Internet", "category":"Internet",
"iconclass":"fa fa-globe", "iconclass":"bi bi-hurricane",
"mimes":["none"], "mimes":["none"],
"dependencies":[], "dependencies":[],
"locale": {} "locale": {}

Binary file not shown.

View File

@ -7,9 +7,9 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "mrsang@iohub.dev" "email": "mrsang@iohub.dev"
}, },
"version":"0.1.0-a", "version":"0.1.2-a",
"category":"Internet", "category":"Internet",
"iconclass":"fa fa-globe", "iconclass":"bi bi-hurricane",
"mimes":["none"], "mimes":["none"],
"dependencies":[], "dependencies":[],
"locale": {} "locale": {}

View File

@ -3,7 +3,7 @@
Generate graph from text using mermaid Generate graph from text using mermaid
## Change logs ## Change logs
* v0.0.9-a: Change category
* v0.0.8-a: Fix ace path * v0.0.8-a: Fix ace path
* v0.0.7-a: Fix worker path * v0.0.7-a: Fix worker path
* v0.0.6-a: Fix unable to export image from tainted canvas * v0.0.6-a: Fix unable to export image from tainted canvas

View File

@ -3,7 +3,7 @@
Generate graph from text using mermaid Generate graph from text using mermaid
## Change logs ## Change logs
* v0.0.9-a: Change category
* v0.0.8-a: Fix ace path * v0.0.8-a: Fix ace path
* v0.0.7-a: Fix worker path * v0.0.7-a: Fix worker path
* v0.0.6-a: Fix unable to export image from tainted canvas * v0.0.6-a: Fix unable to export image from tainted canvas

View File

@ -7,8 +7,8 @@
"email": "xsang.le@gmail.com", "email": "xsang.le@gmail.com",
"licences": "GPLv3" "licences": "GPLv3"
}, },
"version":"0.0.8-a", "version":"0.0.9-a",
"category":"Office", "category":"Graphics",
"iconclass": "fa fa-sitemap", "iconclass": "fa fa-sitemap",
"mimes":["text/.*graphviz"] "mimes":["text/.*graphviz"]
} }

View File

@ -7,8 +7,8 @@
"email": "xsang.le@gmail.com", "email": "xsang.le@gmail.com",
"licences": "GPLv3" "licences": "GPLv3"
}, },
"version":"0.0.8-a", "version":"0.0.9-a",
"category":"Office", "category":"Graphics",
"iconclass": "fa fa-sitemap", "iconclass": "fa fa-sitemap",
"mimes":["text/.*graphviz"] "mimes":["text/.*graphviz"]
} }

View File

@ -5,5 +5,6 @@ Application for serverside code testing and analytics tool.
It allows to execute lua code on the server from the browser It allows to execute lua code on the server from the browser
## Change logs ## Change logs
* 0.0.7-a: Change icon and category
* 0.0.6-a: Fix ace path error * 0.0.6-a: Fix ace path error
* 0.0.5-a: Fix worker path error * 0.0.5-a: Fix worker path error

View File

@ -5,5 +5,6 @@ Application for serverside code testing and analytics tool.
It allows to execute lua code on the server from the browser It allows to execute lua code on the server from the browser
## Change logs ## Change logs
* 0.0.7-a: Change icon and category
* 0.0.6-a: Fix ace path error * 0.0.6-a: Fix ace path error
* 0.0.5-a: Fix worker path error * 0.0.5-a: Fix worker path error

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LEs", "author": "Xuan Sang LEs",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"System", "category":"Development",
"iconclass":"fa fa-adn", "iconclass":"bi gear-full",
"mimes":["none"] "mimes":["none"]
} }

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LEs", "author": "Xuan Sang LEs",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"System", "category":"Development",
"iconclass":"fa fa-adn", "iconclass":"bi gear-full",
"mimes":["none"] "mimes":["none"]
} }

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.7-a", "version":"0.0.8-a",
"category":"Utils", "category":"Office",
"iconclass":"fa fa-leanpub", "iconclass":"fa fa-leanpub",
"dependencies": ["SimpleMDE@1.11.2-r"], "dependencies": ["SimpleMDE@1.11.2-r"],
"mimes":["text/.*"] "mimes":["text/.*"]

Binary file not shown.

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.7-a", "version":"0.0.8-a",
"category":"Utils", "category":"Office",
"iconclass":"fa fa-leanpub", "iconclass":"fa fa-leanpub",
"dependencies": ["SimpleMDE@1.11.2-r"], "dependencies": ["SimpleMDE@1.11.2-r"],
"mimes":["text/.*"] "mimes":["text/.*"]

View File

@ -7,7 +7,7 @@
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.0.8-a", "version":"0.0.8-a",
"category":"Multimedia", "category":"Media",
"iconclass":"fa fa-headphones", "iconclass":"fa fa-headphones",
"mimes":["none"] "mimes":["none"]
} }

File diff suppressed because one or more lines are too long

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.1.3-a", "version":"0.1.4-a",
"category":"Other", "category":"Office",
"icon":"icon.png", "icon":"icon.png",
"mimes":["application/vnd.oasis.opendocument.text"] "mimes":["application/vnd.oasis.opendocument.text"]
} }

Binary file not shown.

View File

@ -6,8 +6,8 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.1.3-a", "version":"0.1.4-a",
"category":"Other", "category":"Office",
"icon":"icon.png", "icon":"icon.png",
"mimes":["application/vnd.oasis.opendocument.text"] "mimes":["application/vnd.oasis.opendocument.text"]
} }

View File

@ -8,4 +8,5 @@ This application reauires the **tunel plugin** and the **ant-tunnel v4l2 publish
on the server-side on the server-side
## Change log ## Change log
* v0.1.4-a: change app category
* v0.1.2-a: user worker for jpeg decoding * v0.1.2-a: user worker for jpeg decoding

View File

@ -8,4 +8,5 @@ This application reauires the **tunel plugin** and the **ant-tunnel v4l2 publish
on the server-side on the server-side
## Change log ## Change log
* v0.1.4-a: change app category
* v0.1.2-a: user worker for jpeg decoding * v0.1.2-a: user worker for jpeg decoding

View File

@ -7,8 +7,8 @@
"author": "", "author": "",
"email": "" "email": ""
}, },
"version":"0.1.3-a", "version":"0.1.4-a",
"category":"Other", "category":"Graphics",
"iconclass":"fa fa-camera", "iconclass":"fa fa-camera",
"mimes":["none"], "mimes":["none"],
"dependencies":["libjpeg@0.1.1-a", "Antunnel@0.1.8-a"], "dependencies":["libjpeg@0.1.1-a", "Antunnel@0.1.8-a"],

View File

@ -7,8 +7,8 @@
"author": "", "author": "",
"email": "" "email": ""
}, },
"version":"0.1.3-a", "version":"0.1.4-a",
"category":"Other", "category":"Graphics",
"iconclass":"fa fa-camera", "iconclass":"fa fa-camera",
"mimes":["none"], "mimes":["none"],
"dependencies":["libjpeg@0.1.1-a", "Antunnel@0.1.8-a"], "dependencies":["libjpeg@0.1.1-a", "Antunnel@0.1.8-a"],

View File

@ -7,6 +7,6 @@ Further information on **wvnc**: [https://blog.lxsang.me/post/id/23](https://blo
## Change logs ## Change logs
* v0.1.6 - Change category
* v0.1.5 - add package dependencies and use the new **libwvnc** * v0.1.5 - add package dependencies and use the new **libwvnc**
* v0.1.0 - adapt to the new AntOS API * v0.1.0 - adapt to the new AntOS API

View File

@ -1,5 +1,5 @@
# WVNC remote desktop # WVNC remote desktop
![](https://os.lxsang.me/repo/RemoteDesktop/RemoteDesktop.png) ![](https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/screenshot.jpg)
A web based VNC client allowing to control remote VNC desktop from browser. The application is based on **wvnc**, a protocol and API that uses web socket to communicate with remote VNC server. A web based VNC client allowing to control remote VNC desktop from browser. The application is based on **wvnc**, a protocol and API that uses web socket to communicate with remote VNC server.
@ -7,6 +7,6 @@ Further information on **wvnc**: [https://blog.lxsang.me/post/id/23](https://blo
## Change logs ## Change logs
* v0.1.6 - Change category
* v0.1.5 - add package dependencies and use the new **libwvnc** * v0.1.5 - add package dependencies and use the new **libwvnc**
* v0.1.0 - adapt to the new AntOS API * v0.1.0 - adapt to the new AntOS API

View File

@ -6,9 +6,9 @@
"author": "", "author": "",
"email": "" "email": ""
}, },
"version":"0.1.5-a", "version":"0.1.6-a",
"dependencies": ["libwvnc@0.1.2-a"], "dependencies": ["libwvnc@0.1.2-a"],
"category":"Other", "category":"Internet",
"icon": "icon.png", "icon": "icon.png",
"mimes":["none"] "mimes":["none"]
} }

View File

@ -6,9 +6,9 @@
"author": "", "author": "",
"email": "" "email": ""
}, },
"version":"0.1.5-a", "version":"0.1.6-a",
"dependencies": ["libwvnc@0.1.2-a"], "dependencies": ["libwvnc@0.1.2-a"],
"category":"Other", "category":"Internet",
"icon": "icon.png", "icon": "icon.png",
"mimes":["none"] "mimes":["none"]
} }

View File

@ -7,8 +7,8 @@
"email": "xsang.le@gmail.com", "email": "xsang.le@gmail.com",
"licences": "GPLv3" "licences": "GPLv3"
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"Other", "category":"Utility",
"mimes":["none"], "mimes":["none"],
"iconclass": "fa fa-delicious", "iconclass": "fa fa-delicious",
"locales": { "locales": {

Binary file not shown.

View File

@ -7,8 +7,8 @@
"email": "xsang.le@gmail.com", "email": "xsang.le@gmail.com",
"licences": "GPLv3" "licences": "GPLv3"
}, },
"version":"0.0.6-a", "version":"0.0.7-a",
"category":"Other", "category":"Utility",
"mimes":["none"], "mimes":["none"],
"iconclass": "fa fa-delicious", "iconclass": "fa fa-delicious",
"locales": { "locales": {

View File

@ -14,8 +14,8 @@
"Antunnel@0.1.8-a" "Antunnel@0.1.8-a"
], ],
"version":"0.1.9-a", "version":"0.1.9-a",
"category":"Other", "category":"System",
"iconclass":"fa fa-android", "iconclass":"fa fa-tachometer",
"mimes":["none"], "mimes":["none"],
"locale": {} "locale": {}
} }

View File

@ -14,8 +14,8 @@
"Antunnel@0.1.8-a" "Antunnel@0.1.8-a"
], ],
"version":"0.1.9-a", "version":"0.1.9-a",
"category":"Other", "category":"System",
"iconclass":"fa fa-android", "iconclass":"fa fa-tachometer",
"mimes":["none"], "mimes":["none"],
"locale": {} "locale": {}
} }

View File

@ -8,7 +8,7 @@
"licences": "GPLv3" "licences": "GPLv3"
}, },
"version":"0.0.2-a", "version":"0.0.2-a",
"category":"Office", "category":"Graphics",
"iconclass": "fa fa-sitemap", "iconclass": "bi bi-bounding-box",
"mimes":["text/.*graphviz"] "mimes":["text/.*graphviz"]
} }

Binary file not shown.

View File

@ -8,7 +8,7 @@
"licences": "GPLv3" "licences": "GPLv3"
}, },
"version":"0.0.2-a", "version":"0.0.2-a",
"category":"Office", "category":"Graphics",
"iconclass": "fa fa-sitemap", "iconclass": "bi bi-bounding-box",
"mimes":["text/.*graphviz"] "mimes":["text/.*graphviz"]
} }

View File

@ -3,9 +3,9 @@
"pkgname": "About", "pkgname": "About",
"name": "About AntOS", "name": "About AntOS",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/About/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/About/README.md",
"category": "Other", "category": "Utility",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.0.6-a", "version": "0.0.7-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/About/build/release/About.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/About/build/release/About.zip"
}, },
@ -43,9 +43,9 @@
"pkgname": "Archive", "pkgname": "Archive",
"name": "Archive", "name": "Archive",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Archive/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Archive/README.md",
"category": "Other", "category": "Utility",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.0.2-a", "version": "0.0.3-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Archive/build/release/Archive.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Archive/build/release/Archive.zip"
}, },
@ -63,9 +63,9 @@
"pkgname": "Booklet", "pkgname": "Booklet",
"name": "Booklet", "name": "Booklet",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Booklet/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Booklet/README.md",
"category": "Other", "category": "Office",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.2.2-a", "version": "0.2.3-a",
"dependencies": ["SimpleMDE@1.11.2-r","Katex@0.11.1-r"],"mimes":["dir"], "dependencies": ["SimpleMDE@1.11.2-r","Katex@0.11.1-r"],"mimes":["dir"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Booklet/build/release/Booklet.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Booklet/build/release/Booklet.zip"
}, },
@ -73,9 +73,9 @@
"pkgname": "Clipper", "pkgname": "Clipper",
"name": "Clipper", "name": "Clipper",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Clipper/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Clipper/README.md",
"category": "Other", "category": "Utility",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.1.2-a", "version": "0.1.3-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Clipper/build/release/Clipper.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Clipper/build/release/Clipper.zip"
}, },
@ -93,9 +93,9 @@
"pkgname": "DiffEditor", "pkgname": "DiffEditor",
"name": "Diff Editor", "name": "Diff Editor",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/DiffEditor/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/DiffEditor/README.md",
"category": "Other", "category": "Development",
"author": "", "author": "",
"version": "0.1.2-a", "version": "0.1.3-a",
"dependencies": ["AceDiff@3.0.3-r"], "dependencies": ["AceDiff@3.0.3-r"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/DiffEditor/build/release/DiffEditor.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/DiffEditor/build/release/DiffEditor.zip"
}, },
@ -103,19 +103,29 @@
"pkgname": "Docify", "pkgname": "Docify",
"name": "Docify", "name": "Docify",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Docify/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Docify/README.md",
"category": "Other", "category": "Office",
"author": "", "author": "",
"version": "0.0.6-a", "version": "0.0.7-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Docify/build/release/Docify.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Docify/build/release/Docify.zip"
}, },
{
"pkgname": "Dockman",
"name": "Remote Docker Manager",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Dockman/README.md",
"category": "Development",
"author": "Xuan Sang LE",
"version": "0.1.0-b",
"dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/Dockman/build/release/Dockman.zip"
},
{ {
"pkgname": "GPClient", "pkgname": "GPClient",
"name": "Generic Purpose client", "name": "Generic Purpose client",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GPClient/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GPClient/README.md",
"category": "Internet", "category": "Internet",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.1.0-a", "version": "0.1.2-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GPClient/build/release/GPClient.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GPClient/build/release/GPClient.zip"
}, },
@ -123,9 +133,9 @@
"pkgname": "GraphEditor", "pkgname": "GraphEditor",
"name": "Graph Editor", "name": "Graph Editor",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GraphEditor/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GraphEditor/README.md",
"category": "Office", "category": "Graphics",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.0.8-a", "version": "0.0.9-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GraphEditor/build/release/GraphEditor.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/GraphEditor/build/release/GraphEditor.zip"
}, },
@ -173,9 +183,9 @@
"pkgname": "LuaPlayground", "pkgname": "LuaPlayground",
"name": "LuaPlayground", "name": "LuaPlayground",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/LuaPlayground/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/LuaPlayground/README.md",
"category": "System", "category": "Development",
"author": "Xuan Sang LEs", "author": "Xuan Sang LEs",
"version": "0.0.6-a", "version": "0.0.7-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/LuaPlayground/build/release/LuaPlayground.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/LuaPlayground/build/release/LuaPlayground.zip"
}, },
@ -183,9 +193,9 @@
"pkgname": "MarkOn", "pkgname": "MarkOn",
"name": "Markdown editor", "name": "Markdown editor",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/MarkOn/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/MarkOn/README.md",
"category": "Utils", "category": "Office",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.0.7-a", "version": "0.0.8-a",
"dependencies": ["SimpleMDE@1.11.2-r"],"mimes":["text/.*"], "dependencies": ["SimpleMDE@1.11.2-r"],"mimes":["text/.*"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/MarkOn/build/release/MarkOn.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/MarkOn/build/release/MarkOn.zip"
}, },
@ -203,9 +213,9 @@
"pkgname": "OpenPage", "pkgname": "OpenPage",
"name": "OpenPage", "name": "OpenPage",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OpenPage/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OpenPage/README.md",
"category": "Other", "category": "Office",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.1.3-a", "version": "0.1.4-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OpenPage/build/release/OpenPage.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/OpenPage/build/release/OpenPage.zip"
}, },
@ -223,9 +233,9 @@
"pkgname": "RemoteCamera", "pkgname": "RemoteCamera",
"name": "Remote Camera", "name": "Remote Camera",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteCamera/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteCamera/README.md",
"category": "Other", "category": "Graphics",
"author": "", "author": "",
"version": "0.1.3-a", "version": "0.1.4-a",
"dependencies": ["libjpeg@0.1.1-a","Antunnel@0.1.8-a"], "dependencies": ["libjpeg@0.1.1-a","Antunnel@0.1.8-a"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteCamera/build/release/RemoteCamera.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteCamera/build/release/RemoteCamera.zip"
}, },
@ -233,19 +243,19 @@
"pkgname": "RemoteDesktop", "pkgname": "RemoteDesktop",
"name": "WVNC remote desktop", "name": "WVNC remote desktop",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/README.md",
"category": "Other", "category": "Internet",
"author": "", "author": "",
"version": "0.1.5-a", "version": "0.1.6-a",
"dependencies": ["libwvnc@0.1.2-a"],"category":"Other","icon":"icon.png","mimes":["none"], "dependencies": ["libwvnc@0.1.2-a"],"category":"Internet","icon":"icon.png","mimes":["none"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/build/release/RemoteDesktop.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/RemoteDesktop/build/release/RemoteDesktop.zip"
}, },
{ {
"pkgname": "ShowCase", "pkgname": "ShowCase",
"name": "ShowCase", "name": "ShowCase",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShowCase/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShowCase/README.md",
"category": "Other", "category": "Utility",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.0.6-a", "version": "0.0.7-a",
"dependencies": [], "dependencies": [],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShowCase/build/release/ShowCase.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/ShowCase/build/release/ShowCase.zip"
}, },
@ -263,10 +273,10 @@
"pkgname": "SystemControl", "pkgname": "SystemControl",
"name": "System monitoring", "name": "System monitoring",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/SystemControl/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/SystemControl/README.md",
"category": "Other", "category": "System",
"author": "", "author": "",
"version": "0.1.9-a", "version": "0.1.9-a",
"dependencies": ["Antunnel@0.1.8-a"],"version":"0.1.9-a","category":"Other","iconclass":"fafa-android","mimes":["none"], "dependencies": ["Antunnel@0.1.8-a"],"version":"0.1.9-a","category":"System","iconclass":"fafa-tachometer","mimes":["none"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/SystemControl/build/release/SystemControl.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/SystemControl/build/release/SystemControl.zip"
}, },
{ {
@ -283,7 +293,7 @@
"pkgname": "VizApp", "pkgname": "VizApp",
"name": "Viz editor", "name": "Viz editor",
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/VizApp/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/VizApp/README.md",
"category": "Office", "category": "Graphics",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.0.2-a", "version": "0.0.2-a",
"dependencies": [], "dependencies": [],
@ -295,7 +305,7 @@
"description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/vTerm/README.md", "description": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/vTerm/README.md",
"category": "System", "category": "System",
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"version": "0.1.13-a", "version": "0.1.14-a",
"dependencies": ["Antunnel@0.1.8-a","xTerm@4.8.1-r"], "dependencies": ["Antunnel@0.1.8-a","xTerm@4.8.1-r"],
"download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/vTerm/build/release/vTerm.zip" "download": "https://raw.githubusercontent.com/lxsang/antosdk-apps/master/vTerm/build/release/vTerm.zip"
}, },

View File

@ -12,6 +12,7 @@ VTerm depends on the server side **tunnel** plugin and the AntOS **Antunnel**
client side package client side package
## Change logs ## Change logs
- v0.1.14-a: Change app icon
- v0.1.12-a: Add copy/paste shortcuts (CTRL+SHIFT+C/ CTRL+SHIFT+V) - v0.1.12-a: Add copy/paste shortcuts (CTRL+SHIFT+C/ CTRL+SHIFT+V)
- v0.1.9-a: Update dependencies to latest - v0.1.9-a: Update dependencies to latest
- v0.1.6-a: Add dependencies to package meta-data - v0.1.6-a: Add dependencies to package meta-data

View File

@ -12,6 +12,7 @@ VTerm depends on the server side **tunnel** plugin and the AntOS **Antunnel**
client side package client side package
## Change logs ## Change logs
- v0.1.14-a: Change app icon
- v0.1.12-a: Add copy/paste shortcuts (CTRL+SHIFT+C/ CTRL+SHIFT+V) - v0.1.12-a: Add copy/paste shortcuts (CTRL+SHIFT+C/ CTRL+SHIFT+V)
- v0.1.9-a: Update dependencies to latest - v0.1.9-a: Update dependencies to latest
- v0.1.6-a: Add dependencies to package meta-data - v0.1.6-a: Add dependencies to package meta-data

View File

@ -6,9 +6,9 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.1.13-a", "version":"0.1.14-a",
"category":"System", "category":"System",
"iconclass":"fa fa-terminal", "iconclass":"bi bi-terminal-fill",
"mimes":["none"], "mimes":["none"],
"dependencies": [ "dependencies": [
"Antunnel@0.1.8-a", "Antunnel@0.1.8-a",

Binary file not shown.

View File

@ -6,9 +6,9 @@
"author": "Xuan Sang LE", "author": "Xuan Sang LE",
"email": "xsang.le@gmail.com" "email": "xsang.le@gmail.com"
}, },
"version":"0.1.13-a", "version":"0.1.14-a",
"category":"System", "category":"System",
"iconclass":"fa fa-terminal", "iconclass":"bi bi-terminal-fill",
"mimes":["none"], "mimes":["none"],
"dependencies": [ "dependencies": [
"Antunnel@0.1.8-a", "Antunnel@0.1.8-a",