Implement Dolibarr native multi-select interface for PCG account mapping
Native Dolibarr Multi-Select Implementation: - Uses Dolibarr's Form class with multiselectarray() method - Native Dolibarr styling and JavaScript functionality - Advanced search and filtering capabilities - Proper UX matching Dolibarr's contact selection interface Enhanced User Experience: - Native Dolibarr multi-select with search functionality - Better visual appearance matching system standards - Advanced filtering and search capabilities - Proper keyboard navigation and accessibility Technical Implementation: - Uses Form->multiselectarray() for native multi-select - Proper account options array with codes and labels - Native Dolibarr JavaScript and CSS styling - Consistent with other Dolibarr multi-select fields Interface Features: - Search functionality within account list - Native Dolibarr styling and behavior - Proper sizing and visual layout - Helper text for user guidance - Current configuration display The configuration interface now uses Dolibarr's native multi-select style like the 'Default contact for' field in the contacts module!
This commit is contained in:
parent
49174f610f
commit
5026308446
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* MVP Setup page for DeclarationTVA module
|
||||
* Multi-select PCG account mapping using Dolibarr native style
|
||||
* Advanced multi-select PCG account mapping using Dolibarr native style
|
||||
*/
|
||||
|
||||
// Load Dolibarr environment
|
||||
@ -17,7 +17,9 @@ if (!$res) {
|
||||
die("Include of main fails");
|
||||
}
|
||||
|
||||
// Load module classes
|
||||
// Libraries
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/custom/declarationtva/core/class/declarationtva_config.class.php';
|
||||
|
||||
// Access control
|
||||
@ -30,6 +32,7 @@ $langs->load("declarationtva@declarationtva");
|
||||
|
||||
// Initialize objects
|
||||
$config = new DeclarationTVA_Config($db, $conf->entity);
|
||||
$form = new Form($db);
|
||||
|
||||
// Handle form submission
|
||||
$action = GETPOST('action', 'alpha');
|
||||
@ -113,19 +116,14 @@ foreach ($lines_by_section as $section_code => $lines) {
|
||||
print '<td><small>' . $definition['pcg_accounts'] . '</small></td>';
|
||||
print '<td>';
|
||||
|
||||
// Create multi-select field using Dolibarr style
|
||||
// Create account options array for Dolibarr multi-select
|
||||
$account_options = array();
|
||||
foreach ($accounts as $account) {
|
||||
$account_options[$account['account_number']] = $account['account_number'] . ' - ' . $account['label'];
|
||||
}
|
||||
|
||||
// Use Dolibarr's native multi-select style
|
||||
print '<select name="account_codes_' . $line . '[]" class="flat" multiple size="3" style="min-width: 300px;">';
|
||||
foreach ($account_options as $account_code => $account_label) {
|
||||
$selected = in_array($account_code, $selected_accounts) ? 'selected' : '';
|
||||
print '<option value="' . $account_code . '" ' . $selected . '>' . $account_label . '</option>';
|
||||
}
|
||||
print '</select>';
|
||||
// Use Dolibarr's native multi-select with search functionality
|
||||
print $form->multiselectarray('account_codes_' . $line, $account_options, $selected_accounts, 0, 0, '', 0, '200px');
|
||||
|
||||
// Add helper text
|
||||
print '<br><small>' . $langs->trans("MultiSelectHelp") . '</small>';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user