Version 16.181.1

This commit is contained in:
Antonio Cañas Vargas 2017-04-17 19:03:21 +02:00
parent c1f49c36a8
commit 49704b32a2
56 changed files with 264 additions and 299 deletions

View File

@ -494,7 +494,7 @@ void ID_PutLinkToChangeUsrIDs (void)
/***** Link for changing the password *****/ /***** Link for changing the password *****/
if (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) // It's me if (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) // It's me
Lay_PutContextualLink (ActFrmMyAcc,NULL, Lay_PutContextualLink (ActFrmMyAcc,NULL,NULL,
"arroba64x64.gif", "arroba64x64.gif",
Txt_Change_IDs,Txt_Change_IDs, Txt_Change_IDs,Txt_Change_IDs,
NULL); NULL);
@ -502,7 +502,7 @@ void ID_PutLinkToChangeUsrIDs (void)
Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActFrmIDsStd : Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActFrmIDsStd :
(Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActFrmIDsTch : (Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActFrmIDsTch :
ActFrmIDsOth), // Guest, visitor or admin ActFrmIDsOth), // Guest, visitor or admin
Usr_PutParamOtherUsrCodEncrypted, NULL,Usr_PutParamOtherUsrCodEncrypted,
"arroba64x64.gif", "arroba64x64.gif",
Txt_Change_IDs,Txt_Change_IDs, Txt_Change_IDs,Txt_Change_IDs,
NULL); NULL);

View File

@ -69,7 +69,7 @@ void QR_PutLinkToPrintQRCode (Act_Action_t Action)
extern const char *Txt_QR_code; extern const char *Txt_QR_code;
/***** Link to print QR *****/ /***** Link to print QR *****/
Lay_PutContextualLink (Action,QR_PutParamQRString, Lay_PutContextualLink (Action,NULL,QR_PutParamQRString,
"qr64x64.gif", "qr64x64.gif",
Txt_QR_code,NULL, Txt_QR_code,NULL,
NULL); NULL);

View File

