diff --git a/ChangeLog b/ChangeLog index 7bc0d2d9..4fd68275 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18064,3 +18064,9 @@ * Optimized RDAudioPort SQL queries. 2018-11-26 Patrick Linstruth * Fixed bug where requested port could overrun HPI_MAX_NODES. +2018-11-29 Fred Gleason + * Added a 'SERVICES.INCLUDE_IMPORT_MARKERS' field to the database. + * Added a 'LOGS.INCLUDE_IMPORT_MARKERS' field to the database. + * Incremented the database version to 301. + * Added an 'Inlcude Import Markers in Finished Logs' checkbox to + the 'Edit Service' dialog in rdadmin(1). diff --git a/docs/opsguide/rdadmin.edit_service_dialog.png b/docs/opsguide/rdadmin.edit_service_dialog.png index c8824877..7e48b15a 100644 Binary files a/docs/opsguide/rdadmin.edit_service_dialog.png and b/docs/opsguide/rdadmin.edit_service_dialog.png differ diff --git a/docs/opsguide/rdadmin.xml b/docs/opsguide/rdadmin.xml index 36e4a386..d503fd1f 100644 --- a/docs/opsguide/rdadmin.xml +++ b/docs/opsguide/rdadmin.xml @@ -361,6 +361,18 @@ as-played data to be purged from the database the specified number of days after being generated. + + The Include Import Markers in Finished Logs + box, if ticked, will cause markers to indicate the base location + of imported Music and Traffic events to be retained even after + such events have been imported. Some users find these markers + distracting, so their retention can be disabled by clearing this + check box. + + + If import markers are not included in finished logs, then it will + not be possible re-import music or traffic data into those logs. + Configuring Autofill Carts diff --git a/docs/tables/logs.txt b/docs/tables/logs.txt index 806a1e3b..3c402a34 100644 --- a/docs/tables/logs.txt +++ b/docs/tables/logs.txt @@ -1,34 +1,34 @@ LOGS Table Layout for Rivendell The LOGS table holds data concerning each log object that exists -on the system. Following is the layout of a record in the LOGS -table: +on the system. FIELD NAME TYPE REMARKS ------------------------------------------------------------------- -NAME varchar(64) -LOG_EXISTS enum('N','Y') -TYPE int(11) 0=Log, 1=Event, 2=Clock, 3=Grid -SERVICE varchar(10) From SERVICES.NAME -DESCRIPTION varchar(64) -ORIGIN_USER varchar(191) From USERS.LOGIN_NAME -ORIGIN_DATETIME datetime -LINK_DATETIME datetime -MODIFIED_DATETIME datetime -AUTO_REFRESH enum('N','Y') -START_DATE date -END_DATE date -PURGE_DATE date -IMPORT_DATE date -SCHEDULED_TRACKS int unsigned(10) -COMPLETED_TRACKS int unsigned(10) -MUSIC_LINKS int -MUSIC_LINKED enum('N','Y') -TRAFFIC_LINKS int -TRAFFIC_LINKED enum('N','Y') -NEXT_ID int(11) -LOCK_USER_NAME varchar(191) From USER.LOGIN_NAME -LOCK_STATION_NAME varchar(64) From STATIONS.NAME -LOCK_IPV4_ADDRESS varchar(16) -LOCK_DATETIME datetime -LOCK_GUID varchar(82) +NAME varchar(64) +LOG_EXISTS enum('N','Y') +TYPE int(11) 0=Log, 1=Event, 2=Clock, 3=Grid +SERVICE varchar(10) From SERVICES.NAME +DESCRIPTION varchar(64) +ORIGIN_USER varchar(191) From USERS.LOGIN_NAME +ORIGIN_DATETIME datetime +LINK_DATETIME datetime +MODIFIED_DATETIME datetime +AUTO_REFRESH enum('N','Y') +START_DATE date +END_DATE date +PURGE_DATE date +IMPORT_DATE date +SCHEDULED_TRACKS int unsigned(10) +COMPLETED_TRACKS int unsigned(10) +INCLUDE_IMPORT_MARKERS enum('N','Y') +MUSIC_LINKS int +MUSIC_LINKED enum('N','Y') +TRAFFIC_LINKS int +TRAFFIC_LINKED enum('N','Y') +NEXT_ID int(11) +LOCK_USER_NAME varchar(191) From USER.LOGIN_NAME +LOCK_STATION_NAME varchar(64) From STATIONS.NAME +LOCK_IPV4_ADDRESS varchar(16) +LOCK_DATETIME datetime +LOCK_GUID varchar(82) diff --git a/docs/tables/services.txt b/docs/tables/services.txt index 6e77d23b..12e14caf 100644 --- a/docs/tables/services.txt +++ b/docs/tables/services.txt @@ -18,6 +18,7 @@ AUTO_REFRESH enum('N','Y') DEFAULT_LOG_SHELFLIFE int(11) LOG_SHELFLIFE_ORIGIN int(11) 0=Air Date, 1=Log Creation ELR_SHELFLIFE int(11) +INCLUDE_IMPORT_MARKERS enum('N','Y') TFC_PATH varchar(191) TFC_PREIMPORT_CMD text TFC_WIN_PATH varchar(191) diff --git a/lib/dbversion.h b/lib/dbversion.h index 77b528ff..0bd4413e 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 300 +#define RD_VERSION_DATABASE 301 #endif // DBVERSION_H diff --git a/lib/rdevent_line.cpp b/lib/rdevent_line.cpp index 9e5c24be..bd3f4498 100644 --- a/lib/rdevent_line.cpp +++ b/lib/rdevent_line.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Log Manager Event // -// (C) Copyright 2002-2006,2016-2018 Fred Gleason +// (C) Copyright 2002-2018 Fred Gleason // // 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 @@ -911,7 +911,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } -bool RDEventLine::linkLog(RDLogEvent *e,const QString &svcname, +bool RDEventLine::linkLog(RDLogEvent *e,RDLog *log,const QString &svcname, RDLogLine *link_logline,const QString &track_str, const QString &label_cart,const QString &track_cart, QString *errors) @@ -945,13 +945,15 @@ bool RDEventLine::linkLog(RDLogEvent *e,const QString &svcname, // // Insert Parent Link // - e->insert(e->size(),1); - logline=new RDLogLine(); - *logline=*link_logline; - logline->setId(e->nextId()); - *(e->logLine(e->size()-1))=*logline; - delete logline; - logline=NULL; + if(log->includeImportMarkers()) { + e->insert(e->size(),1); + logline=new RDLogLine(); + *logline=*link_logline; + logline->setId(e->nextId()); + *(e->logLine(e->size()-1))=*logline; + delete logline; + logline=NULL; + } // // Clear Leading Event Values @@ -1139,17 +1141,7 @@ bool RDEventLine::linkLog(RDLogEvent *e,const QString &svcname, logline->setCartNumber(q->value(0).toUInt()); } } - /* - // - // Clear Leading Event Values - // - time_type=RDLogLine::Relative; - trans_type=event_default_transtype; - */ time=time.addMSecs(length); - /* - grace_time=-1; - */ } delete q; diff --git a/lib/rdevent_line.h b/lib/rdevent_line.h index d51f0988..9032429e 100644 --- a/lib/rdevent_line.h +++ b/lib/rdevent_line.h @@ -2,7 +2,7 @@ // // Abstract a Rivendell Log Manager Event // -// (C) Copyright 2002-2004,2016 Fred Gleason +// (C) Copyright 2002-2018 Fred Gleason // // 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 @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -81,7 +82,7 @@ class RDEventLine bool save(RDConfig *config); bool generateLog(QString logname,const QString &svcname, QString *errors, unsigned artistsep,QString clockname); - bool linkLog(RDLogEvent *e,const QString &svcname, + bool linkLog(RDLogEvent *e,RDLog *log,const QString &svcname, RDLogLine *link_logline,const QString &track_str, const QString &label_cart,const QString &track_cart, QString *errors); diff --git a/lib/rdlog.cpp b/lib/rdlog.cpp index 554fe329..4293a95d 100644 --- a/lib/rdlog.cpp +++ b/lib/rdlog.cpp @@ -223,6 +223,18 @@ void RDLog::setCompletedTracks(unsigned tracks) const } +bool RDLog::includeImportMarkers() const +{ + return RDBool(GetStringValue("INCLUDE_IMPORT_MARKERS")); +} + + +void RDLog::setIncludeImportMarkers(bool state) +{ + SetRow("INCLUDE_IMPORT_MARKERS",RDYesNo(state)); +} + + int RDLog::linkQuantity(RDLog::Source src) const { switch(src) { @@ -638,11 +650,9 @@ QString RDLog::GetStringValue(const QString &field) const q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toString(); - delete q; - return accum; } delete q; - return 0; + return accum; } diff --git a/lib/rdlog.h b/lib/rdlog.h index 872dcb0f..329644e8 100644 --- a/lib/rdlog.h +++ b/lib/rdlog.h @@ -2,7 +2,7 @@ // // Abstract a Rivendell Log // -// (C) Copyright 2002-2004,2016 Fred Gleason +// (C) Copyright 2002-2018 Fred Gleason // // 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 @@ -21,8 +21,6 @@ #ifndef RDLOG_H #define RDLOG_H -#include - #include #include #include @@ -65,6 +63,8 @@ class RDLog void setScheduledTracks(unsigned tracks) const; unsigned completedTracks() const; void setCompletedTracks(unsigned tracks) const; + bool includeImportMarkers() const; + void setIncludeImportMarkers(bool state); int linkQuantity(RDLog::Source src) const; void setLinkQuantity(RDLog::Source src,int quan) const; void updateLinkQuantity(RDLog::Source src) const; diff --git a/lib/rdsvc.cpp b/lib/rdsvc.cpp index 860d455c..25a4afe2 100644 --- a/lib/rdsvc.cpp +++ b/lib/rdsvc.cpp @@ -180,6 +180,20 @@ void RDSvc::setElrShelflife(int days) const } +bool RDSvc::includeImportMarkers() const +{ + return + RDBool(RDGetSqlValue("SERVICES","NAME",svc_name,"INCLUDE_IMPORT_MARKERS"). + toString()); +} + + +void RDSvc::setIncludeImportMarkers(bool state) +{ + SetRow("INCLUDE_IMPORT_MARKERS",RDYesNo(state)); +} + + bool RDSvc::chainto() const { return @@ -722,6 +736,7 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname, log=new RDLog(logname); log->setDescription(RDDateDecode(descriptionTemplate(),date,svc_station, svc_config,svc_name)); + log->setIncludeImportMarkers(includeImportMarkers()); emit generationProgress(1); @@ -805,6 +820,26 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date, return false; } + // + // Calculate Source + // + RDLogLine::Type src_type=RDLogLine::UnknownType; + RDLog::Source link_src=RDLog::SourceMusic; + switch(src) { + case RDSvc::Music: + src_type=RDLogLine::MusicLink; + link_src=RDLog::SourceMusic; + break; + + case RDSvc::Traffic: + src_type=RDLogLine::TrafficLink; + link_src=RDLog::SourceTraffic; + break; + } + RDLog *log=new RDLog(logname); + int current_link=0; + int total_links=log->linkQuantity(link_src); + emit generationProgress(0); // @@ -825,26 +860,6 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date, return false; } - // - // Calculate Source - // - RDLogLine::Type src_type=RDLogLine::UnknownType; - RDLog::Source link_src=RDLog::SourceMusic; - switch(src) { - case RDSvc::Music: - src_type=RDLogLine::MusicLink; - link_src=RDLog::SourceMusic; - break; - - case RDSvc::Traffic: - src_type=RDLogLine::TrafficLink; - link_src=RDLog::SourceTraffic; - break; - } - RDLog *log=new RDLog(logname); - int current_link=0; - int total_links=log->linkQuantity(link_src); - // // Iterate Through the Log // @@ -858,8 +873,8 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date, RDEventLine *e=new RDEventLine(svc_station); e->setName(logline->linkEventName()); e->load(); - e->linkLog(dest_event,svc_name,logline,track_str,label_cart,track_cart, - &autofill_errors); + e->linkLog(dest_event,log,svc_name,logline,track_str,label_cart, + track_cart,&autofill_errors); delete e; emit generationProgress(1+(24*current_link++)/total_links); } diff --git a/lib/rdsvc.h b/lib/rdsvc.h index 541ec4c0..6d2820e6 100644 --- a/lib/rdsvc.h +++ b/lib/rdsvc.h @@ -63,6 +63,8 @@ class RDSvc : public QObject void setLogShelflifeOrigin(ShelflifeOrigin orig); int elrShelflife() const; void setElrShelflife(int days) const; + bool includeImportMarkers() const; + void setIncludeImportMarkers(bool state); bool chainto() const; void setChainto(bool state) const; QString importTemplate(ImportSource src) const; diff --git a/rdadmin/edit_svc.cpp b/rdadmin/edit_svc.cpp index 2340e3df..8ce8c305 100644 --- a/rdadmin/edit_svc.cpp +++ b/rdadmin/edit_svc.cpp @@ -223,6 +223,17 @@ EditSvc::EditSvc(QString svc,QWidget *parent) label->setGeometry(640,117,200,19); label->setAlignment(Qt::AlignLeft); + // + // Include Import Markers by Default + // + svc_import_markers_check=new QCheckBox(this); + svc_import_markers_check->setGeometry(460,140,15,15); + label= + new QLabel(svc_shelflife_box,tr("Include Import Markers in Finished Logs"), + this); + label->setGeometry(480,140,sizeHint().width()-490,19); + label->setAlignment(Qt::AlignLeft); + // // Enable Hosts Button // @@ -506,6 +517,7 @@ EditSvc::EditSvc(QString svc,QWidget *parent) else { svc_shelflife_spin->setDisabled(true); } + svc_import_markers_check->setChecked(svc_svc->includeImportMarkers()); svc_tfc_path_edit->setText(svc_svc->importPath(RDSvc::Traffic)); svc_tfc_preimport_cmd_edit-> setText(svc_svc->preimportCommand(RDSvc::Traffic)); @@ -668,6 +680,7 @@ void EditSvc::Save() else { svc_svc->setElrShelflife(-1); } + svc_svc->setIncludeImportMarkers(svc_import_markers_check->isChecked()); svc_svc->setImportPath(RDSvc::Traffic,svc_tfc_path_edit->text()); svc_svc-> setPreimportCommand(RDSvc::Traffic,svc_tfc_preimport_cmd_edit->text()); diff --git a/rdadmin/edit_svc.h b/rdadmin/edit_svc.h index 4c66d31e..22bd9c1a 100644 --- a/rdadmin/edit_svc.h +++ b/rdadmin/edit_svc.h @@ -84,6 +84,7 @@ class EditSvc : public QDialog QComboBox *svc_loglifeorigin_box; QCheckBox *svc_shelflife_box; QSpinBox *svc_shelflife_spin; + QCheckBox *svc_import_markers_check; bool import_changed; }; diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 21325cd9..6514ad75 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -4043,6 +4043,10 @@ uloženo. Uložit nyní? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index c9285b69..62d256e8 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -3928,6 +3928,10 @@ gespeichert werden. Jetzt speichern? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 292657e6..b019fdcf 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -4000,6 +4000,10 @@ debe guardarse. ¿Hacerlo ahora? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index ba8278f3..9770e30b 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -3373,6 +3373,10 @@ must be saved. Save now? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index 0df2a6fd..92298f12 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -3877,6 +3877,10 @@ Lagre no? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index 0df2a6fd..92298f12 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -3877,6 +3877,10 @@ Lagre no? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index d9da9706..b8337be3 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -3908,6 +3908,10 @@ deve ser salva. Salvar Agora? Preimport Command: + + Include Import Markers in Finished Logs + + EditSvcPerms diff --git a/rdlogmanager/generate_log.cpp b/rdlogmanager/generate_log.cpp index 4141ba63..22148937 100644 --- a/rdlogmanager/generate_log.cpp +++ b/rdlogmanager/generate_log.cpp @@ -390,29 +390,38 @@ void GenerateLog::musicData() RDLog *log=new RDLog(logname); if(((log->linkState(RDLog::SourceMusic)==RDLog::LinkDone)|| (log->linkState(RDLog::SourceTraffic)==RDLog::LinkDone))) { - if(QMessageBox::question(this,"RDLogManager - "+tr("Music Exists"), - tr("The log for")+" "+ - gen_date_edit->date().toString("MM/dd/yyyy")+" "+ - tr("already contains merged music and/or traffic data.")+"\n"+ - tr("Remerging it will remove this data. Remerge?"), - QMessageBox::Yes,QMessageBox::No)!= - QMessageBox::Yes) { - delete log; - delete svc; - return; - } - if((tracks=log->completedTracks())>0) { - if(QMessageBox::warning(this,"RDLogManager - "+tr("Tracks Exist"), - tr("This will also delete the")+ - QString().sprintf(" %u ",tracks)+ - tr("voice tracks associated with this log.")+ - "\n"+tr("Continue?"), - QMessageBox::Yes,QMessageBox::No)!= + if(log->includeImportMarkers()) { + if(QMessageBox::question(this,"RDLogManager - "+tr("Music Exists"), + tr("The log for")+" "+ + gen_date_edit->date().toString("MM/dd/yyyy")+" "+ + tr("already contains merged music and/or traffic data.")+"\n"+ + tr("Remerging it will remove this data. Remerge?"), + QMessageBox::Yes,QMessageBox::No)!= QMessageBox::Yes) { delete log; delete svc; return; } + if((tracks=log->completedTracks())>0) { + if(QMessageBox::warning(this,"RDLogManager - "+tr("Tracks Exist"), + tr("This will also delete the")+ + QString().sprintf(" %u ",tracks)+ + tr("voice tracks associated with this log.")+ + "\n"+tr("Continue?"), + QMessageBox::Yes,QMessageBox::No)!= + QMessageBox::Yes) { + delete log; + delete svc; + return; + } + } + } + else { + QMessageBox::warning(this,"RDLogManager - "+tr("Error"), + tr("The log for")+" "+ + gen_date_edit->date().toString("MM/dd/yyyy")+" "+ + tr("cannot be relinked.")); + return; } log->removeTracks(rda->station(),rda->user(),rda->config()); if(!svc->clearLogLinks(RDSvc::Traffic,logname,rda->user(),&err_msg)) { @@ -461,15 +470,24 @@ void GenerateLog::trafficData() rda->station(),rda->config(),svc->name()); RDLog *log=new RDLog(logname); if((log->linkState(RDLog::SourceTraffic)==RDLog::LinkDone)) { - if(QMessageBox::question(this,"RDLogManager - "+tr("Traffic Exists"), - tr("The log for")+" "+ - gen_date_edit->date().toString("MM/dd/yyyy")+" "+ - tr("already contains merged traffic data.")+"\n"+ - tr("Remerging it will remove this data. Remerge?"), - QMessageBox::Yes,QMessageBox::No)!= - QMessageBox::Yes) { - delete log; - delete svc; + if(log->includeImportMarkers()) { + if(QMessageBox::question(this,"RDLogManager - "+tr("Traffic Exists"), + tr("The log for")+" "+ + gen_date_edit->date().toString("MM/dd/yyyy")+" "+ + tr("already contains merged traffic data.")+"\n"+ + tr("Remerging it will remove this data. Remerge?"), + QMessageBox::Yes,QMessageBox::No)!= + QMessageBox::Yes) { + delete log; + delete svc; + return; + } + } + else { + QMessageBox::warning(this,"RDLogManager - "+tr("Error"), + tr("The log for")+" "+ + gen_date_edit->date().toString("MM/dd/yyyy")+" "+ + tr("cannot be relinked.")); return; } if(!svc->clearLogLinks(RDSvc::Traffic,logname,rda->user(),&err_msg)) { @@ -512,7 +530,9 @@ void GenerateLog::fileScanData() if(gen_music_enabled) { if(QFile::exists(svc-> importFilename(RDSvc::Music,gen_date_edit->date()))) { - gen_music_button->setEnabled(true); + gen_music_button->setEnabled(log->includeImportMarkers()|| + (log->linkState(RDLog::SourceMusic)== + RDLog::LinkMissing)); gen_mus_avail_label->setPixmap(*gen_greenball_map); } else { @@ -527,8 +547,11 @@ void GenerateLog::fileScanData() if(QFile::exists(svc-> importFilename(RDSvc::Traffic,gen_date_edit->date()))) { gen_traffic_button-> - setEnabled((!gen_music_enabled)|| - (log->linkState(RDLog::SourceMusic)==RDLog::LinkDone)); + setEnabled(((!gen_music_enabled)|| + (log->linkState(RDLog::SourceMusic)==RDLog::LinkDone))&& + (log->includeImportMarkers()|| + (log->linkState(RDLog::SourceTraffic)== + RDLog::LinkMissing))); gen_tfc_avail_label->setPixmap(*gen_greenball_map); } else { diff --git a/rdlogmanager/logobject.cpp b/rdlogmanager/logobject.cpp index 2df06495..061e966c 100644 --- a/rdlogmanager/logobject.cpp +++ b/rdlogmanager/logobject.cpp @@ -132,6 +132,13 @@ void LogObject::userData() (const char *)log->name().utf8()); exit(256); } + if((!log->includeImportMarkers())&& + (log->linkState(RDLog::SourceMusic)!=RDLog::LinkMissing)) { + fprintf(stderr, + "rdlogmanager: music for log \"%s\" cannot be reimported\n", + (const char *)log->name().utf8()); + exit(256); + } report=""; log->removeTracks(rda->station(),rda->user(),rda->config()); if(!svc->clearLogLinks(RDSvc::Traffic,logname,rda->user(),&err_msg)) { @@ -168,6 +175,13 @@ void LogObject::userData() (const char *)log->name().utf8()); exit(256); } + if((!log->includeImportMarkers())&& + (log->linkState(RDLog::SourceTraffic)!=RDLog::LinkMissing)) { + fprintf(stderr, + "rdlogmanager: traffic for log \"%s\" cannot be reimported\n", + (const char *)log->name().utf8()); + exit(256); + } report=""; if(!svc->clearLogLinks(RDSvc::Traffic,logname,rda->user(),&err_msg)) { fprintf(stderr,"rdlogmanager: %s\n",(const char *)err_msg); diff --git a/rdlogmanager/rdlogmanager_cs.ts b/rdlogmanager/rdlogmanager_cs.ts index 8ee315d4..c898ea03 100644 --- a/rdlogmanager/rdlogmanager_cs.ts +++ b/rdlogmanager/rdlogmanager_cs.ts @@ -887,11 +887,11 @@ Pokračovat? No Errors - Žádné chyby + Žádné chyby No exceptions found. - Nenalezena žádná chyba. + Nenalezena žádná chyba. already contains merged music and/or traffic data. @@ -977,6 +977,10 @@ Opětovné sloučení tato data smaže. Sloučit znovu? already contains merged traffic data. + + cannot be relinked. + + ImportListView diff --git a/rdlogmanager/rdlogmanager_de.ts b/rdlogmanager/rdlogmanager_de.ts index 5e5a45fe..bd847aac 100644 --- a/rdlogmanager/rdlogmanager_de.ts +++ b/rdlogmanager/rdlogmanager_de.ts @@ -887,11 +887,11 @@ Fortfahren? No Errors - Keine Fehler + Keine Fehler No exceptions found. - Keine Fehler gefunden. + Keine Fehler gefunden. already contains merged music and/or traffic data. @@ -977,6 +977,10 @@ Einbinden wird diese entfernen. Fortfahren? already contains merged traffic data. + + cannot be relinked. + + ImportListView diff --git a/rdlogmanager/rdlogmanager_es.ts b/rdlogmanager/rdlogmanager_es.ts index 50e7e34d..0acddc3b 100644 --- a/rdlogmanager/rdlogmanager_es.ts +++ b/rdlogmanager/rdlogmanager_es.ts @@ -841,11 +841,11 @@ Do you want to save? No Errors - No hubo errores + No hubo errores No exceptions found. - No se encontraron errores. + No se encontraron errores. This will also delete the @@ -979,6 +979,10 @@ removerá estos datos. ¿Remezclar? already contains merged traffic data. + + cannot be relinked. + + ImportListView diff --git a/rdlogmanager/rdlogmanager_fr.ts b/rdlogmanager/rdlogmanager_fr.ts index c79bd17f..f54ce99e 100644 --- a/rdlogmanager/rdlogmanager_fr.ts +++ b/rdlogmanager/rdlogmanager_fr.ts @@ -801,14 +801,6 @@ Do you want to save? Tracks Exist - - No Errors - - - - No exceptions found. - - Music Exists @@ -877,6 +869,18 @@ Do you want to save? already contains merged traffic data. + + No Errors + + + + No exceptions found. + + + + cannot be relinked. + + ImportListView diff --git a/rdlogmanager/rdlogmanager_nb.ts b/rdlogmanager/rdlogmanager_nb.ts index 3af246e9..5abe5c64 100644 --- a/rdlogmanager/rdlogmanager_nb.ts +++ b/rdlogmanager/rdlogmanager_nb.ts @@ -900,11 +900,11 @@ Hald fram? No Errors - Ingen feil + Ingen feil No exceptions found. - Fann ingen unntak. + Fann ingen unntak. already contains merged music and/or traffic data. @@ -982,6 +982,10 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt? already contains merged traffic data. + + cannot be relinked. + + ImportListView diff --git a/rdlogmanager/rdlogmanager_nn.ts b/rdlogmanager/rdlogmanager_nn.ts index 3af246e9..5abe5c64 100644 --- a/rdlogmanager/rdlogmanager_nn.ts +++ b/rdlogmanager/rdlogmanager_nn.ts @@ -900,11 +900,11 @@ Hald fram? No Errors - Ingen feil + Ingen feil No exceptions found. - Fann ingen unntak. + Fann ingen unntak. already contains merged music and/or traffic data. @@ -982,6 +982,10 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt? already contains merged traffic data. + + cannot be relinked. + + ImportListView diff --git a/rdlogmanager/rdlogmanager_pt_BR.ts b/rdlogmanager/rdlogmanager_pt_BR.ts index c682c7eb..95d7eda8 100644 --- a/rdlogmanager/rdlogmanager_pt_BR.ts +++ b/rdlogmanager/rdlogmanager_pt_BR.ts @@ -893,11 +893,11 @@ Continue No Errors - Sem Erros + Sem Erros No exceptions found. - Exceções não encontradas. Parabéns. + Exceções não encontradas. Parabéns. already contains merged music and/or traffic data. @@ -979,6 +979,10 @@ Re-agregar removerá estes dados. Re-agregar? already contains merged traffic data. + + cannot be relinked. + + ImportListView diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 559f29d4..2ef4cfea 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -40,6 +40,16 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) // NEW SCHEMA REVERSIONS GO HERE... + // + // Revert 301 + // + if((cur_schema==301)&&(set_schemacur_schema)) { + sql=QString("alter table SERVICES add column ")+ + "INCLUDE_IMPORT_MARKERS enum('N','Y') default 'Y' after ELR_SHELFLIFE"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + sql=QString("alter table LOGS add column ")+ + "INCLUDE_IMPORT_MARKERS enum('N','Y') default 'Y' after COMPLETED_TRACKS"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + WriteSchemaVersion(++cur_schema); + } + + // NEW SCHEMA UPDATES GO HERE... //