diff --git a/ChangeLog b/ChangeLog index d80a4d4e..df99c829 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19971,3 +19971,8 @@ rdcastmanager(1). 2020-05-21 Fred Gleason * Populated the 'Apple' RSS schema. +2020-05-21 Fred Gleason + * Fixed a bug in the 'Edit Feed' dialog in rdadmin(1) that allowed + superfeed setups to be saved with no member subfeeds. + * Fixed a bug in the 'Edit Feed' dialog in rdadmin(1) that allowed + a per-item default image to be configured for superfeeds. diff --git a/lib/rdfeed.cpp b/lib/rdfeed.cpp index c0b67247..b50ced7e 100644 --- a/lib/rdfeed.cpp +++ b/lib/rdfeed.cpp @@ -144,6 +144,26 @@ void RDFeed::setIsSuperfeed(bool state) const } +QStringList RDFeed::subfeedNames() const +{ + QString sql; + RDSqlQuery *q=NULL; + QStringList ret; + + sql=QString("select ")+ + "MEMBER_KEY_NAME "+ // 00 + "from SUPERFEED_MAPS where "+ + "KEY_NAME=\""+RDEscapeString(keyName())+"\""; + q=new RDSqlQuery(sql); + while(q->next()) { + ret.push_back(q->value(0).toString()); + } + delete q; + + return ret; +} + + QStringList RDFeed::isSubfeedOf() const { QStringList ret; @@ -1306,7 +1326,7 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok) // Render Item XML // QString where; - if(q->value(24).toString()=="Y") { + if(q->value(24).toString()=="Y") { // Is a Superfeed sql=QString("select ")+ "MEMBER_FEED_ID "+ // 00 "from SUPERFEED_MAPS where "+ diff --git a/lib/rdfeed.h b/lib/rdfeed.h index 955e0a0e..8bb2db39 100644 --- a/lib/rdfeed.h +++ b/lib/rdfeed.h @@ -48,6 +48,7 @@ class RDFeed : public QObject bool exists() const; bool isSuperfeed() const; void setIsSuperfeed(bool state) const; + QStringList subfeedNames() const; QStringList isSubfeedOf() const; bool audienceMetrics() const; void setAudienceMetrics(bool state); diff --git a/rdadmin/edit_feed.cpp b/rdadmin/edit_feed.cpp index bcfcbe9d..070b6340 100644 --- a/rdadmin/edit_feed.cpp +++ b/rdadmin/edit_feed.cpp @@ -625,6 +625,12 @@ void EditFeed::listImagesData() void EditFeed::okData() { + if(feed_is_superfeed_box->currentItem()&& + feed_feed->subfeedNames().size()==0) { + QMessageBox::warning(this,"RDAdmin - "+tr("Error"), + tr("Superfeed must have at least one subfeed assigned!")); + return; + } RDDelete *d=new RDDelete(rda->config(),this); RDUpload *u=new RDUpload(rda->config(),this); if((!d->urlIsSupported(feed_purge_url_edit->text()))|| @@ -919,8 +925,8 @@ void EditFeed::UpdateControlState() feed_media_link_mode_box->setDisabled(redirected||superfeed); feed_media_link_mode_label->setDisabled(redirected||superfeed); - feed_item_image_label->setEnabled(item_image&&(!redirected)); - feed_item_image_box->setEnabled(item_image&&(!redirected)); + feed_item_image_label->setDisabled(item_image&&(redirected||superfeed)); + feed_item_image_box->setDisabled(item_image&&(redirected||superfeed)); feed_header_xml_label->setDisabled(redirected||(!custom_schema)); feed_header_xml_edit->setDisabled(redirected||(!custom_schema)); diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 1b0dca2e..1cb04c62 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -1705,6 +1705,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index e292e035..176f516e 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -1584,6 +1584,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 61fcd92f..725b917a 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -1708,6 +1708,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index f553a16e..23e73097 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -1256,6 +1256,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index c8619ea9..f8d6c577 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -1546,6 +1546,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index c8619ea9..f8d6c577 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -1546,6 +1546,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index 106c3dac..3d364207 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -1556,6 +1556,10 @@ Feeds Channel contains explicit content + + Superfeed must have at least one subfeed assigned! + + EditFeedPerms