mirror of https://github.com/acanas/swad-core.git
Version18.107
This commit is contained in:
parent
fdfd02011c
commit
5cd8a5fff0
|
@ -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},
|
/* 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},
|
/* 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},
|
/* 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,NULL ,Ban_RemoveBanner ,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,NULL ,Ban_ShowBanner ,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,NULL ,Ban_HideBanner ,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,NULL ,Ban_RenameBannerShort ,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,NULL ,Ban_RenameBannerFull ,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,NULL ,Ban_ChangeBannerImg ,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,NULL ,Ban_ChangeBannerWWW ,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},
|
/* 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},
|
/* ActEdiLnk */{ 749,-1,TabUnk,ActSeeLnk , 0, 0, 0, 0, 0, 0,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lnk_EditLinks ,NULL},
|
||||||
|
|
275
swad_banner.c
275
swad_banner.c
|
@ -58,6 +58,8 @@ extern struct Globals Gbl;
|
||||||
/***************************** Private variables *****************************/
|
/***************************** Private variables *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static struct Banner *Ban_EditingBan = NULL; // Static variable to keep the banner being edited
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Private prototypes ****************************/
|
/***************************** Private prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -65,6 +67,7 @@ extern struct Globals Gbl;
|
||||||
static void Ban_WriteListOfBanners (void);
|
static void Ban_WriteListOfBanners (void);
|
||||||
static void Ban_PutIconsListingBanners (void);
|
static void Ban_PutIconsListingBanners (void);
|
||||||
static void Ban_PutIconToEditBanners (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_GetListBanners (MYSQL_RES **mysql_res,unsigned long NumRows);
|
||||||
|
|
||||||
static void Ban_PutIconsEditingBanners (void);
|
static void Ban_PutIconsEditingBanners (void);
|
||||||
|
@ -82,6 +85,9 @@ static void Ban_PutFormToCreateBanner (void);
|
||||||
static void Ban_PutHeadBanners (void);
|
static void Ban_PutHeadBanners (void);
|
||||||
static void Ban_CreateBanner (struct Banner *Ban);
|
static void Ban_CreateBanner (struct Banner *Ban);
|
||||||
|
|
||||||
|
static void Ban_EditingBannerConstructor (void);
|
||||||
|
static void Ban_EditingBannerDestructor (void);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** List all banners ******************************/
|
/***************************** List all banners ******************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -190,6 +196,18 @@ static void Ban_PutIconToEditBanners (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Ban_EditBanners (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 *Hlp_SYSTEM_Banners_edit;
|
||||||
extern const char *Txt_Banners;
|
extern const char *Txt_Banners;
|
||||||
|
@ -506,26 +524,26 @@ long Ban_GetParamBanCod (void)
|
||||||
void Ban_RemoveBanner (void)
|
void Ban_RemoveBanner (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Banner_X_removed;
|
extern const char *Txt_Banner_X_removed;
|
||||||
struct Banner Ban;
|
|
||||||
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
/***** Get banner code *****/
|
/***** Get banner code *****/
|
||||||
if ((Ban.BanCod = Ban_GetParamBanCod ()) == -1L)
|
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
|
||||||
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
||||||
|
|
||||||
/***** Get data of the banner from database *****/
|
/***** Get data of the banner from database *****/
|
||||||
Ban_GetDataOfBannerByCod (&Ban);
|
Ban_GetDataOfBannerByCod (Ban_EditingBan);
|
||||||
|
|
||||||
/***** Remove banner *****/
|
/***** Remove banner *****/
|
||||||
DB_QueryDELETE ("can not remove a banner",
|
DB_QueryDELETE ("can not remove a banner",
|
||||||
"DELETE FROM banners WHERE BanCod=%ld",
|
"DELETE FROM banners WHERE BanCod=%ld",
|
||||||
Ban.BanCod);
|
Ban_EditingBan->BanCod);
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
/***** Write message to show the change made *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_Banner_X_removed,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
Ban.ShrtName);
|
Txt_Banner_X_removed,
|
||||||
|
Ban_EditingBan->ShrtName);
|
||||||
/***** Show the form again *****/
|
|
||||||
Ban_EditBanners ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -534,6 +552,9 @@ void Ban_RemoveBanner (void)
|
||||||
|
|
||||||
void Ban_ShowBanner (void)
|
void Ban_ShowBanner (void)
|
||||||
{
|
{
|
||||||
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
/***** Set banner as visible *****/
|
/***** Set banner as visible *****/
|
||||||
Ban_ShowOrHideBanner (false);
|
Ban_ShowOrHideBanner (false);
|
||||||
}
|
}
|
||||||
|
@ -544,6 +565,9 @@ void Ban_ShowBanner (void)
|
||||||
|
|
||||||
void Ban_HideBanner (void)
|
void Ban_HideBanner (void)
|
||||||
{
|
{
|
||||||
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
/***** Set banner as hidden *****/
|
/***** Set banner as hidden *****/
|
||||||
Ban_ShowOrHideBanner (true);
|
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_hidden;
|
||||||
extern const char *Txt_The_banner_X_is_now_visible;
|
extern const char *Txt_The_banner_X_is_now_visible;
|
||||||
struct Banner Ban;
|
|
||||||
|
|
||||||
/***** Get banner code *****/
|
/***** Get banner code *****/
|
||||||
if ((Ban.BanCod = Ban_GetParamBanCod ()) == -1L)
|
if ((Ban_EditingBan->BanCod = Ban_GetParamBanCod ()) == -1L)
|
||||||
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
||||||
|
|
||||||
/***** Get data of the banner from database *****/
|
/***** Get data of the banner from database *****/
|
||||||
Ban_GetDataOfBannerByCod (&Ban);
|
Ban_GetDataOfBannerByCod (Ban_EditingBan);
|
||||||
|
|
||||||
/***** Mark file as hidden/visible in database *****/
|
/***** 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",
|
DB_QueryUPDATE ("can not change status of a banner in database",
|
||||||
"UPDATE banners SET Hidden='%c'"
|
"UPDATE banners SET Hidden='%c'"
|
||||||
" WHERE BanCod=%ld",
|
" WHERE BanCod=%ld",
|
||||||
Hide ? 'Y' :
|
Hide ? 'Y' :
|
||||||
'N',
|
'N',
|
||||||
Ban.BanCod);
|
Ban_EditingBan->BanCod);
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
/***** Write message to show the change made *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Hide ? Txt_The_banner_X_is_now_hidden :
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
Txt_The_banner_X_is_now_visible,
|
Hide ? Txt_The_banner_X_is_now_hidden :
|
||||||
Ban.ShrtName);
|
Txt_The_banner_X_is_now_visible,
|
||||||
|
Ban_EditingBan->ShrtName);
|
||||||
/***** Show the form again *****/
|
|
||||||
Ban_EditBanners ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -589,6 +610,10 @@ static void Ban_ShowOrHideBanner (bool Hide)
|
||||||
|
|
||||||
void Ban_RenameBannerShort (void)
|
void Ban_RenameBannerShort (void)
|
||||||
{
|
{
|
||||||
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
|
/***** Rename banner *****/
|
||||||
Ban_RenameBanner (Cns_SHRT_NAME);
|
Ban_RenameBanner (Cns_SHRT_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -598,6 +623,10 @@ void Ban_RenameBannerShort (void)
|
||||||
|
|
||||||
void Ban_RenameBannerFull (void)
|
void Ban_RenameBannerFull (void)
|
||||||
{
|
{
|
||||||
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
|
/***** Rename banner *****/
|
||||||
Ban_RenameBanner (Cns_FULL_NAME);
|
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_already_exists;
|
||||||
extern const char *Txt_The_banner_X_has_been_renamed_as_Y;
|
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;
|
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 *ParamName = NULL; // Initialized to avoid warning
|
||||||
const char *FieldName = NULL; // Initialized to avoid warning
|
const char *FieldName = NULL; // Initialized to avoid warning
|
||||||
unsigned MaxBytes = 0; // Initialized to avoid warning
|
unsigned MaxBytes = 0; // Initialized to avoid warning
|
||||||
char *CurrentBanName = NULL; // Initialized to avoid warning
|
char *CurrentBanName = NULL; // Initialized to avoid warning
|
||||||
char NewBanName[Ban_MAX_BYTES_FULL_NAME + 1];
|
char NewBanName[Ban_MAX_BYTES_FULL_NAME + 1];
|
||||||
|
|
||||||
Ban = &Gbl.Banners.EditingBan;
|
|
||||||
switch (ShrtOrFullName)
|
switch (ShrtOrFullName)
|
||||||
{
|
{
|
||||||
case Cns_SHRT_NAME:
|
case Cns_SHRT_NAME:
|
||||||
ParamName = "ShortName";
|
ParamName = "ShortName";
|
||||||
FieldName = "ShortName";
|
FieldName = "ShortName";
|
||||||
MaxBytes = Ban_MAX_BYTES_SHRT_NAME;
|
MaxBytes = Ban_MAX_BYTES_SHRT_NAME;
|
||||||
CurrentBanName = Ban->ShrtName;
|
CurrentBanName = Ban_EditingBan->ShrtName;
|
||||||
break;
|
break;
|
||||||
case Cns_FULL_NAME:
|
case Cns_FULL_NAME:
|
||||||
ParamName = "FullName";
|
ParamName = "FullName";
|
||||||
FieldName = "FullName";
|
FieldName = "FullName";
|
||||||
MaxBytes = Ban_MAX_BYTES_FULL_NAME;
|
MaxBytes = Ban_MAX_BYTES_FULL_NAME;
|
||||||
CurrentBanName = Ban->FullName;
|
CurrentBanName = Ban_EditingBan->FullName;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Get the code of the banner */
|
/* 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.");
|
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
||||||
|
|
||||||
/* Get the new name for the banner */
|
/* Get the new name for the banner */
|
||||||
Par_GetParToText (ParamName,NewBanName,MaxBytes);
|
Par_GetParToText (ParamName,NewBanName,MaxBytes);
|
||||||
|
|
||||||
/***** Get from the database the old names of the banner *****/
|
/***** Get banner data from the database *****/
|
||||||
Ban_GetDataOfBannerByCod (Ban);
|
Ban_GetDataOfBannerByCod (Ban_EditingBan);
|
||||||
|
|
||||||
/***** Check if new name is empty *****/
|
/***** Check if new name is empty *****/
|
||||||
if (!NewBanName[0])
|
if (!NewBanName[0])
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_You_can_not_leave_the_name_of_the_banner_X_empty,
|
Ale_CreateAlert (Ale_WARNING,NULL,
|
||||||
CurrentBanName);
|
Txt_You_can_not_leave_the_name_of_the_banner_X_empty,
|
||||||
|
CurrentBanName);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/***** Check if old and new names are the same
|
/***** 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 (strcmp (CurrentBanName,NewBanName)) // Different names
|
||||||
{
|
{
|
||||||
/***** If banner was in database... *****/
|
/***** If banner was in database... *****/
|
||||||
if (Ban_CheckIfBannerNameExists (ParamName,NewBanName,Ban->BanCod))
|
if (Ban_CheckIfBannerNameExists (ParamName,NewBanName,Ban_EditingBan->BanCod))
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_The_banner_X_already_exists,
|
Ale_CreateAlert (Ale_WARNING,NULL,
|
||||||
NewBanName);
|
Txt_The_banner_X_already_exists,
|
||||||
|
NewBanName);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Update the table changing old name by new name */
|
/* 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 */
|
/* Write message to show the change made */
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_The_banner_X_has_been_renamed_as_Y,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
CurrentBanName,NewBanName);
|
Txt_The_banner_X_has_been_renamed_as_Y,
|
||||||
|
CurrentBanName,NewBanName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // The same name
|
else // The same name
|
||||||
Ale_ShowAlert (Ale_INFO,Txt_The_name_of_the_banner_X_has_not_changed,
|
Ale_CreateAlert (Ale_INFO,NULL,
|
||||||
CurrentBanName);
|
Txt_The_name_of_the_banner_X_has_not_changed,
|
||||||
|
CurrentBanName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Show the form again *****/
|
/***** Update name *****/
|
||||||
Str_Copy (CurrentBanName,NewBanName,
|
Str_Copy (CurrentBanName,NewBanName,
|
||||||
MaxBytes);
|
MaxBytes);
|
||||||
|
|
||||||
Ban_EditBanners ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -717,39 +746,42 @@ void Ban_ChangeBannerImg (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_The_new_image_is_X;
|
extern const char *Txt_The_new_image_is_X;
|
||||||
extern const char *Txt_You_can_not_leave_the_image_empty;
|
extern const char *Txt_You_can_not_leave_the_image_empty;
|
||||||
struct Banner *Ban;
|
|
||||||
char NewImg[Ban_MAX_BYTES_IMAGE + 1];
|
char NewImg[Ban_MAX_BYTES_IMAGE + 1];
|
||||||
|
|
||||||
Ban = &Gbl.Banners.EditingBan;
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Get the code of the banner */
|
/* 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.");
|
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
||||||
|
|
||||||
/* Get the new WWW for the banner */
|
/* Get the new WWW for the banner */
|
||||||
Par_GetParToText ("Img",NewImg,Ban_MAX_BYTES_IMAGE);
|
Par_GetParToText ("Img",NewImg,Ban_MAX_BYTES_IMAGE);
|
||||||
|
|
||||||
|
/***** Get banner data from the database *****/
|
||||||
|
Ban_GetDataOfBannerByCod (Ban_EditingBan);
|
||||||
|
|
||||||
/***** Check if new image is empty *****/
|
/***** Check if new image is empty *****/
|
||||||
if (NewImg[0])
|
if (NewImg[0])
|
||||||
{
|
{
|
||||||
/* Update the table changing old image by new image */
|
/* Update the table changing old image by new image */
|
||||||
DB_QueryUPDATE ("can not update the image of a banner",
|
DB_QueryUPDATE ("can not update the image of a banner",
|
||||||
"UPDATE banners SET Img='%s' WHERE BanCod=%ld",
|
"UPDATE banners SET Img='%s' WHERE BanCod=%ld",
|
||||||
NewImg,Ban->BanCod);
|
NewImg,Ban_EditingBan->BanCod);
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
/***** Write message to show the change made *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_The_new_image_is_X,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
NewImg);
|
Txt_The_new_image_is_X,
|
||||||
|
NewImg);
|
||||||
}
|
}
|
||||||
else
|
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 *****/
|
/***** Update image *****/
|
||||||
Str_Copy (Ban->Img,NewImg,
|
Str_Copy (Ban_EditingBan->Img,NewImg,
|
||||||
Ban_MAX_BYTES_IMAGE);
|
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_The_new_web_address_is_X;
|
||||||
extern const char *Txt_You_can_not_leave_the_web_address_empty;
|
extern const char *Txt_You_can_not_leave_the_web_address_empty;
|
||||||
struct Banner *Ban;
|
|
||||||
char NewWWW[Cns_MAX_BYTES_WWW + 1];
|
char NewWWW[Cns_MAX_BYTES_WWW + 1];
|
||||||
|
|
||||||
Ban = &Gbl.Banners.EditingBan;
|
/***** Banner constructor *****/
|
||||||
|
Ban_EditingBannerConstructor ();
|
||||||
|
|
||||||
/***** Get parameters from form *****/
|
/***** Get parameters from form *****/
|
||||||
/* Get the code of the banner */
|
/* 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.");
|
Lay_ShowErrorAndExit ("Code of banner is missing.");
|
||||||
|
|
||||||
/* Get the new WWW for the banner */
|
/* Get the new WWW for the banner */
|
||||||
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
|
Par_GetParToText ("WWW",NewWWW,Cns_MAX_BYTES_WWW);
|
||||||
|
|
||||||
|
/***** Get banner data from the database *****/
|
||||||
|
Ban_GetDataOfBannerByCod (Ban_EditingBan);
|
||||||
|
|
||||||
/***** Check if new WWW is empty *****/
|
/***** Check if new WWW is empty *****/
|
||||||
if (NewWWW[0])
|
if (NewWWW[0])
|
||||||
{
|
{
|
||||||
/* Update the table changing old WWW by new WWW */
|
/* Update the table changing old WWW by new WWW */
|
||||||
DB_QueryUPDATE ("can not update the web of a banner",
|
DB_QueryUPDATE ("can not update the web of a banner",
|
||||||
"UPDATE banners SET WWW='%s' WHERE BanCod=%ld",
|
"UPDATE banners SET WWW='%s' WHERE BanCod=%ld",
|
||||||
NewWWW,Ban->BanCod);
|
NewWWW,Ban_EditingBan->BanCod);
|
||||||
|
|
||||||
/***** Write message to show the change made *****/
|
/***** Write message to show the change made *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_The_new_web_address_is_X,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
NewWWW);
|
Txt_The_new_web_address_is_X,
|
||||||
|
NewWWW);
|
||||||
}
|
}
|
||||||
else
|
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 *****/
|
/***** Show the form again *****/
|
||||||
Str_Copy (Ban->WWW,NewWWW,
|
Ban_EditBannersInternal ();
|
||||||
Cns_MAX_BYTES_WWW);
|
|
||||||
|
|
||||||
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 *Hlp_SYSTEM_Banners_edit;
|
||||||
extern const char *Txt_New_banner;
|
extern const char *Txt_New_banner;
|
||||||
extern const char *Txt_Create_banner;
|
extern const char *Txt_Create_banner;
|
||||||
struct Banner *Ban;
|
|
||||||
|
|
||||||
Ban = &Gbl.Banners.EditingBan;
|
|
||||||
|
|
||||||
/***** Start form *****/
|
/***** Start form *****/
|
||||||
Frm_StartForm (ActNewBan);
|
Frm_StartForm (ActNewBan);
|
||||||
|
@ -831,7 +879,7 @@ static void Ban_PutFormToCreateBanner (void)
|
||||||
" class=\"INPUT_SHORT_NAME\""
|
" class=\"INPUT_SHORT_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Ban_MAX_CHARS_SHRT_NAME,Ban->ShrtName);
|
Ban_MAX_CHARS_SHRT_NAME,Ban_EditingBan->ShrtName);
|
||||||
|
|
||||||
/***** Banner full name *****/
|
/***** Banner full name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -840,7 +888,7 @@ static void Ban_PutFormToCreateBanner (void)
|
||||||
" class=\"INPUT_FULL_NAME\""
|
" class=\"INPUT_FULL_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Ban_MAX_CHARS_FULL_NAME,Ban->FullName);
|
Ban_MAX_CHARS_FULL_NAME,Ban_EditingBan->FullName);
|
||||||
|
|
||||||
/***** Banner image *****/
|
/***** Banner image *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -848,7 +896,7 @@ static void Ban_PutFormToCreateBanner (void)
|
||||||
" size=\"12\" maxlength=\"%u\" value=\"%s\""
|
" size=\"12\" maxlength=\"%u\" value=\"%s\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>",
|
"</td>",
|
||||||
Ban_MAX_CHARS_IMAGE,Ban->Img);
|
Ban_MAX_CHARS_IMAGE,Ban_EditingBan->Img);
|
||||||
|
|
||||||
/***** Banner WWW *****/
|
/***** Banner WWW *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -858,7 +906,7 @@ static void Ban_PutFormToCreateBanner (void)
|
||||||
" required=\"required\" />"
|
" required=\"required\" />"
|
||||||
"</td>"
|
"</td>"
|
||||||
"</tr>",
|
"</tr>",
|
||||||
Cns_MAX_CHARS_WWW,Ban->WWW);
|
Cns_MAX_CHARS_WWW,Ban_EditingBan->WWW);
|
||||||
|
|
||||||
/***** End table, send button and end box *****/
|
/***** End table, send button and end box *****/
|
||||||
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_banner);
|
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_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_image_of_the_new_banner;
|
||||||
extern const char *Txt_You_must_specify_the_URL_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;
|
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 parameters from form *****/
|
||||||
/* Get banner short name */
|
/* 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 */
|
/* 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 */
|
/* 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 */
|
/* 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 name of banner was in database... *****/
|
||||||
if (Ban_CheckIfBannerNameExists ("ShortName",Ban->ShrtName,-1L))
|
if (Ban_CheckIfBannerNameExists ("ShortName",Ban_EditingBan->ShrtName,-1L))
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_The_banner_X_already_exists,
|
Ale_CreateAlert (Ale_WARNING,NULL,
|
||||||
Ban->ShrtName);
|
Txt_The_banner_X_already_exists,
|
||||||
else if (Ban_CheckIfBannerNameExists ("FullName",Ban->FullName,-1L))
|
Ban_EditingBan->ShrtName);
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_The_banner_X_already_exists,
|
else if (Ban_CheckIfBannerNameExists ("FullName",Ban_EditingBan->FullName,-1L))
|
||||||
Ban->FullName);
|
Ale_CreateAlert (Ale_WARNING,NULL,
|
||||||
else if (!Ban->Img[0])
|
Txt_The_banner_X_already_exists,
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_image_of_the_new_banner);
|
Ban_EditingBan->FullName);
|
||||||
else if (!Ban->WWW[0])
|
else if (!Ban_EditingBan->Img[0])
|
||||||
Ale_ShowAlert (Ale_WARNING,Txt_You_must_specify_the_URL_of_the_new_banner);
|
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
|
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
|
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);
|
Ale_CreateAlert (Ale_WARNING,NULL,
|
||||||
|
Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_banner);
|
||||||
/***** Show the form again *****/
|
|
||||||
Ban_EditBanners ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -951,8 +1007,6 @@ void Ban_RecFormNewBanner (void)
|
||||||
|
|
||||||
static void Ban_CreateBanner (struct Banner *Ban)
|
static void Ban_CreateBanner (struct Banner *Ban)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Created_new_banner_X;
|
|
||||||
|
|
||||||
/***** Create a new banner *****/
|
/***** Create a new banner *****/
|
||||||
DB_QueryINSERT ("can not create banner",
|
DB_QueryINSERT ("can not create banner",
|
||||||
"INSERT INTO banners"
|
"INSERT INTO banners"
|
||||||
|
@ -960,10 +1014,6 @@ static void Ban_CreateBanner (struct Banner *Ban)
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" ('N','%s','%s','%s','%s')",
|
" ('N','%s','%s','%s','%s')",
|
||||||
Ban->ShrtName,Ban->FullName,Ban->Img,Ban->WWW);
|
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.DivsEndWritten =
|
||||||
Gbl.Layout.HTMLEndWritten = true; // Don't write HTML at all
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -71,6 +71,7 @@ void Ban_RenameBannerShort (void);
|
||||||
void Ban_RenameBannerFull (void);
|
void Ban_RenameBannerFull (void);
|
||||||
void Ban_ChangeBannerImg (void);
|
void Ban_ChangeBannerImg (void);
|
||||||
void Ban_ChangeBannerWWW (void);
|
void Ban_ChangeBannerWWW (void);
|
||||||
|
void Ban_ContEditAfterChgBan (void);
|
||||||
void Ban_RecFormNewBanner (void);
|
void Ban_RecFormNewBanner (void);
|
||||||
void Ban_WriteMenuWithBanners (void);
|
void Ban_WriteMenuWithBanners (void);
|
||||||
void Ban_ClickOnBanner (void);
|
void Ban_ClickOnBanner (void);
|
||||||
|
|
|
@ -464,10 +464,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
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 CSS_FILE "swad18.92.css"
|
||||||
#define JS_FILE "swad18.92.js"
|
#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.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.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)
|
Version 18.104: Apr 09, 2019 Code refactoring in edition of classrooms. (242151 lines)
|
||||||
|
|
|
@ -326,10 +326,6 @@ void Gbl_InitializeGlobals (void)
|
||||||
|
|
||||||
Gbl.Banners.Num = 0;
|
Gbl.Banners.Num = 0;
|
||||||
Gbl.Banners.Lst = NULL;
|
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.Banners.BanCodClicked = 0L;
|
||||||
|
|
||||||
Gbl.Links.Num = 0;
|
Gbl.Links.Num = 0;
|
||||||
|
|
|
@ -254,7 +254,6 @@ struct Globals
|
||||||
{
|
{
|
||||||
unsigned Num; // Number of banners
|
unsigned Num; // Number of banners
|
||||||
struct Banner *Lst; // List of banners
|
struct Banner *Lst; // List of banners
|
||||||
struct Banner EditingBan;
|
|
||||||
long BanCodClicked;
|
long BanCodClicked;
|
||||||
} Banners;
|
} Banners;
|
||||||
struct
|
struct
|
||||||
|
@ -635,7 +634,6 @@ struct Globals
|
||||||
} Config;
|
} Config;
|
||||||
TT_TimeTableType_t Type;
|
TT_TimeTableType_t Type;
|
||||||
TT_TimeTableView_t View;
|
TT_TimeTableView_t View;
|
||||||
// bool Editing;
|
|
||||||
unsigned Weekday;
|
unsigned Weekday;
|
||||||
unsigned Interval;
|
unsigned Interval;
|
||||||
unsigned Column;
|
unsigned Column;
|
||||||
|
|
Loading…
Reference in New Issue