feat: add company sidebar filters, internal phone, mail icon fix, and update script
This commit is contained in:
@@ -56,7 +56,7 @@ const ImportExport = ({ token, onRefreshData }) => {
|
||||
throw new Error('CSV файл пуст или содержит недостаточно строк.');
|
||||
}
|
||||
|
||||
// Expected Headers: ФИО;Компания;Отдел;Должность;Телефон;Email;Здание;Этаж
|
||||
// Expected Headers: ФИО;Компания;Отдел;Должность;Телефон;Email;Здание;Этаж;Внутренний телефон
|
||||
// Parse semicolon separated columns
|
||||
const employees = [];
|
||||
const departmentsSet = new Set();
|
||||
@@ -74,7 +74,8 @@ const ImportExport = ({ token, onRefreshData }) => {
|
||||
phone: values[4] || '',
|
||||
email: values[5] || '',
|
||||
building: values[6] || '',
|
||||
floor: values[7] || ''
|
||||
floor: values[7] || '',
|
||||
internal_phone: values[8] || ''
|
||||
};
|
||||
|
||||
if (emp.name && emp.job_title) {
|
||||
@@ -108,6 +109,7 @@ const ImportExport = ({ token, onRefreshData }) => {
|
||||
email: emp.email,
|
||||
building: emp.building,
|
||||
floor: emp.floor,
|
||||
internal_phone: emp.internal_phone,
|
||||
department_id: dept ? dept.id : null,
|
||||
company_id: comp ? comp.id : null
|
||||
};
|
||||
@@ -174,7 +176,7 @@ const ImportExport = ({ token, onRefreshData }) => {
|
||||
if (!res.ok) throw new Error('Ошибка экспорта данных с сервера');
|
||||
const data = await res.json();
|
||||
|
||||
const headers = ['ФИО', 'Компания', 'Отдел', 'Должность', 'Телефон', 'Email', 'Здание', 'Этаж'];
|
||||
const headers = ['ФИО', 'Компания', 'Отдел', 'Должность', 'Телефон', 'Email', 'Здание', 'Этаж', 'Внутренний телефон'];
|
||||
// Semicolon separator
|
||||
const csvRows = [headers.join(';')];
|
||||
|
||||
@@ -189,7 +191,8 @@ const ImportExport = ({ token, onRefreshData }) => {
|
||||
`"${(emp.phone || '').replace(/"/g, '""')}"`,
|
||||
`"${(emp.email || '').replace(/"/g, '""')}"`,
|
||||
`"${(emp.building || '').replace(/"/g, '""')}"`,
|
||||
`"${(emp.floor || '').replace(/"/g, '""')}"`
|
||||
`"${(emp.floor || '').replace(/"/g, '""')}"`,
|
||||
`"${(emp.internal_phone || '').replace(/"/g, '""')}"`
|
||||
];
|
||||
csvRows.push(row.join(';'));
|
||||
}
|
||||
@@ -246,7 +249,7 @@ const ImportExport = ({ token, onRefreshData }) => {
|
||||
</div>
|
||||
</form>
|
||||
<p style={{ fontSize: '0.75rem', color: 'var(--text-muted)', marginTop: '0.75rem' }}>
|
||||
* При импорте текущая база будет очищена и перезаписана! Структура колонок CSV (разделитель - <strong>точка с запятой ";"</strong>): ФИО;Компания;Отдел;Должность;Телефон;Email;Здание;Этаж. Кодировка UTF-8.
|
||||
* При импорте текущая база будет очищена и перезаписана! Структура колонок CSV (разделитель - <strong>точка с запятой ";"</strong>): ФИО;Компания;Отдел;Должность;Телефон;Email;Здание;Этаж;Внутренний телефон. Кодировка UTF-8.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user