chore: remaining batch of bootstrap-vue PascalCase

This commit is contained in:
Matthias 2024-07-05 12:35:51 +02:00
parent 97b6cc4211
commit 4cd553d300
22 changed files with 240 additions and 245 deletions

View File

@ -35,14 +35,14 @@
>Blacklist</label
>
<div class="float-end d-flex d-flex-columns pe-1">
<b-button
<BButton
id="blacklist-add-btn"
class="me-1"
:class="botStore.activeBot.botApiVersion >= 1.12 ? 'col-6' : ''"
size="sm"
><i-mdi-plus-box-outline />
</b-button>
<b-button
</BButton>
<BButton
v-if="botStore.activeBot.botApiVersion >= 1.12"
size="sm"
class="col-6"
@ -51,7 +51,7 @@
@click="deletePairs"
>
<i-mdi-delete />
</b-button>
</BButton>
</div>
<BPopover
title="Add to blacklist"
@ -62,17 +62,17 @@
>
<form ref="form" @submit.prevent="addBlacklistPair">
<div>
<b-form-group label-cols="2" label="Pair" label-for="pair-input">
<b-form-input
<BFormGroup label-cols="2" label="Pair" label-for="pair-input">
<BFormInput
id="pair-input"
v-model="newblacklistpair"
required
autofocus
></b-form-input>
</b-form-group>
<b-button id="blacklist-submit" class="float-end mb-2" size="sm" type="submit">
></BFormInput>
</BFormGroup>
<BButton id="blacklist-submit" class="float-end mb-2" size="sm" type="submit">
Add
</b-button>
</BButton>
</div>
</form>
</BPopover>

View File

@ -2,23 +2,23 @@
<div>
<div class="mb-2">
<label class="me-auto h3">Pair Locks</label>
<b-button class="float-end" size="sm" @click="botStore.activeBot.getLocks">
<BButton class="float-end" size="sm" @click="botStore.activeBot.getLocks">
<i-mdi-refresh />
</b-button>
</BButton>
</div>
<div>
<b-table class="table-sm" :items="botStore.activeBot.activeLocks" :fields="tableFields">
<BTable class="table-sm" :items="botStore.activeBot.activeLocks" :fields="tableFields">
<template #cell(actions)="row">
<b-button
<BButton
class="btn-xs ms-1"
size="sm"
title="Delete trade"
@click="removePairLock(row.item as unknown as Lock)"
>
<i-mdi-delete />
</b-button>
</BButton>
</template>
</b-table>
</BTable>
</div>
</div>
</template>

View File

@ -1,6 +1,6 @@
<template>
<div>
<b-form-group
<BFormGroup
label-for="trade-filter"
class="mb-2 ms-2"
:class="{
@ -8,10 +8,10 @@
'me-2': !backtestMode,
}"
>
<b-form-input id="trade-filter" v-model="filterText" type="text" placeholder="Filter" />
</b-form-group>
<b-list-group>
<b-list-group-item
<BFormInput id="trade-filter" v-model="filterText" type="text" placeholder="Filter" />
</BFormGroup>
<BListGroup>
<BListGroupItem
v-for="comb in combinedPairList"
:key="comb.pair"
button
@ -31,8 +31,8 @@
:profit-ratio="comb.profit"
:stake-currency="botStore.activeBot.stakeCurrency"
/>
</b-list-group-item>
</b-list-group>
</BListGroupItem>
</BListGroup>
</div>
</template>

View File

@ -1,26 +1,26 @@
<template>
<b-form-group label-cols="4" label-size="md" class="pb-1 text-start" :description="param.help">
<b-form-input
<BFormGroup label-cols="4" label-size="md" class="pb-1 text-start" :description="param.help">
<BFormInput
v-if="param.type === PairlistParamType.string || param.type === PairlistParamType.number"
v-model="paramValue"
size="sm"
></b-form-input>
></BFormInput>
<b-form-checkbox
<BFormCheckbox
v-if="param.type === PairlistParamType.boolean"
v-model="paramValue"
></b-form-checkbox>
></BFormCheckbox>
<b-form-select
<BFormSelect
v-if="param.type === PairlistParamType.option"
v-model="paramValue"
:options="param.options"
></b-form-select>
></BFormSelect>
<template #label>
<label> {{ param.description }}</label>
</template>
</b-form-group>
</BFormGroup>
</template>
<script setup lang="ts">

View File

