diff --git a/ChangeLog b/ChangeLog index 010dc11b..ca14475f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16388,3 +16388,9 @@ 2017-11-28 Fred Gleason * Fixed a bug in the 'Add Log' dialog that allowed creation of a log with a blank name. +2017-11-28 Fred Gleason + * Implemented application of the 'Purge Logs' setting when creating + logs manually. + * Changed the wording of the 'Purge Logs' and 'Purge ELR Data' + control in the Edit Service dialog in rdadmin(1). + * Added 'RDLog::create()' and 'RDLog::remove()' static methods. diff --git a/lib/librd_cs.ts b/lib/librd_cs.ts index c1da74f8..9cacf4e6 100644 --- a/lib/librd_cs.ts +++ b/lib/librd_cs.ts @@ -519,6 +519,18 @@ Cut Záběr + + Log already exists! + + + + OK + OK + + + No such service! + + RDAddCart diff --git a/lib/librd_de.ts b/lib/librd_de.ts index a14d155d..44e28f4e 100644 --- a/lib/librd_de.ts +++ b/lib/librd_de.ts @@ -515,6 +515,18 @@ Cut Cut + + Log already exists! + + + + OK + OK + + + No such service! + + RDAddCart diff --git a/lib/librd_es.ts b/lib/librd_es.ts index d231dd90..5136c045 100644 --- a/lib/librd_es.ts +++ b/lib/librd_es.ts @@ -515,6 +515,18 @@ Cut Cortar + + Log already exists! + + + + OK + + + + No such service! + + RDAddCart diff --git a/lib/librd_fr.ts b/lib/librd_fr.ts index 75d6a127..6d424b2b 100644 --- a/lib/librd_fr.ts +++ b/lib/librd_fr.ts @@ -493,6 +493,18 @@ Cut + + Log already exists! + + + + OK + + + + No such service! + + RDAddCart diff --git a/lib/librd_nb.ts b/lib/librd_nb.ts index 06f850ec..41ab2692 100644 --- a/lib/librd_nb.ts +++ b/lib/librd_nb.ts @@ -515,6 +515,18 @@ Cut Klypp + + Log already exists! + + + + OK + OK + + + No such service! + + RDAddCart diff --git a/lib/librd_nn.ts b/lib/librd_nn.ts index 06f850ec..41ab2692 100644 --- a/lib/librd_nn.ts +++ b/lib/librd_nn.ts @@ -515,6 +515,18 @@ Cut Klypp + + Log already exists! + + + + OK + OK + + + No such service! + + RDAddCart diff --git a/lib/librd_pt_BR.ts b/lib/librd_pt_BR.ts index e254a77a..d6974c59 100644 --- a/lib/librd_pt_BR.ts +++ b/lib/librd_pt_BR.ts @@ -515,6 +515,18 @@ Cut Conteúdo + + Log already exists! + + + + OK + OK + + + No such service! + + RDAddCart diff --git a/lib/rdlog.cpp b/lib/rdlog.cpp index 56cacd04..629d445f 100644 --- a/lib/rdlog.cpp +++ b/lib/rdlog.cpp @@ -18,40 +18,20 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include -#include +#include -// -// Global Classes -// -RDLog::RDLog(const QString &name,bool create) +#include "rddb.h" +#include "rdconf.h" +#include "rdcreate_log.h" +#include "rdescape_string.h" +#include "rdlog.h" +#include "rdlog_line.h" +#include "rdsvc.h" +#include "rdweb.h" + +RDLog::RDLog(const QString &name) { - RDSqlQuery *q; - QString sql; - log_name=name; - - if(create) { - sql=QString("select NAME from LOGS where ")+ - "(NAME=\""+RDEscapeString(log_name)+"\")"; - q=new RDSqlQuery(sql); - if(q->size()!=1) { - delete q; - sql=QString(). - sprintf("INSERT INTO LOGS SET NAME=\"%s\",ORIGIN_DATETIME=NOW(),\ - LINK_DATETIME=NOW(),MODIFIED_DATETIME=now()", - (const char *)RDEscapeString(log_name)); - q=new RDSqlQuery(sql); - delete q; - } - else { - delete q; - } - } } @@ -506,6 +486,55 @@ QString RDLog::xml() const } +bool RDLog::create(const QString &name,const QString &svc_name, + const QString &user_name,QString *err_msg) +{ + QString sql; + RDSqlQuery *q; + int shelflife=-1; + QString desc_tmpl; + + sql=QString("select ")+ + "DEFAULT_LOG_SHELFLIFE,"+ // 00 + "DESCRIPTION_TEMPLATE "+ // 01 + "from SERVICES where "+ + "NAME=\""+RDEscapeString(svc_name)+"\""; + q=new RDSqlQuery(sql); + if(q->first()) { + shelflife=q->value(0).toInt(); + desc_tmpl=q->value(1).toString(); + } + else { + *err_msg=QObject::tr("No such service!"); + delete q; + return false; + } + delete q; + sql=QString("insert into LOGS set ")+ + "NAME=\""+RDEscapeString(name)+"\","+ + "TYPE=0,"+ + "DESCRIPTION=\""+RDEscapeString(name)+" log \","+ + "ORIGIN_USER=\""+RDEscapeString(user_name)+"\","+ + "ORIGIN_DATETIME=now(),"+ + "LINK_DATETIME=now(),"+ + "SERVICE=\""+RDEscapeString(svc_name)+"\""; + if(shelflife>=0) { + sql+=",PURGE_DATE=\""+ + QDate::currentDate().addDays(shelflife).toString("yyyy-MM-dd")+"\""; + } + q=new RDSqlQuery(sql); + if(!q->isActive()) { + *err_msg=QObject::tr("Log already exists!"); + delete q; + return false; + } + delete q; + RDCreateLogTable(RDLog::tableName(name)); + *err_msg=QObject::tr("OK"); + return true; +} + + bool RDLog::exists(const QString &name) { QString sql; @@ -522,6 +551,18 @@ bool RDLog::exists(const QString &name) } +bool RDLog::remove(const QString &name,RDStation *station,RDUser *user, + RDConfig *config) +{ + RDLog *log=new RDLog(name); + bool ret=false; + + ret=log->remove(station,user,config); + delete log; + return ret; +} + + QString RDLog::tableName(const QString &log_name) { QString ret=log_name; diff --git a/lib/rdlog.h b/lib/rdlog.h index 0cb95486..f260fbfe 100644 --- a/lib/rdlog.h +++ b/lib/rdlog.h @@ -34,7 +34,7 @@ class RDLog enum Type {Log=0,Event=1,Clock=2,Grid=3}; enum Source {SourceTraffic=0,SourceMusic=1}; enum LinkState {LinkMissing=0,LinkDone=1,LinkNotPresent=2}; - RDLog(const QString &name,bool create=false); + RDLog(const QString &name); QString name() const; bool exists() const; bool logExists() const; @@ -78,7 +78,11 @@ class RDLog int removeTracks(RDStation *station,RDUser *user,RDConfig *config) const; RDLogEvent *createLogEvent() const; QString xml() const; + static bool create(const QString &name,const QString &svc_name, + const QString &user_name,QString *err_msg); static bool exists(const QString &name); + static bool remove(const QString &name,RDStation *station,RDUser *user, + RDConfig *config); static QString tableName(const QString &log_name); private: diff --git a/lib/rdsvc.cpp b/lib/rdsvc.cpp index ce5032e5..669ed0b2 100644 --- a/lib/rdsvc.cpp +++ b/lib/rdsvc.cpp @@ -708,11 +708,13 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, bool RDSvc::generateLog(const QDate &date,const QString &logname, - const QString &nextname,QString *report) + const QString &nextname,QString *report,RDUser *user) { QString sql; RDSqlQuery *q; RDClock clock; + QString err_msg; + RDLog *log=NULL; if((!date.isValid()||logname.isEmpty())) { return false; @@ -723,50 +725,14 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname, // // Generate Log Structure // - QDate purge_date; - if(defaultLogShelflife()>=0) { - purge_date=date.addDays(defaultLogShelflife()); + if(RDLog::exists(logname)) { + RDLog::remove(logname,svc_station,user,svc_config); } - sql=QString().sprintf("select NAME from LOGS where NAME=\"%s\"", - (const char *)RDEscapeString(logname)); - q=new RDSqlQuery(sql); - if(q->first()) { // Already Exists - delete q; - sql=QString().sprintf("update LOGS set SERVICE=\"%s\",\ - DESCRIPTION=\"%s\",ORIGIN_USER=\"%s\",\ - ORIGIN_DATETIME=now(),LINK_DATETIME=now(),\ - MODIFIED_DATETIME=now(),START_DATE=null,\ - END_DATE=null,NEXT_ID=0", - (const char *)RDEscapeString(svc_name), - (const char *)RDEscapeString(RDDateDecode(descriptionTemplate(),date,svc_station,svc_config,svc_name)), - "RDLogManager"); - if(!purge_date.isValid()) { - sql+=(",PURGE_DATE=\""+purge_date.toString("yyyy-MM-dd")+"\""); - } - sql+=(" where NAME=\""+RDEscapeString(logname)+"\""); + RDLog::create(logname,svc_name,"RDLogManager",&err_msg); + log=new RDLog(logname); + log->setDescription(RDDateDecode(descriptionTemplate(),date,svc_station, + svc_config,svc_name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString("drop table `")+RDLog::tableName(logname)+"`"; - q=new RDSqlQuery(sql); - delete q; - } - else { // Doesn't exist - delete q; - sql=QString().sprintf("insert into LOGS set NAME=\"%s\",\ - SERVICE=\"%s\",DESCRIPTION=\"%s\",\ - ORIGIN_USER=\"%s\",ORIGIN_DATETIME=now(),\ - LINK_DATETIME=now(),MODIFIED_DATETIME=now(),\ - PURGE_DATE=%s", - (const char *)RDEscapeString(logname), - (const char *)RDEscapeString(svc_name), - (const char *)RDEscapeString(RDDateDecode(descriptionTemplate(),date,svc_station,svc_config,svc_name)), - "RDLogManager", - (const char *)RDCheckDateTime(purge_date,"yyyy-MM-dd")); - q=new RDSqlQuery(sql); - delete q; - } - RDCreateLogTable(RDLog::tableName(logname)); emit generationProgress(1); // @@ -817,7 +783,6 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname, count ++; } - RDLog *log=new RDLog(logname); log->updateLinkQuantity(RDLog::SourceMusic); log->setLinkState(RDLog::SourceMusic,false); log->updateLinkQuantity(RDLog::SourceTraffic); @@ -1053,6 +1018,18 @@ void RDSvc::remove() const } +bool RDSvc::exists(const QString &name) +{ + bool ret=false; + QString sql=QString("select NAME from SERVICES where ")+ + "NAME=\""+RDEscapeString(name)+"\""; + RDSqlQuery *q=new RDSqlQuery(sql); + ret=q->first(); + delete q; + return ret; +} + + QString RDSvc::xml() const { QString sql; diff --git a/lib/rdsvc.h b/lib/rdsvc.h index c616709d..0c466681 100644 --- a/lib/rdsvc.h +++ b/lib/rdsvc.h @@ -26,8 +26,9 @@ #include #include -#include -#include +#include "rdconfig.h" +#include "rdstation.h" +#include "rduser.h" class RDSvc : public QObject { @@ -85,7 +86,7 @@ class RDSvc : public QObject const QString &track_str,const QString &dest_table) const; bool generateLog(const QDate &date,const QString &logname, - const QString &nextname,QString *report); + const QString &nextname,QString *report,RDUser *user); bool linkLog(RDSvc::ImportSource src,const QDate &date, const QString &logname,QString *report); void clearLogLinks(RDSvc::ImportSource src,const QDate &date, @@ -96,6 +97,7 @@ class RDSvc : public QObject static bool create(const QString &name,QString *err_msg, const QString &exemplar); static void remove(const QString &name); + static bool exists(const QString &name); static QString timeString(int hour,int secs); static QString svcTableName(const QString &svc_name); diff --git a/rdadmin/edit_svc.cpp b/rdadmin/edit_svc.cpp index c65af379..d4edfb10 100644 --- a/rdadmin/edit_svc.cpp +++ b/rdadmin/edit_svc.cpp @@ -183,27 +183,27 @@ EditSvc::EditSvc(QString svc,QWidget *parent) // // Autofill Button // - QPushButton *button=new QPushButton(this,"autofill_button"); + QPushButton *button=new QPushButton(this); button->setGeometry(455,31,150,50); button->setFont(font); button->setText(tr("Configure \n&Autofill Carts")); connect(button,SIGNAL(clicked()),this,SLOT(autofillData())); // - // Purge Expired Logs + // Default Log Deletion Date // - svc_loglife_box=new QCheckBox(this,"svc_loglife_box"); + svc_loglife_box=new QCheckBox(this); svc_loglife_box->setGeometry(460,95,15,15); - label=new QLabel(svc_loglife_box,tr("Purge Logs after"),this); - label->setGeometry(480,95,200,19); + label=new QLabel(svc_loglife_box,tr("Set Logs to auto-delete"),this); + label->setGeometry(480,95,240,19); label->setAlignment(AlignLeft|ShowPrefix); svc_loglife_spin=new QSpinBox(this); - svc_loglife_spin->setGeometry(585,93,50,19); + svc_loglife_spin->setGeometry(625,93,50,19); svc_loglife_spin->setRange(0,365); connect(svc_loglife_box,SIGNAL(toggled(bool)), svc_loglife_spin,SLOT(setEnabled(bool))); - label=new QLabel(svc_loglife_box,tr("days"),this); - label->setGeometry(645,95,40,19); + label=new QLabel(svc_loglife_box,tr("days after creation"),this); + label->setGeometry(685,95,200,19); label->setAlignment(AlignLeft|ShowPrefix); // @@ -211,16 +211,16 @@ EditSvc::EditSvc(QString svc,QWidget *parent) // svc_shelflife_box=new QCheckBox(this); svc_shelflife_box->setGeometry(460,117,15,15); - label=new QLabel(svc_shelflife_box,tr("Purge ELR Data after"),this); - label->setGeometry(480,117,200,19); + label=new QLabel(svc_shelflife_box,tr("Purge ELR Data"),this); + label->setGeometry(480,117,170,19); label->setAlignment(AlignLeft|ShowPrefix); svc_shelflife_spin=new QSpinBox(this); - svc_shelflife_spin->setGeometry(610,115,50,19); + svc_shelflife_spin->setGeometry(580,115,50,19); svc_shelflife_spin->setRange(0,365); connect(svc_shelflife_box,SIGNAL(toggled(bool)), svc_shelflife_spin,SLOT(setEnabled(bool))); - label=new QLabel(svc_shelflife_box,tr("days"),this); - label->setGeometry(670,117,40,19); + label=new QLabel(svc_shelflife_box,tr("days after airing"),this); + label->setGeometry(640,117,200,19); label->setAlignment(AlignLeft|ShowPrefix); // diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index e695dca9..0bf24e93 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -3911,15 +3911,15 @@ uloženo. Uložit nyní? Purge ELR Data after - Smazat data ELR po + Smazat data ELR po days - dnů + dnů Purge Logs after - Smazat zápisy po + Smazat zápisy po Import Template: @@ -3953,6 +3953,22 @@ uloženo. Uložit nyní? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index 14d175f9..ac1cfe62 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -3868,15 +3868,15 @@ gespeichert werden. Jetzt speichern? Purge ELR Data after - lösche ELR-Daten nach + lösche ELR-Daten nach days - Tagen + Tagen Purge Logs after - Lösche Logs nach + Lösche Logs nach Import Template: @@ -3910,6 +3910,22 @@ gespeichert werden. Jetzt speichern? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index b1b0fddd..cd21a2e5 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -3856,15 +3856,15 @@ debe guardarse. ¿Hacerlo ahora? Purge ELR Data after - Borrar datos ELR tras + Borrar datos ELR tras days - días + días Purge Logs after - Borrar Listas tras + Borrar Listas tras Import Template: @@ -3898,6 +3898,22 @@ debe guardarse. ¿Hacerlo ahora? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index 8cf8effe..5564c8aa 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -3467,18 +3467,6 @@ configured to run the CAE service in order to populate the audio resources datab must be saved. Save now? - - Purge ELR Data after - - - - days - - - - Purge Logs after - - Import Template: @@ -3511,6 +3499,22 @@ must be saved. Save now? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index 8cb888f5..c9600116 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -3844,17 +3844,9 @@ must be saved. Save now? Før du prøver ut, må du lagra oppsettet. Lagre no? - - Purge Logs after - - days - dagar - - - Purge ELR Data after - + dagar Import Template: @@ -3888,6 +3880,22 @@ Lagre no? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index 8cb888f5..c9600116 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -3844,17 +3844,9 @@ must be saved. Save now? Før du prøver ut, må du lagra oppsettet. Lagre no? - - Purge Logs after - - days - dagar - - - Purge ELR Data after - + dagar Import Template: @@ -3888,6 +3880,22 @@ Lagre no? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index a4c169d8..eeb9df27 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -3747,15 +3747,15 @@ de Preenchimento Purge Logs after - Remover Lista após + Remover Lista após days - dias + dias Purge ELR Data after - Remover Dados ELR após + Remover Dados ELR após Enable &Hosts @@ -3903,6 +3903,22 @@ deve ser salva. Salvar Agora? Log &Description Template: + + Set Logs to auto-delete + + + + days after creation + + + + Purge ELR Data + + + + days after airing + + EditSvcPerms diff --git a/rdairplay/list_log.cpp b/rdairplay/list_log.cpp index eda79e22..656eacc0 100644 --- a/rdairplay/list_log.cpp +++ b/rdairplay/list_log.cpp @@ -854,59 +854,36 @@ void ListLog::loadButtonData() { QString name=list_log->logName().left(list_log->logName().length()-4); QString svcname=list_log->serviceName(); - + QString err_msg; RDLog *edit_log; - QString sql; - RDSqlQuery *q; switch(list_logs_dialog->exec(&name,&svcname)) { - case 0: - list_log->setLogName(RDLog::tableName(name)); - list_log->load(); - break; + case 0: + list_log->setLogName(RDLog::tableName(name)); + list_log->load(); + break; - case 2: - list_log->save(); - edit_log=new RDLog(list_log->logName(). - left(list_log->logName().length()-4)); - delete edit_log; - break; + case 2: + list_log->save(); + edit_log= + new RDLog(list_log->logName().left(list_log->logName().length()-4)); + delete edit_log; + break; + + case 3: + if(!RDLog::create(name,svcname,rdripc->user(),&err_msg)) { + QMessageBox::warning(this,"RDAirPlay - "+tr("Error"),err_msg); + return; + } + list_log->setServiceName(svcname); + list_log->setLogName(RDLog::tableName(name)); + list_log->save(); + break; - case 3: - sql=QString().sprintf("insert into LOGS set \ - NAME=\"%s\",TYPE=0,\ - DESCRIPTION=\"%s log\",\ - ORIGIN_USER=\"%s\",\ - ORIGIN_DATETIME=NOW(),\ - LINK_DATETIME=NOW(),\ - MODIFIED_DATETIME=NOW(),\ - SERVICE=\"%s\"", - (const char *)name, - (const char *)name, - (const char *)rdripc->user(), - (const char *)svcname); - q=new RDSqlQuery(sql); - if(!q->isActive()) { - QMessageBox::warning(this,tr("Log Exists"), - tr("Log Already Exists!")); - delete q; - return; - } - delete q; - edit_log=new RDLog(name,true); - RDCreateLogTable(RDLog::tableName(name)); - list_log->setServiceName(svcname); - list_log->setLogName(RDLog::tableName(name)); - list_log->save(); - edit_log->setModifiedDatetime(QDateTime(QDate::currentDate(), - QTime::currentTime())); - delete edit_log; - break; - - case -1: - list_log->clear(); - break; - } + case -1: + list_log->clear(); + break; + } } diff --git a/rdairplay/rdairplay_cs.ts b/rdairplay/rdairplay_cs.ts index 52178bbc..2711d6ad 100644 --- a/rdairplay/rdairplay_cs.ts +++ b/rdairplay/rdairplay_cs.ts @@ -291,11 +291,11 @@ zápis Log Exists - Zápis existuje + Zápis existuje Log Already Exists! - Zápis již existuje! + Zápis již existuje! --- end of log --- @@ -397,6 +397,10 @@ poslechu ALBUM + + Error + + ListLogs diff --git a/rdairplay/rdairplay_de.ts b/rdairplay/rdairplay_de.ts index 9f9fb924..824f5bf0 100644 --- a/rdairplay/rdairplay_de.ts +++ b/rdairplay/rdairplay_de.ts @@ -291,11 +291,11 @@ auswählen Log Exists - Log existiert + Log existiert Log Already Exists! - Log existiert bereits! + Log existiert bereits! --- end of log --- @@ -397,6 +397,10 @@ vorhören ALBUM + + Error + + ListLogs diff --git a/rdairplay/rdairplay_es.ts b/rdairplay/rdairplay_es.ts index 42f0c6a7..bd5dfbef 100644 --- a/rdairplay/rdairplay_es.ts +++ b/rdairplay/rdairplay_es.ts @@ -281,11 +281,11 @@ Lista Log Exists - La lista ya existe + La lista ya existe Log Already Exists! - ¡La lista de reproducción ya existe! + ¡La lista de reproducción ya existe! --- end of log --- @@ -397,6 +397,10 @@ Final ALBUM + + Error + + ListLogs diff --git a/rdairplay/rdairplay_fr.ts b/rdairplay/rdairplay_fr.ts index 93380fbd..e8709923 100644 --- a/rdairplay/rdairplay_fr.ts +++ b/rdairplay/rdairplay_fr.ts @@ -291,11 +291,11 @@ un Log Log Exists - Ce Log existe + Ce Log existe Log Already Exists! - Ce Log existe déjà ! + Ce Log existe déjà ! --- end of log --- @@ -397,6 +397,10 @@ la Fin ALBUM ALBUM + + Error + + ListLogs diff --git a/rdairplay/rdairplay_nb.ts b/rdairplay/rdairplay_nb.ts index ee918c5c..3390a9cb 100644 --- a/rdairplay/rdairplay_nb.ts +++ b/rdairplay/rdairplay_nb.ts @@ -295,11 +295,11 @@ logg Log Exists - Loggen eksisterer + Loggen eksisterer Log Already Exists! - Loggen finst frå før! + Loggen finst frå før! --- end of log --- @@ -403,6 +403,10 @@ Tail ALBUM + + Error + + ListLogs diff --git a/rdairplay/rdairplay_nn.ts b/rdairplay/rdairplay_nn.ts index ee918c5c..3390a9cb 100644 --- a/rdairplay/rdairplay_nn.ts +++ b/rdairplay/rdairplay_nn.ts @@ -295,11 +295,11 @@ logg Log Exists - Loggen eksisterer + Loggen eksisterer Log Already Exists! - Loggen finst frå før! + Loggen finst frå før! --- end of log --- @@ -403,6 +403,10 @@ Tail ALBUM + + Error + + ListLogs diff --git a/rdairplay/rdairplay_pt_BR.ts b/rdairplay/rdairplay_pt_BR.ts index b08376ee..8a59c643 100644 --- a/rdairplay/rdairplay_pt_BR.ts +++ b/rdairplay/rdairplay_pt_BR.ts @@ -320,11 +320,11 @@ Log Log Exists - Lista Existe + Lista Existe Log Already Exists! - Lista já Existe! + Lista já Existe! Selected: @@ -398,6 +398,10 @@ Log ALBUM + + Error + + ListLogs diff --git a/rdlogedit/edit_log.cpp b/rdlogedit/edit_log.cpp index 42af53ef..35bd7560 100644 --- a/rdlogedit/edit_log.cpp +++ b/rdlogedit/edit_log.cpp @@ -144,7 +144,7 @@ EditLog::EditLog(QString logname,QString *filter,QString *group, // // Log Header // - edit_log=new RDLog(edit_logname,false); + edit_log=new RDLog(edit_logname); // // Log Events @@ -1089,9 +1089,8 @@ void EditLog::saveasData() } QString logname; QString svcname=edit_service_box->currentText(); - RDSqlQuery *q; - QString sql; RDAddLog *log=NULL; + QString err_msg; if(rduser->createLog()) { log=new RDAddLog(&logname,&svcname,RDLogFilter::UserFilter,rduser, @@ -1099,27 +1098,15 @@ void EditLog::saveasData() if(log->exec()<0) { return; } - sql=QString().sprintf("insert into LOGS set \ -NAME=\"%s\",TYPE=0,DESCRIPTION=\"%s log\",ORIGIN_USER=\"%s\",\ -ORIGIN_DATETIME=NOW(),LINK_DATETIME=NOW(),SERVICE=\"%s\"", - (const char *)logname, - (const char *)logname, - (const char *)rdripc->user(), - (const char *)svcname); - q=new RDSqlQuery(sql); - if(!q->isActive()) { - QMessageBox::warning(this,tr("Log Exists"),tr("Log Already Exists!")); - delete q; + if(!RDLog::create(logname,svcname,rdripc->user(),&err_msg)) { + QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),err_msg); return; } - delete q; delete edit_log; edit_newlogs->push_back(logname); - edit_log=new RDLog(logname,true); - QString logtable=logname; - logtable.replace(" ","_"); - RDCreateLogTable(RDLog::tableName(logtable)); - edit_log_event->setLogName(RDLog::tableName(logtable)); + edit_log=new RDLog(logname); + RDCreateLogTable(RDLog::tableName(logname)); + edit_log_event->setLogName(RDLog::tableName(logname)); for(int i=0;icount();i++) { if(edit_service_box->text(i)==svcname) { edit_service_box->setCurrentItem(i); diff --git a/rdlogedit/rdlogedit.cpp b/rdlogedit/rdlogedit.cpp index f22ea137..d07bd917 100644 --- a/rdlogedit/rdlogedit.cpp +++ b/rdlogedit/rdlogedit.cpp @@ -2,7 +2,7 @@ // // The Log Editor Utility for Rivendell. // -// (C) Copyright 2002-2016 Fred Gleason +// (C) Copyright 2002-2017 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 @@ -45,7 +45,7 @@ #include #include #include -#include +//#include #include #include #include @@ -407,8 +407,6 @@ void MainWidget::addData() { QString logname; QString svcname; - RDSqlQuery *q; - QString sql; std::vector newlogs; RDAddLog *log; @@ -420,26 +418,16 @@ void MainWidget::addData() return; } delete log; - sql=QString().sprintf("INSERT INTO LOGS SET NAME=\"%s\",TYPE=0,\ - DESCRIPTION=\"%s log\",ORIGIN_USER=\"%s\",\ - ORIGIN_DATETIME=NOW(),LINK_DATETIME=NOW(),\ - SERVICE=\"%s\"", - (const char *)logname, - (const char *)logname, #ifdef WIN32 - RD_USER_LOGIN_NAME, + QString username(RD_USER_LOGIN_NAME); #else - (const char *)rdripc->user(), + QString username(rdripc->user()); #endif // WIN32 - (const char *)svcname); - q=new RDSqlQuery(sql); - if(!q->isActive()) { - QMessageBox::warning(this,tr("Log Exists"),tr("Log Already Exists!")); - delete q; + QString err_msg; + if(!RDLog::create(logname,svcname,username,&err_msg)) { + QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),err_msg); return; } - delete q; - RDCreateLogTable(RDLog::tableName(logname)); EditLog *editlog=new EditLog(logname,&log_filter,&log_group,&log_schedcode, &log_clipboard,&newlogs,this); editlog->exec(); diff --git a/rdlogedit/rdlogedit_cs.ts b/rdlogedit/rdlogedit_cs.ts index 62e0d364..8b956d9b 100644 --- a/rdlogedit/rdlogedit_cs.ts +++ b/rdlogedit/rdlogedit_cs.ts @@ -279,11 +279,11 @@ Přesto chcete uložit? Log Exists - Zápis existuje + Zápis existuje Log Already Exists! - Zápis již existuje! + Zápis již existuje! RDLogEdit @@ -421,6 +421,10 @@ jež jsou pro vybranou službu zakázány! Render + + Error + + EditLogLine @@ -821,11 +825,11 @@ o zápisu Log Exists - Zápis existuje + Zápis existuje Log Already Exists! - Zápis již existuje! + Zápis již existuje! Delete Log diff --git a/rdlogedit/rdlogedit_de.ts b/rdlogedit/rdlogedit_de.ts index fb877752..0ab9dd97 100644 --- a/rdlogedit/rdlogedit_de.ts +++ b/rdlogedit/rdlogedit_de.ts @@ -279,11 +279,11 @@ Wollen Sie trotzdem speichern? Log Exists - Log existiert + Log existiert Log Already Exists! - Log existiert bereits! + Log existiert bereits! RDLogEdit @@ -421,6 +421,10 @@ die für den gewählten Service ungültig sind! Render + + Error + + EditLogLine @@ -821,11 +825,11 @@ Report Log Exists - Log existiert + Log existiert Log Already Exists! - Log existiert bereits! + Log existiert bereits! Delete Log diff --git a/rdlogedit/rdlogedit_es.ts b/rdlogedit/rdlogedit_es.ts index dca8b09d..6bb0fc9b 100644 --- a/rdlogedit/rdlogedit_es.ts +++ b/rdlogedit/rdlogedit_es.ts @@ -247,11 +247,11 @@ desactivados para el dispositivo seleccionado! Log Exists - La Lista ya existe + La Lista ya existe Log Already Exists! - ¡El playlist o Lista ya existe! + ¡El playlist o Lista ya existe! RDLogEdit @@ -421,6 +421,10 @@ desactivados para el servicio actual! Render + + Error + + EditLogLine @@ -785,11 +789,11 @@ desactivado para el servicio especificado! Log Exists - La Lista ya existe + La Lista ya existe Log Already Exists! - ¡La lista de reproducción ya existe! + ¡La lista de reproducción ya existe! Always diff --git a/rdlogedit/rdlogedit_fr.ts b/rdlogedit/rdlogedit_fr.ts index 29c17faf..bf6635bf 100644 --- a/rdlogedit/rdlogedit_fr.ts +++ b/rdlogedit/rdlogedit_fr.ts @@ -265,14 +265,6 @@ Do you still want to save? Add Log - - Log Exists - - - - Log Already Exists! - - RDLogEdit @@ -407,6 +399,10 @@ for the selected service! Render + + Error + + EditLogLine @@ -766,14 +762,6 @@ Report Add Log - - Log Exists - - - - Log Already Exists! - - Delete Log diff --git a/rdlogedit/rdlogedit_nb.ts b/rdlogedit/rdlogedit_nb.ts index 8ceecb25..47775852 100644 --- a/rdlogedit/rdlogedit_nb.ts +++ b/rdlogedit/rdlogedit_nb.ts @@ -282,11 +282,11 @@ Vil du lagra likevel? Log Exists - Loggen eksisterer + Loggen eksisterer Log Already Exists! - Loggen finst frå før! + Loggen finst frå før! RDLogEdit @@ -428,6 +428,10 @@ skrudd av for denne tenesta! Render + + Error + + EditLogLine @@ -843,11 +847,11 @@ rapport Log Exists - Loggen eksisterer + Loggen eksisterer Log Already Exists! - Loggen finst frå før! + Loggen finst frå før! Delete Log diff --git a/rdlogedit/rdlogedit_nn.ts b/rdlogedit/rdlogedit_nn.ts index 8ceecb25..47775852 100644 --- a/rdlogedit/rdlogedit_nn.ts +++ b/rdlogedit/rdlogedit_nn.ts @@ -282,11 +282,11 @@ Vil du lagra likevel? Log Exists - Loggen eksisterer + Loggen eksisterer Log Already Exists! - Loggen finst frå før! + Loggen finst frå før! RDLogEdit @@ -428,6 +428,10 @@ skrudd av for denne tenesta! Render + + Error + + EditLogLine @@ -843,11 +847,11 @@ rapport Log Exists - Loggen eksisterer + Loggen eksisterer Log Already Exists! - Loggen finst frå før! + Loggen finst frå før! Delete Log diff --git a/rdlogedit/rdlogedit_pt_BR.ts b/rdlogedit/rdlogedit_pt_BR.ts index 777837f5..f40fee4e 100644 --- a/rdlogedit/rdlogedit_pt_BR.ts +++ b/rdlogedit/rdlogedit_pt_BR.ts @@ -301,11 +301,11 @@ Você ainda quer salvar? Log Exists - Lista Existente + Lista Existente Log Already Exists! - Lista já Existe! + Lista já Existe! RDLogEdit @@ -423,6 +423,10 @@ para o serviço selecionado! Render + + Error + + EditLogLine @@ -822,11 +826,11 @@ Report Log Exists - Lista Existente + Lista Existente Log Already Exists! - Lista já Existe! + Lista já Existe! Delete Log diff --git a/rdlogedit/voice_tracker.cpp b/rdlogedit/voice_tracker.cpp index cda7b9c1..597f6d92 100644 --- a/rdlogedit/voice_tracker.cpp +++ b/rdlogedit/voice_tracker.cpp @@ -248,7 +248,7 @@ VoiceTracker::VoiceTracker(const QString &logname,QString *import_path, // // Log Machine // - track_log=new RDLog(edit_log_name,false); + track_log=new RDLog(edit_log_name); track_log_event=new RDLogEvent(RDLog::tableName(edit_log_name)); track_log_event->load(); diff --git a/rdlogmanager/commandline_ops.cpp b/rdlogmanager/commandline_ops.cpp index f2d559bb..8fb818ee 100644 --- a/rdlogmanager/commandline_ops.cpp +++ b/rdlogmanager/commandline_ops.cpp @@ -112,7 +112,7 @@ int RunLogOperation(int argc,char *argv[],const QString &svcname, rdstation_conf,config,svc->name()), RDDateDecode(svc->nameTemplate(),start_date.addDays(1), rdstation_conf,config,svc->name()), - &unused_report)) { + &unused_report,rduser)) { fprintf(stderr,"rdlogmanager: unable to generate log\n"); return 256; } diff --git a/rdlogmanager/generate_log.cpp b/rdlogmanager/generate_log.cpp index 3cc53745..e1d382aa 100644 --- a/rdlogmanager/generate_log.cpp +++ b/rdlogmanager/generate_log.cpp @@ -364,7 +364,7 @@ void GenerateLog::createData() RDDateDecode(svc->nameTemplate(),gen_date_edit->date(). addDays(1),rdstation_conf,log_config, svc->name()), - &unused_report); + &unused_report,rduser); log->updateTracks(); delete log; delete svc; diff --git a/web/rdxport/logs.cpp b/web/rdxport/logs.cpp index b6e23ac8..1dba4206 100644 --- a/web/rdxport/logs.cpp +++ b/web/rdxport/logs.cpp @@ -60,21 +60,10 @@ void Xport::AddLog() XmlExit("Unauthorized",404,"logs.cpp",LINE_NUMBER); } - RDLog *log=new RDLog(log_name); - if(!log->exists()) { - delete log; - log=new RDLog(log_name,true); - if(!log->exists()) { - delete log; - XmlExit("Unable to create log",500,"logs.cpp",LINE_NUMBER); - } - log->setOriginUser(xport_user->name()); - log->setDescription("[new log]"); - log->setService(service_name); + QString err_msg; + if(!RDLog::create(log_name,service_name,xport_user->name(),&err_msg)) { + XmlExit(err_msg,500,"logs.cpp",LINE_NUMBER); } - delete log; - RDCreateLogTable(RDLog::tableName(log_name)); - XmlExit("OK",200,"logs.cpp",LINE_NUMBER); }