Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

.select-control-logo {
display: block;
padding: calc(calc(var(--control-height) - var(--control-line-height)) / 2);
padding: calc(calc(calc(var(--control-height) - 2px) - var(--control-line-height)) / 2);
padding-left: 10px;
padding-right: 6px;
width: 40px;
Expand Down Expand Up @@ -83,15 +83,22 @@

.select-control-search-clear {
float: left;
width: 35px;
padding-right: 10px;
width: 30px;
text-align: right;
position: absolute;
right: 0;
top: 0;
right: 7px;
top: 9px;
bottom: 9px;
padding: 0;
display: flex;
justify-content: center;
align-items: center;

.mdi {
font-size: 20px;
line-height: 20px;
width: 20px;
height: 20px;
}

&[disabled],
Expand Down Expand Up @@ -239,6 +246,18 @@
}
}
}

.select-control-option-no-results {
font: 500 13px / 20px var(--base-font);
color: #646f79;

.select-control-option-value {
font-weight: 500;
font-size: 12px;
line-height: calc(var(--control-option-height) - 10px);
padding: 5px 15px;
}
}
}

.select-control-options-actions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,11 @@ export default function SelectControlOptionsOrganization<T>({

<div
className={'select-control-search-clear ' + (query ? '' : 'disabled')}
onClick={() => {
tabIndex={0}
onKeyDown={(e) => clickOnKeyEnter(e, true)}
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
setQuery('');
searchInputChanged();
}}>
Expand Down Expand Up @@ -160,6 +164,14 @@ export default function SelectControlOptionsOrganization<T>({
</div>
</div>
))}

{optionsFiltered.length === 0 && (
<div className="select-control-option-no-results">
<div className="select-control-option-value">
{translate('organizations.labels.no_results')}
</div>
</div>
)}
</div>

<div className="select-control-options-actions">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
import { ModalState } from '../../../modules/modals/context/ModalContext';
import { hasPermission } from '../../../helpers/utils';
import useFormBuilder from '../../../hooks/useFormBuilder';
Expand All @@ -18,6 +18,7 @@ import ModalVoucherTransactionPreview from './ModalVoucherTransactionPreview';
import Reimbursement from '../../../props/models/Reimbursement';
import useSetProgress from '../../../hooks/useSetProgress';
import useTranslate from '../../../hooks/useTranslate';
import InfoBox from '../../elements/info-box/InfoBox';

type ReimbursementLocale = Partial<Reimbursement & { id?: number; name: string }>;

Expand Down Expand Up @@ -453,25 +454,36 @@ export default function ModalVoucherTransaction({
<FormError error={form.errors?.note} />
</div>

<div className="form-group form-group-inline form-group-inline-md">
<div className="form-label" />
<div className="form-offset">
<label className="checkbox">
<input
type="checkbox"
checked={form.values.note_shared}
onChange={(e) => form.update({ note_shared: e.target.checked })}
/>
<div className="checkbox-label">
<div className="checkbox-box">
<div className="mdi mdi-check" />
</div>
{translate('modals.modal_voucher_transaction.labels.note_shared')}
{form.values.target === 'provider' && (
<Fragment>
<div className="form-group form-group-inline form-group-inline-md">
<div className="form-label" />
<div className="form-offset">
<label className="checkbox">
<input
type="checkbox"
checked={form.values.note_shared}
onChange={(e) => form.update({ note_shared: e.target.checked })}
/>
<div className="checkbox-label">
<div className="checkbox-box">
<div className="mdi mdi-check" />
</div>
{translate('modals.modal_voucher_transaction.labels.note_shared')}
</div>
</label>
</div>
</label>
</div>
<FormError error={form.errors?.note_shared} />
</div>
<FormError error={form.errors?.note_shared} />
</div>

<InfoBox iconPosition={'top'} type={'default'} iconColor={'primary'}>
<p>
Controleer de gegevens. Na het aanmaken kan de transactie niet worden
verwijderd.
</p>
</InfoBox>
</Fragment>
)}
</div>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import useConfirmBankConnectionDisable from './hooks/useConfirmBankConnectionDis
import useConfirmBankNewConnection from './hooks/useConfirmBankNewConnection';
import LoadingCard from '../../elements/loading-card/LoadingCard';
import EmptyCard from '../../elements/empty-card/EmptyCard';
import useConfigurableTable from '../vouchers/hooks/useConfigurableTable';
import TableTopScroller from '../../elements/tables/TableTopScroller';

export default function BankConnections() {
const activeOrganization = useActiveOrganization();
Expand All @@ -42,6 +44,10 @@ export default function BankConnections() {
const [bankConnections, setBankConnections] = useState<PaginationData<BankConnection>>(null);
const [submittingConnection, setSubmittingConnection] = useState<boolean>(false);

const { headElement, configsElement } = useConfigurableTable(bankConnectionService.getColumns(), {
hasTooltips: true,
});

const [{ success, error }, setQueryParams] = useQueryParams({
success: BooleanParam,
error: StringParam,
Expand Down Expand Up @@ -334,31 +340,25 @@ export default function BankConnections() {

<div className="card-section">
<div className="card-block card-block-table">
<div className="table-wrapper">
{configsElement}

<TableTopScroller>
<table className="table">
<thead>
<tr>
<th className="th-narrow nowrap">Datum van toestemming</th>
<th>Bank</th>
<th>Verloopdatum</th>
<th>Rekening</th>
<th className="th-narrow text-right">Status</th>
</tr>
</thead>
{headElement}

<tbody>
{bank &&
bankConnections.data?.map((bankConnection: BankConnection) => (
<tr key={bankConnection.id}>
<td>{bankConnection.created_at_locale}</td>
<td>{bankConnection.bank.name}</td>
<td>
<td className={bankConnection.expire_at ? '' : 'text-muted'}>
{bankConnection.expire_at
? bankConnection.expire_at_locale
: 'Geen verloopdatum'}
</td>
<td>{bankConnection.iban}</td>
<td className="text-right">
<td>
<div
className={
'label ' +
Expand All @@ -369,11 +369,12 @@ export default function BankConnections() {
{bankConnection.state_locale}
</div>
</td>
<td />
</tr>
))}
</tbody>
</table>
</div>
</TableTopScroller>
</div>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ export default function TransactionSettings() {
bank_branch_id: '6789',
bank_branch_name: 'Voorbeeld van een vestigingsnaam',
bank_fund_name: 'Fondsnaam',
bank_reservation_first_name: 'John',
bank_reservation_last_name: 'Doe',
bank_note: 'Voorbeeld van een notitie van een medewerker',
});

Expand Down Expand Up @@ -62,6 +64,8 @@ export default function TransactionSettings() {
form.values.bank_branch_id ? testData.bank_branch_id : null,
form.values.bank_branch_name ? testData.bank_branch_name : null,
form.values.bank_fund_name ? testData.bank_fund_name : null,
form.values.bank_reservation_first_name ? testData.bank_reservation_first_name : null,
form.values.bank_reservation_last_name ? testData.bank_reservation_last_name : null,
form.values.bank_note ? testData.bank_note : null,
]
.filter((value) => value)
Expand Down Expand Up @@ -187,6 +191,36 @@ export default function TransactionSettings() {
checked={!!form.values?.bank_fund_name}
onChange={(e) => form.update({ bank_fund_name: e.target.checked })}
/>
<div className="form-group form-group-last tooltipped">
<CheckboxControl
id="bank_reservation_first_name"
title="Voornaam"
checked={!!form.values?.bank_reservation_first_name}
onChange={(e) =>
form.update({ bank_reservation_first_name: e.target.checked })
}
/>
<Tooltip
text={
'Voornaam wordt alleen weergegeven wanneer de transactie is gestart via een reservering.'
}
/>
</div>
<div className="form-group form-group-last tooltipped">
<CheckboxControl
id="bank_reservation_last_name"
title="Achternaam"
checked={!!form.values?.bank_reservation_last_name}
onChange={(e) =>
form.update({ bank_reservation_last_name: e.target.checked })
}
/>
<Tooltip
text={
'Achternaam wordt alleen weergegeven wanneer de transactie is gestart via een reservering.'
}
/>
</div>
<CheckboxControl
id="bank_note"
title="Notitie"
Expand Down Expand Up @@ -316,6 +350,20 @@ export default function TransactionSettings() {
</span>
</li>

<li className="block-info-list-item">
Voornaam:
<span className="block-info-list-item-value">
{testData.bank_reservation_first_name} • 3-100 karakters
</span>
</li>

<li className="block-info-list-item">
Achternaam:
<span className="block-info-list-item-value">
{testData.bank_reservation_last_name} • 3-100 karakters
</span>
</li>

<li className="block-info-list-item">
Notitie:
<span className="block-info-list-item-value">
Expand Down
1 change: 1 addition & 0 deletions react/src/dashboard/i18n/i18n-nl.js
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@ export default {
},
labels: {
without: 'Zonder organisatie',
no_results: 'Geen organisaties gevonden',
},
buttons: {
add: 'Organisatie toevoegen',
Expand Down
2 changes: 2 additions & 0 deletions react/src/dashboard/i18n/nl/i18n-pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import extra_payments from './pages/extra-payments';
import fund_request_configurations from './pages/fund-request-configurations';
import product from './pages/product';
import product_edit from './pages/product-edit';
import bank_connections from './pages/bank-connections';

export default {
vouchers,
Expand All @@ -48,4 +49,5 @@ export default {
fund_request_configurations,
product,
product_edit,
bank_connections,
};
24 changes: 24 additions & 0 deletions react/src/dashboard/i18n/nl/pages/bank-connections.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export default {
labels: {
created_at: 'Datum van toestemming',
bank: 'Bank',
expire_at: 'Verloopdatum',
iban: 'Rekening',
status: 'Status',
},
tooltips: {
created_at: 'De datum waarop de koppeling met de bank is geactiveerd en toestemming is verleend.',
bank: 'De naam van de bank waarmee de koppeling is gemaakt.',
expire_at: [
'De datum waarop de koppeling automatisch wordt stopgezet.',
'Bij een koppeling met Bunq is er geen verloopdatum.',
'De koppeling kan ook altijd tussentijds worden vernieuwd of stopgezet.',
].join(' '),
iban: 'Het gekoppelde bankrekeningnummer (IBAN).',
status: [
'De huidige status van de koppeling, bijvoorbeeld: actief als de koppeling is ingeschakeld,',
'vervangen als er opnieuw toestemming is gegeven voor de koppeling (vernieuwd),',
'of uitgeschakeld als deze is stopgezet.',
].join(' '),
},
};
2 changes: 2 additions & 0 deletions react/src/dashboard/props/models/Organization.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ export default interface Organization {
bank_transaction_date?: boolean;
bank_transaction_time?: boolean;
bank_reservation_number?: boolean;
bank_reservation_first_name?: boolean;
bank_reservation_last_name?: boolean;
bank_branch_number?: boolean;
bank_branch_id?: boolean;
bank_branch_name?: boolean;
Expand Down
Loading