@ -2,8 +2,8 @@
<div>
<div v-if="whitelist.length > 0" class="d-flex flex-column flex-lg-row px-2">
<!-- TODO: look into flexbox solution to have overflow scroll? -->
<b-list-group class="col-12 col-md-2 overflow-auto" style="height: calc(100vh - 135px)">
<b-list-group-item
<BListGroup class="col-12 col-md-2 overflow-auto" style="height: calc(100vh - 135px)">
<BListGroupItem
v-for="(pair, i) in whitelist"
:key="pair.pair"
button
@ -12,10 +12,10 @@
:title="pair.pair"
@click="botStore.activeBot.selectedPair = pair.pair"
>
<b-form-checkbox v-model="whitelist[i].enabled"></b-form-checkbox>
<BFormCheckbox v-model="whitelist[i].enabled"></BFormCheckbox>
{{ pair.pair }}
</b-list-group-item>
</b-list-group>
</BListGroupItem>
</BListGroup>
<div class="flex-fill">
<ChartView />
</div>

View File

@ -1,7 +1,7 @@
<template>
<div class="d-flex px-3 mb-3 gap-3 flex-column flex-lg-row">
<b-list-group ref="availablePairlistsEl" class="available-pairlists">
<b-list-group-item
<BListGroup ref="availablePairlistsEl" class="available-pairlists">
<BListGroupItem
v-for="pairlist in availablePairlists"
:key="pairlist.name"
:class="{
@ -13,7 +13,7 @@
<span class="fw-bold">{{ pairlist.name }}</span>
<span class="text-small">{{ pairlist.description }}</span>
</div>
<b-button
<BButton
class="p-0 add-pairlist"
style="border: none"
variant="outline-light"
@ -21,21 +21,21 @@
@click="pairlistStore.addToConfig(pairlist, pairlistStore.config.pairlists.length)"
>
<i-mdi-arrow-right-bold-box-outline class="fs-4" />
</b-button>
</b-list-group-item>
</b-list-group>
</BButton>
</BListGroupItem>
</BListGroup>
<div class="d-flex flex-column flex-fill">
<PairlistConfigActions />
<div class="border rounded-1 p-2 mb-2">
<div class="d-flex align-items-center gap-2 my-2">
<span class="col-auto">Stake currency: </span>
<b-form-input v-model="pairlistStore.stakeCurrency" size="sm" />
<BFormInput v-model="pairlistStore.stakeCurrency" size="sm" />
</div>
<div class="mb-2 border rounded-1 p-2 text-start">
<b-form-checkbox v-model="pairlistStore.customExchange" class="mb-2">
<BFormCheckbox v-model="pairlistStore.customExchange" class="mb-2">
Custom Exchange
</b-form-checkbox>
</BFormCheckbox>
<ExchangeSelect
v-if="pairlistStore.customExchange"
v-model="pairlistStore.selectedExchange"
@ -43,7 +43,7 @@
</div>
</div>
<PairlistConfigBlacklist />
<b-alert
<BAlert
:model-value="
pairlistStore.config.pairlists.length > 0 && !pairlistStore.firstPairlistIsGenerator
"
@ -51,7 +51,7 @@
>
First entry in the pairlist must be a Generating pairlist, like StaticPairList or
VolumePairList.
</b-alert>
</BAlert>
<div
ref="pairlistConfigsEl"
class="d-flex flex-column flex-grow-1 position-relative border rounded-1 p-1"
@ -67,12 +67,12 @@
</div>
</div>
<div class="d-flex flex-column col-12 col-lg-3">
<b-form-radio-group v-model="selectedView" class="mb-2" size="sm" buttons>
<b-form-radio button value="Config"> Config</b-form-radio>
<b-form-radio button value="Results" :disabled="pairlistStore.whitelist.length === 0">
Results</b-form-radio
<BFormRadioGroup v-model="selectedView" class="mb-2" size="sm" buttons>
<BFormRadio button value="Config"> Config</BFormRadio>
<BFormRadio button value="Results" :disabled="pairlistStore.whitelist.length === 0">
Results</BFormRadio
>
</b-form-radio-group>
</BFormRadioGroup>
<div class="position-relative flex-fill overflow-auto">
<CopyableTextfield
v-if="selectedView === 'Config'"

View File

@ -2,11 +2,11 @@
<div>
<div class="mb-2">
<h3 class="me-auto d-inline">{{ hasWeekly ? 'Period' : 'Daily' }} Breakdown</h3>
<b-button class="float-end" size="sm" @click="refreshSummary">
<BButton class="float-end" size="sm" @click="refreshSummary">
<i-mdi-refresh />
</b-button>
</BButton>
</div>
<b-form-radio-group
<BFormRadioGroup
v-if="hasWeekly"
id="order-direction"
v-model="periodicBreakdownPeriod"
@ -17,7 +17,7 @@
style="min-width: 10em"
button-variant="outline-primary"
@change="refreshSummary"
></b-form-radio-group>
></BFormRadioGroup>
<div class="ps-1">
<TimePeriodChart
@ -27,7 +27,7 @@
/>
</div>
<div>
<b-table class="table-sm" :items="selectedStats.data" :fields="dailyFields"> </b-table>
<BTable class="table-sm" :items="selectedStats.data" :fields="dailyFields"> </BTable>
</div>
</div>
</template>

