Changeset df7f390 for frontend


Ignore:
Timestamp:
01/13/25 14:18:51 (2 days ago)
Author:
Kristijan <kristijanzafirovski26@…>
Branches:
master
Parents:
0a7426e
Message:

Added frontend functionality for changes and refactored code

Location:
frontend
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • frontend/index.html

    r0a7426e rdf7f390  
    5454        <span class="close">&times;</span>
    5555        <div class="saved-trips-container">
    56             <h2>Saved Trips</h2>
     56            <h2>Зачувани патувања</h2>
    5757            <div id="savedTripsList"></div>
    5858        </div>
    5959        <div class="price-changes-container">
    60             <h2>Price Changes</h2>
     60            <h2>Промени во понудата</h2>
    6161            <div id="priceChangesList"></div>
    6262        </div>
     
    107107    <div class="loading-content">
    108108        <div class="spinner"></div>
    109         <p>Loading, please wait...</p>
     109        <p>Пребарувам. ве молиме почекајте...</p>
    110110    </div>
    111111</div>
    112112<div id="AccountDetailsOverlay" class="popup accDetails">
    113113    <div class="popup-content">
    114         <h1>My account</h1>
     114        <h1>Мој профил</h1>
    115115        <div class="popup-content" style="display: none" id="confDel">
    116116            <div class="delete" >
    117                 <h1>Are you sure you want to delete your account?</h1>
    118                 <button onclick="deleteAccount()" class="button" id="confirmDelete" style="background-color: red">Yes</button>
    119                 <button id="cancel" class="button" onclick="closeConfirmDelete()">No</button>
     117                <h1>Дали сте сигурни дека сакате да го избришете профилот?</h1>
     118                <button onclick="deleteAccount()" class="button" id="confirmDelete" style="background-color: red">Да</button>
     119                <button id="cancel" class="button" onclick="closeConfirmDelete()">Не</button>
    120120            </div>
    121121        </div>
    122         <button class="button" id="pswdChange">Change password</button>
    123         <button class="button" style="background-color: red" id="deleteAcc" onclick="confirmDelete()">Delete Account</button>
     122        <button class="button" style="background-color: red" id="deleteAcc" onclick="confirmDelete()">Избриши профил</button>
    124123    </div>
    125124</div>
  • frontend/js/formHandler.js

    r0a7426e rdf7f390  
    5151                const dataList = document.getElementById('givenOptions');
    5252                dataList.innerHTML = '';
     53
    5354                if (data.length === 0) {
    5455                    const wrapper = document.createElement('div');
     
    6667                        img.src = item.imgSrc || '';
    6768                        optionDiv.appendChild(img);
    68                         const WrapperDiv = document.createElement('div');
    69                         optionDiv.appendChild(WrapperDiv);
     69                        const wrapperDiv = document.createElement('div');
     70                        optionDiv.appendChild(wrapperDiv);
    7071
    7172                        const nameParagraph = document.createElement('p');
    7273                        nameParagraph.id = 'name';
    7374                        nameParagraph.textContent = item.hotelName || 'N/A';
    74                         WrapperDiv.appendChild(nameParagraph);
     75                        wrapperDiv.appendChild(nameParagraph);
    7576
    7677                        const countryParagraph = document.createElement('p');
     
    7879                        countryParagraph.style.fontSize = '20px';
    7980                        countryParagraph.textContent = item.country || 'N/A';
    80                         WrapperDiv.appendChild(countryParagraph);
     81                        wrapperDiv.appendChild(countryParagraph);
    8182
    8283                        const dateParagraph = document.createElement('h2');
    8384                        dateParagraph.id = 'date';
    8485                        dateParagraph.textContent = item.dateRange || 'N/A';
    85                         WrapperDiv.appendChild(dateParagraph);
     86                        wrapperDiv.appendChild(dateParagraph);
    8687
    8788                        const peopleParagraph = document.createElement('p');
    8889                        peopleParagraph.id = 'numPeople';
    8990                        peopleParagraph.textContent = item.numPeople === 1 ? item.numPeople + " лице" : item.numPeople + " лица";
    90                         WrapperDiv.appendChild(peopleParagraph);
     91                        wrapperDiv.appendChild(peopleParagraph);
    9192
    9293                        const priceHeading = document.createElement('h1');
    9394                        priceHeading.textContent = 'Цена:';
    94                         WrapperDiv.appendChild(priceHeading);
     95                        wrapperDiv.appendChild(priceHeading);
    9596                        const priceParagraph = document.createElement('h2');
    9697                        priceParagraph.id = 'price';
    9798                        priceParagraph.textContent = (item.price || 0) + " EUR";
    98                         WrapperDiv.appendChild(priceParagraph);
     99                        wrapperDiv.appendChild(priceParagraph);
    99100
    100101                        const infoDiv = document.createElement('div');
     
    110111                        infoDiv.appendChild(amenities);
    111112                        optionDiv.appendChild(infoDiv);
     113
     114                        const changesDiv = document.createElement('div');
     115                        item.changes.forEach(change => {
     116                            const changeParagraph = document.createElement('p');
     117                            changeParagraph.textContent = change.attribute + " changed from " + change.oldValue + " to " + change.newValue;
     118                            changesDiv.appendChild(changeParagraph);
     119                        });
     120                        optionDiv.appendChild(changesDiv);
    112121
    113122                        const link = document.createElement('a');
  • frontend/js/siteFlow.js

    r0a7426e rdf7f390  
    168168        .then(data => {
    169169            console.log('Option saved:', data);
    170             // Update the UI to reflect that the option was saved
    171170            updateFavoriteButtons();
    172171        })
     
    243242                tripDiv.appendChild(price);
    244243
     244                // Add change indicator
     245                if(trip.changes && trip.changes.length > 0) {
     246                    const changeDiv = document.createElement('div');
     247                    changeDiv.classList.add('changes');
     248                    trip.changes.forEach(change => {
     249                        const changeParagraph = document.createElement('p');
     250                        changeParagraph.textContent = `${change.attribute} се смени од ${change.oldValue} во ${change.newValue}`;
     251                        changeDiv.appendChild(changeParagraph);
     252                    });
     253                    tripDiv.appendChild(changeDiv);
     254                }
     255
    245256                savedTripsList.appendChild(tripDiv);
    246257            });
    247 
    248258
    249259            const priceChangesList = document.getElementById('priceChangesList');
     
    258268                });
    259269            } else {
    260                 priceChangesList.textContent = "нема промена на цената.";
     270                priceChangesList.textContent = "нема промена во зачуваните патувања.";
    261271            }
    262272        })
     
    265275        });
    266276}
     277
    267278function removeFromSaved(optionId) {
    268279    const userEmail = sessionStorage.getItem('user').replace(/^"|"$/g, '');
Note: See TracChangeset for help on using the changeset viewer.