86 lines
1.9 KiB
Lua
86 lines
1.9 KiB
Lua
module 'aux.tabs.search'
|
|
|
|
local aux = require 'aux'
|
|
local info = require 'aux.util.info'
|
|
|
|
local tab = aux.tab 'Search'
|
|
|
|
StaticPopupDialogs.AUX_SEARCH_TABLE_FULL = {
|
|
text = 'Table full!\nFurther results from this search will still be processed but no longer displayed in the table.',
|
|
button1 = 'Ok',
|
|
showAlert = 1,
|
|
timeout = 0,
|
|
hideOnEscape = 1,
|
|
}
|
|
|
|
RESULTS, SAVED, FILTER = aux.enum(3)
|
|
|
|
function aux.handle.LOAD()
|
|
set_subtab(SAVED)
|
|
end
|
|
|
|
function tab.OPEN()
|
|
frame:Show()
|
|
update_search_listings()
|
|
update_filter_display()
|
|
end
|
|
|
|
function tab.CLOSE()
|
|
current_search().table:SetSelectedRecord()
|
|
frame:Hide()
|
|
end
|
|
|
|
function tab.CLICK_LINK(item_info)
|
|
set_filter(strlower(item_info.name) .. '/exact')
|
|
execute(nil, false)
|
|
end
|
|
|
|
function tab.USE_ITEM(item_info)
|
|
set_filter(strlower(info.item(item_info.item_id).name) .. '/exact')
|
|
execute(nil, false)
|
|
end
|
|
|
|
function set_subtab(tab)
|
|
CloseDropDownMenus()
|
|
search_results_button:UnlockHighlight()
|
|
saved_searches_button:UnlockHighlight()
|
|
new_filter_button:UnlockHighlight()
|
|
frame.results:Hide()
|
|
frame.saved:Hide()
|
|
frame.filter:Hide()
|
|
|
|
if tab == RESULTS then
|
|
frame.results:Show()
|
|
search_results_button:LockHighlight()
|
|
elseif tab == SAVED then
|
|
frame.saved:Show()
|
|
saved_searches_button:LockHighlight()
|
|
elseif tab == FILTER then
|
|
frame.filter:Show()
|
|
new_filter_button:LockHighlight()
|
|
end
|
|
end
|
|
|
|
function M.set_filter(filter_string)
|
|
search_box:SetFocus()
|
|
search_box:SetText(filter_string)
|
|
end
|
|
|
|
function add_filter(filter_string)
|
|
local old_filter_string = search_box:GetText()
|
|
old_filter_string = aux.trim(old_filter_string)
|
|
|
|
if old_filter_string ~= '' then
|
|
old_filter_string = old_filter_string .. ';'
|
|
end
|
|
|
|
set_filter(old_filter_string .. filter_string)
|
|
end
|
|
|
|
function blizzard_page_index(str)
|
|
if tonumber(str) then
|
|
return max(0, tonumber(str) - 1)
|
|
end
|
|
end
|
|
|