View File

@ -1,11 +1,11 @@
<template>
<div class="d-flex align-items-center ms-2">
<b-form-checkbox
<BFormCheckbox
v-model="autoRefreshLoc"
class="float-end my-auto mt-1"
title="AutoRefresh"
></b-form-checkbox>
<b-button
></BFormCheckbox>
<BButton
class="m-1"
variant="secondary"
size="sm"
@ -13,7 +13,7 @@
@click="botStore.allRefreshFull"
>
<i-mdi-refresh />
</b-button>
</BButton>
</div>
</template>

View File

@ -1,16 +1,16 @@
<template>
<div>
<div class="w-100 d-flex">
<b-form-select
<BFormSelect
id="strategy-select"
v-model="locStrategy"
:options="botStore.activeBot.strategyList"
>
</b-form-select>
</BFormSelect>
<div class="ms-1">
<b-button @click="botStore.activeBot.getStrategyList">
<BButton @click="botStore.activeBot.getStrategyList">
<i-mdi-refresh />
</b-button>
</BButton>
</div>
</div>

View File

@ -1,10 +1,10 @@
<template>
<b-form-select
<BFormSelect
v-model="selectedTimeframe"
placeholder="Use strategy default"
:options="availableTimeframes"
@change="emitSelectedTimeframe"
></b-form-select>
></BFormSelect>
</template>
<script setup lang="ts">

View File

@ -1,6 +1,6 @@
<template>
<div class="d-flex flex-column">
<b-button
<BButton
v-if="botApiVersion <= 1.1"
class="btn-xs text-start"
size="sm"
@ -8,8 +8,8 @@
@click="$emit('forceExit', trade)"
>
<i-mdi-close-box class="me-1" />Forceexit
</b-button>
<b-button
</BButton>
<BButton
v-if="botApiVersion > 1.1"
class="btn-xs text-start"
size="sm"
@ -17,8 +17,8 @@
@click="$emit('forceExit', trade, 'limit')"
>
<i-mdi-close-box class="me-1" />Forceexit limit
</b-button>
<b-button
</BButton>
<BButton
v-if="botApiVersion > 1.1"
class="btn-xs text-start mt-1"
size="sm"
@ -26,8 +26,8 @@
@click="$emit('forceExit', trade, 'market')"
>
<i-mdi-close-box class="me-1" />Forceexit market
</b-button>
<b-button
</BButton>
<BButton
v-if="botApiVersion > 2.16"
class="btn-xs text-start mt-1"
size="sm"
@ -35,8 +35,8 @@
@click="$emit('forceExitPartial', trade)"
>
<i-mdi-close-box-multiple class="me-1" />Forceexit partial
</b-button>
<b-button
</BButton>
<BButton
v-if="botApiVersion >= 2.24 && (trade.open_order_id || trade.has_open_orders)"
class="btn-xs text-start mt-1"
size="sm"
@ -44,8 +44,8 @@
@click="$emit('cancelOpenOrder', trade)"
>
<i-mdi-cancel class="me-1" />Cancel open order
</b-button>
<b-button
</BButton>
<BButton
v-if="enableForceEntry"
class="btn-xs text-start mt-1"
size="sm"
@ -53,8 +53,8 @@
@click="$emit('forceEntry', trade)"
>
<i-mdi-plus-box-multiple-outline class="me-1" />Increase position
</b-button>
<b-button
</BButton>
<BButton
v-if="botApiVersion >= 2.28"
class="btn-xs text-start mt-1"
size="sm"
@ -62,8 +62,8 @@
@click="$emit('reloadTrade', trade)"
>
<i-mdi-reload-alert class="me-1" />Reload Trade
</b-button>
<b-button
</BButton>
<BButton
class="btn-xs text-start mt-1"
size="sm"
title="Delete trade"
@ -71,7 +71,7 @@
>
<i-mdi-delete class="me-1" />
Delete
</b-button>
</BButton>
</div>
</template>

View File

