From 4ce88e5bcd9e77d19796e7ec5e312c684c311d43 Mon Sep 17 00:00:00 2001 From: Roman505050 Date: Tue, 19 Nov 2024 16:07:34 +0200 Subject: [PATCH 1/2] CSS for textarea --- src/presentation/app/static/css/transactions.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/presentation/app/static/css/transactions.css b/src/presentation/app/static/css/transactions.css index ed32fc2..7c0d3ef 100644 --- a/src/presentation/app/static/css/transactions.css +++ b/src/presentation/app/static/css/transactions.css @@ -282,6 +282,14 @@ tr:last-child td { border-width: 2px; } +textarea { + resize: vertical; + height: auto; + min-height: 100px; + max-height: 200px; + width: 100%; +} + @media (max-width: 768px) { table, thead, tbody, th, td, tr { display: block; From 2bfca28b73f020039355035f3745e19476ed414c Mon Sep 17 00:00:00 2001 From: Roman505050 Date: Tue, 19 Nov 2024 16:13:03 +0200 Subject: [PATCH 2/2] Rename URL paths for api. --- src/presentation/app/app.py | 8 ++++---- src/presentation/app/static/js/admin/categories.js | 8 ++++---- src/presentation/app/static/js/admin/operations.js | 6 +++--- .../app/static/js/create-transaction-modal.js | 8 ++++---- src/presentation/app/static/js/transactions.js | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/presentation/app/app.py b/src/presentation/app/app.py index 5dbd638..5943c3b 100644 --- a/src/presentation/app/app.py +++ b/src/presentation/app/app.py @@ -25,10 +25,10 @@ app.register_blueprint(auth_bp, url_prefix="") app.register_blueprint(admin_bp, url_prefix="/admin") app.register_blueprint(transactions_bp, url_prefix="/transactions") -app.register_blueprint(operation_api_bp, url_prefix="/api/v1/operation") -app.register_blueprint(category_api_bp, url_prefix="/api/v1/category") -app.register_blueprint(currency_api_bp, url_prefix="/api/v1/currency") -app.register_blueprint(transaction_api_bp, url_prefix="/api/v1/transaction") +app.register_blueprint(operation_api_bp, url_prefix="/api/v1/operations") +app.register_blueprint(category_api_bp, url_prefix="/api/v1/categories") +app.register_blueprint(currency_api_bp, url_prefix="/api/v1/currencies") +app.register_blueprint(transaction_api_bp, url_prefix="/api/v1/transactions") @app.errorhandler(404) diff --git a/src/presentation/app/static/js/admin/categories.js b/src/presentation/app/static/js/admin/categories.js index c3b5a43..2858ef3 100644 --- a/src/presentation/app/static/js/admin/categories.js +++ b/src/presentation/app/static/js/admin/categories.js @@ -10,7 +10,7 @@ async function fetchOperations() { operationTypeSelect.innerHTML = ''; operationTypeSelect.disabled = true; - const response = await fetch('/api/v1/operation/autocomplete'); + const response = await fetch('/api/v1/operations/autocomplete'); if (!response.ok) { console.error('Error fetching operation types:', response); showToast('Помилка завантаження типів категорій', 'error'); @@ -37,7 +37,7 @@ async function fetchOperations() { async function createCategory(newCategory, operationType) { try { - const response = await fetch('/api/v1/category', { + const response = await fetch('/api/v1/categories', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -67,7 +67,7 @@ async function fetchCategories() { document.getElementById('loaderСontainer').classList.remove('hidden'); document.getElementById('categoriesList').classList.add('hidden'); - const response = await fetch('/api/v1/category'); + const response = await fetch('/api/v1/categories'); if (!response.ok) { console.error('Error fetching categories:', response); showToast('Помилка при завантаженні категорій', 'error'); @@ -139,7 +139,7 @@ categoryItemsContainer.addEventListener('click', async (event) => { deleteBtn.classList.add('hidden'); try { - const response = await fetch(`/api/v1/category/${categoryId}`, { + const response = await fetch(`/api/v1/categories/${categoryId}`, { method: 'DELETE' }); diff --git a/src/presentation/app/static/js/admin/operations.js b/src/presentation/app/static/js/admin/operations.js index b785ae8..b50fdaf 100644 --- a/src/presentation/app/static/js/admin/operations.js +++ b/src/presentation/app/static/js/admin/operations.js @@ -15,7 +15,7 @@ operationForm.addEventListener('submit', async (event) => { const type = document.querySelector('input[name="operationType"]:checked').value; try { - const response = await fetch('/api/v1/operation', { + const response = await fetch('/api/v1/operations', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -46,7 +46,7 @@ async function getOperations() { document.getElementById('loaderСontainer').classList.remove('hidden'); document.getElementById('operationsList').classList.add('hidden'); - const response = await fetch('/api/v1/operation'); + const response = await fetch('/api/v1/operations'); if (!response.ok) { console.error('Error fetching operations:', response); showToast('Помилка завантаження даних', 'error'); @@ -101,7 +101,7 @@ operationsList.addEventListener('click', async (event) => { deleteBtn.classList.add('hidden'); try { - const response = await fetch(`/api/v1/operation/${operationId}`, { + const response = await fetch(`/api/v1/operations/${operationId}`, { method: 'DELETE' }); diff --git a/src/presentation/app/static/js/create-transaction-modal.js b/src/presentation/app/static/js/create-transaction-modal.js index de26c54..1729cf6 100644 --- a/src/presentation/app/static/js/create-transaction-modal.js +++ b/src/presentation/app/static/js/create-transaction-modal.js @@ -32,7 +32,7 @@ async function fetchOperations() { operationSelect.disabled = true; try { - const response = await fetch('api/v1/operation/autocomplete'); + const response = await fetch('api/v1/operations/autocomplete'); const data = await response.json(); operationSelect.innerHTML = ''; @@ -54,7 +54,7 @@ async function fetchCurrencies() { currencySelect.disabled = true; try { - const response = await fetch('api/v1/currency/autocomplete'); + const response = await fetch('api/v1/currencies/autocomplete'); const data = await response.json(); currencySelect.innerHTML = ''; @@ -76,7 +76,7 @@ async function fetchCategories(operationId) { categorySelect.disabled = true; try { - const response = await fetch(`api/v1/category/autocomplete?operation_id=${operationId}`); + const response = await fetch(`api/v1/categories/autocomplete?operation_id=${operationId}`); const data = await response.json(); if (operationSelect.value !== operationId) { @@ -101,7 +101,7 @@ async function fetchCategories(operationId) { async function saveTransaction(transaction) { try { - const response = await fetch('api/v1/transaction', { + const response = await fetch('api/v1/transactions', { method: 'POST', headers: { 'Content-Type': 'application/json' diff --git a/src/presentation/app/static/js/transactions.js b/src/presentation/app/static/js/transactions.js index edce370..25bba6b 100644 --- a/src/presentation/app/static/js/transactions.js +++ b/src/presentation/app/static/js/transactions.js @@ -7,7 +7,7 @@ async function fetchTransactions() { document.getElementById('loaderContainer').classList.remove('hidden'); document.getElementById('transactionTable').classList.add('hidden'); - const response = await fetch('/api/v1/transaction/me'); + const response = await fetch('/api/v1/transactions/me'); if (!response.ok) { console.error('Fetch error:', response); showToast('Помилка завантаження даних', 'error'); @@ -27,7 +27,7 @@ async function fetchTransactions() { async function deleteTransaction(transactionId) { try { - const response = await fetch(`/api/v1/transaction/${transactionId}`, { + const response = await fetch(`/api/v1/transactions/${transactionId}`, { method: 'DELETE' }); if (response.ok) {