Files
Manuel Simon Hirsig f7445c9feb refactoring
2017-11-25 18:34:17 +01:00

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