Skip to content

Commit

Permalink
always show all active orders
Browse files Browse the repository at this point in the history
  • Loading branch information
buck54321 committed Jul 31, 2023
1 parent e1298d7 commit 3f5c2d0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
2 changes: 1 addition & 1 deletion client/webserver/site/src/html/bodybuilder.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
{{end}}

{{define "bottom"}}
<script src="/js/entry.js?v=67f2396a|19245aa2"></script>
<script src="/js/entry.js?v=b2ea5069|46b9d8f1"></script>
</body>
</html>
{{end}}
23 changes: 18 additions & 5 deletions client/webserver/site/src/js/markets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ const epochMatchSummaryRoute = 'epoch_match_summary'
const animationLength = 500

const anHour = 60 * 60 * 1000 // milliseconds
const maxActiveOrdersShown = 10
const maxUserOrdersShown = 10

const check = document.createElement('span')
check.classList.add('ico-check')
Expand Down Expand Up @@ -1439,14 +1439,19 @@ export default class MarketsPage extends BasePage {
}
}

maxUserOrderCount (): number {
const { dex: { host }, cfg: { name: mktID } } = this.market
return Math.max(maxUserOrdersShown, app().orders(host, mktID).length)
}

async loadUserOrders () {
const market = this.market
for (const oid in this.metaOrders) delete this.metaOrders[oid]
if (!market.base || !market.quote) return this.resolveActiveOrders([]) // unsupported asset
const filter: OrderFilter = {
hosts: [market.dex.host],
market: { baseID: market.base.id, quoteID: market.quote.id },
n: maxActiveOrdersShown
n: this.maxUserOrderCount()
}
const res = await postJSON('/api/orders', filter)
return this.resolveActiveOrders(res.orders || [])
Expand All @@ -1462,10 +1467,18 @@ export default class MarketsPage extends BasePage {
const { page, metaOrders, market } = this
const cfg = market.cfg

const orderIsActive = (ord: Order) => ord.status < OrderUtil.StatusExecuted || OrderUtil.hasActiveMatches(ord)

for (const ord of orders) metaOrders[ord.id] = { ord: ord } as MetaOrder
let sortedOrders = Object.keys(metaOrders).map((oid: string) => metaOrders[oid])
sortedOrders.sort((a: MetaOrder, b: MetaOrder) => b.ord.submitTime - a.ord.submitTime)
if (sortedOrders.length > maxActiveOrdersShown) { sortedOrders = sortedOrders.slice(0, maxActiveOrdersShown - 1) }
sortedOrders.sort((a: MetaOrder, b: MetaOrder) => {
const [aActive, bActive] = [orderIsActive(a.ord), orderIsActive(b.ord)]
if (aActive && !bActive) return -1
else if (!aActive && bActive) return 1
return b.ord.submitTime - a.ord.submitTime
})
const n = this.maxUserOrderCount()
if (sortedOrders.length > n) { sortedOrders = sortedOrders.slice(0, n) }

for (const oid in metaOrders) delete metaOrders[oid]

Expand All @@ -1489,7 +1502,7 @@ export default class MarketsPage extends BasePage {

const ord = mord.ord
const orderID = ord.id
const isActive = ord.status < OrderUtil.StatusExecuted || OrderUtil.hasActiveMatches(ord)
const isActive = orderIsActive(ord)

// No need to track in-flight orders here. We've already added it to
// display.
Expand Down

0 comments on commit 3f5c2d0

Please sign in to comment.