unique rules functional on sub modal
All checks were successful
Build and Push Docker Image / build (push) Successful in 15s
All checks were successful
Build and Push Docker Image / build (push) Successful in 15s
This commit is contained in:
parent
3acb172432
commit
9fb0906723
@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Footer links pointing to older domain
|
- Footer links pointing to older domain
|
||||||
@ -15,7 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Web interface now uses the full device width, rather than a smaller maximum width
|
- 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.
|
- 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/)
|
- Update changelog to follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
||||||
|
|
||||||
## [0.3.4] - 2024-09-12
|
## [0.3.4] - 2024-09-12
|
||||||
|
@ -65,6 +65,24 @@ async function initSubscriptionTable() {
|
|||||||
return `<span class="badge text-bg-secondary">${channelsCount}</span>`;
|
return `<span class="badge text-bg-secondary">${channelsCount}</span>`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Content Rules",
|
||||||
|
data: "unique_content_rules",
|
||||||
|
className: "text-center text-nowrap",
|
||||||
|
render: function(data, type) {
|
||||||
|
console.log(JSON.stringify(data))
|
||||||
|
|
||||||
|
let badges = $("<div>");
|
||||||
|
|
||||||
|
data.forEach(function(rule, idx) {
|
||||||
|
let badge = $(`<span class="badge text-bg-secondary">${rule.name}</span>`)
|
||||||
|
if (idx > 0) { badge.addClass("ms-2") }
|
||||||
|
badges.append(badge);
|
||||||
|
});
|
||||||
|
|
||||||
|
return badges.html();
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Created",
|
title: "Created",
|
||||||
data: "creation_datetime",
|
data: "creation_datetime",
|
||||||
@ -210,6 +228,7 @@ async function showEditSubModal(subId) {
|
|||||||
$("#subTitleMutators").val("").change();
|
$("#subTitleMutators").val("").change();
|
||||||
$("#subDescMutators").val("").change();
|
$("#subDescMutators").val("").change();
|
||||||
$("#subActive").prop("checked", true);
|
$("#subActive").prop("checked", true);
|
||||||
|
$("#subUniqueRules").val(1).change(); // GUID option selected by default
|
||||||
|
|
||||||
$("#subEmbedColour .colour-reset").click();
|
$("#subEmbedColour .colour-reset").click();
|
||||||
$("#subArticleFetchImage").prop("checked", true);
|
$("#subArticleFetchImage").prop("checked", true);
|
||||||
@ -242,6 +261,9 @@ async function showEditSubModal(subId) {
|
|||||||
$("#subFilters").val("").change();
|
$("#subFilters").val("").change();
|
||||||
$("#subFilters").val(subscription.filters).change();
|
$("#subFilters").val(subscription.filters).change();
|
||||||
|
|
||||||
|
$("#subUniqueRules").val("").change();
|
||||||
|
$("#subUniqueRules").val(subscription.unique_content_rules.map(rule => rule.id)).change();
|
||||||
|
|
||||||
updateColourInput("subEmbedColour", `#${subscription.embed_colour}`);
|
updateColourInput("subEmbedColour", `#${subscription.embed_colour}`);
|
||||||
$("#subArticleFetchImage").prop("checked", subscription.article_fetch_image);
|
$("#subArticleFetchImage").prop("checked", subscription.article_fetch_image);
|
||||||
|
|
||||||
@ -299,6 +321,11 @@ $("#subForm").on("submit", async function(event) {
|
|||||||
filter => formData.append("filters", parseInt(filter.value))
|
filter => formData.append("filters", parseInt(filter.value))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Unique Content Rules
|
||||||
|
$("#subUniqueRules option:selected").toArray().forEach(
|
||||||
|
rule => formData.append("unique_content_rules", parseInt(rule.value))
|
||||||
|
);
|
||||||
|
|
||||||
// This field is constructed differently, so needs to be specifically added
|
// This field is constructed differently, so needs to be specifically added
|
||||||
formData.append("embed_colour", getColourInputVal("subEmbedColour", false));
|
formData.append("embed_colour", getColourInputVal("subEmbedColour", false));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user