2020-03-16 Fred Gleason <fredg@paravelsystems.com>

* Updated the maximum length of RSS <channel> entries to match
	the current DB schema in the 'Edit Feed' dialog in rdadmin(1).
	* Added a 'FEEDS.CHANNEL_EDITOR' field to the database.
	* Incremented the database version to 318.
	* Added 'RDFeed::channelEditor()' and
	'RDFeed::setChannelEditor()' methods.
	* Added an 'Editor' control to the 'Channel' controls in the
	'Edit Feed' dialog in rdadmin(1).
This commit is contained in:
Fred Gleason 2020-03-16 14:05:05 -04:00
parent 2839845199
commit 9eb6b5fae3
17 changed files with 182 additions and 89 deletions

View File

@ -19816,3 +19816,12 @@
that caused the Transition Type dropdown to be greyed-out when
the 'IMPORT' controls were set to use the built-in music
scheduler.
2020-03-16 Fred Gleason <fredg@paravelsystems.com>
* Updated the maximum length of RSS <channel> entries to match
the current DB schema in the 'Edit Feed' dialog in rdadmin(1).
* Added a 'FEEDS.CHANNEL_EDITOR' field to the database.
* Incremented the database version to 318.
* Added 'RDFeed::channelEditor()' and
'RDFeed::setChannelEditor()' methods.
* Added an 'Editor' control to the 'Channel' controls in the
'Edit Feed' dialog in rdadmin(1).

View File

@ -13,6 +13,7 @@ CHANNEL_DESCRIPTION text
CHANNEL_CATEGORY varchar(64)
CHANNEL_LINK varchar(191)
CHANNEL_COPYRIGHT varchar(64)
CHANNEL_EDITOR varchar(64)
CHANNEL_WEBMASTER varchar(64)
CHANNEL_LANGUAGE varchar(5)
BASE_URL varchar(191)

View File

@ -24,7 +24,7 @@
/*
* Current Database Version
*/
#define RD_VERSION_DATABASE 317
#define RD_VERSION_DATABASE 318
#endif // DBVERSION_H

View File

