Version18.107

This commit is contained in:
Antonio Cañas Vargas 2019-04-09 14:46:32 +02:00
parent fdfd02011c
commit 5cd8a5fff0
6 changed files with 190 additions and 111 deletions

View File

@ -1705,14 +1705,14 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeBan */{1137,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3FF,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_SeeBanners ,NULL},
/* ActEdiBan */{1138,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_EditBanners ,NULL},
/* ActNewBan */{1139,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_RecFormNewBanner ,NULL},
/* ActRemBan */{1140,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_RemoveBanner ,NULL},
/* ActShoBan */{1212,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_ShowBanner ,NULL},
/* ActHidBan */{1213,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_HideBanner ,NULL},
/* ActRenBanSho */{1141,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_RenameBannerShort ,NULL},
/* ActRenBanFul */{1142,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_RenameBannerFull ,NULL},
/* ActChgBanImg */{1144,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_ChangeBannerImg ,NULL},
/* ActChgBanWWW */{1143,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ban_ChangeBannerWWW ,NULL},
/* ActNewBan */{1139,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_RecFormNewBanner ,Ban_ContEditAfterChgBan ,NULL},
/* ActRemBan */{1140,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_RemoveBanner ,Ban_ContEditAfterChgBan ,NULL},
/* ActShoBan */{1212,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_ShowBanner ,Ban_ContEditAfterChgBan ,NULL},
/* ActHidBan */{1213,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_HideBanner ,Ban_ContEditAfterChgBan ,NULL},
/* ActRenBanSho */{1141,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_RenameBannerShort ,Ban_ContEditAfterChgBan ,NULL},
/* ActRenBanFul */{1142,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_RenameBannerFull ,Ban_ContEditAfterChgBan ,NULL},
/* ActChgBanImg */{1144,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_ChangeBannerImg ,Ban_ContEditAfterChgBan ,NULL},
/* ActChgBanWWW */{1143,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,Ban_ChangeBannerWWW ,Ban_ContEditAfterChgBan ,NULL},
/* ActClkBan */{1145,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x3C7,Act_CONT_NORM,Act_DOWNLD_FILE,Ban_ClickOnBanner ,NULL ,NULL},
/* ActEdiLnk */{ 749,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lnk_EditLinks ,NULL},

View File

