46 lines
1.1 KiB
Lua
46 lines
1.1 KiB
Lua
local function cmd(args)
|
|
local entries = env.xmlFindTags(env.db,"entries")[1]
|
|
for i,entry in pairs(entries.children) do
|
|
if entry.attrs.id == args[2] then
|
|
local history = env.xmlFindTags(entry,"history")[1]
|
|
local hentry = {}
|
|
hentry.tag = "entry"
|
|
hentry.attrs = {}
|
|
for i,v in pairs(entry.attrs) do
|
|
hentry.attrs[i] = v
|
|
end
|
|
hentry.children = {}
|
|
hentry.parent = history
|
|
|
|
local hfields = {}
|
|
hfields.tag = "fields"
|
|
hfields.attrs = {}
|
|
hfields.children = {}
|
|
hfields.parent = hentry
|
|
table.insert(hentry.children,hfields)
|
|
|
|
local fields = env.xmlFindTags(entry,"fields")[1]
|
|
for i,field in pairs(fields.children) do
|
|
local hfield = {}
|
|
hfield.tag = field.tag
|
|
hfield.attrs = {}
|
|
hfield.children = {}
|
|
hfield.parent = hfields
|
|
for i,v in pairs(field.attrs) do
|
|
hfield.attrs[i] = v
|
|
end
|
|
hfield.children[1] = {}
|
|
if field.children[1] ~= nil then
|
|
hfield.children[1].text = field.children[1].text
|
|
end
|
|
table.insert(hfields.children,hfield)
|
|
end
|
|
|
|
table.insert(history.children,hentry)
|
|
env.changed = true
|
|
end
|
|
end
|
|
end
|
|
|
|
return cmd
|