diff --git a/ChangeLog b/ChangeLog index e87be3f1..de532ffb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20306,3 +20306,9 @@ 2020-09-22 Fred Gleason * Added a 'PostImage' method to the Web API. * Added a 'RemoveImage' method to the Web API. +2020-09-22 Fred Gleason + * Added 'FEEDS.CHANNEL_IMAGE_ID_IDX', 'FEEDS.DEFAULT_ITEM_IMAGE_ID_IDX' + and 'PODCASTS.ITEM_IMAGE_ID_IDX' indexes to the database. + * Incremented the database version to 337. + * Added a sanity check to the 'Image Manager' dialog in + rdadmin(1) to prevent deletion of in-use images. diff --git a/lib/dbversion.h b/lib/dbversion.h index b71c086e..0b0c639d 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 336 +#define RD_VERSION_DATABASE 337 #endif // DBVERSION_H diff --git a/rdadmin/list_images.cpp b/rdadmin/list_images.cpp index 78b61bee..e86416f6 100644 --- a/rdadmin/list_images.cpp +++ b/rdadmin/list_images.cpp @@ -167,9 +167,52 @@ void ListImages::deleteData() QString err_msg=""; QString sql; RDSqlQuery *q=NULL; + int channel_ids=0; + int channel_default_ids=0; + int item_ids=0; if((row=SelectedRow())>=0) { - sql=QString("select FILE_EXTENSION from FEED_IMAGES where ")+ + sql=QString("select ")+ + "ID "+ + "from FEEDS where "+ + QString().sprintf("CHANNEL_IMAGE_ID=%d",list_model->imageId(row)); + q=new RDSqlQuery(sql); + channel_ids=q->size(); + delete q; + + sql=QString("select ")+ + "ID "+ + "from FEEDS where "+ + QString().sprintf("DEFAULT_ITEM_IMAGE_ID=%d",list_model->imageId(row)); + q=new RDSqlQuery(sql); + channel_default_ids=q->size(); + delete q; + + sql=QString("select ")+ + "ID "+ + "from PODCASTS where "+ + QString().sprintf("ITEM_IMAGE_ID=%d",list_model->imageId(row)); + q=new RDSqlQuery(sql); + item_ids=q->size(); + delete q; + + if((channel_ids>0)||(channel_default_ids>0)||(item_ids>0)) { + QString msg=tr("Image is in use as")+" "; + if(channel_ids>0) { + msg+=tr("a channel image")+", "; + } + if(channel_default_ids>0) { + msg+=tr("a default item image")+", "; + } + if(item_ids>0) { + msg+=tr("an item image")+", "; + } + msg=msg.left(msg.length()-2)+"."; + QMessageBox::warning(this,"RDAdmin - "+tr("Image in Use"),msg); + return; + } + + sql=QString("select ID from FEED_IMAGES where ")+ QString().sprintf("ID=%d",list_model->imageId(row)); q=new RDSqlQuery(sql); if(q->first()) { diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 8fcd7996..319083e7 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -5466,6 +5466,26 @@ Stále ještě jej chcete smazat? Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index ca06057f..728bf87f 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -5232,6 +5232,26 @@ Generieren Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 862eafbf..5565bbc4 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -5429,6 +5429,26 @@ Do you still want to delete it? Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index 5c2a6d9b..ce0dba37 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -4377,6 +4377,26 @@ Permissions Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index ad446151..145e30a4 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -5101,6 +5101,26 @@ Klikk på "Lisens"-knappen for fleire opplysningar. Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index ad446151..145e30a4 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -5101,6 +5101,26 @@ Klikk på "Lisens"-knappen for fleire opplysningar. Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index de0860f2..44a6e34f 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -5216,6 +5216,26 @@ Você ainda quer Deletar? Image upload failed! + + Image is in use as + + + + a channel image + + + + a default item image + + + + an item image + + + + Image in Use + + ListLiveWireGpios diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 1b5ab19d..1840a985 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -40,6 +40,17 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) // NEW SCHEMA REVERSIONS GO HERE... + // + // Revert 337 + // + if((cur_schema==337)&&(set_schemacur_schema)) { + sql=QString("alter table FEEDS ")+ + "add index CHANNEL_IMAGE_ID_IDX(CHANNEL_IMAGE_ID)"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table FEEDS ")+ + "add index DEFAULT_ITEM_IMAGE_ID_IDX(DEFAULT_ITEM_IMAGE_ID)"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table PODCASTS ")+ + "add index ITEM_IMAGE_ID_IDX(ITEM_IMAGE_ID)"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + WriteSchemaVersion(++cur_schema); + } // NEW SCHEMA UPDATES GO HERE...