mirror of https://github.com/acanas/swad-core.git
Version19.176
This commit is contained in:
parent
9443a90eac
commit
e089c03a00
|
@ -1647,7 +1647,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActFrmRolSes ] = { 843, 0,TabPrf,ActFrmRolSes ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_WriteFormLogout ,"power-off" },
|
||||
[ActMyCrs ] = { 987, 1,TabPrf,ActMyCrs ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Crs_ReqSelectOneOfMyCourses ,"sitemap" },
|
||||
[ActSeeMyTT ] = { 408, 2,TabPrf,ActSeeMyTT ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TT_ShowClassTimeTable ,"clock" },
|
||||
[ActSeeMyAgd ] = {1602, 3,TabPrf,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_ShowMyAgenda ,"calendar" },
|
||||
[ActSeeMyAgd ] = {1602, 3,TabPrf,ActSeeMyAgd ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Agd_GetParamsAndShowMyAgenda ,"calendar" },
|
||||
[ActFrmMyAcc ] = { 36, 4,TabPrf,ActFrmMyAcc ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Acc_ShowFormMyAccount ,"at" },
|
||||
[ActReqEdiRecSha ] = { 285, 5,TabPrf,ActReqEdiRecSha ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Rec_ShowMySharedRecordAndMore ,"card" },
|
||||
[ActReqEdiSet ] = { 673, 6,TabPrf,ActReqEdiSet ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Set_EditSettings ,"cog" },
|
||||
|
|
455
swad_agenda.c
455
swad_agenda.c
|
@ -83,20 +83,27 @@ typedef enum
|
|||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowFormToSelPast__FutureEvents (void);
|
||||
static void Agd_ShowFormToSelPrivatPublicEvents (void);
|
||||
static void Agd_ShowFormToSelHiddenVisiblEvents (void);
|
||||
static void Agd_ResetAgenda (struct Agd_Agenda *Agenda);
|
||||
|
||||
static void Agd_ShowMyAgenda (struct Agd_Agenda *Agenda);
|
||||
|
||||
static void Agd_ShowFormToSelPast__FutureEvents (const struct Agd_Agenda *Agenda);
|
||||
static void Agd_ShowFormToSelPrivatPublicEvents (const struct Agd_Agenda *Agenda);
|
||||
static void Agd_ShowFormToSelHiddenVisiblEvents (const struct Agd_Agenda *Agenda);
|
||||
|
||||
static void Agd_PutHiddenParamPast__FutureEvents (unsigned Past__FutureEvents);
|
||||
static void Agd_PutHiddenParamPrivatPublicEvents (unsigned PrivatPublicEvents);
|
||||
static void Agd_PutHiddenParamHiddenVisiblEvents (unsigned HiddenVisiblEvents);
|
||||
static void Agd_GetParamsPast__FutureEvents (void);
|
||||
static void Agd_GetParamsPrivatPublicEvents (void);
|
||||
static void Agd_GetParamsHiddenVisiblEvents (void);
|
||||
static unsigned Agd_GetParamsPast__FutureEvents (void);
|
||||
static unsigned Agd_GetParamsPrivatPublicEvents (void);
|
||||
static unsigned Agd_GetParamsHiddenVisiblEvents (void);
|
||||
|
||||
static void Agd_ShowEvents (Agd_AgendaType_t AgendaType);
|
||||
static void Agd_ShowEventsToday (Agd_AgendaType_t AgendaType);
|
||||
static void Agd_WriteHeaderListEvents (Agd_AgendaType_t AgendaType);
|
||||
static void Agd_ShowEvents (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType);
|
||||
static void Agd_ShowEventsToday (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType);
|
||||
static void Agd_WriteHeaderListEvents (const struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType);
|
||||
|
||||
static void Agd_PutIconsMyFullAgenda (void *Agenda);
|
||||
static void Agd_PutIconsMyPublicAgenda (void *EncryptedUsrCod);
|
||||
|
@ -105,22 +112,49 @@ static void Agd_PutIconToViewEditMyFullAgenda (void *EncryptedUsrCod);
|
|||
static void Agd_PutIconToShowQR (void);
|
||||
static void Agd_PutIconsOtherPublicAgenda (void *EncryptedUsrCod);
|
||||
|
||||
static void Agd_PutButtonToCreateNewEvent (void);
|
||||
static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod);
|
||||
static void Agd_GetParamEventOrder (void);
|
||||
static void Agd_PutFormsToRemEditOneEvent (struct Agd_Event *AgdEvent,
|
||||
static void Agd_PutButtonToCreateNewEvent (const struct Agd_Agenda *Agenda);
|
||||
static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType,long AgdCod);
|
||||
static void Agd_GetParamEventOrder (struct Agd_Agenda *Agenda);
|
||||
static void Agd_PutFormsToRemEditOneEvent (struct Agd_Agenda *Agenda,
|
||||
struct Agd_Event *AgdEvent,
|
||||
const char *Anchor);
|
||||
|
||||
static void Agd_PutCurrentParamsMyAgenda (void *Agenda);
|
||||
static void Agd_GetParams (Agd_AgendaType_t AgendaType);
|
||||
static void Agd_GetParams (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType);
|
||||
|
||||
static void Agd_GetListEvents (Agd_AgendaType_t AgendaType);
|
||||
static void Agd_GetListEvents (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType);
|
||||
static void Agd_GetDataOfEventByCod (struct Agd_Event *AgdEvent);
|
||||
|
||||
static void Agd_FreeListEvents (struct Agd_Agenda *Agenda);
|
||||
|
||||
static void Agd_GetEventTxtFromDB (struct Agd_Event *AgdEvent,
|
||||
char Txt[Cns_MAX_BYTES_TEXT + 1]);
|
||||
static void Agd_CreateEvent (struct Agd_Event *AgdEvent,const char *Txt);
|
||||
static void Agd_UpdateEvent (struct Agd_Event *AgdEvent,const char *Txt);
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************************** Reset agenda context ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ResetAgenda (struct Agd_Agenda *Agenda)
|
||||
{
|
||||
Agenda->LstIsRead = false;
|
||||
Agenda->Num = 0;
|
||||
Agenda->LstAgdCods = NULL;
|
||||
Agenda->Past__FutureEvents = Agd_DEFAULT_PAST___EVENTS |
|
||||
Agd_DEFAULT_FUTURE_EVENTS;
|
||||
Agenda->PrivatPublicEvents = Agd_DEFAULT_PRIVAT_EVENTS |
|
||||
Agd_DEFAULT_PUBLIC_EVENTS;
|
||||
Agenda->HiddenVisiblEvents = Agd_DEFAULT_HIDDEN_EVENTS |
|
||||
Agd_DEFAULT_VISIBL_EVENTS;
|
||||
Agenda->SelectedOrder = Agd_ORDER_DEFAULT;
|
||||
Agenda->AgdCodToEdit = -1L;
|
||||
Agenda->CurrentPage = 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********** Put form to log in and then show another user's agenda ***********/
|
||||
/*****************************************************************************/
|
||||
|
@ -145,31 +179,42 @@ void Agd_PutParamAgd (void)
|
|||
/******************************* Show my agenda ******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Agd_ShowMyAgenda (void)
|
||||
void Agd_GetParamsAndShowMyAgenda (void)
|
||||
{
|
||||
struct Agd_Agenda Agenda;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Show my agenda *****/
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
static void Agd_ShowMyAgenda (struct Agd_Agenda *Agenda)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Agenda;
|
||||
extern const char *Txt_My_agenda;
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (Agd_MY_AGENDA);
|
||||
|
||||
/***** Begin box *****/
|
||||
Box_BoxBegin ("100%",Txt_My_agenda,
|
||||
Agd_PutIconsMyFullAgenda,&Gbl.Agenda,
|
||||
Agd_PutIconsMyFullAgenda,Agenda,
|
||||
Hlp_PROFILE_Agenda,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Put forms to choice which events to show *****/
|
||||
Set_StartSettingsHead ();
|
||||
Agd_ShowFormToSelPast__FutureEvents ();
|
||||
Agd_ShowFormToSelPrivatPublicEvents ();
|
||||
Agd_ShowFormToSelHiddenVisiblEvents ();
|
||||
Agd_ShowFormToSelPast__FutureEvents (Agenda);
|
||||
Agd_ShowFormToSelPrivatPublicEvents (Agenda);
|
||||
Agd_ShowFormToSelHiddenVisiblEvents (Agenda);
|
||||
Set_EndSettingsHead ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (Agd_MY_AGENDA_TODAY);
|
||||
Agd_ShowEventsToday (Agenda,Agd_MY_AGENDA_TODAY);
|
||||
|
||||
/***** Show all my events *****/
|
||||
Agd_ShowEvents (Agd_MY_AGENDA);
|
||||
Agd_ShowEvents (Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** End box *****/
|
||||
Box_BoxEnd ();
|
||||
|
@ -179,7 +224,7 @@ void Agd_ShowMyAgenda (void)
|
|||
/*************** Show form to select past / future events ********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowFormToSelPast__FutureEvents (void)
|
||||
static void Agd_ShowFormToSelPast__FutureEvents (const struct Agd_Agenda *Agenda)
|
||||
{
|
||||
extern const char *Txt_AGENDA_PAST___FUTURE_EVENTS[2];
|
||||
Agd_Past__FutureEvents_t PstFut;
|
||||
|
@ -195,14 +240,14 @@ static void Agd_ShowFormToSelPast__FutureEvents (void)
|
|||
PstFut++)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Agenda.Past__FutureEvents & (1 << PstFut)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
(Agenda->Past__FutureEvents & (1 << PstFut)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeeMyAgd);
|
||||
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents ^ (1 << PstFut), // Toggle
|
||||
Gbl.Agenda.PrivatPublicEvents,
|
||||
Gbl.Agenda.HiddenVisiblEvents,
|
||||
Gbl.Agenda.SelectedOrder,
|
||||
Gbl.Agenda.CurrentPage,
|
||||
Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents ^ (1 << PstFut), // Toggle
|
||||
Agenda->PrivatPublicEvents,
|
||||
Agenda->HiddenVisiblEvents,
|
||||
Agenda->SelectedOrder,
|
||||
Agenda->CurrentPage,
|
||||
-1L);
|
||||
Ico_PutSettingIconLink (Icon[PstFut],
|
||||
Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut]);
|
||||
|
@ -216,7 +261,7 @@ static void Agd_ShowFormToSelPast__FutureEvents (void)
|
|||
/************** Show form to select private / public events ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowFormToSelPrivatPublicEvents (void)
|
||||
static void Agd_ShowFormToSelPrivatPublicEvents (const struct Agd_Agenda *Agenda)
|
||||
{
|
||||
extern const char *Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[2];
|
||||
Agd_PrivatPublicEvents_t PrvPub;
|
||||
|
@ -232,14 +277,14 @@ static void Agd_ShowFormToSelPrivatPublicEvents (void)
|
|||
PrvPub++)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Agenda.PrivatPublicEvents & (1 << PrvPub)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
(Agenda->PrivatPublicEvents & (1 << PrvPub)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeeMyAgd);
|
||||
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
|
||||
Gbl.Agenda.PrivatPublicEvents ^ (1 << PrvPub), // Toggle
|
||||
Gbl.Agenda.HiddenVisiblEvents,
|
||||
Gbl.Agenda.SelectedOrder,
|
||||
Gbl.Agenda.CurrentPage,
|
||||
Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents,
|
||||
Agenda->PrivatPublicEvents ^ (1 << PrvPub), // Toggle
|
||||
Agenda->HiddenVisiblEvents,
|
||||
Agenda->SelectedOrder,
|
||||
Agenda->CurrentPage,
|
||||
-1L);
|
||||
Ico_PutSettingIconLink (Icon[PrvPub],
|
||||
Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub]);
|
||||
|
@ -253,7 +298,7 @@ static void Agd_ShowFormToSelPrivatPublicEvents (void)
|
|||
/************* Show form to select hidden / visible events *******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowFormToSelHiddenVisiblEvents (void)
|
||||
static void Agd_ShowFormToSelHiddenVisiblEvents (const struct Agd_Agenda *Agenda)
|
||||
{
|
||||
extern const char *Txt_AGENDA_HIDDEN_VISIBL_EVENTS[2];
|
||||
Agd_HiddenVisiblEvents_t HidVis;
|
||||
|
@ -269,14 +314,14 @@ static void Agd_ShowFormToSelHiddenVisiblEvents (void)
|
|||
HidVis++)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Agenda.HiddenVisiblEvents & (1 << HidVis)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
(Agenda->HiddenVisiblEvents & (1 << HidVis)) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeeMyAgd);
|
||||
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
|
||||
Gbl.Agenda.PrivatPublicEvents,
|
||||
Gbl.Agenda.HiddenVisiblEvents ^ (1 << HidVis), // Toggle
|
||||
Gbl.Agenda.SelectedOrder,
|
||||
Gbl.Agenda.CurrentPage,
|
||||
Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents,
|
||||
Agenda->PrivatPublicEvents,
|
||||
Agenda->HiddenVisiblEvents ^ (1 << HidVis), // Toggle
|
||||
Agenda->SelectedOrder,
|
||||
Agenda->CurrentPage,
|
||||
-1L);
|
||||
Ico_PutSettingIconLink (Icon[HidVis],
|
||||
Txt_AGENDA_HIDDEN_VISIBL_EVENTS[HidVis]);
|
||||
|
@ -309,34 +354,34 @@ static void Agd_PutHiddenParamHiddenVisiblEvents (unsigned HiddenVisiblEvents)
|
|||
/************************ Get hidden params for events ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_GetParamsPast__FutureEvents (void)
|
||||
static unsigned Agd_GetParamsPast__FutureEvents (void)
|
||||
{
|
||||
Gbl.Agenda.Past__FutureEvents = (unsigned) Par_GetParToUnsignedLong (ParamPast__FutureName,
|
||||
0,
|
||||
(1 << Agd_PAST___EVENTS) |
|
||||
(1 << Agd_FUTURE_EVENTS),
|
||||
Agd_DEFAULT_PAST___EVENTS |
|
||||
Agd_DEFAULT_FUTURE_EVENTS);
|
||||
return (unsigned) Par_GetParToUnsignedLong (ParamPast__FutureName,
|
||||
0,
|
||||
(1 << Agd_PAST___EVENTS) |
|
||||
(1 << Agd_FUTURE_EVENTS),
|
||||
Agd_DEFAULT_PAST___EVENTS |
|
||||
Agd_DEFAULT_FUTURE_EVENTS);
|
||||
}
|
||||
|
||||
static void Agd_GetParamsPrivatPublicEvents (void)
|
||||
static unsigned Agd_GetParamsPrivatPublicEvents (void)
|
||||
{
|
||||
Gbl.Agenda.PrivatPublicEvents = (unsigned) Par_GetParToUnsignedLong (ParamPrivatPublicName,
|
||||
0,
|
||||
(1 << Agd_PRIVAT_EVENTS) |
|
||||
(1 << Agd_PUBLIC_EVENTS),
|
||||
Agd_DEFAULT_PRIVAT_EVENTS |
|
||||
Agd_DEFAULT_PUBLIC_EVENTS);
|
||||
return (unsigned) Par_GetParToUnsignedLong (ParamPrivatPublicName,
|
||||
0,
|
||||
(1 << Agd_PRIVAT_EVENTS) |
|
||||
(1 << Agd_PUBLIC_EVENTS),
|
||||
Agd_DEFAULT_PRIVAT_EVENTS |
|
||||
Agd_DEFAULT_PUBLIC_EVENTS);
|
||||
}
|
||||
|
||||
static void Agd_GetParamsHiddenVisiblEvents (void)
|
||||
static unsigned Agd_GetParamsHiddenVisiblEvents (void)
|
||||
{
|
||||
Gbl.Agenda.HiddenVisiblEvents = (unsigned) Par_GetParToUnsignedLong (ParamHiddenVisiblName,
|
||||
0,
|
||||
(1 << Agd_HIDDEN_EVENTS) |
|
||||
(1 << Agd_VISIBL_EVENTS),
|
||||
Agd_DEFAULT_HIDDEN_EVENTS |
|
||||
Agd_DEFAULT_VISIBL_EVENTS);
|
||||
return (unsigned) Par_GetParToUnsignedLong (ParamHiddenVisiblName,
|
||||
0,
|
||||
(1 << Agd_HIDDEN_EVENTS) |
|
||||
(1 << Agd_VISIBL_EVENTS),
|
||||
Agd_DEFAULT_HIDDEN_EVENTS |
|
||||
Agd_DEFAULT_VISIBL_EVENTS);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -347,6 +392,7 @@ void Agd_ShowUsrAgenda (void)
|
|||
{
|
||||
extern const char *Hlp_PROFILE_Agenda_public_agenda;
|
||||
extern const char *Txt_Public_agenda_USER;
|
||||
struct Agd_Agenda Agenda;
|
||||
bool ItsMe;
|
||||
bool Error = true;
|
||||
|
||||
|
@ -356,6 +402,9 @@ void Agd_ShowUsrAgenda (void)
|
|||
{
|
||||
Error = false;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Begin box *****/
|
||||
ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
if (ItsMe)
|
||||
|
@ -371,10 +420,10 @@ void Agd_ShowUsrAgenda (void)
|
|||
Str_FreeString ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (Agd_ANOTHER_AGENDA_TODAY);
|
||||
Agd_ShowEventsToday (&Agenda,Agd_ANOTHER_AGENDA_TODAY);
|
||||
|
||||
/***** Show all the visible events in the user's agenda *****/
|
||||
Agd_ShowEvents (Agd_ANOTHER_AGENDA);
|
||||
Agd_ShowEvents (&Agenda,Agd_ANOTHER_AGENDA);
|
||||
|
||||
/***** End box *****/
|
||||
Box_BoxEnd ();
|
||||
|
@ -394,6 +443,7 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
|
|||
extern const unsigned Txt_Current_CGI_SWAD_Language;
|
||||
extern const char *Txt_Public_agenda_USER;
|
||||
extern const char *Txt_Switching_to_LANGUAGE[1 + Lan_NUM_LANGUAGES];
|
||||
struct Agd_Agenda Agenda;
|
||||
bool ItsMe;
|
||||
|
||||
if (Gbl.Usrs.Me.Logged)
|
||||
|
@ -404,6 +454,9 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
|
|||
/* If nickname is correct, user code is already got from nickname */
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat,Usr_DONT_GET_PREFS)) // Existing user
|
||||
{
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Begin box *****/
|
||||
ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
if (ItsMe)
|
||||
|
@ -419,10 +472,10 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
|
|||
Str_FreeString ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (Agd_ANOTHER_AGENDA_TODAY);
|
||||
Agd_ShowEventsToday (&Agenda,Agd_ANOTHER_AGENDA_TODAY);
|
||||
|
||||
/***** Show all the visible events in the user's agenda *****/
|
||||
Agd_ShowEvents (Agd_ANOTHER_AGENDA);
|
||||
Agd_ShowEvents (&Agenda,Agd_ANOTHER_AGENDA);
|
||||
|
||||
/***** End box *****/
|
||||
Box_BoxEnd ();
|
||||
|
@ -441,7 +494,8 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
|
|||
/*************************** Show events in agenda ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowEvents (Agd_AgendaType_t AgendaType)
|
||||
static void Agd_ShowEvents (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Agenda;
|
||||
extern const char *Txt_Public_agenda_USER;
|
||||
|
@ -458,34 +512,34 @@ static void Agd_ShowEvents (Agd_AgendaType_t AgendaType)
|
|||
};
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (AgendaType);
|
||||
Agd_GetParams (Agenda,AgendaType);
|
||||
|
||||
/***** Get list of events *****/
|
||||
Agd_GetListEvents (AgendaType);
|
||||
Agd_GetListEvents (Agenda,AgendaType);
|
||||
|
||||
/***** Compute variables related to pagination *****/
|
||||
Pagination.NumItems = Gbl.Agenda.Num;
|
||||
Pagination.CurrentPage = (int) Gbl.Agenda.CurrentPage;
|
||||
Pagination.NumItems = Agenda->Num;
|
||||
Pagination.CurrentPage = (int) Agenda->CurrentPage;
|
||||
Pag_CalculatePagination (&Pagination);
|
||||
Gbl.Agenda.CurrentPage = (unsigned) Pagination.CurrentPage;
|
||||
Agenda->CurrentPage = (unsigned) Pagination.CurrentPage;
|
||||
|
||||
/***** Write links to pages *****/
|
||||
Pag_WriteLinksToPagesCentered (WhatPaginate[AgendaType],&Pagination,
|
||||
&Gbl.Agenda,-1L);
|
||||
Agenda,-1L);
|
||||
|
||||
if (Gbl.Agenda.Num)
|
||||
if (Agenda->Num)
|
||||
{
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_BeginWideMarginPadding (2);
|
||||
|
||||
/***** Table head *****/
|
||||
Agd_WriteHeaderListEvents (AgendaType);
|
||||
Agd_WriteHeaderListEvents (Agenda,AgendaType);
|
||||
|
||||
/***** Write all the events *****/
|
||||
for (NumEvent = Pagination.FirstItemVisible;
|
||||
NumEvent <= Pagination.LastItemVisible;
|
||||
NumEvent++)
|
||||
Agd_ShowOneEvent (AgendaType,Gbl.Agenda.LstAgdCods[NumEvent - 1]);
|
||||
Agd_ShowOneEvent (Agenda,AgendaType,Agenda->LstAgdCods[NumEvent - 1]);
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
|
@ -495,21 +549,22 @@ static void Agd_ShowEvents (Agd_AgendaType_t AgendaType)
|
|||
|
||||
/***** Write again links to pages *****/
|
||||
Pag_WriteLinksToPagesCentered (WhatPaginate[AgendaType],&Pagination,
|
||||
&Gbl.Agenda,-1L);
|
||||
Agenda,-1L);
|
||||
|
||||
/***** Button to create a new event *****/
|
||||
if (AgendaType == Agd_MY_AGENDA)
|
||||
Agd_PutButtonToCreateNewEvent ();
|
||||
Agd_PutButtonToCreateNewEvent (Agenda);
|
||||
|
||||
/***** Free list of events *****/
|
||||
Agd_FreeListEvents ();
|
||||
Agd_FreeListEvents (Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************ Show today events in agenda ************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowEventsToday (Agd_AgendaType_t AgendaType)
|
||||
static void Agd_ShowEventsToday (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Agenda;
|
||||
extern const char *Hlp_PROFILE_Agenda_public_agenda;
|
||||
|
@ -520,12 +575,12 @@ static void Agd_ShowEventsToday (Agd_AgendaType_t AgendaType)
|
|||
unsigned NumEvent;
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (AgendaType);
|
||||
Agd_GetParams (Agenda,AgendaType);
|
||||
|
||||
/***** Get list of events *****/
|
||||
Agd_GetListEvents (AgendaType);
|
||||
Agd_GetListEvents (Agenda,AgendaType);
|
||||
|
||||
if (Gbl.Agenda.Num)
|
||||
if (Agenda->Num)
|
||||
{
|
||||
/***** Begin box and table *****/
|
||||
switch (AgendaType)
|
||||
|
@ -547,27 +602,28 @@ static void Agd_ShowEventsToday (Agd_AgendaType_t AgendaType)
|
|||
}
|
||||
|
||||
/***** Table head *****/
|
||||
Agd_WriteHeaderListEvents (AgendaType);
|
||||
Agd_WriteHeaderListEvents (Agenda,AgendaType);
|
||||
|
||||
/***** Write all the events *****/
|
||||
for (NumEvent = 0;
|
||||
NumEvent < Gbl.Agenda.Num;
|
||||
NumEvent < Agenda->Num;
|
||||
NumEvent++)
|
||||
Agd_ShowOneEvent (AgendaType,Gbl.Agenda.LstAgdCods[NumEvent]);
|
||||
Agd_ShowOneEvent (Agenda,AgendaType,Agenda->LstAgdCods[NumEvent]);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
}
|
||||
|
||||
/***** Free list of events *****/
|
||||
Agd_FreeListEvents ();
|
||||
Agd_FreeListEvents (Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Put contextual icon to view/edit my agenda ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_WriteHeaderListEvents (Agd_AgendaType_t AgendaType)
|
||||
static void Agd_WriteHeaderListEvents (const struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType)
|
||||
{
|
||||
extern const char *Txt_START_END_TIME_HELP[2];
|
||||
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
|
||||
|
@ -588,27 +644,27 @@ static void Agd_WriteHeaderListEvents (Agd_AgendaType_t AgendaType)
|
|||
case Agd_MY_AGENDA_TODAY:
|
||||
case Agd_MY_AGENDA:
|
||||
Frm_StartForm (ActSeeMyAgd);
|
||||
Pag_PutHiddenParamPagNum (Pag_MY_AGENDA,Gbl.Agenda.CurrentPage);
|
||||
Pag_PutHiddenParamPagNum (Pag_MY_AGENDA,Agenda->CurrentPage);
|
||||
break;
|
||||
case Agd_ANOTHER_AGENDA_TODAY:
|
||||
case Agd_ANOTHER_AGENDA:
|
||||
Frm_StartForm (ActSeeUsrAgd);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
Pag_PutHiddenParamPagNum (Pag_ANOTHER_AGENDA,Gbl.Agenda.CurrentPage);
|
||||
Pag_PutHiddenParamPagNum (Pag_ANOTHER_AGENDA,Agenda->CurrentPage);
|
||||
break;
|
||||
}
|
||||
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
|
||||
Gbl.Agenda.PrivatPublicEvents,
|
||||
Gbl.Agenda.HiddenVisiblEvents,
|
||||
Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents,
|
||||
Agenda->PrivatPublicEvents,
|
||||
Agenda->HiddenVisiblEvents,
|
||||
Order,
|
||||
Gbl.Agenda.CurrentPage,
|
||||
Agenda->CurrentPage,
|
||||
-1L);
|
||||
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_START_END_TIME_HELP[Order],"BT_LINK TIT_TBL",NULL);
|
||||
if (Order == Gbl.Agenda.SelectedOrder)
|
||||
if (Order == Agenda->SelectedOrder)
|
||||
HTM_U_Begin ();
|
||||
HTM_Txt (Txt_START_END_TIME[Order]);
|
||||
if (Order == Gbl.Agenda.SelectedOrder)
|
||||
if (Order == Agenda->SelectedOrder)
|
||||
HTM_U_End ();
|
||||
HTM_BUTTON_End ();
|
||||
|
||||
|
@ -647,12 +703,11 @@ static void Agd_PutIconsMyPublicAgenda (void *EncryptedUsrCod)
|
|||
static void Agd_PutIconToCreateNewEvent (void *Agenda)
|
||||
{
|
||||
extern const char *Txt_New_event;
|
||||
struct Agd_Agenda *Agd = (struct Agd_Agenda *) Agenda;
|
||||
|
||||
/***** Put form to create a new event *****/
|
||||
Agd->AgdCodToEdit = -1L;
|
||||
((struct Agd_Agenda *) Agenda)->AgdCodToEdit = -1L;
|
||||
Ico_PutContextualIconToAdd (ActFrmNewEvtMyAgd,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,Agd,
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda,
|
||||
Txt_New_event);
|
||||
}
|
||||
|
||||
|
@ -708,16 +763,16 @@ static void Agd_PutIconsOtherPublicAgenda (void *EncryptedUsrCod)
|
|||
/********************* Put button to create a new event **********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_PutButtonToCreateNewEvent (void)
|
||||
static void Agd_PutButtonToCreateNewEvent (const struct Agd_Agenda *Agenda)
|
||||
{
|
||||
extern const char *Txt_New_event;
|
||||
|
||||
Frm_StartForm (ActFrmNewEvtMyAgd);
|
||||
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
|
||||
Gbl.Agenda.PrivatPublicEvents,
|
||||
Gbl.Agenda.HiddenVisiblEvents,
|
||||
Gbl.Agenda.SelectedOrder,
|
||||
Gbl.Agenda.CurrentPage,
|
||||
Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents,
|
||||
Agenda->PrivatPublicEvents,
|
||||
Agenda->HiddenVisiblEvents,
|
||||
Agenda->SelectedOrder,
|
||||
Agenda->CurrentPage,
|
||||
-1L);
|
||||
Btn_PutConfirmButton (Txt_New_event);
|
||||
Frm_EndForm ();
|
||||
|
@ -727,7 +782,8 @@ static void Agd_PutButtonToCreateNewEvent (void)
|
|||
/******************************* Show one event ******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
|
||||
static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType,long AgdCod)
|
||||
{
|
||||
extern const char *Dat_TimeStatusClassVisible[Dat_NUM_TIME_STATUS];
|
||||
extern const char *Dat_TimeStatusClassHidden[Dat_NUM_TIME_STATUS];
|
||||
|
@ -808,7 +864,7 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
|
|||
case Agd_MY_AGENDA_TODAY:
|
||||
case Agd_MY_AGENDA:
|
||||
/* Forms to remove/edit this event */
|
||||
Agd_PutFormsToRemEditOneEvent (&AgdEvent,Anchor);
|
||||
Agd_PutFormsToRemEditOneEvent (Agenda,&AgdEvent,Anchor);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -840,39 +896,40 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
|
|||
/******************* Put a link (form) to edit one event *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_PutFormsToRemEditOneEvent (struct Agd_Event *AgdEvent,
|
||||
static void Agd_PutFormsToRemEditOneEvent (struct Agd_Agenda *Agenda,
|
||||
struct Agd_Event *AgdEvent,
|
||||
const char *Anchor)
|
||||
{
|
||||
extern const char *Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses;
|
||||
extern const char *Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private;
|
||||
|
||||
Gbl.Agenda.AgdCodToEdit = AgdEvent->AgdCod; // Used as parameter in contextual links
|
||||
Agenda->AgdCodToEdit = AgdEvent->AgdCod; // Used as parameter in contextual links
|
||||
|
||||
/***** Put form to remove event *****/
|
||||
Ico_PutContextualIconToRemove (ActReqRemEvtMyAgd,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL);
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda);
|
||||
|
||||
/***** Put form to hide/show event *****/
|
||||
if (AgdEvent->Hidden)
|
||||
Ico_PutContextualIconToUnhide (ActShoEvtMyAgd,Anchor,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL);
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda);
|
||||
else
|
||||
Ico_PutContextualIconToHide (ActHidEvtMyAgd,Anchor,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL);
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda);
|
||||
|
||||
/***** Put form to edit event *****/
|
||||
Ico_PutContextualIconToEdit (ActEdiOneEvtMyAgd,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL);
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda);
|
||||
|
||||
/***** Put form to make event public/private *****/
|
||||
if (AgdEvent->Public)
|
||||
Lay_PutContextualLinkOnlyIcon (ActPrvEvtMyAgd,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda,
|
||||
"unlock.svg",
|
||||
Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private);
|
||||
else
|
||||
Lay_PutContextualLinkOnlyIcon (ActPubEvtMyAgd,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,Agenda,
|
||||
"lock.svg",
|
||||
Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses);
|
||||
}
|
||||
|
@ -929,7 +986,8 @@ void Agd_PutParamsMyAgenda (unsigned Past__FutureEvents,
|
|||
/********** Get parameter with the type or order in list of events ***********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_GetParams (Agd_AgendaType_t AgendaType)
|
||||
static void Agd_GetParams (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType)
|
||||
{
|
||||
static const Pag_WhatPaginate_t WhatPaginate[Agd_NUM_AGENDA_TYPES] =
|
||||
{
|
||||
|
@ -941,12 +999,12 @@ static void Agd_GetParams (Agd_AgendaType_t AgendaType)
|
|||
|
||||
if (AgendaType == Agd_MY_AGENDA)
|
||||
{
|
||||
Agd_GetParamsPast__FutureEvents ();
|
||||
Agd_GetParamsPrivatPublicEvents ();
|
||||
Agd_GetParamsHiddenVisiblEvents ();
|
||||
Agenda->Past__FutureEvents = Agd_GetParamsPast__FutureEvents ();
|
||||
Agenda->PrivatPublicEvents = Agd_GetParamsPrivatPublicEvents ();
|
||||
Agenda->HiddenVisiblEvents = Agd_GetParamsHiddenVisiblEvents ();
|
||||
}
|
||||
Agd_GetParamEventOrder ();
|
||||
Gbl.Agenda.CurrentPage = Pag_GetParamPagNum (WhatPaginate[AgendaType]);
|
||||
Agd_GetParamEventOrder (Agenda);
|
||||
Agenda->CurrentPage = Pag_GetParamPagNum (WhatPaginate[AgendaType]);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -955,7 +1013,7 @@ static void Agd_GetParams (Agd_AgendaType_t AgendaType)
|
|||
|
||||
void Agd_PutHiddenParamEventsOrder (Dat_StartEndTime_t SelectedOrder)
|
||||
{
|
||||
if (Gbl.Agenda.SelectedOrder != Agd_ORDER_DEFAULT)
|
||||
if (SelectedOrder != Agd_ORDER_DEFAULT)
|
||||
Dat_PutHiddenParamOrder (SelectedOrder);
|
||||
}
|
||||
|
||||
|
@ -963,17 +1021,17 @@ void Agd_PutHiddenParamEventsOrder (Dat_StartEndTime_t SelectedOrder)
|
|||
/********** Get parameter with the type or order in list of events ***********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Agd_GetParamEventOrder (void)
|
||||
static void Agd_GetParamEventOrder (struct Agd_Agenda *Agenda)
|
||||
{
|
||||
static bool AlreadyGot = false;
|
||||
|
||||
if (!AlreadyGot)
|
||||
{
|
||||
Gbl.Agenda.SelectedOrder = (Dat_StartEndTime_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Dat_NUM_START_END_TIME - 1,
|
||||
(unsigned long) Agd_ORDER_DEFAULT);
|
||||
Agenda->SelectedOrder = (Dat_StartEndTime_t)
|
||||
Par_GetParToUnsignedLong ("Order",
|
||||
0,
|
||||
Dat_NUM_START_END_TIME - 1,
|
||||
(unsigned long) Agd_ORDER_DEFAULT);
|
||||
AlreadyGot = true;
|
||||
}
|
||||
}
|
||||
|
@ -984,7 +1042,8 @@ static void Agd_GetParamEventOrder (void)
|
|||
|
||||
#define Agd_MAX_BYTES_SUBQUERY 128
|
||||
|
||||
static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
||||
static void Agd_GetListEvents (struct Agd_Agenda *Agenda,
|
||||
Agd_AgendaType_t AgendaType)
|
||||
{
|
||||
char *UsrSubQuery;
|
||||
char Past__FutureEventsSubQuery[Agd_MAX_BYTES_SUBQUERY];
|
||||
|
@ -1002,7 +1061,7 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
bool DoQuery = true;
|
||||
|
||||
/***** Initialize list of events *****/
|
||||
Agd_FreeListEvents ();
|
||||
Agd_FreeListEvents (Agenda);
|
||||
|
||||
/***** Get list of events from database *****/
|
||||
/* Build events subqueries */
|
||||
|
@ -1010,10 +1069,10 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
{
|
||||
case Agd_MY_AGENDA_TODAY:
|
||||
case Agd_MY_AGENDA:
|
||||
if (Gbl.Agenda.Past__FutureEvents == 0 ||
|
||||
Gbl.Agenda.PrivatPublicEvents == 0 ||
|
||||
Gbl.Agenda.HiddenVisiblEvents == 0) // All selectors are off
|
||||
DoQuery = false; // Nothing to get from database
|
||||
if (Agenda->Past__FutureEvents == 0 ||
|
||||
Agenda->PrivatPublicEvents == 0 ||
|
||||
Agenda->HiddenVisiblEvents == 0) // All selectors are off
|
||||
DoQuery = false; // Nothing to get from database
|
||||
else
|
||||
{
|
||||
if (asprintf (&UsrSubQuery,"UsrCod=%ld",
|
||||
|
@ -1025,7 +1084,7 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
" AND DATE(EndTime)>=CURDATE()",
|
||||
Agd_MAX_BYTES_SUBQUERY); // Today events
|
||||
else
|
||||
switch (Gbl.Agenda.Past__FutureEvents)
|
||||
switch (Agenda->Past__FutureEvents)
|
||||
{
|
||||
case (1 << Agd_PAST___EVENTS):
|
||||
Str_Copy (Past__FutureEventsSubQuery,
|
||||
|
@ -1041,7 +1100,7 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
Past__FutureEventsSubQuery[0] = '\0'; // All events
|
||||
break;
|
||||
}
|
||||
switch (Gbl.Agenda.PrivatPublicEvents)
|
||||
switch (Agenda->PrivatPublicEvents)
|
||||
{
|
||||
case (1 << Agd_PRIVAT_EVENTS):
|
||||
Str_Copy (PrivatPublicEventsSubQuery," AND Public='N'",
|
||||
|
@ -1055,7 +1114,7 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
PrivatPublicEventsSubQuery[0] = '\0'; // All events
|
||||
break;
|
||||
}
|
||||
switch (Gbl.Agenda.HiddenVisiblEvents)
|
||||
switch (Agenda->HiddenVisiblEvents)
|
||||
{
|
||||
case (1 << Agd_HIDDEN_EVENTS):
|
||||
Str_Copy (HiddenVisiblEventsSubQuery," AND Hidden='Y'",
|
||||
|
@ -1102,27 +1161,27 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
Past__FutureEventsSubQuery,
|
||||
PrivatPublicEventsSubQuery,
|
||||
HiddenVisiblEventsSubQuery,
|
||||
OrderBySubQuery[Gbl.Agenda.SelectedOrder]);
|
||||
OrderBySubQuery[Agenda->SelectedOrder]);
|
||||
|
||||
/* Free allocated memory for subquery */
|
||||
free (UsrSubQuery);
|
||||
|
||||
if (NumRows) // Events found...
|
||||
{
|
||||
Gbl.Agenda.Num = (unsigned) NumRows;
|
||||
Agenda->Num = (unsigned) NumRows;
|
||||
|
||||
/***** Create list of events *****/
|
||||
if ((Gbl.Agenda.LstAgdCods = (long *) calloc (NumRows,sizeof (long))) == NULL)
|
||||
if ((Agenda->LstAgdCods = (long *) calloc (NumRows,sizeof (long))) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Get the events codes *****/
|
||||
for (NumEvent = 0;
|
||||
NumEvent < Gbl.Agenda.Num;
|
||||
NumEvent < Agenda->Num;
|
||||
NumEvent++)
|
||||
{
|
||||
/* Get next event code */
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
if ((Gbl.Agenda.LstAgdCods[NumEvent] = Str_ConvertStrCodToLongCod (row[0])) < 0)
|
||||
if ((Agenda->LstAgdCods[NumEvent] = Str_ConvertStrCodToLongCod (row[0])) < 0)
|
||||
Lay_ShowErrorAndExit ("Error: wrong event code.");
|
||||
}
|
||||
}
|
||||
|
@ -1131,9 +1190,9 @@ static void Agd_GetListEvents (Agd_AgendaType_t AgendaType)
|
|||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
else
|
||||
Gbl.Agenda.Num = 0;
|
||||
Agenda->Num = 0;
|
||||
|
||||
Gbl.Agenda.LstIsRead = true;
|
||||
Agenda->LstIsRead = true;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1219,15 +1278,15 @@ static void Agd_GetDataOfEventByCod (struct Agd_Event *AgdEvent)
|
|||
/*************************** Free list of events *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Agd_FreeListEvents (void)
|
||||
static void Agd_FreeListEvents (struct Agd_Agenda *Agenda)
|
||||
{
|
||||
if (Gbl.Agenda.LstIsRead && Gbl.Agenda.LstAgdCods)
|
||||
if (Agenda->LstIsRead && Agenda->LstAgdCods)
|
||||
{
|
||||
/***** Free memory used by the list of events *****/
|
||||
free (Gbl.Agenda.LstAgdCods);
|
||||
Gbl.Agenda.LstAgdCods = NULL;
|
||||
Gbl.Agenda.Num = 0;
|
||||
Gbl.Agenda.LstIsRead = false;
|
||||
free (Agenda->LstAgdCods);
|
||||
Agenda->LstAgdCods = NULL;
|
||||
Agenda->Num = 0;
|
||||
Agenda->LstIsRead = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1284,10 +1343,14 @@ void Agd_AskRemEvent (void)
|
|||
{
|
||||
extern const char *Txt_Do_you_really_want_to_remove_the_event_X;
|
||||
extern const char *Txt_Remove_event;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (Agd_MY_AGENDA);
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get event code *****/
|
||||
if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L)
|
||||
|
@ -1298,15 +1361,15 @@ void Agd_AskRemEvent (void)
|
|||
Agd_GetDataOfEventByCod (&AgdEvent);
|
||||
|
||||
/***** Show question and button to remove event *****/
|
||||
Gbl.Agenda.AgdCodToEdit = AgdEvent.AgdCod;
|
||||
Agenda.AgdCodToEdit = AgdEvent.AgdCod;
|
||||
Ale_ShowAlertAndButton (ActRemEvtMyAgd,NULL,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,NULL,
|
||||
Agd_PutCurrentParamsMyAgenda,&Agenda,
|
||||
Btn_REMOVE_BUTTON,Txt_Remove_event,
|
||||
Ale_QUESTION,Txt_Do_you_really_want_to_remove_the_event_X,
|
||||
AgdEvent.Event);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1316,8 +1379,15 @@ void Agd_AskRemEvent (void)
|
|||
void Agd_RemoveEvent (void)
|
||||
{
|
||||
extern const char *Txt_Event_X_removed;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get event code *****/
|
||||
if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of event is missing.");
|
||||
|
@ -1336,7 +1406,7 @@ void Agd_RemoveEvent (void)
|
|||
AgdEvent.Event);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1345,8 +1415,15 @@ void Agd_RemoveEvent (void)
|
|||
|
||||
void Agd_HideEvent (void)
|
||||
{
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get event code *****/
|
||||
if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of event is missing.");
|
||||
|
@ -1362,7 +1439,7 @@ void Agd_HideEvent (void)
|
|||
AgdEvent.AgdCod,AgdEvent.UsrCod);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1371,8 +1448,15 @@ void Agd_HideEvent (void)
|
|||
|
||||
void Agd_UnhideEvent (void)
|
||||
{
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get event code *****/
|
||||
if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of event is missing.");
|
||||
|
@ -1388,7 +1472,7 @@ void Agd_UnhideEvent (void)
|
|||
AgdEvent.AgdCod,AgdEvent.UsrCod);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1398,8 +1482,15 @@ void Agd_UnhideEvent (void)
|
|||
void Agd_MakeEventPrivate (void)
|
||||
{
|
||||
extern const char *Txt_Event_X_is_now_private;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get event code *****/
|
||||
if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of event is missing.");
|
||||
|
@ -1419,7 +1510,7 @@ void Agd_MakeEventPrivate (void)
|
|||
AgdEvent.Event);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1429,8 +1520,15 @@ void Agd_MakeEventPrivate (void)
|
|||
void Agd_MakeEventPublic (void)
|
||||
{
|
||||
extern const char *Txt_Event_X_is_now_visible_to_users_of_your_courses;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get event code *****/
|
||||
if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L)
|
||||
Lay_ShowErrorAndExit ("Code of event is missing.");
|
||||
|
@ -1450,7 +1548,7 @@ void Agd_MakeEventPublic (void)
|
|||
AgdEvent.Event);
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1468,6 +1566,7 @@ void Agd_RequestCreatOrEditEvent (void)
|
|||
extern const char *Txt_Description;
|
||||
extern const char *Txt_Create_event;
|
||||
extern const char *Txt_Save_changes;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
bool ItsANewEvent;
|
||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||
|
@ -1477,8 +1576,11 @@ void Agd_RequestCreatOrEditEvent (void)
|
|||
Dat_HMS_TO_235959
|
||||
};
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (Agd_MY_AGENDA);
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Get the code of the event *****/
|
||||
ItsANewEvent = ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L);
|
||||
|
@ -1508,14 +1610,14 @@ void Agd_RequestCreatOrEditEvent (void)
|
|||
if (ItsANewEvent)
|
||||
{
|
||||
Frm_StartForm (ActNewEvtMyAgd);
|
||||
Gbl.Agenda.AgdCodToEdit = -1L;
|
||||
Agenda.AgdCodToEdit = -1L;
|
||||
}
|
||||
else
|
||||
{
|
||||
Frm_StartForm (ActChgEvtMyAgd);
|
||||
Gbl.Agenda.AgdCodToEdit = AgdEvent.AgdCod;
|
||||
Agenda.AgdCodToEdit = AgdEvent.AgdCod;
|
||||
}
|
||||
Agd_PutCurrentParamsMyAgenda (&Gbl.Agenda);
|
||||
Agd_PutCurrentParamsMyAgenda (&Agenda);
|
||||
|
||||
/***** Begin box and table *****/
|
||||
if (ItsANewEvent)
|
||||
|
@ -1589,7 +1691,7 @@ void Agd_RequestCreatOrEditEvent (void)
|
|||
Frm_EndForm ();
|
||||
|
||||
/***** Show current events, if any *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1601,11 +1703,18 @@ void Agd_RecFormEvent (void)
|
|||
extern const char *Txt_You_must_specify_the_title_of_the_event;
|
||||
extern const char *Txt_Created_new_event_X;
|
||||
extern const char *Txt_The_event_has_been_modified;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct Agd_Event AgdEvent;
|
||||
bool ItsANewEvent;
|
||||
bool NewEventIsCorrect = true;
|
||||
char EventTxt[Cns_MAX_BYTES_TEXT + 1];
|
||||
|
||||
/***** Reset agenda context *****/
|
||||
Agd_ResetAgenda (&Agenda);
|
||||
|
||||
/***** Get parameters *****/
|
||||
Agd_GetParams (&Agenda,Agd_MY_AGENDA);
|
||||
|
||||
/***** Set author of the event *****/
|
||||
AgdEvent.UsrCod = Gbl.Usrs.Me.UsrDat.UsrCod;
|
||||
|
||||
|
@ -1668,7 +1777,7 @@ void Agd_RecFormEvent (void)
|
|||
Grp_FreeListCodSelectedGrps ();
|
||||
|
||||
/***** Show events again *****/
|
||||
Agd_ShowMyAgenda ();
|
||||
Agd_ShowMyAgenda (&Agenda);
|
||||
}
|
||||
else
|
||||
// TODO: The form should be filled with partial data, now is always empty
|
||||
|
|
|
@ -105,7 +105,7 @@ struct Agd_Agenda
|
|||
void Agd_PutFormLogInToShowUsrAgenda (void);
|
||||
void Agd_PutParamAgd (void);
|
||||
|
||||
void Agd_ShowMyAgenda (void);
|
||||
void Agd_GetParamsAndShowMyAgenda (void);
|
||||
void Agd_ShowUsrAgenda (void);
|
||||
void Agd_ShowOtherAgendaAfterLogIn (void);
|
||||
|
||||
|
@ -119,8 +119,6 @@ void Agd_PutParamsMyAgenda (unsigned Past__FutureEvents,
|
|||
long AgdCodToEdit);
|
||||
void Agd_PutHiddenParamEventsOrder (Dat_StartEndTime_t SelectedOrder);
|
||||
|
||||
void Agd_FreeListEvents (void);
|
||||
|
||||
long Agd_GetParamAgdCod (void);
|
||||
|
||||
void Agd_AskRemEvent (void);
|
||||
|
|
|
@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.175 (2020-04-12)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.176 (2020-04-12)"
|
||||
#define CSS_FILE "swad19.146.css"
|
||||
#define JS_FILE "swad19.172.1.js"
|
||||
/*
|
||||
|
@ -548,6 +548,7 @@ Funci
|
|||
// TODO: Oresti Baños: cambiar ojos por candados en descriptores para prohibir/permitir y dejar los ojos para poder elegir descriptores
|
||||
// TODO: Integrar pull requests con traducciones del alemán del usuario eruedin en GitHub
|
||||
|
||||
Version 19.176: Apr 12, 2020 Code refactoring in agenda. (285419 lines)
|
||||
Version 19.175: Apr 12, 2020 Code refactoring in syllabus. (285345 lines)
|
||||
Version 19.174: Apr 11, 2020 Code refactoring in messages. (285250 lines)
|
||||
Version 19.173: Apr 11, 2020 Code refactoring in timetables. (285165 lines)
|
||||
|
|
|
@ -326,16 +326,6 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.FileBrowser.FilFolLnk.Type = Brw_IS_UNKNOWN;
|
||||
Gbl.FileBrowser.UploadingWithDropzone = false;
|
||||
|
||||
/* Agenda */
|
||||
Gbl.Agenda.Past__FutureEvents = Agd_DEFAULT_PAST___EVENTS |
|
||||
Agd_DEFAULT_FUTURE_EVENTS;
|
||||
Gbl.Agenda.PrivatPublicEvents = Agd_DEFAULT_PRIVAT_EVENTS |
|
||||
Agd_DEFAULT_PUBLIC_EVENTS;
|
||||
Gbl.Agenda.HiddenVisiblEvents = Agd_DEFAULT_HIDDEN_EVENTS |
|
||||
Agd_DEFAULT_VISIBL_EVENTS;
|
||||
Gbl.Agenda.SelectedOrder = Agd_ORDER_DEFAULT;
|
||||
Gbl.Agenda.AgdCodToEdit = -1L;
|
||||
|
||||
/* To alternate colors where listing rows */
|
||||
Gbl.RowEvenOdd = 0;
|
||||
Gbl.ColorRows[0] = "COLOR0"; // Darker
|
||||
|
|
|
@ -405,7 +405,6 @@ struct Globals
|
|||
struct UsrData *UsrDat;
|
||||
Rec_SharedRecordViewType_t TypeOfView;
|
||||
} Record;
|
||||
struct Agd_Agenda Agenda;
|
||||
struct
|
||||
{
|
||||
Hie_Level_t Current;
|
||||
|
|
Loading…
Reference in New Issue