diff --git a/auction_listing.lua b/auction_listing.lua
index c667cb5..43dd1b5 100644
--- a/auction_listing.lua
+++ b/auction_listing.lua
@@ -18,6 +18,30 @@ local TIME_LEFT_STRINGS = {
'|cff2992ff48h|r', -- Very Long
}
+function public.percentage_market(pct, based_on_bid)
+ local pctColor = '|cffffffff'
+
+ if based_on_bid then
+ pctColor = '|cffbbbbbb'
+ else
+ for i=1, getn(AUCTION_PCT_COLORS) do
+ if pct < AUCTION_PCT_COLORS[i].value then
+ pctColor = AUCTION_PCT_COLORS[i].color
+ break
+ end
+ end
+ end
+
+ if pct > 10000 then
+ pct = '>10000'
+ end
+
+ return format('%s%s%%|r', pctColor, pct)
+end
+
+function public.time_left(code)
+ return TIME_LEFT_STRINGS[code]
+end
local methods = {
@@ -404,22 +428,7 @@ local methods = {
row.cells[7]:SetText(bid > 0 and Aux.money.to_string(bid, true, false, colorBid) or '---')
row.cells[8]:SetText(buyout > 0 and Aux.money.to_string(buyout, true, false, colorBuyout) or '---')
local pct, bidPct = self:GetRecordPercent(record)
- local pctColor = '|cffffffff'
- if pct then
- for i=1, getn(AUCTION_PCT_COLORS) do
- if pct < AUCTION_PCT_COLORS[i].value then
- pctColor = AUCTION_PCT_COLORS[i].color
- break
- end
- end
- elseif bidPct then
- pctColor = '|cffbbbbbb'
- pct = bidPct
- end
- if pct and pct > 10000 then
- pct = '>10000'
- end
- row.cells[9]:SetText(pct and format('%s%s%%|r', pctColor, pct) or '---')
+ row.cells[9]:SetText((pct or bidPct) and public.percentage_market(pct or bidPct, not pct) or '---')
end
end,
diff --git a/post_frame.lua b/post_frame.lua
index 1ef518d..27513f1 100644
--- a/post_frame.lua
+++ b/post_frame.lua
@@ -24,6 +24,7 @@ function private.update_inventory_listing()
itemstring = Aux.info.itemstring(inventory_record.item_id, inventory_record.suffix_id),
})
end
+ sort(inventory_rows, function(a, b) return a.record.name < b.record.name end)
private.inventory_listing:SetData(inventory_rows)
private.inventory_listing:SetSelection(function(row) return row.record == selected_item end)
end
@@ -34,29 +35,23 @@ function private.update_auction_listing()
end
local auction_rows = {}
- for i, auction_record in ipairs(selected_item and existing_auctions[selected_item.key] or {}) do
- local left
- if auction_record.max_time_left == 1 then
- left = '30m'
- elseif auction_record.max_time_left == 2 then
- left = '2h'
- elseif auction_record.max_time_left == 3 then
- left = '8h'
- elseif auction_record.max_time_left == 4 then
- left = '24h'
+ if selected_item then
+ for i, auction_record in ipairs(existing_auctions[selected_item.key] or {}) do
+ local stack_size = auction_record.stack_size == private.get_stack_size_slider_value() and GREEN_FONT_COLOR_CODE..auction_record.stack_size..FONT_COLOR_CODE_CLOSE or auction_record.stack_size
+ local market_value = Aux.history.market_value(auction_record.item_key)
+ tinsert(auction_rows, {
+ cols = {
+ { value=auction_record.count },
+ { value=auction_record.yours },
+ { value=Aux.auction_listing.time_left(auction_record.max_time_left) },
+ { value=stack_size },
+ { value=Aux.money.to_string(auction_record.unit_buyout_price) },
+ { value=Aux.auction_listing.percentage_market(market_value and Aux.round(auction_record.unit_buyout_price/market_value * 100) or '---') },
+ },
+ record = auction_record,
+ })
end
- local stack_size = auction_record.stack_size == private.get_stack_size_slider_value() and GREEN_FONT_COLOR_CODE..row.stack_size..FONT_COLOR_CODE_CLOSE or auction_record.stack_size
- tinsert(auction_rows, {
- cols = {
- { value=auction_record.count },
- { value=auction_record.yours },
- { value=left },
- { value=stack_size },
- { value=Aux.util.money_string(auction_record.unit_buyout_price) },
- { value=auction_record.stack_size },
- },
- record = auction_record,
- })
+ sort(auction_rows, function(a, b) return a.record.unit_buyout_price < b.record.unit_buyout_price end)
end
private.auction_listing:SetData(auction_rows)
private.auction_listing:SetSelection(function(row) return row.record == private.selected_auction() end)
@@ -67,16 +62,32 @@ function private.selected_auction()
end
function public.on_load()
- private.auction_listing_config = {
- columns = {
- Aux.listing_util.percentage_market_column(function(entry) return entry.item_key end, function(entry) return entry.unit_buyout_price end),
- },
- sort_order = {{column = 5, order = 'ascending' }},
- }
+
+ Aux.gui.vertical_line(AuxPostFrameContent, 208)
+ Aux.gui.vertical_line(AuxPostFrameContent, 431)
+
+ do
+ local label = Aux.gui.label(AuxSellParametersItem, 13)
+ label:SetPoint('BOTTOMLEFT', AuxSellParametersItem, 'TOPLEFT', 0, 0)
+ label:SetText('Auction Item')
+ end
+
+ AuxSellParametersItem:SetScript('OnReceiveDrag', function()
+ local item_info = Aux.cursor_item()
+ if item_info then
+ for _, inventory_record in ipairs(Aux.util.filter(inventory_data, function(record) return record.aux_quantity > 0 end)) do
+ if inventory_record.key == item_info.item_key then
+ private.set_item(inventory_record)
+ break
+ end
+ end
+ end
+ ClearCursor()
+ end)
private.inventory_listing = Aux.listing.CreateScrollingTable(AuxSellInventory)
private.inventory_listing:SetColInfo({
- {name='Qty', width=.15, align='RIGHT'},
+ {name='Qty', width=.15, align='CENTER'},
{name='Item', width=.85 }
})
private.inventory_listing:SetHandler('OnClick', function(table, row_data, column)
@@ -91,18 +102,16 @@ function public.on_load()
private.auction_listing = Aux.listing.CreateScrollingTable(AuxSellAuctions)
private.auction_listing:SetColInfo({
- { name='Avail', width=.1, align='RIGHT' },
- { name='Yours', width=.1, align='RIGHT' },
- { name='Max Left', width=.2, align='CENTER' },
- { name='Qty', width=.2, align='RIGHT' },
- { name='Buy/ea', width=.2, align='RIGHT' },
- { name='Pct', width=.2, align='RIGHT' }
+ { name='Avail', width=.14, align='CENTER' },
+ { name='Yours', width=.14, align='CENTER' },
+ { name='Left', width=.14, align='CENTER' },
+ { name='Qty', width=.08, align='CENTER' },
+ { name='Buy/ea', width=.3, align='RIGHT' },
+ { name='Pct', width=.2, align='CENTER' }
})
private.auction_listing:SetHandler('OnClick', function(table, row_data, column)
private.set_auction(row_data.record)
end)
- -- private.auction_listing:SetHandler('OnEnter', handlers.OnEnter)
- -- private.auction_listing:SetHandler('OnLeave', handlers.OnLeave)
do
local status_bar = Aux.gui.status_bar(AuxPostFrame)
@@ -134,7 +143,7 @@ function public.on_load()
do
local slider = Aux.gui.slider(AuxSellParameters)
slider:SetValueStep(1)
- slider:SetPoint('TOPLEFT', 16, -70)
+ slider:SetPoint('TOPLEFT', 16, -110)
slider:SetWidth(170)
slider:SetScript('OnValueChanged', function()
private.quantity_update()
@@ -169,7 +178,7 @@ function public.on_load()
do
local slider = Aux.gui.slider(AuxSellParameters)
slider:SetValueStep(1)
- slider:SetPoint('TOPLEFT', 16, -120)
+ slider:SetPoint('TOPLEFT', 16, -160)
slider:SetWidth(170)
slider:SetScript('OnValueChanged', function()
private.quantity_update()
@@ -207,7 +216,7 @@ function public.on_load()
end
do
local editbox = Aux.gui.editbox(AuxSellParameters)
- editbox:SetPoint('TOPLEFT', 16, -215)
+ editbox:SetPoint('TOPLEFT', 16, -255)
editbox:SetWidth(170)
editbox:SetScript('OnTextChanged', function()
private.validate_parameters()
@@ -235,7 +244,7 @@ function public.on_load()
end
do
local editbox = Aux.gui.editbox(AuxSellParameters)
- editbox:SetPoint('TOPLEFT', 16, -255)
+ editbox:SetPoint('TOPLEFT', 16, -295)
editbox:SetWidth(170)
editbox:SetScript('OnTextChanged', function()
private.validate_parameters()
@@ -263,7 +272,7 @@ function public.on_load()
end
do
local label = Aux.gui.label(AuxSellParameters, 15)
- label:SetPoint('TOPLEFT', AuxSellParameters, 'TOPLEFT', 16, -290)
+ label:SetPoint('TOPLEFT', AuxSellParameters, 'TOPLEFT', 16, -330)
private.deposit = label
end
end
@@ -645,7 +654,7 @@ function private.refresh_entries()
private.status_bar:set_text('Done Scanning')
end,
on_complete = function()
- existing_auctions[item_key] = existing_auctions[item_key] or { created = time() }
+ existing_auctions[item_key] = existing_auctions[item_key] or {}
private.update_recommendation()
refresh = true
private.status_bar:update_status(100, 100)
@@ -674,10 +683,10 @@ end
function private.record_auction(key, aux_quantity, buyout_price, duration, owner)
if buyout_price > 0 then
- existing_auctions[key] = existing_auctions[key] or { created = GetTime() }
+ existing_auctions[key] = existing_auctions[key] or {}
local entry
for _, existing_entry in ipairs(existing_auctions[key]) do
- if buyout_price == existing_entry.buyout_price and aux_quantity == existing_entry.stack_size then
+ if buyout_price == existing_entry.buyout_price and aux_quantity == existing_entry.stack_size and duration == existing_entry.duration then
entry = existing_entry
end
end
@@ -690,6 +699,7 @@ function private.record_auction(key, aux_quantity, buyout_price, duration, owner
item_key = key,
stack_size = aux_quantity,
buyout_price = buyout_price,
+ duration = duration,
unit_buyout_price = buyout_price / aux_quantity,
max_time_left = duration,
count = 1,
diff --git a/post_frame.xml b/post_frame.xml
index 808a3aa..f40efd8 100644
--- a/post_frame.xml
+++ b/post_frame.xml
@@ -41,15 +41,15 @@
-
-
+
+
-
+
-
+
getglobal(this:GetName().."Text"):SetText("2h")
@@ -86,8 +86,8 @@
-
-
+
+
diff --git a/search_frame.lua b/search_frame.lua
index acc6433..36efba0 100644
--- a/search_frame.lua
+++ b/search_frame.lua
@@ -443,7 +443,7 @@ end
local label = Aux.gui.label(AuxFilterSearchFrameFilterExactCheckButton, 13)
label:SetPoint('BOTTOMLEFT', AuxFilterSearchFrameFilterExactCheckButton, 'TOPLEFT', 1, -3)
label:SetText('Exact')
- end
+ end
do
local label = Aux.gui.label(AuxFilterSearchFrameFilterDiscardCheckButton, 13)
label:SetPoint('BOTTOMLEFT', AuxFilterSearchFrameFilterDiscardCheckButton, 'TOPLEFT', 1, -3)