fix: добавлена инициализация AJAX загрузки документов
- Добавлен импорт initDocumentListHandler в documentList.js - Инициализация documentListHandler с правильными параметрами - Считывание scope и ack_status из URL параметров - Добавление scope в API запрос - Передача userId и canManage через data-атрибуты - Автоматическое применение scope при инициализации
This commit is contained in:
parent
944e14737b
commit
7fd191d8ef
@ -31,14 +31,17 @@ export function initDocumentListHandler(options) {
|
||||
}
|
||||
|
||||
// Текущее состояние
|
||||
let currentScope = 'mine'; // 'mine' | 'all'
|
||||
let currentAckStatus = ''; // '' | 'acked' | 'not_acked'
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
let currentScope = urlParams.get('scope') || 'mine'; // 'mine' | 'all'
|
||||
let currentAckStatus = urlParams.get('ack_status') || ''; // '' | 'acked' | 'not_acked'
|
||||
let allDocuments = []; // Все загруженные документы
|
||||
let loading = false;
|
||||
let hasMore = true;
|
||||
let nextUrl = null;
|
||||
let totalCount = 0;
|
||||
|
||||
console.log('documentListHandler: init with scope =', currentScope, 'ack_status =', currentAckStatus);
|
||||
|
||||
// Intersection Observer для бесконечной прокрутки
|
||||
let observerTarget = null;
|
||||
let observer = null;
|
||||
@ -68,8 +71,15 @@ export function initDocumentListHandler(options) {
|
||||
hideLoadingSpinner();
|
||||
return [];
|
||||
} else {
|
||||
url = apiListUrl;
|
||||
console.log('loadDocuments: initial load', url);
|
||||
// Формируем URL с параметрами scope
|
||||
const params = new URLSearchParams();
|
||||
if (currentScope === 'mine') {
|
||||
params.append('scope', 'mine');
|
||||
}
|
||||
// ack_status фильтруется на клиенте, не в API
|
||||
|
||||
url = `${apiListUrl}?${params}`;
|
||||
console.log('loadDocuments: initial load', url, 'scope:', currentScope);
|
||||
}
|
||||
|
||||
const response = await fetch(url, { headers });
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
import { RecipientPicker } from '../components/recipientPickerHandler.js';
|
||||
import { initDocumentCrud } from '../components/documentCrudHandler.js';
|
||||
import { initDocumentAcks } from '../components/documentAcksHandler.js';
|
||||
import { initDocumentListHandler } from '../components/documentListHandler.js';
|
||||
|
||||
/**
|
||||
* Инициализирует страницу списка документов
|
||||
@ -29,14 +30,39 @@ export function initDocumentListPage(config) {
|
||||
const accessMeta = document.querySelector('meta[name="api-access"]');
|
||||
const ACCESS = accessMeta ? accessMeta.content : '';
|
||||
const headers = ACCESS ? { 'Authorization': 'Bearer ' + ACCESS } : {};
|
||||
|
||||
// Получаем ID текущего пользователя
|
||||
const userId = parseInt(document.body.dataset.userId || '0', 10);
|
||||
const canManage = document.body.dataset.canManageDocuments === 'true';
|
||||
|
||||
// Получаем текущий scope из URL
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const currentScope = urlParams.get('scope') || 'mine';
|
||||
|
||||
console.log('Document CRUD initialization:', {
|
||||
console.log('Document page initialization:', {
|
||||
apiListUrl,
|
||||
apiDetailBase,
|
||||
employeesApi,
|
||||
departmentsApi,
|
||||
hasAuth: !!ACCESS
|
||||
hasAuth: !!ACCESS,
|
||||
userId,
|
||||
canManage,
|
||||
currentScope
|
||||
});
|
||||
|
||||
// Инициализация списка документов (AJAX загрузка с бесконечной прокруткой)
|
||||
const documentListHandler = initDocumentListHandler({
|
||||
apiListUrl,
|
||||
acknowledgeUrlTemplate: '/documents/ack/{id}/',
|
||||
userId,
|
||||
canManage,
|
||||
headers
|
||||
});
|
||||
|
||||
// Устанавливаем начальный scope
|
||||
if (currentScope && documentListHandler.setScope) {
|
||||
documentListHandler.setScope(currentScope);
|
||||
}
|
||||
|
||||
// Инициализация RecipientPicker для формы создания
|
||||
const createPicker = new RecipientPicker(
|
||||
|
||||
@ -212,6 +212,11 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script>
|
||||
// Передаем данные для инициализации страницы
|
||||
document.body.dataset.userId = '{{ user.id }}';
|
||||
document.body.dataset.canManageDocuments = '{{ can_manage_documents|yesno:"true,false" }}';
|
||||
</script>
|
||||
<script type="module">
|
||||
import { initDocumentListPage } from "{% static 'js/pages/documentList.js' %}";
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user