@ -58,6 +58,8 @@ extern struct Globals Gbl;
/***************************** Private variables *****************************/
/*****************************************************************************/
static struct Banner *Ban_EditingBan = NULL; // Static variable to keep the banner being edited
/*****************************************************************************/
/***************************** Private prototypes ****************************/
/*****************************************************************************/
@ -65,6 +67,7 @@ extern struct Globals Gbl;
static void Ban_WriteListOfBanners (void);
static void Ban_PutIconsListingBanners (void);
static void Ban_PutIconToEditBanners (void);
static void Ban_EditBannersInternal (void);
static void Ban_GetListBanners (MYSQL_RES **mysql_res,unsigned long NumRows);
static void Ban_PutIconsEditingBanners (void);
@ -82,6 +85,9 @@ static void Ban_PutFormToCreateBanner (void);
static void Ban_PutHeadBanners (void);
static void Ban_CreateBanner (struct Banner *Ban);
static void Ban_EditingBannerConstructor (void);
static void Ban_EditingBannerDestructor (void);
/*****************************************************************************/
/***************************** List all banners ******************************/
/*****************************************************************************/
@ -190,6 +196,18 @@ static void Ban_PutIconToEditBanners (void)
/*****************************************************************************/
void Ban_EditBanners (void)
{
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Edit banners *****/
Ban_EditBannersInternal ();
/***** Banner destructor *****/
Ban_EditingBannerDestructor ();
}
static void Ban_EditBannersInternal (void)
{
extern const char *Hlp_SYSTEM_Banners_edit;
extern const char *Txt_Banners;
@ -506,26 +524,26 @@ long Ban_GetParamBanCod (void)
void Ban_RemoveBanner (void)
{
extern const char *Txt_Banner_X_removed;
struct Banner Ban;
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Get banner code *****/
if ((Ban.BanCod = Ban_GetParamBanCod ()) == -1L)
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of banner is missing.");
/***** Get data of the banner from database *****/
Ban_GetDataOfBannerByCod (&Ban);
Ban_GetDataOfBannerByCod (Ban_EditingBan);
/***** Remove banner *****/
DB_QueryDELETE ("can not remove a banner",
"DELETE FROM banners WHERE BanCod=%ld",
Ban.BanCod);
Ban_EditingBan->BanCod);
/***** Write message to show the change made *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Banner_X_removed,
Ban.ShrtName);
/***** Show the form again *****/
Ban_EditBanners ();
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_Banner_X_removed,
Ban_EditingBan->ShrtName);
}
/*****************************************************************************/
@ -534,6 +552,9 @@ void Ban_RemoveBanner (void)
void Ban_ShowBanner (void)
{
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Set banner as visible *****/
Ban_ShowOrHideBanner (false);
}
@ -544,6 +565,9 @@ void Ban_ShowBanner (void)
void Ban_HideBanner (void)
{
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Set banner as hidden *****/
Ban_ShowOrHideBanner (true);
}
@ -556,31 +580,28 @@ static void Ban_ShowOrHideBanner (bool Hide)
{
extern const char *Txt_The_banner_X_is_now_hidden;
extern const char *Txt_The_banner_X_is_now_visible;
struct Banner Ban;
/***** Get banner code *****/
if ((Ban.BanCod = Ban_GetParamBanCod ()) == -1L)
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of banner is missing.");
/***** Get data of the banner from database *****/
Ban_GetDataOfBannerByCod (&Ban);
Ban_GetDataOfBannerByCod (Ban_EditingBan);
/***** Mark file as hidden/visible in database *****/
if (Ban.Hidden != Hide)
if (Ban_EditingBan->Hidden != Hide)
DB_QueryUPDATE ("can not change status of a banner in database",
"UPDATE banners SET Hidden='%c'"
" WHERE BanCod=%ld",
Hide ? 'Y' :
'N',
Ban.BanCod);
Ban_EditingBan->BanCod);
/***** Write message to show the change made *****/
Ale_ShowAlert (Ale_SUCCESS,Hide ? Txt_The_banner_X_is_now_hidden :
Txt_The_banner_X_is_now_visible,
Ban.ShrtName);
/***** Show the form again *****/
Ban_EditBanners ();
Ale_CreateAlert (Ale_SUCCESS,NULL,
Hide ? Txt_The_banner_X_is_now_hidden :
Txt_The_banner_X_is_now_visible,
Ban_EditingBan->ShrtName);
}
/*****************************************************************************/
@ -589,6 +610,10 @@ static void Ban_ShowOrHideBanner (bool Hide)
void Ban_RenameBannerShort (void)
{
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Rename banner *****/
Ban_RenameBanner (Cns_SHRT_NAME);
}
@ -598,6 +623,10 @@ void Ban_RenameBannerShort (void)
void Ban_RenameBannerFull (void)
{
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Rename banner *****/
Ban_RenameBanner (Cns_FULL_NAME);
}
@ -611,45 +640,44 @@ static void Ban_RenameBanner (Cns_ShrtOrFullName_t ShrtOrFullName)
extern const char *Txt_The_banner_X_already_exists;
extern const char *Txt_The_banner_X_has_been_renamed_as_Y;
extern const char *Txt_The_name_of_the_banner_X_has_not_changed;
struct Banner *Ban;
const char *ParamName = NULL; // Initialized to avoid warning
const char *FieldName = NULL; // Initialized to avoid warning
unsigned MaxBytes = 0; // Initialized to avoid warning
char *CurrentBanName = NULL; // Initialized to avoid warning
char NewBanName[Ban_MAX_BYTES_FULL_NAME + 1];
Ban = &Gbl.Banners.EditingBan;
switch (ShrtOrFullName)
{
case Cns_SHRT_NAME:
ParamName = "ShortName";
FieldName = "ShortName";
MaxBytes = Ban_MAX_BYTES_SHRT_NAME;
CurrentBanName = Ban->ShrtName;
CurrentBanName = Ban_EditingBan->ShrtName;
break;
case Cns_FULL_NAME:
ParamName = "FullName";
FieldName = "FullName";
MaxBytes = Ban_MAX_BYTES_FULL_NAME;
CurrentBanName = Ban->FullName;
CurrentBanName = Ban_EditingBan->FullName;
break;
}
/***** Get parameters from form *****/
/* Get the code of the banner */
if ((Ban->BanCod = Ban_GetParamBanCod ()) == -1L)
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of banner is missing.");
/* Get the new name for the banner */
Par_GetParToText (ParamName,NewBanName,MaxBytes);
/***** Get from the database the old names of the banner *****/
Ban_GetDataOfBannerByCod (Ban);
/***** Get banner data from the database *****/
Ban_GetDataOfBannerByCod (Ban_EditingBan);
/***** Check if new name is empty *****/
if (!NewBanName[0])
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_name_of_the_banner_X_empty,
CurrentBanName);
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_can_not_leave_the_name_of_the_banner_X_empty,
CurrentBanName);
else
{
/***** Check if old and new names are the same
@ -657,29 +685,30 @@ static void Ban_RenameBanner (Cns_ShrtOrFullName_t ShrtOrFullName)
if (strcmp (CurrentBanName,NewBanName)) // Different names
{
/***** If banner was in database... *****/
if (Ban_CheckIfBannerNameExists (ParamName,NewBanName,Ban->BanCod))
Ale_ShowAlert (Ale_WARNING,Txt_The_banner_X_already_exists,
NewBanName);
if (Ban_CheckIfBannerNameExists (ParamName,NewBanName,Ban_EditingBan->BanCod))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_banner_X_already_exists,
NewBanName);
else
{
/* Update the table changing old name by new name */
Ban_UpdateBanNameDB (Ban->BanCod,FieldName,NewBanName);
Ban_UpdateBanNameDB (Ban_EditingBan->BanCod,FieldName,NewBanName);
/* Write message to show the change made */
Ale_ShowAlert (Ale_SUCCESS,Txt_The_banner_X_has_been_renamed_as_Y,
CurrentBanName,NewBanName);
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_The_banner_X_has_been_renamed_as_Y,
CurrentBanName,NewBanName);
}
}
else // The same name
Ale_ShowAlert (Ale_INFO,Txt_The_name_of_the_banner_X_has_not_changed,
CurrentBanName);
Ale_CreateAlert (Ale_INFO,NULL,
Txt_The_name_of_the_banner_X_has_not_changed,
CurrentBanName);
}
/***** Show the form again *****/
/***** Update name *****/
Str_Copy (CurrentBanName,NewBanName,
MaxBytes);
Ban_EditBanners ();
}
/*****************************************************************************/
@ -717,39 +746,42 @@ void Ban_ChangeBannerImg (void)
{
extern const char *Txt_The_new_image_is_X;
extern const char *Txt_You_can_not_leave_the_image_empty;
struct Banner *Ban;
char NewImg[Ban_MAX_BYTES_IMAGE + 1];
Ban = &Gbl.Banners.EditingBan;
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Get parameters from form *****/
/* Get the code of the banner */
if ((Ban->BanCod = Ban_GetParamBanCod ()) == -1L)
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of banner is missing.");
/* Get the new WWW for the banner */
Par_GetParToText ("Img",NewImg,Ban_MAX_BYTES_IMAGE);
/***** Get banner data from the database *****/
Ban_GetDataOfBannerByCod (Ban_EditingBan);
/***** Check if new image is empty *****/
if (NewImg[0])
{
/* Update the table changing old image by new image */
DB_QueryUPDATE ("can not update the image of a banner",
"UPDATE banners SET Img='%s' WHERE BanCod=%ld",
NewImg,Ban->BanCod);
NewImg,Ban_EditingBan->BanCod);
/***** Write message to show the change made *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_The_new_image_is_X,
NewImg);
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_The_new_image_is_X,
NewImg);
}
else
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_image_empty);
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_can_not_leave_the_image_empty);
/***** Show the form again *****/
Str_Copy (Ban->Img,NewImg,
/***** Update image *****/
Str_Copy (Ban_EditingBan->Img,NewImg,
Ban_MAX_BYTES_IMAGE);
Ban_EditBanners ();
}
/*****************************************************************************/
@ -760,39 +792,58 @@ void Ban_ChangeBannerWWW (void)
{
extern const char *Txt_The_new_web_address_is_X;
extern const char *Txt_You_can_not_leave_the_web_address_empty;
struct Banner *Ban;
char NewWWW[Cns_MAX_BYTES_WWW + 1];
Ban = &Gbl.Banners.EditingBan;
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Get parameters from form *****/
/* Get the code of the banner */
if ((Ban->BanCod = Ban_GetParamBanCod ()) == -1L)
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of banner is missing.");
/* Get the new WWW for the banner */
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
/***** Get banner data from the database *****/
Ban_GetDataOfBannerByCod (Ban_EditingBan);
/***** Check if new WWW is empty *****/
if (NewWWW[0])
{
/* Update the table changing old WWW by new WWW */
DB_QueryUPDATE ("can not update the web of a banner",
"UPDATE banners SET WWW='%s' WHERE BanCod=%ld",
NewWWW,Ban->BanCod);
NewWWW,Ban_EditingBan->BanCod);
/***** Write message to show the change made *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_The_new_web_address_is_X,
NewWWW);
Ale_CreateAlert (Ale_SUCCESS,NULL,
Txt_The_new_web_address_is_X,
NewWWW);
}
else
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_web_address_empty);
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_can_not_leave_the_web_address_empty);
/***** Update web *****/
Str_Copy (Ban_EditingBan->WWW,NewWWW,
Cns_MAX_BYTES_WWW);
}
/*****************************************************************************/
/********* Show alerts after changing a banner and continue editing **********/
/*****************************************************************************/
void Ban_ContEditAfterChgBan (void)
{
/***** Write message to show the change made *****/
Ale_ShowAlerts (NULL);
/***** Show the form again *****/
Str_Copy (Ban->WWW,NewWWW,
Cns_MAX_BYTES_WWW);
Ban_EditBannersInternal ();
Ban_EditBanners ();
/***** Banner destructor *****/
Ban_EditingBannerDestructor ();
}
/*****************************************************************************/
@ -804,9 +855,6 @@ static void Ban_PutFormToCreateBanner (void)
extern const char *Hlp_SYSTEM_Banners_edit;
extern const char *Txt_New_banner;
extern const char *Txt_Create_banner;
struct Banner *Ban;
Ban = &Gbl.Banners.EditingBan;
/***** Start form *****/
Frm_StartForm (ActNewBan);
@ -831,7 +879,7 @@ static void Ban_PutFormToCreateBanner (void)
" class=\"INPUT_SHORT_NAME\""
" required=\"required\" />"
"</td>",
Ban_MAX_CHARS_SHRT_NAME,Ban->ShrtName);
Ban_MAX_CHARS_SHRT_NAME,Ban_EditingBan->ShrtName);
/***** Banner full name *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -840,7 +888,7 @@ static void Ban_PutFormToCreateBanner (void)
" class=\"INPUT_FULL_NAME\""
" required=\"required\" />"
"</td>",
Ban_MAX_CHARS_FULL_NAME,Ban->FullName);
Ban_MAX_CHARS_FULL_NAME,Ban_EditingBan->FullName);
/***** Banner image *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -848,7 +896,7 @@ static void Ban_PutFormToCreateBanner (void)
" size=\"12\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>",
Ban_MAX_CHARS_IMAGE,Ban->Img);
Ban_MAX_CHARS_IMAGE,Ban_EditingBan->Img);
/***** Banner WWW *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -858,7 +906,7 @@ static void Ban_PutFormToCreateBanner (void)
" required=\"required\" />"
"</td>"
"</tr>",
Cns_MAX_CHARS_WWW,Ban->WWW);
Cns_MAX_CHARS_WWW,Ban_EditingBan->WWW);
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_banner);
@ -904,45 +952,53 @@ void Ban_RecFormNewBanner (void)
extern const char *Txt_The_banner_X_already_exists;
extern const char *Txt_You_must_specify_the_image_of_the_new_banner;
extern const char *Txt_You_must_specify_the_URL_of_the_new_banner;
extern const char *Txt_Created_new_banner_X;
extern const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_banner;
struct Banner *Ban;
Ban = &Gbl.Banners.EditingBan;
/***** Banner constructor *****/
Ban_EditingBannerConstructor ();
/***** Get parameters from form *****/
/* Get banner short name */
Par_GetParToText ("ShortName",Ban->ShrtName,Ban_MAX_BYTES_SHRT_NAME);
Par_GetParToText ("ShortName",Ban_EditingBan->ShrtName,Ban_MAX_BYTES_SHRT_NAME);
/* Get banner full name */
Par_GetParToText ("FullName",Ban->FullName,Ban_MAX_BYTES_FULL_NAME);
Par_GetParToText ("FullName",Ban_EditingBan->FullName,Ban_MAX_BYTES_FULL_NAME);
/* Get banner image */
Par_GetParToText ("Img",Ban->Img,Ban_MAX_BYTES_IMAGE);
Par_GetParToText ("Img",Ban_EditingBan->Img,Ban_MAX_BYTES_IMAGE);
/* Get banner URL */
Par_GetParToText ("WWW",Ban->WWW,Cns_MAX_BYTES_WWW);
Par_GetParToText ("WWW",Ban_EditingBan->WWW,Cns_MAX_BYTES_WWW);
if (Ban->ShrtName[0] && Ban->FullName[0]) // If there's a banner name
if (Ban_EditingBan->ShrtName[0] &&
Ban_EditingBan->FullName[0]) // If there's a banner name
{
/***** If name of banner was in database... *****/
if (Ban_CheckIfBannerNameExists ("ShortName",Ban->ShrtName,-1L))
Ale_ShowAlert (Ale_WARNING,Txt_The_banner_X_already_exists,
Ban->ShrtName);
else if (Ban_CheckIfBannerNameExists ("FullName",Ban->FullName,-1L))
Ale_ShowAlert (Ale_WARNING,Txt_The_banner_X_already_exists,
Ban->FullName);
else if (!Ban->Img[0])
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_image_of_the_new_banner);
else if (!Ban->WWW[0])
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_URL_of_the_new_banner);
if (Ban_CheckIfBannerNameExists ("ShortName",Ban_EditingBan->ShrtName,-1L))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_banner_X_already_exists,
Ban_EditingBan->ShrtName);
else if (Ban_CheckIfBannerNameExists ("FullName",Ban_EditingBan->FullName,-1L))
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_The_banner_X_already_exists,
Ban_EditingBan->FullName);
else if (!Ban_EditingBan->Img[0])
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_must_specify_the_image_of_the_new_banner);
else if (!Ban_EditingBan->WWW[0])
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_must_specify_the_URL_of_the_new_banner);
else // Add new banner to database
Ban_CreateBanner (Ban);
{
Ban_CreateBanner (Ban_EditingBan);
Ale_CreateAlert (Ale_SUCCESS,Txt_Created_new_banner_X,
Ban_EditingBan->ShrtName);
}
}
else // If there is not a banner name
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_banner);
/***** Show the form again *****/
Ban_EditBanners ();
Ale_CreateAlert (Ale_WARNING,NULL,
Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_banner);
}
/*****************************************************************************/
@ -951,8 +1007,6 @@ void Ban_RecFormNewBanner (void)
static void Ban_CreateBanner (struct Banner *Ban)
{
extern const char *Txt_Created_new_banner_X;
/***** Create a new banner *****/
DB_QueryINSERT ("can not create banner",
"INSERT INTO banners"
@ -960,10 +1014,6 @@ static void Ban_CreateBanner (struct Banner *Ban)
" VALUES"
" ('N','%s','%s','%s','%s')",
Ban->ShrtName,Ban->FullName,Ban->Img,Ban->WWW);
/***** Write success message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Created_new_banner_X,
Ban->ShrtName);
}
/*****************************************************************************/
@ -1041,3 +1091,36 @@ void Ban_ClickOnBanner (void)
Gbl.Layout.DivsEndWritten =
Gbl.Layout.HTMLEndWritten = true; // Don't write HTML at all
}
/*****************************************************************************/
/************************* Banner constructor/destructor **********************/
/*****************************************************************************/
static void Ban_EditingBannerConstructor (void)
{
/***** Pointer must be NULL *****/
if (Ban_EditingBan != NULL)
Lay_ShowErrorAndExit ("Error initializing banner.");
/***** Allocate memory for banner *****/
if ((Ban_EditingBan = (struct Banner *) malloc (sizeof (struct Banner))) == NULL)
Lay_ShowErrorAndExit ("Error allocating memory for banner.");
/***** Reset banner *****/
Ban_EditingBan->BanCod = -1L;
Ban_EditingBan->Hidden = true;
Ban_EditingBan->ShrtName[0] = '\0';
Ban_EditingBan->FullName[0] = '\0';
Ban_EditingBan->Img[0] = '\0';
Ban_EditingBan->WWW[0] = '\0';
}
static void Ban_EditingBannerDestructor (void)
{
/***** Free memory used for place *****/
if (Ban_EditingBan != NULL)
{
free ((void *) Ban_EditingBan);
Ban_EditingBan = NULL;
}
}

