|
280 | 280 | // !! [FOR DEMO - sessionStorage] фиксация исходных данных/серверных данных, для сохранения в sessionStorage |
281 | 281 | let clientsDataArrWithIds; |
282 | 282 | let updateClientsDataArr = []; |
| 283 | + let clientsServerDataArr = []; // потом/будет использоваться для генерации storage ID |
283 | 284 |
|
284 | 285 | async function addClientsDataToStorage() { |
285 | 286 | try { |
|
293 | 294 | const data = await response.json(); // преобразование данных в JSON-формат |
294 | 295 | sessionStorage.setItem('demoClients', JSON.stringify(data)); // добавление/сохранение в Session storage |
295 | 296 |
|
| 297 | + clientsServerDataArr = data; // "дополнительно" фиксируем входящий серверный массив |
| 298 | + |
296 | 299 | return data; // возврат массива данных |
297 | 300 | } catch (error) { |
298 | 301 | console.error('Ошибка загрузки списка клиентов с сервера!', error); |
|
2865 | 2868 |
|
2866 | 2869 | // !! [FOR DEMO - sessionStorage] "расширенный" объект client (т.к. нет серверных полей.. добавление самостоятельно) |
2867 | 2870 | const client = { |
2868 | | - id: type === 'edit' ? clientData.id : Date.now().toString(), // генерация ID |
| 2871 | + id: type === 'edit' ? clientData.id : generateClientStorageId(), // генерация custom ID |
2869 | 2872 | surname: formInSurname, |
2870 | 2873 | name: formInName, |
2871 | 2874 | patronymic: formInPatronymic, |
|
2954 | 2957 | ); |
2955 | 2958 | } |
2956 | 2959 |
|
| 2960 | + // !! [FOR DEMO - sessionStorage] генерация custom ID номеров для "новых" клиентов (продолжение порядка.. до 99 потом нужно/будет корректировать) |
| 2961 | + function generateClientStorageId() { |
| 2962 | + const orderPrefix = clientsServerDataArr.length; // фиксация длинны серверного массива (ранее/выше приходящего) |
| 2963 | + |
| 2964 | + // генерация случайных/дополнительных цифр для ID (т.е. генерация 5-ти цифр, если в массиве < 10 клиентов, если больше.. то генерация 4-х цифр) |
| 2965 | + const randomDigits = |
| 2966 | + clientsServerDataArr.length < 10 |
| 2967 | + ? Math.floor(10000 + Math.random() * 90000) // 5 цифр |
| 2968 | + : Math.floor(1000 + Math.random() * 9000); // 4 цифры |
| 2969 | + |
| 2970 | + return `${orderPrefix}${randomDigits}`; // возврат сформированного ID |
| 2971 | + } |
| 2972 | + |
2957 | 2973 | // ** [СЕРВЕР] отправка данных/добавление клиентов на сервер, получение обратно (проверка статуса) |
2958 | 2974 | // ?? следует раскомментировать (полностью) |
2959 | 2975 | // async function addClientToServer(clientData) { |
|
0 commit comments