@ -48,7 +48,7 @@
//
#define DEFAULT_HEADER_XML "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">"
#define DEFAULT_CHANNEL_XML "<title>%TITLE%</title>\n<description>%DESCRIPTION%</description>\n<category>%CATEGORY%</category>\n<link>%LINK%</link>\n<language>%LANGUAGE%</language>\n<copyright>%COPYRIGHT%</copyright>\n<lastBuildDate>%BUILD_DATE%</lastBuildDate>\n<pubDate>%PUBLISH_DATE%</pubDate>\n<webMaster>%WEBMASTER%</webMaster>\n<generator>%GENERATOR%</generator>\n<atom:link href=\"%FEED_URL%\" rel=\"self\" type=\"application/rss+xml\" />"
#define DEFAULT_CHANNEL_XML "<title>%TITLE%</title>\n<description>%DESCRIPTION%</description>\n<category>%CATEGORY%</category>\n<link>%LINK%</link>\n<language>%LANGUAGE%</language>\n<copyright>%COPYRIGHT%</copyright>\n<lastBuildDate>%BUILD_DATE%</lastBuildDate>\n<pubDate>%PUBLISH_DATE%</pubDate>\n<managingEditor>%EDITOR%</managingEditor>\n<webMaster>%WEBMASTER%</webMaster>\n<generator>%GENERATOR%</generator>\n<atom:link href=\"%FEED_URL%\" rel=\"self\" type=\"application/rss+xml\" />"
#define DEFAULT_ITEM_XML "<title>%ITEM_TITLE%</title>\n<link>%ITEM_LINK%</link>\n<guid isPermaLink=\"false\">%ITEM_GUID%</guid>\n<description>%ITEM_DESCRIPTION%</description>\n<author>%ITEM_AUTHOR%</author>\n<comments>%ITEM_COMMENTS%</comments>\n<source url=\"%ITEM_SOURCE_URL%\">%ITEM_SOURCE_TEXT%</source>\n<enclosure url=\"%ITEM_AUDIO_URL%\" length=\"%ITEM_AUDIO_LENGTH%\" type=\"audio/mpeg\" />\n<category>%ITEM_CATEGORY%</category>\n<pubDate>%ITEM_PUBLISH_DATE%</pubDate>"
@ -254,6 +254,19 @@ void RDFeed::setChannelWebmaster(const QString &str) const
}
QString RDFeed::channelEditor() const
{
return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_EDITOR").
toString();
}
void RDFeed::setChannelEditor(const QString &str) const
{
SetRow("CHANNEL_EDITOR",str);
}
QString RDFeed::channelLanguage() const
{
return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_LANGUAGE").
@ -988,21 +1001,24 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok)
"CHANNEL_CATEGORY,"+ // 02
"CHANNEL_LINK,"+ // 03
"CHANNEL_COPYRIGHT,"+ // 04
"CHANNEL_WEBMASTER,"+ // 05
"CHANNEL_LANGUAGE,"+ // 06
"LAST_BUILD_DATETIME,"+ // 07
"ORIGIN_DATETIME,"+ // 08
"HEADER_XML,"+ // 09
"CHANNEL_XML,"+ // 10
"ITEM_XML,"+ // 11
"BASE_URL,"+ // 12
"ID,"+ // 13
"UPLOAD_EXTENSION,"+ // 14
"CAST_ORDER,"+ // 15
"REDIRECT_PATH,"+ // 16
"BASE_PREAMBLE,"+ // 17
"AUDIENCE_METRICS,"+ // 18
"IS_SUPERFEED "+ // 19
"CHANNEL_EDITOR,"+ // 05
"CHANNEL_WEBMASTER,"+ // 06
"CHANNEL_LANGUAGE,"+ // 07
"LAST_BUILD_DATETIME,"+ // 08
"ORIGIN_DATETIME,"+ // 09
"HEADER_XML,"+ // 10
"CHANNEL_XML,"+ // 11
"ITEM_XML,"+ // 12
"BASE_URL,"+ // 13
"ID,"+ // 14
"UPLOAD_EXTENSION,"+ // 15
"CAST_ORDER,"+ // 16
"REDIRECT_PATH,"+ // 17
"BASE_PREAMBLE,"+ // 18
"AUDIENCE_METRICS,"+ // 19
"IS_SUPERFEED "+ // 20
"from FEEDS where "+
"KEY_NAME=\""+RDEscapeString(keyName())+"\"";
q=new RDSqlQuery(sql);
@ -1014,7 +1030,7 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok)
//
// Render Header XML
//
ret+=q->value(9).toString()+"\r\n";
ret+=q->value(10).toString()+"\r\n";
//
// Render Channel XML
@ -1026,11 +1042,11 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok)
// Render Item XML
//
QString where;
if(q->value(19).toString()=="Y") {
if(q->value(20).toString()=="Y") {
sql=QString("select ")+
"MEMBER_FEED_ID "+ // 00
"from SUPERFEED_MAPS where "+
QString().sprintf("FEED_ID=%d",q->value(13).toUInt());
QString().sprintf("FEED_ID=%d",q->value(14).toUInt());
q1=new RDSqlQuery(sql);
while(q1->next()) {
where+=QString().sprintf("(FEED_ID=%u) || ",q1->value(0).toUInt());
@ -1039,7 +1055,7 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok)
where=("("+where.left(where.length()-4)+") && ");
}
else {
where =QString().sprintf("(FEED_ID=%u)&&",q->value(13).toUInt());
where =QString().sprintf("(FEED_ID=%u)&&",q->value(14).toUInt());
}
sql=QString("select ")+
"PODCASTS.ITEM_TITLE,"+ // 00
@ -1061,7 +1077,7 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok)
where+
QString().sprintf("(PODCASTS.STATUS=%d) ",RDPodcast::StatusActive)+
"order by PODCASTS.ORIGIN_DATETIME";
if(q->value(15).toString()=="N") {
if(q->value(16).toString()=="N") {
sql+=" desc";
}
q1=new RDSqlQuery(sql);
@ -1288,12 +1304,7 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const
RDSqlQuery *q;
RDSqlQuery *q1;
unsigned cast_id=0;
/*
sql=QString().sprintf("select CHANNEL_TITLE,CHANNEL_DESCRIPTION,\
CHANNEL_CATEGORY,CHANNEL_LINK,MAX_SHELF_LIFE,\
UPLOAD_FORMAT,UPLOAD_EXTENSION from FEEDS \
where ID=%u",feed_id);
*/
sql=QString("select ")+
"CHANNEL_TITLE,"+ // 00
"CHANNEL_DESCRIPTION,"+ // 01
@ -1355,7 +1366,7 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const
QString RDFeed::ResolveChannelWildcards(RDSqlQuery *chan_q)
{
QString ret=" "+chan_q->value(10).toString();
QString ret=" "+chan_q->value(11).toString();
ret.replace("\n","\r\n ");
ret.replace("%TITLE%",RDXmlEscape(chan_q->value(0).toString()));
@ -1363,14 +1374,15 @@ QString RDFeed::ResolveChannelWildcards(RDSqlQuery *chan_q)
ret.replace("%CATEGORY%",RDXmlEscape(chan_q->value(2).toString()));
ret.replace("%LINK%",RDXmlEscape(chan_q->value(3).toString()));
ret.replace("%COPYRIGHT%",RDXmlEscape(chan_q->value(4).toString()));
ret.replace("%WEBMASTER%",RDXmlEscape(chan_q->value(5).toString()));
ret.replace("%LANGUAGE%",RDXmlEscape(chan_q->value(6).toString()));
ret.replace("%BUILD_DATE%",chan_q->value(7).toDateTime().
ret.replace("%EDITOR%",RDXmlEscape(chan_q->value(5).toString()));
ret.replace("%WEBMASTER%",RDXmlEscape(chan_q->value(6).toString()));
ret.replace("%LANGUAGE%",RDXmlEscape(chan_q->value(7).toString()));
ret.replace("%BUILD_DATE%",chan_q->value(8).toDateTime().
toString("ddd, d MMM yyyy hh:mm:ss ")+"GMT");
ret.replace("%PUBLISH_DATE%",chan_q->value(8).toDateTime().
ret.replace("%PUBLISH_DATE%",chan_q->value(9).toDateTime().
toString("ddd, d MMM yyyy hh:mm:ss ")+"GMT");
ret.replace("%GENERATOR%",QString("Rivendell ")+VERSION);
ret.replace("%FEED_URL%",RDXmlEscape(chan_q->value(12).toString())+"/"+
ret.replace("%FEED_URL%",RDXmlEscape(chan_q->value(13).toString())+"/"+
RDXmlEscape(keyName()+"."+RD_RSS_XML_FILE_EXTENSION));
return ret;
@ -1403,7 +1415,7 @@ QString RDFeed::ResolveItemWildcards(RDSqlQuery *item_q,RDSqlQuery *chan_q)
}
ret.replace("%ITEM_COMMENTS%",
RDXmlEscape(item_q->value(7).toString()));
if(chan_q->value(18).toString()=="Y") {
if(chan_q->value(19).toString()=="Y") {
ret.replace("%ITEM_AUDIO_URL%",
RDXmlEscape(audioUrl(RDFeed::LinkCounted,feed_cgi_hostname,
item_q->value(12).toUInt())));
@ -1418,9 +1430,9 @@ QString RDFeed::ResolveItemWildcards(RDSqlQuery *item_q,RDSqlQuery *chan_q)
RDGetTimeLength(item_q->value(10).toInt(),false,false));
ret.replace("%ITEM_PUBLISH_DATE%",item_q->value(11).toDateTime().
toString("ddd, d MMM yyyy hh:mm:ss ")+"GMT");
ret.replace("%ITEM_GUID%",RDPodcast::guid(chan_q->value(12).toString(),
ret.replace("%ITEM_GUID%",RDPodcast::guid(chan_q->value(13).toString(),
item_q->value(8).toString(),
chan_q->value(11).toUInt(),
chan_q->value(12).toUInt(),
item_q->value(12).toUInt()));
return ret;
}

View File

@ -59,6 +59,8 @@ class RDFeed : public QObject
void setChannelLink(const QString &str) const;
QString channelCopyright() const;
void setChannelCopyright(const QString &str) const;
QString channelEditor() const;
void setChannelEditor(const QString &str) const;
QString channelWebmaster() const;
void setChannelWebmaster(const QString &str) const;
QString channelLanguage() const;

View File

@ -87,7 +87,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
// Channel Title
//
feed_channel_title_edit=new QLineEdit(this);
feed_channel_title_edit->setMaxLength(255);
feed_channel_title_edit->setMaxLength(191);
feed_channel_title_label=
new QLabel(feed_channel_title_edit,tr("Title:"),this);
feed_channel_title_label->setFont(labelFont());
@ -108,7 +108,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
// Channel Link
//
feed_channel_link_edit=new QLineEdit(this);
feed_channel_link_edit->setMaxLength(255);
feed_channel_link_edit->setMaxLength(191);
feed_channel_link_label=
new QLabel(feed_channel_link_edit,tr("Link:"),this);
feed_channel_link_label->setFont(labelFont());
@ -125,6 +125,17 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
feed_channel_copyright_label->
setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Channel Editor
//
feed_channel_editor_edit=new QLineEdit(this);
feed_channel_editor_edit->setMaxLength(64);
feed_channel_editor_label=
new QLabel(feed_channel_editor_edit,tr("Editor:"),this);
feed_channel_editor_label->setFont(labelFont());
feed_channel_editor_label->
setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Channel Webmaster
//
@ -160,7 +171,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
// Purge Audio URL
//
feed_purge_url_edit=new QLineEdit(this);
feed_purge_url_edit->setMaxLength(255);
feed_purge_url_edit->setMaxLength(191);
feed_purge_url_label=
new QLabel(feed_purge_url_edit,tr("Upload URL")+":",this);
feed_purge_url_label->setFont(labelFont());
@ -230,7 +241,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
// Base Audio URL
//
feed_base_url_edit=new QLineEdit(this);
feed_base_url_edit->setMaxLength(255);
feed_base_url_edit->setMaxLength(191);
feed_base_url_label=
new QLabel(feed_base_url_edit,tr("Download URL")+":",this);
feed_base_url_label->setFont(labelFont());
@ -258,7 +269,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
// Enclosure Preamble
//
feed_base_preamble_edit=new QLineEdit(this);
feed_base_preamble_edit->setMaxLength(255);
feed_base_preamble_edit->setMaxLength(191);
feed_base_preamble_label=
new QLabel(feed_base_preamble_edit,tr("Enclosure Preamble:"),this);
feed_base_preamble_label->setFont(labelFont());
@ -383,6 +394,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
feed_channel_category_edit->setText(feed_feed->channelCategory());
feed_channel_link_edit->setText(feed_feed->channelLink());
feed_channel_copyright_edit->setText(feed_feed->channelCopyright());
feed_channel_editor_edit->setText(feed_feed->channelEditor());
feed_channel_webmaster_edit->setText(feed_feed->channelWebmaster());
feed_channel_description_edit->setPlainText(feed_feed->channelDescription());
feed_channel_language_edit->setText(feed_feed->channelLanguage());
@ -425,7 +437,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent)
QSize EditFeed::sizeHint() const
{
return QSize(1000,643);
return QSize(1000,665);
}
@ -452,13 +464,15 @@ void EditFeed::isSuperfeedChangedData(int n)
feed_channel_category_edit->setDisabled(redirected);
feed_channel_link_edit->setDisabled(redirected);
feed_channel_copyright_edit->setDisabled(redirected);
feed_channel_editor_label->setDisabled(redirected);
feed_channel_editor_edit->setDisabled(redirected);
feed_channel_webmaster_label->setDisabled(redirected);
feed_channel_webmaster_edit->setDisabled(redirected);
feed_channel_language_edit->setDisabled(redirected);
feed_channel_title_label->setDisabled(redirected);
feed_channel_category_label->setDisabled(redirected);
feed_channel_link_label->setDisabled(redirected);
feed_channel_copyright_label->setDisabled(redirected);
feed_channel_webmaster_label->setDisabled(redirected);
feed_channel_language_label->setDisabled(redirected);
feed_channel_description_label->setDisabled(redirected);
@ -601,6 +615,7 @@ void EditFeed::okData()
feed_feed->setChannelCategory(feed_channel_category_edit->text());
feed_feed->setChannelLink(feed_channel_link_edit->text());
feed_feed->setChannelCopyright(feed_channel_copyright_edit->text());
feed_feed->setChannelEditor(feed_channel_editor_edit->text());
feed_feed->setChannelWebmaster(feed_channel_webmaster_edit->text());
feed_feed->setChannelDescription(feed_channel_description_edit->text());
feed_feed->setChannelLanguage(feed_channel_language_edit->text());
@ -659,7 +674,7 @@ void EditFeed::resizeEvent(QResizeEvent *e)
feed_audience_metrics_check->setGeometry(20,74,15,15);
feed_audience_metrics_label->setGeometry(40,72,375,19);
feed_channel_section_groupbox->setGeometry(10,97,sizeHint().width()/2-10,227);
feed_channel_section_groupbox->setGeometry(10,97,sizeHint().width()/2-10,249);
feed_channel_title_edit->setGeometry(115,112,375,19);
feed_channel_title_label->setGeometry(20,112,90,19);
feed_channel_category_edit->setGeometry(115,134,375,19);
@ -668,56 +683,59 @@ void EditFeed::resizeEvent(QResizeEvent *e)
feed_channel_link_label->setGeometry(20,156,90,19);
feed_channel_copyright_edit->setGeometry(115,178,375,19);
feed_channel_copyright_label->setGeometry(20,178,90,19);
feed_channel_webmaster_edit->setGeometry(115,200,375,19);
feed_channel_webmaster_label->setGeometry(20,200,90,19);
feed_channel_language_edit->setGeometry(115,222,60,19);
feed_channel_language_label->setGeometry(20,222,90,19);
feed_channel_description_edit->setGeometry(115,244,375,76);
feed_channel_description_label->setGeometry(20,244,90,19);
feed_channel_editor_edit->setGeometry(115,200,375,19);
feed_channel_editor_label->setGeometry(20,200,90,19);
feed_channel_webmaster_edit->setGeometry(115,222,375,19);
feed_channel_webmaster_label->setGeometry(20,222,90,19);
feed_channel_language_edit->setGeometry(115,244,60,19);
feed_channel_language_label->setGeometry(20,244,90,19);
feed_channel_description_edit->setGeometry(115,266,375,76);
feed_channel_description_label->setGeometry(20,266,90,19);
feed_purge_url_edit->setGeometry(155,332,335,19);
feed_purge_url_label->setGeometry(20,332,130,19);
feed_purge_username_edit->setGeometry(225,354,95,19);
feed_purge_username_label->setGeometry(40,354,180,19);
feed_purge_password_edit->setGeometry(395,354,95,19);
feed_purge_password_label->setGeometry(320,354,70,19);
feed_purge_url_edit->setGeometry(155,354,335,19);
feed_purge_url_label->setGeometry(20,354,130,19);
feed_purge_username_edit->setGeometry(225,376,95,19);
feed_purge_username_label->setGeometry(40,376,180,19);
feed_purge_password_edit->setGeometry(395,376,95,19);
feed_purge_password_label->setGeometry(320,376,70,19);
feed_format_edit->setGeometry(155,376,285,20);
feed_format_label->setGeometry(5,376,145,20);
feed_format_button->setGeometry(450,376,40,24);
feed_normalize_box->setGeometry(155,400,15,15);
feed_normalize_check_label->setGeometry(175,398,83,20);
feed_normalize_spin->setGeometry(295,398,40,20);
feed_normalize_label->setGeometry(245,398,45,20);
feed_normalize_unit_label->setGeometry(340,398,40,20);
feed_format_edit->setGeometry(155,398,285,20);
feed_format_label->setGeometry(5,398,145,20);
feed_format_button->setGeometry(450,398,40,24);
feed_base_url_edit->setGeometry(155,420,335,19);
feed_base_url_label->setGeometry(5,420,145,19);
feed_keep_metadata_box->setGeometry(155,442,15,15);
feed_keep_metadata_label->setGeometry(175,442,180,19);
feed_autopost_box->setGeometry(365,442,15,15);
feed_autopost_label->setGeometry(385,442,200,19);
feed_normalize_box->setGeometry(155,422,15,15);
feed_normalize_check_label->setGeometry(175,420,83,20);
feed_normalize_spin->setGeometry(295,418,40,20);
feed_normalize_label->setGeometry(245,418,45,20);
feed_normalize_unit_label->setGeometry(340,418,40,20);
feed_base_preamble_edit->setGeometry(155,464,335,19);
feed_base_preamble_label->setGeometry(20,464,130,19);
feed_base_url_edit->setGeometry(155,442,335,19);
feed_base_url_label->setGeometry(5,442,145,19);
feed_keep_metadata_box->setGeometry(155,464,15,15);
feed_keep_metadata_label->setGeometry(175,462,180,19);
feed_autopost_box->setGeometry(365,464,15,15);
feed_autopost_label->setGeometry(385,462,200,19);
feed_extension_edit->setGeometry(155,486,70,19);
feed_extension_label->setGeometry(20,486,130,19);
feed_base_preamble_edit->setGeometry(155,486,335,19);
feed_base_preamble_label->setGeometry(20,486,130,19);
feed_max_shelf_life_spin->setGeometry(155,508,60,19);
feed_max_shelf_life_label->setGeometry(20,508,130,19);
feed_max_shelf_life_unit_label->setGeometry(220,508,50,19);
feed_extension_edit->setGeometry(155,508,70,19);
feed_extension_label->setGeometry(20,508,130,19);
feed_castorder_box->setGeometry(155,530,100,19);
feed_castorder_label->setGeometry(20,530,130,19);
feed_max_shelf_life_spin->setGeometry(155,530,60,19);
feed_max_shelf_life_label->setGeometry(20,530,130,19);
feed_max_shelf_life_unit_label->setGeometry(220,530,50,19);
feed_media_link_mode_box->setGeometry(155,552,100,19);
feed_media_link_mode_label->setGeometry(20,552,130,19);
feed_castorder_box->setGeometry(155,552,100,19);
feed_castorder_label->setGeometry(20,552,130,19);
feed_redirect_check->setGeometry(20,584,15,15);
feed_redirect_label->setGeometry(40,584,200,19);
feed_redirect_url_edit->setGeometry(85,604,405,20);
feed_redirect_url_label->setGeometry(40,604,40,19);
feed_media_link_mode_box->setGeometry(155,574,100,19);
feed_media_link_mode_label->setGeometry(20,574,130,19);
feed_redirect_check->setGeometry(20,606,15,15);
feed_redirect_label->setGeometry(40,606,200,19);
feed_redirect_url_edit->setGeometry(85,626,405,20);
feed_redirect_url_label->setGeometry(40,626,40,19);
feed_header_xml_edit->setGeometry(615,10,size().width()-625,76);
feed_header_xml_label->setGeometry(520,10,90,19);

View File

@ -70,6 +70,9 @@ class EditFeed : public RDDialog
QLineEdit *feed_channel_category_edit;
QLineEdit *feed_channel_link_edit;
QLineEdit *feed_channel_copyright_edit;
QLabel *feed_channel_editor_label;
QLineEdit *feed_channel_editor_edit;
QLabel *feed_channel_webmaster_label;
QLineEdit *feed_channel_webmaster_edit;
QLineEdit *feed_channel_language_edit;
QLineEdit *feed_base_url_edit;
@ -103,7 +106,6 @@ class EditFeed : public RDDialog
QLabel *feed_channel_category_label;
QLabel *feed_channel_link_label;
QLabel *feed_channel_copyright_label;
QLabel *feed_channel_webmaster_label;
QLabel *feed_channel_language_label;
QLabel *feed_channel_description_label;
QLabel *feed_base_url_label;

View File

@ -1665,6 +1665,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -1548,6 +1548,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -1668,6 +1668,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -1220,6 +1220,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -1510,6 +1510,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -1510,6 +1510,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -1520,6 +1520,10 @@ Feeds</source>
<source>Download URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Editor:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditFeedPerms</name>

View File

@ -41,6 +41,15 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
// NEW SCHEMA REVERSIONS GO HERE...
//
// Revert 318
//
if((cur_schema==318)&&(set_schema<cur_schema)) {
DropColumn("FEEDS","CHANNEL_EDITOR");
WriteSchemaVersion(--cur_schema);
}
//
// Revert 317
//

View File

@ -159,7 +159,8 @@ void MainObject::InitializeSchemaMap() {
global_version_map["3.0"]=308;
global_version_map["3.1"]=310;
global_version_map["3.2"]=311;
global_version_map["3.3"]=317;
global_version_map["3.3"]=314;
global_version_map["3.4"]=318;
}

View File

@ -2,7 +2,7 @@
//
// Update Rivendell DB schema.
//
// (C) Copyright 2018-2019 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2018-2020 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
@ -9955,6 +9955,17 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
WriteSchemaVersion(++cur_schema);
}
if((cur_schema<318)&&(set_schema>cur_schema)) {
sql=QString("alter table FEEDS add column ")+
"CHANNEL_EDITOR varchar(64) after CHANNEL_COPYRIGHT";
if(!RDSqlQuery::apply(sql,err_msg)) {
return false;
}
WriteSchemaVersion(++cur_schema);
}
// NEW SCHEMA UPDATES GO HERE...