View File

@ -71,6 +71,7 @@ void Ban_RenameBannerShort (void);
void Ban_RenameBannerFull (void);
void Ban_ChangeBannerImg (void);
void Ban_ChangeBannerWWW (void);
void Ban_ContEditAfterChgBan (void);
void Ban_RecFormNewBanner (void);
void Ban_WriteMenuWithBanners (void);
void Ban_ClickOnBanner (void);

View File

@ -464,10 +464,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.106 (2019-04-09)"
#define Log_PLATFORM_VERSION "SWAD 18.107 (2019-04-09)"
#define CSS_FILE "swad18.92.css"
#define JS_FILE "swad18.92.js"
/*
Version 18.107: Apr 09, 2019 Code refactoring in edition of banners. (242275 lines)
Version 18.106: Apr 09, 2019 Code refactoring in edition of mail domains. (242208 lines)
Version 18.105: Apr 09, 2019 Code refactoring in edition of holidays. (242152 lines)
Version 18.104: Apr 09, 2019 Code refactoring in edition of classrooms. (242151 lines)

View File

@ -326,10 +326,6 @@ void Gbl_InitializeGlobals (void)
Gbl.Banners.Num = 0;
Gbl.Banners.Lst = NULL;
Gbl.Banners.EditingBan.BanCod = -1L;
Gbl.Banners.EditingBan.ShrtName[0] = '\0';
Gbl.Banners.EditingBan.FullName[0] = '\0';
Gbl.Banners.EditingBan.WWW[0] = '\0';
Gbl.Banners.BanCodClicked = 0L;
Gbl.Links.Num = 0;

View File

@ -254,7 +254,6 @@ struct Globals
{
unsigned Num; // Number of banners
struct Banner *Lst; // List of banners
struct Banner EditingBan;
long BanCodClicked;
} Banners;
struct
@ -635,7 +634,6 @@ struct Globals
} Config;
TT_TimeTableType_t Type;
TT_TimeTableView_t View;
// bool Editing;
unsigned Weekday;
unsigned Interval;
unsigned Column;