Enhanced the currency drop-down to display localized names if available. This improves user experience by showing familiar names in their local language. Ensures the default language is used if localization isn't specified.
Eliminated the redundant stylesheet inclusion to reduce unnecessary HTTP requests and improve page load performance. No impact on visual styling as the content of custom.css was deprecated and merged into main.css.
Replaced button element with a hyperlink to improve accessibility, ensuring better navigation for screen readers and users. Also, formatted the inline script for clarity and consistency. These changes contribute to a more user-friendly interface and maintain clean, readable code.
Updated to always output JSON in response, ensuring the latest data is provided to the client. Previously, data output was conditional based on the update interval. This change guarantees a more consistent API behavior and better user experience by always serving the current state, even if no recent update occurred.
Replaced the static list of currencies with a dynamic fetch from the CoinGecko API. Implemented a filter to exclude 'bits' and 'sats' from the fetched currencies. This ensures the currency list is always up-to-date and excludes unsupported currencies.
Consolidated currency list initialization and improved data fetching from CoinGecko API. Enhanced error handling for CURL requests. Optimized the logic for updating and saving currency data, ensuring more efficient and readable code. Ensured data write-back occurs only when sufficient time has elapsed since the last update.
- Moved currency data initialization to load dynamically from JSON.
- Removed static array of currencies, utilizing the JSON keys instead.
- Simplified exchange rate extraction to dynamically fetch values.
- Improved user language detection and selection process.
- Refactored HTML and PHP to dynamically generate language and currency options.
- Replaced various currency conversion logic with a dynamic implementation.
- Enhanced UI elements for better readability and maintainability.
- Consolidated inline JavaScript functions into external script for organization.
These changes reduce hardcoding, improve maintainability, and ensure that currency data is up-to-date and reflects user preferences more effectively.
Added `mini-css-extract-plugin`, `css-loader`, and `purgecss-webpack-plugin` to handle CSS extraction and purification in the Webpack build process. Removed the old `purgecss.config.js` as its functionality has been moved to the Webpack configuration. This change aims to streamline the build process and ensure unused CSS is effectively removed, optimizing the final output.
Expanded the .gitignore to also ignore compiled CSS files, ensuring they are not tracked in the repository, similar to how compiled JS files are handled. This keeps the repo clean and focuses on source files.
Enhances code clarity by translating German comments to English and adding comments and TODOs for dynamic data loading
and generation of currencies, API data, language files, and HTML elements.
This will reduce hardcoded values and improve maintainability. Also, adds a
reminder to move scripts to separate files and add OpenGraph tags in the HTML.
No breaking changes, but dynamically loading these values will be essential
for improving the codebase in future iterations.
Renamed project from "moner.ooo-dev" to "moner.ooo" to match the
finalized project name, ensuring consistency across project
references. No functional changes.
Deleted the "bootstrap.bundle.js" and "bootstrap.bundle.js.map" files from the "js" directory. These files are not necessary in the project, because they are built automatically. Ensures cleaner project structure and reduces unnecessary repository size.
Added compiled JavaScript directory to .gitignore to prevent build artifacts from being tracked in the repository. This helps keep the repo clean and reduces unnecessary clutter from generated files.
Added Coingecko export files (coingecko.json and coingecko-original.json) to .gitignore to prevent them from being tracked by Git. This ensures that large or unnecessary data files do not clutter the repository and facilitates easier version control.