@ -97,7 +97,7 @@ void Acc_PutLinkToCreateAccount (void)
{ {
extern const char *Txt_Create_account; extern const char *Txt_Create_account;
Lay_PutContextualLink (ActFrmMyAcc,NULL, Lay_PutContextualLink (ActFrmMyAcc,NULL,NULL,
"arroba64x64.gif", "arroba64x64.gif",
Txt_Create_account,Txt_Create_account, Txt_Create_account,Txt_Create_account,
NULL); NULL);
@ -512,7 +512,7 @@ static void Acc_PutLinkToRemoveMyAccount (void)
{ {
extern const char *Txt_Remove_account; extern const char *Txt_Remove_account;
Lay_PutContextualLink (ActReqRemMyAcc,Acc_PutParamsToRemoveMyAccount, Lay_PutContextualLink (ActReqRemMyAcc,NULL,Acc_PutParamsToRemoveMyAccount,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_account,Txt_Remove_account, Txt_Remove_account,Txt_Remove_account,
NULL); NULL);

View File

@ -644,7 +644,7 @@ static void Agd_PutIconToCreateNewEvent (void)
/***** Put form to create a new event *****/ /***** Put form to create a new event *****/
Gbl.Agenda.AgdCodToEdit = -1L; Gbl.Agenda.AgdCodToEdit = -1L;
Lay_PutContextualLink (ActFrmNewEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActFrmNewEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"plus64x64.png", "plus64x64.png",
Txt_New_event,NULL, Txt_New_event,NULL,
NULL); NULL);
@ -655,7 +655,7 @@ static void Agd_PutIconToViewEditMyFullAgenda (void)
extern const char *Txt_Edit; extern const char *Txt_Edit;
/***** Put form to create a new event *****/ /***** Put form to create a new event *****/
Lay_PutContextualLink (ActSeeMyAgd,NULL, Lay_PutContextualLink (ActSeeMyAgd,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
@ -683,8 +683,8 @@ static void Agd_PutIconsOtherPublicAgenda (void)
/***** Button to view user's public profile *****/ /***** Button to view user's public profile *****/
if (Pri_ShowingIsAllowed (Gbl.Usrs.Other.UsrDat.ProfileVisibility, if (Pri_ShowingIsAllowed (Gbl.Usrs.Other.UsrDat.ProfileVisibility,
&Gbl.Usrs.Other.UsrDat)) &Gbl.Usrs.Other.UsrDat))
Lay_PutContextualLink (ActSeeOthPubPrf, Lay_PutContextualLink (ActSeeOthPubPrf,NULL,
Usr_PutParamOtherUsrCodEncrypted, Usr_PutParamOtherUsrCodEncrypted,
"usr64x64.gif", "usr64x64.gif",
Txt_Another_user_s_profile,NULL, Txt_Another_user_s_profile,NULL,
NULL); NULL);
@ -692,13 +692,13 @@ static void Agd_PutIconsOtherPublicAgenda (void)
/***** Button to view user's record card *****/ /***** Button to view user's record card *****/
if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat)) if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat))
/* View student's records: common record card and course record card */ /* View student's records: common record card and course record card */
Lay_PutContextualLink (ActSeeRecOneStd, Lay_PutContextualLink (ActSeeRecOneStd,NULL,
Usr_PutParamOtherUsrCodEncrypted, Usr_PutParamOtherUsrCodEncrypted,
"card64x64.gif", "card64x64.gif",
Txt_View_record_for_this_course,NULL, Txt_View_record_for_this_course,NULL,
NULL); NULL);
else if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat)) else if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat))
Lay_PutContextualLink (ActSeeRecOneTch, Lay_PutContextualLink (ActSeeRecOneTch,NULL,
Usr_PutParamOtherUsrCodEncrypted, Usr_PutParamOtherUsrCodEncrypted,
"card64x64.gif", "card64x64.gif",
Txt_View_record_and_office_hours,NULL, Txt_View_record_and_office_hours,NULL,
@ -853,37 +853,37 @@ static void Agd_PutFormsToRemEditOneEvent (struct AgendaEvent *AgdEvent)
Gbl.Agenda.AgdCodToEdit = AgdEvent->AgdCod; // Used as parameter in contextual links Gbl.Agenda.AgdCodToEdit = AgdEvent->AgdCod; // Used as parameter in contextual links
/***** Put form to remove event *****/ /***** Put form to remove event *****/
Lay_PutContextualLink (ActReqRemEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActReqRemEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
/***** Put form to hide/show event *****/ /***** Put form to hide/show event *****/
if (AgdEvent->Hidden) if (AgdEvent->Hidden)
Lay_PutContextualLink (ActShoEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActShoEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_Show,NULL, Txt_Show,NULL,
NULL); NULL);
else else
Lay_PutContextualLink (ActHidEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActHidEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Hide,NULL, Txt_Hide,NULL,
NULL); NULL);
/***** Put form to edit event *****/ /***** Put form to edit event *****/
Lay_PutContextualLink (ActEdiOneEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActEdiOneEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
/***** Put form to make event public/private *****/ /***** Put form to make event public/private *****/
if (AgdEvent->Public) if (AgdEvent->Public)
Lay_PutContextualLink (ActPrvEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActPrvEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"unlock-on64x64.png", "unlock-on64x64.png",
Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private,NULL, Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private,NULL,
NULL); NULL);
else else
Lay_PutContextualLink (ActPubEvtMyAgd,Agd_PutCurrentParamsMyAgenda, Lay_PutContextualLink (ActPubEvtMyAgd,NULL,Agd_PutCurrentParamsMyAgenda,
"lock-on64x64.png", "lock-on64x64.png",
Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses,NULL, Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses,NULL,
NULL); NULL);

View File

@ -181,7 +181,7 @@ static void Ann_PutIconToAddNewAnnouncement (void)
{ {
extern const char *Txt_New_announcement; extern const char *Txt_New_announcement;
Lay_PutContextualLink (ActWriAnn,NULL, Lay_PutContextualLink (ActWriAnn,NULL,NULL,
"plus64x64.png", "plus64x64.png",
Txt_New_announcement,NULL, Txt_New_announcement,NULL,
NULL); NULL);
@ -308,7 +308,7 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status,
if (ICanEdit) if (ICanEdit)
{ {
/***** Put form to remove announcement *****/ /***** Put form to remove announcement *****/
Lay_PutContextualLink (ActRemAnn,Ann_PutParams, Lay_PutContextualLink (ActRemAnn,NULL,Ann_PutParams,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
@ -317,13 +317,13 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status,
switch (Status) switch (Status)
{ {
case Ann_ACTIVE_ANNOUNCEMENT: case Ann_ACTIVE_ANNOUNCEMENT:
Lay_PutContextualLink (ActHidAnn,Ann_PutParams, Lay_PutContextualLink (ActHidAnn,NULL,Ann_PutParams,
"eye-on64x64.png", "eye-on64x64.png",
Txt_NOTICE_Active_Mark_as_obsolete,NULL, Txt_NOTICE_Active_Mark_as_obsolete,NULL,
NULL); NULL);
break; break;
case Ann_OBSOLETE_ANNOUNCEMENT: case Ann_OBSOLETE_ANNOUNCEMENT:
Lay_PutContextualLink (ActRevAnn,Ann_PutParams, Lay_PutContextualLink (ActRevAnn,NULL,Ann_PutParams,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_NOTICE_Obsolete_Mark_as_active,NULL, Txt_NOTICE_Obsolete_Mark_as_active,NULL,
NULL); NULL);
@ -361,7 +361,7 @@ static void Ann_DrawAnAnnouncement (long AnnCod,Ann_Status_t Status,
} }
else else
/***** Put form to mark announcement as seen *****/ /***** Put form to mark announcement as seen *****/
Lay_PutContextualLink (ActAnnSee,Ann_PutParams, Lay_PutContextualLink (ActAnnSee,NULL,Ann_PutParams,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Do_not_show_again,Txt_Do_not_show_again, Txt_Do_not_show_again,Txt_Do_not_show_again,
NULL); NULL);

View File

@ -249,7 +249,7 @@ static void Asg_PutIconToCreateNewAsg (void)
extern const char *Txt_New_assignment; extern const char *Txt_New_assignment;
/***** Put form to create a new assignment *****/ /***** Put form to create a new assignment *****/
Lay_PutContextualLink (ActFrmNewAsg,Asg_PutParamsToCreateNewAsg, Lay_PutContextualLink (ActFrmNewAsg,NULL,Asg_PutParamsToCreateNewAsg,
"plus64x64.png", "plus64x64.png",
Txt_New_assignment,NULL, Txt_New_assignment,NULL,
NULL); NULL);
@ -522,25 +522,25 @@ static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden)
Gbl.Asgs.AsgCodToEdit = AsgCod; // Used as parameter in contextual links Gbl.Asgs.AsgCodToEdit = AsgCod; // Used as parameter in contextual links
/***** Put form to remove assignment *****/ /***** Put form to remove assignment *****/
Lay_PutContextualLink (ActReqRemAsg,Asg_PutParams, Lay_PutContextualLink (ActReqRemAsg,NULL,Asg_PutParams,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
/***** Put form to hide/show assignment *****/ /***** Put form to hide/show assignment *****/
if (Hidden) if (Hidden)
Lay_PutContextualLink (ActShoAsg,Asg_PutParams, Lay_PutContextualLink (ActShoAsg,NULL,Asg_PutParams,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_Show,NULL, Txt_Show,NULL,
NULL); NULL);
else else
Lay_PutContextualLink (ActHidAsg,Asg_PutParams, Lay_PutContextualLink (ActHidAsg,NULL,Asg_PutParams,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Hide,NULL, Txt_Hide,NULL,
NULL); NULL);
/***** Put form to edit assignment *****/ /***** Put form to edit assignment *****/
Lay_PutContextualLink (ActEdiOneAsg,Asg_PutParams, Lay_PutContextualLink (ActEdiOneAsg,NULL,Asg_PutParams,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -175,7 +175,7 @@ void Att_SeeAttEvents (void)
} }
/* Put link to my QR code */ /* Put link to my QR code */
Lay_PutContextualLink (ActPrnUsrQR,Usr_PutParamMyUsrCodEncrypted, Lay_PutContextualLink (ActPrnUsrQR,NULL,Usr_PutParamMyUsrCodEncrypted,
"qr64x64.gif", "qr64x64.gif",
Txt_QR_code,Txt_QR_code, Txt_QR_code,Txt_QR_code,
NULL); NULL);
@ -317,7 +317,7 @@ static void Att_PutIconToCreateNewAttEvent (void)
extern const char *Txt_New_event; extern const char *Txt_New_event;
/***** Put form to create a new attendance event *****/ /***** Put form to create a new attendance event *****/
Lay_PutContextualLink (ActFrmNewAtt,Att_PutParamsToCreateNewAttEvent, Lay_PutContextualLink (ActFrmNewAtt,NULL,Att_PutParamsToCreateNewAttEvent,
"plus64x64.png", "plus64x64.png",
Txt_New_event,NULL, Txt_New_event,NULL,
NULL); NULL);
@ -509,7 +509,7 @@ static void Att_PutFormToListMyAttendance (void)
{ {
extern const char *Txt_Attendance_list; extern const char *Txt_Attendance_list;
Lay_PutContextualLink (ActSeeLstMyAtt,NULL, Lay_PutContextualLink (ActSeeLstMyAtt,NULL,NULL,
"list64x64.gif", "list64x64.gif",
Txt_Attendance_list,Txt_Attendance_list, Txt_Attendance_list,Txt_Attendance_list,
NULL); NULL);
@ -523,7 +523,7 @@ static void Att_PutFormToListStdsAttendance (void)
{ {
extern const char *Txt_Attendance_list; extern const char *Txt_Attendance_list;
Lay_PutContextualLink (ActReqLstStdAtt,Att_PutFormToListStdsParams, Lay_PutContextualLink (ActReqLstStdAtt,NULL,Att_PutFormToListStdsParams,
"list64x64.gif", "list64x64.gif",
Txt_Attendance_list,Txt_Attendance_list, Txt_Attendance_list,Txt_Attendance_list,
NULL); NULL);
@ -552,25 +552,25 @@ static void Att_PutFormsToRemEditOneAttEvent (long AttCod,bool Hidden)
Gbl.AttEvents.AttCodToEdit = AttCod; // Used as parameters in contextual links Gbl.AttEvents.AttCodToEdit = AttCod; // Used as parameters in contextual links
/***** Put form to remove attendance event *****/ /***** Put form to remove attendance event *****/
Lay_PutContextualLink (ActReqRemAtt,Att_PutParams, Lay_PutContextualLink (ActReqRemAtt,NULL,Att_PutParams,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
/***** Put form to hide/show attendance event *****/ /***** Put form to hide/show attendance event *****/
if (Hidden) if (Hidden)
Lay_PutContextualLink (ActShoAtt,Att_PutParams, Lay_PutContextualLink (ActShoAtt,NULL,Att_PutParams,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_Show,NULL, Txt_Show,NULL,
NULL); NULL);
else else
Lay_PutContextualLink (ActHidAtt,Att_PutParams, Lay_PutContextualLink (ActHidAtt,NULL,Att_PutParams,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Hide,NULL, Txt_Hide,NULL,
NULL); NULL);
/***** Put form to edit attendance event *****/ /***** Put form to edit attendance event *****/
Lay_PutContextualLink (ActEdiOneAtt,Att_PutParams, Lay_PutContextualLink (ActEdiOneAtt,NULL,Att_PutParams,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
@ -2971,7 +2971,7 @@ static void Att_PutIconToPrintMyList (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Link to print view *****/ /***** Link to print view *****/
Lay_PutContextualLink (ActPrnLstMyAtt,Att_PutFormToPrintMyListParams, Lay_PutContextualLink (ActPrnLstMyAtt,NULL,Att_PutFormToPrintMyListParams,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -2994,7 +2994,7 @@ static void Att_PutIconToPrintStdsList (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Link to print view *****/ /***** Link to print view *****/
Lay_PutContextualLink (ActPrnLstStdAtt,Att_PutParamsToPrintStdsList, Lay_PutContextualLink (ActPrnLstStdAtt,NULL,Att_PutParamsToPrintStdsList,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);

View File

@ -82,7 +82,7 @@ void Ban_PutLinkToViewBanners (void)
{ {
extern const char *Txt_Banners; extern const char *Txt_Banners;
Lay_PutContextualLink (ActSeeBan,NULL, Lay_PutContextualLink (ActSeeBan,NULL,NULL,
"picture64x64.gif", "picture64x64.gif",
Txt_Banners,Txt_Banners, Txt_Banners,Txt_Banners,
NULL); NULL);
@ -174,7 +174,7 @@ static void Ban_PutFormToEditBanners (void)
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
/***** Link to edit banners *****/ /***** Link to edit banners *****/
Lay_PutContextualLink (ActEdiBan,NULL, Lay_PutContextualLink (ActEdiBan,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -349,7 +349,7 @@ static void Cal_PutIconToPrintCalendarSys (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Print calendar *****/ /***** Print calendar *****/
Lay_PutContextualLink (ActPrnCalSys,NULL, Lay_PutContextualLink (ActPrnCalSys,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -360,7 +360,7 @@ static void Cal_PutIconToPrintCalendarCty (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Print calendar *****/ /***** Print calendar *****/
Lay_PutContextualLink (ActPrnCalCty,NULL, Lay_PutContextualLink (ActPrnCalCty,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -372,7 +372,7 @@ static void Cal_PutIconToPrintCalendarIns (void)
extern const char *Txt_Holidays; extern const char *Txt_Holidays;
/***** Print calendar *****/ /***** Print calendar *****/
Lay_PutContextualLink (ActPrnCalIns,NULL, Lay_PutContextualLink (ActPrnCalIns,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -380,7 +380,7 @@ static void Cal_PutIconToPrintCalendarIns (void)
/***** View holidays *****/ /***** View holidays *****/
if (Gbl.Hlds.Num || // There are holidays if (Gbl.Hlds.Num || // There are holidays
Gbl.Usrs.Me.LoggedRole >= Rol_INS_ADM) // Institution admin or system admin Gbl.Usrs.Me.LoggedRole >= Rol_INS_ADM) // Institution admin or system admin
Lay_PutContextualLink (ActSeeHld,NULL, Lay_PutContextualLink (ActSeeHld,NULL,NULL,
"holiday64x64.png", "holiday64x64.png",
Txt_Holidays,NULL, Txt_Holidays,NULL,
NULL); NULL);
@ -391,7 +391,7 @@ static void Cal_PutIconToPrintCalendarCtr (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Print calendar *****/ /***** Print calendar *****/
Lay_PutContextualLink (ActPrnCalCtr,NULL, Lay_PutContextualLink (ActPrnCalCtr,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -402,7 +402,7 @@ static void Cal_PutIconToPrintCalendarDeg (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Print calendar *****/ /***** Print calendar *****/
Lay_PutContextualLink (ActPrnCalDeg,NULL, Lay_PutContextualLink (ActPrnCalDeg,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -413,7 +413,7 @@ static void Cal_PutIconToPrintCalendarCrs (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Print calendar *****/ /***** Print calendar *****/
Lay_PutContextualLink (ActPrnCalCrs,NULL, Lay_PutContextualLink (ActPrnCalCrs,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);

View File

@ -671,7 +671,7 @@ static void Ctr_PutIconsToPrintAndUpload (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Link to print info about centre *****/ /***** Link to print info about centre *****/
Lay_PutContextualLink (ActPrnCtrInf,NULL, Lay_PutContextualLink (ActPrnCtrInf,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -706,7 +706,7 @@ static void Ctr_PutIconToChangePhoto (void)
(unsigned) Gbl.CurrentCtr.Ctr.CtrCod, (unsigned) Gbl.CurrentCtr.Ctr.CtrCod,
(unsigned) Gbl.CurrentCtr.Ctr.CtrCod); (unsigned) Gbl.CurrentCtr.Ctr.CtrCod);
PhotoExists = Fil_CheckIfPathExists (PathPhoto); PhotoExists = Fil_CheckIfPathExists (PathPhoto);
Lay_PutContextualLink (ActReqCtrPho,NULL, Lay_PutContextualLink (ActReqCtrPho,NULL,NULL,
"photo64x64.gif", "photo64x64.gif",
PhotoExists ? Txt_Change_photo : PhotoExists ? Txt_Change_photo :
Txt_Upload_photo,NULL, Txt_Upload_photo,NULL,
@ -822,7 +822,7 @@ static void Ctr_PutIconToEditCentres (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiCtr,NULL, Lay_PutContextualLink (ActEdiCtr,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -214,13 +214,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.181 (2017-04-17)" #define Log_PLATFORM_VERSION "SWAD 16.181.1 (2017-04-17)"
#define CSS_FILE "swad16.181.css" #define CSS_FILE "swad16.181.css"
#define JS_FILE "swad16.181.js" #define JS_FILE "swad16.181.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.181.1: Apr 17, 2017 Code refactoring in forums. (217538 lines)
Version 16.181: Apr 17, 2017 Changes in layout of messages. Version 16.181: Apr 17, 2017 Changes in layout of messages.
Changes in layout of some tables. Changes in layout of some tables.
Fixed bug in forums. (217560 lines) Fixed bug in forums. (217560 lines)

View File

@ -141,7 +141,7 @@ void Con_PutLinkToLastClicks (void)
{ {
extern const char *Txt_Last_clicks; extern const char *Txt_Last_clicks;
Lay_PutContextualLink (ActLstClk,NULL, Lay_PutContextualLink (ActLstClk,NULL,NULL,
"mouse-pointer64x64.png", "mouse-pointer64x64.png",
Txt_Last_clicks,Txt_Last_clicks, Txt_Last_clicks,Txt_Last_clicks,
NULL); NULL);

View File

@ -482,7 +482,7 @@ static void Cty_PutIconToPrint (void)
{ {
extern const char *Txt_Print; extern const char *Txt_Print;
Lay_PutContextualLink (ActPrnCtyInf,NULL, Lay_PutContextualLink (ActPrnCtyInf,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -774,7 +774,7 @@ static void Cty_PutIconToEditCountries (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiCty,NULL, Lay_PutContextualLink (ActEdiCty,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -494,7 +494,7 @@ static void Crs_PutIconToPrint (void)
{ {
extern const char *Txt_Print; extern const char *Txt_Print;
Lay_PutContextualLink (ActPrnCrsInf,NULL, Lay_PutContextualLink (ActPrnCrsInf,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -1223,7 +1223,7 @@ static void Crs_PutIconToEditCourses (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiCrs,NULL, Lay_PutContextualLink (ActEdiCrs,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
@ -2908,7 +2908,7 @@ static void Crs_PutLinkToSearchCourses (void)
(Gbl.CurrentIns.Ins.InsCod > 0 ? ActInsReqSch : (Gbl.CurrentIns.Ins.InsCod > 0 ? ActInsReqSch :
(Gbl.CurrentCty.Cty.CtyCod > 0 ? ActCtyReqSch : (Gbl.CurrentCty.Cty.CtyCod > 0 ? ActCtyReqSch :
ActSysReqSch)))), ActSysReqSch)))),
Sch_PutLinkToSearchCoursesParams, NULL,Sch_PutLinkToSearchCoursesParams,
"search64x64.gif", "search64x64.gif",
Txt_Search_courses,Txt_Search_courses, Txt_Search_courses,Txt_Search_courses,
NULL); NULL);
@ -2929,7 +2929,7 @@ void Crs_PutFormToSelectMyCourses (void)
extern const char *Txt_My_courses; extern const char *Txt_My_courses;
/***** Put form to search / select courses *****/ /***** Put form to search / select courses *****/
Lay_PutContextualLink (ActMyCrs,NULL, Lay_PutContextualLink (ActMyCrs,NULL,NULL,
"hierarchy64x64.gif", "hierarchy64x64.gif",
Txt_My_courses,Txt_My_courses, Txt_My_courses,Txt_My_courses,
NULL); NULL);
@ -3305,7 +3305,7 @@ void Crs_PutLinkToRemoveOldCrss (void)
extern const char *Txt_Eliminate_old_courses; extern const char *Txt_Eliminate_old_courses;
/***** Put form to remove old courses *****/ /***** Put form to remove old courses *****/
Lay_PutContextualLink (ActReqRemOldCrs,NULL, Lay_PutContextualLink (ActReqRemOldCrs,NULL,NULL,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Eliminate_old_courses,Txt_Eliminate_old_courses, Txt_Eliminate_old_courses,Txt_Eliminate_old_courses,
NULL); NULL);

View File

@ -553,7 +553,7 @@ static void Deg_PutIconsToPrintAndUpload (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Link to print info about degree *****/ /***** Link to print info about degree *****/
Lay_PutContextualLink (ActPrnDegInf,NULL, Lay_PutContextualLink (ActPrnDegInf,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -1255,7 +1255,7 @@ static void Deg_PutIconToEditDegrees (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiDeg,NULL, Lay_PutContextualLink (ActEdiDeg,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -130,7 +130,7 @@ void DT_PutIconToViewDegreeTypes (void)
{ {
extern const char *Txt_Types_of_degree; extern const char *Txt_Types_of_degree;
Lay_PutContextualLink (ActSeeDegTyp,NULL, Lay_PutContextualLink (ActSeeDegTyp,NULL,NULL,
"hierarchy64x64.png", "hierarchy64x64.png",
Txt_Types_of_degree,NULL, Txt_Types_of_degree,NULL,
NULL); NULL);
@ -332,7 +332,7 @@ static void DT_PutIconToEditDegTypes (void)
if (IsCentreTab && // Only editable in centre tab if (IsCentreTab && // Only editable in centre tab
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) // Only editable by system admins Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) // Only editable by system admins
Lay_PutContextualLink (ActEdiDegTyp,NULL, Lay_PutContextualLink (ActEdiDegTyp,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -211,7 +211,7 @@ static void Dpt_PutIconToEditDpts (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiDpt,NULL, Lay_PutContextualLink (ActEdiDpt,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -115,7 +115,7 @@ void Dup_PutLinkToListDupUsrs (void)
extern const char *Txt_Duplicate_USERS; extern const char *Txt_Duplicate_USERS;
/***** Put form to remove old users *****/ /***** Put form to remove old users *****/
Lay_PutContextualLink (ActLstDupUsr,NULL, Lay_PutContextualLink (ActLstDupUsr,NULL,NULL,
"usrs64x64.gif", "usrs64x64.gif",
Txt_Duplicate_USERS,Txt_Duplicate_USERS, Txt_Duplicate_USERS,Txt_Duplicate_USERS,
NULL); NULL);

View File

@ -180,7 +180,7 @@ void Enr_PutLinkToRequestSignUp (void)
extern const char *Txt_Sign_up; extern const char *Txt_Sign_up;
/***** Show the form *****/ /***** Show the form *****/
Lay_PutContextualLink (ActReqSignUp,NULL, Lay_PutContextualLink (ActReqSignUp,NULL,NULL,
"enrollmentrequest64x64.gif", "enrollmentrequest64x64.gif",
Txt_Sign_up,Txt_Sign_up, Txt_Sign_up,Txt_Sign_up,
NULL); NULL);
@ -681,7 +681,7 @@ void Enr_PutLinkToRemOldUsrs (void)
extern const char *Txt_Eliminate_old_users; extern const char *Txt_Eliminate_old_users;
/***** Put form to remove old users *****/ /***** Put form to remove old users *****/
Lay_PutContextualLink (ActReqRemOldUsr,NULL, Lay_PutContextualLink (ActReqRemOldUsr,NULL,NULL,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Eliminate_old_users,Txt_Eliminate_old_users, Txt_Eliminate_old_users,Txt_Eliminate_old_users,
NULL); NULL);
@ -1736,7 +1736,7 @@ static void Enr_PutLinkToRemAllStdsThisCrs (void)
extern const char *Txt_Remove_all_students; extern const char *Txt_Remove_all_students;
/***** Put form to remove all the students in the current course *****/ /***** Put form to remove all the students in the current course *****/
Lay_PutContextualLink (ActReqRemAllStdCrs,NULL, Lay_PutContextualLink (ActReqRemAllStdCrs,NULL,NULL,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_all_students,Txt_Remove_all_students, Txt_Remove_all_students,Txt_Remove_all_students,
NULL); NULL);
@ -2905,7 +2905,7 @@ void Enr_PutLinkToAdminOneUsr (Act_Action_t NextAction)
const char *TitleText = Enr_ICanAdminOtherUsrs () ? Txt_Administer_one_user : const char *TitleText = Enr_ICanAdminOtherUsrs () ? Txt_Administer_one_user :
Txt_Administer_me; Txt_Administer_me;
Lay_PutContextualLink (NextAction,NULL, Lay_PutContextualLink (NextAction,NULL,NULL,
"config64x64.gif", "config64x64.gif",
TitleText,TitleText, TitleText,TitleText,
NULL); NULL);
@ -2924,7 +2924,8 @@ void Enr_PutLinkToAdminSeveralUsrs (Rol_Role_t Role)
Lay_PutContextualLink (Role == Rol_STUDENT ? ActReqEnrSevStd : Lay_PutContextualLink (Role == Rol_STUDENT ? ActReqEnrSevStd :
ActReqEnrSevTch, ActReqEnrSevTch,
NULL,"config64x64.gif", NULL,NULL,
"config64x64.gif",
TitleText,TitleText, TitleText,TitleText,
NULL); NULL);
} }

View File

@ -707,7 +707,7 @@ static void Exa_PutIconToCreateNewExamAnnouncement (void)
{ {
extern const char *Txt_New_announcement_OF_EXAM; extern const char *Txt_New_announcement_OF_EXAM;
Lay_PutContextualLink (ActEdiExaAnn,NULL, Lay_PutContextualLink (ActEdiExaAnn,NULL,NULL,
"plus64x64.png", "plus64x64.png",
Txt_New_announcement_OF_EXAM,NULL, Txt_New_announcement_OF_EXAM,NULL,
NULL); NULL);
@ -1546,7 +1546,7 @@ static void Exa_PutIconsExamAnnouncement (void)
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM) Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
{ {
/***** Link to remove this exam announcement *****/ /***** Link to remove this exam announcement *****/
Lay_PutContextualLink (ActReqRemExaAnn,Exa_PutParamExaCodToEdit, Lay_PutContextualLink (ActReqRemExaAnn,NULL,Exa_PutParamExaCodToEdit,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
@ -1555,13 +1555,13 @@ static void Exa_PutIconsExamAnnouncement (void)
switch (Gbl.ExamAnns.ExaDat.Status) switch (Gbl.ExamAnns.ExaDat.Status)
{ {
case Exa_VISIBLE_EXAM_ANNOUNCEMENT: case Exa_VISIBLE_EXAM_ANNOUNCEMENT:
Lay_PutContextualLink (ActHidExaAnn,Exa_PutParamExaCodToEdit, Lay_PutContextualLink (ActHidExaAnn,NULL,Exa_PutParamExaCodToEdit,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Hide,NULL, Txt_Hide,NULL,
NULL); NULL);
break; break;
case Exa_HIDDEN_EXAM_ANNOUNCEMENT: case Exa_HIDDEN_EXAM_ANNOUNCEMENT:
Lay_PutContextualLink (ActShoExaAnn,Exa_PutParamExaCodToEdit, Lay_PutContextualLink (ActShoExaAnn,NULL,Exa_PutParamExaCodToEdit,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_Show,NULL, Txt_Show,NULL,
NULL); NULL);
@ -1571,14 +1571,14 @@ static void Exa_PutIconsExamAnnouncement (void)
} }
/***** Link to edit this exam announcement *****/ /***** Link to edit this exam announcement *****/
Lay_PutContextualLink (ActEdiExaAnn,Exa_PutParamExaCodToEdit, Lay_PutContextualLink (ActEdiExaAnn,NULL,Exa_PutParamExaCodToEdit,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
} }
/***** Link to print view *****/ /***** Link to print view *****/
Lay_PutContextualLink (ActPrnExaAnn,Exa_PutParamExaCodToEdit, Lay_PutContextualLink (ActPrnExaAnn,NULL,Exa_PutParamExaCodToEdit,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);

View File

@ -3681,14 +3681,14 @@ static void Brw_PutIconsFileBrowser (void)
break; break;
case Brw_ICON_VIEW: case Brw_ICON_VIEW:
Lay_PutContextualLink (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type], Lay_PutContextualLink (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type],
Brw_PutHiddenParamFullTreeIfSelected, NULL,Brw_PutHiddenParamFullTreeIfSelected,
"eye-on64x64.png", "eye-on64x64.png",
Txt_View,NULL, Txt_View,NULL,
NULL); NULL);
break; break;
case Brw_ICON_EDIT: case Brw_ICON_EDIT:
Lay_PutContextualLink (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type], Lay_PutContextualLink (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type],
Brw_PutHiddenParamFullTreeIfSelected, NULL,Brw_PutHiddenParamFullTreeIfSelected,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
@ -11568,7 +11568,8 @@ static void Brw_PutLinkToAskRemOldFiles (void)
{ {
extern const char *Txt_Remove_old_files; extern const char *Txt_Remove_old_files;
Lay_PutContextualLink (ActReqRemOldBrf,Brw_PutHiddenParamFullTreeIfSelected, Lay_PutContextualLink (ActReqRemOldBrf,NULL,
Brw_PutHiddenParamFullTreeIfSelected,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_old_files,Txt_Remove_old_files, Txt_Remove_old_files,Txt_Remove_old_files,
NULL); NULL);

View File

@ -94,7 +94,7 @@ void Fol_PutLinkWhoToFollow (void)
{ {
extern const char *Txt_Who_to_follow; extern const char *Txt_Who_to_follow;
Lay_PutContextualLink (ActSeeSocPrf,NULL, Lay_PutContextualLink (ActSeeSocPrf,NULL,NULL,
"follow64x64.png", "follow64x64.png",
Txt_Who_to_follow,Txt_Who_to_follow, Txt_Who_to_follow,Txt_Who_to_follow,
NULL); NULL);

View File

@ -284,7 +284,7 @@ static unsigned For_GetNumPstsInThr (long ThrCod);
static unsigned For_GetNumMyPstInThr (long ThrCod); static unsigned For_GetNumMyPstInThr (long ThrCod);
static time_t For_GetThrReadTime (long ThrCod); static time_t For_GetThrReadTime (long ThrCod);
static void For_DeleteThrFromReadThrs (long ThrCod); static void For_DeleteThrFromReadThrs (long ThrCod);
static void For_ShowThreadPosts (long ThrCod); static void For_ShowThreadPosts (void);
static void For_PutIconNewPost (void); static void For_PutIconNewPost (void);
static void For_ShowAForumPost (struct Forum *WhichForum,struct ForumThread *Thr,unsigned PstNum,long PstCod, static void For_ShowAForumPost (struct Forum *WhichForum,struct ForumThread *Thr,unsigned PstNum,long PstCod,
@ -296,7 +296,7 @@ static void For_GetPstData (long PstCod,long *UsrCod,time_t *CreatTimeUTC,
struct Image *Image); struct Image *Image);
static void For_WriteNumberOfPosts (struct Forum *WhichForum,long UsrCod); static void For_WriteNumberOfPosts (struct Forum *WhichForum,long UsrCod);
static void For_PutParamWhichForum (void); static void For_PutParamForumSet (void);
static void For_PutParamForumOrder (void); static void For_PutParamForumOrder (void);
static void For_PutIconsForums (void); static void For_PutIconsForums (void);
@ -347,7 +347,6 @@ static void For_GetThrData (struct ForumThread *Thr);
static void For_GetParamsForum (void); static void For_GetParamsForum (void);
static void For_SetForumType (void); static void For_SetForumType (void);
static void For_RestrictAccess (void); static void For_RestrictAccess (void);
static long For_GetParamThrCod (void);
static void For_PutHiddenParamPstCod (long PstCod); static void For_PutHiddenParamPstCod (long PstCod);
static long For_GetParamPstCod (void); static long For_GetParamPstCod (void);
@ -370,7 +369,6 @@ void For_EnbPst (void)
{ {
extern const char *Txt_Post_unbanned; extern const char *Txt_Post_unbanned;
long PstCod; long PstCod;
long ThrCod;
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
@ -378,15 +376,12 @@ void For_EnbPst (void)
/***** Get the post code to unban *****/ /***** Get the post code to unban *****/
PstCod = For_GetParamPstCod (); PstCod = For_GetParamPstCod ();
/***** Get the thread number *****/
ThrCod = For_GetParamThrCod ();
/***** Delete post from table of disabled posts *****/ /***** Delete post from table of disabled posts *****/
For_DeletePstFromDisabledPstTable (PstCod); For_DeletePstFromDisabledPstTable (PstCod);
Lay_ShowAlert (Lay_SUCCESS,Txt_Post_unbanned); Lay_ShowAlert (Lay_SUCCESS,Txt_Post_unbanned);
/***** Show the posts again *****/ /***** Show the posts again *****/
For_ShowThreadPosts (ThrCod); For_ShowThreadPosts ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -397,7 +392,6 @@ void For_DisPst (void)
{ {
extern const char *Txt_Post_banned; extern const char *Txt_Post_banned;
long PstCod; long PstCod;
long ThrCod;
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
@ -405,9 +399,6 @@ void For_DisPst (void)
/***** Get the post code to ban *****/ /***** Get the post code to ban *****/
PstCod = For_GetParamPstCod (); PstCod = For_GetParamPstCod ();
/***** Get the thread number *****/
ThrCod = For_GetParamThrCod ();
/***** Check if post really exists, if it has not been removed *****/ /***** Check if post really exists, if it has not been removed *****/
if (For_GetIfForumPstExists (PstCod)) if (For_GetIfForumPstExists (PstCod))
{ {
@ -419,7 +410,7 @@ void For_DisPst (void)
Lay_ShowErrorAndExit ("The post to be banned no longer exists."); Lay_ShowErrorAndExit ("The post to be banned no longer exists.");
/***** Show the posts again *****/ /***** Show the posts again *****/
For_ShowThreadPosts (ThrCod); For_ShowThreadPosts ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -963,7 +954,7 @@ void For_RemoveUsrFromReadThrs (long UsrCod)
/************************ Show posts in a thread *****************************/ /************************ Show posts in a thread *****************************/
/*****************************************************************************/ /*****************************************************************************/
static void For_ShowThreadPosts (long ThrCod) static void For_ShowThreadPosts (void)
{ {
extern const char *Hlp_SOCIAL_Forums; extern const char *Hlp_SOCIAL_Forums;
extern const char *Txt_Thread; extern const char *Txt_Thread;
@ -986,10 +977,10 @@ static void For_ShowThreadPosts (long ThrCod)
bool ICanMoveThreads = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); // If I have permission to move threads... bool ICanMoveThreads = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM); // If I have permission to move threads...
/***** Show threads *****/ /***** Show threads *****/
For_ShowForumThreadsHighlightingOneThread (ThrCod); For_ShowForumThreadsHighlightingOneThread (Gbl.Forum.WhichForum.ThrCod);
/***** Get data of the thread *****/ /***** Get data of the thread *****/
Thr.ThrCod = ThrCod; Thr.ThrCod = Gbl.Forum.WhichForum.ThrCod;
For_GetThrData (&Thr); For_GetThrData (&Thr);
/***** Get the page number *****/ /***** Get the page number *****/
@ -1001,7 +992,7 @@ static void For_ShowThreadPosts (long ThrCod)
Gbl.Forum.ThreadToMove = For_GetThrInMyClipboard (); Gbl.Forum.ThreadToMove = For_GetThrInMyClipboard ();
/* Get thread read time for the current user */ /* Get thread read time for the current user */
ReadTimeUTC = For_GetThrReadTime (ThrCod); ReadTimeUTC = For_GetThrReadTime (Gbl.Forum.WhichForum.ThrCod);
/***** Start frame *****/ /***** Start frame *****/
fprintf (Gbl.F.Out,"<section id=\"%s\">",For_ID_FORUM_POSTS_SECTION); fprintf (Gbl.F.Out,"<section id=\"%s\">",For_ID_FORUM_POSTS_SECTION);
@ -1013,7 +1004,7 @@ static void For_ShowThreadPosts (long ThrCod)
sprintf (Query,"SELECT PstCod,UNIX_TIMESTAMP(CreatTime)" sprintf (Query,"SELECT PstCod,UNIX_TIMESTAMP(CreatTime)"
" FROM forum_post" " FROM forum_post"
" WHERE ThrCod=%ld ORDER BY PstCod", " WHERE ThrCod=%ld ORDER BY PstCod",
ThrCod); Gbl.Forum.WhichForum.ThrCod);
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get posts of a thread"); NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get posts of a thread");
NumPsts = (unsigned) NumRows; NumPsts = (unsigned) NumRows;
LastSubject[0] = '\0'; LastSubject[0] = '\0';
@ -1057,7 +1048,7 @@ static void For_ShowThreadPosts (long ThrCod)
/***** Write links to pages *****/ /***** Write links to pages *****/
if (PaginationPsts.MoreThanOnePage) if (PaginationPsts.MoreThanOnePage)
Pag_WriteLinksToPagesCentered (Pag_POSTS_FORUM, Pag_WriteLinksToPagesCentered (Pag_POSTS_FORUM,
ThrCod, Gbl.Forum.WhichForum.ThrCod,
&PaginationPsts); &PaginationPsts);
/***** Start table *****/ /***** Start table *****/
@ -1083,7 +1074,7 @@ static void For_ShowThreadPosts (long ThrCod)
/* Update forum_thr_read table indicating that this thread page and previous ones /* Update forum_thr_read table indicating that this thread page and previous ones
have been read and have no new posts for the current user have been read and have no new posts for the current user
(even if any previous pages have been no read actually) */ (even if any previous pages have been no read actually) */
For_UpdateThrReadTime (ThrCod,CreatTimeUTC); For_UpdateThrReadTime (Gbl.Forum.WhichForum.ThrCod,CreatTimeUTC);
/* Show post */ /* Show post */
For_ShowAForumPost (&Gbl.Forum.WhichForum,&Thr,NumPst,PstCod, For_ShowAForumPost (&Gbl.Forum.WhichForum,&Thr,NumPst,PstCod,
@ -1114,7 +1105,7 @@ static void For_ShowThreadPosts (long ThrCod)
/***** Write again links to pages *****/ /***** Write again links to pages *****/
if (PaginationPsts.MoreThanOnePage) if (PaginationPsts.MoreThanOnePage)
Pag_WriteLinksToPagesCentered (Pag_POSTS_FORUM, Pag_WriteLinksToPagesCentered (Pag_POSTS_FORUM,
ThrCod, Gbl.Forum.WhichForum.ThrCod,
&PaginationPsts); &PaginationPsts);
} }
@ -1123,7 +1114,7 @@ static void For_ShowThreadPosts (long ThrCod)
/***** Form to write a new post in the thread *****/ /***** Form to write a new post in the thread *****/
fprintf (Gbl.F.Out,"<section id=\"%s\">",For_ID_NEW_POST_SECTION); fprintf (Gbl.F.Out,"<section id=\"%s\">",For_ID_NEW_POST_SECTION);
For_WriteFormForumPst (true,ThrCod,LastSubject); For_WriteFormForumPst (true,Gbl.Forum.WhichForum.ThrCod,LastSubject);
fprintf (Gbl.F.Out,"</section>"); fprintf (Gbl.F.Out,"</section>");
/***** End frame *****/ /***** End frame *****/
@ -1139,10 +1130,11 @@ static void For_PutIconNewPost (void)
{ {
extern const char *Txt_New_post; extern const char *Txt_New_post;
fprintf (Gbl.F.Out,"<a href=\"#%s\" title=\"%s\">", Lay_PutContextualLink (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type],
For_ID_NEW_POST_SECTION,Txt_New_post); For_ID_NEW_POST_SECTION,For_PutAllHiddenParamsForum,
Lay_PutIconWithText ("plus64x64.png",Txt_New_post,NULL); "plus64x64.png",
fprintf (Gbl.F.Out,"</a>"); Txt_New_post,NULL,
NULL);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1483,18 +1475,20 @@ static void For_WriteNumberOfPosts (struct Forum *WhichForum,long UsrCod)
void For_PutAllHiddenParamsForum (void) void For_PutAllHiddenParamsForum (void)
{ {
For_PutParamWhichForum (); For_PutParamForumSet ();
For_PutParamForumOrder (); For_PutParamForumOrder ();
For_PutParamForumInsCtrDegCrs (); For_PutParamForumInsCtrDegCrs ();
if (Gbl.Forum.WhichForum.ThrCod > 0) // A thread is selected
For_PutHiddenParamThrCod (Gbl.Forum.WhichForum.ThrCod);
} }
/*****************************************************************************/ /*****************************************************************************/
/*********** Put a hidden parameter with which forum I want to see ***********/ /********* Put a hidden parameter with set of forums I want to see ***********/
/*****************************************************************************/ /*****************************************************************************/
static void For_PutParamWhichForum (void) static void For_PutParamForumSet (void)
{ {
Par_PutHiddenParamUnsigned ("WhichForum",(unsigned) Gbl.Forum.ForumSet); Par_PutHiddenParamUnsigned ("ForumSet",(unsigned) Gbl.Forum.ForumSet);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1728,7 +1722,7 @@ static void For_PutIconsForums (void)
static void For_PutFormWhichForums (void) static void For_PutFormWhichForums (void)
{ {
extern const char *Txt_FORUM_WHICH_FORUM[For_NUM_WHICH_FORUMS]; extern const char *Txt_FORUM_WHICH_FORUM[For_NUM_FORUM_SETS];
For_ForumSet_t ForumSet; For_ForumSet_t ForumSet;
/***** Form to select which forums I want to see: /***** Form to select which forums I want to see:
@ -1740,12 +1734,12 @@ static void For_PutFormWhichForums (void)
"<ul>"); "<ul>");
for (ForumSet = (For_ForumSet_t) 0; for (ForumSet = (For_ForumSet_t) 0;
ForumSet < For_NUM_WHICH_FORUMS; ForumSet < For_NUM_FORUM_SETS;
ForumSet++) ForumSet++)
{ {
fprintf (Gbl.F.Out,"<li>" fprintf (Gbl.F.Out,"<li>"
"<label>" "<label>"
"<input type=\"radio\" name=\"WhichForum\"" "<input type=\"radio\" name=\"ForumSet\""
" value=\"%u\"", " value=\"%u\"",
(unsigned) ForumSet); (unsigned) ForumSet);
if (ForumSet == Gbl.Forum.ForumSet) if (ForumSet == Gbl.Forum.ForumSet)
@ -2201,7 +2195,7 @@ static void For_WriteLinkToForum (struct Forum *WhichForum,
/***** Write link to forum *****/ /***** Write link to forum *****/
Act_FormStartAnchor (NextAct,For_ID_FORUM_THREADS_SECTION); Act_FormStartAnchor (NextAct,For_ID_FORUM_THREADS_SECTION);
For_PutParamWhichForum (); For_PutParamForumSet ();
For_PutParamForumOrder (); For_PutParamForumOrder ();
if (WhichForum->Location > 0) // Code of forum institution, centre, degree or course if (WhichForum->Location > 0) // Code of forum institution, centre, degree or course
Par_PutHiddenParamLong ("Location",WhichForum->Location); Par_PutHiddenParamLong ("Location",WhichForum->Location);
@ -2562,7 +2556,7 @@ static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted)
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type],
For_ID_FORUM_THREADS_SECTION); For_ID_FORUM_THREADS_SECTION);
Pag_PutHiddenParamPagNum (Pag_THREADS_FORUM,PaginationThrs.CurrentPage); Pag_PutHiddenParamPagNum (Pag_THREADS_FORUM,PaginationThrs.CurrentPage);
For_PutParamWhichForum (); For_PutParamForumSet ();
For_PutParamForumInsCtrDegCrs (); For_PutParamForumInsCtrDegCrs ();
Par_PutHiddenParamUnsigned ("Order",(unsigned) Order); Par_PutHiddenParamUnsigned ("Order",(unsigned) Order);
Act_LinkFormSubmit (Txt_FORUM_THREAD_HELP_ORDER[Order],"TIT_TBL",NULL); Act_LinkFormSubmit (Txt_FORUM_THREAD_HELP_ORDER[Order],"TIT_TBL",NULL);
@ -3488,16 +3482,11 @@ static void For_GetThrData (struct ForumThread *Thr)
void For_ShowThrPsts (void) void For_ShowThrPsts (void)
{ {
long ThrCod;
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
/***** Get the identifier of the thread that user want to show *****/
ThrCod = For_GetParamThrCod ();
/***** Show the posts of that thread *****/ /***** Show the posts of that thread *****/
For_ShowThreadPosts (ThrCod); For_ShowThreadPosts ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -3527,12 +3516,15 @@ static void For_GetParamsForum (void)
break; break;
} }
/***** Get optional parameter with code of a selected thread *****/
Gbl.Forum.WhichForum.ThrCod = Par_GetParToLong ("ThrCod");
/***** Get which forums I want to see *****/ /***** Get which forums I want to see *****/
Gbl.Forum.ForumSet = (For_ForumSet_t) Gbl.Forum.ForumSet = (For_ForumSet_t)
Par_GetParToUnsignedLong ("WhichForum", Par_GetParToUnsignedLong ("ForumSet",
0, 0,
For_NUM_WHICH_FORUMS - 1, For_NUM_FORUM_SETS - 1,
(unsigned long) For_DEFAULT_WHICH_FORUMS); (unsigned long) For_DEFAULT_FORUM_SET);
/***** Get order type *****/ /***** Get order type *****/
Gbl.Forum.SelectedOrder = (For_Order_t) Gbl.Forum.SelectedOrder = (For_Order_t)
@ -3732,21 +3724,6 @@ void For_PutHiddenParamThrCod (long ThrCod)
Par_PutHiddenParamLong ("ThrCod",ThrCod); Par_PutHiddenParamLong ("ThrCod",ThrCod);
} }
/*****************************************************************************/
/********* Get the value of the parameter with the code of a thread **********/
/*****************************************************************************/
static long For_GetParamThrCod (void)
{
long ThrCod;
/***** Get thread code *****/
if ((ThrCod = Par_GetParToLong ("ThrCod")) <= 0)
Lay_ShowErrorAndExit ("Wrong thread code.");
return ThrCod;
}
/*****************************************************************************/ /*****************************************************************************/
/************* Write a form parameter to specify a post code *****************/ /************* Write a form parameter to specify a post code *****************/
/*****************************************************************************/ /*****************************************************************************/
@ -3866,7 +3843,6 @@ void For_RecForumPst (void)
extern const char *Txt_Post_sent; extern const char *Txt_Post_sent;
extern const char *Txt_Do_not_reload_this_page_because_the_post_will_be_sent_again_; extern const char *Txt_Do_not_reload_this_page_because_the_post_will_be_sent_again_;
bool PstIsAReply = false; bool PstIsAReply = false;
long ThrCod = 0;
long PstCod = 0; long PstCod = 0;
unsigned NumUsrsToBeNotifiedByEMail; unsigned NumUsrsToBeNotifiedByEMail;
struct SocialPublishing SocPub; struct SocialPublishing SocPub;
@ -3883,13 +3859,8 @@ void For_RecForumPst (void)
Gbl.Action.Act == ActRcvRepForInsUsr || Gbl.Action.Act == ActRcvRepForInsTch || Gbl.Action.Act == ActRcvRepForInsUsr || Gbl.Action.Act == ActRcvRepForInsTch ||
Gbl.Action.Act == ActRcvRepForGenUsr || Gbl.Action.Act == ActRcvRepForGenTch || Gbl.Action.Act == ActRcvRepForGenUsr || Gbl.Action.Act == ActRcvRepForGenTch ||
Gbl.Action.Act == ActRcvRepForSWAUsr || Gbl.Action.Act == ActRcvRepForSWATch) Gbl.Action.Act == ActRcvRepForSWAUsr || Gbl.Action.Act == ActRcvRepForSWATch)
{
PstIsAReply = true; PstIsAReply = true;
/* Get the code of the thread */
ThrCod = For_GetParamThrCod ();
}
/***** Get page number *****/ /***** Get page number *****/
Gbl.Forum.CurrentPagePsts = Pag_GetParamPagNum (Pag_POSTS_FORUM); Gbl.Forum.CurrentPagePsts = Pag_GetParamPagNum (Pag_POSTS_FORUM);
@ -3912,26 +3883,26 @@ void For_RecForumPst (void)
/***** Create a new message *****/ /***** Create a new message *****/
if (PstIsAReply) // This post is a reply to another posts in the thread if (PstIsAReply) // This post is a reply to another posts in the thread
{ {
// ThrCod has been received from form // Gbl.Forum.WhichForum.ThrCod has been received from form
/***** Create last message of the thread *****/ /***** Create last message of the thread *****/
PstCod = For_InsertForumPst (ThrCod,Gbl.Usrs.Me.UsrDat.UsrCod, PstCod = For_InsertForumPst (Gbl.Forum.WhichForum.ThrCod,Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Msg.Subject,Content,&Image); Gbl.Msg.Subject,Content,&Image);
/***** Modify last message of the thread *****/ /***** Modify last message of the thread *****/
For_UpdateThrLastPst (ThrCod,PstCod); For_UpdateThrLastPst (Gbl.Forum.WhichForum.ThrCod,PstCod);
} }
else // This post is the first of a new thread else // This post is the first of a new thread
{ {
/***** Create new thread with unknown first and last message codes *****/ /***** Create new thread with unknown first and last message codes *****/
ThrCod = For_InsertForumThread (&Gbl.Forum.WhichForum,-1L); Gbl.Forum.WhichForum.ThrCod = For_InsertForumThread (&Gbl.Forum.WhichForum,-1L);
/***** Create first (and last) message of the thread *****/ /***** Create first (and last) message of the thread *****/
PstCod = For_InsertForumPst (ThrCod,Gbl.Usrs.Me.UsrDat.UsrCod, PstCod = For_InsertForumPst (Gbl.Forum.WhichForum.ThrCod,Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Msg.Subject,Content,&Image); Gbl.Msg.Subject,Content,&Image);
/***** Update first and last posts of new thread *****/ /***** Update first and last posts of new thread *****/
For_UpdateThrFirstAndLastPst (ThrCod,PstCod,PstCod); For_UpdateThrFirstAndLastPst (Gbl.Forum.WhichForum.ThrCod,PstCod,PstCod);
} }
/***** Free image *****/ /***** Free image *****/
@ -3977,7 +3948,7 @@ void For_RecForumPst (void)
} }
/***** Show again the posts of this thread of the forum *****/ /***** Show again the posts of this thread of the forum *****/
For_ShowThreadPosts (ThrCod); For_ShowThreadPosts ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -4004,7 +3975,6 @@ void For_DelPst (void)
extern const char *Txt_Post_and_thread_removed; extern const char *Txt_Post_and_thread_removed;
extern const char *Txt_Post_removed; extern const char *Txt_Post_removed;
long PstCod; long PstCod;
long ThrCod;
struct UsrData UsrDat; struct UsrData UsrDat;
time_t CreatTimeUTC; // Creation time of a message time_t CreatTimeUTC; // Creation time of a message
char Subject[Cns_MAX_BYTES_SUBJECT + 1]; char Subject[Cns_MAX_BYTES_SUBJECT + 1];
@ -4015,12 +3985,9 @@ void For_DelPst (void)
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
/***** Get the code of the message to remove *****/ /***** Get the code of the post to remove *****/
PstCod = For_GetParamPstCod (); PstCod = For_GetParamPstCod ();
/***** Get the thread number *****/
ThrCod = For_GetParamThrCod ();
/***** Initialize image *****/ /***** Initialize image *****/
Img_ImageConstructor (&Image); Img_ImageConstructor (&Image);
@ -4038,7 +4005,7 @@ void For_DelPst (void)
Lay_ShowErrorAndExit ("You can not remove post because you aren't the author."); Lay_ShowErrorAndExit ("You can not remove post because you aren't the author.");
/* Check if the message is the last message in the thread */ /* Check if the message is the last message in the thread */
if (PstCod != For_GetLastPstCod (ThrCod)) if (PstCod != For_GetLastPstCod (Gbl.Forum.WhichForum.ThrCod))
Lay_ShowErrorAndExit ("You can not remove post because it is not the last of the thread."); Lay_ShowErrorAndExit ("You can not remove post because it is not the last of the thread.");
/***** Remove the post *****/ /***** Remove the post *****/
@ -4067,14 +4034,14 @@ void For_DelPst (void)
Lay_ShowAlert (Lay_SUCCESS,Txt_Post_and_thread_removed); Lay_ShowAlert (Lay_SUCCESS,Txt_Post_and_thread_removed);
/* Show the remaining threads */ /* Show the remaining threads */
For_ShowForumThreadsHighlightingOneThread (ThrCod); For_ShowForumThreadsHighlightingOneThread (Gbl.Forum.WhichForum.ThrCod);
} }
else else
{ {
Lay_ShowAlert (Lay_SUCCESS,Txt_Post_removed); Lay_ShowAlert (Lay_SUCCESS,Txt_Post_removed);
/* Show the remaining posts */ /* Show the remaining posts */
For_ShowThreadPosts (ThrCod); For_ShowThreadPosts ();
} }
} }
@ -4087,17 +4054,13 @@ void For_ReqDelThr (void)
extern const char *Txt_Do_you_really_want_to_remove_the_entire_thread_X; extern const char *Txt_Do_you_really_want_to_remove_the_entire_thread_X;
extern const char *Txt_Do_you_really_want_to_remove_the_entire_thread; extern const char *Txt_Do_you_really_want_to_remove_the_entire_thread;
extern const char *Txt_Remove_thread; extern const char *Txt_Remove_thread;
long ThrCod;
char Subject[Cns_MAX_BYTES_SUBJECT + 1]; char Subject[Cns_MAX_BYTES_SUBJECT + 1];
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
/***** Get the identifier of the thread to remove *****/
ThrCod = For_GetParamThrCod ();
/***** Get subject of thread to delete *****/ /***** Get subject of thread to delete *****/
For_GetThrSubject (ThrCod,Subject); For_GetThrSubject (Gbl.Forum.WhichForum.ThrCod,Subject);
/***** Request confirmation to remove the thread *****/ /***** Request confirmation to remove the thread *****/
if (Subject[0]) if (Subject[0])
@ -4109,7 +4072,7 @@ void For_ReqDelThr (void)
Act_FormStart (For_ActionsDelThrFor[Gbl.Forum.WhichForum.Type]); Act_FormStart (For_ActionsDelThrFor[Gbl.Forum.WhichForum.Type]);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum ();
For_PutHiddenParamThrCod (ThrCod); For_PutHiddenParamThrCod (Gbl.Forum.WhichForum.ThrCod);
Lay_PutRemoveButton (Txt_Remove_thread); Lay_PutRemoveButton (Txt_Remove_thread);
Act_FormEnd (); Act_FormEnd ();
} }
@ -4122,7 +4085,6 @@ void For_DelThr (void)
{ {
extern const char *Txt_Thread_X_removed; extern const char *Txt_Thread_X_removed;
extern const char *Txt_Thread_removed; extern const char *Txt_Thread_removed;
long ThrCod = -1L;
char Subject[Cns_MAX_BYTES_SUBJECT + 1]; char Subject[Cns_MAX_BYTES_SUBJECT + 1];
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
@ -4131,14 +4093,11 @@ void For_DelThr (void)
if (PermissionThreadDeletion[Gbl.Forum.WhichForum.Type] & if (PermissionThreadDeletion[Gbl.Forum.WhichForum.Type] &
(1 << Gbl.Usrs.Me.LoggedRole)) // If I have permission to remove thread in this forum... (1 << Gbl.Usrs.Me.LoggedRole)) // If I have permission to remove thread in this forum...
{ {
/***** Get code of thread to delete *****/
ThrCod = For_GetParamThrCod ();
/***** Get subject of thread to delete *****/ /***** Get subject of thread to delete *****/
For_GetThrSubject (ThrCod,Subject); For_GetThrSubject (Gbl.Forum.WhichForum.ThrCod,Subject);
/***** Remove the thread and all its posts *****/ /***** Remove the thread and all its posts *****/
For_RemoveThreadAndItsPsts (ThrCod); For_RemoveThreadAndItsPsts (Gbl.Forum.WhichForum.ThrCod);
/***** Write message confirming the deletion *****/ /***** Write message confirming the deletion *****/
if (Subject[0]) if (Subject[0])
@ -4154,7 +4113,7 @@ void For_DelThr (void)
Lay_ShowErrorAndExit ("You can not remove threads in this forum."); Lay_ShowErrorAndExit ("You can not remove threads in this forum.");
/***** Show the threads again *****/ /***** Show the threads again *****/
For_ShowForumThreadsHighlightingOneThread (ThrCod); For_ShowForumThreadsHighlightingOneThread (Gbl.Forum.WhichForum.ThrCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -4165,20 +4124,16 @@ void For_CutThr (void)
{ {
extern const char *Txt_Thread_X_marked_to_be_moved; extern const char *Txt_Thread_X_marked_to_be_moved;
extern const char *Txt_Thread_marked_to_be_moved; extern const char *Txt_Thread_marked_to_be_moved;
long ThrCod;
char Subject[Cns_MAX_BYTES_SUBJECT + 1]; char Subject[Cns_MAX_BYTES_SUBJECT + 1];
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
/***** Get code of thread to cut *****/
ThrCod = For_GetParamThrCod ();
/***** Get subject of thread to cut *****/ /***** Get subject of thread to cut *****/
For_GetThrSubject (ThrCod,Subject); For_GetThrSubject (Gbl.Forum.WhichForum.ThrCod,Subject);
/***** Mark the thread as cut *****/ /***** Mark the thread as cut *****/
For_InsertThrInClipboard (ThrCod); For_InsertThrInClipboard (Gbl.Forum.WhichForum.ThrCod);
/***** Write message confirming that thread has been marked to move it *****/ /***** Write message confirming that thread has been marked to move it *****/
if (Subject[0]) if (Subject[0])
@ -4189,7 +4144,7 @@ void For_CutThr (void)
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message); Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
/***** Show the threads again *****/ /***** Show the threads again *****/
For_ShowForumThreadsHighlightingOneThread (ThrCod); For_ShowForumThreadsHighlightingOneThread (Gbl.Forum.WhichForum.ThrCod);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -4202,20 +4157,16 @@ void For_PasteThr (void)
extern const char *Txt_The_thread_is_already_in_this_forum; extern const char *Txt_The_thread_is_already_in_this_forum;
extern const char *Txt_Thread_X_moved_to_this_forum; extern const char *Txt_Thread_X_moved_to_this_forum;
extern const char *Txt_Thread_moved_to_this_forum; extern const char *Txt_Thread_moved_to_this_forum;
long ThrCod;
char Subject[Cns_MAX_BYTES_SUBJECT + 1]; char Subject[Cns_MAX_BYTES_SUBJECT + 1];
/***** Get parameters related to forum *****/ /***** Get parameters related to forum *****/
For_GetParamsForum (); For_GetParamsForum ();
/***** Get code of thread to paste *****/
ThrCod = For_GetParamThrCod ();
/***** Get subject of thread to paste *****/ /***** Get subject of thread to paste *****/
For_GetThrSubject (ThrCod,Subject); For_GetThrSubject (Gbl.Forum.WhichForum.ThrCod,Subject);
/***** Paste (move) the thread to current forum *****/ /***** Paste (move) the thread to current forum *****/
if (For_CheckIfThrBelongsToForum (ThrCod,&Gbl.Forum.WhichForum)) if (For_CheckIfThrBelongsToForum (Gbl.Forum.WhichForum.ThrCod,&Gbl.Forum.WhichForum))
{ {
if (Subject[0]) if (Subject[0])
sprintf (Gbl.Message,Txt_The_thread_X_is_already_in_this_forum, sprintf (Gbl.Message,Txt_The_thread_X_is_already_in_this_forum,
@ -4226,7 +4177,7 @@ void For_PasteThr (void)
} }
else else
{ {
For_MoveThrToCurrentForum (ThrCod); For_MoveThrToCurrentForum (Gbl.Forum.WhichForum.ThrCod);
if (Subject[0]) if (Subject[0])
sprintf (Gbl.Message,Txt_Thread_X_moved_to_this_forum, sprintf (Gbl.Message,Txt_Thread_X_moved_to_this_forum,
Subject); Subject);
@ -4236,7 +4187,7 @@ void For_PasteThr (void)
} }
/***** Show the threads again *****/ /***** Show the threads again *****/
For_ShowForumThreadsHighlightingOneThread (ThrCod); For_ShowForumThreadsHighlightingOneThread (Gbl.Forum.WhichForum.ThrCod);
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -39,13 +39,13 @@
/************************ Public constants and types *************************/ /************************ Public constants and types *************************/
/*****************************************************************************/ /*****************************************************************************/
#define For_NUM_WHICH_FORUMS 2 #define For_NUM_FORUM_SETS 2
typedef enum typedef enum
{ {
For_ONLY_CURRENT_FORUMS = 0, For_ONLY_CURRENT_FORUMS = 0,
For_ALL_MY_FORUMS = 1, For_ALL_MY_FORUMS = 1,
} For_ForumSet_t; // Which set of forums I want to see: all my forums or only the forums of current institution/degree/course. } For_ForumSet_t; // Which set of forums I want to see: all my forums or only the forums of current institution/degree/course.
#define For_DEFAULT_WHICH_FORUMS For_ONLY_CURRENT_FORUMS #define For_DEFAULT_FORUM_SET For_ONLY_CURRENT_FORUMS
#define For_NUM_TYPES_FORUM 12 #define For_NUM_TYPES_FORUM 12
typedef enum typedef enum
@ -66,8 +66,9 @@ typedef enum
struct Forum struct Forum
{ {
For_ForumType_t Type; For_ForumType_t Type; // Type of forum
long Location; // Code of institution, centre, degree or course long Location; // Code of institution, centre, degree or course
long ThrCod; // Optional thread code
}; };
struct ForumThread struct ForumThread

View File

@ -406,9 +406,10 @@ void Gbl_InitializeGlobals (void)
Gbl.Social.WhichUsrs = Soc_DEFAULT_WHICH_USRS; Gbl.Social.WhichUsrs = Soc_DEFAULT_WHICH_USRS;
/* Forums */ /* Forums */
Gbl.Forum.ForumSet = For_DEFAULT_WHICH_FORUMS; Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
Gbl.Forum.WhichForum.Type = (For_ForumType_t) 0; Gbl.Forum.WhichForum.Type = (For_ForumType_t) 0;
Gbl.Forum.WhichForum.Location = -1L; Gbl.Forum.WhichForum.Location = -1L;
Gbl.Forum.WhichForum.ThrCod = -1L;
Gbl.Forum.SelectedOrder = For_DEFAULT_ORDER; Gbl.Forum.SelectedOrder = For_DEFAULT_ORDER;
Gbl.Forum.ThreadToMove = -1L; Gbl.Forum.ThreadToMove = -1L;
// Gbl.Forum.CurrentPageThrs = 1; // TODO: Remove this line // Gbl.Forum.CurrentPageThrs = 1; // TODO: Remove this line

View File

@ -1595,7 +1595,7 @@ static void Grp_PutIconToEditGroups (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActReqEdiGrp,NULL, Lay_PutContextualLink (ActReqEdiGrp,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -213,7 +213,7 @@ static void Hld_PutIconToEditHlds (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiHld,NULL, Lay_PutContextualLink (ActEdiHld,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -469,7 +469,8 @@ void Inf_PutIconToEditInfo (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (Inf_ActionsEditInfo[Gbl.CurrentCrs.Info.Type],NULL, Lay_PutContextualLink (Inf_ActionsEditInfo[Gbl.CurrentCrs.Info.Type],
NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -628,7 +628,7 @@ static void Ins_PutIconsToPrintAndUpload (void)
extern const char *Txt_Print; extern const char *Txt_Print;
/***** Link to print info about institution *****/ /***** Link to print info about institution *****/
Lay_PutContextualLink (ActPrnInsInf,NULL, Lay_PutContextualLink (ActPrnInsInf,NULL,NULL,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -743,7 +743,7 @@ static void Ins_PutIconToEditInstitutions (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiIns,NULL, Lay_PutContextualLink (ActEdiIns,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -1082,7 +1082,7 @@ static void Lay_ShowRightColumn (void)
/**************** Show an icon with a link in contextual menu ****************/ /**************** Show an icon with a link in contextual menu ****************/
/*****************************************************************************/ /*****************************************************************************/
void Lay_PutContextualLink (Act_Action_t NextAction, void Lay_PutContextualLink (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (), void (*FuncParams) (),
const char *Icon, const char *Icon,
const char *Title,const char *Text, const char *Title,const char *Text,
@ -1096,7 +1096,7 @@ void Lay_PutContextualLink (Act_Action_t NextAction,
// jumping to the next line on narrow screens // jumping to the next line on narrow screens
/***** Start form *****/ /***** Start form *****/
Act_FormStart (NextAction); Act_FormStartAnchor (NextAction,Anchor);
if (FuncParams) if (FuncParams)
FuncParams (); FuncParams ();

View File

@ -71,7 +71,7 @@ typedef enum
void Lay_WriteStartOfPage (void); void Lay_WriteStartOfPage (void);
void Lay_PutContextualLink (Act_Action_t NextAction, void Lay_PutContextualLink (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (), void (*FuncParams) (),
const char *Icon, const char *Icon,
const char *Title,const char *Text, const char *Title,const char *Text,

View File

@ -132,7 +132,7 @@ static void Lnk_PutIconToEditLinks (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiLnk,NULL, Lay_PutContextualLink (ActEdiLnk,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -213,7 +213,7 @@ void Log_PutIconToChangeLogo (Sco_Scope_t Scope)
LogoExists = Fil_CheckIfPathExists (PathLogo); LogoExists = Fil_CheckIfPathExists (PathLogo);
/***** Link for changing / uploading the logo *****/ /***** Link for changing / uploading the logo *****/
Lay_PutContextualLink (Action,NULL, Lay_PutContextualLink (Action,NULL,NULL,
"logo64x64.png", "logo64x64.png",
LogoExists ? Txt_Change_logo : LogoExists ? Txt_Change_logo :
Txt_Upload_logo,NULL, Txt_Upload_logo,NULL,
@ -272,7 +272,7 @@ void Log_RequestLogo (Sco_Scope_t Scope)
{ {
/***** Form to remove photo *****/ /***** Form to remove photo *****/
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");
Lay_PutContextualLink (ActionRem,NULL, Lay_PutContextualLink (ActionRem,NULL,NULL,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_logo,Txt_Remove_logo, Txt_Remove_logo,Txt_Remove_logo,
NULL); NULL);

View File

@ -179,7 +179,7 @@ static void Mai_PutIconToEditMailDomains (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiMai,NULL, Lay_PutContextualLink (ActEdiMai,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
@ -1135,7 +1135,7 @@ void Mai_PutLinkToChangeOtherUsrEmails (void)
/***** Link for changing the password *****/ /***** Link for changing the password *****/
if (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) // It's me if (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) // It's me
Lay_PutContextualLink (ActFrmMyAcc,NULL, Lay_PutContextualLink (ActFrmMyAcc,NULL,NULL,
"msg64x64.gif", "msg64x64.gif",
Txt_Change_email,Txt_Change_email, Txt_Change_email,Txt_Change_email,
NULL); NULL);
@ -1143,7 +1143,7 @@ void Mai_PutLinkToChangeOtherUsrEmails (void)
Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActFrmMaiStd : Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActFrmMaiStd :
(Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActFrmMaiTch : (Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActFrmMaiTch :
ActFrmMaiOth), ActFrmMaiOth),
Usr_PutParamOtherUsrCodEncrypted, NULL,Usr_PutParamOtherUsrCodEncrypted,
"msg64x64.gif", "msg64x64.gif",
Txt_Change_email,Txt_Change_email, Txt_Change_email,Txt_Change_email,
NULL); NULL);

View File

@ -347,7 +347,8 @@ static void Msg_PutLinkToShowMorePotentialRecipients (void)
extern const char *Txt_Show_more_recipients; extern const char *Txt_Show_more_recipients;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActReqMsgUsr,Msg_PutParamsShowMorePotentialRecipients, Lay_PutContextualLink (ActReqMsgUsr,NULL,
Msg_PutParamsShowMorePotentialRecipients,
"usrs64x64.gif", "usrs64x64.gif",
Txt_Show_more_recipients,Txt_Show_more_recipients, Txt_Show_more_recipients,Txt_Show_more_recipients,
"CopyMessageToHiddenFields()"); "CopyMessageToHiddenFields()");
@ -1867,7 +1868,7 @@ static void Msg_PutLinkToViewBannedUsers(void)
{ {
extern const char *Txt_Banned_users; extern const char *Txt_Banned_users;
Lay_PutContextualLink (ActLstBanUsr,NULL, Lay_PutContextualLink (ActLstBanUsr,NULL,NULL,
"stop16x16.gif", "stop16x16.gif",
Txt_Banned_users,Txt_Banned_users, Txt_Banned_users,Txt_Banned_users,
NULL); NULL);
@ -2406,7 +2407,8 @@ static void Msg_PutIconToRemoveOneRcvMsg (void)
{ {
extern const char *Txt_Remove_this_message; extern const char *Txt_Remove_this_message;
Lay_PutContextualLink (ActReqDelAllRcvMsg,Msg_PutHiddenParamsMsgsFilters, Lay_PutContextualLink (ActReqDelAllRcvMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_this_message,NULL, Txt_Remove_this_message,NULL,
NULL); NULL);
@ -2420,7 +2422,8 @@ static void Msg_PutIconToRemoveSevRcvMsgs (void)
{ {
extern const char *Txt_Remove_these_messages; extern const char *Txt_Remove_these_messages;
Lay_PutContextualLink (ActReqDelAllRcvMsg,Msg_PutHiddenParamsMsgsFilters, Lay_PutContextualLink (ActReqDelAllRcvMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_these_messages,NULL, Txt_Remove_these_messages,NULL,
NULL); NULL);
@ -2434,7 +2437,8 @@ static void Msg_PutIconToRemoveOneSntMsg (void)
{ {
extern const char *Txt_Remove_this_message; extern const char *Txt_Remove_this_message;
Lay_PutContextualLink (ActReqDelAllSntMsg,Msg_PutHiddenParamsMsgsFilters, Lay_PutContextualLink (ActReqDelAllSntMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_this_message,NULL, Txt_Remove_this_message,NULL,
NULL); NULL);
@ -2448,7 +2452,8 @@ static void Msg_PutIconToRemoveSevSntMsgs (void)
{ {
extern const char *Txt_Remove_these_messages; extern const char *Txt_Remove_these_messages;
Lay_PutContextualLink (ActReqDelAllSntMsg,Msg_PutHiddenParamsMsgsFilters, Lay_PutContextualLink (ActReqDelAllSntMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_these_messages,NULL, Txt_Remove_these_messages,NULL,
NULL); NULL);

View File

@ -275,7 +275,7 @@ void Net_PutLinkToChangeMySocialNetworks (void)
extern const char *Txt_Edit_my_webs_networks; extern const char *Txt_Edit_my_webs_networks;
/***** Link to edit my social networks *****/ /***** Link to edit my social networks *****/
Lay_PutContextualLink (ActReqEdiMyNet,NULL, Lay_PutContextualLink (ActReqEdiMyNet,NULL,NULL,
"earth64x64.gif", "earth64x64.gif",
Txt_Edit_my_webs_networks,Txt_Edit_my_webs_networks, Txt_Edit_my_webs_networks,Txt_Edit_my_webs_networks,
NULL); NULL);

View File

@ -253,7 +253,7 @@ void Nck_ShowFormChangeUsrNickname (void)
/* Link to QR code */ /* Link to QR code */
if (NumNick == 1 && Gbl.Usrs.Me.UsrDat.Nickname[0]) if (NumNick == 1 && Gbl.Usrs.Me.UsrDat.Nickname[0])
Lay_PutContextualLink (ActPrnUsrQR,Usr_PutParamMyUsrCodEncrypted, Lay_PutContextualLink (ActPrnUsrQR,NULL,Usr_PutParamMyUsrCodEncrypted,
"qr64x64.gif", "qr64x64.gif",
Txt_QR_code,NULL, Txt_QR_code,NULL,
NULL); NULL);

View File

@ -509,7 +509,7 @@ static void Not_PutIconToAddNewNotice (void)
{ {
extern const char *Txt_New_notice; extern const char *Txt_New_notice;
Lay_PutContextualLink (ActWriNot,NULL, Lay_PutContextualLink (ActWriNot,NULL,NULL,
"plus64x64.png", "plus64x64.png",
Txt_New_notice,NULL, Txt_New_notice,NULL,
NULL); NULL);
@ -636,7 +636,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
if (Not_CheckIfICanEditNotices ()) if (Not_CheckIfICanEditNotices ())
{ {
/***** Put form to remove announcement *****/ /***** Put form to remove announcement *****/
Lay_PutContextualLink (ActReqRemNot,Not_PutParams, Lay_PutContextualLink (ActReqRemNot,NULL,Not_PutParams,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
@ -645,13 +645,13 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
switch (Status) switch (Status)
{ {
case Not_ACTIVE_NOTICE: case Not_ACTIVE_NOTICE:
Lay_PutContextualLink (ActHidNot,Not_PutParams, Lay_PutContextualLink (ActHidNot,NULL,Not_PutParams,
"eye-on64x64.png", "eye-on64x64.png",
Txt_NOTICE_Active_Mark_as_obsolete,NULL, Txt_NOTICE_Active_Mark_as_obsolete,NULL,
NULL); NULL);
break; break;
case Not_OBSOLETE_NOTICE: case Not_OBSOLETE_NOTICE:
Lay_PutContextualLink (ActRevNot,Not_PutParams, Lay_PutContextualLink (ActRevNot,NULL,Not_PutParams,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_NOTICE_Obsolete_Mark_as_active,NULL, Txt_NOTICE_Obsolete_Mark_as_active,NULL,
NULL); NULL);
@ -720,7 +720,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
/* Put form to view full notice */ /* Put form to view full notice */
fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<div class=\"CENTER_MIDDLE\">");
Lay_PutContextualLink (ActSeeOneNot,Not_PutParams, Lay_PutContextualLink (ActSeeOneNot,NULL,Not_PutParams,
"ellipsis32x32.gif", "ellipsis32x32.gif",
Txt_See_full_notice,NULL, Txt_See_full_notice,NULL,
NULL); NULL);

View File

@ -357,20 +357,20 @@ void Ntf_ShowMyNotifications (void)
if (NumNotifications) // TODO: Show message only when I don't have notificacions at all if (NumNotifications) // TODO: Show message only when I don't have notificacions at all
/* Put form to change notification preferences */ /* Put form to change notification preferences */
Lay_PutContextualLink (ActMrkNtfSee,NULL, Lay_PutContextualLink (ActMrkNtfSee,NULL,NULL,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Mark_all_notifications_as_read, Txt_Mark_all_notifications_as_read,
Txt_Mark_all_NOTIFICATIONS_as_read, Txt_Mark_all_NOTIFICATIONS_as_read,
NULL); NULL);
/* Put form to change notification preferences */ /* Put form to change notification preferences */
Lay_PutContextualLink (ActEdiPrf,NULL, Lay_PutContextualLink (ActEdiPrf,NULL,NULL,
"heart64x64.gif", "heart64x64.gif",
Txt_Change_preferences,Txt_Preferences, Txt_Change_preferences,Txt_Preferences,
NULL); NULL);
/* Put form to view allowed mail domains */ /* Put form to view allowed mail domains */
Lay_PutContextualLink (ActSeeMai,NULL, Lay_PutContextualLink (ActSeeMai,NULL,NULL,
"msg64x64.gif", "msg64x64.gif",
Txt_Email_domains_allowed_for_notifications,Txt_Domains, Txt_Email_domains_allowed_for_notifications,Txt_Domains,
NULL); NULL);

View File

@ -222,7 +222,8 @@ void Pwd_PutLinkToSendNewPasswd (void)
{ {
extern const char *Txt_Forgotten_password; extern const char *Txt_Forgotten_password;
Lay_PutContextualLink (ActReqSndNewPwd,Pwd_PutLinkToSendNewPasswdParams, Lay_PutContextualLink (ActReqSndNewPwd,NULL,
Pwd_PutLinkToSendNewPasswdParams,
"key64x64.gif", "key64x64.gif",
Txt_Forgotten_password,Txt_Forgotten_password, Txt_Forgotten_password,Txt_Forgotten_password,
NULL); NULL);
@ -859,7 +860,7 @@ void Pwd_PutLinkToChangeMyPassword (void)
extern const char *Txt_Change_password; extern const char *Txt_Change_password;
/***** Link for changing the password *****/ /***** Link for changing the password *****/
Lay_PutContextualLink (ActFrmChgMyPwd,NULL, Lay_PutContextualLink (ActFrmChgMyPwd,NULL,NULL,
"key64x64.gif", "key64x64.gif",
Txt_Change_password,Txt_Change_password, Txt_Change_password,Txt_Change_password,
NULL); NULL);
@ -880,7 +881,7 @@ void Pwd_PutLinkToChangeOtherUsrPassword (void)
Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActFrmPwdStd : Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActFrmPwdStd :
(Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActFrmPwdTch : (Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActFrmPwdTch :
ActFrmPwdOth), ActFrmPwdOth),
Usr_PutParamOtherUsrCodEncrypted, NULL,Usr_PutParamOtherUsrCodEncrypted,
"key64x64.gif", "key64x64.gif",
Txt_Change_password,Txt_Change_password, Txt_Change_password,Txt_Change_password,
NULL); NULL);

View File

@ -168,7 +168,8 @@ void Pho_PutLinkToChangeMyPhoto (void)
Txt_Upload_photo; Txt_Upload_photo;
/***** Link for changing / uploading the photo *****/ /***** Link for changing / uploading the photo *****/
Lay_PutContextualLink (ActReqMyPho,NULL,"photo64x64.gif", Lay_PutContextualLink (ActReqMyPho,NULL,NULL,
"photo64x64.gif",
TitleText,TitleText, TitleText,TitleText,
NULL); NULL);
} }
@ -197,7 +198,7 @@ void Pho_PutLinkToChangeOtherUsrPhoto (void)
Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActReqStdPho : Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActReqStdPho :
(Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActReqTchPho : (Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActReqTchPho :
ActReqOthPho), // Guest, visitor or admin ActReqOthPho), // Guest, visitor or admin
Usr_PutParamOtherUsrCodEncrypted, NULL,Usr_PutParamOtherUsrCodEncrypted,
"photo64x64.gif", "photo64x64.gif",
TitleText,TitleText, TitleText,TitleText,
NULL); NULL);
@ -214,7 +215,7 @@ static void Pho_PutIconToRequestRemoveMyPhoto (void)
/***** Link to request the removal of my photo *****/ /***** Link to request the removal of my photo *****/
if (Gbl.Usrs.Me.MyPhotoExists) if (Gbl.Usrs.Me.MyPhotoExists)
Lay_PutContextualLink (ActReqRemMyPho,NULL, Lay_PutContextualLink (ActReqRemMyPho,NULL,NULL,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_photo,NULL, Txt_Remove_photo,NULL,
NULL); NULL);
@ -236,7 +237,7 @@ static void Pho_PutIconToRequestRemoveOtherUsrPhoto (void)
Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActReqRemStdPho : Lay_PutContextualLink ( Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT ? ActReqRemStdPho :
(Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActReqRemTchPho : (Gbl.Usrs.Other.UsrDat.RoleInCurrentCrsDB == Rol_TEACHER ? ActReqRemTchPho :
ActReqRemOthPho), // Guest, visitor or admin ActReqRemOthPho), // Guest, visitor or admin
Usr_PutParamOtherUsrCodEncrypted, NULL,Usr_PutParamOtherUsrCodEncrypted,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove_photo,NULL, Txt_Remove_photo,NULL,
NULL); NULL);
@ -1869,7 +1870,8 @@ static void Pho_PutIconToPrintDegreeStats (void)
{ {
extern const char *Txt_Print; extern const char *Txt_Print;
Lay_PutContextualLink (ActPrnPhoDeg,Pho_PutLinkToPrintViewOfDegreeStatsParams, Lay_PutContextualLink (ActPrnPhoDeg,NULL,
Pho_PutLinkToPrintViewOfDegreeStatsParams,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);

View File

@ -79,7 +79,7 @@ void Plc_PutIconToViewPlaces (void)
{ {
extern const char *Txt_Places; extern const char *Txt_Places;
Lay_PutContextualLink (ActSeePlc,NULL, Lay_PutContextualLink (ActSeePlc,NULL,NULL,
"mapmarker64x64.png", "mapmarker64x64.png",
Txt_Places,NULL, Txt_Places,NULL,
NULL); NULL);
@ -231,7 +231,7 @@ static void Plc_PutIconToEditPlaces (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiPlc,NULL, Lay_PutContextualLink (ActEdiPlc,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -153,7 +153,7 @@ static void Plg_PutIconToEditPlugins (void)
{ {
extern const char *Txt_Edit; extern const char *Txt_Edit;
Lay_PutContextualLink (ActEdiPlg,NULL, Lay_PutContextualLink (ActEdiPlg,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);

View File

@ -237,7 +237,7 @@ void Pre_RemoveOldPrefsFromIP (void)
void Pre_PutLinkToChangeLanguage (void) void Pre_PutLinkToChangeLanguage (void)
{ {
Lay_PutContextualLink (ActEdiPrf,NULL, Lay_PutContextualLink (ActEdiPrf,NULL,NULL,
"cty64x64.gif", "cty64x64.gif",
"Change language","Change language", "Change language","Change language",
NULL); NULL);

View File

@ -77,7 +77,7 @@ void Pri_PutLinkToChangeMyPrivacy (void)
extern const char *Txt_Privacy; extern const char *Txt_Privacy;
/***** Link to edit my privacy *****/ /***** Link to edit my privacy *****/
Lay_PutContextualLink (ActEdiPri,NULL, Lay_PutContextualLink (ActEdiPri,NULL,NULL,
"lock64x64.png", "lock64x64.png",
Txt_Privacy,Txt_Privacy, Txt_Privacy,Txt_Privacy,
NULL); NULL);

View File

@ -129,8 +129,7 @@ void Prf_PutLinkMyPublicProfile (void)
{ {
extern const char *Txt_My_public_profile; extern const char *Txt_My_public_profile;
Lay_PutContextualLink (ActSeeOthPubPrf, Lay_PutContextualLink (ActSeeOthPubPrf,NULL,Usr_PutParamMyUsrCodEncrypted,
Usr_PutParamMyUsrCodEncrypted,
"usr64x64.gif", "usr64x64.gif",
Txt_My_public_profile,Txt_My_public_profile, Txt_My_public_profile,Txt_My_public_profile,
NULL); NULL);
@ -144,7 +143,7 @@ void Prf_PutLinkRequestAnotherUserProfile (void)
{ {
extern const char *Txt_Another_user_s_profile; extern const char *Txt_Another_user_s_profile;
Lay_PutContextualLink (ActReqOthPubPrf,NULL, Lay_PutContextualLink (ActReqOthPubPrf,NULL,NULL,
"usr64x64.gif", "usr64x64.gif",
Txt_Another_user_s_profile,Txt_Another_user_s_profile, Txt_Another_user_s_profile,Txt_Another_user_s_profile,
NULL); NULL);

View File

@ -952,7 +952,7 @@ void Rec_PutLinkToEditRecordFields (void)
extern const char *Txt_Edit_record_fields; extern const char *Txt_Edit_record_fields;
/***** Link to edit record fields *****/ /***** Link to edit record fields *****/
Lay_PutContextualLink (ActEdiRecFie,NULL, Lay_PutContextualLink (ActEdiRecFie,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit_record_fields,Txt_Edit_record_fields, Txt_Edit_record_fields,Txt_Edit_record_fields,
NULL); NULL);
@ -2389,13 +2389,13 @@ static void Rec_PutIconsCommands (void)
if (ItsMe) if (ItsMe)
/***** Button to edit my record card *****/ /***** Button to edit my record card *****/
Lay_PutContextualLink (ActReqEdiRecCom,NULL, Lay_PutContextualLink (ActReqEdiRecCom,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit_my_personal_data,NULL, Txt_Edit_my_personal_data,NULL,
NULL); NULL);
if (ICanViewUsrProfile) if (ICanViewUsrProfile)
/***** Button to view user's profile *****/ /***** Button to view user's profile *****/
Lay_PutContextualLink (ActSeeOthPubPrf, Lay_PutContextualLink (ActSeeOthPubPrf,NULL,
Rec_PutParamUsrCodEncrypted, Rec_PutParamUsrCodEncrypted,
"usr64x64.gif", "usr64x64.gif",
ItsMe ? Txt_My_public_profile : ItsMe ? Txt_My_public_profile :
@ -2405,13 +2405,13 @@ static void Rec_PutIconsCommands (void)
/***** Button to view user's record card *****/ /***** Button to view user's record card *****/
if (Usr_CheckIfICanViewRecordStd (Gbl.Record.UsrDat)) if (Usr_CheckIfICanViewRecordStd (Gbl.Record.UsrDat))
/* View student's records: common record card and course record card */ /* View student's records: common record card and course record card */
Lay_PutContextualLink (ActSeeRecOneStd, Lay_PutContextualLink (ActSeeRecOneStd,NULL,
Rec_PutParamUsrCodEncrypted, Rec_PutParamUsrCodEncrypted,
"card64x64.gif", "card64x64.gif",
Txt_View_record_for_this_course,NULL, Txt_View_record_for_this_course,NULL,
NULL); NULL);
else if (Usr_CheckIfICanViewRecordTch (Gbl.Record.UsrDat)) else if (Usr_CheckIfICanViewRecordTch (Gbl.Record.UsrDat))
Lay_PutContextualLink (ActSeeRecOneTch, Lay_PutContextualLink (ActSeeRecOneTch,NULL,
Rec_PutParamUsrCodEncrypted, Rec_PutParamUsrCodEncrypted,
"card64x64.gif", "card64x64.gif",
Txt_View_record_and_office_hours,NULL, Txt_View_record_and_office_hours,NULL,
@ -2419,14 +2419,12 @@ static void Rec_PutIconsCommands (void)
/***** Button to view user's agenda *****/ /***** Button to view user's agenda *****/
if (ItsMe) if (ItsMe)
Lay_PutContextualLink (ActSeeMyAgd, Lay_PutContextualLink (ActSeeMyAgd,NULL,NULL,
NULL,
"calendar64x64.png", "calendar64x64.png",
Txt_Show_agenda,NULL, Txt_Show_agenda,NULL,
NULL); NULL);
else if (Usr_CheckIfICanViewUsrAgenda (Gbl.Record.UsrDat)) else if (Usr_CheckIfICanViewUsrAgenda (Gbl.Record.UsrDat))
Lay_PutContextualLink (ActSeeUsrAgd, Lay_PutContextualLink (ActSeeUsrAgd,NULL,Rec_PutParamUsrCodEncrypted,
Rec_PutParamUsrCodEncrypted,
"calendar64x64.png", "calendar64x64.png",
Txt_Show_agenda,NULL, Txt_Show_agenda,NULL,
NULL); NULL);
@ -2441,7 +2439,7 @@ static void Rec_PutIconsCommands (void)
Lay_PutContextualLink ( Gbl.Record.UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActReqMdfStd : Lay_PutContextualLink ( Gbl.Record.UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActReqMdfStd :
(Gbl.Record.UsrDat->RoleInCurrentCrsDB == Rol_TEACHER ? ActReqMdfTch : (Gbl.Record.UsrDat->RoleInCurrentCrsDB == Rol_TEACHER ? ActReqMdfTch :
ActReqMdfOth), ActReqMdfOth),
Rec_PutParamUsrCodEncrypted, NULL,Rec_PutParamUsrCodEncrypted,
"config64x64.gif", "config64x64.gif",
Txt_Administer_user,NULL, Txt_Administer_user,NULL,
NULL); NULL);
@ -2452,24 +2450,24 @@ static void Rec_PutIconsCommands (void)
{ {
/***** Button to view user's assignments and works *****/ /***** Button to view user's assignments and works *****/
if (ItsMe) // I am a student if (ItsMe) // I am a student
Lay_PutContextualLink (ActAdmAsgWrkUsr,NULL, Lay_PutContextualLink (ActAdmAsgWrkUsr,NULL,NULL,
"folder64x64.gif", "folder64x64.gif",
Txt_View_homework,NULL, Txt_View_homework,NULL,
NULL); NULL);
else // I am a teacher or superuser else // I am a teacher or superuser
Lay_PutContextualLink (ActAdmAsgWrkCrs,Rec_PutParamsWorks, Lay_PutContextualLink (ActAdmAsgWrkCrs,NULL,Rec_PutParamsWorks,
"folder64x64.gif", "folder64x64.gif",
Txt_View_homework,NULL, Txt_View_homework,NULL,
NULL); NULL);
/***** Button to view user's test exams *****/ /***** Button to view user's test exams *****/
if (ItsMe) if (ItsMe)
Lay_PutContextualLink (ActSeeMyTstRes,NULL, Lay_PutContextualLink (ActSeeMyTstRes,NULL,NULL,
"exam64x64.png", "exam64x64.png",
Txt_View_test_results,NULL, Txt_View_test_results,NULL,
NULL); NULL);
else else
Lay_PutContextualLink (ActSeeUsrTstRes,Rec_PutParamsStudent, Lay_PutContextualLink (ActSeeUsrTstRes,NULL,Rec_PutParamsStudent,
"exam64x64.png", "exam64x64.png",
Txt_View_test_results,NULL, Txt_View_test_results,NULL,
NULL); NULL);
@ -2477,13 +2475,13 @@ static void Rec_PutIconsCommands (void)
/***** Button to view user's attendance *****/ /***** Button to view user's attendance *****/
if (ItsMe && IAmLoggedAsStudent) if (ItsMe && IAmLoggedAsStudent)
// As student, I can see my attendance // As student, I can see my attendance
Lay_PutContextualLink (ActSeeLstMyAtt,NULL, Lay_PutContextualLink (ActSeeLstMyAtt,NULL,NULL,
"rollcall64x64.png", "rollcall64x64.png",
Txt_View_attendance,NULL, Txt_View_attendance,NULL,
NULL); NULL);
else if (IAmLoggedAsTeacher || IAmLoggedAsSysAdm) else if (IAmLoggedAsTeacher || IAmLoggedAsSysAdm)
// As teacher, I can see attendance of the student // As teacher, I can see attendance of the student
Lay_PutContextualLink (ActSeeLstStdAtt,Rec_PutParamsStudent, Lay_PutContextualLink (ActSeeLstStdAtt,NULL,Rec_PutParamsStudent,
"rollcall64x64.png", "rollcall64x64.png",
Txt_View_attendance,NULL, Txt_View_attendance,NULL,
NULL); NULL);
@ -2494,13 +2492,13 @@ static void Rec_PutIconsCommands (void)
(Gbl.CurrentCrs.Crs.CrsCod > 0 && // A course is selected (Gbl.CurrentCrs.Crs.CrsCod > 0 && // A course is selected
Gbl.Record.UsrDat->RoleInCurrentCrsDB == Rol_STUDENT && // He/she is a student in the current course Gbl.Record.UsrDat->RoleInCurrentCrsDB == Rol_STUDENT && // He/she is a student in the current course
IAmLoggedAsTeacher)) // I am a teacher in the current course IAmLoggedAsTeacher)) // I am a teacher in the current course
Lay_PutContextualLink (ActPrnUsrQR,Rec_PutParamUsrCodEncrypted, Lay_PutContextualLink (ActPrnUsrQR,NULL,Rec_PutParamUsrCodEncrypted,
"qr64x64.gif", "qr64x64.gif",
Txt_QR_code,NULL, Txt_QR_code,NULL,
NULL); NULL);
/***** Button to send a message *****/ /***** Button to send a message *****/
Lay_PutContextualLink (ActReqMsgUsr,Rec_PutParamsMsgUsr, Lay_PutContextualLink (ActReqMsgUsr,NULL,Rec_PutParamsMsgUsr,
"msg64x64.gif", "msg64x64.gif",
Txt_Write_a_message,NULL, Txt_Write_a_message,NULL,
NULL); NULL);
@ -2511,12 +2509,12 @@ static void Rec_PutIconsCommands (void)
if (Fol_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod, if (Fol_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
Gbl.Record.UsrDat->UsrCod)) Gbl.Record.UsrDat->UsrCod))
// I follow user // I follow user
Lay_PutContextualLink (ActUnfUsr,Rec_PutParamUsrCodEncrypted, Lay_PutContextualLink (ActUnfUsr,NULL,Rec_PutParamUsrCodEncrypted,
"following64x64.png", "following64x64.png",
Txt_Following_unfollow,NULL, Txt_Following_unfollow,NULL,
NULL); // Put button to unfollow, even if I can not view user's profile NULL); // Put button to unfollow, even if I can not view user's profile
else if (ICanViewUsrProfile) else if (ICanViewUsrProfile)
Lay_PutContextualLink (ActFolUsr,Rec_PutParamUsrCodEncrypted, Lay_PutContextualLink (ActFolUsr,NULL,Rec_PutParamUsrCodEncrypted,
"follow64x64.png", "follow64x64.png",
Txt_Follow,NULL, Txt_Follow,NULL,
NULL); // Put button to follow NULL); // Put button to follow
@ -3689,7 +3687,8 @@ void Rec_PutLinkToChangeMyInsCtrDpt (void)
extern const char *Txt_Edit_my_institution; extern const char *Txt_Edit_my_institution;
/***** Link to edit my institution, centre, department... *****/ /***** Link to edit my institution, centre, department... *****/
Lay_PutContextualLink (ActReqEdiMyIns,NULL,"ins64x64.gif", Lay_PutContextualLink (ActReqEdiMyIns,NULL,NULL,
"ins64x64.gif",
Txt_Edit_my_institution,Txt_Edit_my_institution, Txt_Edit_my_institution,Txt_Edit_my_institution,
NULL); NULL);
} }

View File

@ -640,7 +640,7 @@ void Sta_AskShowGblHits (void)
if (Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected if (Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected
(Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER ||
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)) Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM))
Lay_PutContextualLink (ActReqAccCrs,NULL, Lay_PutContextualLink (ActReqAccCrs,NULL,NULL,
"stats64x64.gif", "stats64x64.gif",
Txt_Visits_to_course,Txt_Visits_to_course, Txt_Visits_to_course,Txt_Visits_to_course,
NULL); NULL);
@ -3927,7 +3927,7 @@ void Sta_PutIconToShowFigure (void)
{ {
extern const char *Txt_Show_statistic; extern const char *Txt_Show_statistic;
Lay_PutContextualLink (ActSeeUseGbl,Sta_PutParamsToShowFigure, Lay_PutContextualLink (ActSeeUseGbl,NULL,Sta_PutParamsToShowFigure,
"pie64x64.gif", "pie64x64.gif",
Txt_Show_statistic,NULL, Txt_Show_statistic,NULL,
NULL); NULL);

View File

@ -332,7 +332,7 @@ static void Svy_PutIconToCreateNewSvy (void)
{ {
extern const char *Txt_New_survey; extern const char *Txt_New_survey;
Lay_PutContextualLink (ActFrmNewSvy,Svy_PutParamsToCreateNewSvy, Lay_PutContextualLink (ActFrmNewSvy,NULL,Svy_PutParamsToCreateNewSvy,
"plus64x64.png", "plus64x64.png",
Txt_New_survey,NULL, Txt_New_survey,NULL,
NULL); NULL);
@ -792,31 +792,31 @@ static void Svy_PutFormsToRemEditOneSvy (long SvyCod,bool Visible)
Gbl.Svys.SvyCodToEdit = SvyCod; // Used as parameters in contextual links Gbl.Svys.SvyCodToEdit = SvyCod; // Used as parameters in contextual links
/***** Put form to remove survey *****/ /***** Put form to remove survey *****/
Lay_PutContextualLink (ActReqRemSvy,Svy_PutParams, Lay_PutContextualLink (ActReqRemSvy,NULL,Svy_PutParams,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);
/***** Put form to reset survey *****/ /***** Put form to reset survey *****/
Lay_PutContextualLink (ActReqRstSvy,Svy_PutParams, Lay_PutContextualLink (ActReqRstSvy,NULL,Svy_PutParams,
"recycle64x64.png", "recycle64x64.png",
Txt_Reset,NULL, Txt_Reset,NULL,
NULL); NULL);
/***** Put form to hide/show survey *****/ /***** Put form to hide/show survey *****/
if (Visible) if (Visible)
Lay_PutContextualLink (ActHidSvy,Svy_PutParams, Lay_PutContextualLink (ActHidSvy,NULL,Svy_PutParams,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Hide,NULL, Txt_Hide,NULL,
NULL); NULL);
else else
Lay_PutContextualLink (ActShoSvy,Svy_PutParams, Lay_PutContextualLink (ActShoSvy,NULL,Svy_PutParams,
"eye-slash-on64x64.png", "eye-slash-on64x64.png",
Txt_Show,NULL, Txt_Show,NULL,
NULL); NULL);
/***** Put form to edit survey *****/ /***** Put form to edit survey *****/
Lay_PutContextualLink (ActEdiOneSvy,Svy_PutParams, Lay_PutContextualLink (ActEdiOneSvy,NULL,Svy_PutParams,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
@ -3308,7 +3308,7 @@ static void Svy_PutIconToAddNewQuestion (void)
extern const char *Txt_New_question; extern const char *Txt_New_question;
/***** Put form to create a new question *****/ /***** Put form to create a new question *****/
Lay_PutContextualLink (ActEdiOneSvyQst,Svy_PutParams, Lay_PutContextualLink (ActEdiOneSvyQst,NULL,Svy_PutParams,
"plus64x64.png", "plus64x64.png",
Txt_New_question,NULL, Txt_New_question,NULL,
NULL); NULL);
@ -3496,7 +3496,7 @@ static void Svy_PutIconToRemoveOneQst (void)
{ {
extern const char *Txt_Remove; extern const char *Txt_Remove;
Lay_PutContextualLink (ActReqRemSvyQst,Svy_PutParamsRemoveOneQst, Lay_PutContextualLink (ActReqRemSvyQst,NULL,Svy_PutParamsRemoveOneQst,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);

View File

@ -142,7 +142,7 @@ void Syl_PutFormWhichSyllabus (void)
"<ul class=\"LIST_LEFT\" style=\"margin:12px;\">"); "<ul class=\"LIST_LEFT\" style=\"margin:12px;\">");
for (WhichSyllabus = (Syl_WhichSyllabus_t) 0; for (WhichSyllabus = (Syl_WhichSyllabus_t) 0;
WhichSyllabus < For_NUM_WHICH_FORUMS; WhichSyllabus < For_NUM_FORUM_SETS;
WhichSyllabus++) WhichSyllabus++)
{ {
fprintf (Gbl.F.Out,"<li class=\"DAT LEFT_MIDDLE\"" fprintf (Gbl.F.Out,"<li class=\"DAT LEFT_MIDDLE\""

View File

@ -383,7 +383,8 @@ static void Tst_PutFormToViewResultsOfUsersTests (Act_Action_t Action)
extern const char *Txt_Test_results; extern const char *Txt_Test_results;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (Action,NULL,"exam64x64.png", Lay_PutContextualLink (Action,NULL,NULL,
"exam64x64.png",
Txt_Test_results,Txt_Test_results, Txt_Test_results,Txt_Test_results,
NULL); NULL);
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
@ -1332,21 +1333,21 @@ static void Tst_PutIconsTests (void)
{ {
/***** Put form to edit existing test questions *****/ /***** Put form to edit existing test questions *****/
if (Gbl.Action.Act != ActEdiTstQst) if (Gbl.Action.Act != ActEdiTstQst)
Lay_PutContextualLink (ActEdiTstQst,NULL, Lay_PutContextualLink (ActEdiTstQst,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
/***** Put form to create a new test question *****/ /***** Put form to create a new test question *****/
if (Gbl.Action.Act != ActEdiOneTstQst) if (Gbl.Action.Act != ActEdiOneTstQst)
Lay_PutContextualLink (ActEdiOneTstQst,NULL, Lay_PutContextualLink (ActEdiOneTstQst,NULL,NULL,
"plus64x64.png", "plus64x64.png",
Txt_New_question,NULL, Txt_New_question,NULL,
NULL); NULL);
/***** Put form to go to test configuration *****/ /***** Put form to go to test configuration *****/
if (Gbl.Action.Act != ActCfgTst) if (Gbl.Action.Act != ActCfgTst)
Lay_PutContextualLink (ActCfgTst,NULL, Lay_PutContextualLink (ActCfgTst,NULL,NULL,
"config64x64.gif", "config64x64.gif",
Txt_Configure,NULL, Txt_Configure,NULL,
NULL); NULL);
@ -5835,7 +5836,7 @@ static void Tst_PutIconToRemoveOneQst (void)
{ {
extern const char *Txt_Remove; extern const char *Txt_Remove;
Lay_PutContextualLink (ActReqRemTstQst,Tst_PutParamsRemoveOneQst, Lay_PutContextualLink (ActReqRemTstQst,NULL,Tst_PutParamsRemoveOneQst,
"remove-on64x64.png", "remove-on64x64.png",
Txt_Remove,NULL, Txt_Remove,NULL,
NULL); NULL);

View File

@ -86,7 +86,7 @@ void TsI_PutFormToExportQuestions (void)
extern const char *Txt_Export_questions; extern const char *Txt_Export_questions;
/***** Put a link to create a file with questions *****/ /***** Put a link to create a file with questions *****/
Lay_PutContextualLink (ActLstTstQst,TsI_PutParamsExportQsts, Lay_PutContextualLink (ActLstTstQst,NULL,TsI_PutParamsExportQsts,
"export16x16.gif", "export16x16.gif",
Txt_Export_questions_to_XML_file,Txt_Export_questions, Txt_Export_questions_to_XML_file,Txt_Export_questions,
NULL); NULL);
@ -115,7 +115,7 @@ void TsI_PutFormToImportQuestions (void)
extern const char *Txt_Import_questions; extern const char *Txt_Import_questions;
/***** Put a link to create a file with questions *****/ /***** Put a link to create a file with questions *****/
Lay_PutContextualLink (ActReqImpTstQst,NULL, Lay_PutContextualLink (ActReqImpTstQst,NULL,NULL,
"import16x16.gif", "import16x16.gif",
Txt_Import_questions_from_XML_file, Txt_Import_questions_from_XML_file,
Txt_Import_questions, Txt_Import_questions,

View File

@ -13442,7 +13442,7 @@ const char *Txt_FORUM_THREAD_ORDER[For_NUM_ORDERS] =
#endif #endif
}; };
const char *Txt_FORUM_WHICH_FORUM[For_NUM_WHICH_FORUMS] = const char *Txt_FORUM_WHICH_FORUM[For_NUM_FORUM_SETS] =
{ {
// For_ONLY_CURRENT_FORUMS // For_ONLY_CURRENT_FORUMS
#if L==1 #if L==1

View File

@ -311,13 +311,13 @@ static void TT_PutContextualIcons (void)
extern const char *Txt_Print; extern const char *Txt_Print;
if (Gbl.TimeTable.ContextualIcons.PutIconEditCrsTT) if (Gbl.TimeTable.ContextualIcons.PutIconEditCrsTT)
Lay_PutContextualLink (ActEdiCrsTT,Grp_PutParamWhichGrps, Lay_PutContextualLink (ActEdiCrsTT,NULL,Grp_PutParamWhichGrps,
"edit64x64.png", "edit64x64.png",
Txt_Edit,NULL, Txt_Edit,NULL,
NULL); NULL);
if (Gbl.TimeTable.ContextualIcons.PutIconEditOfficeHours) if (Gbl.TimeTable.ContextualIcons.PutIconEditOfficeHours)
Lay_PutContextualLink (ActEdiTut,NULL, Lay_PutContextualLink (ActEdiTut,NULL,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit_office_hours,NULL, Txt_Edit_office_hours,NULL,
NULL); NULL);
@ -325,7 +325,7 @@ static void TT_PutContextualIcons (void)
if (Gbl.TimeTable.ContextualIcons.PutIconPrint) if (Gbl.TimeTable.ContextualIcons.PutIconPrint)
Lay_PutContextualLink (Gbl.TimeTable.Type == TT_COURSE_TIMETABLE ? ActPrnCrsTT : Lay_PutContextualLink (Gbl.TimeTable.Type == TT_COURSE_TIMETABLE ? ActPrnCrsTT :
ActPrnMyTT, ActPrnMyTT,
Grp_PutParamWhichGrps, NULL,Grp_PutParamWhichGrps,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -390,7 +390,7 @@ static void TT_PutIconToViewCrsTT (void)
extern const char *Txt_Show_timetable; extern const char *Txt_Show_timetable;
/***** Link (form) to see course timetable *****/ /***** Link (form) to see course timetable *****/
Lay_PutContextualLink (ActSeeCrsTT,NULL, Lay_PutContextualLink (ActSeeCrsTT,NULL,NULL,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Show_timetable,NULL, Txt_Show_timetable,NULL,
NULL); NULL);
@ -405,7 +405,7 @@ static void TT_PutIconToViewMyTT (void)
extern const char *Txt_Show_timetable; extern const char *Txt_Show_timetable;
/***** Link (form) to see my timetable *****/ /***** Link (form) to see my timetable *****/
Lay_PutContextualLink (ActSeeMyTT,NULL, Lay_PutContextualLink (ActSeeMyTT,NULL,NULL,
"eye-on64x64.png", "eye-on64x64.png",
Txt_Show_timetable,NULL, Txt_Show_timetable,NULL,
NULL); NULL);

View File

@ -1998,7 +1998,7 @@ void Usr_PutLinkToLogin (void)
{ {
extern const char *Txt_Log_in; extern const char *Txt_Log_in;
Lay_PutContextualLink (ActFrmLogIn,NULL, Lay_PutContextualLink (ActFrmLogIn,NULL,NULL,
"login-green64x64.png", "login-green64x64.png",
Txt_Log_in,Txt_Log_in, Txt_Log_in,Txt_Log_in,
NULL); NULL);
@ -3009,7 +3009,7 @@ void Usr_ShowFormsLogoutAndRole (void)
/***** Link to log out *****/ /***** Link to log out *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActLogOut,NULL, Lay_PutContextualLink (ActLogOut,NULL,NULL,
"logout-red64x64.png", "logout-red64x64.png",
Txt_Log_out,Txt_Log_out, Txt_Log_out,Txt_Log_out,
NULL); NULL);
@ -7087,7 +7087,7 @@ static void Usr_PutLinkToSeeAdmins (void)
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
/***** Put form to list admins *****/ /***** Put form to list admins *****/
Lay_PutContextualLink (ActLstOth,NULL, Lay_PutContextualLink (ActLstOth,NULL,NULL,
"adm16x16.gif", "adm16x16.gif",
Txt_ROLES_PLURAL_Abc[Rol_DEG_ADM][Usr_SEX_UNKNOWN], Txt_ROLES_PLURAL_Abc[Rol_DEG_ADM][Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_Abc[Rol_DEG_ADM][Usr_SEX_UNKNOWN], Txt_ROLES_PLURAL_Abc[Rol_DEG_ADM][Usr_SEX_UNKNOWN],
@ -7103,7 +7103,7 @@ static void Usr_PutLinkToSeeGuests (void)
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
/***** Put form to list guests *****/ /***** Put form to list guests *****/
Lay_PutContextualLink (ActLstGst,NULL, Lay_PutContextualLink (ActLstGst,NULL,NULL,
"usrs64x64.gif", "usrs64x64.gif",
Txt_ROLES_PLURAL_Abc[Rol__GUEST_][Usr_SEX_UNKNOWN], Txt_ROLES_PLURAL_Abc[Rol__GUEST_][Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_Abc[Rol__GUEST_][Usr_SEX_UNKNOWN], Txt_ROLES_PLURAL_Abc[Rol__GUEST_][Usr_SEX_UNKNOWN],
@ -7659,7 +7659,7 @@ static void Usr_PutIconToPrintGsts (void)
{ {
extern const char *Txt_Print; extern const char *Txt_Print;
Lay_PutContextualLink (ActPrnGstPho,Usr_ShowGstsAllDataParams, Lay_PutContextualLink (ActPrnGstPho,NULL,Usr_ShowGstsAllDataParams,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -7669,7 +7669,7 @@ static void Usr_PutIconToPrintStds (void)
{ {
extern const char *Txt_Print; extern const char *Txt_Print;
Lay_PutContextualLink (ActPrnStdPho,Usr_ShowStdsAllDataParams, Lay_PutContextualLink (ActPrnStdPho,NULL,Usr_ShowStdsAllDataParams,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -7679,7 +7679,7 @@ static void Usr_PutIconToPrintTchs (void)
{ {
extern const char *Txt_Print; extern const char *Txt_Print;
Lay_PutContextualLink (ActPrnTchPho,Usr_ShowTchsAllDataParams, Lay_PutContextualLink (ActPrnTchPho,NULL,Usr_ShowTchsAllDataParams,
"print64x64.png", "print64x64.png",
Txt_Print,NULL, Txt_Print,NULL,
NULL); NULL);
@ -7693,7 +7693,7 @@ static void Usr_PutIconToShowGstsAllData (void)
{ {
extern const char *Txt_Show_all_data; extern const char *Txt_Show_all_data;
Lay_PutContextualLink (ActLstGstAll,Usr_ShowGstsAllDataParams, Lay_PutContextualLink (ActLstGstAll,NULL,Usr_ShowGstsAllDataParams,
"table64x64.gif", "table64x64.gif",
Txt_Show_all_data,NULL, Txt_Show_all_data,NULL,
NULL); NULL);
@ -7704,7 +7704,7 @@ static void Usr_PutLinkToShowGstsAllData (void)
extern const char *Txt_Show_all_data; extern const char *Txt_Show_all_data;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActLstGstAll,Usr_ShowGstsAllDataParams, Lay_PutContextualLink (ActLstGstAll,NULL,Usr_ShowGstsAllDataParams,
"table64x64.gif", "table64x64.gif",
Txt_Show_all_data,Txt_Show_all_data, Txt_Show_all_data,Txt_Show_all_data,
NULL); NULL);
@ -7715,7 +7715,7 @@ static void Usr_PutIconToShowStdsAllData (void)
{ {
extern const char *Txt_Show_all_data; extern const char *Txt_Show_all_data;
Lay_PutContextualLink (ActLstStdAll,Usr_ShowStdsAllDataParams, Lay_PutContextualLink (ActLstStdAll,NULL,Usr_ShowStdsAllDataParams,
"table64x64.gif", "table64x64.gif",
Txt_Show_all_data,NULL, Txt_Show_all_data,NULL,
NULL); NULL);
@ -7726,7 +7726,7 @@ static void Usr_PutLinkToShowStdsAllData (void)
extern const char *Txt_Show_all_data; extern const char *Txt_Show_all_data;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActLstStdAll,Usr_ShowStdsAllDataParams, Lay_PutContextualLink (ActLstStdAll,NULL,Usr_ShowStdsAllDataParams,
"table64x64.gif", "table64x64.gif",
Txt_Show_all_data,Txt_Show_all_data, Txt_Show_all_data,Txt_Show_all_data,
NULL); NULL);
@ -7737,7 +7737,7 @@ static void Usr_PutIconToShowTchsAllData (void)
{ {
extern const char *Txt_Show_all_data; extern const char *Txt_Show_all_data;
Lay_PutContextualLink (ActLstTchAll,Usr_ShowTchsAllDataParams, Lay_PutContextualLink (ActLstTchAll,NULL,Usr_ShowTchsAllDataParams,
"table64x64.gif", "table64x64.gif",
Txt_Show_all_data,NULL, Txt_Show_all_data,NULL,
NULL); NULL);
@ -7748,7 +7748,7 @@ static void Usr_PutLinkToShowTchsAllData (void)
extern const char *Txt_Show_all_data; extern const char *Txt_Show_all_data;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActLstTchAll,Usr_ShowTchsAllDataParams, Lay_PutContextualLink (ActLstTchAll,NULL,Usr_ShowTchsAllDataParams,
"table64x64.gif", "table64x64.gif",
Txt_Show_all_data,Txt_Show_all_data, Txt_Show_all_data,Txt_Show_all_data,
NULL); NULL);

View File

@ -120,7 +120,8 @@ void ZIP_PutLinkToCreateZIPAsgWrk (void)
{ {
extern const char *Txt_Create_ZIP_file; extern const char *Txt_Create_ZIP_file;
Lay_PutContextualLink (ActAdmAsgWrkCrs,ZIP_PutLinkToCreateZIPAsgWrkParams, Lay_PutContextualLink (ActAdmAsgWrkCrs,NULL,
ZIP_PutLinkToCreateZIPAsgWrkParams,
"download64x64.png", "download64x64.png",
Txt_Create_ZIP_file,Txt_Create_ZIP_file, Txt_Create_ZIP_file,Txt_Create_ZIP_file,
NULL); NULL);