@ -45,7 +45,7 @@ function handleForceEntry(item: Trade) {
<template>
<div>
<b-button
<BButton
:id="`btn-actions-${id}`"
class="btn-xs"
size="sm"
@ -53,7 +53,7 @@ function handleForceEntry(item: Trade) {
@click="popoverOpen = !popoverOpen"
>
<i-mdi-gesture-tap />
</b-button>
</BButton>
<BPopover
teleport-to="body"
:target="`btn-actions-${id}`"
@ -73,9 +73,9 @@ function handleForceEntry(item: Trade) {
@reload-trade="handleReloadTrade"
@force-entry="handleForceEntry"
/>
<b-button class="mt-1 w-100 text-start" size="sm" @click="popoverOpen = false">
<BButton class="mt-1 w-100 text-start" size="sm" @click="popoverOpen = false">
<i-mdi-cancel class="me-1" />Close Actions menu
</b-button>
</BButton>
</BPopover>
</div>
</template>

View File

@ -1,6 +1,6 @@
<template>
<div class="h-100 overflow-auto w-100">
<b-table
<BTable
ref="tradesTable"
small
hover
@ -66,18 +66,18 @@
<template #cell(close_timestamp)="row">
<DateTimeTZ :date="(row.item as unknown as Trade).close_timestamp ?? 0" />
</template>
</b-table>
</BTable>
<div class="w-100 d-flex justify-content-between">
<b-pagination
<BPagination
v-if="!activeTrades"
v-model="currentPage"
:total-rows="rows"
:per-page="perPage"
aria-controls="my-table"
></b-pagination>
<b-form-group v-if="showFilter" label-for="trade-filter">
<b-form-input id="trade-filter" v-model="filterText" type="text" placeholder="Filter" />
</b-form-group>
></BPagination>
<BFormGroup v-if="showFilter" label-for="trade-filter">
<BFormInput id="trade-filter" v-model="filterText" type="text" placeholder="Filter" />
</BFormGroup>
</div>
<ForceExitForm v-if="activeTrades" v-model="forceExitVisible" :trade="feTrade" />
<ForceEntryForm
@ -86,9 +86,9 @@
position-increase
/>
<b-modal v-model="removeTradeVisible" title="Exit trade" @ok="forceExitExecuter">
<BModal v-model="removeTradeVisible" title="Exit trade" @ok="forceExitExecuter">
{{ confirmExitText }}
</b-modal>
</BModal>
</div>
</template>

View File

@ -1,14 +1,14 @@
<template>
<div>
<b-list-group>
<b-list-group-item
<BListGroup>
<BListGroupItem
button
class="d-flex flex-wrap justify-content-center align-items-center"
:title="'Trade Navigation'"
@click="sortNewestFirst = !sortNewestFirst"
>Trade Navigation {{ sortNewestFirst ? '&#8595;' : '&#8593;' }}
</b-list-group-item>
<b-list-group-item
</BListGroupItem>
<BListGroupItem
v-for="(trade, i) in sortedTrades"
:key="trade.open_timestamp"
button
@ -32,16 +32,16 @@
:stake-currency="botStore.activeBot.stakeCurrency"
/>
</div>
<b-button
<BButton
size="sm"
class="ms-auto mt-auto"
variant="outline-secondary"
@click="ordersVisible[i] = !ordersVisible[i]"
><i-mdi-chevron-right v-if="!ordersVisible[i]" width="24" height="24" />
<i-mdi-chevron-down v-if="ordersVisible[i]" width="24" height="24" />
</b-button>
</BButton>
</div>
<b-collapse v-model="ordersVisible[i]">
<BCollapse v-model="ordersVisible[i]">
<ul class="px-3 m-0">
<li
v-for="order in trade.orders?.filter((o) => o.order_filled_timestamp !== null)"
@ -50,10 +50,10 @@
{{ order.ft_order_side }} {{ order.amount }} at {{ order.safe_price }}
</li>
</ul>
</b-collapse>
</b-list-group-item>
<b-list-group-item v-if="trades.length === 0">No trades to show...</b-list-group-item>
</b-list-group>
</BCollapse>
</BListGroupItem>
<BListGroupItem v-if="trades.length === 0">No trades to show...</BListGroupItem>
</BListGroup>
</div>
</template>

View File

@ -2,22 +2,22 @@
<form class="d-flex flex-row" @submit.prevent="saveNewName">
<div class="flex-grow-1">
<slot v-if="mode === EditState.None"> </slot>
<b-form-input v-else v-model="localName" size="sm"> </b-form-input>
<BFormInput v-else v-model="localName" size="sm"> </BFormInput>
</div>
<div
class="flex-grow-2 mt-auto d-flex gap-1 ms-1"
:class="alignVertical ? 'flex-column' : 'flex-row'"
>
<template v-if="allowEdit && mode === EditState.None">
<b-button
<BButton
size="sm"
variant="secondary"
:title="`Edit this ${editableName}.`"
@click="mode = EditState.Editing"
>
<i-mdi-pencil />
</b-button>
<b-button
</BButton>
<BButton
v-if="allowDuplicate"
size="sm"
variant="secondary"
@ -25,36 +25,36 @@
@click="duplicate"
>
<i-mdi-content-copy />
</b-button>
<b-button
</BButton>
<BButton
size="sm"
variant="secondary"
:title="`Delete this ${editableName}.`"
@click="$emit('delete', modelValue)"
>
<i-mdi-delete />
</b-button>
</BButton>
</template>
<b-button
<BButton
v-if="allowAdd && mode === EditState.None"
size="sm"
:title="`Add new ${editableName}.`"
variant="primary"
@click="addNewClick"
><i-mdi-plus-box-outline />
</b-button>
</BButton>
<template v-if="mode !== EditState.None">
<b-button
<BButton
size="sm"
:title="`Add new ${editableName}`"
variant="primary"
@click="saveNewName"
>
<i-mdi-check />
</b-button>
<b-button size="sm" title="Abort" variant="secondary" @click="abort">
</BButton>
<BButton size="sm" title="Abort" variant="secondary" @click="abort">
<i-mdi-close />
</b-button>
</BButton>
</template>
</div>
</form>

View File

@ -1,5 +1,5 @@
<template>
<b-modal
<BModal
id="MsgBoxModal"
ref="removeTradeModal"
v-model="showRef"
@ -10,7 +10,7 @@
@keyup.enter="msgBoxOK"
>
{{ message }}
</b-modal>
</BModal>
</template>
<script setup lang="ts">

View File

@ -1,6 +1,6 @@
<template>
<header>
<b-navbar toggleable="sm" dark variant="primary">
<BNavbar toggleable="sm" dark variant="primary">
<RouterLink class="navbar-brand" exact to="/">
<img class="logo" src="@/assets/freqtrade-logo.png" alt="Home Logo" />
<span class="navbar-brand-title d-sm-none d-md-inline">Freqtrade UI</span>
@ -8,28 +8,28 @@
<!-- TODO: For XS breakpoint, this should be here... -->
<!-- <ReloadControl class="me-3" /> -->
<b-navbar-toggle target="nav-collapse"></b-navbar-toggle>
<BNavbarToggle target="nav-collapse"></BNavbarToggle>
<b-collapse id="nav-collapse" class="text-center" is-nav>
<b-navbar-nav>
<b-nav-item v-if="!botStore.canRunBacktest" to="/trade">Trade</b-nav-item>
<b-nav-item v-if="!botStore.canRunBacktest" to="/dashboard">Dashboard</b-nav-item>
<b-nav-item to="/graph">Chart</b-nav-item>
<b-nav-item to="/logs">Logs</b-nav-item>
<b-nav-item v-if="botStore.canRunBacktest" to="/backtest">Backtest</b-nav-item>
<b-nav-item
<BCollapse id="nav-collapse" class="text-center" is-nav>
<BNavbarNav>
<BNavItem v-if="!botStore.canRunBacktest" to="/trade">Trade</BNavItem>
<BNavItem v-if="!botStore.canRunBacktest" to="/dashboard">Dashboard</BNavItem>
<BNavItem to="/graph">Chart</BNavItem>
<BNavItem to="/logs">Logs</BNavItem>
<BNavItem v-if="botStore.canRunBacktest" to="/backtest">Backtest</BNavItem>
<BNavItem
v-if="
(botStore.activeBot?.isWebserverMode ?? false) &&
botStore.activeBot.botApiVersion >= 2.3
"
to="/pairlist_config"
>Pairlist Config</b-nav-item
>Pairlist Config</BNavItem
>
<ThemeSelect />
</b-navbar-nav>
</BNavbarNav>
<!-- Right aligned nav items -->
<b-navbar-nav class="ms-auto" menu-class="w-100">
<BNavbarNav class="ms-auto" menu-class="w-100">
<!-- TODO This should show outside of the dropdown in XS mode -->
<div
v-if="!settingsStore.confirmDialog"
@ -41,7 +41,7 @@
<i-mdi-alert />
</div>
<div class="d-flex justify-content-between">
<b-dropdown
<BDropdown
v-if="botStore.botCount > 1"
size="sm"
class="m-1"
@ -54,47 +54,47 @@
<BotEntry :bot="botStore.selectedBotObj" :no-buttons="true" />
</template>
<BotList :small="true" />
</b-dropdown>
</BDropdown>
<ReloadControl class="me-3" title="Confirm Dialog deactivated." />
</div>
<li
class="d-none d-sm-flex flex-sm-wrap flex-lg-nowrap align-items-center nav-item text-secondary me-2"
>
<b-nav-text class="verticalCenter small me-2">
<BNavText class="verticalCenter small me-2">
{{
(botStore.activeBotorUndefined && botStore.activeBotorUndefined.botName) ||
'No bot selected'
}}
</b-nav-text>
<b-nav-text v-if="botStore.botCount === 1" class="verticalCenter">
</BNavText>
<BNavText v-if="botStore.botCount === 1" class="verticalCenter">
{{
botStore.activeBotorUndefined && botStore.activeBotorUndefined.isBotOnline
? 'Online'
: 'Offline'
}}
</b-nav-text>
</BNavText>
</li>
<li v-if="botStore.hasBots" class="nav-item">
<!-- Hide dropdown on xs, instead show below -->
<b-nav-item-dropdown id="avatar-drop" right auto-close class="d-none d-sm-block">
<BNavItemDropdown id="avatar-drop" right auto-close class="d-none d-sm-block">
<template #button-content>
<b-avatar size="2em" button>FT</b-avatar>
<BAvatar size="2em" button>FT</BAvatar>
</template>
<span class="ps-3">V: {{ settingsStore.uiVersion }}</span>
<!-- Link active-class to non-existant class to avoid it getting the "light" active color -->
<b-dropdown-item active-class="non-existant" to="/settings">Settings</b-dropdown-item>
<BDropdownItem active-class="non-existant" to="/settings">Settings</BDropdownItem>
<div class="ps-3">
<b-form-checkbox v-model="layoutStore.layoutLocked">Lock layout</b-form-checkbox>
<BFormCheckbox v-model="layoutStore.layoutLocked">Lock layout</BFormCheckbox>
</div>
<b-dropdown-item @click="resetDynamicLayout">Reset Layout</b-dropdown-item>
<BDropdownItem @click="resetDynamicLayout">Reset Layout</BDropdownItem>
<template v-if="botStore.botCount === 1">
<BDropdownDivider />
<b-dropdown-item active-class="non-existant" @click="clickLogout()">
<BDropdownItem active-class="non-existant" @click="clickLogout()">
<i-mdi-logout class="me-1" />
Sign Out
</b-dropdown-item>
</BDropdownItem>
</template>
</b-nav-item-dropdown>
</BNavItemDropdown>
<div class="d-block d-sm-none">
<!-- Visible only on XS -->
<!-- <li class="nav-item text-secondary ms-2 d-sm-none d-flex justify-content-between">
@ -107,15 +107,15 @@
</b-nav-text>
</div>
</li> -->
<b-nav-item class="py-0" to="/settings" title="Settings">
<BNavItem class="py-0" to="/settings" title="Settings">
Settings <i-mdi-cog class="ms-auto" />
</b-nav-item>
<b-nav-item
</BNavItem>
<BNavItem
v-if="botStore.botCount === 1"
class="nav-link navbar-nav"
to="/"
@click="clickLogout()"
>Sign Out</b-nav-item
>Sign Out</BNavItem
>
</div>
</li>
@ -123,9 +123,9 @@
<!-- should open Modal window! -->
<LoginModal v-if="route?.path !== '/login'" />
</li>
</b-navbar-nav>
</b-collapse>
</b-navbar>
</BNavbarNav>
</BCollapse>
</BNavbar>
</header>
</template>

View File

@ -10,7 +10,7 @@
<div
class="mx-md-5 d-flex flex-wrap justify-content-md-center justify-content-between mb-4 gap-2"
>
<b-form-radio
<BFormRadio
v-if="botStore.activeBot.botApiVersion >= 2.15"
v-model="btFormMode"
name="bt-form-radios"
@ -18,18 +18,18 @@
class="mx-1 flex-samesize-items"
value="historicResults"
:disabled="!botStore.activeBot.canRunBacktest"
><i-mdi-cloud-download class="me-2" />Load Results</b-form-radio
><i-mdi-cloud-download class="me-2" />Load Results</BFormRadio
>
<b-form-radio
<BFormRadio
v-model="btFormMode"
name="bt-form-radios"
button
class="mx-1 flex-samesize-items"
value="run"
:disabled="!botStore.activeBot.canRunBacktest"
><i-mdi-run-fast class="me-2" />Run backtest</b-form-radio
><i-mdi-run-fast class="me-2" />Run backtest</BFormRadio
>
<b-form-radio
<BFormRadio
id="bt-analyze-btn"
v-model="btFormMode"
name="bt-form-radios"
@ -37,9 +37,9 @@
class="mx-1 flex-samesize-items"
value="results"
:disabled="!hasBacktestResult"
><i-mdi-table-eye class="me-2" />Analyze result</b-form-radio
><i-mdi-table-eye class="me-2" />Analyze result</BFormRadio
>
<b-form-radio
<BFormRadio
v-if="hasMultiBacktestResult"
v-model="btFormMode"
name="bt-form-radios"
@ -47,25 +47,25 @@
class="mx-1 flex-samesize-items"
value="compare-results"
:disabled="!hasMultiBacktestResult"
><i-mdi-compare-horizontal class="me-2" />Compare results</b-form-radio
><i-mdi-compare-horizontal class="me-2" />Compare results</BFormRadio
>
<b-form-radio
<BFormRadio
v-model="btFormMode"
name="bt-form-radios"
button
class="mx-1 flex-samesize-items"
value="visualize-summary"
:disabled="!hasBacktestResult"
><i-mdi-chart-bell-curve-cumulative class="me-2" />Visualize summary</b-form-radio
><i-mdi-chart-bell-curve-cumulative class="me-2" />Visualize summary</BFormRadio
>
<b-form-radio
<BFormRadio
v-model="btFormMode"
name="bt-form-radios"
button
class="mx-1 flex-samesize-items"
value="visualize"
:disabled="!hasBacktestResult"
><i-mdi-chart-timeline-variant-shimmer class="me-2" />Visualize result</b-form-radio
><i-mdi-chart-timeline-variant-shimmer class="me-2" />Visualize result</BFormRadio
>
</div>
<small v-show="botStore.activeBot.backtestRunning" class="text-end bt-running-label"
@ -83,7 +83,7 @@
class="sticky-top sticky-offset me-3 d-flex flex-column absolute"
style="max-height: calc(100vh - 60px)"
>
<b-button
<BButton
class="align-self-start"
aria-label="Close"
size="sm"
@ -92,7 +92,7 @@
>
<i-mdi-chevron-right v-if="!showLeftBar" width="24" height="24" />
<i-mdi-chevron-left v-if="showLeftBar" width="24" height="24" />
</b-button>
</BButton>
<Transition name="fade">
<BacktestResultSelect
v-if="showLeftBar"

View File

@ -1,8 +1,8 @@
<template>
<div class="container">
<b-card header="Freqtrade bot Login">
<BCard header="Freqtrade bot Login">
<BotLogin ref="loginForm" />
</b-card>
</BCard>
</div>
</template>

View File

@ -26,11 +26,11 @@
v-if="botStore.activeBot.detailTradeId && botStore.activeBot.tradeDetail"
class="d-flex flex-column"
>
<b-button
<BButton
size="sm"
class="align-self-start my-1 ms-1"
@click="botStore.activeBot.setDetailTrade(null)"
><i-mdi-arrow-left /> Back</b-button
><i-mdi-arrow-left /> Back</BButton
>
<TradeDetail
:trade="botStore.activeBot.tradeDetail"

View File

@ -1,83 +1,78 @@
<template>
<div class="container mt-3">
<b-card header="FreqUI Settings">
<BCard header="FreqUI Settings">
<div class="text-start d-flex flex-column gap-2">
<p>UI Version: {{ settingsStore.uiVersion }}</p>
<div class="d-flex flex-column border rounded p-2 mb-2 gap-2">
<h4>UI settings</h4>
<b-form-group
<BFormGroup
description="Lock dynamic layouts, so they cannot move anymore. Can also be set from the navbar at the top."
>
<b-form-checkbox v-model="layoutStore.layoutLocked">Lock layout</b-form-checkbox>
</b-form-group>
<b-form-group description="Reset dynamic layouts to how they were.">
<b-button size="sm" class="me-1" @click="resetDynamicLayout">Reset layout</b-button>
</b-form-group>
<b-form-group
<BFormCheckbox v-model="layoutStore.layoutLocked">Lock layout</BFormCheckbox>
</BFormGroup>
<BFormGroup description="Reset dynamic layouts to how they were.">
<BButton size="sm" class="me-1" @click="resetDynamicLayout">Reset layout</BButton>
</BFormGroup>
<BFormGroup
label="Show open trades in header"
description="Decide if open trades should be visualized"
>
<b-form-select
<BFormSelect
v-model="settingsStore.openTradesInTitle"
:options="openTradesOptions"
></b-form-select>
</b-form-group>
<b-form-group
></BFormSelect>
</BFormGroup>
<BFormGroup
label="UTC Timezone"
description="Select timezone (we recommend UTC is recommended as exchanges usually work in UTC)"
>
<b-form-select
v-model="settingsStore.timezone"
:options="timezoneOptions"
></b-form-select>
</b-form-group>
<b-form-group description="Keep background sync running while other bots are selected.">
<b-form-checkbox v-model="settingsStore.backgroundSync"
>Background sync</b-form-checkbox
<BFormSelect v-model="settingsStore.timezone" :options="timezoneOptions"></BFormSelect>
</BFormGroup>
<BFormGroup description="Keep background sync running while other bots are selected.">
<BFormCheckbox v-model="settingsStore.backgroundSync">Background sync</BFormCheckbox>
</BFormGroup>
<BFormGroup description="Use confirmation dialogs when force-exiting a trade.">
<BFormCheckbox v-model="settingsStore.confirmDialog"
>Show Confirm Dialog for Trade Exits</BFormCheckbox
>
</b-form-group>
<b-form-group description="Use confirmation dialogs when force-exiting a trade.">
<b-form-checkbox v-model="settingsStore.confirmDialog"
>Show Confirm Dialog for Trade Exits</b-form-checkbox
>
</b-form-group>
</BFormGroup>
</div>
<div class="d-flex flex-column border rounded p-2 mb-2 gap-2">
<h4>Chart settings</h4>
<b-form-group
<BFormGroup
description="Chart scale Side (Should the scale be displayed on the right or left?)"
>
<b-form-radio-group
<BFormRadioGroup
v-model="settingsStore.chartLabelSide"
name="chart-preference-options"
:options="[
{ value: 'left', text: 'Left' },
{ value: 'right', text: 'Right' },
]"
></b-form-radio-group>
</b-form-group>
></BFormRadioGroup>
</BFormGroup>
<b-form-group description="Use Heikin Ashi candles in your charts">
<b-form-checkbox v-model="settingsStore.useHeikinAshiCandles"
>Use Heikin Ashi candles.</b-form-checkbox
<BFormGroup description="Use Heikin Ashi candles in your charts">
<BFormCheckbox v-model="settingsStore.useHeikinAshiCandles"
>Use Heikin Ashi candles.</BFormCheckbox
>
</b-form-group>
<b-form-group
</BFormGroup>
<BFormGroup
description="Can reduce the transfer size for large dataframes. May require additional calls if the plot config changes."
>
<b-form-checkbox v-model="settingsStore.useReducedPairCalls"
>Only request necessary columns (recommended to be checked).</b-form-checkbox
<BFormCheckbox v-model="settingsStore.useReducedPairCalls"
>Only request necessary columns (recommended to be checked).</BFormCheckbox
>
</b-form-group>
<b-form-group description="Candle Color Preference">
<b-form-radio-group
</BFormGroup>
<BFormGroup description="Candle Color Preference">
<BFormRadioGroup
id="settings-color-preference-radio-group"
v-model="colorStore.colorPreference"
name="color-preference-options"
@change="colorStore.updateProfitLossColor"
>
<b-form-radio
<BFormRadio
v-for="option in colorPreferenceOptions"
:key="option.value"
:value="option.value"
@ -101,29 +96,29 @@
class="color-candle-arrows"
/>
</div>
</b-form-radio>
</b-form-radio-group>
</b-form-group>
</BFormRadio>
</BFormRadioGroup>
</BFormGroup>
</div>
<div class="d-flex flex-column border rounded p-2 mb-2 gap-2">
<b-form-group description="Notifications">
<BFormGroup description="Notifications">
<h4>Notification Settings</h4>
<b-form-checkbox v-model="settingsStore.notifications[FtWsMessageTypes.entryFill]"
>Entry notifications</b-form-checkbox
<BFormCheckbox v-model="settingsStore.notifications[FtWsMessageTypes.entryFill]"
>Entry notifications</BFormCheckbox
>
<b-form-checkbox v-model="settingsStore.notifications[FtWsMessageTypes.exitFill]"
>Exit notifications</b-form-checkbox
<BFormCheckbox v-model="settingsStore.notifications[FtWsMessageTypes.exitFill]"
>Exit notifications</BFormCheckbox
>
<b-form-checkbox v-model="settingsStore.notifications[FtWsMessageTypes.entryCancel]"
>Entry Cancel notifications</b-form-checkbox
<BFormCheckbox v-model="settingsStore.notifications[FtWsMessageTypes.entryCancel]"
>Entry Cancel notifications</BFormCheckbox
>
<b-form-checkbox v-model="settingsStore.notifications[FtWsMessageTypes.exitCancel]"
>Exit Cancel notifications</b-form-checkbox
<BFormCheckbox v-model="settingsStore.notifications[FtWsMessageTypes.exitCancel]"
>Exit Cancel notifications</BFormCheckbox
>
</b-form-group>
</BFormGroup>
</div>
</div>
</b-card>
</BCard>
</div>
</template>

View File

@ -28,34 +28,34 @@
<div class="mt-1 d-flex justify-content-center">
<BotControls class="mt-1 mb-2" />
</div>
<b-tabs content-class="mt-3" class="mt-1">
<b-tab title="Pairs combined" active>
<BTabs content-class="mt-3" class="mt-1">
<BTab title="Pairs combined" active>
<PairSummary
:pairlist="botStore.activeBot.whitelist"
:current-locks="botStore.activeBot.activeLocks"
:trades="botStore.activeBot.openTrades"
/>
</b-tab>
<b-tab title="General">
</BTab>
<BTab title="General">
<BotStatus />
</b-tab>
<b-tab title="Performance" lazy>
</BTab>
<BTab title="Performance" lazy>
<BotPerformance />
</b-tab>
<b-tab title="Balance" lazy>
</BTab>
<BTab title="Balance" lazy>
<BotBalance />
</b-tab>
<b-tab title="Time Breakdown" lazy>
</BTab>
<BTab title="Time Breakdown" lazy>
<PeriodBreakdown />
</b-tab>
</BTab>
<b-tab title="Pairlist" lazy>
<BTab title="Pairlist" lazy>
<PairListLive />
</b-tab>
<b-tab title="Pair Locks" lazy>
</BTab>
<BTab title="Pair Locks" lazy>
<PairLockList />
</b-tab>
</b-tabs>
</BTab>
</BTabs>
</DraggableContainer>
</GridItem>
<GridItem