Dateien nach "/" hochladen
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
-- Freewood-OctoWoW-Codex: Abschnitt "Datenbank teilen" in den Einstellungen
|
||||
|
||||
local ADDON, NS = ...
|
||||
|
||||
local FW = _G.Freewood
|
||||
local Codex = NS and NS.Codex
|
||||
local Sync = NS and NS.Sync
|
||||
local Share = NS and NS.Share
|
||||
if not FW or not Codex or not Sync or not Share or not FW.UI or not FW.UI.RegisterSettingsSection then
|
||||
return
|
||||
end
|
||||
|
||||
local UI = FW.UI
|
||||
|
||||
local function Build(parent)
|
||||
local L = FW.L
|
||||
local f, stack = UI.CreateSection(parent, L.CODEX_SHARE_HEADER)
|
||||
|
||||
local note = UI.CreateLabel(f, L.CODEX_SHARE_NOTE, { size = 11, color = "textDim", justifyV = "TOP" })
|
||||
stack:Add(note, { fit = true, gap = 8 })
|
||||
|
||||
local box = UI.CreateCheckbox(f, L.CODEX_SHARE_SWITCH, function()
|
||||
return Sync:IsEnabled()
|
||||
end, function(on)
|
||||
Sync:SetEnabled(on)
|
||||
end)
|
||||
stack:Add(box, { fit = true, gap = 10 })
|
||||
UI.AttachTooltip(box, function() return L.CODEX_SHARE_SWITCH end, function() return L.CODEX_SHARE_SWITCH_TIP end)
|
||||
|
||||
local callButton = UI.CreateButton(f, L.CODEX_SHARE_NOW, 200, 26, function()
|
||||
if Sync:IsEnabled() then
|
||||
Sync:JoinGlobal()
|
||||
Share.Scan(true)
|
||||
Sync:SendHello()
|
||||
end
|
||||
end, "default")
|
||||
stack:Add(callButton, { height = 26, gap = 12 })
|
||||
|
||||
local clearButton
|
||||
local armed = false
|
||||
clearButton = UI.CreateButton(f, L.CODEX_SHARE_CLEAR, 240, 26, function()
|
||||
if not armed then
|
||||
armed = true
|
||||
clearButton:SetLabel(L.CODEX_SHARE_CLEAR_SURE)
|
||||
C_Timer.After(5, function()
|
||||
armed = false
|
||||
clearButton:SetLabel(L.CODEX_SHARE_CLEAR)
|
||||
end)
|
||||
return
|
||||
end
|
||||
armed = false
|
||||
clearButton:SetLabel(L.CODEX_SHARE_CLEAR)
|
||||
local n = Share.ClearRemote()
|
||||
FW:Print(string.format(L.CODEX_SHARE_CLEARED, n))
|
||||
FW:Fire("CODEX_CHANGED", "import")
|
||||
FW:Fire("CODEX_SYNC_CHANGED")
|
||||
end, "default")
|
||||
stack:Add(clearButton, { height = 26, gap = 8 })
|
||||
|
||||
local status = UI.CreateLabel(f, "", { size = 11, color = "textDim", justifyV = "TOP" })
|
||||
stack:Add(status, { fit = true, gap = 10 })
|
||||
|
||||
function f.Refresh()
|
||||
box:Refresh()
|
||||
local st = Sync:Stats()
|
||||
local text = string.format(L.CODEX_SHARE_STATS, st.sent, st.received)
|
||||
text = text .. "\n" .. string.format(L.CODEX_SHARE_SOURCES, st.senders, st.records)
|
||||
text = text .. "\n" .. string.format(L.CODEX_SHARE_HEARD, st.heard or 0)
|
||||
if Sync:IsEnabled() then
|
||||
local key = "CODEX_SHARE_GLOBAL_" .. string.upper(st.global or "off")
|
||||
text = text .. "\n" .. (L[key] or L.CODEX_SHARE_GLOBAL_OFF)
|
||||
end
|
||||
status:SetText(text)
|
||||
stack:Layout()
|
||||
end
|
||||
|
||||
FW:On("CODEX_SYNC_CHANGED", function()
|
||||
if f:IsVisible() then
|
||||
f.Refresh()
|
||||
end
|
||||
end, f)
|
||||
|
||||
stack:Layout()
|
||||
return f
|
||||
end
|
||||
|
||||
UI:RegisterSettingsSection("codex-share", {
|
||||
order = 105,
|
||||
height = 360,
|
||||
build = Build,
|
||||
refresh = function(frame)
|
||||
frame.Refresh()
|
||||
end,
|
||||
})
|
||||
Reference in New Issue
Block a user