# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] [0.4.1] - xxxx-xx-xx

### Added

- 'Invalid' appearance for select-2 controls, upon bad form submission
- Shorthand functions for setting/clearing the "spot" classes on ".sidebar-item"s

### Fixed

- Storing Discord-provided snowflake ID's in a postgresql database. Now using 'PositiveLargeIntegerField' to support this
- Sidebar server "placeholder" elements running offscreen on desktop - fixed by reducing them by 2
- Theme button missing icon on page load. Created an init function for properly setting up the theme on page load.

### Changed

- Keep the hover state of sidebar buttons while their respective dropdown's are showing
- Made the 'channels' field on subscriptions required, at least one channel must be chosen
- Deleting a used message style, will cause subscriptions using it to fall back to their default message styles

## [Unreleased] [0.4.0] - xxxx-xx-xx [BREAKING]

### Added

- `UniqueContentRule` model, allows the user to determine how unique RSS items are defined
- `unique_content_rules` attribute to the `Subscription` model, many-to-many relationship with the related model
- Web interface method of setting a Subscription's unique content rules, through a multi-select field
- Migrations to allow older versions to seemlessly upgrade for this change, by creating the `UniqueContentRule` instances and setting default content rules on Subscriptions
- Column on subscription table for the new unique content rules
- Validation indicators and messages to the sub modal fields
- Help text to various form fields that lacked it

### Fixed

- Footer links pointing to older domain
- Tracked content ListView API incorrectly ordering by oldest first, instead of newest first

### Changed

- General rewrite of entire web interface
- General rewrite of entire backend
- Web interface now uses the full device width, rather than a smaller maximum width
- Server sidebar use more width, also displays name and guild ID, becomes smaller on small devices
- Update changelog to follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
- Made the tables and their respective buttons more mobile friendly
- Tidy up the layout of switches on some forms
- Help text for the switch fields on the Filters form, to better indicate their function
- 'Invite PYRSS' yellow warning alert made to be mobile friendly
- Table controls (pagination & page resizer) adjusted to support mobile devices
- Moved footer items to bottom of sidebar
- Changed style of navbar buttons

### Removed

- Unused code for the legacy 'server settings tab' from before it became a modal

## [0.3.4] - 2024-09-12

### Added

- Add wiki link button to footer

### Fixed

- Refresh data tables after deleting any number of entries (corbz/PYRSS-Website#38)
- Select2 dropdown search bars always using light theme, regardless of user choice
- Fixed "ordering=unknown" in api calls by only applying ordering if it's truthy
- Exception caused by unfinished queryset method on the `/api/guild-settings/` endpoint
- Several potential xss attack vectors
- 'Add Pyrss' button incorrectly not opening in new tab

### Changed

- `data-field` implementation for subscription form
- Improved the offcanvas navbar on smaller screens, to be less ugly
- Clearer help label on the 'Add Server' modal/form
- rewrote `confirmDeleteModal` into less specific `confirmationModal` with specifiable styles

## [0.3.3] - 2024-08-24

### Added

- Added font: sora
- Added font: Atkinson Hyperlegible
- added license file

### Fixed

- Fixed a padding issue with link-style buttons in table cells

### Changed

- All table cells no longer wrap text
- `DISCORD_SCOPES` as env var, rather than hard coded

## [0.3.2] - 2024-08-18

### Fixed

- Invite link refered to wrong Discord application, because the client Id was hard coded

### Changed

- Enabled pagination for the `/api/guild-settings/` endpoint

## [0.3.1] - 2024-08-16

### Fixed

- Colour embeds with multiple hashtag characters, bug from [0.3.0]

## [0.3.0] - 2024-08-16 [BREAKING]

### Added

- `active` flag added as server setting, soft-toggles activeness of associated subscriptions

### Fixed

- Bad text alignment for some table button links
- Incorrect margin on 'server settings' & 'new server' modal buttons
- Table "X Results" text now correctly plural only if `results > 1`

### Changed

- store guild settings in separate model
- moved server settinsg from tab to pop-out modal
- server `default_embed_colour` setting will be reset due to changes on how settings are stored

## [0.2.2] - 2024-08-14

### Added

- Added open graph meta tags

### Fixed

- csrf trusted origins warning, from not including url protocol

### Changed

- Replaced `<a href="#" onclick="doThing()">` buttons with `<button>`.

## [0.2.1] - 2024-08-13

### Added

- Added confirmation modal for closing a server

## [0.2.0] - 2024-08-13

### Added

- 'Go Back' button on the server page, takes the user to the 'select a server' page.
- Documented `static/home/servers.js` with comments

### Changed

- Improved warning when server doesn't include bot member
- Made it easier to update labels to the current server's details

### Removed

- Removed some unused/unreferenced code

## [0.1.15] - 2024-08-13

## [0.1.14] - 2024-08-13

### Fixed

- layout issue for the 'select a server' page was off-centre

## [0.1.13] - 2024-08-12

### Added

- Start of changelog

### Removed

- remove db flush from entrypoint file

## [0.1.12] - 2024-08-12

## [0.1.11] - 2024-08-12

## [0.1.10] - 2024-08-12

## [0.1.9] - 2024-08-12

## [0.1.8] - 2024-08-12

## [0.1.7] - 2024-08-12

## [0.1.6] - 2024-08-11

## [0.1.5] - 2024-08-11

## [0.1.4] - 2024-08-09

## [0.1.3] - 2024-08-08

## [0.1.2] - 2024-08-05

## [0.1.1] - 2024-08-04

## [0.1.0] - 2024-08-04
