2017-11-28 Fred Gleason <fredg@paravelsystems.com>

* 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.
This commit is contained in:
Fred Gleason 2017-11-28 12:41:45 -05:00
parent eabd1d7ed5
commit cbba0eb10a
41 changed files with 471 additions and 292 deletions

View File

@ -16388,3 +16388,9 @@
2017-11-28 Fred Gleason <fredg@paravelsystems.com> 2017-11-28 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'Add Log' dialog that allowed creation of a log * Fixed a bug in the 'Add Log' dialog that allowed creation of a log
with a blank name. with a blank name.
2017-11-28 Fred Gleason <fredg@paravelsystems.com>
* 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.

View File

@ -519,6 +519,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished">Záběr</translation> <translation type="unfinished">Záběr</translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished">Cut</translation> <translation type="unfinished">Cut</translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished">Cortar</translation> <translation type="unfinished">Cortar</translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -493,6 +493,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished">Klypp</translation> <translation type="unfinished">Klypp</translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished">Klypp</translation> <translation type="unfinished">Klypp</translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source> <source>Cut</source>
<translation type="unfinished">Conteúdo</translation> <translation type="unfinished">Conteúdo</translation>
</message> </message>
<message>
<source>Log already exists!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<source>No such service!</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>RDAddCart</name> <name>RDAddCart</name>

View File

