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>
* Fixed a bug in the 'Add Log' dialog that allowed creation of a log
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>
<translation type="unfinished">Záběr</translation>
</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>
<name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source>
<translation type="unfinished">Cut</translation>
</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>
<name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source>
<translation type="unfinished">Cortar</translation>
</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>
<name>RDAddCart</name>

View File

@ -493,6 +493,18 @@
<source>Cut</source>
<translation type="unfinished"></translation>
</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>
<name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source>
<translation type="unfinished">Klypp</translation>
</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>
<name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source>
<translation type="unfinished">Klypp</translation>
</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>
<name>RDAddCart</name>

View File

@ -515,6 +515,18 @@
<source>Cut</source>
<translation type="unfinished">Conteúdo</translation>
</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>
<name>RDAddCart</name>

View File

@ -18,40 +18,20 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <rddb.h>
#include <rdconf.h>
#include <rdlog.h>
#include <rdlog_line.h>
#include <rdescape_string.h>
#include <rdweb.h>
#include <qobject.h>
//
// 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;

View File

@ -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:

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,
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;

View File

@ -26,8 +26,9 @@
#include <qobject.h>
#include <qsqldatabase.h>
#include <rdstation.h>
#include <rdconfig.h>
#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);

View File

@ -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);
//

View File

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

View File

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

View File

@ -3856,15 +3856,15 @@ debe guardarse. ¿Hacerlo ahora?</translation>
</message>
<message>
<source>Purge ELR Data after</source>
<translation>Borrar datos ELR tras</translation>
<translation type="obsolete">Borrar datos ELR tras</translation>
</message>
<message>
<source>days</source>
<translation>días</translation>
<translation type="obsolete">días</translation>
</message>
<message>
<source>Purge Logs after</source>
<translation>Borrar Listas tras </translation>
<translation type="obsolete">Borrar Listas tras </translation>
</message>
<message>
<source>Import Template:</source>
@ -3898,6 +3898,22 @@ debe guardarse. ¿Hacerlo ahora?</translation>
<source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation>
</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>
<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>
<translation type="unfinished"></translation>
</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>
<source>Import Template:</source>
<translation type="unfinished"></translation>
@ -3511,6 +3499,22 @@ must be saved. Save now?</source>
<source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation>
</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>
<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.
Lagre no?</translation>
</message>
<message>
<source>Purge Logs after</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days</source>
<translation type="unfinished">dagar</translation>
</message>
<message>
<source>Purge ELR Data after</source>
<translation type="unfinished"></translation>
<translation type="obsolete">dagar</translation>
</message>
<message>
<source>Import Template:</source>
@ -3888,6 +3880,22 @@ Lagre no?</translation>
<source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation>
</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>
<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.
Lagre no?</translation>
</message>
<message>
<source>Purge Logs after</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>days</source>
<translation type="unfinished">dagar</translation>
</message>
<message>
<source>Purge ELR Data after</source>
<translation type="unfinished"></translation>
<translation type="obsolete">dagar</translation>
</message>
<message>
<source>Import Template:</source>
@ -3888,6 +3880,22 @@ Lagre no?</translation>
<source>Log &amp;Description Template:</source>
<translation type="unfinished"></translation>
</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>
<name>EditSvcPerms</name>

View File

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

View File

@ -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;
}
}

View File

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

View File

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

View File

@ -281,11 +281,11 @@ Lista</translation>
</message>
<message>
<source>Log Exists</source>
<translation>La lista ya existe</translation>
<translation type="obsolete">La lista ya existe</translation>
</message>
<message>
<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>
<source>--- end of log ---</source>
@ -397,6 +397,10 @@ Final</translation>
<source>ALBUM</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ListLogs</name>

View File

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

View File

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

View File

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

View File

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

View File

@ -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;i<edit_service_box->count();i++) {
if(edit_service_box->text(i)==svcname) {
edit_service_box->setCurrentItem(i);

View File

@ -2,7 +2,7 @@
//
// 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
// it under the terms of the GNU General Public License version 2 as
@ -45,7 +45,7 @@
#include <rdripc.h>
#include <rdstation.h>
#include <rdcheck_daemons.h>
#include <rdcreate_log.h>
//#include <rdcreate_log.h>
#include <rdadd_log.h>
#include <rdcmd_switch.h>
#include <rddb.h>
@ -407,8 +407,6 @@ void MainWidget::addData()
{
QString logname;
QString svcname;
RDSqlQuery *q;
QString sql;
std::vector<QString> 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();

View File

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

View File

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

View File

@ -247,11 +247,11 @@ desactivados para el dispositivo seleccionado!</translation>
</message>
<message>
<source>Log Exists</source>
<translation>La Lista ya existe</translation>
<translation type="obsolete">La Lista ya existe</translation>
</message>
<message>
<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>
<source>RDLogEdit</source>
@ -421,6 +421,10 @@ desactivados para el servicio actual!
<source>Render</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditLogLine</name>
@ -785,11 +789,11 @@ desactivado para el servicio especificado!</translation>
</message>
<message>
<source>Log Exists</source>
<translation>La Lista ya existe</translation>
<translation type="obsolete">La Lista ya existe</translation>
</message>
<message>
<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>
<source>Always</source>

View File

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

View File

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

View File

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

View File

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

View File

@ -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();

View File

@ -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;
}

View File

@ -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;

View File

@ -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);
}