summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-06-17 17:40:45 +0200
committerChristian Grothoff <christian@grothoff.org>2021-06-17 17:40:45 +0200
commit24491ab272fe82ed706e92cace9d6eb43e18aee6 (patch)
tree2ddb31feda2773ce9f355ad47b79f40df2b5d940
parentb93d3e3ac9dfa9b3e7459b980eda68fd8d0f8a04 (diff)
downloadmerchant-backoffice-24491ab272fe82ed706e92cace9d6eb43e18aee6.tar.gz
merchant-backoffice-24491ab272fe82ed706e92cace9d6eb43e18aee6.tar.bz2
merchant-backoffice-24491ab272fe82ed706e92cace9d6eb43e18aee6.zip
going over many help texts of the SPA. Fixes #6894.
-rw-r--r--packages/frontend/src/components/form/InputTaxes.tsx15
-rw-r--r--packages/frontend/src/components/notifications/CreatedSuccessfully.tsx5
-rw-r--r--packages/frontend/src/components/product/ProductForm.tsx18
-rw-r--r--packages/frontend/src/paths/instance/orders/create/CreatePage.tsx65
-rw-r--r--packages/frontend/src/paths/instance/orders/create/InventoryProductForm.tsx6
-rw-r--r--packages/frontend/src/paths/instance/orders/create/NonInventoryProductForm.tsx2
-rw-r--r--packages/frontend/src/paths/instance/orders/list/Table.tsx2
-rw-r--r--packages/frontend/src/paths/instance/orders/list/index.tsx12
-rw-r--r--packages/frontend/src/paths/instance/products/list/Table.tsx2
-rw-r--r--packages/frontend/src/paths/instance/reserves/create/CreatePage.tsx4
-rw-r--r--packages/frontend/src/paths/instance/reserves/create/CreatedSuccessfully.tsx23
-rw-r--r--packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx11
-rw-r--r--packages/frontend/src/paths/instance/transfers/list/index.tsx7
13 files changed, 78 insertions, 94 deletions
diff --git a/packages/frontend/src/components/form/InputTaxes.tsx b/packages/frontend/src/components/form/InputTaxes.tsx
index 91bbf85..9c04397 100644
--- a/packages/frontend/src/components/form/InputTaxes.tsx
+++ b/packages/frontend/src/components/form/InputTaxes.tsx
@@ -59,7 +59,7 @@ export function InputTaxes<T>({ name, readonly, label }: Props<keyof T>): VNode
//FIXME: translating plural singular
return (
- <InputGroup name="tax" label={label} alternative={taxes.length > 0 && <p>this product has {taxes.length} taxes</p>}>
+ <InputGroup name="tax" label={label} alternative={taxes.length > 0 && <p>This product has {taxes.length} applicable taxes configured.</p>}>
<FormProvider<Entity> name="tax" errors={errors} object={value} valueHandler={valueHandler} >
<div class="field is-horizontal">
@@ -73,24 +73,23 @@ export function InputTaxes<T>({ name, readonly, label }: Props<keyof T>): VNode
}} />
</div>
)}
- {!taxes.length && i18n`this product has no taxes`}
+ {!taxes.length && i18n`No taxes configured for this product.`}
</div>
</div>
- <Input<Entity> name="tax" label={i18n`Amount`}>
- <Translate>currency and value separated with colon</Translate> <b>USD:2.3</b>
+ <Input<Entity> name="tax" label={i18n`Amount`} tooltip={i18n`Taxes can be in currencies that differ from the main currency used by the merchant.`}>
+ <Translate>Enter currency and value separated with a colon, e.g. "USD:2.3".</Translate>
</Input>
- <Input<Entity> name="name" label={i18n`Description`} />
+ <Input<Entity> name="name" label={i18n`Description`} tooltip={i18n`Legal name of the tax, e.g. VAT or import duties.`} />
<div class="buttons is-right mt-5">
- <button class="button is-info"
+ <button class="button is-info"
data-tooltip={i18n`add tax to the tax list`}
- disabled={hasErrors}
+ disabled={hasErrors}
onClick={submit}><Translate>Add</Translate></button>
</div>
</FormProvider>
</InputGroup>
)
}
-
diff --git a/packages/frontend/src/components/notifications/CreatedSuccessfully.tsx b/packages/frontend/src/components/notifications/CreatedSuccessfully.tsx
index 5f10e4b..e0b355c 100644
--- a/packages/frontend/src/components/notifications/CreatedSuccessfully.tsx
+++ b/packages/frontend/src/components/notifications/CreatedSuccessfully.tsx
@@ -32,8 +32,8 @@ export function CreatedSuccessfully({ children, onConfirm, onCreateAnother }: Pr
<div class="card">
<header class="card-header has-background-success">
<p class="card-header-title has-text-white-ter">
- Created successfully
- </p>
+ Success.
+ </p>
</header>
<div class="card-content">
{children}
@@ -47,4 +47,3 @@ export function CreatedSuccessfully({ children, onConfirm, onCreateAnother }: Pr
<div class="column" />
</div>
}
-
diff --git a/packages/frontend/src/components/product/ProductForm.tsx b/packages/frontend/src/components/product/ProductForm.tsx
index f6d52a7..09b5744 100644
--- a/packages/frontend/src/components/product/ProductForm.tsx
+++ b/packages/frontend/src/components/product/ProductForm.tsx
@@ -95,17 +95,13 @@ export function ProductForm({ onSubscribe, initial, alreadyExist, }: Props) {
return <div>
<FormProvider<Entity> name="product" errors={errors} object={value} valueHandler={valueHandler} >
- {alreadyExist ? undefined : <InputWithAddon<Entity> name="product_id" addonBefore={`${backend.url}/product/`} label={i18n`ID`} tooltip={i18n`display name identification`} />}
-
- <InputImage<Entity> name="image" label={i18n`Image`} tooltip={i18n`photo of the product`} />
- <Input<Entity> name="description" inputType="multiline" label={i18n`Description`} tooltip={i18n`full-length description`} />
- <Input<Entity> name="unit" label={i18n`Unit`} tooltip={i18n`name of the product unit`} />
- <InputCurrency<Entity> name="price" label={i18n`Price`} tooltip={i18n`amount in the current currency`} />
-
- <InputStock name="stock" label={i18n`Stock`} alreadyExist={alreadyExist} tooltip={i18n`stock of the product can be managed or infinite`} />
-
- <InputTaxes<Entity> name="taxes" label={i18n`Taxes`} tooltip={i18n`taxes for this product`} />
-
+ {alreadyExist ? undefined : <InputWithAddon<Entity> name="product_id" addonBefore={`${backend.url}/product/`} label={i18n`ID`} tooltip={i18n`product identification to use in URLs (for internal use only)`} />}
+ <InputImage<Entity> name="image" label={i18n`Image`} tooltip={i18n`illustration of the product for customers`} />
+ <Input<Entity> name="description" inputType="multiline" label={i18n`Description`} tooltip={i18n`product description for customers`} />
+ <Input<Entity> name="unit" label={i18n`Unit`} tooltip={i18n`unit describing quantity of product sold (e.g. 2 kilograms, 5 liters, 3 items, 5 meters) for customers`} />
+ <InputCurrency<Entity> name="price" label={i18n`Price`} tooltip={i18n`sale price for customers, including taxes, for above units of the product`} />
+ <InputStock name="stock" label={i18n`Stock`} alreadyExist={alreadyExist} tooltip={i18n`product inventory for products with finite supply (for internal use only)`} />
+ <InputTaxes<Entity> name="taxes" label={i18n`Taxes`} tooltip={i18n`taxes included in the product price, exposed to customers`} />
</FormProvider>
</div>
}
diff --git a/packages/frontend/src/paths/instance/orders/create/CreatePage.tsx b/packages/frontend/src/paths/instance/orders/create/CreatePage.tsx
index 8cf73a7..ecc2f0a 100644
--- a/packages/frontend/src/paths/instance/orders/create/CreatePage.tsx
+++ b/packages/frontend/src/paths/instance/orders/create/CreatePage.tsx
@@ -52,8 +52,8 @@ interface InstanceConfig {
}
function with_defaults(config: InstanceConfig): Partial<Entity> {
- const defaultPayDeadline = !config.default_pay_delay || config.default_pay_delay.d_ms === "forever" ?
- undefined :
+ const defaultPayDeadline = !config.default_pay_delay || config.default_pay_delay.d_ms === "forever" ?
+ undefined :
add(new Date(), { seconds: config.default_pay_delay.d_ms / 1000 })
return {
@@ -222,13 +222,14 @@ export function CreatePage({ onCreate, onBack, instanceConfig, instanceInventory
<div class="column" />
<div class="column is-four-fifths">
- <InputGroup name="inventory_products" label={i18n`Inventory products`} alternative={
- inventoryList.length > 0 && <p>
- {inventoryList.length} products,
- in {inventoryList.reduce((prev, cur) => cur.quantity + prev, 0)} units,
- with a total price of {totalPriceInventory}
+ <InputGroup name="inventory_products" label={i18n`Manage products from inventory in order`} alternative={
+ inventoryList.length > 0 &&
+ // FIXME: translating plural singular
+ <p>
+ {inventoryList.length} products
+ with a total price of {totalPriceInventory}.
</p>
- } tooltip={i18n`Add products from managed inventory to the order.`}>
+ } tooltip={i18n`Manage list of products from managed inventory included in the order.`}>
<InventoryProductForm
currentProducts={value.inventoryProducts || {}}
onAddProduct={addProductToTheInventoryList}
@@ -238,21 +239,21 @@ export function CreatePage({ onCreate, onBack, instanceConfig, instanceInventory
{inventoryList.length > 0 &&
<ProductList list={inventoryList.map(asProduct)}
actions={[{
- name: i18n`Remove`,
- tooltip: i18n`remove this product from the list`,
+ name: i18n`Remove`,
+ tooltip: i18n`Remove this product from the order.`,
handler: (e) => removeProductFromTheInventoryList(e.product_id!)
}]}
/>
}
</InputGroup>
- <InputGroup name="products" label={i18n`Products`} alternative={
+ <InputGroup name="products" label={i18n`Manage products outside of inventory in order`} alternative={
productList.length > 0 && <p>
- {productList.length} products,
- in {productList.reduce((prev, cur) => cur.quantity + prev, 0)} units,
- with a total price of {totalPriceProducts}
+ // FIXME: translating plural singular
+ {productList.length} products
+ with a total price of {totalPriceProducts}.
</p>
- } tooltip={i18n`Add products without inventory management to the order.`}>
+ } tooltip={i18n`Manage list of products without inventory management included in the order.`}>
<NonInventoryProductFrom productToEdit={editingProduct} onAddProduct={(p) => {
setEditingProduct(undefined)
return addNewProduct(p)
@@ -261,8 +262,8 @@ export function CreatePage({ onCreate, onBack, instanceConfig, instanceInventory
{productList.length > 0 &&
<ProductList list={productList}
actions={[{
- name: i18n`Remove`,
- tooltip: i18n`remove this product from the list to be edited or discarded`,
+ name: i18n`Remove`,
+ tooltip: i18n`Remove this product from the order.`,
handler: (e, index) => {
removeFromNewProduct(index);
setEditingProduct(e);
@@ -278,37 +279,37 @@ export function CreatePage({ onCreate, onBack, instanceConfig, instanceInventory
<Fragment>
<InputCurrency name="pricing.products_price" label={i18n`Total price`} readonly tooltip={i18n`total product price added up`} />
<InputCurrency name="pricing.order_price"
- label={i18n`Order price`}
+ label={i18n`Total price`}
addonAfter={value.pricing?.order_price !== totalPrice && (discountOrRise < 1 ?
`discount of %${Math.round((1 - discountOrRise) * 100)}` :
`rise of %${Math.round((discountOrRise - 1) * 100)}`)
}
- tooltip={i18n`final order price`}
+ tooltip={i18n`Amount to be paid by the customer`}
/>
</Fragment> :
<InputCurrency name="pricing.order_price" label={i18n`Order price`} tooltip={i18n`final order price`} />
}
- <Input name="pricing.summary" inputType="multiline" label={i18n`Summary`} tooltip={i18n`description of what is being sold`} />
+ <Input name="pricing.summary" inputType="multiline" label={i18n`Summary`} tooltip={i18n`Title of the order to be shown to the customer`} />
- <InputGroup name="payments" label={i18n`Payment options`} tooltip={i18n`override default payment configuration for this order`}>
- <InputDate name="payments.auto_refund_deadline" label={i18n`Auto-refund deadline`} tooltip={i18n`time until the order will be refunded automatically`} />
- <InputDate name="payments.refund_deadline" label={i18n`Refund deadline`} tooltip={i18n`time until the order can be refunded`} />
- <InputDate name="payments.pay_deadline" label={i18n`Payment deadline`} tooltip={i18n`time until the order can be paid`} />
+ <InputGroup name="payments" label={i18n`Taler payment options`} tooltip={i18n`Override default Taler payment settings for this order`}>
+ <InputDate name="payments.auto_refund_deadline" label={i18n`Auto-refund deadline`} tooltip={i18n`Time until which the wallet will automatically check for refunds without user interaction.`} />
+ <InputDate name="payments.refund_deadline" label={i18n`Refund deadline`} tooltip={i18n`Time until which the order can be refunded by the merchant.`} />
+ <InputDate name="payments.pay_deadline" label={i18n`Payment deadline`} tooltip={i18n`Deadline for the customer to pay for the offer before it expires. Inventory products will be reserved until this deadline.`} />
- <InputDate name="payments.delivery_date" label={i18n`Delivery date`} tooltip={i18n`when the order will be delivered, if delivery required`} />
- {value.payments?.delivery_date && <InputGroup name="payments.delivery_location" label={i18n`Location`} tooltip={i18n`where the order will be delivered`} >
+ <InputDate name="payments.delivery_date" label={i18n`Delivery date`} tooltip={i18n`Deadline for physical delivery assured by the merchant.`} />
+ {value.payments?.delivery_date && <InputGroup name="payments.delivery_location" label={i18n`Location`} tooltip={i18n`address where the products will be delivered`} >
<InputLocation name="payments.delivery_location" />
</InputGroup>}
- <InputCurrency name="payments.max_fee" label={i18n`Max fee`} />
- <InputCurrency name="payments.max_wire_fee" label={i18n`Max wire fee`} />
- <Input name="payments.wire_fee_amortization" label={i18n`Wire fee amortization`} />
- <Input name="payments.fullfilment_url" label={i18n`Fulfillment URL`} tooltip={i18n`where the user will be redirected after payment`} />
+ <InputCurrency name="payments.max_fee" label={i18n`Maximum deposit fee`} tooltip={i18n`Maximum deposit fees the merchant is willing to cover for this order. Higher deposit fees must be covered in full by the consumer.`} />
+ <InputCurrency name="payments.max_wire_fee" label={i18n`Maximum wire fee`} tooltip={i18n`Maximum aggregate wire fees the merchant is willing to cover for this order. Wire fees exceeding this amount are to be covered by the customers.`}/>
+ <Input name="payments.wire_fee_amortization" label={i18n`Wire fee amortization`} tooltip={i18n`Factor by which wire fees exceeding the above threshold are divided to determine the share of excess wire fees to be paid explicitly by the consumer.`}/>
+ <Input name="payments.fullfilment_url" label={i18n`Fulfillment URL`} tooltip={i18n`URL to which the user will be redirected after successful payment.`} />
</InputGroup>
- <InputGroup name="extra" label={i18n`Extra information`} tooltip={i18n`more information for this order`}>
- <Input name="extra" inputType="multiline" label={`JSON value`} />
+ <InputGroup name="extra" label={i18n`Additional information`} tooltip={i18n`Custom information to be included in the contract for this order.`}>
+ <Input name="extra" inputType="multiline" label={`Value`} tooltip={i18n`You must enter a value in JavaScript Object Notation (JSON).`} />
</InputGroup>
</FormProvider>
diff --git a/packages/frontend/src/paths/instance/orders/create/InventoryProductForm.tsx b/packages/frontend/src/paths/instance/orders/create/InventoryProductForm.tsx
index 0fc5338..dde4505 100644
--- a/packages/frontend/src/paths/instance/orders/create/InventoryProductForm.tsx
+++ b/packages/frontend/src/paths/instance/orders/create/InventoryProductForm.tsx
@@ -58,13 +58,15 @@ export function InventoryProductForm({ currentProducts, onAddProduct, inventory
const p = currentProducts[state.product.id]
if (p) {
if (state.quantity + p.quantity > currentStock) {
- setErrors({ quantity: i18n`This quantity exceeds remaining stock. The current maximum value is ${currentStock - p.quantity}.` });
+ const left = currentStock - p.quantity;
+ setErrors({ quantity: i18n`This quantity exceeds remaining stock. Currently, only ${left} units remain unreserved in stock.` });
return;
}
onAddProduct(state.product, state.quantity + p.quantity)
} else {
if (state.quantity > currentStock) {
- setErrors({ quantity: i18n`This quantity exceeds remaining stock. The current maximum value is ${currentStock}.` });
+ const left = currentStock;
+ setErrors({ quantity: i18n`This quantity exceeds remaining stock. Currently, only ${left} units remain unreserved in stock.` });
return;
}
onAddProduct(state.product, state.quantity)
diff --git a/packages/frontend/src/paths/instance/orders/create/NonInventoryProductForm.tsx b/packages/frontend/src/paths/instance/orders/create/NonInventoryProductForm.tsx
index 47764ec..34e5213 100644
--- a/packages/frontend/src/paths/instance/orders/create/NonInventoryProductForm.tsx
+++ b/packages/frontend/src/paths/instance/orders/create/NonInventoryProductForm.tsx
@@ -67,7 +67,7 @@ export function NonInventoryProductFrom({ productToEdit, onAddProduct }: Props):
return <Fragment>
<div class="buttons">
- <button class="button is-success" onClick={() => setShowCreateProduct(true)} ><Translate>add new product</Translate></button>
+ <button class="button is-success" onClick={() => setShowCreateProduct(true)} ><Translate>add product</Translate></button>
</div>
{showCreateProduct && <div class="modal is-active">
<div class="modal-background " onClick={() => setShowCreateProduct(false)} />
diff --git a/packages/frontend/src/paths/instance/orders/list/Table.tsx b/packages/frontend/src/paths/instance/orders/list/Table.tsx
index 02a5428..ed8ee3a 100644
--- a/packages/frontend/src/paths/instance/orders/list/Table.tsx
+++ b/packages/frontend/src/paths/instance/orders/list/Table.tsx
@@ -60,7 +60,7 @@ export function CardTable({ orders, onCreate, onRefund, onCopyURL, onSelect, onL
<div class="card-header-icon" aria-label="more options" />
<div class="card-header-icon" aria-label="more options">
- <span class="has-tooltip-left" data-tooltip={i18n`add new order`}>
+ <span class="has-tooltip-left" data-tooltip={i18n`create order`}>
<button class="button is-info" type="button" onClick={onCreate}>
<span class="icon is-small" ><i class="mdi mdi-plus mdi-36px" /></span>
</button>
diff --git a/packages/frontend/src/paths/instance/orders/list/index.tsx b/packages/frontend/src/paths/instance/orders/list/index.tsx
index 34d156a..85ba58b 100644
--- a/packages/frontend/src/paths/instance/orders/list/index.tsx
+++ b/packages/frontend/src/paths/instance/orders/list/index.tsx
@@ -81,7 +81,7 @@ export default function ({ onUnauthorized, onLoadError, onCreate, onSelect, onNo
}
const i18n = useTranslator()
- const dateTooltip = i18n`jump to order closer to a given date`
+ const dateTooltip = i18n`select date to show nearby orders`
return <section class="section is-main-section">
<NotificationCard notification={notif} />
@@ -94,7 +94,7 @@ export default function ({ onUnauthorized, onLoadError, onCreate, onSelect, onNo
<input class={errorOrderId ? "input is-danger" : "input"} type="text" value={orderId} onChange={e => setOrderId(e.currentTarget.value)} placeholder={i18n`order id`} />
{errorOrderId && <p class="help is-danger">{errorOrderId}</p>}
</div>
- <span class="has-tooltip-bottom" data-tooltip={i18n`view order details`}>
+ <span class="has-tooltip-bottom" data-tooltip={i18n`jump to order with the given order ID`}>
<button class="button" onClick={testIfOrderExistAndSelect}>
<span class="icon"><i class="mdi mdi-arrow-right" /></span>
</button>
@@ -113,17 +113,17 @@ export default function ({ onUnauthorized, onLoadError, onCreate, onSelect, onNo
</div>
</li>
<li class={isPaidActive}>
- <div class="has-tooltip-right" data-tooltip={i18n`filter paid orders`}>
+ <div class="has-tooltip-right" data-tooltip={i18n`only show paid orders`}>
<a onClick={() => setFilter({ paid: 'yes' })}><Translate>Paid</Translate></a>
</div>
</li>
<li class={isRefundedActive}>
- <div class="has-tooltip-right" data-tooltip={i18n`filter refunded orders`}>
+ <div class="has-tooltip-right" data-tooltip={i18n`only show orders with refunds`}>
<a onClick={() => setFilter({ refunded: 'yes' })}><Translate>Refunded</Translate></a>
</div>
</li>
<li class={isNotWiredActive}>
- <div class="has-tooltip-left" data-tooltip={i18n`filter not yet wired orders`}>
+ <div class="has-tooltip-left" data-tooltip={i18n`only show orders where customers paid, but wire payments from payment provider are still pending`}>
<a onClick={() => setFilter({ wired: 'no' })}><Translate>Not wired</Translate></a>
</div>
</li>
@@ -135,7 +135,7 @@ export default function ({ onUnauthorized, onLoadError, onCreate, onSelect, onNo
<div class="field has-addons">
{filter.date && <div class="control">
<a class="button" onClick={() => { setFilter(prev => ({ ...prev, date: undefined })) }}>
- <span class="icon"><i class="mdi mdi-close" /></span>
+ <span class="icon" data-tooltip={i18n`clear date filter`}><i class="mdi mdi-close" /></span>
</a>
</div>}
<div class="control">
diff --git a/packages/frontend/src/paths/instance/products/list/Table.tsx b/packages/frontend/src/paths/instance/products/list/Table.tsx
index 1b4a7b3..391fb63 100644
--- a/packages/frontend/src/paths/instance/products/list/Table.tsx
+++ b/packages/frontend/src/paths/instance/products/list/Table.tsx
@@ -48,7 +48,7 @@ export function CardTable({ instances, onCreate, onSelect, onUpdate, onDelete }:
<header class="card-header">
<p class="card-header-title"><span class="icon"><i class="mdi mdi-shopping" /></span><Translate>Products</Translate></p>
<div class="card-header-icon" aria-label="more options">
- <span class="has-tooltip-left" data-tooltip={i18n`add new product`}>
+ <span class="has-tooltip-left" data-tooltip={i18n`add product to inventory`}>
<button class="button is-info" type="button" onClick={onCreate}>
<span class="icon is-small" ><i class="mdi mdi-plus mdi-36px" /></span>
</button>
diff --git a/packages/frontend/src/paths/instance/reserves/create/CreatePage.tsx b/packages/frontend/src/paths/instance/reserves/create/CreatePage.tsx
index ff7b334..05f5e06 100644
--- a/packages/frontend/src/paths/instance/reserves/create/CreatePage.tsx
+++ b/packages/frontend/src/paths/instance/reserves/create/CreatePage.tsx
@@ -143,12 +143,12 @@ export function CreatePage({ onCreate, onBack }: Props): VNode {
<ul>
<li class={currentStep === Steps.EXCHANGE ? "is-active" : ""}>
<a style={{ cursor: 'initial' }}>
- <span>Set exchange</span>
+ <span>Step 1: Specify exchange</span>
</a>
</li>
<li class={currentStep === Steps.WIRE_METHOD ? "is-active" : ""}>
<a style={{ cursor: 'initial' }}>
- <span>Set wire method</span>
+ <span>Step 2: Select wire method</span>
</a>
</li>
</ul>
diff --git a/packages/frontend/src/paths/instance/reserves/create/CreatedSuccessfully.tsx b/packages/frontend/src/paths/instance/reserves/create/CreatedSuccessfully.tsx
index d173d7b..d9b5e3a 100644
--- a/packages/frontend/src/paths/instance/reserves/create/CreatedSuccessfully.tsx
+++ b/packages/frontend/src/paths/instance/reserves/create/CreatedSuccessfully.tsx
@@ -31,18 +31,6 @@ export function CreatedSuccessfully({ entity, onConfirm, onCreateAnother }: Prop
return <Template onConfirm={onConfirm} onCreateAnother={onCreateAnother}>
<div class="field is-horizontal">
<div class="field-label is-normal">
- <label class="label">Exchange</label>
- </div>
- <div class="field-body is-flex-grow-3">
- <div class="field">
- <p class="control">
- <input readonly class="input" value={entity.request.exchange_url} />
- </p>
- </div>
- </div>
- </div>
- <div class="field is-horizontal">
- <div class="field-label is-normal">
<label class="label">Amount</label>
</div>
<div class="field-body is-flex-grow-3">
@@ -55,7 +43,7 @@ export function CreatedSuccessfully({ entity, onConfirm, onCreateAnother }: Prop
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
- <label class="label">Account address</label>
+ <label class="label">Exchange bank account</label>
</div>
<div class="field-body is-flex-grow-3">
<div class="field">
@@ -67,7 +55,7 @@ export function CreatedSuccessfully({ entity, onConfirm, onCreateAnother }: Prop
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
- <label class="label">Subject</label>
+ <label class="label">Wire transfer subject</label>
</div>
<div class="field-body is-flex-grow-3">
<div class="field">
@@ -77,11 +65,12 @@ export function CreatedSuccessfully({ entity, onConfirm, onCreateAnother }: Prop
</div>
</div>
</div>
- <p class="is-size-5"><Translate>Now you should transfer to the exchange into the account address indicated above and the transaction must carry the subject message.</Translate></p>
+ <p class="is-size-5"><Translate>To complete the setup of the reserve, you must now initiate a wire transfer using the given wire transfer subject and crediting the specified amount to the indicated account of the exchange.</Translate></p>
- <p class="is-size-5"><Translate>For example:</Translate></p>
+ <p class="is-size-5"><Translate>If your system supports RFC 8905, you can do this by opening this URI:</Translate></p>
<pre>
{entity.response.payto_uri}?message={entity.response.reserve_pub}&amount={entity.request.initial_balance}
</pre>
- </Template>;
+ </Template>; // FIXME: turn the payto_uri into a clickable link, and maybe also generate a QR code (maybe on the client-side --- we do this using qrious in the auditor.git already, easy, but not sure how to best include large JS dependency in the SPA for that ...)
+
}
diff --git a/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx b/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx
index cab3b9f..5c74326 100644
--- a/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx
+++ b/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx
@@ -78,17 +78,16 @@ export function CreatePage({ accounts, onCreate, onBack }: Props): VNode {
<div class="column is-four-fifths">
<FormProvider object={state} valueHandler={setState} errors={errors}>
- <Input<Entity> name="wtid" label={i18n`Transfer ID`} help="" tooltip={i18n`unique identifier of the wire transfer, usually 52 random characters long`} />
- <InputSelector name="payto_uri" label={i18n`Address`}
+ <InputSelector name="payto_uri" label={i18n`Credited bank account`}
values={accounts}
- placeholder={i18n`Select one account`}
- tooltip={i18n`filter by account address`}
+ tooltip={i18n`Bank account of the merchant where the payment was received`}
/>
+ <Input<Entity> name="wtid" label={i18n`Wire transfer ID`} help="" tooltip={i18n`unique identifier of the wire transfer used by the exchange, must be 52 characters long`} />
<Input<Entity> name="exchange_url"
label={i18n`Exchange URL`}
- tooltip={i18n`exchange that made the transfer`}
+ tooltip={i18n`Base URL of the exchange that made the transfer, should have been in the wire transfer subject`}
help="http://exchange.taler:8081/" />
- <InputCurrency<Entity> name="credit_amount" label={i18n`Amount`} tooltip={i18n`how much money transferred into the account`} />
+ <InputCurrency<Entity> name="credit_amount" label={i18n`Amount credited`} tooltip={i18n`Actual amount that was wired to the merchant's bank account`} />
</FormProvider>
diff --git a/packages/frontend/src/paths/instance/transfers/list/index.tsx b/packages/frontend/src/paths/instance/transfers/list/index.tsx
index 7ad5479..d8d2868 100644
--- a/packages/frontend/src/paths/instance/transfers/list/index.tsx
+++ b/packages/frontend/src/paths/instance/transfers/list/index.tsx
@@ -93,13 +93,13 @@ export default function ListTransfer({ onUnauthorized, onLoadError, onCreate, on
</div>
</li>
<li class={isVerifiedTransfers}>
- <div class="has-tooltip-right" data-tooltip={i18n`remove all filters`}>
+ <div class="has-tooltip-right" data-tooltip={i18n`only show wire transfers confirmed by the merchant`}>
<a onClick={() => setFilter('yes')}><Translate>Verified</Translate></a>
</div>
</li>
<li class={isNonVerifiedTransfers}>
- <div class="has-tooltip-right" data-tooltip={i18n`remove all filters`}>
- <a onClick={() => setFilter('no')}><Translate>Non Verified</Translate></a>
+ <div class="has-tooltip-right" data-tooltip={i18n`only show wire transfers claimed by the exchange`}>
+ <a onClick={() => setFilter('no')}><Translate>Unverified</Translate></a>
</div>
</li>
</ul>
@@ -136,4 +136,3 @@ function View({ transfers, onCreate, accounts, onLoadMoreBefore, onLoadMoreAfter
/>
}
-