@ -18,40 +18,20 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
#include <rddb.h> #include <qobject.h>
#include <rdconf.h>
#include <rdlog.h>
#include <rdlog_line.h>
#include <rdescape_string.h>
#include <rdweb.h>
// #include "rddb.h"
// Global Classes #include "rdconf.h"
// #include "rdcreate_log.h"
RDLog::RDLog(const QString &name,bool create) #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; 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) bool RDLog::exists(const QString &name)
{ {
QString sql; 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 RDLog::tableName(const QString &log_name)
{ {
QString ret=log_name; QString ret=log_name;

View File

@ -34,7 +34,7 @@ class RDLog
enum Type {Log=0,Event=1,Clock=2,Grid=3}; enum Type {Log=0,Event=1,Clock=2,Grid=3};
enum Source {SourceTraffic=0,SourceMusic=1}; enum Source {SourceTraffic=0,SourceMusic=1};
enum LinkState {LinkMissing=0,LinkDone=1,LinkNotPresent=2}; enum LinkState {LinkMissing=0,LinkDone=1,LinkNotPresent=2};
RDLog(const QString &name,bool create=false); RDLog(const QString &name);
QString name() const; QString name() const;
bool exists() const; bool exists() const;
bool logExists() const; bool logExists() const;
@ -78,7 +78,11 @@ class RDLog
int removeTracks(RDStation *station,RDUser *user,RDConfig *config) const; int removeTracks(RDStation *station,RDUser *user,RDConfig *config) const;
RDLogEvent *createLogEvent() const; RDLogEvent *createLogEvent() const;
QString xml() 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 exists(const QString &name);
static bool remove(const QString &name,RDStation *station,RDUser *user,
RDConfig *config);
static QString tableName(const QString &log_name); static QString tableName(const QString &log_name);
private: private:

View File

@ -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, bool RDSvc::generateLog(const QDate &date,const QString &logname,
const QString &nextname,QString *report) const QString &nextname,QString *report,RDUser *user)
{ {
QString sql; QString sql;
RDSqlQuery *q; RDSqlQuery *q;
RDClock clock; RDClock clock;
QString err_msg;
RDLog *log=NULL;
if((!date.isValid()||logname.isEmpty())) { if((!date.isValid()||logname.isEmpty())) {
return false; return false;
@ -723,50 +725,14 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname,
// //
// Generate Log Structure // Generate Log Structure
// //
QDate purge_date; if(RDLog::exists(logname)) {
if(defaultLogShelflife()>=0) { RDLog::remove(logname,svc_station,user,svc_config);
purge_date=date.addDays(defaultLogShelflife());
} }
sql=QString().sprintf("select NAME from LOGS where NAME=\"%s\"", RDLog::create(logname,svc_name,"RDLogManager",&err_msg);
(const char *)RDEscapeString(logname)); log=new RDLog(logname);
q=new RDSqlQuery(sql); log->setDescription(RDDateDecode(descriptionTemplate(),date,svc_station,
if(q->first()) { // Already Exists svc_config,svc_name));
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)+"\"");
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); emit generationProgress(1);
// //
@ -817,7 +783,6 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname,
count ++; count ++;
} }
RDLog *log=new RDLog(logname);
log->updateLinkQuantity(RDLog::SourceMusic); log->updateLinkQuantity(RDLog::SourceMusic);
log->setLinkState(RDLog::SourceMusic,false); log->setLinkState(RDLog::SourceMusic,false);
log->updateLinkQuantity(RDLog::SourceTraffic); 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 RDSvc::xml() const
{ {
QString sql; QString sql;

View File

@ -26,8 +26,9 @@
#include <qobject.h> #include <qobject.h>
#include <qsqldatabase.h> #include <qsqldatabase.h>
#include <rdstation.h> #include "rdconfig.h"
#include <rdconfig.h> #include "rdstation.h"
#include "rduser.h"
class RDSvc : public QObject class RDSvc : public QObject
{ {
@ -85,7 +86,7 @@ class RDSvc : public QObject
const QString &track_str,const QString &dest_table) const QString &track_str,const QString &dest_table)
const; const;
bool generateLog(const QDate &date,const QString &logname, 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, bool linkLog(RDSvc::ImportSource src,const QDate &date,
const QString &logname,QString *report); const QString &logname,QString *report);
void clearLogLinks(RDSvc::ImportSource src,const QDate &date, 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, static bool create(const QString &name,QString *err_msg,
const QString &exemplar); const QString &exemplar);
static void remove(const QString &name); static void remove(const QString &name);
static bool exists(const QString &name);
static QString timeString(int hour,int secs); static QString timeString(int hour,int secs);
static QString svcTableName(const QString &svc_name); static QString svcTableName(const QString &svc_name);

View File

@ -183,27 +183,27 @@ EditSvc::EditSvc(QString svc,QWidget *parent)
// //
// Autofill Button // Autofill Button
// //
QPushButton *button=new QPushButton(this,"autofill_button"); QPushButton *button=new QPushButton(this);
button->setGeometry(455,31,150,50); button->setGeometry(455,31,150,50);
button->setFont(font); button->setFont(font);
button->setText(tr("Configure \n&Autofill Carts")); button->setText(tr("Configure \n&Autofill Carts"));
connect(button,SIGNAL(clicked()),this,SLOT(autofillData())); 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); svc_loglife_box->setGeometry(460,95,15,15);
label=new QLabel(svc_loglife_box,tr("Purge Logs after"),this); label=new QLabel(svc_loglife_box,tr("Set Logs to auto-delete"),this);
label->setGeometry(480,95,200,19); label->setGeometry(480,95,240,19);
label->setAlignment(AlignLeft|ShowPrefix); label->setAlignment(AlignLeft|ShowPrefix);
svc_loglife_spin=new QSpinBox(this); 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); svc_loglife_spin->setRange(0,365);
connect(svc_loglife_box,SIGNAL(toggled(bool)), connect(svc_loglife_box,SIGNAL(toggled(bool)),
svc_loglife_spin,SLOT(setEnabled(bool))); svc_loglife_spin,SLOT(setEnabled(bool)));
label=new QLabel(svc_loglife_box,tr("days"),this); label=new QLabel(svc_loglife_box,tr("days after creation"),this);
label->setGeometry(645,95,40,19); label->setGeometry(685,95,200,19);
label->setAlignment(AlignLeft|ShowPrefix); label->setAlignment(AlignLeft|ShowPrefix);
// //
@ -211,16 +211,16 @@ EditSvc::EditSvc(QString svc,QWidget *parent)
// //
svc_shelflife_box=new QCheckBox(this); svc_shelflife_box=new QCheckBox(this);
svc_shelflife_box->setGeometry(460,117,15,15); svc_shelflife_box->setGeometry(460,117,15,15);
label=new QLabel(svc_shelflife_box,tr("Purge ELR Data after"),this); label=new QLabel(svc_shelflife_box,tr("Purge ELR Data"),this);
label->setGeometry(480,117,200,19); label->setGeometry(480,117,170,19);
label->setAlignment(AlignLeft|ShowPrefix); label->setAlignment(AlignLeft|ShowPrefix);
svc_shelflife_spin=new QSpinBox(this); 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); svc_shelflife_spin->setRange(0,365);
connect(svc_shelflife_box,SIGNAL(toggled(bool)), connect(svc_shelflife_box,SIGNAL(toggled(bool)),
svc_shelflife_spin,SLOT(setEnabled(bool))); svc_shelflife_spin,SLOT(setEnabled(bool)));
label=new QLabel(svc_shelflife_box,tr("days"),this); label=new QLabel(svc_shelflife_box,tr("days after airing"),this);
label->setGeometry(670,117,40,19); label->setGeometry(640,117,200,19);
label->setAlignment(AlignLeft|ShowPrefix); label->setAlignment(AlignLeft|ShowPrefix);
// //

View File

@ -3911,15 +3911,15 @@ uloženo. Uložit nyní?</translation>
</message> </message>
<message> <message>
<source>Purge ELR Data after</source> <source>Purge ELR Data after</source>
<translation>Smazat data ELR po</translation> <translation type="obsolete">Smazat data ELR po</translation>
</message> </message>
<message> <message>
<source>days</source> <source>days</source>
<translation>dnů</translation> <translation type="obsolete">dnů</translation>
</message> </message>
<message> <message>
<source>Purge Logs after</source> <source>Purge Logs after</source>
<translation>Smazat zápisy po</translation> <translation type="obsolete">Smazat zápisy po</translation>
</message> </message>
<message> <message>
<source>Import Template:</source> <source>Import Template:</source>
@ -3953,6 +3953,22 @@ uloženo. Uložit nyní?</translation>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -3868,15 +3868,15 @@ gespeichert werden. Jetzt speichern?</translation>
</message> </message>
<message> <message>
<source>Purge ELR Data after</source> <source>Purge ELR Data after</source>
<translation>lösche ELR-Daten nach</translation> <translation type="obsolete">lösche ELR-Daten nach</translation>
</message> </message>
<message> <message>
<source>days</source> <source>days</source>
<translation>Tagen</translation> <translation type="obsolete">Tagen</translation>
</message> </message>
<message> <message>
<source>Purge Logs after</source> <source>Purge Logs after</source>
<translation>Lösche Logs nach</translation> <translation type="obsolete">Lösche Logs nach</translation>
</message> </message>
<message> <message>
<source>Import Template:</source> <source>Import Template:</source>
@ -3910,6 +3910,22 @@ gespeichert werden. Jetzt speichern?</translation>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -3856,15 +3856,15 @@ debe guardarse. ¿Hacerlo ahora?</translation>
</message> </message>
<message> <message>
<source>Purge ELR Data after</source> <source>Purge ELR Data after</source>
<translation>Borrar datos ELR tras</translation> <translation type="obsolete">Borrar datos ELR tras</translation>
</message> </message>
<message> <message>
<source>days</source> <source>days</source>
<translation>días</translation> <translation type="obsolete">días</translation>
</message> </message>
<message> <message>
<source>Purge Logs after</source> <source>Purge Logs after</source>
<translation>Borrar Listas tras </translation> <translation type="obsolete">Borrar Listas tras </translation>
</message> </message>
<message> <message>
<source>Import Template:</source> <source>Import Template:</source>
@ -3898,6 +3898,22 @@ debe guardarse. ¿Hacerlo ahora?</translation>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -3467,18 +3467,6 @@ configured to run the CAE service in order to populate the audio resources datab
must be saved. Save now?</source> must be saved. Save now?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Purge ELR Data after</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge Logs after</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Import Template:</source> <source>Import Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -3511,6 +3499,22 @@ must be saved. Save now?</source>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -3844,17 +3844,9 @@ must be saved. Save now?</source>
<translation>Før du prøver ut, du lagra oppsettet. <translation>Før du prøver ut, du lagra oppsettet.
Lagre no?</translation> Lagre no?</translation>
</message> </message>
<message>
<source>Purge Logs after</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>days</source> <source>days</source>
<translation type="unfinished">dagar</translation> <translation type="obsolete">dagar</translation>
</message>
<message>
<source>Purge ELR Data after</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Import Template:</source> <source>Import Template:</source>
@ -3888,6 +3880,22 @@ Lagre no?</translation>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -3844,17 +3844,9 @@ must be saved. Save now?</source>
<translation>Før du prøver ut, du lagra oppsettet. <translation>Før du prøver ut, du lagra oppsettet.
Lagre no?</translation> Lagre no?</translation>
</message> </message>
<message>
<source>Purge Logs after</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>days</source> <source>days</source>
<translation type="unfinished">dagar</translation> <translation type="obsolete">dagar</translation>
</message>
<message>
<source>Purge ELR Data after</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Import Template:</source> <source>Import Template:</source>
@ -3888,6 +3880,22 @@ Lagre no?</translation>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -3747,15 +3747,15 @@ de Preenchimento</translation>
</message> </message>
<message> <message>
<source>Purge Logs after</source> <source>Purge Logs after</source>
<translation>Remover Lista após</translation> <translation type="obsolete">Remover Lista após</translation>
</message> </message>
<message> <message>
<source>days</source> <source>days</source>
<translation>dias</translation> <translation type="obsolete">dias</translation>
</message> </message>
<message> <message>
<source>Purge ELR Data after</source> <source>Purge ELR Data after</source>
<translation>Remover Dados ELR após</translation> <translation type="obsolete">Remover Dados ELR após</translation>
</message> </message>
<message> <message>
<source>Enable &amp;Hosts</source> <source>Enable &amp;Hosts</source>
@ -3903,6 +3903,22 @@ deve ser salva. Salvar Agora?</translation>
<source>Log &amp;Description Template:</source> <source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Set Logs to auto-delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Purge ELR Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days after airing</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditSvcPerms</name> <name>EditSvcPerms</name>

View File

@ -854,10 +854,8 @@ void ListLog::loadButtonData()
{ {
QString name=list_log->logName().left(list_log->logName().length()-4); QString name=list_log->logName().left(list_log->logName().length()-4);
QString svcname=list_log->serviceName(); QString svcname=list_log->serviceName();
QString err_msg;
RDLog *edit_log; RDLog *edit_log;
QString sql;
RDSqlQuery *q;
switch(list_logs_dialog->exec(&name,&svcname)) { switch(list_logs_dialog->exec(&name,&svcname)) {
case 0: case 0:
@ -867,40 +865,19 @@ void ListLog::loadButtonData()
case 2: case 2:
list_log->save(); list_log->save();
edit_log=new RDLog(list_log->logName(). edit_log=
left(list_log->logName().length()-4)); new RDLog(list_log->logName().left(list_log->logName().length()-4));
delete edit_log; delete edit_log;
break; break;
case 3: case 3:
sql=QString().sprintf("insert into LOGS set \ if(!RDLog::create(name,svcname,rdripc->user(),&err_msg)) {
NAME=\"%s\",TYPE=0,\ QMessageBox::warning(this,"RDAirPlay - "+tr("Error"),err_msg);
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; return;
} }
delete q;
edit_log=new RDLog(name,true);
RDCreateLogTable(RDLog::tableName(name));
list_log->setServiceName(svcname); list_log->setServiceName(svcname);
list_log->setLogName(RDLog::tableName(name)); list_log->setLogName(RDLog::tableName(name));
list_log->save(); list_log->save();
edit_log->setModifiedDatetime(QDateTime(QDate::currentDate(),
QTime::currentTime()));
delete edit_log;
break; break;
case -1: case -1:

View File

@ -291,11 +291,11 @@ zápis</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Zápis existuje</translation> <translation type="obsolete">Zápis existuje</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Zápis již existuje!</translation> <translation type="obsolete">Zápis již existuje!</translation>
</message> </message>
<message> <message>
<source>--- end of log ---</source> <source>--- end of log ---</source>
@ -397,6 +397,10 @@ poslechu</translation>
<source>ALBUM</source> <source>ALBUM</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -291,11 +291,11 @@ auswählen</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Log existiert</translation> <translation type="obsolete">Log existiert</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Log existiert bereits!</translation> <translation type="obsolete">Log existiert bereits!</translation>
</message> </message>
<message> <message>
<source>--- end of log ---</source> <source>--- end of log ---</source>
@ -397,6 +397,10 @@ vorhören</translation>
<source>ALBUM</source> <source>ALBUM</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -281,11 +281,11 @@ Lista</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>La lista ya existe</translation> <translation type="obsolete">La lista ya existe</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>¡La lista de reproducción ya existe!</translation> <translation type="obsolete">¡La lista de reproducción ya existe!</translation>
</message> </message>
<message> <message>
<source>--- end of log ---</source> <source>--- end of log ---</source>
@ -397,6 +397,10 @@ Final</translation>
<source>ALBUM</source> <source>ALBUM</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -291,11 +291,11 @@ un Log</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Ce Log existe</translation> <translation type="obsolete">Ce Log existe</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Ce Log existe déjà !</translation> <translation type="obsolete">Ce Log existe déjà !</translation>
</message> </message>
<message> <message>
<source>--- end of log ---</source> <source>--- end of log ---</source>
@ -397,6 +397,10 @@ la Fin</translation>
<source>ALBUM</source> <source>ALBUM</source>
<translation>ALBUM</translation> <translation>ALBUM</translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -295,11 +295,11 @@ logg</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Loggen eksisterer</translation> <translation type="obsolete">Loggen eksisterer</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Loggen finst frå før!</translation> <translation type="obsolete">Loggen finst frå før!</translation>
</message> </message>
<message> <message>
<source>--- end of log ---</source> <source>--- end of log ---</source>
@ -403,6 +403,10 @@ Tail</source>
<source>ALBUM</source> <source>ALBUM</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -295,11 +295,11 @@ logg</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Loggen eksisterer</translation> <translation type="obsolete">Loggen eksisterer</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Loggen finst frå før!</translation> <translation type="obsolete">Loggen finst frå før!</translation>
</message> </message>
<message> <message>
<source>--- end of log ---</source> <source>--- end of log ---</source>
@ -403,6 +403,10 @@ Tail</source>
<source>ALBUM</source> <source>ALBUM</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -320,11 +320,11 @@ Log</source>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Lista Existe</translation> <translation type="obsolete">Lista Existe</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Lista Existe!</translation> <translation type="obsolete">Lista Existe!</translation>
</message> </message>
<message> <message>
<source>Selected:</source> <source>Selected:</source>
@ -398,6 +398,10 @@ Log</source>
<source>ALBUM</source> <source>ALBUM</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ListLogs</name> <name>ListLogs</name>

View File

@ -144,7 +144,7 @@ EditLog::EditLog(QString logname,QString *filter,QString *group,
// //
// Log Header // Log Header
// //
edit_log=new RDLog(edit_logname,false); edit_log=new RDLog(edit_logname);
// //
// Log Events // Log Events
@ -1089,9 +1089,8 @@ void EditLog::saveasData()
} }
QString logname; QString logname;
QString svcname=edit_service_box->currentText(); QString svcname=edit_service_box->currentText();
RDSqlQuery *q;
QString sql;
RDAddLog *log=NULL; RDAddLog *log=NULL;
QString err_msg;
if(rduser->createLog()) { if(rduser->createLog()) {
log=new RDAddLog(&logname,&svcname,RDLogFilter::UserFilter,rduser, log=new RDAddLog(&logname,&svcname,RDLogFilter::UserFilter,rduser,
@ -1099,27 +1098,15 @@ void EditLog::saveasData()
if(log->exec()<0) { if(log->exec()<0) {
return; return;
} }
sql=QString().sprintf("insert into LOGS set \ if(!RDLog::create(logname,svcname,rdripc->user(),&err_msg)) {
NAME=\"%s\",TYPE=0,DESCRIPTION=\"%s log\",ORIGIN_USER=\"%s\",\ QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),err_msg);
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;
return; return;
} }
delete q;
delete edit_log; delete edit_log;
edit_newlogs->push_back(logname); edit_newlogs->push_back(logname);
edit_log=new RDLog(logname,true); edit_log=new RDLog(logname);
QString logtable=logname; RDCreateLogTable(RDLog::tableName(logname));
logtable.replace(" ","_"); edit_log_event->setLogName(RDLog::tableName(logname));
RDCreateLogTable(RDLog::tableName(logtable));
edit_log_event->setLogName(RDLog::tableName(logtable));
for(int i=0;i<edit_service_box->count();i++) { for(int i=0;i<edit_service_box->count();i++) {
if(edit_service_box->text(i)==svcname) { if(edit_service_box->text(i)==svcname) {
edit_service_box->setCurrentItem(i); edit_service_box->setCurrentItem(i);

View File

@ -2,7 +2,7 @@
// //
// The Log Editor Utility for Rivendell. // The Log Editor Utility for Rivendell.
// //
// (C) Copyright 2002-2016 Fred Gleason <fredg@paravelsystems.com> // (C) Copyright 2002-2017 Fred Gleason <fredg@paravelsystems.com>
// //
// This program is free software; you can redistribute it and/or modify // 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 // it under the terms of the GNU General Public License version 2 as
@ -45,7 +45,7 @@
#include <rdripc.h> #include <rdripc.h>
#include <rdstation.h> #include <rdstation.h>
#include <rdcheck_daemons.h> #include <rdcheck_daemons.h>
#include <rdcreate_log.h> //#include <rdcreate_log.h>
#include <rdadd_log.h> #include <rdadd_log.h>
#include <rdcmd_switch.h> #include <rdcmd_switch.h>
#include <rddb.h> #include <rddb.h>
@ -407,8 +407,6 @@ void MainWidget::addData()
{ {
QString logname; QString logname;
QString svcname; QString svcname;
RDSqlQuery *q;
QString sql;
std::vector<QString> newlogs; std::vector<QString> newlogs;
RDAddLog *log; RDAddLog *log;
@ -420,26 +418,16 @@ void MainWidget::addData()
return; return;
} }
delete log; 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 #ifdef WIN32
RD_USER_LOGIN_NAME, QString username(RD_USER_LOGIN_NAME);
#else #else
(const char *)rdripc->user(), QString username(rdripc->user());
#endif // WIN32 #endif // WIN32
(const char *)svcname); QString err_msg;
q=new RDSqlQuery(sql); if(!RDLog::create(logname,svcname,username,&err_msg)) {
if(!q->isActive()) { QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),err_msg);
QMessageBox::warning(this,tr("Log Exists"),tr("Log Already Exists!"));
delete q;
return; return;
} }
delete q;
RDCreateLogTable(RDLog::tableName(logname));
EditLog *editlog=new EditLog(logname,&log_filter,&log_group,&log_schedcode, EditLog *editlog=new EditLog(logname,&log_filter,&log_group,&log_schedcode,
&log_clipboard,&newlogs,this); &log_clipboard,&newlogs,this);
editlog->exec(); editlog->exec();

View File

@ -279,11 +279,11 @@ Přesto chcete uložit?</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Zápis existuje</translation> <translation type="obsolete">Zápis existuje</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Zápis již existuje!</translation> <translation type="obsolete">Zápis již existuje!</translation>
</message> </message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
@ -421,6 +421,10 @@ jež jsou pro vybranou službu zakázány!</translation>
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -821,11 +825,11 @@ o zápisu</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Zápis existuje</translation> <translation type="obsolete">Zápis existuje</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Zápis již existuje!</translation> <translation type="obsolete">Zápis již existuje!</translation>
</message> </message>
<message> <message>
<source>Delete Log</source> <source>Delete Log</source>

View File

@ -279,11 +279,11 @@ Wollen Sie trotzdem speichern?</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Log existiert</translation> <translation type="obsolete">Log existiert</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Log existiert bereits!</translation> <translation type="obsolete">Log existiert bereits!</translation>
</message> </message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
@ -421,6 +421,10 @@ die für den gewählten Service ungültig sind!</translation>
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -821,11 +825,11 @@ Report</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Log existiert</translation> <translation type="obsolete">Log existiert</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Log existiert bereits!</translation> <translation type="obsolete">Log existiert bereits!</translation>
</message> </message>
<message> <message>
<source>Delete Log</source> <source>Delete Log</source>

View File

@ -247,11 +247,11 @@ desactivados para el dispositivo seleccionado!</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>La Lista ya existe</translation> <translation type="obsolete">La Lista ya existe</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>¡El playlist o Lista ya existe!</translation> <translation type="obsolete">¡El playlist o Lista ya existe!</translation>
</message> </message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
@ -421,6 +421,10 @@ desactivados para el servicio actual!
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -785,11 +789,11 @@ desactivado para el servicio especificado!</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>La Lista ya existe</translation> <translation type="obsolete">La Lista ya existe</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>¡La lista de reproducción ya existe!</translation> <translation type="obsolete">¡La lista de reproducción ya existe!</translation>
</message> </message>
<message> <message>
<source>Always</source> <source>Always</source>

View File

@ -265,14 +265,6 @@ Do you still want to save?</source>
<source>Add Log</source> <source>Add Log</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Log Already Exists!</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -407,6 +399,10 @@ for the selected service!</source>
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -766,14 +762,6 @@ Report</source>
<source>Add Log</source> <source>Add Log</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Log Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Log Already Exists!</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Delete Log</source> <source>Delete Log</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>

View File

@ -282,11 +282,11 @@ Vil du lagra likevel?</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Loggen eksisterer</translation> <translation type="obsolete">Loggen eksisterer</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Loggen finst frå før!</translation> <translation type="obsolete">Loggen finst frå før!</translation>
</message> </message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
@ -428,6 +428,10 @@ skrudd av for denne tenesta!</translation>
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -843,11 +847,11 @@ rapport</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Loggen eksisterer</translation> <translation type="obsolete">Loggen eksisterer</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Loggen finst frå før!</translation> <translation type="obsolete">Loggen finst frå før!</translation>
</message> </message>
<message> <message>
<source>Delete Log</source> <source>Delete Log</source>

View File

@ -282,11 +282,11 @@ Vil du lagra likevel?</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Loggen eksisterer</translation> <translation type="obsolete">Loggen eksisterer</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Loggen finst frå før!</translation> <translation type="obsolete">Loggen finst frå før!</translation>
</message> </message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
@ -428,6 +428,10 @@ skrudd av for denne tenesta!</translation>
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -843,11 +847,11 @@ rapport</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Loggen eksisterer</translation> <translation type="obsolete">Loggen eksisterer</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Loggen finst frå før!</translation> <translation type="obsolete">Loggen finst frå før!</translation>
</message> </message>
<message> <message>
<source>Delete Log</source> <source>Delete Log</source>

View File

@ -301,11 +301,11 @@ Você ainda quer salvar?</translation>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Lista Existente</translation> <translation type="obsolete">Lista Existente</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Lista Existe!</translation> <translation type="obsolete">Lista Existe!</translation>
</message> </message>
<message> <message>
<source>RDLogEdit</source> <source>RDLogEdit</source>
@ -423,6 +423,10 @@ para o serviço selecionado!</translation>
<source>Render</source> <source>Render</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>EditLogLine</name> <name>EditLogLine</name>
@ -822,11 +826,11 @@ Report</source>
</message> </message>
<message> <message>
<source>Log Exists</source> <source>Log Exists</source>
<translation>Lista Existente</translation> <translation type="obsolete">Lista Existente</translation>
</message> </message>
<message> <message>
<source>Log Already Exists!</source> <source>Log Already Exists!</source>
<translation>Lista Existe!</translation> <translation type="obsolete">Lista Existe!</translation>
</message> </message>
<message> <message>
<source>Delete Log</source> <source>Delete Log</source>

View File

@ -248,7 +248,7 @@ VoiceTracker::VoiceTracker(const QString &logname,QString *import_path,
// //
// Log Machine // 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=new RDLogEvent(RDLog::tableName(edit_log_name));
track_log_event->load(); track_log_event->load();

View File

@ -112,7 +112,7 @@ int RunLogOperation(int argc,char *argv[],const QString &svcname,
rdstation_conf,config,svc->name()), rdstation_conf,config,svc->name()),
RDDateDecode(svc->nameTemplate(),start_date.addDays(1), RDDateDecode(svc->nameTemplate(),start_date.addDays(1),
rdstation_conf,config,svc->name()), rdstation_conf,config,svc->name()),
&unused_report)) { &unused_report,rduser)) {
fprintf(stderr,"rdlogmanager: unable to generate log\n"); fprintf(stderr,"rdlogmanager: unable to generate log\n");
return 256; return 256;
} }

View File

@ -364,7 +364,7 @@ void GenerateLog::createData()
RDDateDecode(svc->nameTemplate(),gen_date_edit->date(). RDDateDecode(svc->nameTemplate(),gen_date_edit->date().
addDays(1),rdstation_conf,log_config, addDays(1),rdstation_conf,log_config,
svc->name()), svc->name()),
&unused_report); &unused_report,rduser);
log->updateTracks(); log->updateTracks();
delete log; delete log;
delete svc; delete svc;

View File

@ -60,21 +60,10 @@ void Xport::AddLog()
XmlExit("Unauthorized",404,"logs.cpp",LINE_NUMBER); XmlExit("Unauthorized",404,"logs.cpp",LINE_NUMBER);
} }
RDLog *log=new RDLog(log_name); QString err_msg;
if(!log->exists()) { if(!RDLog::create(log_name,service_name,xport_user->name(),&err_msg)) {
delete log; XmlExit(err_msg,500,"logs.cpp",LINE_NUMBER);
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);
}
delete log;
RDCreateLogTable(RDLog::tableName(log_name));
XmlExit("OK",200,"logs.cpp",LINE_NUMBER); XmlExit("OK",200,"logs.cpp",LINE_NUMBER);
} }