diff --git a/ChangeLog b/ChangeLog index cfdaf0ab..07d74a9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19749,6 +19749,7 @@ * Fixed a regression in rdairplay(1) that caused two events to be started by a single spacebar tap if a SoundPanel event had been played previously. +<<<<<<< HEAD 2020-04-08 Fred Gleason <fredg@paravelsystems.com> * Fixed a bug in rdlogmanager(1) that caused the initial event in an imported set to fail receive the proper time and transition @@ -19773,3 +19774,7 @@ * Changed the error message rendered when 'configure' fails to detect one or more of the MusicBrainz dependencies to be less ambiguous. +2020-04-07 Patrick Linstruth <patrick@deltecent.com> + * Modified rdadmin(1) Edit Service dialog to display built-in + traffic and music import template values. + * Added "Copy To Custom" buttons to rdadmin(1) Edit Service dialog. diff --git a/docs/opsguide/rdadmin.import_parser_fields.png b/docs/opsguide/rdadmin.import_parser_fields.png index 6e66bfbc..5b340d92 100644 Binary files a/docs/opsguide/rdadmin.import_parser_fields.png and b/docs/opsguide/rdadmin.import_parser_fields.png differ diff --git a/docs/opsguide/rdadmin.xml b/docs/opsguide/rdadmin.xml index fb31f4fb..facd2445 100644 --- a/docs/opsguide/rdadmin.xml +++ b/docs/opsguide/rdadmin.xml @@ -524,9 +524,12 @@ from one of these systems, all that is necessary is to select the appropriate system in the <computeroutput>Import Template</computeroutput> dropdown. If the - target scheduler system is not on this list, a custom parser can + target scheduler system is not on this list, or if your system + requires custom settings, a custom parser can be defined by selecting <computeroutput>[custom]</computeroutput> from the dropdown. + The <computeroutput>Copy To Custom</computeroutput> button will + copy the selected import template values to the custom parser. </para> <para> Log schedule files for Rivendell are assumed to be in so-called diff --git a/lib/rdsvc.cpp b/lib/rdsvc.cpp index f3e599aa..f801379c 100644 --- a/lib/rdsvc.cpp +++ b/lib/rdsvc.cpp @@ -311,8 +311,25 @@ void RDSvc::setPreimportCommand(ImportSource src,const QString &path) const int RDSvc::importOffset(ImportSource src,ImportField field) const { - QString fieldname=SourceString(src)+FieldString(field)+"OFFSET"; - return RDGetSqlValue("SERVICES","NAME",svc_name,fieldname).toInt(); + QString parser_table; + QString parser_name; + QString src_str=""; + + // + // Set Import Source + // + if(importTemplate(src).isEmpty()) { + src_str=SourceString(src); + parser_table="SERVICES"; + parser_name=svc_name; + } + else { + src_str=""; + parser_table="IMPORT_TEMPLATES"; + parser_name=importTemplate(src); + } + QString fieldname=src_str+FieldString(field)+"OFFSET"; + return RDGetSqlValue(parser_table,"NAME",parser_name,fieldname).toInt(); } @@ -326,8 +343,25 @@ void RDSvc::setImportOffset(ImportSource src,ImportField field,int offset) int RDSvc::importLength(ImportSource src,ImportField field) const { - QString fieldname=SourceString(src)+FieldString(field)+"LENGTH"; - return RDGetSqlValue("SERVICES","NAME",svc_name,fieldname).toInt(); + QString parser_table; + QString parser_name; + QString src_str=""; + + // + // Set Import Source + // + if(importTemplate(src).isEmpty()) { + src_str=SourceString(src); + parser_table="SERVICES"; + parser_name=svc_name; + } + else { + src_str=""; + parser_table="IMPORT_TEMPLATES"; + parser_name=importTemplate(src); + } + QString fieldname=src_str+FieldString(field)+"LENGTH"; + return RDGetSqlValue(parser_table,"NAME",parser_name,fieldname).toInt(); } diff --git a/rdadmin/edit_svc.cpp b/rdadmin/edit_svc.cpp index 082475fb..ea7621a1 100644 --- a/rdadmin/edit_svc.cpp +++ b/rdadmin/edit_svc.cpp @@ -320,6 +320,15 @@ EditSvc::EditSvc(QString svc,QWidget *parent) button->setText(tr("Test \n&Traffic")); connect(button,SIGNAL(clicked()),this,SLOT(trafficData())); + // + // Traffic Copy Button + // + svc_tfc_copy_button=new QPushButton(this); + svc_tfc_copy_button->setGeometry(360,389,60,40); + svc_tfc_copy_button->setFont(buttonFont()); + svc_tfc_copy_button->setText(tr("Copy To\nCustom")); + connect(svc_tfc_copy_button,SIGNAL(clicked()),this,SLOT(trafficCopyData())); + // // Music Import Section // @@ -417,6 +426,15 @@ EditSvc::EditSvc(QString svc,QWidget *parent) button->setText(tr("Test \n&Music")); connect(button,SIGNAL(clicked()),this,SLOT(musicData())); + // + // Music Copy Button + // + svc_mus_copy_button=new QPushButton(this); + svc_mus_copy_button->setGeometry(795,410,60,40); + svc_mus_copy_button->setFont(buttonFont()); + svc_mus_copy_button->setText(tr("Copy To\nCustom")); + connect(svc_mus_copy_button,SIGNAL(clicked()),this,SLOT(musicCopyData())); + // // Ok Button // @@ -515,10 +533,8 @@ EditSvc::EditSvc(QString svc,QWidget *parent) setText(svc_svc->breakString()); svc_mus_track_edit-> setText(svc_svc->trackString(RDSvc::Music)); - svc_tfc_fields->setFields(svc_svc,RDSvc::Traffic); tfcTemplateActivatedData(svc_tfc_import_template_box->currentItem()); musTemplateActivatedData(svc_mus_import_template_box->currentItem()); - svc_mus_fields->setFields(svc_svc,RDSvc::Music); import_changed=false; } @@ -564,12 +580,40 @@ void EditSvc::trafficData() } +void EditSvc::trafficCopyData() +{ + if (QMessageBox::question(this,tr("Copy To Custom"), + tr("This action will overwrite your existing [custom] Traffic Data Import settings. Continue?"), + QMessageBox::Yes,QMessageBox::No)==QMessageBox::No) { + return; + } + svc_svc->setImportTemplate(RDSvc::Traffic,""); + svc_tfc_import_template_box->setCurrentItem(0); + svc_tfc_fields->setEnabled(1); + svc_tfc_copy_button->setEnabled(0); +} + + void EditSvc::musicData() { TestDataImport(RDSvc::Music); } +void EditSvc::musicCopyData() +{ + if (QMessageBox::question(this,tr("Copy To Custom"), + tr("This action will overwrite your existing [custom] Music Data Import settings. Continue?"), + QMessageBox::Yes,QMessageBox::No)==QMessageBox::No) { + return; + } + svc_svc->setImportTemplate(RDSvc::Music,""); + svc_mus_import_template_box->setCurrentItem(0); + svc_mus_fields->setEnabled(1); + svc_mus_copy_button->setEnabled(0); +} + + void EditSvc::textChangedData(const QString &) { import_changed=true; @@ -578,15 +622,66 @@ void EditSvc::textChangedData(const QString &) void EditSvc::tfcTemplateActivatedData(int index) { + // + // Save stored template + // + QString t; + + t=svc_svc->importTemplate(RDSvc::Traffic); + + // + // Temporarily set selected template + // + if(svc_tfc_import_template_box->currentItem()==0) { + svc_svc->setImportTemplate(RDSvc::Traffic,""); + } + else { + svc_svc->setImportTemplate(RDSvc::Traffic, + svc_tfc_import_template_box->currentText()); + } + + svc_tfc_fields->setFields(svc_svc,RDSvc::Traffic); svc_tfc_fields->setEnabled(index==0); + svc_tfc_copy_button->setEnabled(index!=0); import_changed=true; + + // + // Restore saved template + // + svc_svc->setImportTemplate(RDSvc::Traffic,t); } void EditSvc::musTemplateActivatedData(int index) { + + // + // Save stored template + // + QString t; + + t=svc_svc->importTemplate(RDSvc::Music); + + // + // Temporarily set selected template + // + if(svc_mus_import_template_box->currentItem()==0) { + svc_svc->setImportTemplate(RDSvc::Music,""); + } + else { + svc_svc->setImportTemplate(RDSvc::Music, + svc_mus_import_template_box->currentText()); + } + + svc_mus_fields->setFields(svc_svc,RDSvc::Music); svc_mus_fields->setEnabled(index==0); + svc_mus_copy_button->setEnabled(index!=0); import_changed=true; + + // + // Restore saved template + // + svc_svc->setImportTemplate(RDSvc::Music,t); } @@ -653,6 +748,7 @@ void EditSvc::Save() setPreimportCommand(RDSvc::Traffic,svc_tfc_preimport_cmd_edit->text()); if(svc_tfc_import_template_box->currentItem()==0) { svc_svc->setImportTemplate(RDSvc::Traffic,""); + svc_tfc_fields->readFields(svc_svc,RDSvc::Traffic); } else { svc_svc->setImportTemplate(RDSvc::Traffic, @@ -660,11 +756,11 @@ void EditSvc::Save() } svc_svc->setLabelCart(RDSvc::Traffic,svc_tfc_label_cart_edit->text()); svc_svc->setTrackString(RDSvc::Traffic,svc_tfc_track_edit->text()); - svc_tfc_fields->readFields(svc_svc,RDSvc::Traffic); svc_svc->setImportPath(RDSvc::Music,svc_mus_path_edit->text()); svc_svc->setPreimportCommand(RDSvc::Music,svc_mus_preimport_cmd_edit->text()); if(svc_mus_import_template_box->currentItem()==0) { svc_svc->setImportTemplate(RDSvc::Music,""); + svc_mus_fields->readFields(svc_svc,RDSvc::Music); } else { svc_svc->setImportTemplate(RDSvc::Music, @@ -673,7 +769,6 @@ void EditSvc::Save() svc_svc->setBreakString(svc_mus_break_edit->text()); svc_svc->setTrackString(RDSvc::Music,svc_mus_track_edit->text()); svc_svc->setLabelCart(RDSvc::Music,svc_mus_label_cart_edit->text()); - svc_mus_fields->readFields(svc_svc,RDSvc::Music); import_changed=false; if(svc_voice_group_box->currentItem()==0) { svc_svc->setTrackGroup(""); diff --git a/rdadmin/edit_svc.h b/rdadmin/edit_svc.h index 6194fd5b..f9c1b490 100644 --- a/rdadmin/edit_svc.h +++ b/rdadmin/edit_svc.h @@ -45,7 +45,9 @@ class EditSvc : public RDDialog void autofillData(); void enableHostsData(); void trafficData(); + void trafficCopyData(); void musicData(); + void musicCopyData(); void textChangedData(const QString &); void tfcTemplateActivatedData(int index); void musTemplateActivatedData(int index); @@ -85,6 +87,8 @@ class EditSvc : public RDDialog QCheckBox *svc_shelflife_box; QSpinBox *svc_shelflife_spin; QCheckBox *svc_import_markers_check; + QPushButton *svc_tfc_copy_button; + QPushButton *svc_mus_copy_button; bool import_changed; }; diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index a710e5b9..cc1696b6 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -4179,6 +4179,23 @@ uloženo. Uložit nyní?</translation> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name> diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index c4306f3b..2f004ac5 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -4052,6 +4052,23 @@ gespeichert werden. Jetzt speichern?</translation> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name> diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 6873d2a9..535d2850 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -4136,6 +4136,23 @@ debe guardarse. ¿Hacerlo ahora?</translation> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name> diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index 1b0ec9fa..05902383 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -3342,6 +3342,23 @@ must be saved. Save now?</source> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name> diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index ac135509..ada2e8d5 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -3953,6 +3953,23 @@ Lagre no?</translation> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name> diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index ac135509..ada2e8d5 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -3953,6 +3953,23 @@ Lagre no?</translation> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name> diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index 6ec2d51f..c19c5289 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -4032,6 +4032,23 @@ deve ser salva. Salvar Agora?</translation> <source>Include Import Markers in Finished Logs</source> <translation type="unfinished"></translation> </message> + <message> + <source>Copy To +Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Copy To Custom</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Traffic Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This action will overwrite your existing [custom] Music Data Import settings. Continue?</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>EditSvcPerms</name>